From: "Saved by Windows Internet Explorer 8"
Subject: Medical Assistance Transportation Program
Date: Tue, 8 Nov 2011 15:02:22 -0500
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_002A_01CC9E27.6B4D4140"
X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7600.16807

This is a multi-part message in MIME format.

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD =
id=3Dctl00_Head1><TITLE>Medical Assistance Transportation =
Program</TITLE>
<META content=3D"text/html; charset=3Dutf-8" =
http-equiv=3DContent-Type><LINK=20
rel=3Dstylesheet type=3Dtext/css =
href=3D"http://matp.pa.gov/css/MATPStyle.css">
<META name=3DGENERATOR content=3D"MSHTML 8.00.7600.16891"></HEAD>
<BODY><!--[if lt IE 7]>
<style>
#nav ul li{ width:1%; }
</style>

<![endif]-->
<FORM id=3DaspnetForm method=3Dpost name=3DaspnetForm =
action=3DDefault.aspx>
<DIV><INPUT id=3D__EVENTTARGET type=3Dhidden name=3D__EVENTTARGET> =
<INPUT=20
id=3D__EVENTARGUMENT type=3Dhidden name=3D__EVENTARGUMENT> <INPUT =
id=3D__VIEWSTATE=20
value=3D/wEPDwULLTE3MTY1Mjc1MjgPZBYCZg9kFgICAw9kFgICAQ9kFgICEQ8QDxYGHg1EY=
XRhVGV4dEZpZWxkBQZDb3VudHkeDkRhdGFWYWx1ZUZpZWxkBQZDb3VudHkeC18hRGF0YUJvdW=
5kZ2QQFUQPU2VsZWN0IGEgQ291bnR5BUFkYW1zCUFsbGVnaGVueQlBcm1zdHJvbmcGQmVhdmV=
yB0JlZGZvcmQFQmVya3MFQmxhaXIOQnJhZGZvcmQvVGlvZ2EFQnVja3MGQnV0bGVyB0NhbWJy=
aWEHQ2FtZXJvbgZDYXJib24GQ2VudHJlB0NoZXN0ZXIHQ2xhcmlvbgpDbGVhcmZpZWxkB0Nsa=
W50b24IQ29sdW1iaWEIQ3Jhd2ZvcmQKQ3VtYmVybGFuZAdEYXVwaGluCERlbGF3YXJlA0Vsaw=
RFcmllB0ZheWV0dGUGRm9yZXN0CEZyYW5rbGluBkZ1bHRvbgZHcmVlbmUKSHVudGluZ2Rvbgd=
JbmRpYW5hCUplZmZlcnNvbgdKdW5pYXRhCkxhY2thd2FubmEJTGFuY2FzdGVyCExhd3JlbmNl=
B0xlYmFub24GTGVoaWdoB0x1emVybmUITHljb21pbmcGTWNLZWFuBk1lcmNlcgdNaWZmbGluB=
k1vbnJvZQpNb250Z29tZXJ5B01vbnRvdXILTm9ydGhhbXB0b24OTm9ydGh1bWJlcmxhbmQFUG=
VycnkPUGhpbGEtLUNvbnRyYWN0BFBpa2UGUG90dGVyClNjaHV5bGtpbGwGU255ZGVyCFNvbWV=
yc2V0CFN1bGxpdmFuC1N1c3F1ZWhhbm5hEVRpb2dhLS1XL0JyYWRmb3JkBVVuaW9uB1ZlbmFu=
Z28GV2FycmVuCldhc2hpbmd0b24FV2F5bmUMV2VzdG1vcmVsYW5kB1d5b21pbmcEWW9yaxVEA=
AVBZGFtcwlBbGxlZ2hlbnkJQXJtc3Ryb25nBkJlYXZlcgdCZWRmb3JkBUJlcmtzBUJsYWlyDk=
JyYWRmb3JkL1Rpb2dhBUJ1Y2tzBkJ1dGxlcgdDYW1icmlhB0NhbWVyb24GQ2FyYm9uBkNlbnR=
yZQdDaGVzdGVyB0NsYXJpb24KQ2xlYXJmaWVsZAdDbGludG9uCENvbHVtYmlhCENyYXdmb3Jk=
CkN1bWJlcmxhbmQHRGF1cGhpbghEZWxhd2FyZQNFbGsERXJpZQdGYXlldHRlBkZvcmVzdAhGc=
mFua2xpbgZGdWx0b24GR3JlZW5lCkh1bnRpbmdkb24HSW5kaWFuYQlKZWZmZXJzb24HSnVuaW=
F0YQpMYWNrYXdhbm5hCUxhbmNhc3RlcghMYXdyZW5jZQdMZWJhbm9uBkxlaGlnaAdMdXplcm5=
lCEx5Y29taW5nBk1jS2VhbgZNZXJjZXIHTWlmZmxpbgZNb25yb2UKTW9udGdvbWVyeQdNb250=
b3VyC05vcnRoYW1wdG9uDk5vcnRodW1iZXJsYW5kBVBlcnJ5D1BoaWxhLS1Db250cmFjdARQa=
WtlBlBvdHRlcgpTY2h1eWxraWxsBlNueWRlcghTb21lcnNldAhTdWxsaXZhbgtTdXNxdWVoYW=
5uYRFUaW9nYS0tVy9CcmFkZm9yZAVVbmlvbgdWZW5hbmdvBldhcnJlbgpXYXNoaW5ndG9uBVd=
heW5lDFdlc3Rtb3JlbGFuZAdXeW9taW5nBFlvcmsUKwNEZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dn=
Z2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dkZGTLg1EfH=
AnPbYccRlZiELVQWVmQ9g=3D=3D=20
type=3Dhidden name=3D__VIEWSTATE> </DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var theForm =3D document.forms['aspnetForm'];
if (!theForm) {
    theForm =3D document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() !=3D false)) {
        theForm.__EVENTTARGET.value =3D eventTarget;
        theForm.__EVENTARGUMENT.value =3D eventArgument;
        theForm.submit();
    }
}
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://matp.pa.gov/WebResource.axd?d=3DP8RxlAAmhmCfIN3Ih8PM5B_WDeM=
RG7s1vuQ_oGg1NQ38xadI1KpNnZx3k7I_5GsgqKy6FVcdJqXYzkx58P_jo7Oq7Is1&amp;t=3D=
634550008002212176"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://matp.pa.gov/ScriptResource.axd?d=3DyhJ2JDL_g9xy5UI_FGGfZtgw=
Y0HaQos2a2CU9R157K8iT897CVud6vr-jTNBpux20_81umL82akaWwIiueW4v5sLLG9XtUrel=
Ki1BYz57aOLYmYatm2QAR7WxH0195F7O-h0QJMIaCjSai-jMO5ZIJUYAmBVS60BQ_C8xwSzCq=
MpPHnd0&amp;t=3Dffffffffe91ada60"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
if (typeof(Sys) =3D=3D=3D 'undefined') throw new Error('ASP.NET Ajax =
client-side framework failed to load.');
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://matp.pa.gov/ScriptResource.axd?d=3DPbBLjPLWYArrvhvzvjpXpu7z=
X95sm6CZuUbL4urydYjVtpUc6ovN77ufDyV7l_51twHxzauWFWWqFqLkiEt7yl7O9GcxQgMZx=
nZ0VSMBHgQCqZJh068tupi_Ee_RLbhhBB0eb14BZvaGr09uonG46QI6KRsC5rlQ6BuzEEW1Jp=
m8ku8Q0&amp;t=3Dffffffffe91ada60"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://matp.pa.gov/ScriptResource.axd?d=3DRrJs_DAlEqgR0D03t-zPA0gm=
sr2beRZCYq9MdwpE9cpWT4cye4Ewj2v6F7wXwQRgEdW-6l7iR4O4CK_QZE8xwzduQELlHkD68=
YY1YtiJh5PlCTSGMZYCKnFRqbte4ccKEvcxBbY1kO-sbFmD4U5SaMsu8ms1&amp;t=3Dfffff=
fffb5824b70"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://matp.pa.gov/ScriptResource.axd?d=3DF-MCXAd7S6EAY7OO9ym7dLWv=
Omrh2ERYJzv0OQqLBmfTgDRdH3ejdnawDAZ96bm2xPKaHrs724Jdwe6Kqtv4YNcDhIAOfs5cz=
KCS8--8F8wA6tQfV4wzInfpLsoduYHdy8XHqn-KnXPqcH5ple4MiOiYEKA1&amp;t=3Dfffff=
fffb5824b70"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://matp.pa.gov/ScriptResource.axd?d=3D70K-xH5GhWxeCeaCaYx2k9oY=
xMSttjntL_6WizVirCE_aaSVEeDJ1bY1Yb_HO-s8mCdhhZUZQivLnxMjd5wjig_xZ8unydmpK=
tSxH_dDGLCordmowTbrUP9YWhiTTnsK1-S2Ku1FjBbqDG2_hjsWXCD5kIc1&amp;t=3Dfffff=
fffb5824b70"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://matp.pa.gov/ScriptResource.axd?d=3D386vsFSEtA4C97dGKsHUd4OV=
7y8QwjfMDwAmdDrMGAa5lQrh44FEihxILtuj90t3vOts3zJXfJnnigrUtRSpXdDeZDdhwrTeT=
eoXP01z-nzR2DKu1dHidWAXN8DnzzXR9jD2qfz7KkmTTGUK6fZHj85Cnas1&amp;t=3Dfffff=
fffb5824b70"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://matp.pa.gov/ScriptResource.axd?d=3DQcGTKX1Gif_gn792erGUeC5S=
uR2wMDjcPR1LBr8p3SXh4NihZoY3f4eFiluGRbC0Rha2Q-N8OfXGm_EULQEqxqSjZzr3uFhdh=
3c-gfJjRYHWxxgpx2wKPJKyfqbc7qvSD9xppCB4dSeSaZqjQZ1JnZPBlplciyPidMQZo02R_K=
TGVLku0&amp;t=3Dffffffffb5824b70"></SCRIPT>

<DIV><INPUT id=3D__EVENTVALIDATION=20
value=3D/wEWSALF167dBgLc06+LCwKrmbC+CgLm6JbyCwLMmMGyCwLBwJu9AQKp38cBApCOr=
Y4OAvDO670MAqnI0vkKAt20/rQIAuvOi7YGAqDKkhECkLC7zQQCkeav1QUCoYS51AoCwt3xoA=
QC8rTavQ0CuYL8tAEC7Lf/jQUCgdLjhgwCwsH/gw4CzNf3vgQC0/u08QwCjvf8CAKTv+i9DAL=
DwblxAsHGmIEDApL+8eQLAuSM+PsMAtSZ5I8NAsGz/kkCqZX8mQYC49/s2A4CjuKskgYCoefs=
+gYC0fr5zQYC3eXBngQClIWMig0C5oymnA0Cmqu06wYC8bTN0QsC1PLHNwKdvbuMCgKtneHAA=
wKctN8ZApGi+L0JAoK2pp0GAoX4raUBAtCFnAwCzMXlzAQC3IGh5gsCnuK1hAYCs92quQoC8a=
myiAoCsZnuoQsCv/6ZQQKrm5aBDwL+wqqzBwLp5aOvAgK94/WKDQKPqP3oBQLU5MbICAL7rtn=
ABALAiZ2HDAKVx5PjAwLAt5rzCgKYs5v8CQLV5MeIBgKQptPWDQLgnJG0DQLLrL3xDIQIi5ES=
+pft7ZTitmkJEvesbCmW=20
type=3Dhidden name=3D__EVENTVALIDATION> </DIV>
<DIV id=3Dcontainer>
<DIV id=3DdpwHeader></DIV>
<DIV id=3DmatpHeader></DIV>
<DIV id=3Dnav>
<UL>
  <LI><A href=3D"http://matp.pa.gov/Default.aspx">Home</A> </LI>
  <LI><A href=3D"http://matp.pa.gov/Consumers.aspx">For Consumers</A> =
</LI>
  <LI><A href=3D"http://matp.pa.gov/Providers.aspx">For Providers</A> =
</LI>
  <LI><A href=3D"http://matp.pa.gov/ProgramRules.aspx">Program Rules</A> =
</LI>
  <LI><A href=3D"http://matp.pa.gov/Data.aspx">Data</A> </LI>
  <LI><A href=3D"http://matp.pa.gov/Advisory.aspx">Advisory =
Committee</A>=20
</LI></UL></DIV>
<DIV id=3DbelowNav></DIV>
<DIV id=3DcontentContainer>
<DIV id=3Dcontent>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ctl00$ContentPlaceHolder1$Sc=
riptManager1', document.getElementById('aspnetForm'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], =
[], 90);
//]]>
</SCRIPT>
<!--
			<h4>Overview</h4>
<p>Transportation is available to almost any service that MA pays for. =
Transportation can be provided to physicians, dentists, health clinics, =
podiatrists, rural health clinics, hospice programs, physical =
therapists, outpatient services, pharmacies, drug and alcohol clinics, =
mental health centers, outpatient rehab services, optometrists, dialysis =
clinics, psychologists, and ambulatory surgical services. Services that =
MATP does not include are emergency or other transportation requiring an =
ambulance, transportation to sheltered workshops, day care programs, =
transportation for visitation purposes, stretcher service, =
door-through-door service, transportation to non-medical services, and =
transportation during severe weather when deemed unsafe or =
transportation to any medical services that are not payable through the =
Medical Assistance Program. Exceptional transportation costs such as air =
travel, lodging, meals, attendants are paid for by local County =
Assistance Offices instead of MATP.=20
</p>

						=09
       <table>
       <tr>
        <td colspan=3D"2"><b>Medical Transportation Can Be Provided To =
*:</b></td>
       </tr>
					<tr><td>
						<td width=3D"220">physicians<br />
						  dentists<br />
						  health clinics<br />
						  podiatrists<br />
						  rural health clinics<br />
						  hospice programs<br />
						  physical therapists<br />
					    outpatient services</td>
						<td width=3D"220">pharmacies<br />
						  drug and alcohol clinics<br />
						  mental health centers<br />
						  outpatient rehab services<br />
						  optometrists<br />
						  dialysis clinics<br />
						  psychologists<br />
					    and ambulatory surgical service</td>
					</tr>=09
	</table>		=09
					   <p style=3D"font-size:11px;">
				   * Services that MATP does not include are emergency or other =
transportation requiring an ambulance, transportation to sheltered =
workshops, day care programs, transportation for visitation purposes, =
stretcher service, door-through-door service, transportation to =
non-medical services, and transportation during severe weather when =
deemed unsafe or transportation to any medical services that are not =
payable through the Medical Assistance Program
				   </p>--><BR></DIV>
<DIV style=3D"FONT-SIZE: 12px" class=3DboxFull>
<DIV class=3Dtop>&nbsp;&nbsp;What is the Medical Assistance =
Transportation=20
Program? </DIV>
<DIV class=3Dmid>The Medical Assistance Transportation Program, also =
known as=20
MATP, provides transportation to medical appointments for Medical =
Assistance=20
recipients who do not have transportation available to them. The =
individual=E2=80=99s=20
county of residence will provide the type of transportation that is the =
least=20
expensive while still meeting their needs. <BR><BR>
<TABLE border=3D0 width=3D"100%">
  <TBODY>
  <TR>
    <TD width=3D"60%" colSpan=3D2>
      <DIV style=3D"FLOAT: left" class=3DboxHalf>
      <DIV class=3Dtop>&nbsp;&nbsp;Access MATP services </DIV>
      <DIV style=3D"HEIGHT: 155px" class=3Dmid>
      <TABLE align=3Dleft>
        <TBODY>
        <TR>
          <TD vAlign=3Dtop><IMG alt=3D""=20
            src=3D"http://matp.pa.gov/images/bullet1.jpg"></TD>
          <TD><A =
href=3D"http://matp.pa.gov/CountyContact.aspx">Contact</A> your=20
            local MATP provider.</TD></TR>
        <TR>
          <TD vAlign=3Dtop><IMG alt=3D""=20
            src=3D"http://matp.pa.gov/images/bullet2.jpg"></TD>
          <TD>A one-time MATP application must be completed and =
signed.</TD></TR>
        <TR>
          <TD vAlign=3Dtop><IMG alt=3D""=20
            src=3D"http://matp.pa.gov/images/bullet3.jpg"></TD>
          <TD>The MATP provider will give you information about how to=20
            schedule transportation, use the local program and about =
your=20
          rights.</TD></TR></TBODY></TABLE></DIV>
      <DIV class=3Dbot></DIV></DIV></TD>
    <TD vAlign=3Dtop rowSpan=3D2 align=3Dleft><SPAN id=3Dcpse><IMG =
id=3DcpseImage=20
      border=3D0 alt=3D""=20
      src=3D"http://matp.pa.gov/images/pt.jpg"></SPAN><BR><BR><INPUT=20
      =
id=3Dctl00_ContentPlaceHolder1_CollapsiblePanelExtender1_ClientState=20
      type=3Dhidden=20
      =
name=3Dctl00$ContentPlaceHolder1$CollapsiblePanelExtender1_ClientState>=20
      <INPUT =
id=3Dctl00_ContentPlaceHolder1_CollapsiblePanelExtender2_ClientState=20
      type=3Dhidden=20
      =
name=3Dctl00$ContentPlaceHolder1$CollapsiblePanelExtender2_ClientState>=20
      <INPUT =
id=3Dctl00_ContentPlaceHolder1_CollapsiblePanelExtender3_ClientState=20
      type=3Dhidden=20
      =
name=3Dctl00$ContentPlaceHolder1$CollapsiblePanelExtender3_ClientState>=20
      <DIV id=3Dctl00_ContentPlaceHolder1_Panel0><B>Fixed Route Public=20
      Transportation</B><BR>Where public transit is available, county =
MATPs=20
      provide tokens, passes, scrip or reimbursement to eligible =
consumers to=20
      cover the fare for public or private transit services. </DIV><SPAN =

      id=3Dcpse1><IMG id=3DcpseImage1 border=3D0 alt=3D""=20
      src=3D"http://matp.pa.gov/images/mr.jpg"></SPAN><BR><BR>
      <DIV id=3Dctl00_ContentPlaceHolder1_Panel1>Where appropriate, the =
county=20
      MATP may reimburse consumers who have access to private vehicles =
(their=20
      own or another individual=E2=80=99s) but cannot meet their own =
transportation=20
      needs. This reimbursement will be at a specified rate per mile for =
travel=20
      expenses plus parking and tolls. The rate of reimbursement shall =
be=20
      determined by the county, but shall not be less than $.25 per =
mile.=20
      </DIV><SPAN id=3Dcpse2><IMG id=3DcpseImage2 border=3D0 alt=3D""=20
      src=3D"http://matp.pa.gov/images/ps.jpg"></SPAN><BR><BR>
      <DIV id=3Dctl00_ContentPlaceHolder1_Panel2>Where public transit is =
not=20
      available or is not appropriate for the rider, county MATPs =
provide rides=20
      on paratransit vehicles including vans, lift equipped vans and =
taxis.=20
      Usually the vehicle will be transporting multiple riders with =
different=20
      pick-up an drop-off locations. =
</DIV></TD></TR></TBODY></TABLE></DIV>
<DIV class=3Dbot></DIV></DIV><BR>
<DIV class=3DboxFull>
<DIV class=3Dtop>&nbsp; &nbsp;Click on a county to see more information =
about MATP=20
service there </DIV>
<DIV class=3Dmid>
<SCRIPT language=3Djavascript type=3Dtext/javascript>
				      function loadCtyData(str) {
				          =
document.aspnetForm.ctl00_ContentPlaceHolder1_ddCounty.selectedIndex =3D =
parseInt(str);
				          var xmlDoc =3D new ActiveXObject("Microsoft.XMLDOM");
				          var _info;
				          xmlDoc.async =3D "false";
				          xmlDoc.load("mapdata.aspx");
				          xmlObj =3D xmlDoc.documentElement;
				          _info =3D "<p>County MATP data for : <b>" + =
xmlObj.childNodes(parseInt(str) - 1).getAttribute("title") + " =
County</b></p> <b>Phone: </b>" + xmlObj.childNodes(parseInt(str) - =
1).getAttribute("phone") + " <br/><br/><b>Toll Free:</b> " + =
xmlObj.childNodes(parseInt(str) - 1).getAttribute("tollfree") + =
"<br/><br/>";
				          _info =3D _info + "<b>Grantee:</b> <br/>" + =
xmlObj.childNodes(parseInt(str) - 1).getAttribute("grantee") + "<br/>";
				          _info =3D _info + "<b>Contractor:</b> <br/>" + =
xmlObj.childNodes(parseInt(str) - 1).getAttribute("contractor") + =
"<br/>";
				          //_info =3D _info + "<b>Waiver:</b> <br/>" + =
xmlObj.childNodes(parseInt(str) - 1).getAttribute("waiver");
				          _info =3D _info + "<p>For more information visit <a =
href=3DCountyProfiles.aspx>County Profiles</a>.</p>";
				          document.getElementById("infoFrame").innerHTML =3D _info;
				      }
				      function GetSelectedItem() {
				          if =
(document.aspnetForm.ctl00_ContentPlaceHolder1_ddCounty.selectedIndex =
!=3D 0) {
				              =
loadCtyData(document.aspnetForm.ctl00_ContentPlaceHolder1_ddCounty.select=
edIndex);
				          }
				      }=20

                    </SCRIPT>

<TABLE>
  <TBODY>
  <TR>
    <TD>
      <OBJECT=20
      =
codeBase=3D"http://download.macromedia.com/pub/shockwave/cabs/flash/swfla=
sh.cab#version=3D7,0,19,0"=20
      classid=3Dclsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=3D600 =
height=3D358><PARAM NAME=3D"movie" VALUE=3D"paCountyMap.swf"><PARAM =
NAME=3D"quality" VALUE=3D"high"><PARAM NAME=3D"allowScriptAccess" =
VALUE=3D"always"><PARAM NAME=3D"flashvars" =
VALUE=3D"jsfunction=3DloadCtyData&amp;xmlpath=3Dmapdata.aspx">
                                                                         =
       =20
                                                       <embed=20
      src=3D"paCountyMap.swf" quality=3D"high" =
allowscriptaccess=3D"always"=20
      flashvars=3D"jsfunction=3DloadCtyData&xmlpath=3Dmapdata.aspx"=20
      pluginspage=3D"http://www.macromedia.com/go/getflashplayer"=20
      type=3D"application/x-shockwave-flash" width=3D"600" =
height=3D"358"></embed>    =20
                       </OBJECT></TD>
    <TD><SELECT id=3Dctl00_ContentPlaceHolder1_ddCounty=20
      onchange=3DGetSelectedItem() =
name=3Dctl00$ContentPlaceHolder1$ddCounty>=20
        <OPTION selected value=3D"">Select a County</OPTION> <OPTION=20
        value=3DAdams>Adams</OPTION> <OPTION =
value=3DAllegheny>Allegheny</OPTION>=20
        <OPTION value=3DArmstrong>Armstrong</OPTION> <OPTION=20
        value=3DBeaver>Beaver</OPTION> <OPTION =
value=3DBedford>Bedford</OPTION>=20
        <OPTION value=3DBerks>Berks</OPTION> <OPTION =
value=3DBlair>Blair</OPTION>=20
        <OPTION value=3DBradford/Tioga>Bradford/Tioga</OPTION> <OPTION=20
        value=3DBucks>Bucks</OPTION> <OPTION =
value=3DButler>Butler</OPTION> <OPTION=20
        value=3DCambria>Cambria</OPTION> <OPTION =
value=3DCameron>Cameron</OPTION>=20
        <OPTION value=3DCarbon>Carbon</OPTION> <OPTION=20
        value=3DCentre>Centre</OPTION> <OPTION =
value=3DChester>Chester</OPTION>=20
        <OPTION value=3DClarion>Clarion</OPTION> <OPTION=20
        value=3DClearfield>Clearfield</OPTION> <OPTION=20
        value=3DClinton>Clinton</OPTION> <OPTION =
value=3DColumbia>Columbia</OPTION>=20
        <OPTION value=3DCrawford>Crawford</OPTION> <OPTION=20
        value=3DCumberland>Cumberland</OPTION> <OPTION=20
        value=3DDauphin>Dauphin</OPTION> <OPTION =
value=3DDelaware>Delaware</OPTION>=20
        <OPTION value=3DElk>Elk</OPTION> <OPTION =
value=3DErie>Erie</OPTION> <OPTION=20
        value=3DFayette>Fayette</OPTION> <OPTION =
value=3DForest>Forest</OPTION>=20
        <OPTION value=3DFranklin>Franklin</OPTION> <OPTION=20
        value=3DFulton>Fulton</OPTION> <OPTION =
value=3DGreene>Greene</OPTION>=20
        <OPTION value=3DHuntingdon>Huntingdon</OPTION> <OPTION=20
        value=3DIndiana>Indiana</OPTION> <OPTION=20
        value=3DJefferson>Jefferson</OPTION> <OPTION=20
        value=3DJuniata>Juniata</OPTION> <OPTION=20
        value=3DLackawanna>Lackawanna</OPTION> <OPTION=20
        value=3DLancaster>Lancaster</OPTION> <OPTION=20
        value=3DLawrence>Lawrence</OPTION> <OPTION =
value=3DLebanon>Lebanon</OPTION>=20
        <OPTION value=3DLehigh>Lehigh</OPTION> <OPTION=20
        value=3DLuzerne>Luzerne</OPTION> <OPTION =
value=3DLycoming>Lycoming</OPTION>=20
        <OPTION value=3DMcKean>McKean</OPTION> <OPTION=20
        value=3DMercer>Mercer</OPTION> <OPTION =
value=3DMifflin>Mifflin</OPTION>=20
        <OPTION value=3DMonroe>Monroe</OPTION> <OPTION=20
        value=3DMontgomery>Montgomery</OPTION> <OPTION=20
        value=3DMontour>Montour</OPTION> <OPTION=20
        value=3DNorthampton>Northampton</OPTION> <OPTION=20
        value=3DNorthumberland>Northumberland</OPTION> <OPTION=20
        value=3DPerry>Perry</OPTION> <OPTION=20
        value=3DPhila--Contract>Phila--Contract</OPTION> <OPTION=20
        value=3DPike>Pike</OPTION> <OPTION =
value=3DPotter>Potter</OPTION> <OPTION=20
        value=3DSchuylkill>Schuylkill</OPTION> <OPTION=20
        value=3DSnyder>Snyder</OPTION> <OPTION =
value=3DSomerset>Somerset</OPTION>=20
        <OPTION value=3DSullivan>Sullivan</OPTION> <OPTION=20
        value=3DSusquehanna>Susquehanna</OPTION> <OPTION=20
        value=3DTioga--W/Bradford>Tioga--W/Bradford</OPTION> <OPTION=20
        value=3DUnion>Union</OPTION> <OPTION =
value=3DVenango>Venango</OPTION>=20
        <OPTION value=3DWarren>Warren</OPTION> <OPTION=20
        value=3DWashington>Washington</OPTION> <OPTION =
value=3DWayne>Wayne</OPTION>=20
        <OPTION value=3DWestmoreland>Westmoreland</OPTION> <OPTION=20
        value=3DWyoming>Wyoming</OPTION> <OPTION =
value=3DYork>York</OPTION></SELECT>=20
      <BR>
      <DIV style=3D"WIDTH: 150px; FLOAT: left; HEIGHT: 300px" =
id=3DinfoFrame><BR>
      <P>For more information visit <A=20
      href=3D"http://matp.pa.gov/CountyProfiles.aspx">County=20
      Profiles</A>.</P></DIV><BR></TD></TR></TBODY></TABLE><BR></DIV>
<DIV class=3Dbot></DIV>
<HR>
</DIV></DIV>
<DIV id=3Dfooter>
<H4>=C2=A9 Commonwealth of Pennsylvania, All Rights Reserved</H4>
<TABLE width=3D960>
  <TBODY>
  <TR align=3Dmiddle>
    <TD width=3D230><A href=3D"http://www.dpw.state.pa.us/" =
target=3DSelf><IMG=20
      border=3D0 alt=3D"Department of Public Welfare"=20
      src=3D"http://matp.pa.gov/images/DPWLogoBot.jpg"></A></TD>
    <TD>
      <UL>
        <LI><A href=3D"http://matp.pa.gov/Default.aspx">Home</A> | </LI>
        <LI><A href=3D"http://matp.pa.gov/Consumers.aspx">For =
Consumers</A> |=20
</LI>
        <LI><A href=3D"http://matp.pa.gov/Providers.aspx">For =
Providers</A> |=20
</LI>
        <LI><A href=3D"http://matp.pa.gov/ProgramRules.aspx">Program =
Rules</A> |=20
        </LI>
        <LI><A href=3D"http://matp.pa.gov/Data.aspx">Data</A> | </LI>
        <LI><A href=3D"http://matp.pa.gov/Advisory.aspx">Advisory =
Committee</A>=20
        </LI></UL></TD>
    <TD width=3D230><A href=3D"http://www.pa.gov/" target=3DSelf><IMG =
border=3D0=20
      alt=3DPA.Gov=20
src=3D"http://matp.pa.gov/images/PALogoBot.jpg"></A></TD></TR></TBODY></T=
ABLE><BR></DIV></DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.Application.initialize();
Sys.Application.add_init(function() {
    $create(AjaxControlToolkit.CollapsiblePanelBehavior, =
{"ClientStateFieldID":"ctl00_ContentPlaceHolder1_CollapsiblePanelExtender=
1_ClientState","CollapseControlID":"cpse","Collapsed":true,"CollapsedImag=
e":"Images/pt.jpg","CollapsedSize":0,"CollapsedText":"Click to see more =
information","ExpandControlID":"cpse","ExpandedImage":"Images/pt_d.jpg","=
ExpandedSize":100,"ExpandedText":"Hide =
information","ImageControlID":"cpseImage","TextLabelID":"Label1","id":"ct=
l00_ContentPlaceHolder1_CollapsiblePanelExtender1"}, null, null, =
$get("ctl00_ContentPlaceHolder1_Panel0"));
});
Sys.Application.add_init(function() {
    $create(AjaxControlToolkit.CollapsiblePanelBehavior, =
{"ClientStateFieldID":"ctl00_ContentPlaceHolder1_CollapsiblePanelExtender=
2_ClientState","CollapseControlID":"cpse1","Collapsed":true,"CollapsedIma=
ge":"Images/mr.jpg","CollapsedSize":0,"CollapsedText":"Click to see more =
information","ExpandControlID":"cpse1","ExpandedImage":"Images/mr_d.jpg",=
"ExpandedSize":150,"ExpandedText":"Hide =
Information","ImageControlID":"cpseImage1","TextLabelID":"Label1","id":"c=
tl00_ContentPlaceHolder1_CollapsiblePanelExtender2"}, null, null, =
$get("ctl00_ContentPlaceHolder1_Panel1"));
});
Sys.Application.add_init(function() {
    $create(AjaxControlToolkit.CollapsiblePanelBehavior, =
{"ClientStateFieldID":"ctl00_ContentPlaceHolder1_CollapsiblePanelExtender=
3_ClientState","CollapseControlID":"cpse2","Collapsed":true,"CollapsedIma=
ge":"Images/ps.jpg","CollapsedSize":0,"CollapsedText":"Click to see more =
information","ExpandControlID":"cpse2","ExpandedImage":"Images/ps_d.jpg",=
"ExpandedSize":100,"ExpandedText":"Hide =
Information","ImageControlID":"cpseImage2","TextLabelID":"Label2","id":"c=
tl00_ContentPlaceHolder1_CollapsiblePanelExtender3"}, null, null, =
$get("ctl00_ContentPlaceHolder1_Panel2"));
});
//]]>
</SCRIPT>
</FORM></BODY></HTML>

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://matp.pa.gov/images/bullet1.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwM
DAwMEAwODxAPDgwTExQUExMcGxsbHCAgICAgICAgICD/2wBDAQcHBw0MDRgQEBgaFREVGiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD/wAARCAAgACADAREA
AhEBAxEB/8QAGwAAAgEFAAAAAAAAAAAAAAAABAgHAAECAwX/xAAqEAABAwMDAgYCAwAAAAAAAAAC
AQMEBQcRAAYSITIUQVFxgYIiIxMxY//EABoBAAIDAQEAAAAAAAAAAAAAAAIEAAEGAwX/xAAiEQAB
BAIBBQEBAAAAAAAAAAABAAIDEQQSQRMhIlFxMWH/2gAMAwEAAhEDEQA/AJ1ufc+kbEpAvvj4qpys
pAgIvFTUe4iLrxAc9V0bGWhc6kse4L23LrUgnCrL0BpeyPAVYwCnohB+xfsS6ZEYCXLyq2/e25dF
kC4NZentJ3x56rJAk9FI/wBifUk1DGCoHlM5bC59I33SCfYHwtTi4SfAVeSgpdpCXTkBY6LpZ7KT
DXWljvbuCRWrl1k3Cy1AeWBHDyEIy8CRPdzkXzpmMUEu890fZqibFk1iNO3PKV1/x0eJTKEIcvEP
vmgi47/k2q5JFwi48+0pJtwoyuUDe+IzGujXWo7QssCbPFtsUEUzHbVcImE/vVxjxVPI2VrJbgkU
W5dGJssNT3kgSA8iCSvAUX2c4l8aqQdlbD3W28+25FIubWQcDDU95Z8c/IxkrzJU9nOQ/GumONgu
c51QWwgYjbyoEl8xZYYqMRx101QRERfFSIiXoiIidV16DoPA16XmjI8xftdi8bkKoXDrMyE+3KjO
k1/G+ySOAWGG0XBDlF6poYID0xf6imyB1DRsIazW2pFXuZRhbDLUB5J8g/IRjLzFV93OI/Okskah
PYztkzNyba0ne9LBl8vDVKLlYM5Eyocu4STpyAsdU0pDMWFNTQ7hQBUrRb9oz6tu0pyY2na/CRZA
knqiB+afYU1osbNiPNfVm8rBmHF/FnTbR78rDwttUpyG2vc/NRY4inqqH+a/ArosnOhHN/EGLgTH
ivqn23Ft6VsmmGywXiKjJws6cqYU8doinXiA56JrOTzGQ/xaaCERil//2Q==

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://matp.pa.gov/images/bullet2.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwM
DAwMEAwODxAPDgwTExQUExMcGxsbHCAgICAgICAgICD/2wBDAQcHBw0MDRgQEBgaFREVGiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD/wAARCAAgACADAREA
AhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAACAADBQYHAv/EACkQAAEEAAUCBgMBAAAAAAAAAAIB
AwQFAAYHERIhMhQiMUFRgRMjcYL/xAAZAQACAwEAAAAAAAAAAAAAAAACBAEDBgD/xAAgEQABBAID
AQEBAAAAAAAAAAABAAIDEQQSIUFxMVFh/9oADAMBAAIRAxEAPwDddT9T6jIlQL74+Ks5W6QICLxU
1HuIi68QHfquDYy0LnUhjzBrbqXdSCcK5egNL2R4CrGAU+EIP2L/AKJcMiMBLl5Sy/rbqXSyBcG5
entJ3x56rJAk+FI/2J/kkxxjBXB5ROaYan1Ge6gn2B8LZxdknwFXkoKXaQl05AW3RcLPZSYa60Me
tuYJF1qXcm4W7UB5YEcPYQjLwJE/rnIvvDMYoJd55Tmn2cMp5WpLOW9Tpa5ucIRqymMg7BaaTjuq
+cTQ13L0H2RN03XEujJ8UCQD1TuulbXBX5TtVqo9NmO0huP3VfGH8SIvkUDNn1BVIj7k5eyqvHAx
Xz+IpCOFXtEswSKXUumJstmp7yQJAexBJXgKL/HOJfWJkHChh5Tus+W5FRqbcg4GzU95Z8c/Yxkr
zJU/jnIfrFmONgq5zqrhoXl7JjfiMxXlnAYsojn46iJOebAQdEULxJtEQKeykiB16Kir67KluQ1/
xoJHdKjHez64geqF1coQCwatnM1RszzbAnPzrGUP0oHHgmwOOoIryXinT0xdCyxWpbSpmfRvYOtR
ejWWpFvqZTC2G7UB5J8g/YRjLzFV/rnEfvCuSNQm8Z2yJnUnTWpzvVgy+XhrKLusGcibqHLuEk6c
gLbqmFIZiwpqaHcLALLSLPtM+rbtU5MbTtfhIsgST5RA86f6FMaLGzYj3XqzeVgzDq/F3W6R58uH
hbaqnIba9z81FjiKfKofnX6FcFk50I7vxBi4Ex6r1b7pxpvVZJrDZYLxFjJ2WdOVNlPbtEU68QHf
omM5PMZD/FpoIRGKX//Z

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://matp.pa.gov/images/bullet3.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwM
DAwMEAwODxAPDgwTExQUExMcGxsbHCAgICAgICAgICD/2wBDAQcHBw0MDRgQEBgaFREVGiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD/wAARCAAgACADAREA
AhEBAxEB/8QAGwAAAQQDAAAAAAAAAAAAAAAACAAEBQcCAwb/xAApEAABAwMDAgYDAQAAAAAAAAAC
AQMEBQcRAAYSITIUMUFRcYEiI4IT/8QAGQEAAgMBAAAAAAAAAAAAAAAAAAQBAgYD/8QAHxEAAQQC
AwEBAAAAAAAAAAAAAQACAxEEcRIhQaFh/9oADAMBAAIRAxEAPwC9bn3PpGxKQL74+KqcrKQICLxU
1HuIi68QHPVdXYy1VzqQx7gvbcutSCcKsvQGl7I8BVjAKeyEH7F/ol0yIwEuXlLb97bl0WQLg1l6
e0nfHnqskCT2Uj/Yn8kmgxgoDyicthc+kb7pBPsD4WpxcJPgKvJQUu0hLpyAsdF0s9lJhrrQx3t3
BIrVy6ybhZagPLAjh6CEZeBIny5yL70zGKCXee06tbuWnUlqREh7care8qi82zR3Zgg5Gbyojx4k
oKKrkskhJ6eSZ1L2E6Q14G06v7TKJC3ZEGBBbp1Scgsu1uHGTEcJRpn9fkmePmophfPu5aiK6RIR
ai7JbgkUW5dGJssNT3kgSA9CCSvAUX4c4l9aJB0hh7W28+25FIubWQcDDU95Z8c/QxkrzJU+HOQ/
WumOOQXOc8VI7B2hsyv0GfHl1ZKRulo0OA7LcFqGbP4/jnz555Z6+yoi9dNPD2kULb9SbHNcDZp3
xSt5p9Gep22aFDnjWJ1Eik1PqgL/AKAamjfEBcyvPjwX4+c6iCB3biKBRPkN6aDZC5uzW2pFXuZR
hbDLUB5J8g/QRjLzFV+XOI/el8kcQmsZ3JEzcm2tJ3vSwZfLw1Si5WDORMqHLuEk6cgLHVNKQzFh
TU0PMKgKlaLftGfVt2lOTG07X4SLIEk90QPzT+hTWixs2I+1tZvKwZh5elnTbR78rDwttUpyG2vc
/NRY4inuqH+a/Qrq2TnQj29KmLgTHytq/bcW3pWyaYbLBeIqMnCzpyphTx2iKdeIDnoms5PMZD+L
TQQiMUv/2Q==

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://matp.pa.gov/images/pt.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QqyRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp
AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dz
ADIwMDk6MTA6MTQgMDk6NDA6MTkAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA5KADAAQAAAAB
AAAALgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAl8AAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAIACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8At9Z6z1TI6nkj7TdVVTdZVVVVY6tobW51X+Ccze52zd71Sb1D
qJsrH23JM21Ag32wQbGAg/pFbow6Op53WbRdYK8DKeLxTX6jx6l9zDZ6ZczdXS2qy23099uz+aqs
Qeo4NGA7ptrbnur6heG4/rMFbnBltQFrGNc/9Fe2xtlPqbLNn+DUulUs1u3urM54seA8wHGNT4/F
R+32fvu+8/3rCtzf0tmv5zvylYlP1kzn9ROOThOrd1Q9Lrxmve3M2721MznNdY+p9Pu9/wChrUS9
7j7fZ++77z/el9vs/fd95/vXH5f1lpb0l/UMI+q9+NblYrbGvDXspsbjWOsH6N7Weo799Hu62z1v
Qoa9lrczFxba8qt1T2syn7GZHovNbvfT+kp3/wDX6/Ykp6n7fZ++77z/AHpfb7P33fef71ybevND
bjYyxz25L8ajHoqtfe8srbkOmlzG+9tbnWvfX+g9BP1LqmbT09+bhGkelS/IezKZbLmNZ61ddbKn
Uvquf/w6Snq/t9n77vvP96X2+z9933n+9clX1q+ivGZ1EsszMxvqUU4FVzwWhlNr2ubY65/qV+v7
37q6US3ruPTkPx7xdS9jLbGvsrcGWMx2mzKfjP8A8O2mtu//AIX/AASSnqft9n77vvP96X2+z993
3n+9coz6xYdlZsYL4Po+k002Nfb9pluF9lrsbW69uS9j2Vv+glf9YMbHgXV5LX+h9qsq9CzfXQHv
ofkZLNv6Gqqyp2//ALcr3sSU9X9vs/fd95/vS+32fvu+8/3rl39dxGZQxdz3PJqa61jHOqY7I/ob
ci9gLKftU/oVWv8ArPS3HZfjU5GQx2VViFwpsibH2VWej7R9our9B+2qr/CenXv/ADElPY/b7P33
fef70vt9n77vvP8AeuZf1iqrMZi3V5FbrCW1PNTtljw31nUUWD+eyNn5jG++z9H6nqKr0/6wvzKO
mXOqOP8AtE2bhY20NAra+z9Xt2enZ9D+cu9Oqz9Ps/m0lPYfb7P33fef70vt9n77vvP965Jv1n6c
an2udbWxlbLwbKbGl9Nr241OVjsLPUuofkP9P2MVjG6tXkse5gsYarXU2V3MdU9r2BrnsfXZ7voW
1P8A7aSnpft9n75+8/3qNvWXYvpPd+krsvppeO49exuM17f6llrHf1Fg/bfNCyMn1PszJ5zMP8Mr
HSU//9CjT12zo/Vuu1HDZmU5ubcXtc91bmPpyL7KLqbqw51dlbn763t/SV2+nbXZ+jUMjrjuq5/R
sduG3Dpw8utwh7rX2PuupdddfdYGOsttc3fY93vfZ71v/WT6l59PULszBpdl42XY60srg2VvsPqW
McxzhvrdY5z2WMWVR9XetVZePeemZO2m6q10MExW9ljtvv8ApbWq3wYuDi9wcVbdbavuZePh9uXD
fzdE1maPUfr+c78pQsO6jBstvxwPtF992TZe5jPUm4t/QMvaz12UNa3/AEv59iE7oH1nL3OHTciC
4ke0cEz+8m/5v/Wf/wArb/uH/klUbSGvBxGYX2N2TfZUMezEqaW1AV1W2sybNnpt9S2zcx3vuerV
1jbjZc7IsOZdkU5T8ssrBDsZz7MWurGb+g9P1LbLbfU/nX/8Wh/83/rP/wCVt/3D/wAkl/zf+s//
AJW3/cP/ACSSmTxVu30ZFtFwyLchtwbW9w9almBZUKrR6Tt9Ff0v+21PJuZfjXYxscW3VOpdY4De
d7fTssLWbK97pdZtQv8Am/8AWf8A8rb/ALh/5JL/AJv/AFn/APK2/wC4f+SSU2DlVfaK72ueDj0v
oqbpqLG0Ul1v9jF+gz99UhhYXq23mx5ssbltADKmx9trsxrd97Wfasn0vWc+r17PZsZWxF/5v/Wf
/wArb/uH/kkv+b/1n/8AK2/7h/5JJTKz7M9r27iQ+nFx4tZXc014jXMZ6lVo9N9l273bPT9P/BPV
dmHUwuqqyrKcMYLcKzSt91pdkW5Vwra9vp4lddNu1jq/5r9HX+kRv+b/ANZ//K2/7h/5JL/m/wDW
f/ytv+4f+SSUzjDOSXzYzCc/Ge/pzNhrf9jDasOt+Rax2QxjKqqq7/T/AJ9Rs2OwsbFbe+t2K8X1
5Aa0kXC+3O9QUu/RbPVyHN9Nyb/m/wDWf/ytv+4f+SS/5v8A1n/8rb/uH/kklL1V4dXUR1APe57M
luUxprp3FzWehtsy9n2r0f8AutW/0K/f/hNiWI2jHpw6n3WXtwfU9IObW32vqsxmUH0x9Fjb3u9V
36V6b/m/9Z//ACtv+4f+SS/5v/Wf/wArb/uH/kklLVU4za2NuvuyH114+PXY4Vt9PHx7KcptNLKm
s9S6x2LRV9pv9/p/vqwzKrYb3tJ35WRZlWTwHWCtmxn8lrafpPQP+b/1n/8AK2/7h/5JL/m/9Z//
ACtv+4f+SSU2fto8VOjJ9TMw2TzmYv4X0qn/AM3/AKz/APlbf9w/8ktL6v8A1V6/d1XGsysZ+Jj4
1zLrX2wP5tzbmsraHbn+o5n9hJT/AP/Z/+0PklBob3Rvc2hvcCAzLjAAOEJJTQQlAAAAAAAQAAAA
AAAAAAAAAAAAAAAAADhCSU0D7QAAAAAAEABIAAAAAQABAEgAAAABAAE4QklNBCYAAAAAAA4AAAAA
AAAAAAAAP4AAADhCSU0EDQAAAAAABAAAAHg4QklNBBkAAAAAAAQAAAAeOEJJTQPzAAAAAAAJAAAA
AAAAAAABADhCSU0ECgAAAAAAAQAAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAv
ZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAA
AQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP//
//////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA////
/////////////////////////wPoAAA4QklNBAAAAAAAAAIAAjhCSU0EAgAAAAAABgAAAAAAADhC
SU0EMAAAAAAAAwEBAQA4QklNBC0AAAAAAAYAAQAAAAM4QklNBAgAAAAAABAAAAABAAACQAAAAkAA
AAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADSQAAAAYAAAAAAAAAAAAAAC4AAADkAAAACgBV
AG4AdABpAHQAbABlAGQALQAxAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAADkAAAA
LgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIA
AAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxv
bmcAAAAAAAAAAEJ0b21sb25nAAAALgAAAABSZ2h0bG9uZwAAAOQAAAAGc2xpY2VzVmxMcwAAAAFP
YmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcA
AAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlw
ZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAA
AAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAC4AAAAAUmdo
dGxvbmcAAADkAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQA
AAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxU
ZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZh
dWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdD
b2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9u
ZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3Jp
Z2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAT/wAAAAAAAAOEJJTQQUAAAAAAAEAAAA
AzhCSU0EDAAAAAAJmAAAAAEAAACgAAAAIAAAAeAAADwAAAAJfAAYAAH/2P/gABBKRklGAAECAABI
AEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8M
DA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4Q
FA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AA
EQgAIACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEA
AQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFh
EyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPT
dePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYH
BwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLS
RJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3
x//aAAwDAQACEQMRAD8At9Z6z1TI6nkj7TdVVTdZVVVVY6tobW51X+Ccze52zd71Sb1DqJsrH23J
M21Ag32wQbGAg/pFbow6Op53WbRdYK8DKeLxTX6jx6l9zDZ6ZczdXS2qy23099uz+aqsQeo4NGA7
ptrbnur6heG4/rMFbnBltQFrGNc/9Fe2xtlPqbLNn+DUulUs1u3urM54seA8wHGNT4/FR+32fvu+
8/3rCtzf0tmv5zvylYlP1kzn9ROOThOrd1Q9Lrxmve3M2721MznNdY+p9Pu9/wChrUS97j7fZ++7
7z/el9vs/fd95/vXH5f1lpb0l/UMI+q9+NblYrbGvDXspsbjWOsH6N7Weo799Hu62z1vQoa9lrcz
Fxba8qt1T2syn7GZHovNbvfT+kp3/wDX6/Ykp6n7fZ++77z/AHpfb7P33fef71ybevNDbjYyxz25
L8ajHoqtfe8srbkOmlzG+9tbnWvfX+g9BP1LqmbT09+bhGkelS/IezKZbLmNZ61ddbKnUvquf/w6
Snq/t9n77vvP96X2+z9933n+9clX1q+ivGZ1EsszMxvqUU4FVzwWhlNr2ubY65/qV+v737q6US3r
uPTkPx7xdS9jLbGvsrcGWMx2mzKfjP8A8O2mtu//AIX/AASSnqft9n77vvP96X2+z9933n+9coz6
xYdlZsYL4Po+k002Nfb9pluF9lrsbW69uS9j2Vv+glf9YMbHgXV5LX+h9qsq9CzfXQHvofkZLNv6
Gqqyp2//ALcr3sSU9X9vs/fd95/vS+32fvu+8/3rl39dxGZQxdz3PJqa61jHOqY7I/obci9gLKft
U/oVWv8ArPS3HZfjU5GQx2VViFwpsibH2VWej7R9our9B+2qr/CenXv/ADElPY/b7P33fef70vt9
n77vvP8AeuZf1iqrMZi3V5FbrCW1PNTtljw31nUUWD+eyNn5jG++z9H6nqKr0/6wvzKOmXOqOP8A
tE2bhY20NAra+z9Xt2enZ9D+cu9Oqz9Ps/m0lPYfb7P33fef70vt9n77vvP965Jv1n6can2udbWx
lbLwbKbGl9Nr241OVjsLPUuofkP9P2MVjG6tXkse5gsYarXU2V3MdU9r2BrnsfXZ7voW1P8A7aSn
pft9n75+8/3qNvWXYvpPd+krsvppeO49exuM17f6llrHf1Fg/bfNCyMn1PszJ5zMP8MrHSU//9Cj
T12zo/Vuu1HDZmU5ubcXtc91bmPpyL7KLqbqw51dlbn763t/SV2+nbXZ+jUMjrjuq5/RsduG3Dpw
8utwh7rX2PuupdddfdYGOsttc3fY93vfZ71v/WT6l59PULszBpdl42XY60srg2VvsPqWMcxzhvrd
Y5z2WMWVR9XetVZePeemZO2m6q10MExW9ljtvv8ApbWq3wYuDi9wcVbdbavuZePh9uXDfzdE1maP
Ufr+c78pQsO6jBstvxwPtF992TZe5jPUm4t/QMvaz12UNa3/AEv59iE7oH1nL3OHTciC4ke0cEz+
8m/5v/Wf/wArb/uH/klUbSGvBxGYX2N2TfZUMezEqaW1AV1W2sybNnpt9S2zcx3vuerV1jbjZc7I
sOZdkU5T8ssrBDsZz7MWurGb+g9P1LbLbfU/nX/8Wh/83/rP/wCVt/3D/wAkl/zf+s//AJW3/cP/
ACSSmTxVu30ZFtFwyLchtwbW9w9almBZUKrR6Tt9Ff0v+21PJuZfjXYxscW3VOpdY4Ded7fTssLW
bK97pdZtQv8Am/8AWf8A8rb/ALh/5JL/AJv/AFn/APK2/wC4f+SSU2DlVfaK72ueDj0voqbpqLG0
Ul1v9jF+gz99UhhYXq23mx5ssbltADKmx9trsxrd97Wfasn0vWc+r17PZsZWxF/5v/Wf/wArb/uH
/kkv+b/1n/8AK2/7h/5JJTKz7M9r27iQ+nFx4tZXc014jXMZ6lVo9N9l273bPT9P/BPVdmHUwuqq
yrKcMYLcKzSt91pdkW5Vwra9vp4lddNu1jq/5r9HX+kRv+b/ANZ//K2/7h/5JL/m/wDWf/ytv+4f
+SSUzjDOSXzYzCc/Ge/pzNhrf9jDasOt+Rax2QxjKqqq7/T/AJ9Rs2OwsbFbe+t2K8X15Aa0kXC+
3O9QUu/RbPVyHN9Nyb/m/wDWf/ytv+4f+SS/5v8A1n/8rb/uH/kklL1V4dXUR1APe57MluUxprp3
FzWehtsy9n2r0f8AutW/0K/f/hNiWI2jHpw6n3WXtwfU9IObW32vqsxmUH0x9Fjb3u9V36V6b/m/
9Z//ACtv+4f+SS/5v/Wf/wArb/uH/kklLVU4za2NuvuyH114+PXY4Vt9PHx7KcptNLKms9S6x2LR
V9pv9/p/vqwzKrYb3tJ35WRZlWTwHWCtmxn8lrafpPQP+b/1n/8AK2/7h/5JL/m/9Z//ACtv+4f+
SSU2fto8VOjJ9TMw2TzmYv4X0qn/AM3/AKz/APlbf9w/8ktL6v8A1V6/d1XGsysZ+Jj41zLrX2wP
5tzbmsraHbn+o5n9hJT/AP/ZOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABv
AHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwAyAAAA
AQA4QklNBAYAAAAAAAcABQAAAAEBAP/hOrBodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/
eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4Onht
cG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IjMuMS4xLTExMSI+CiAgIDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4
LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHht
bG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpm
b3JtYXQ+aW1hZ2UvanBlZzwvZGM6Zm9ybWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAg
ICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwPSJo
dHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPHhhcDpDcmVhdG9yVG9vbD5B
ZG9iZSBQaG90b3Nob3AgQ1MyIFdpbmRvd3M8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhh
cDpDcmVhdGVEYXRlPjIwMDktMTAtMTRUMDk6NDA6MTktMDQ6MDA8L3hhcDpDcmVhdGVEYXRlPgog
ICAgICAgICA8eGFwOk1vZGlmeURhdGU+MjAwOS0xMC0xNFQwOTo0MDoxOS0wNDowMDwveGFwOk1v
ZGlmeURhdGU+CiAgICAgICAgIDx4YXA6TWV0YWRhdGFEYXRlPjIwMDktMTAtMTRUMDk6NDA6MTkt
MDQ6MDA8L3hhcDpNZXRhZGF0YURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXBNTT0iaHR0
cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0
dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiPgogICAgICAgICA8
eGFwTU06RG9jdW1lbnRJRD51dWlkOjlERUIyRkQ5QzZCOERFMTE4RDI1RThFOUI2Q0U2NTc2PC94
YXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOjlFRUIyRkQ5
QzZCOERFMTE4RDI1RThFOUI2Q0U2NTc2PC94YXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eGFw
TU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RS
ZWY6aW5zdGFuY2VJRD51dWlkOkI0NjUwNTc0QzNCOERFMTE4RDI1RThFOUI2Q0U2NTc2PC9zdFJl
ZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD51dWlkOkI0NjUwNTc0
QzNCOERFMTE4RDI1RThFOUI2Q0U2NTc2PC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICA8L3hh
cE1NOkRlcml2ZWRGcm9tPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNj
cmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFk
b2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9y
aWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6
WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlm
ZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNv
bHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwy
NjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMw
NiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyOzQ3M0ZGQUY4M0Q0RDQ0RDdCQzMxRUNENDdDOTVD
QTdFPC90aWZmOk5hdGl2ZURpZ2VzdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxy
ZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6
Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9u
PjIyODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lv
bj40NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwv
ZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpOYXRpdmVEaWdlc3Q+MzY4NjQsNDA5NjAs
NDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0
MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzczNzksMzczODAs
MzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0
ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUs
NDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5
OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4
LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzdCQzAwNDAxNThCRTRCMzI5Q0NGOTI3MTczNDI0
Q0Y2PC9leGlmOk5hdGl2ZURpZ2VzdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxy
ZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0i
aHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyI+CiAgICAgICAgIDxwaG90b3Nob3A6
SGlzdG9yeS8+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xv
ck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwv
cGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpS
REY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+
/+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNz
cE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQA
AABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAA
AkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVt
aQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgM
YlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENv
bXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2
MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1
AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJ
RUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVD
IDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVD
IDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2
Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYt
Mi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBML
AANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA
AAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7
AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYA
ywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1
AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0C
ZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOW
A6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0F
HAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0Qbj
BvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJ
EAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuA
C5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkO
ZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGM
EaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIV
NBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg
GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAd
mR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJV
IoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3on
qyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1B
LXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0Yz
fzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5
OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdB
KUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iR
SNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQ
u1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1ka
WWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfVi
SWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2un
a/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV1
4XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBH
gKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCL
lov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cK
l3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowaj
dqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AA
sHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9
j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2
y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ
8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui8
6Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4
qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+4ADkFkb2JlAGRAAAAAAf/bAIQABAMDAwMDBAMD
BAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgKCgwMDAwMCgwMDAwMDAwMDAwMDAwMDAwMDAwMDAEE
BQUIBwgPCgoPFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwM/8AAEQgALgDkAwERAAIRAQMRAf/dAAQAHf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIG
AQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMR
BAAFIRIxQVEGE2EicYEUMpGhBxWxQiPBUtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD
0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH
1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYE
CAMDbQEAAhEDBCESMUEFURNhIgZxgZEyobHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJE
gxdUkwgJChgZJjZFGidkdFU38qOzwygp0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2
R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwD
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
WIP+VZfV+H1mj8ePP7dOPPn6nbjWuKv/2Q==

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://matp.pa.gov/images/mr.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QrcRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp
AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dz
ADIwMDk6MTA6MTQgMDk6NDA6MzAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA5KADAAQAAAAB
AAAALgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAmmAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAIACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8At9a6z1PI6plfrNtVdNtlVVVVjq2tbW81D+aLN7n7Nz96pN6h
1E2Vj7bk621Aj17eDYwO/wAIrLcB/U+oZ78e+mtreoXYs3uLN17rLXtoZDH/AKRzf3lUyqW4WXg1
WX02jMfU/GspcXssb6zK91bi1m73f+YKXSvos1t9Bsz3Cx4DiAHERJ8VH9oO/fP3lYbszdkObu+k
8ifi5c0766ZgwMt4xmftCt9hwqPdstxq/tHrZbvfv24rcHL+0bbGfpPSUS99B/aDv3z95S/aDv3z
95XJWdcvHUfsTBWYz8PCcCLQ8Nyarsi21wc2uv8AwH6p6Vlv6L32/wDCTr+sGNbYK2+tLxaaX+k/
Zccf+ltw3x+suxne2z02f8X6qSnqv2g798/eUv2g798/eVyf/OPFDLC4XsupsrofiPqIyPWuBdiU
Mxxu3W5LWudV/wBc9TYn/wCcOMa2OY3IsdbbZTVS2l/rPfQN+X6dLg3c3E/w7/zElPV/tB375+8p
fb3fvn7yuQ6l191HTsfNxLKduVdQxt2SHiltV5d+s2hjqbmsra1LD+sD7MW27I2Xbcr7JjW4LbH1
5Ty1trWYddu+71Pfsf7/AEv+ESU9f+0Hfvn7yl+0Hfvn7yuS/wCcdJfS9pIxn0ZORY6yu1rwMX+e
YxuzZvpeyz7Uyx/6P/A+p7EqvrPg2WtpH2kOdZVUS7HtYAb/AOiPse9m2uvL/wC0+/8AnP8Ai0lP
W/tB375+8pftB375+8rksP6wC97aLmWV3WX5NNTxU9tDzjPs9leQ8ua+77PX6r/8Hv8A0f8AwalZ
9ZOn1Ui+y17a3Y7MwHY8/oLLGYtdpaG/nX31M9P6f+ESU9X9vd++fvKX7Qd++fvK5gdZByKsZtGU
6+5gs9IUWb663PONVbks9rqG23M2+7/jP5tD/wCcWEHOa51rWtbc9lxreKrRiyc77LbH6x9k2/pd
vs/0aSnq/wBoO/fP3lL9oO/fP3lcjX9Z8Gy5tLRkhxsrrJfj2sa03/0N9j3ta2uvM/7T7/p/9NTP
1jw2vexxtaGC8ttdU8V2fZWusz249kfpnYrGfpPb/wAWkp6v9oO/fP3lRs607F9J7v0lb7qaXA8j
1rGYzXt/qPtYuPv+tNLK2PopyLS6/GqLTRa0mvK3mnJpY5rbLm2Mqs+zt/w1qvZOSXnGrdInMw9D
zpk451/qpKf/0IYvXcDp9nXun5rLicjqeTfW6utl9Tv0ltLqM3EvspbkYzvz6t3/ABT8e+qq5V+s
dZxusde6K/FGQa8Wyip1uXt9Wxzr67H2P9L9G3/rf6L/AEVdVa2frH9Ss6nqF2ZgUvzMbKsdaWVw
bK32E2WMc1zm763WOc9ljf8Ai3rKx/q71urLxrz0zK203VWu9jSYY9ljo9/7rFb4MXBxe4OKvlvV
q+5l4+H25cN/NWn2p3Z0XOcOzyR8nKqBQ3AOCxx91F+O69wBsDcmx9+R6f7rd1n/AEEndA+sxc5w
6ZfDnEj2juZ/eTf83/rP/wCVt/3D/wAkqjaZXGp+XbmVW2UW25ePmNIbW8MOLXbjUM2WN22b2ZD/
AFtyDTiYFDMplRLW5LLq2n0aBYxt5Pqfrzavtl22t76/0j0T/m/9Z/8Aytv+4f8Akkv+b/1n/wDK
2/7h/wCSSUhGNVj1l2I5xyzfi5DbAMfGax+K26lj66a6fsm308mzey6t/qfnpWYNFmNiVX3NdfjP
yLnOayrJYHZLnvdU9mRSzFyXMrdV+mro9Jlv9GRv+b/1n/8AK2/7h/5JL/m/9Z//ACtv+4f+SSUl
ssx7DiNJcKcK6i+tjWsbP2f+bYWMaymtr/z/AE61XyMfFyGWC153W5YziTXXYxtoZ6L/ANDc17Mj
1/pXfaFP/m/9Z/8Aytv+4f8Akkv+b/1n/wDK2/7h/wCSSUqyvGfUyoPc1tWLkYjNldVbf1tuy+11
GO2qpu33OZXV/wBcsRLDi2ZVuQXW/pcjEyC2WmBgteyivdH0rfU/TWIf/N/6z/8Albf9w/8AJJf8
3/rP/wCVt/3D/wAkkpnjvrpsrsfdZd9nfddj1FrGsZbkG0vsc9u6670PtNv2drv8L/22q7MTGFQr
tyci6MerDaS2poZRTfRnVsrbWwbrN2L6frW/vov/ADf+s3/lZf8AcP8AySX/ADf+s/8A5W3/AHD/
AMkkplmDGzsxuVlOMNeLA1jK/UBbZ9o/RZr2nIo3e1jtns+n+j/SINeLh115bayGHMZfWIpp3VjI
LvV/W9gzb9jHvZWy25E/5v8A1n/8rb/uH/kkv+b/ANZ//K2/7h/5JJSS04tuVbkF1o9bIxMgtlug
wWvZj18fSt9Tda/8z/BqvXi4lbcva6HZbMhm70KN7PtW5tx+1+mMy3bXbYxlb7UT/m/9Z/8Aytv+
4f8Akkv+b/1n/wDK2/7h/wCSSUyyPRuc99dtlNm7DdTZDHmv7CHjHfteNl1j/U/Sb/0Ss0ZLX5uH
W2YOZiATE6X0nXb7VU/5v/Wf/wArb/uH/klo9A+qvX7uqY1mVjPxMbHurusssIE+m5tzWVt3F7nP
ezb9FJT/AP/Z/+0PvFBob3Rvc2hvcCAzLjAAOEJJTQQlAAAAAAAQAAAAAAAAAAAAAAAAAAAAADhC
SU0D7QAAAAAAEABIAAAAAQABAEgAAAABAAE4QklNBCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0E
DQAAAAAABAAAAHg4QklNBBkAAAAAAAQAAAAeOEJJTQPzAAAAAAAJAAAAAAAAAAABADhCSU0ECgAA
AAAAAQAAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAA
AQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThC
SU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP//////////////////////
//////8D6AAAAAD/////////////////////////////A+gAAAAA////////////////////////
/////wPoAAA4QklNBAAAAAAAAAIAAjhCSU0EAgAAAAAABgAAAAAAADhCSU0EMAAAAAAAAwEBAQA4
QklNBC0AAAAAAAYAAQAAAAM4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAAAAAE
AAAAADhCSU0EGgAAAAADSQAAAAYAAAAAAAAAAAAAAC4AAADkAAAACgBVAG4AdABpAHQAbABlAGQA
LQAyAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAADkAAAALgAAAAAAAAAAAAAAAAAA
AAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAA
AAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21s
b25nAAAALgAAAABSZ2h0bG9uZwAAAOQAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNs
aWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVu
dW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNl
VHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcA
AAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAC4AAAAAUmdodGxvbmcAAADkAAAAA3Vy
bFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFn
VEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAA
AAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGln
bmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAA
EUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91
dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAA
AAAAOEJJTQQoAAAAAAAMAAAAAT/wAAAAAAAAOEJJTQQUAAAAAAAEAAAAAzhCSU0EDAAAAAAJwgAA
AAEAAACgAAAAIAAAAeAAADwAAAAJpgAYAAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9D
TQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwM
DAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwM
DAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAIACgAwEiAAIRAQMR
Af/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVS
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
N2L6frW/vov/ADf+s3/lZf8AcP8AySX/ADf+s/8A5W3/AHD/AMkkplmDGzsxuVlOMNeLA1jK/UBb
Z9o/RZr2nIo3e1jtns+n+j/SINeLh115bayGHMZfWIpp3VjILvV/W9gzb9jHvZWy25E/5v8A1n/8
rb/uH/kkv+b/ANZ//K2/7h/5JJSS04tuVbkF1o9bIxMgtlugwWvZj18fSt9Tda/8z/BqvXi4lbcv
a6HZbMhm70KN7PtW5tx+1+mMy3bXbYxlb7UT/m/9Z/8Aytv+4f8Akkv+b/1n/wDK2/7h/wCSSUyy
PRuc99dtlNm7DdTZDHmv7CHjHfteNl1j/U/Sb/0Ss0ZLX5uHW2YOZiATE6X0nXb7VU/5v/Wf/wAr
b/uH/klo9A+qvX7uqY1mVjPxMbHurusssIE+m5tzWVt3F7nPezb9FJT/AP/ZOEJJTQQhAAAAAABV
AAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQ
AGgAbwB0AG8AcwBoAG8AcAAgAEMAUwAyAAAAAQA4QklNBAYAAAAAAAcABQAAAAEBAP/hOrBodHRw
Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1w
Q2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8i
IHg6eG1wdGs9IjMuMS4xLTExMSI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24g
cmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxl
bWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvanBlZzwvZGM6Zm9ybWF0Pgog
ICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9
IiIKICAgICAgICAgICAgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4K
ICAgICAgICAgPHhhcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ1MyIFdpbmRvd3M8L3hh
cDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMDktMTAtMTRUMDk6NDA6
MzAtMDQ6MDA8L3hhcDpDcmVhdGVEYXRlPgogICAgICAgICA8eGFwOk1vZGlmeURhdGU+MjAwOS0x
MC0xNFQwOTo0MDozMC0wNDowMDwveGFwOk1vZGlmeURhdGU+CiAgICAgICAgIDx4YXA6TWV0YWRh
dGFEYXRlPjIwMDktMTAtMTRUMDk6NDA6MzAtMDQ6MDA8L3hhcDpNZXRhZGF0YURhdGU+CiAgICAg
IDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgog
ICAgICAgICAgICB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIK
ICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
ZS9SZXNvdXJjZVJlZiMiPgogICAgICAgICA8eGFwTU06RG9jdW1lbnRJRD51dWlkOkEwRUIyRkQ5
QzZCOERFMTE4RDI1RThFOUI2Q0U2NTc2PC94YXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eGFw
TU06SW5zdGFuY2VJRD51dWlkOkExRUIyRkQ5QzZCOERFMTE4RDI1RThFOUI2Q0U2NTc2PC94YXBN
TTpJbnN0YW5jZUlEPgogICAgICAgICA8eGFwTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0i
UmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD51dWlkOkI2NjUwNTc0QzNC
OERFMTE4RDI1RThFOUI2Q0U2NTc2PC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RS
ZWY6ZG9jdW1lbnRJRD51dWlkOkI2NjUwNTc0QzNCOERFMTE4RDI1RThFOUI2Q0U2NTc2PC9zdFJl
Zjpkb2N1bWVudElEPgogICAgICAgICA8L3hhcE1NOkRlcml2ZWRGcm9tPgogICAgICA8L3JkZjpE
ZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAg
ICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8
dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVz
b2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllS
ZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6
UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6TmF0
aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgz
LDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyO0Uz
NTZDNDNCNzY2QUQyMTRBMjM2ODgzMTlEN0UzMDgzPC90aWZmOk5hdGl2ZURpZ2VzdD4KICAgICAg
PC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAg
ICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAg
ICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjIyODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAg
ICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAg
ICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhp
ZjpOYXRpdmVEaWdlc3Q+MzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMs
Mzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4
NTYsMzczNzcsMzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUs
MzczODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0
OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAs
NDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5
LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzdC
QzAwNDAxNThCRTRCMzI5Q0NGOTI3MTczNDI0Q0Y2PC9leGlmOk5hdGl2ZURpZ2VzdD4KICAgICAg
PC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAg
ICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3Av
MS4wLyI+CiAgICAgICAgIDxwaG90b3Nob3A6SGlzdG9yeS8+CiAgICAgICAgIDxwaG90b3Nob3A6
Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUND
UHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgIDwv
cmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+/+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAA
bW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAEA
APbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZ
WgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACI
dnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAA
AAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQg
KGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5
NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAA
AAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAA
AAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAA
ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg
c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg
c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBW
aWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmll
d2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2
aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521l
YXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAE
AAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCG
AIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkB
HwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHp
AfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUD
AAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARV
BGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYG
BgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4
CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0K
VApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2Qzz
DQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQ
CRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNj
E4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0X
QRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtj
G4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+og
FSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJ
JTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1Kmgq
myrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBs
MKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq42
6TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2h
PeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5F
EkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6
TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtV
KFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3J
XhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhn
PWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDg
cTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7
Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YO
hnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+R
qJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951k
ndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamq
HKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbw
t2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHE
zsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB
00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UTh
zOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl
8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+4A
DkFkb2JlAGRAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgKCgwM
DAwMCgwMDAwMDAwMDAwMDAwMDAwMDAwMDAEEBQUIBwgPCgoPFA4ODhQUDg4ODhQRDAwMDAwREQwM
DAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgALgDkAwERAAIRAQMRAf/dAAQA
Hf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAAAQACAwQF
BgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPBUtHhMxZi
8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE1OT0ZXWF
laW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZqbnJ2en5
KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEyobHwFMHR
4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp0+PzhJSk
tMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+DlJWWl5
iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A6b+b/wCb3mefzPfeXtAvptK0nSrh
rVzbsYriWaJikjGRG5Baj4d8y8cBVlx5Tecf8rB8+f8AU06v/wBJ1x/1Uy3ww1cRZP8Alt52843v
5geXrTUfMWp3VlK9209tPeXEsbiLT7iUVVpP5kGU5YgC23GSeb6T/wAQT/79f/gsxXId/iCf/fr/
APBYq7/EE/8Av1/+CxV3+IJ/9+v/AMFirv8AEE/+/X/4LFXf4gn/AN+v/wAFirv8QT/79f8A4LFX
f4gn/wB+v/wWKu/xBP8A79f/AILFXf4gn/36/wDwWKu/xBP/AL9f/gsVd/iCf/fr/wDBYq7/ABBP
/v1/+CxV3+IJ/wDfr/8ABYq7/EE/+/X/AOCxV3+IJ/8Afr/8Firv8QT/AO/X/wCCxV3+IJ/9+v8A
8Firv8QT/wC/X/4LFXf4gn/36/8AwWKu/wAQT/79f/gsVd/iCf8A36//AAWKu/xBP/v1/wDgsVd/
iCf/AH6//BYqvi8zXULcg3MeDdMVRn/Kw9C/wx/iWp9P61+jfq3w+r9e9b0PSpypy5b9fs4q/wD/
0FvzB4/4+80Gv/S3vxQ17XDgfqzYQ+lwpMbyxgyj8t3Mfn/QpDsEGoH6Bpd3mNn+lyMb3H9Mj+f/
AD+/MRyGzrCggep1rTtUjwr16dsVa/TArTnvv126CpO/hQ4q46wB1cg7bHbc9BXpXFXfpgfz96Hc
bbV8d/oxVr9NL/vzx37bfTirhrKkgB9/o+jvvX2xVsaxUV5GlaV67/Rirv0yP5j92KuGsBjRXJ8D
2p4196Yq79MClS5AIBFadD9OKt/pj/LPYeO56Drirjq9ADz2JA8OvQip3qdtv+I74q0dYAH2/l77
V/VirhrKnpJX6R4V8fDf274q79Mj+fr+rxG++2+2Ku/TAqF5mpFR3707HFXfpipADHfp036Hbffr
2xVv9L/5XavUdPv98Va/TIHV6DxO38cVd+mRSvPsD9Br7+3Trirv0x/lnbr7fR12xVv9Mf5Z/V47
1O3bFXfpf/Kbbcim4HTp164q1+mB3cgCta9qd8Vee/Wn/wADfWOR4/8AK068a7cfR9b7+W+Kv//R
lHlrR7D8yvzn/MLQb6K5EOiXuq3jxWbRLcXDRXrxLFE87pGrMzihchf5uP2hnjaIcKwTTMtG/Lb8
q/NdwmleWpNdfVWtpZtQ9cQKmjzIWjWHUUdY2WUyo6CFOTt6bv8ADD++wmRCJRp4b+W/mO1vPzHt
9PhicfUodXZmegqItNu1NKE75DPGotmKVmnqf6Y/yswnKeA/mxeeZx+bOn+ZPLEjS3vlXQBrrWQY
hbm3iv8A0p4qrX7Ucnviqnoevax5s/Oryl+Yqs8XlzWh5is/LFjct6XK20XSnP1hwOQAlmkYbqx+
BttlxVEWmty3+k+T1MdxbvJ+bFtaahDPqE2oCR4pFaREMiRlYSzAhKH4vj+3irK/NH53TaTrOvab
pf6HRPK8MVxeDWdS+p3N888JnEGnxpHIZHCihY8KN8xVVG+YfzY1Cw0jS9csbjQrC01HS4tXWLXt
RktrqVJYkl9CKCGCblJRwCa/axV0H5uatr1j5Mj8saXD+nvO0N1c20d/cNFZ2kOnBnunmlRHkIVk
ISkfxL77Yqg0/OvVLPyt5w8067pEEUPlfUG0WG2tL15mu7tGCtQvbxcYgJUbn9un7FdsVTLyd+ad
5rnmi68q38mj3l1bab+lk1Ly9qB1GyEYmSBomYolZQzqSqhl4/tdsVYF+YZ8sav+ddrB5u0S+8w6
afLCmDTtMS8mmW7F9KBIUsZI348CatXuuKoj8vfP8fkv8q/NPnXlNdeXI9cuk8t6LNcq93DbFo4Y
YZWkaRoRykFedTxUt/LyVZRpP5qaxrWqax5U46Lqer22ktq8F3oeqvc2DR+skLwPOIQVmUup5Ijr
T9rFUq8qfmPrNn5Z/LTQ/K2htqN95ttdTkt/0nqzM8Q0+WQyvcXMkQqqqkj/AGfgiHFOWKr7P87v
OEmnwazeeWrW30qDXV8savOt8S5vSwR3t4+HxRJyRmf4fjcKARviqyx1jznp/wCY/wCbd55asbC9
+qDQ5Lj9JXUsDB4dOkYQ26xwy8pJvj+00SVReTtirJ9J/Nl9au/IMFlZA2/nWz1G8d2mYfVTpds0
8iAhCHPNWjH2fs70xVK7786NYhtXk07QVvro+bh5LtLJLoRvPM8YaOXk8SqC5IAUtw/mYYqiPM/5
o+Y/Kq+W9K1iHR9M8w+YvrklxdX2ouNJsFsmPAS3EUMhYutFHFPtffiq7W/zbv8ASLXyvbN+hbfX
PM63Ekd5caoE0O0itRyMsl56ZLFgEKBUavTZioZVLk/PHV7jy9ZahpmiwarrN15lHk6O1s75BaXF
26ckmgnaMVif1EClwi18BiqEvvzl/MGwtvNTy+V9PebyRLA2uTR6kzQyR3IDQrbn06yOUDuTRfhU
/tfDiqe+afzcn03zDa+WdMl0myuJtMXWJdR8xXv6PsBCz8I4kKLKzSt9opT7PfZsVQdp+c+u63b+
Rn8ueXUur/zuuomK1uNQS1jtTpTUmZpmjYFFVWk3FeH7PL4cVYr5p/Mfz5r+k6GlvaWlnqFj54j8
v6jFbXsyw3VxatE8ahvSqYJzJ8Z+2PTX4DyOKvdY9Uu1gj+utCt9xAuEtpHliWVhVlR5ERmH+xxV
LvXH/KrPW3/8mZ6lfb6lXFX/0jD8v/PPlXyN/wA5Cfmi/m+8k0/TNXvtZsPrkZlT02N+8lfUgIlQ
kJRXj+NXK8eP212PATAOuJqRem+X/wA3fy18t393q2qfmO2u2umxyJomn20Vxa3F4DEq+tqTiONL
u7CIltG0hWJYoklp6zsYzLFI9GRzAiny9+U1ykn5mXN4lfSkstdmQnY8P0bdt39sGqBEWWD6noP6
X/yhmuc1K7a0tV83XXm+e8Yzvo40aCxWKqEm6S4MjSmUFaBeIARq4q39UsZvMnlnXWuRY2vlOy1W
z07TbS2jEb/pO0a2AqrxLGqk8zRH3OKpAfKEMej2FnZa9Jb6pZ+aZvOUV6bJJEhumKGKP0zcD1VH
Hcs0f04qqS+VZI/MGq67o/mv6hPrMFpHqLz6FZ6j6lzawmL1o0uLn9z1+FA8n+UW24qplqWmzXfn
P/FWk+Z7jRWbTBoUskOnW9xN9RWVZAtuGnRLdqLx+DkvH9nFWOXOgpoGneRLLy5d6xcaz5Yhu7KP
U9J0mPUpXj1FpXuA9gs5qhST01PqVX7fXFW7HyRqN3+W2vaF5sF1YXHmfXr/AFe2+uwpb6iYCtqY
J57ZXb0mZ4+Rir4jlirMNCa90eO8e/8AMEeq3NysMKLBollowRIy7uxe2mkJLsUqOIHwYqoWVlaQ
edLvztJfuLqTRP0Hb2KQqVBN0twZGmMoI2HGgjOKpDc+SdKvPK/mny9c6pK0XmXU31aNFgVRZzSl
GZhJ6xMtWij+HjEAq8e+Ksj0f6/ptrqC6h5hj1W4vUjgRYNEstIRI0Z3Zma3mkL8yUqnFV+D7WKp
V5f8saVoUnkVjq010vknTdXs0raIhubjV1mUV/0hgiR+rWvxM3GnHfFUOPKGnN5ei0KTV5R6vmWX
zNdTi0Q8PUeJ1hjUz/FT0vtEp9v7O2Koi60O9k1zzfq+l+aTpMXm6S1FzCNLW7lijsrdoY5ElN7D
8Y9ST4ePH7PxYq1qXlqxE/lEeU9Xl0GLyZaXGn6ZcvaRX0kkV9CYbl5ImliTnJyZz8WzNiqnpfk3
R9N/RKS+YLy9Fl5wj863lzLYwJLNLHHGDEES4CjmymrV+EdFxVMtcivNZa3ji1S3trGPmbqyvNMg
1a1uCSoTlDLLEBxAJ+Ft2xVj4/L7RtOsPKtroOtzQan5a+uONWu9PtrqKY6gXMkZsHlMYQcgE/e/
B8Tfy8VWQy6bDd/4Oi1HXXul8ta9B5iubiHS7ayE72zsywpbwz8E5KVjL8jRUB4Yqld95Wsb/S/O
9o+qSR3HnOayZgLZWjtY7OFojv6oMrMWB6R/Z98VVdb8uwXvmm38y6LrX6MurfTU0d5rrS7bVFmt
4mVk/cTzKI2DAtyWRmpSOvHkWVTM2NrJ5j8qa7daxJdHypp+pW0aiwgtfrV1qlmbd3KRTcIVDs0n
wiT5YqkU/lG2bRpbW11uS31eXzS3m+C8+qI6Wtx+64IEM49YD0z9r08VZemo+jFDG92b2dEUTXTQ
ra85ONGYRI8gX2+PFU8+sL/ypH63vx/5WH6nvT9Hcv1Yq//TiH5v+Vr/AE781PNkeo25ilutUvNS
iB35W15O8sTinWob787bs/TjNiHDvQeH1+rOLIYnr8mGtoRUVMf4H+mbT+Ty6z+Uh3si/Lq0Fl5o
lnI48dI1zsa76Pdkdu+c52tg8OFkdXo+ytV4k6J6LP0sf5h+Ocw9Q79LH+Yfjirv0sf5h+OKu/Sx
/mH44q79K/5WKu/Sx/mH44q4asdqtX76DfoB8sVbGrmpJcksRybkasB0r4kVO5xVr9LH+Yfjirv0
sf5h+OKu/Sx/mH44q79LH+Yfjirv0sf5h+OKu/Sx/mH44q1+lj/N+vFW/wBLH+Yfjirv0sf5h+OK
u/Sx/mH44q79LH+Yfjirv0sf5h+OKu/Sx/mH44q79LH+Yfjirv0sf5h+OKu/Sx/mH44q1+mDv8QI
HQjevy8cVeo+hd/9C4/XPRf0f8a/W/Up8PpfUPR5V/1/g+eKv//U9NfnjY/lNqFjaWvn/U00jVWq
dNvoI3mvF33+CKORjH/rDj75tdAdUD+5u3T9pjR8P+E1+Pc+dpPI35R13/NcAf8AgPXn/NWdLfbH
l/0pebrsTvP/AEuXaX5F/KwXsp0z82K3X1S/EgHl68/3nNrILs7v/vksf+I5oO0DrTH9+CBfk7/s
0aHi/wAHq68/0pJ/gT8if/LtD/wndS/5rzSO9d/gT8if/LtD/wAJ3Uv+a8Vd/gT8if8Ay7Q/8J3U
v+a8Vd/gT8if/LtD/wAJ3Uv+a8Vd/gT8if8Ay7Q/8J3Uv+a8Vd/gT8if/LtD/wAJ3Uv+a8Vd/gT8
if8Ay7Q/8J3Uv+a8Vd/gT8if/LtD/wAJ3Uv+a8Vd/gT8if8Ay7Q/8J3Uv+a8Vd/gT8if/LtD/wAJ
3Uv+a8Vd/gT8if8Ay7Q/8J3Uv+a8Vd/gT8if/LtD/wAJ3Uv+a8Vd/gT8if8Ay7Q/8J3Uv+a8Vd/g
T8if/LtD/wAJ3Uv+a8Vd/gT8if8Ay7Q/8J3Uv+a8Vd/gT8if/LtD/wAJ3Uv+a8Vd/gT8if8Ay7Q/
8J3Uv+a8Vd/gT8if/LtD/wAJ3Uv+a8Vd/gT8if8Ay7Q/8J3Uv+a8Vd/gT8if/LtD/wAJ3Uv+a8Vd
/gT8if8Ay7Q/8J3Uv+a8Vd/gT8if/LtD/wAJ3Uv+a8Vd/gT8if8Ay7Q/8J3Uv+a8Vd/gT8if/LtD
/wAJ3Uv+a8VRml+SPyAS9R7z80Zp4F/vIYdEv4JW/wBV5Vlp9C4q+rPR/Kf/AJVD6Pr2/wDyrD6t
w+sUfjw5/bpx5+pz7ceVcVf/2Q==

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://matp.pa.gov/images/ps.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QqORXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp
AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dz
ADIwMDk6MTA6MTQgMDk6NDA6MzkAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA5KADAAQAAAAB
AAAALgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAlYAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAIACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A0es/WTrFvUsiunJfjUUWvqrrrgaVuNRe923c/wBRzdypt671
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
cCAzLjAAOEJJTQQlAAAAAAAQAAAAAAAAAAAAAAAAAAAAADhCSU0D7QAAAAAAEABIAAAAAQABAEgA
AAABAAE4QklNBCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0EDQAAAAAABAAAAHg4QklNBBkAAAAA
AAQAAAAeOEJJTQPzAAAAAAAJAAAAAAAAAAABADhCSU0ECgAAAAAAAQAAOEJJTScQAAAAAAAKAAEA
AAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAy
AAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA////////////
/////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////
////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAAAAAAAAAIA
AjhCSU0EAgAAAAAABgAAAAAAADhCSU0EMAAAAAAAAwEBAQA4QklNBC0AAAAAAAYAAQAAAAM4QklN
BAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADSQAAAAYA
AAAAAAAAAAAAAC4AAADkAAAACgBVAG4AdABpAHQAbABlAGQALQAzAAAAAQAAAAAAAAAAAAAAAAAA
AAAAAAABAAAAAAAAAAAAAADkAAAALgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA
ABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABU
b3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAALgAAAABSZ2h0bG9uZwAA
AOQAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9u
ZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAA
DWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5k
c09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAA
AABCdG9tbG9uZwAAAC4AAAAAUmdodGxvbmcAAADkAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRF
WFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4
dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VT
bGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFs
aWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAA
AE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRv
bU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAT/w
AAAAAAAAOEJJTQQUAAAAAAAEAAAAAzhCSU0EDAAAAAAJdAAAAAEAAACgAAAAIAAAAeAAADwAAAAJ
WAAYAAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/b
AIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAIACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEB
AAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQC
BQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKy
gyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3
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
6NVvsPW//K7M/wDYe3/0ml9h63/5XZn/ALD2/wDpNJTdxnYuJUacVpY19j7rCS0l1lhBe7bVXj0U
1+39HTj0VVsRftvms37D1v8A8rsz/wBh7f8A0ml9h63/AOV2Z/7D2/8ApNJTpfbfNSpyfUy8Nk85
mL+GRSVl/Yet/wDldmf+w9v/AKTWl9X+h9ay+r4m/Eux6aLq7rrbq3VtDanNu9vqhm979u1mxJT/
AP/ZOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAA
EwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwAyAAAAAQA4QklNBAYAAAAAAAcA
BQAAAAEBAP/hOrBodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i
77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IjMuMS4xLTExMSI+CiAgIDxyZGY6UkRGIHhtbG5zOnJk
Zj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxy
ZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8v
cHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvanBl
ZzwvZGM6Zm9ybWF0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUu
Y29tL3hhcC8xLjAvIj4KICAgICAgICAgPHhhcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3Ag
Q1MyIFdpbmRvd3M8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIw
MDktMTAtMTRUMDk6NDA6MzktMDQ6MDA8L3hhcDpDcmVhdGVEYXRlPgogICAgICAgICA8eGFwOk1v
ZGlmeURhdGU+MjAwOS0xMC0xNFQwOTo0MDozOS0wNDowMDwveGFwOk1vZGlmeURhdGU+CiAgICAg
ICAgIDx4YXA6TWV0YWRhdGFEYXRlPjIwMDktMTAtMTRUMDk6NDA6MzktMDQ6MDA8L3hhcDpNZXRh
ZGF0YURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9u
IHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
bS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiPgogICAgICAgICA8eGFwTU06RG9jdW1lbnRJ
RD51dWlkOkNBRDY1MzI5QzdCOERFMTE4RDI1RThFOUI2Q0U2NTc2PC94YXBNTTpEb2N1bWVudElE
PgogICAgICAgICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOkNCRDY1MzI5QzdCOERFMTE4RDI1RThF
OUI2Q0U2NTc2PC94YXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eGFwTU06RGVyaXZlZEZyb20g
cmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD51
dWlkOkI3QUZENUZFQzNCOERFMTE4RDI1RThFOUI2Q0U2NTc2PC9zdFJlZjppbnN0YW5jZUlEPgog
ICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD51dWlkOkI3QUZENUZFQzNCOERFMTE4RDI1RThF
OUI2Q0U2NTc2PC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICA8L3hhcE1NOkRlcml2ZWRGcm9t
PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv
dXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEu
MC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAg
ICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAg
ICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4K
ICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAg
ICAgICAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQs
NTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3Miwz
MDUsMzE1LDMzNDMyOzBCOERDQ0VGMTJDMjI0QkZEMDAzQjZDMzM4QUY3RjZDPC90aWZmOk5hdGl2
ZURpZ2VzdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24g
cmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20v
ZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjIyODwvZXhpZjpQaXhl
bFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40NjwvZXhpZjpQaXhl
bFlEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNl
PgogICAgICAgICA8ZXhpZjpOYXRpdmVEaWdlc3Q+MzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcx
MjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAs
MzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzcz
ODMsMzczODQsMzczODUsMzczODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgs
NDE0OTIsNDE0OTMsNDE0OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5
ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYs
MCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1
LDI2LDI3LDI4LDMwOzdCQzAwNDAxNThCRTRCMzI5Q0NGOTI3MTczNDI0Q0Y2PC9leGlmOk5hdGl2
ZURpZ2VzdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24g
cmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2Jl
LmNvbS9waG90b3Nob3AvMS4wLyI+CiAgICAgICAgIDxwaG90b3Nob3A6SGlzdG9yeS8+CiAgICAg
ICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAg
IDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1By
b2ZpbGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRh
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+/+IMWElDQ19QUk9GSUxF
AAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNS
R0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAU
YmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQA
AABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAA
BAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4
dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAA
AAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQAB
AAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABi
mQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p
ZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZh
dWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZh
dWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAA
AAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA
ACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAA
AABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAA
Q1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4A
YwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDw
APYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakB
sQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKs
ArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD
+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWG
BZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EH
dAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmk
CboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoM
QwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8l
D0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQS
hBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYm
FkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioa
URp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+
HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5Qj
wiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkG
KTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu
7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUT
NU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o7
6DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3
QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1K
xEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLH
UxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0Vb
lVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSU
ZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJu
a27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhu
eMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSD
V4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45m
js6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfya
aJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaL
pv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCsziz
rrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDs
wWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbP
N8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W
3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77Ibt
Ee2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY
/Sn9uv5L/tz/bf///+4ADkFkb2JlAGRAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYG
BwYGCAoICQkJCQgKCgwMDAwMCgwMDAwMDAwMDAwMDAwMDAwMDAwMDAEEBQUIBwgPCgoPFA4ODhQU
Dg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgALgDk
AwERAAIRAQMRAf/dAAQAHf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEB
AQEAAAAAAAAAAQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEU
MpGhBxWxQiPBUtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0
VtNVKBry4/PE1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+Ck5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEF
URNhIgZxgZEyobHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidk
dFU38qOzwygp0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhY
aHiImKi4yNjo+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7Z+bH586
7pPmG68t+UHjtorBzDdag0Qlka4WnMJzqoCGqmqmpzJhiBFtByEPO/8Ale/5q/8AV+H/AEh2X/VD
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
5erX/ir/AGOKv//Z

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://matp.pa.gov/images/DPWLogoBot.jpg

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAYAAA/+4ADkFkb2JlAGTAAAAAAf/b
AIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIBAgICAgECAgICAgICAgMDAwMDAwQEBAQE
BQUFBQUFBQUFBQEBAQEBAQEDAgIDBAMDAwQFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF
BQUFBQUFBQUFBQUFBQUFBQUF/8AAEQgAMQDBAwERAAIRAQMRAf/EAHcAAQABBAMBAAAAAAAAAAAA
AAAJBwgKCwQFBgMBAQAAAAAAAAAAAAAAAAAAAAAQAAAGAgIBAwIDBQYHAAAAAAIDBAUGBwEIAAkR
EhMUIQoVFhcxIhgZOUEjJNSXWSZ2tne3eLgRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/
AM/jgQy/cBuGwsW6odobR1ctuxKYuKlWuJW41S6s5K5RN/Ni0RmSEckSmK2kYDvi5jpy08QPPgQy
gefp9cBq4P51vbh/uNbf/wCuE2/zXAfzre3D/ca2/wD9cJt/muBkCfbM7sdlu7/anX0MuTdzZ20K
ZqqrbXuSzIHL7Vlr/FZK1trCCvmwhcmWnmEmFFSGRt6jAR48ZEVjHA2WvAcBwHAcBwHAcBwHAcBw
HAcBwHAcBwHAcDTc/cV0Cbrv3KbwR0tGYnZ7GsxNfzEryAQCXYq+46jtNxOK9eciyEp9c16Yefpj
3CR+MenxwITeBVKk6TtfY614LRtGwV+su2bLfk8ahEIjSctQ7PrsoLEfkIcniLJIIIJLGcoUHDAS
QSAZpowFgELASS2n0Ydk1V05O76zTsLtasqoUOKW23jXi96O2GcarUMyQS5dh+baekDw4owt5QDB
rB4JEBMAAhnCADGBZCIjgOBt+vth6B/QPpk1X+Yj+HIbp/Pt/SL9z0fK/UaYqvwY79ufPrjCNr+v
0/Z+zgT/AHAcBwHAcBwOsentmjbQ5yCROzYwMDIgVOry9vS9K1tDQ2ISRKT1KpSuGWSnIJLDkYzD
BYCEOM5znGOBy0axI4JEq9AqTLkC5MQsRLUZ5SlIsSKSsHFmlGE5EAwswAsCCIOc4zjPnHA5HAcD
xU+squqpYASu0Z9Cq2i43dkj4JJPpUxQ5gG/yZ0KZG1DhZIj0yfKxwWnFp0xPr9ZpowgBgQs4xkP
a8BwHAcBwHAcDW9/e2a//lrajTnZtEh9tJbtHzKoHlUnK8EjfKRmYZOSYpyWHxhQoRTQJZYhi8jL
TeA/QrPgLcOsXr1qzR/rE2V7wN+tX2+7HWHJ2CN6W6yXrG1BVeylzlsoa4OhmsgZnhOLDq1q3d4K
CgLPBgv4iRUoAEYj0Z5QW2VdvO17S6ydlNxwzU+i9dt+ag1YPcY7bumUGMoiMuurtubJQCsrEE5R
eKGiQ4kjI1vPwSHtOMs41oc14VeDTCSj8B537X/YmTa59lKuWOkiVMesiTWrZGYbifJPGZFU1LVn
UrpNUri4JDTApjzUsnIbEqYQwiH6lYigePfFjIY9MkcUTxIn93bW0lmbnR6dHFAzpwlATtSJcuMU
lJi8JwFl4AQWLAA4CEOPGPpjGPpwPtE4u9zeVRqFxpEY5SOXyBmi7A3FYEI1e9v7iW1JSQ4BjOci
NPNCHHjGfrngb4ChanZKFo2mKMjWCwxymKnrqp2AJJYSigsldRBHD0uAgBgOAhwQjD4xjGPGP7OB
iGvG9/b1K617stra93lreIwHq83y2jgFcUDLtVKokSGyaqpuWBAVGnaUJBtrkmREs4QgSGkE5cjl
Yh+8tEAZYSQ6bYvvmvC2dkTKug22qfrYgkQ0e1j2HalBGk073LmlyXxtBSrFfKKNOZbfHXkEci7O
2vhCRQsCnTne8EzHuiGL0Jg5uv3Zx25djO02j9E0tf1b6TH7AdVci2FupPMNY2K1C4nclcbezugX
aRR9nmY292AtdcRRFhIgXug24hIpOMyUedgk3geKpzuC7VdsKs6Em6pbsp+q7m3vmvYdWF8yiWUv
GZdXs1N1vNZmthe1LQlJTr29YhRK1Kz4rQtQkKV2AYN8Jc5ICFRpJ2UdzNVQ3tR1njMqL3HvvQna
bUeMvOylX6pRI6zYzq1sjCpNMn6QtNWxRenZn13iuY+lKISHGjD6FZxqg4RZPulByGvtw2gZdMWf
dCuexBNuBXune91KxveyGvek8P1lvFu1EtgSaHOaKZMixM5FJZA1vpgRNy2LloiBF/IyccfkoRCc
KRdpW3l9bzdWX3AV6/qGnc9E6/vvVTV3TGKs7BDSm19XU3tDXqCwJkW/N7eW8vjdIndWR+HDGsGk
AVg0sAMiBkXAkH3A7RL06vtlE59zTtPINO7s6p5laup8MdYrCmotg3U1ziiJcujJLu2tqZ3cU8ib
j0Z4gLVyj2zlQQlAKLD9QpnaW33YHBa40KoeWdhd7tm+th6eN2xF9UZq51fVXt1sE6u0xk/yyHN4
TJyWWGRaLsPysMRwAJkxpxyQRmFGRHBHgLYa07hu0bcKuOhdBStz1DRFtb8TfsJqy/JS+UpHZ/X8
m/hwOZWdlkH4IuyBwQL0LerUri0Tc6JU6hxwAJ4vh5yQELL+yrYvc/ajp735btnb/itly3q97bXn
XR7krXQteRBu2gaoHYDVBGRxdW1F7xUYObVi5Yp9trH4UEGBTKMmYCM00Jdu4rsu2s1/u3aZDpvu
dYjg86i1DArMsLWipOulhvatqwUusbOkmQW5asuW4KjqCQog/MS4bcFKCSg58hF7Y8iDJL08u5x2
Y1I1a2Pd2dFHnbYHXOkbudGBtEeNuY3G1qzbJ2ejIyqGYbklMavEWDIxiF6Q485zn68C4zgOA4Dg
OBihfeLUD+qPVK2XAiRetz1l2HrSbr3EIPWNNDbDAsptWRnznGAlqHd9ah5z4zn1FBx+zOeBS+/J
Pq31r9MOufXj273jfeyFe7X13AapQvdZ1fCj5BrQ1lNCScNxo15zmH5DHBHREnEynnFr1xuUHgpK
eQUIggIG6tL62uvJBsJr1pPv+KLdgh1+sMQf7F3mo09h1gsunqqdXwldXQXCvBSiPJYtYak1GNyd
ntUFErQhLCPKIAhiCFUdON3tbpyh3B01tDp00Y07ow1Qzrewm2ZXsrdlU19HG+M2MlGytIlsORPE
lWnKJKUAbAwMjnkhSaHJpAQkANOCFoXYX1JaJtd/11Terdnpde7B2Xq2M3JpwqlFyo720b2ujEoV
HsqFqYrHeW9jkNeydctRmlJkUhJdEBp5hRY3RPg0oQgsk6RNOJxNe8LUfXO2oI9RSV0rsKtnlqwm
VthqFxi7nrIjXWmpQuaZV6fGBOTCUkGWLyAeTMBzgQRfUNxxwMSrW3oDk1yWd2oqd5ppthVFLbN9
ll8XbEaNprZ6NsVGbOUBJp8KfMLhK2KFidlZBp6k7wYAZzc4YwSWEeMYLLzgJX9jel/WW9reaL5r
+2dt9LLbRVVGKNkEz0cvxyoJZYFQwogKJoYX4glC5I1iRtTACQnMLKKPAWArwb5IT5KCtkL62KTh
W4FQbuJ53eMkuemdMWvRpkzNZy0ytklFUtEvPmxbs/murSN8c5YYtUme84ZcQANwLORkiH+/wLYN
fuiLT7W7+X9+Qp3sQv8A5bs72YsCh/zRMa8cPzA5bVex+Ykso/DYoj/EEST4xf4dhH8M0v0/3ph3
nPkPZzbpi1vmVl7k3Cjufb+trL3WszX23JzMKavpTUr1XU11pi7tE42bFj4K2ojMJPYelJqpI95d
CDFHtmhAAZJWQBZBtD1vWnrDrJs1rtolqrPuwGz+zKJWBC9tds9vNvIGhm8LeCIKRAIg+SPEsSIF
Emb2ch1cFCRIxpyDUhhGMBCL3gZJC9+oen/X5h6iob1L20SpktXG1Myxe1n6GLAsTo+2cZLCbXdJ
G1qViUeSTgTIGXBBlSQZ6AllAMAMIchyHEt3pT1e2G1y1G1s2GsvZO92XTW5Ga4q8sy1J/DJNcMz
y0uatcZGZU7DjRaZyiy4hSUjUJk6RMfhMlTllKCvaxnIez2x6jtfds9mYntu5W3thQF1MdYYpGXS
HVW+nijR3BTeH82TYjMoPYUhrge2/MPEPIkCpGoz4B5Nz7RXthSqh+ijT7XZRoKogc32GVZ65bC2
dsahy5LNIG6AfHLa8ZI5Ejk4k0XTmOKFF8cvDd8USQ8v0/3xp+c5zkPjY3RFp9Z1C7wa6v8AO9iE
sC382/cd1bnVNExrxPI2K03aZIpyob44oWRQ8hFHzFqIOPYVkq1OCxCxhRjPpEEPjtL0Pal7V2/s
pb73cG41PG7gQpkiOytba/36Ot6juNxiEVHEWF9fWQTSuC4ujGnF60xJ5o28wz1CUJD8GnBMCVSg
KYieuFEUprxAlT4tg1C1JW9MQtbJliNwkiuJ1dDkUHbjXBQ3p0ic9cYjQliPMKIKAIzIshADGcBw
FW+A4DgOA4FhHaZr/wDxSdcm69DEIfxJ4n+uFokRFH7Xv+5YDBGT5VHM+jARiF6H1CkH4Dj1fT93
xnxngYc33Cu/9B6p2C3UW86wRPb+zditVNXZnIWfYd3kRmtVRxiukru3xFwZWGDq2x8Wzo1YsfxK
3dK7t4QNyklHnCkAzwhDE6cd1qIvSzJHJ9ttJKbc2yxpI5vc0nOrjtYWv9zRdZID/cVL48BW9vkD
UHFmZ9/4rtHVIDchyAJqfJgzeBU5VrLbN5FznV3UaXO23jnLp1RdwVI2xoaZPZV3UVEKokVeR1Vm
OqFZ5qd3rJGapaXloAoOMaxHKRFe8gIOVhC9Xu30e3P1D1z60antujLIS1nqrrB+RJZsF7WZPX5l
83vbD/fjtFyXtjUKkydPGCnhKzovkYI985Ipwm90gsszIZFv21aFv3Z28aeyWUI8LrigHXBBta7/
AH88k3KiY7AILseK2aZgpVGCyNW8O1XQJrIWjFjHk/J48+rI8ZAGcLwMSSx+yvZuLNO5b5Vu8X6t
XVXjj3ntst1c/Kuqsg/gwrvTBNaqmoJr+GwiHI5ig9S+LRpv/wCMF7kldvxT1hLFnIc4DpbU7Ftu
nGsqTm+qW0eyFlMLdqzvVslacwkb30vWigZHbWWxadRhW2W966EL4gVWEfY5O8GODfCFWZiPConO
ChmF5wUHY032Tdhtwara4wWertnYduYq7GSKVv2K0xr/AK6Uvs+80haGkdjbiMCFjjfYLH2qENyR
mc24lgA7uKJKJySx5QanMPOUhNUh7ifbeb0H6601sjHN0bRY3yafb87Y9hMnrmOVbqO51sl2v10p
yqUKEIcSWsVskIRHP04dFzq1jdMeFyYokr46Us5IaFI5l2MdrNUQXafO3ktJ13cami/USkjL5Vaf
VJPIHKGW/u5I9WbXsRA57HtgIEwrLEJizivZipOoCztCAxCoOykxlSbwKhXn2Vbqw3arVquqZtiX
2BqrsBEOmiAOFtLGjUaxLOhFpbrbdypC9vjm70SyOdduRMjruDPrMvWMglLKlc/gGNmQhP8AdNCT
LVizNsmXR/ei6n267V27u+rbR7F4HRsUsuC0GwgOU6e3pY1RQxAlR66QaEGLlsnIjjcJzyo9/wB1
SLOUgUpY/a4EWivfnbCUTOm6r1j3gvfd2vrKsjTxtl916zRbrLU3izWPaWsmzdnTyrmFXZ8TYKhb
jGM6soc9KUT+Vl6bUys0g5WaYsSF8CRTsTtbf+NXJo7ROmUmurM+snXfaewJM2N7JpOpzILDpqU0
nH2RfaCu5UhbemhyQMxdsSAiAmkOpwzw5bgCAUH2wstvPs62mjTBuVEYVfUfT3Pq/rr372jO4ghi
1Qu8zpw7XzZmIN+tDq+tKtqUGIUp9evRyhoyuI9l8IyM9RhYMkQywqV1/drTlYFwasQC+9po6CFW
iw9kkAZJDdEt02QuN9W7Xm49StFMoWqWa0HYrqXS3NaTwxCqSQhUNEoc8LU+SjlSAZgAp/qrv3ZN
tWBWcWubtPRVRAVs32FS0/Zzi16QIUW5c3gfZZPdeWuAGLHWEktS4KSt45FlXxothudlX5i+fhTk
n2MADuOx3tL3m1R2l2Q1LqisnyeFWTCodJKKuhriLG5qNYFmzVVo9XapCUjy3HIJHh02IbVZ2SXY
hWPJRykoQspy0qcIdHtb2O3pU9/dy1dMe09mxyf6ia7zid6uVhld1rBrAgqP9d0Hu/Dy4RaZIv18
kb0TL3d0X4Vo0R8bCAOE5osYJNThC6Ky+wZ0eN15bYlS31bNo9eNEaG1ntjNJjp+9dfVga4nnN1r
XmyTJZN5Lbfy5u4tw0VcJW9Ongi0RyZSlUYU4IyP15CJmT9t3Zad16R9yeZFc1b7xVvsJsImuVjZ
9aKsrSzFdaFdbtl75Q4C2H7YxpvTFQ6NPbSSzOS5CgTuzw1R1aJrEpXqiBqgmj1D3Jk1u9pO8+u0
x2OmL231G+M5tMUo1SnQdLTBlWOWuFQzv8RTM6AANi3Z4G/yt3UlvIwmRfKQWE/ycrCgkBCbjgOB
qrPuQE9U29K4LKIrNYmy7CaC/mnrq2PpKRSBqjthOta0zZLmZVdjsTc9nlLJO2yqOu+DHY5CE0Te
oGUUYHBPoNyGK1wLk6x2suGiq7kkDoeVvlNr7DMOJtSxq/enCOWZPo2WIvKSNmPTQJOuQRVOIvKg
5sSmALXKR+6tEpwQhLRhlMfbbbb3DvEu236edrp/KrzoPaPVq1XGvwWtJn+aOVV2KwgTg9bSsexL
VCBEcWuG5YwHOcJ16Ig8gITRm5MDIU+z5qZRF+rpfcDozo21Zcdxy5ujKhGFV/ja3qs4UbIyaNac
eYYcKWKZGeLIRALD72AALDgOciDK54DgOA4DgOA4DgOA4DgOA4DgOA4DgOA4DgacX7kL+trvv/3A
r7/whF+BCDwHAybvtI/6vse/9b9g/wDppPwM6z7Zf+hzoj/y/dv/ANMzXgTvcBwHAcBwHAcBwHAc
BwHAcBwHAcBwHAcD/9k=

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://matp.pa.gov/images/PALogoBot.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAoHBwcIBwoICAoPCgkKDxINCgoNEhQQEBEQEBQWERIS
EhIRFhQXGRoZFxQfHyEhHx8qKioqKi0tLS0tLS0tLS3/2wBDAQsLCw8PDxcRERcYFBMUGB4cHBwc
HiMeHh8eHiMnIiAgICAiJyUmIyMjJiUpKScnKSktLSwtLS0tLS0tLS0tLS3/wAARCAAuAFUDAREA
AhEBAxEB/8QAHAAAAwEAAwEBAAAAAAAAAAAAAAUGBwIDCAEE/8QAMxAAAQMDAgQDBgYDAQAAAAAA
AQIDBAAFEQYSBxMhMRRBURciVGGT0xUjM3GBojJykbH/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QA
FBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A2WgX368xrFaJN2lNuOsRUhbiGQFOYJCe
gUUjpn1oIP29aQ+DuP02Pv0B7etIfB3H6bH36DR4shMqKzJSkoS8hLgQvG4BY3YOCRnr60HbQFAU
BQFAUEJxW1Pf9MWyDcLQttKXHyxI5iAvqpO9GM9v8FUGSXTizq+626RbpbjCo8pBadAZAO1XoaCK
oCgvk8adbpSEpcjhKRgDkjsP5oNm4d3i73zS0a63cpL8lbhRsTsHLSstjp+6SaCnoCgKAoCgjuLF
u8foS5ADK4wRJR8uUoFX9N1BmuimbDB4Z3bUdws8a6SYU7loEhIyUL8MjbvwrAHMJoOV5t+mNScO
pWq7daEWabbnwyttlX5a/ebSfJIPR0EdM5GKBzoDTOlGdN2Zu/QWZFw1G6+Yy3UgrQ2lCinao9hh
AIx5qoMgvFtetV1mW179SI8tlR9dhxn+e9B6r0xbvwvTtst5GFRozSHP99o3/wBs0DSgKAoCgKD8
9xhtz7fKgufpymXGF/s4koP/ALQY3oucmycJ7/JlwWZ/hbntdgykhbSifCN+8CCPdJyPmKCbuGtr
1rLwOlIMONa4El9tsRYiNoKioY3eW1J97AA+dBb6tv3D236gt0Sc5cEytMhpERMTZyUbQhYB3dzg
JCv+UCrXOnGbpxD07cYg3wdR+HdK/UN7eYfo7TQbdQFAUBQFAUBQeY+IZuVp1RfLM3Kebt8mT4tc
NLiwwsv7Xwot52kjp5eXyoJWLKlQ30SYjy48hvq280ooWk9uik4IoPkiRIkvLkSXVvPunc464oqW
pR7lSlZJNBpPBlVyumq2BKlPPxLPGcdjMuuKW22VgMANoUSE9Fnt6UGz6ulSIelrvLiuFqQxDeca
cT3SpKCQR+1BEu6odjsXURb0/dYHJg4uSHYqPDS5Ty21o8QGC023tCSolJ2eWCaBvojUsmTY5XjZ
jUuS3cJMC2uFxKxILaOa0gPBDQcyM+/sTkdcUEvE1NfFpccg3mTcLgzYZE+XDWGgGJ4W22tBbDSf
0t6iEHPYeR6g0N5uaWrq7Yby7fIVrjxLl4ha2VZWlxxUqJubbTkLjozt7pOO1BX6QkTptmTc5q1q
VcnHJjDa9v5UZ1WYzY2+jO0n5k0DugjdVcLtPapun4pPelMv8tLREdbaUkIzgkLaWc9fWgS+wXSH
xlx+ox9igPYLpD4y4/UY+xQUmjuH9l0guW5bXZDypYQlwyVIVgN7sbdjbffd1oKCfBjXCFIgS074
8ltTTyMlOULGCMjBHSg7ktoSjYEjb2xQcqBXbtOWq3TFzo6XVylt8jnyH35K0tZ3ctBkLc2p3dcC
gaAAdhigKD//2Q==

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/css/MATPStyle.css

BODY {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND: =
url(../images/bodyBG.jpg) #283a4f repeat-y; PADDING-TOP: 0px
}
#container {
	POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 1024px; PADDING-RIGHT: 0px; TOP: 0px; PADDING-TOP: 0px; =
LEFT: 0px
}
#dpwHeader {
	POSITION: relative; WIDTH: 1024px; BACKGROUND: url(../images/dpwBG.jpg) =
no-repeat; HEIGHT: 98px
}
#matpHeader {
	POSITION: relative; WIDTH: 1024px; BACKGROUND: =
url(../images/matpBG.jpg) no-repeat; HEIGHT: 95px
}
#nav {
	POSITION: relative; BACKGROUND: url(../images/navBG.jpg) no-repeat; =
HEIGHT: 39px
}
#nav UL {
	FLOAT: left
}
#nav UL LI {
	FLOAT: left
}
#nav UL LI A {
	PADDING-BOTTOM: 8px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; DISPLAY: =
block; HEIGHT: 22px; COLOR: #ffffff; FONT-SIZE: 14px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none; PADDING-TOP: 8px
}
#nav UL LI A.down {
	BACKGROUND: #a7b6c7; COLOR: #000000
}
#nav UL LI A:hover {
	BACKGROUND: #a7b6c7; COLOR: #000000
}
#contentContainer {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 105px; PADDING-RIGHT: 105px; =
PADDING-TOP: 5px
}
#content {
	FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 13px
}
#content H3 {
	BORDER-BOTTOM: #000000 1px solid; WIDTH: 100%; FONT-SIZE: 28px
}
.boxFull {
	WIDTH: 810px
}
.boxFull .top {
	BACKGROUND: url(../images/BoxTopFull.jpg) no-repeat; HEIGHT: 30px; =
FONT-WEIGHT: bold
}
.boxFull .mid {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px; BACKGROUND: =
url(../images/BoxMidFull.jpg) repeat-y; PADDING-TOP: 0px
}
.boxFull .bot {
	BACKGROUND: url(../images/BoxBotFull.jpg) no-repeat; HEIGHT: 13px
}
.boxHalf {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 354px; PADDING-RIGHT: =
10px; PADDING-TOP: 0px
}
.boxHalf .top {
	BACKGROUND: url(../images/BoxTopHalf.jpg) no-repeat; HEIGHT: 25px; =
FONT-WEIGHT: bold
}
.boxHalf .mid {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px; BACKGROUND: =
url(../images/BoxMidHalf.jpg) repeat-y; PADDING-TOP: 0px
}
.boxHalf .bot {
	BACKGROUND: url(../images/BoxBotHalf.jpg) no-repeat; HEIGHT: 13px
}
#footer {
	TEXT-ALIGN: center
}
#footer H4 {
	FONT-SIZE: 12px; FONT-WEIGHT: normal
}
#footer UL {
	TEXT-ALIGN: center; WIDTH: 100%; FLOAT: left; FONT-SIZE: 11px
}
#footer UL LI {
	MARGIN: 8px 6px; FLOAT: left
}
#footer UL LI A {
	COLOR: #000000
}
HR {
	WIDTH: 800px; HEIGHT: 1px; COLOR: black
}
#qdata {
	WIDTH: 800px
}
#qdata TD {
	BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; =
PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; BORDER-TOP: =
black 1px solid; BORDER-RIGHT: black 1px solid; PADDING-TOP: 3px
}
#hdr {
	BACKGROUND-COLOR: #283a4f; COLOR: white
}
#title {
	BACKGROUND-COLOR: #46648a; COLOR: white
}
.error {
	COLOR: red
}

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/WebResource.axd?d=P8RxlAAmhmCfIN3Ih8PM5B_WDeMRG7s1vuQ_oGg1NQ38xadI1KpNnZx3k7I_5GsgqKy6FVcdJqXYzkx58P_jo7Oq7Is1&t=634550008002212176

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, =
validationGroup, actionUrl, trackFocus, clientSubmit) {
    this.eventTarget =3D eventTarget;
    this.eventArgument =3D eventArgument;
    this.validation =3D validation;
    this.validationGroup =3D validationGroup;
    this.actionUrl =3D actionUrl;
    this.trackFocus =3D trackFocus;
    this.clientSubmit =3D clientSubmit;
}
function WebForm_DoPostBackWithOptions(options) {
    var validationResult =3D true;
    if (options.validation) {
        if (typeof(Page_ClientValidate) =3D=3D 'function') {
            validationResult =3D =
Page_ClientValidate(options.validationGroup);
        }
    }
    if (validationResult) {
        if ((typeof(options.actionUrl) !=3D "undefined") && =
(options.actionUrl !=3D null) && (options.actionUrl.length > 0)) {
            theForm.action =3D options.actionUrl;
        }
        if (options.trackFocus) {
            var lastFocus =3D theForm.elements["__LASTFOCUS"];
            if ((typeof(lastFocus) !=3D "undefined") && (lastFocus !=3D =
null)) {
                if (typeof(document.activeElement) =3D=3D "undefined") {
                    lastFocus.value =3D options.eventTarget;
                }
                else {
                    var active =3D document.activeElement;
                    if ((typeof(active) !=3D "undefined") && (active =
!=3D null)) {
                        if ((typeof(active.id) !=3D "undefined") && =
(active.id !=3D null) && (active.id.length > 0)) {
                            lastFocus.value =3D active.id;
                        }
                        else if (typeof(active.name) !=3D "undefined") {
                            lastFocus.value =3D active.name;
                        }
                    }
                }
            }
        }
    }
    if (options.clientSubmit) {
        __doPostBack(options.eventTarget, options.eventArgument);
    }
}
var __pendingCallbacks =3D new Array();
var __synchronousCallBackIndex =3D -1;
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, =
context, errorCallback, useAsync) {
    var postData =3D __theFormPostData +
                "__CALLBACKID=3D" + WebForm_EncodeCallback(eventTarget) =
+
                "&__CALLBACKPARAM=3D" + =
WebForm_EncodeCallback(eventArgument);
    if (theForm["__EVENTVALIDATION"]) {
        postData +=3D "&__EVENTVALIDATION=3D" + =
WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
    }
    var xmlRequest,e;
    try {
        xmlRequest =3D new XMLHttpRequest();
    }
    catch(e) {
        try {
            xmlRequest =3D new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e) {
        }
    }
    var setRequestHeaderMethodExists =3D true;
    try {
        setRequestHeaderMethodExists =3D (xmlRequest && =
xmlRequest.setRequestHeader);
    }
    catch(e) {}
    var callback =3D new Object();
    callback.eventCallback =3D eventCallback;
    callback.context =3D context;
    callback.errorCallback =3D errorCallback;
    callback.async =3D useAsync;
    var callbackIndex =3D =
WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
    if (!useAsync) {
        if (__synchronousCallBackIndex !=3D -1) {
            __pendingCallbacks[__synchronousCallBackIndex] =3D null;
        }
        __synchronousCallBackIndex =3D callbackIndex;
    }
    if (setRequestHeaderMethodExists) {
        xmlRequest.onreadystatechange =3D WebForm_CallbackComplete;
        callback.xmlRequest =3D xmlRequest;
        xmlRequest.open("POST", theForm.action, true);
        xmlRequest.setRequestHeader("Content-Type", =
"application/x-www-form-urlencoded; charset=3Dutf-8");
        xmlRequest.send(postData);
        return;
    }
    callback.xmlRequest =3D new Object();
    var callbackFrameID =3D "__CALLBACKFRAME" + callbackIndex;
    var xmlRequestFrame =3D document.frames[callbackFrameID];
    if (!xmlRequestFrame) {
        xmlRequestFrame =3D document.createElement("IFRAME");
        xmlRequestFrame.width =3D "1";
        xmlRequestFrame.height =3D "1";
        xmlRequestFrame.frameBorder =3D "0";
        xmlRequestFrame.id =3D callbackFrameID;
        xmlRequestFrame.name =3D callbackFrameID;
        xmlRequestFrame.style.position =3D "absolute";
        xmlRequestFrame.style.top =3D "-100px"
        xmlRequestFrame.style.left =3D "-100px";
        try {
            if (callBackFrameUrl) {
                xmlRequestFrame.src =3D callBackFrameUrl;
            }
        }
        catch(e) {}
        document.body.appendChild(xmlRequestFrame);
    }
    var interval =3D window.setInterval(function() {
        xmlRequestFrame =3D document.frames[callbackFrameID];
        if (xmlRequestFrame && xmlRequestFrame.document) {
            window.clearInterval(interval);
            xmlRequestFrame.document.write("");
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.write('<html><body><form =
method=3D"post"><input type=3D"hidden" name=3D"__CALLBACKLOADSCRIPT" =
value=3D"t"></form></body></html>');
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.forms[0].action =3D theForm.action;
            var count =3D __theFormPostCollection.length;
            var element;
            for (var i =3D 0; i < count; i++) {
                element =3D __theFormPostCollection[i];
                if (element) {
                    var fieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                    fieldElement.type =3D "hidden";
                    fieldElement.name =3D element.name;
                    fieldElement.value =3D element.value;
                    =
xmlRequestFrame.document.forms[0].appendChild(fieldElement);
                }
            }
            var callbackIdFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIdFieldElement.type =3D "hidden";
            callbackIdFieldElement.name =3D "__CALLBACKID";
            callbackIdFieldElement.value =3D eventTarget;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
            var callbackParamFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackParamFieldElement.type =3D "hidden";
            callbackParamFieldElement.name =3D "__CALLBACKPARAM";
            callbackParamFieldElement.value =3D eventArgument;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);=

            if (theForm["__EVENTVALIDATION"]) {
                var callbackValidationFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                callbackValidationFieldElement.type =3D "hidden";
                callbackValidationFieldElement.name =3D =
"__EVENTVALIDATION";
                callbackValidationFieldElement.value =3D =
theForm["__EVENTVALIDATION"].value;
                =
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElem=
ent);
            }
            var callbackIndexFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIndexFieldElement.type =3D "hidden";
            callbackIndexFieldElement.name =3D "__CALLBACKINDEX";
            callbackIndexFieldElement.value =3D callbackIndex;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);=

            xmlRequestFrame.document.forms[0].submit();
        }
    }, 10);
}
function WebForm_CallbackComplete() {
    for (var i =3D 0; i < __pendingCallbacks.length; i++) {
        callbackObject =3D __pendingCallbacks[i];
        if (callbackObject && callbackObject.xmlRequest && =
(callbackObject.xmlRequest.readyState =3D=3D 4)) {
            WebForm_ExecuteCallback(callbackObject);
            if (!__pendingCallbacks[i].async) {
                __synchronousCallBackIndex =3D -1;
            }
            __pendingCallbacks[i] =3D null;
            var callbackFrameID =3D "__CALLBACKFRAME" + i;
            var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
            if (xmlRequestFrame) {
                xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
            }
        }
    }
}
function WebForm_ExecuteCallback(callbackObject) {
    var response =3D callbackObject.xmlRequest.responseText;
    if (response.charAt(0) =3D=3D "s") {
        if ((typeof(callbackObject.eventCallback) !=3D "undefined") && =
(callbackObject.eventCallback !=3D null)) {
            callbackObject.eventCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else if (response.charAt(0) =3D=3D "e") {
        if ((typeof(callbackObject.errorCallback) !=3D "undefined") && =
(callbackObject.errorCallback !=3D null)) {
            callbackObject.errorCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else {
        var separatorIndex =3D response.indexOf("|");
        if (separatorIndex !=3D -1) {
            var validationFieldLength =3D parseInt(response.substring(0, =
separatorIndex));
            if (!isNaN(validationFieldLength)) {
                var validationField =3D =
response.substring(separatorIndex + 1, separatorIndex + =
validationFieldLength + 1);
                if (validationField !=3D "") {
                    var validationFieldElement =3D =
theForm["__EVENTVALIDATION"];
                    if (!validationFieldElement) {
                        validationFieldElement =3D =
document.createElement("INPUT");
                        validationFieldElement.type =3D "hidden";
                        validationFieldElement.name =3D =
"__EVENTVALIDATION";
                        theForm.appendChild(validationFieldElement);
                    }
                    validationFieldElement.value =3D validationField;
                }
                if ((typeof(callbackObject.eventCallback) !=3D =
"undefined") && (callbackObject.eventCallback !=3D null)) {
                    =
callbackObject.eventCallback(response.substring(separatorIndex + =
validationFieldLength + 1), callbackObject.context);
                }
            }
        }
    }
}
function WebForm_FillFirstAvailableSlot(array, element) {
    var i;
    for (i =3D 0; i < array.length; i++) {
        if (!array[i]) break;
    }
    array[i] =3D element;
    return i;
}
var __nonMSDOMBrowser =3D =
(window.navigator.appName.toLowerCase().indexOf('explorer') =3D=3D -1);
var __theFormPostData =3D "";
var __theFormPostCollection =3D new Array();
function WebForm_InitCallback() {
    var count =3D theForm.elements.length;
    var element;
    for (var i =3D 0; i < count; i++) {
        element =3D theForm.elements[i];
        var tagName =3D element.tagName.toLowerCase();
        if (tagName =3D=3D "input") {
            var type =3D element.type;
            if ((type =3D=3D "text" || type =3D=3D "hidden" || type =
=3D=3D "password" ||
                ((type =3D=3D "checkbox" || type =3D=3D "radio") && =
element.checked)) &&
                (element.id !=3D "__EVENTVALIDATION")) {
                WebForm_InitCallbackAddField(element.name, =
element.value);
            }
        }
        else if (tagName =3D=3D "select") {
            var selectCount =3D element.options.length;
            for (var j =3D 0; j < selectCount; j++) {
                var selectChild =3D element.options[j];
                if (selectChild.selected =3D=3D true) {
                    WebForm_InitCallbackAddField(element.name, =
element.value);
                }
            }
        }
        else if (tagName =3D=3D "textarea") {
            WebForm_InitCallbackAddField(element.name, element.value);
        }
    }
}
function WebForm_InitCallbackAddField(name, value) {
    var nameValue =3D new Object();
    nameValue.name =3D name;
    nameValue.value =3D value;
    __theFormPostCollection[__theFormPostCollection.length] =3D =
nameValue;
    __theFormPostData +=3D WebForm_EncodeCallback(name) + "=3D" + =
WebForm_EncodeCallback(value) + "&";
}
function WebForm_EncodeCallback(parameter) {
    if (encodeURIComponent) {
        return encodeURIComponent(parameter);
    }
    else {
        return escape(parameter);
    }
}
var __disabledControlArray =3D new Array();
function WebForm_ReEnableControls() {
    if (typeof(__enabledControlArray) =3D=3D 'undefined') {
        return false;
    }
    var disabledIndex =3D 0;
    for (var i =3D 0; i < __enabledControlArray.length; i++) {
        var c;
        if (__nonMSDOMBrowser) {
            c =3D document.getElementById(__enabledControlArray[i]);
        }
        else {
            c =3D document.all[__enabledControlArray[i]];
        }
        if ((typeof(c) !=3D "undefined") && (c !=3D null) && (c.disabled =
=3D=3D true)) {
            c.disabled =3D false;
            __disabledControlArray[disabledIndex++] =3D c;
        }
    }
    setTimeout("WebForm_ReDisableControls()", 0);
    return true;
}
function WebForm_ReDisableControls() {
    for (var i =3D 0; i < __disabledControlArray.length; i++) {
        __disabledControlArray[i].disabled =3D true;
    }
}
function WebForm_FireDefaultButton(event, target) {
    if (event.keyCode =3D=3D 13) {
        var src =3D event.srcElement || event.target;
        if (!src || (src.tagName.toLowerCase() !=3D "textarea")) {
            var defaultButton;
            if (__nonMSDOMBrowser) {
               defaultButton =3D document.getElementById(target);
            }
            else {
                defaultButton =3D document.all[target];
            }
            if (defaultButton && typeof(defaultButton.click) !=3D =
"undefined") {
                defaultButton.click();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_GetScrollX() {
    if (__nonMSDOMBrowser) {
        return window.pageXOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollLeft) {
            return document.documentElement.scrollLeft;
        }
        else if (document.body) {
            return document.body.scrollLeft;
        }
    }
    return 0;
}
function WebForm_GetScrollY() {
    if (__nonMSDOMBrowser) {
        return window.pageYOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollTop) {
            return document.documentElement.scrollTop;
        }
        else if (document.body) {
            return document.body.scrollTop;
        }
    }
    return 0;
}
function WebForm_SaveScrollPositionSubmit() {
    if (__nonMSDOMBrowser) {
        theForm.elements['__SCROLLPOSITIONY'].value =3D =
window.pageYOffset;
        theForm.elements['__SCROLLPOSITIONX'].value =3D =
window.pageXOffset;
    }
    else {
        theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
        theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    }
    if ((typeof(this.oldSubmit) !=3D "undefined") && (this.oldSubmit =
!=3D null)) {
        return this.oldSubmit();
    }
    return true;
}
function WebForm_SaveScrollPositionOnSubmit() {
    theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
    theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    if ((typeof(this.oldOnSubmit) !=3D "undefined") && (this.oldOnSubmit =
!=3D null)) {
        return this.oldOnSubmit();
    }
    return true;
}
function WebForm_RestoreScrollPosition() {
    if (__nonMSDOMBrowser) {
        window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, =
theForm.elements['__SCROLLPOSITIONY'].value);
    }
    else {
        window.scrollTo(theForm.__SCROLLPOSITIONX.value, =
theForm.__SCROLLPOSITIONY.value);
    }
    if ((typeof(theForm.oldOnLoad) !=3D "undefined") && =
(theForm.oldOnLoad !=3D null)) {
        return theForm.oldOnLoad();
    }
    return true;
}
function WebForm_TextBoxKeyHandler(event) {
    if (event.keyCode =3D=3D 13) {
        var target;
        if (__nonMSDOMBrowser) {
            target =3D event.target;
        }
        else {
            target =3D event.srcElement;
        }
        if ((typeof(target) !=3D "undefined") && (target !=3D null)) {
            if (typeof(target.onchange) !=3D "undefined") {
                target.onchange();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_TrimString(value) {
    return value.replace(/^\s+|\s+$/g, '')
}
function WebForm_AppendToClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index =3D=3D=3D -1) {
        element.className =3D (element.className =3D=3D=3D '') ? =
className : element.className + ' ' + className;
    }
}
function WebForm_RemoveClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D =
WebForm_TrimString(currentClassName.substring(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length));
    }
}
function WebForm_GetElementById(elementId) {
    if (document.getElementById) {
        return document.getElementById(elementId);
    }
    else if (document.all) {
        return document.all[elementId];
    }
    else return null;
}
function WebForm_GetElementByTagName(element, tagName) {
    var elements =3D WebForm_GetElementsByTagName(element, tagName);
    if (elements && elements.length > 0) {
        return elements[0];
    }
    else return null;
}
function WebForm_GetElementsByTagName(element, tagName) {
    if (element && tagName) {
        if (element.getElementsByTagName) {
            return element.getElementsByTagName(tagName);
        }
        if (element.all && element.all.tags) {
            return element.all.tags(tagName);
        }
    }
    return null;
}
function WebForm_GetElementDir(element) {
    if (element) {
        if (element.dir) {
            return element.dir;
        }
        return WebForm_GetElementDir(element.parentNode);
    }
    return "ltr";
}
function WebForm_GetElementPosition(element) {
    var result =3D new Object();
    result.x =3D 0;
    result.y =3D 0;
    result.width =3D 0;
    result.height =3D 0;
    if (element.offsetParent) {
        result.x =3D element.offsetLeft;
        result.y =3D element.offsetTop;
        var parent =3D element.offsetParent;
        while (parent) {
            result.x +=3D parent.offsetLeft;
            result.y +=3D parent.offsetTop;
            var parentTagName =3D parent.tagName.toLowerCase();
            if (parentTagName !=3D "table" &&
                parentTagName !=3D "body" &&=20
                parentTagName !=3D "html" &&=20
                parentTagName !=3D "div" &&=20
                parent.clientTop &&=20
                parent.clientLeft) {
                result.x +=3D parent.clientLeft;
                result.y +=3D parent.clientTop;
            }
            parent =3D parent.offsetParent;
        }
    }
    else if (element.left && element.top) {
        result.x =3D element.left;
        result.y =3D element.top;
    }
    else {
        if (element.x) {
            result.x =3D element.x;
        }
        if (element.y) {
            result.y =3D element.y;
        }
    }
    if (element.offsetWidth && element.offsetHeight) {
        result.width =3D element.offsetWidth;
        result.height =3D element.offsetHeight;
    }
    else if (element.style && element.style.pixelWidth && =
element.style.pixelHeight) {
        result.width =3D element.style.pixelWidth;
        result.height =3D element.style.pixelHeight;
    }
    return result;
}
function WebForm_GetParentByTagName(element, tagName) {
    var parent =3D element.parentNode;
    var upperTagName =3D tagName.toUpperCase();
    while (parent && (parent.tagName.toUpperCase() !=3D upperTagName)) {
        parent =3D parent.parentNode ? parent.parentNode : =
parent.parentElement;
    }
    return parent;
}
function WebForm_SetElementHeight(element, height) {
    if (element && element.style) {
        element.style.height =3D height + "px";
    }
}
function WebForm_SetElementWidth(element, width) {
    if (element && element.style) {
        element.style.width =3D width + "px";
    }
}
function WebForm_SetElementX(element, x) {
    if (element && element.style) {
        element.style.left =3D x + "px";
    }
}
function WebForm_SetElementY(element, y) {
    if (element && element.style) {
        element.style.top =3D y + "px";
    }
}

------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/ScriptResource.axd?d=yhJ2JDL_g9xy5UI_FGGfZtgwY0HaQos2a2CU9R157K8iT897CVud6vr-jTNBpux20_81umL82akaWwIiueW4v5sLLG9XtUrelKi1BYz57aOLYmYatm2QAR7WxH0195F7O-h0QJMIaCjSai-jMO5ZIJUYAmBVS60BQ_C8xwSzCqMpPHnd0&t=ffffffffe91ada60

// Name:        MicrosoftAjax.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.30729.3644
//-----------------------------------------------------------------------=

// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------=

// MicrosoftAjax.js
// Microsoft AJAX Framework.
=20
Function.__typeName =3D 'Function';
Function.__class =3D true;
Function.createCallback =3D function Function$createCallback(method, =
context) {
    /// <summary locid=3D"M:J#Function.createCallback" />
    /// <param name=3D"method" type=3D"Function"></param>
    /// <param name=3D"context" mayBeNull=3D"true"></param>
    /// <returns type=3D"Function"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "method", type: Function},
        {name: "context", mayBeNull: true}
    ]);
    if (e) throw e;
    return function() {
        var l =3D arguments.length;
        if (l > 0) {
            var args =3D [];
            for (var i =3D 0; i < l; i++) {
                args[i] =3D arguments[i];
            }
            args[l] =3D context;
            return method.apply(this, args);
        }
        return method.call(this, context);
    }
}
Function.createDelegate =3D function Function$createDelegate(instance, =
method) {
    /// <summary locid=3D"M:J#Function.createDelegate" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <param name=3D"method" type=3D"Function"></param>
    /// <returns type=3D"Function"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true},
        {name: "method", type: Function}
    ]);
    if (e) throw e;
    return function() {
        return method.apply(instance, arguments);
    }
}
Function.emptyFunction =3D Function.emptyMethod =3D function =
Function$emptyMethod() {
    /// <summary locid=3D"M:J#Function.emptyMethod" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Function._validateParams =3D function Function$_validateParams(params, =
expectedParams) {
    var e;
    e =3D Function._validateParameterCount(params, expectedParams);
    if (e) {
        e.popStackFrame();
        return e;
    }
    for (var i=3D0; i < params.length; i++) {
        var expectedParam =3D expectedParams[Math.min(i, =
expectedParams.length - 1)];
        var paramName =3D expectedParam.name;
        if (expectedParam.parameterArray) {
            paramName +=3D "[" + (i - expectedParams.length + 1) + "]";
        }
        e =3D Function._validateParameter(params[i], expectedParam, =
paramName);
        if (e) {
            e.popStackFrame();
            return e;
        }
    }
    return null;
}
Function._validateParameterCount =3D function =
Function$_validateParameterCount(params, expectedParams) {
    var maxParams =3D expectedParams.length;
    var minParams =3D 0;
    for (var i=3D0; i < expectedParams.length; i++) {
        if (expectedParams[i].parameterArray) {
            maxParams =3D Number.MAX_VALUE;
        }
        else if (!expectedParams[i].optional) {
            minParams++;
        }
    }
    if (params.length < minParams || params.length > maxParams) {
        var e =3D Error.parameterCount();
        e.popStackFrame();
        return e;
    }
    return null;
}
Function._validateParameter =3D function =
Function$_validateParameter(param, expectedParam, paramName) {
    var e;
    var expectedType =3D expectedParam.type;
    var expectedInteger =3D !!expectedParam.integer;
    var expectedDomElement =3D !!expectedParam.domElement;
    var mayBeNull =3D !!expectedParam.mayBeNull;
    e =3D Function._validateParameterType(param, expectedType, =
expectedInteger, expectedDomElement, mayBeNull, paramName);
    if (e) {
        e.popStackFrame();
        return e;
    }
    var expectedElementType =3D expectedParam.elementType;
    var elementMayBeNull =3D !!expectedParam.elementMayBeNull;
    if (expectedType =3D=3D=3D Array && typeof(param) !=3D=3D =
"undefined" && param !=3D=3D null &&
        (expectedElementType || !elementMayBeNull)) {
        var expectedElementInteger =3D !!expectedParam.elementInteger;
        var expectedElementDomElement =3D =
!!expectedParam.elementDomElement;
        for (var i=3D0; i < param.length; i++) {
            var elem =3D param[i];
            e =3D Function._validateParameterType(elem, =
expectedElementType,
                expectedElementInteger, expectedElementDomElement, =
elementMayBeNull,
                paramName + "[" + i + "]");
            if (e) {
                e.popStackFrame();
                return e;
            }
        }
    }
    return null;
}
Function._validateParameterType =3D function =
Function$_validateParameterType(param, expectedType, expectedInteger, =
expectedDomElement, mayBeNull, paramName) {
    var e;
    if (typeof(param) =3D=3D=3D "undefined") {
        if (mayBeNull) {
            return null;
        }
        else {
            e =3D Error.argumentUndefined(paramName);
            e.popStackFrame();
            return e;
        }
    }
    if (param =3D=3D=3D null) {
        if (mayBeNull) {
            return null;
        }
        else {
            e =3D Error.argumentNull(paramName);
            e.popStackFrame();
            return e;
        }
    }
    if (expectedType && expectedType.__enum) {
        if (typeof(param) !=3D=3D 'number') {
            e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
            e.popStackFrame();
            return e;
        }
        if ((param % 1) =3D=3D=3D 0) {
            var values =3D expectedType.prototype;
            if (!expectedType.__flags || (param =3D=3D=3D 0)) {
                for (var i in values) {
                    if (values[i] =3D=3D=3D param) return null;
                }
            }
            else {
                var v =3D param;
                for (var i in values) {
                    var vali =3D values[i];
                    if (vali =3D=3D=3D 0) continue;
                    if ((vali & param) =3D=3D=3D vali) {
                        v -=3D vali;
                    }
                    if (v =3D=3D=3D 0) return null;
                }
            }
        }
        e =3D Error.argumentOutOfRange(paramName, param, =
String.format(Sys.Res.enumInvalidValue, param, expectedType.getName()));
        e.popStackFrame();
        return e;
    }
    if (expectedDomElement) {
        var val;
        if (typeof(param.nodeType) !=3D=3D 'number') {
            var doc =3D param.ownerDocument || param.document || param;
            if (doc !=3D param) {
                var w =3D doc.defaultView || doc.parentWindow;
                val =3D (w !=3D param) && !(w.document && param.document =
&& (w.document =3D=3D=3D param.document));
            }
            else {
                val =3D (typeof(doc.body) =3D=3D=3D 'undefined');
            }
        }
        else {
            val =3D (param.nodeType =3D=3D=3D 3);
        }
        if (val) {
            e =3D Error.argument(paramName, Sys.Res.argumentDomElement);
            e.popStackFrame();
            return e;
        }
    }
    if (expectedType && !expectedType.isInstanceOfType(param)) {
        e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
        e.popStackFrame();
        return e;
    }
    if (expectedType =3D=3D=3D Number && expectedInteger) {
        if ((param % 1) !=3D=3D 0) {
            e =3D Error.argumentOutOfRange(paramName, param, =
Sys.Res.argumentInteger);
            e.popStackFrame();
            return e;
        }
    }
    return null;
}
=20
Error.__typeName =3D 'Error';
Error.__class =3D true;
Error.create =3D function Error$create(message, errorInfo) {
    /// <summary locid=3D"M:J#Error.create" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"errorInfo" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Error"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: =
true},
        {name: "errorInfo", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var e =3D new Error(message);
    e.message =3D message;
    if (errorInfo) {
        for (var v in errorInfo) {
            e[v] =3D errorInfo[v];
        }
    }
    e.popStackFrame();
    return e;
}
Error.argument =3D function Error$argument(paramName, message) {
    /// <summary locid=3D"M:J#Error.argument" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentException: " + (message ? =
message : Sys.Res.argument);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.argumentNull =3D function Error$argumentNull(paramName, message) {
    /// <summary locid=3D"M:J#Error.argumentNull" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentNullException: " + (message ? =
message : Sys.Res.argumentNull);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentNullException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.argumentOutOfRange =3D function =
Error$argumentOutOfRange(paramName, actualValue, message) {
    /// <summary locid=3D"M:J#Error.argumentOutOfRange" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"actualValue" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualValue", mayBeNull: true, optional: true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentOutOfRangeException: " + =
(message ? message : Sys.Res.argumentOutOfRange);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    if (typeof(actualValue) !=3D=3D "undefined" && actualValue !=3D=3D =
null) {
        displayMessage +=3D "\n" + String.format(Sys.Res.actualValue, =
actualValue);
    }
    var e =3D Error.create(displayMessage, {
        name: "Sys.ArgumentOutOfRangeException",
        paramName: paramName,
        actualValue: actualValue
    });
    e.popStackFrame();
    return e;
}
Error.argumentType =3D function Error$argumentType(paramName, =
actualType, expectedType, message) {
    /// <summary locid=3D"M:J#Error.argumentType" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"actualType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"expectedType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualType", type: Type, mayBeNull: true, optional: =
true},
        {name: "expectedType", type: Type, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentTypeException: ";
    if (message) {
        displayMessage +=3D message;
    }
    else if (actualType && expectedType) {
        displayMessage +=3D
            String.format(Sys.Res.argumentTypeWithTypes, =
actualType.getName(), expectedType.getName());
    }
    else {
        displayMessage +=3D Sys.Res.argumentType;
    }
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, {
        name: "Sys.ArgumentTypeException",
        paramName: paramName,
        actualType: actualType,
        expectedType: expectedType
    });
    e.popStackFrame();
    return e;
}
Error.argumentUndefined =3D function Error$argumentUndefined(paramName, =
message) {
    /// <summary locid=3D"M:J#Error.argumentUndefined" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentUndefinedException: " + (message =
? message : Sys.Res.argumentUndefined);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentUndefinedException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.format =3D function Error$format(message) {
    /// <summary locid=3D"M:J#Error.format" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.FormatException: " + (message ? message =
: Sys.Res.format);
    var e =3D Error.create(displayMessage, {name: =
'Sys.FormatException'});
    e.popStackFrame();
    return e;
}
Error.invalidOperation =3D function Error$invalidOperation(message) {
    /// <summary locid=3D"M:J#Error.invalidOperation" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.InvalidOperationException: " + (message =
? message : Sys.Res.invalidOperation);
    var e =3D Error.create(displayMessage, {name: =
'Sys.InvalidOperationException'});
    e.popStackFrame();
    return e;
}
Error.notImplemented =3D function Error$notImplemented(message) {
    /// <summary locid=3D"M:J#Error.notImplemented" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.NotImplementedException: " + (message ? =
message : Sys.Res.notImplemented);
    var e =3D Error.create(displayMessage, {name: =
'Sys.NotImplementedException'});
    e.popStackFrame();
    return e;
}
Error.parameterCount =3D function Error$parameterCount(message) {
    /// <summary locid=3D"M:J#Error.parameterCount" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ParameterCountException: " + (message ? =
message : Sys.Res.parameterCount);
    var e =3D Error.create(displayMessage, {name: =
'Sys.ParameterCountException'});
    e.popStackFrame();
    return e;
}
Error.prototype.popStackFrame =3D function Error$popStackFrame() {
    /// <summary locid=3D"M:J#checkParam" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (typeof(this.stack) =3D=3D=3D "undefined" || this.stack =3D=3D=3D =
null ||
        typeof(this.fileName) =3D=3D=3D "undefined" || this.fileName =
=3D=3D=3D null ||
        typeof(this.lineNumber) =3D=3D=3D "undefined" || this.lineNumber =
=3D=3D=3D null) {
        return;
    }
    var stackFrames =3D this.stack.split("\n");
    var currentFrame =3D stackFrames[0];
    var pattern =3D this.fileName + ":" + this.lineNumber;
    while(typeof(currentFrame) !=3D=3D "undefined" &&
          currentFrame !=3D=3D null &&
          currentFrame.indexOf(pattern) =3D=3D=3D -1) {
        stackFrames.shift();
        currentFrame =3D stackFrames[0];
    }
    var nextFrame =3D stackFrames[1];
    if (typeof(nextFrame) =3D=3D=3D "undefined" || nextFrame =3D=3D=3D =
null) {
        return;
    }
    var nextFrameParts =3D nextFrame.match(/@(.*):(\d+)$/);
    if (typeof(nextFrameParts) =3D=3D=3D "undefined" || nextFrameParts =
=3D=3D=3D null) {
        return;
    }
    this.fileName =3D nextFrameParts[1];
    this.lineNumber =3D parseInt(nextFrameParts[2]);
    stackFrames.shift();
    this.stack =3D stackFrames.join("\n");
}
=20
Object.__typeName =3D 'Object';
Object.__class =3D true;
Object.getType =3D function Object$getType(instance) {
    /// <summary locid=3D"M:J#Object.getType" />
    /// <param name=3D"instance"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    var ctor =3D instance.constructor;
    if (!ctor || (typeof(ctor) !=3D=3D "function") || !ctor.__typeName =
|| (ctor.__typeName =3D=3D=3D 'Object')) {
        return Object;
    }
    return ctor;
}
Object.getTypeName =3D function Object$getTypeName(instance) {
    /// <summary locid=3D"M:J#Object.getTypeName" />
    /// <param name=3D"instance"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    return Object.getType(instance).getName();
}
=20
String.__typeName =3D 'String';
String.__class =3D true;
String.prototype.endsWith =3D function String$endsWith(suffix) {
    /// <summary locid=3D"M:J#String.endsWith" />
    /// <param name=3D"suffix" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "suffix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(this.length - suffix.length) =3D=3D=3D suffix);
}
String.prototype.startsWith =3D function String$startsWith(prefix) {
    /// <summary locid=3D"M:J#String.startsWith" />
    /// <param name=3D"prefix" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "prefix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(0, prefix.length) =3D=3D=3D prefix);
}
String.prototype.trim =3D function String$trim() {
    /// <summary locid=3D"M:J#String.trim" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+|\s+$/g, '');
}
String.prototype.trimEnd =3D function String$trimEnd() {
    /// <summary locid=3D"M:J#String.trimEnd" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/\s+$/, '');
}
String.prototype.trimStart =3D function String$trimStart() {
    /// <summary locid=3D"M:J#String.trimStart" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+/, '');
}
String.format =3D function String$format(format, args) {
    /// <summary locid=3D"M:J#String.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(false, arguments);
}
String.localeFormat =3D function String$localeFormat(format, args) {
    /// <summary locid=3D"M:J#String.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(true, arguments);
}
String._toFormattedString =3D function =
String$_toFormattedString(useLocale, args) {
    var result =3D '';
    var format =3D args[0];
    for (var i=3D0;;) {
        var open =3D format.indexOf('{', i);
        var close =3D format.indexOf('}', i);
        if ((open < 0) && (close < 0)) {
            result +=3D format.slice(i);
            break;
        }
        if ((close > 0) && ((close < open) || (open < 0))) {
            if (format.charAt(close + 1) !=3D=3D '}') {
                throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);
            }
            result +=3D format.slice(i, close + 1);
            i =3D close + 2;
            continue;
        }
        result +=3D format.slice(i, open);
        i =3D open + 1;
        if (format.charAt(i) =3D=3D=3D '{') {
            result +=3D '{';
            i++;
            continue;
        }
        if (close < 0) throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);
        var brace =3D format.substring(i, close);
        var colonIndex =3D brace.indexOf(':');
        var argNumber =3D parseInt((colonIndex < 0)? brace : =
brace.substring(0, colonIndex), 10) + 1;
        if (isNaN(argNumber)) throw Error.argument('format', =
Sys.Res.stringFormatInvalid);
        var argFormat =3D (colonIndex < 0)? '' : =
brace.substring(colonIndex + 1);
        var arg =3D args[argNumber];
        if (typeof(arg) =3D=3D=3D "undefined" || arg =3D=3D=3D null) {
            arg =3D '';
        }
        if (arg.toFormattedString) {
            result +=3D arg.toFormattedString(argFormat);
        }
        else if (useLocale && arg.localeFormat) {
            result +=3D arg.localeFormat(argFormat);
        }
        else if (arg.format) {
            result +=3D arg.format(argFormat);
        }
        else
            result +=3D arg.toString();
        i =3D close + 1;
    }
    return result;
}
=20
Boolean.__typeName =3D 'Boolean';
Boolean.__class =3D true;
Boolean.parse =3D function Boolean$parse(value) {
    /// <summary locid=3D"M:J#Boolean.parse" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    var v =3D value.trim().toLowerCase();
    if (v =3D=3D=3D 'false') return false;
    if (v =3D=3D=3D 'true') return true;
    throw Error.argumentOutOfRange('value', value, =
Sys.Res.boolTrueOrFalse);
}
=20
Date.__typeName =3D 'Date';
Date.__class =3D true;
Date._appendPreOrPostMatch =3D function =
Date$_appendPreOrPostMatch(preMatch, strBuilder) {
    var quoteCount =3D 0;
    var escaped =3D false;
    for (var i =3D 0, il =3D preMatch.length; i < il; i++) {
        var c =3D preMatch.charAt(i);
        switch (c) {
        case '\'':
            if (escaped) strBuilder.append("'");
            else quoteCount++;
            escaped =3D false;
            break;
        case '\\':
            if (escaped) strBuilder.append("\\");
            escaped =3D !escaped;
            break;
        default:
            strBuilder.append(c);
            escaped =3D false;
            break;
        }
    }
    return quoteCount;
}
Date._expandFormat =3D function Date$_expandFormat(dtf, format) {
    if (!format) {
        format =3D "F";
    }
    if (format.length =3D=3D=3D 1) {
        switch (format) {
        case "d":
            return dtf.ShortDatePattern;
        case "D":
            return dtf.LongDatePattern;
        case "t":
            return dtf.ShortTimePattern;
        case "T":
            return dtf.LongTimePattern;
        case "F":
            return dtf.FullDateTimePattern;
        case "M": case "m":
            return dtf.MonthDayPattern;
        case "s":
            return dtf.SortableDateTimePattern;
        case "Y": case "y":
            return dtf.YearMonthPattern;
        default:
            throw Error.format(Sys.Res.formatInvalidString);
        }
    }
    return format;
}
Date._expandYear =3D function Date$_expandYear(dtf, year) {
    if (year < 100) {
        var curr =3D new Date().getFullYear();
        year +=3D curr - (curr % 100);
        if (year > dtf.Calendar.TwoDigitYearMax) {
            return year - 100;
        }
    }
    return year;
}
Date._getParseRegExp =3D function Date$_getParseRegExp(dtf, format) {
    if (!dtf._parseRegExp) {
        dtf._parseRegExp =3D {};
    }
    else if (dtf._parseRegExp[format]) {
        return dtf._parseRegExp[format];
    }
    var expFormat =3D Date._expandFormat(dtf, format);
    expFormat =3D expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, =
"\\\\$1");
    var regexp =3D new Sys.StringBuilder("^");
    var groups =3D [];
    var index =3D 0;
    var quoteCount =3D 0;
    var tokenRegExp =3D Date._getTokenRegExp();
    var match;
    while ((match =3D tokenRegExp.exec(expFormat)) !=3D=3D null) {
        var preMatch =3D expFormat.slice(index, match.index);
        index =3D tokenRegExp.lastIndex;
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, regexp);
        if ((quoteCount%2) =3D=3D=3D 1) {
            regexp.append(match[0]);
            continue;
        }
        switch (match[0]) {
            case 'dddd': case 'ddd':
            case 'MMMM': case 'MMM':
                regexp.append("(\\D+)");
                break;
            case 'tt': case 't':
                regexp.append("(\\D*)");
                break;
            case 'yyyy':
                regexp.append("(\\d{4})");
                break;
            case 'fff':
                regexp.append("(\\d{3})");
                break;
            case 'ff':
                regexp.append("(\\d{2})");
                break;
            case 'f':
                regexp.append("(\\d)");
                break;
            case 'dd': case 'd':
            case 'MM': case 'M':
            case 'yy': case 'y':
            case 'HH': case 'H':
            case 'hh': case 'h':
            case 'mm': case 'm':
            case 'ss': case 's':
                regexp.append("(\\d\\d?)");
                break;
            case 'zzz':
                regexp.append("([+-]?\\d\\d?:\\d{2})");
                break;
            case 'zz': case 'z':
                regexp.append("([+-]?\\d\\d?)");
                break;
        }
        Array.add(groups, match[0]);
    }
    Date._appendPreOrPostMatch(expFormat.slice(index), regexp);
    regexp.append("$");
    var regexpStr =3D regexp.toString().replace(/\s+/g, "\\s+");
    var parseRegExp =3D {'regExp': regexpStr, 'groups': groups};
    dtf._parseRegExp[format] =3D parseRegExp;
    return parseRegExp;
}
Date._getTokenRegExp =3D function Date$_getTokenRegExp() {
    return =
/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|=
zzz|zz|z/g;
}
Date.parseLocale =3D function Date$parseLocale(value, formats) {
    /// <summary locid=3D"M:J#Date.parseLocale" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.CurrentCulture, =
arguments);
}
Date.parseInvariant =3D function Date$parseInvariant(value, formats) {
    /// <summary locid=3D"M:J#Date.parseInvariant" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.InvariantCulture, =
arguments);
}
Date._parse =3D function Date$_parse(value, cultureInfo, args) {
    var custom =3D false;
    for (var i =3D 1, il =3D args.length; i < il; i++) {
        var format =3D args[i];
        if (format) {
            custom =3D true;
            var date =3D Date._parseExact(value, format, cultureInfo);
            if (date) return date;
        }
    }
    if (! custom) {
        var formats =3D cultureInfo._getDateTimeFormats();
        for (var i =3D 0, il =3D formats.length; i < il; i++) {
            var date =3D Date._parseExact(value, formats[i], =
cultureInfo);
            if (date) return date;
        }
    }
    return null;
}
Date._parseExact =3D function Date$_parseExact(value, format, =
cultureInfo) {
    value =3D value.trim();
    var dtf =3D cultureInfo.dateTimeFormat;
    var parseInfo =3D Date._getParseRegExp(dtf, format);
    var match =3D new RegExp(parseInfo.regExp).exec(value);
    if (match =3D=3D=3D null) return null;
   =20
    var groups =3D parseInfo.groups;
    var year =3D null, month =3D null, date =3D null, weekDay =3D null;
    var hour =3D 0, min =3D 0, sec =3D 0, msec =3D 0, tzMinOffset =3D =
null;
    var pmHour =3D false;
    for (var j =3D 0, jl =3D groups.length; j < jl; j++) {
        var matchGroup =3D match[j+1];
        if (matchGroup) {
            switch (groups[j]) {
                case 'dd': case 'd':
                    date =3D parseInt(matchGroup, 10);
                    if ((date < 1) || (date > 31)) return null;
                    break;
                case 'MMMM':
                    month =3D cultureInfo._getMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'MMM':
                    month =3D =
cultureInfo._getAbbrMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'M': case 'MM':
                    var month =3D parseInt(matchGroup, 10) - 1;
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'y': case 'yy':
                    year =3D Date._expandYear(dtf,parseInt(matchGroup, =
10));
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'yyyy':
                    year =3D parseInt(matchGroup, 10);
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'h': case 'hh':
                    hour =3D parseInt(matchGroup, 10);
                    if (hour =3D=3D=3D 12) hour =3D 0;
                    if ((hour < 0) || (hour > 11)) return null;
                    break;
                case 'H': case 'HH':
                    hour =3D parseInt(matchGroup, 10);
                    if ((hour < 0) || (hour > 23)) return null;
                    break;
                case 'm': case 'mm':
                    min =3D parseInt(matchGroup, 10);
                    if ((min < 0) || (min > 59)) return null;
                    break;
                case 's': case 'ss':
                    sec =3D parseInt(matchGroup, 10);
                    if ((sec < 0) || (sec > 59)) return null;
                    break;
                case 'tt': case 't':
                    var upperToken =3D matchGroup.toUpperCase();
                    pmHour =3D (upperToken =3D=3D=3D =
dtf.PMDesignator.toUpperCase());
                    if (!pmHour && (upperToken !=3D=3D =
dtf.AMDesignator.toUpperCase())) return null;
                    break;
                case 'f':
                    msec =3D parseInt(matchGroup, 10) * 100;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'ff':
                    msec =3D parseInt(matchGroup, 10) * 10;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'fff':
                    msec =3D parseInt(matchGroup, 10);
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'dddd':
                    weekDay =3D cultureInfo._getDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'ddd':
                    weekDay =3D =
cultureInfo._getAbbrDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'zzz':
                    var offsets =3D matchGroup.split(/:/);
                    if (offsets.length !=3D=3D 2) return null;
                    var hourOffset =3D parseInt(offsets[0], 10);
                    if ((hourOffset < -12) || (hourOffset > 13)) return =
null;
                    var minOffset =3D parseInt(offsets[1], 10);
                    if ((minOffset < 0) || (minOffset > 59)) return =
null;
                    tzMinOffset =3D (hourOffset * 60) + =
(matchGroup.startsWith('-')? -minOffset : minOffset);
                    break;
                case 'z': case 'zz':
                    var hourOffset =3D parseInt(matchGroup, 10);
                    if ((hourOffset < -12) || (hourOffset > 13)) return =
null;
                    tzMinOffset =3D hourOffset * 60;
                    break;
            }
        }
    }
    var result =3D new Date();
    if (year =3D=3D=3D null) {
        year =3D result.getFullYear();
    }
    if (month =3D=3D=3D null) {
        month =3D result.getMonth();
    }
    if (date =3D=3D=3D null) {
        date =3D result.getDate();
    }
    result.setFullYear(year, month, date);
    if (result.getDate() !=3D=3D date) return null;
    if ((weekDay !=3D=3D null) && (result.getDay() !=3D=3D weekDay)) {
        return null;
    }
    if (pmHour && (hour < 12)) {
        hour +=3D 12;
    }
    result.setHours(hour, min, sec, msec);
    if (tzMinOffset !=3D=3D null) {
        var adjustedMin =3D result.getMinutes() - (tzMinOffset + =
result.getTimezoneOffset());
        result.setHours(result.getHours() + parseInt(adjustedMin/60, =
10), adjustedMin%60);
    }
    return result;
}
Date.prototype.format =3D function Date$format(format) {
    /// <summary locid=3D"M:J#Date.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}
Date.prototype.localeFormat =3D function Date$localeFormat(format) {
    /// <summary locid=3D"M:J#Date.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}
Date.prototype._toFormattedString =3D function =
Date$_toFormattedString(format, cultureInfo) {
    if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D =
'i')) {
        if (cultureInfo && (cultureInfo.name.length > 0)) {
            return this.toLocaleString();
        }
        else {
            return this.toString();
        }
    }
    var dtf =3D cultureInfo.dateTimeFormat;
    format =3D Date._expandFormat(dtf, format);
    var ret =3D new Sys.StringBuilder();
    var hour;
    function addLeadingZero(num) {
        if (num < 10) {
            return '0' + num;
        }
        return num.toString();
    }
    function addLeadingZeros(num) {
        if (num < 10) {
            return '00' + num;
        }
        if (num < 100) {
            return '0' + num;
        }
        return num.toString();
    }
    var quoteCount =3D 0;
    var tokenRegExp =3D Date._getTokenRegExp();
    for (;;) {
        var index =3D tokenRegExp.lastIndex;
        var ar =3D tokenRegExp.exec(format);
        var preMatch =3D format.slice(index, ar ? ar.index : =
format.length);
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, ret);
        if (!ar) break;
        if ((quoteCount%2) =3D=3D=3D 1) {
            ret.append(ar[0]);
            continue;
        }
        switch (ar[0]) {
        case "dddd":
            ret.append(dtf.DayNames[this.getDay()]);
            break;
        case "ddd":
            ret.append(dtf.AbbreviatedDayNames[this.getDay()]);
            break;
        case "dd":
            ret.append(addLeadingZero(this.getDate()));
            break;
        case "d":
            ret.append(this.getDate());
            break;
        case "MMMM":
            ret.append(dtf.MonthNames[this.getMonth()]);
            break;
        case "MMM":
            ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]);
            break;
        case "MM":
            ret.append(addLeadingZero(this.getMonth() + 1));
            break;
        case "M":
            ret.append(this.getMonth() + 1);
            break;
        case "yyyy":
            ret.append(this.getFullYear());
            break;
        case "yy":
            ret.append(addLeadingZero(this.getFullYear() % 100));
            break;
        case "y":
            ret.append(this.getFullYear() % 100);
            break;
        case "hh":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(addLeadingZero(hour));
            break;
        case "h":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(hour);
            break;
        case "HH":
            ret.append(addLeadingZero(this.getHours()));
            break;
        case "H":
            ret.append(this.getHours());
            break;
        case "mm":
            ret.append(addLeadingZero(this.getMinutes()));
            break;
        case "m":
            ret.append(this.getMinutes());
            break;
        case "ss":
            ret.append(addLeadingZero(this.getSeconds()));
            break;
        case "s":
            ret.append(this.getSeconds());
            break;
        case "tt":
            ret.append((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator);
            break;
        case "t":
            ret.append(((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator).charAt(0));
            break;
        case "f":
            =
ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
            break;
        case "ff":
            ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, =
2));
            break;
        case "fff":
            ret.append(addLeadingZeros(this.getMilliseconds()));
            break;
        case "z":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
Math.floor(Math.abs(hour)));
            break;
        case "zz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
addLeadingZero(Math.floor(Math.abs(hour))));
            break;
        case "zzz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
addLeadingZero(Math.floor(Math.abs(hour))) +
                dtf.TimeSeparator + =
addLeadingZero(Math.abs(this.getTimezoneOffset() % 60)));
            break;
        }
    }
    return ret.toString();
}
=20
Number.__typeName =3D 'Number';
Number.__class =3D true;
Number.parseLocale =3D function Number$parseLocale(value) {
    /// <summary locid=3D"M:J#Number.parseLocale" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.CurrentCulture);
}
Number.parseInvariant =3D function Number$parseInvariant(value) {
    /// <summary locid=3D"M:J#Number.parseInvariant" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.InvariantCulture);
}
Number._parse =3D function Number$_parse(value, cultureInfo) {
    value =3D value.trim();
   =20
    if (value.match(/^[+-]?infinity$/i)) {
        return parseFloat(value);
    }
    if (value.match(/^0x[a-f0-9]+$/i)) {
        return parseInt(value);
    }
    var numFormat =3D cultureInfo.numberFormat;
    var signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, numFormat.NumberNegativePattern);
    var sign =3D signInfo[0];
    var num =3D signInfo[1];
   =20
    if ((sign =3D=3D=3D '') && (numFormat.NumberNegativePattern !=3D=3D =
1)) {
        signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, 1);
        sign =3D signInfo[0];
        num =3D signInfo[1];
    }
    if (sign =3D=3D=3D '') sign =3D '+';
   =20
    var exponent;
    var intAndFraction;
    var exponentPos =3D num.indexOf('e');
    if (exponentPos < 0) exponentPos =3D num.indexOf('E');
    if (exponentPos < 0) {
        intAndFraction =3D num;
        exponent =3D null;
    }
    else {
        intAndFraction =3D num.substr(0, exponentPos);
        exponent =3D num.substr(exponentPos + 1);
    }
   =20
    var integer;
    var fraction;
    var decimalPos =3D =
intAndFraction.indexOf(numFormat.NumberDecimalSeparator);
    if (decimalPos < 0) {
        integer =3D intAndFraction;
        fraction =3D null;
    }
    else {
        integer =3D intAndFraction.substr(0, decimalPos);
        fraction =3D intAndFraction.substr(decimalPos + =
numFormat.NumberDecimalSeparator.length);
    }
   =20
    integer =3D integer.split(numFormat.NumberGroupSeparator).join('');
    var altNumGroupSeparator =3D =
numFormat.NumberGroupSeparator.replace(/\u00A0/g, " ");
    if (numFormat.NumberGroupSeparator !=3D=3D altNumGroupSeparator) {
        integer =3D integer.split(altNumGroupSeparator).join('');
    }
   =20
    var p =3D sign + integer;
    if (fraction !=3D=3D null) {
        p +=3D '.' + fraction;
    }
    if (exponent !=3D=3D null) {
        var expSignInfo =3D Number._parseNumberNegativePattern(exponent, =
numFormat, 1);
        if (expSignInfo[0] =3D=3D=3D '') {
            expSignInfo[0] =3D '+';
        }
        p +=3D 'e' + expSignInfo[0] + expSignInfo[1];
    }
    if (p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)) {
        return parseFloat(p);
    }
    return Number.NaN;
}
Number._parseNumberNegativePattern =3D function =
Number$_parseNumberNegativePattern(value, numFormat, =
numberNegativePattern) {
    var neg =3D numFormat.NegativeSign;
    var pos =3D numFormat.PositiveSign;   =20
    switch (numberNegativePattern) {
        case 4:=20
            neg =3D ' ' + neg;
            pos =3D ' ' + pos;
        case 3:=20
            if (value.endsWith(neg)) {
                return ['-', value.substr(0, value.length - =
neg.length)];
            }
            else if (value.endsWith(pos)) {
                return ['+', value.substr(0, value.length - =
pos.length)];
            }
            break;
        case 2:=20
            neg +=3D ' ';
            pos +=3D ' ';
        case 1:=20
            if (value.startsWith(neg)) {
                return ['-', value.substr(neg.length)];
            }
            else if (value.startsWith(pos)) {
                return ['+', value.substr(pos.length)];
            }
            break;
        case 0:=20
            if (value.startsWith('(') && value.endsWith(')')) {
                return ['-', value.substr(1, value.length - 2)];
            }
            break;
    }
    return ['', value];
}
Number.prototype.format =3D function Number$format(format) {
    /// <summary locid=3D"M:J#Number.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}
Number.prototype.localeFormat =3D function Number$localeFormat(format) {
    /// <summary locid=3D"M:J#Number.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}
Number.prototype._toFormattedString =3D function =
Number$_toFormattedString(format, cultureInfo) {
    if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D =
'i')) {
        if (cultureInfo && (cultureInfo.name.length > 0)) {
            return this.toLocaleString();
        }
        else {
            return this.toString();
        }
    }
   =20
    var _percentPositivePattern =3D ["n %", "n%", "%n" ];
    var _percentNegativePattern =3D ["-n %", "-n%", "-%n"];
    var _numberNegativePattern =3D ["(n)","-n","- n","n-","n -"];
    var _currencyPositivePattern =3D ["$n","n$","$ n","n $"];
    var _currencyNegativePattern =3D =
["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n =
$-","$ n-","$ -n","n- $","($ n)","(n $)"];
    function zeroPad(str, count, left) {
        for (var l=3Dstr.length; l < count; l++) {
            str =3D (left ? ('0' + str) : (str + '0'));
        }
        return str;
    }
   =20
    function expandNumber(number, precision, groupSizes, sep, =
decimalChar) {
       =20
        var curSize =3D groupSizes[0];
        var curGroupIndex =3D 1;
        var factor =3D Math.pow(10, precision);
        var rounded =3D (Math.round(number * factor) / factor);
        if (!isFinite(rounded)) {
            rounded =3D number;
        }
        number =3D rounded;
       =20
        var numberString =3D number.toString();
        var right =3D "";
        var exponent;
       =20
       =20
        var split =3D numberString.split(/e/i);
        numberString =3D split[0];
        exponent =3D (split.length > 1 ? parseInt(split[1]) : 0);
        split =3D numberString.split('.');
        numberString =3D split[0];
        right =3D split.length > 1 ? split[1] : "";
       =20
        var l;
        if (exponent > 0) {
            right =3D zeroPad(right, exponent, false);
            numberString +=3D right.slice(0, exponent);
            right =3D right.substr(exponent);
        }
        else if (exponent < 0) {
            exponent =3D -exponent;
            numberString =3D zeroPad(numberString, exponent+1, true);
            right =3D numberString.slice(-exponent, numberString.length) =
+ right;
            numberString =3D numberString.slice(0, -exponent);
        }
        if (precision > 0) {
            if (right.length > precision) {
                right =3D right.slice(0, precision);
            }
            else {
                right =3D zeroPad(right, precision, false);
            }
            right =3D decimalChar + right;
        }
        else {=20
            right =3D "";
        }
        var stringIndex =3D numberString.length-1;
        var ret =3D "";
        while (stringIndex >=3D 0) {
            if (curSize =3D=3D=3D 0 || curSize > stringIndex) {
                if (ret.length > 0)
                    return numberString.slice(0, stringIndex + 1) + sep =
+ ret + right;
                else
                    return numberString.slice(0, stringIndex + 1) + =
right;
            }
            if (ret.length > 0)
                ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex+1) + sep + ret;
            else
                ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex+1);
            stringIndex -=3D curSize;
            if (curGroupIndex < groupSizes.length) {
                curSize =3D groupSizes[curGroupIndex];
                curGroupIndex++;
            }
        }
        return numberString.slice(0, stringIndex + 1) + sep + ret + =
right;
    }
    var nf =3D cultureInfo.numberFormat;
    var number =3D Math.abs(this);
    if (!format)
        format =3D "D";
    var precision =3D -1;
    if (format.length > 1) precision =3D parseInt(format.slice(1), 10);
    var pattern;
    switch (format.charAt(0)) {
    case "d":
    case "D":
        pattern =3D 'n';
        if (precision !=3D=3D -1) {
            number =3D zeroPad(""+number, precision, true);
        }
        if (this < 0) number =3D -number;
        break;
    case "c":
    case "C":
        if (this < 0) pattern =3D =
_currencyNegativePattern[nf.CurrencyNegativePattern];
        else pattern =3D =
_currencyPositivePattern[nf.CurrencyPositivePattern];
        if (precision =3D=3D=3D -1) precision =3D =
nf.CurrencyDecimalDigits;
        number =3D expandNumber(Math.abs(this), precision, =
nf.CurrencyGroupSizes, nf.CurrencyGroupSeparator, =
nf.CurrencyDecimalSeparator);
        break;
    case "n":
    case "N":
        if (this < 0) pattern =3D =
_numberNegativePattern[nf.NumberNegativePattern];
        else pattern =3D 'n';
        if (precision =3D=3D=3D -1) precision =3D =
nf.NumberDecimalDigits;
        number =3D expandNumber(Math.abs(this), precision, =
nf.NumberGroupSizes, nf.NumberGroupSeparator, =
nf.NumberDecimalSeparator);
        break;
    case "p":
    case "P":
        if (this < 0) pattern =3D =
_percentNegativePattern[nf.PercentNegativePattern];
        else pattern =3D =
_percentPositivePattern[nf.PercentPositivePattern];
        if (precision =3D=3D=3D -1) precision =3D =
nf.PercentDecimalDigits;
        number =3D expandNumber(Math.abs(this) * 100, precision, =
nf.PercentGroupSizes, nf.PercentGroupSeparator, =
nf.PercentDecimalSeparator);
        break;
    default:
        throw Error.format(Sys.Res.formatBadFormatSpecifier);
    }
    var regex =3D /n|\$|-|%/g;
    var ret =3D "";
    for (;;) {
        var index =3D regex.lastIndex;
        var ar =3D regex.exec(pattern);
        ret +=3D pattern.slice(index, ar ? ar.index : pattern.length);
        if (!ar)
            break;
        switch (ar[0]) {
        case "n":
            ret +=3D number;
            break;
        case "$":
            ret +=3D nf.CurrencySymbol;
            break;
        case "-":
            ret +=3D nf.NegativeSign;
            break;
        case "%":
            ret +=3D nf.PercentSymbol;
            break;
        }
    }
    return ret;
}
=20
RegExp.__typeName =3D 'RegExp';
RegExp.__class =3D true;
=20
Array.__typeName =3D 'Array';
Array.__class =3D true;
Array.add =3D Array.enqueue =3D function Array$enqueue(array, item) {
    /// <summary locid=3D"M:J#Array.enqueue" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array[array.length] =3D item;
}
Array.addRange =3D function Array$addRange(array, items) {
    /// <summary locid=3D"M:J#Array.addRange" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "items", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.push.apply(array, items);
}
Array.clear =3D function Array$clear(array) {
    /// <summary locid=3D"M:J#Array.clear" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.length =3D 0;
}
Array.clone =3D function Array$clone(array) {
    /// <summary locid=3D"M:J#Array.clone" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (array.length =3D=3D=3D 1) {
        return [array[0]];
    }
    else {
        return Array.apply(null, array);
    }
}
Array.contains =3D function Array$contains(array, item) {
    /// <summary locid=3D"M:J#Array.contains" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    return (Array.indexOf(array, item) >=3D 0);
}
Array.dequeue =3D function Array$dequeue(array) {
    /// <summary locid=3D"M:J#Array.dequeue" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <returns mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    return array.shift();
}
Array.forEach =3D function Array$forEach(array, method, instance) {
    /// <summary locid=3D"M:J#Array.forEach" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"method" type=3D"Function"></param>
    /// <param name=3D"instance" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "method", type: Function},
        {name: "instance", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    for (var i =3D 0, l =3D array.length; i < l; i++) {
        var elt =3D array[i];
        if (typeof(elt) !=3D=3D 'undefined') method.call(instance, elt, =
i, array);
    }
}
Array.indexOf =3D function Array$indexOf(array, item, start) {
    /// <summary locid=3D"M:J#Array.indexOf" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"start" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true, optional: true},
        {name: "start", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (typeof(item) =3D=3D=3D "undefined") return -1;
    var length =3D array.length;
    if (length !=3D=3D 0) {
        start =3D start - 0;
        if (isNaN(start)) {
            start =3D 0;
        }
        else {
            if (isFinite(start)) {
                start =3D start - (start % 1);
            }
            if (start < 0) {
                start =3D Math.max(0, length + start);
            }
        }
        for (var i =3D start; i < length; i++) {
            if ((typeof(array[i]) !=3D=3D "undefined") && (array[i] =
=3D=3D=3D item)) {
                return i;
            }
        }
    }
    return -1;
}
Array.insert =3D function Array$insert(array, index, item) {
    /// <summary locid=3D"M:J#Array.insert" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"index" mayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 0, item);
}
Array.parse =3D function Array$parse(value) {
    /// <summary locid=3D"M:J#Array.parse" />
    /// <param name=3D"value" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    if (!value) return [];
    var v =3D eval(value);
    if (!Array.isInstanceOfType(v)) throw Error.argument('value', =
Sys.Res.arrayParseBadFormat);
    return v;
}
Array.remove =3D function Array$remove(array, item) {
    /// <summary locid=3D"M:J#Array.remove" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var index =3D Array.indexOf(array, item);
    if (index >=3D 0) {
        array.splice(index, 1);
    }
    return (index >=3D 0);
}
Array.removeAt =3D function Array$removeAt(array, index) {
    /// <summary locid=3D"M:J#Array.removeAt" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"index" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 1);
}
=20
if (!window) this.window =3D this;
window.Type =3D Function;
Type.__fullyQualifiedIdentifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]([^ =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*[^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\])?$", "i");
Type.__identifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\][^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*$", "i");
Type.prototype.callBaseMethod =3D function Type$callBaseMethod(instance, =
name, baseArguments) {
    /// <summary locid=3D"M:J#Type.callBaseMethod" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    var baseMethod =3D this.getBaseMethod(instance, name);
    if (!baseMethod) throw =
Error.invalidOperation(String.format(Sys.Res.methodNotFound, name));
    if (!baseArguments) {
        return baseMethod.apply(instance);
    }
    else {
        return baseMethod.apply(instance, baseArguments);
    }
}
Type.prototype.getBaseMethod =3D function Type$getBaseMethod(instance, =
name) {
    /// <summary locid=3D"M:J#Type.getBaseMethod" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <returns type=3D"Function" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    if (!this.isInstanceOfType(instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);
    var baseType =3D this.getBaseType();
    if (baseType) {
        var baseMethod =3D baseType.prototype[name];
        return (baseMethod instanceof Function) ? baseMethod : null;
    }
    return null;
}
Type.prototype.getBaseType =3D function Type$getBaseType() {
    /// <summary locid=3D"M:J#Type.getBaseType" />
    /// <returns type=3D"Type" mayBeNull=3D"true"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__baseType) =3D=3D=3D "undefined") ? null : =
this.__baseType;
}
Type.prototype.getInterfaces =3D function Type$getInterfaces() {
    /// <summary locid=3D"M:J#Type.getInterfaces" />
    /// <returns type=3D"Array" elementType=3D"Type" mayBeNull=3D"false" =
elementMayBeNull=3D"false"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var result =3D [];
    var type =3D this;
    while(type) {
        var interfaces =3D type.__interfaces;
        if (interfaces) {
            for (var i =3D 0, l =3D interfaces.length; i < l; i++) {
                var interfaceType =3D interfaces[i];
                if (!Array.contains(result, interfaceType)) {
                    result[result.length] =3D interfaceType;
                }
            }
        }
        type =3D type.__baseType;
    }
    return result;
}
Type.prototype.getName =3D function Type$getName() {
    /// <summary locid=3D"M:J#Type.getName" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__typeName) =3D=3D=3D "undefined") ? "" : =
this.__typeName;
}
Type.prototype.implementsInterface =3D function =
Type$implementsInterface(interfaceType) {
    /// <summary locid=3D"M:J#Type.implementsInterface" />
    /// <param name=3D"interfaceType" type=3D"Type"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "interfaceType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    var interfaceName =3D interfaceType.getName();
    var cache =3D this.__interfaceCache;
    if (cache) {
        var cacheEntry =3D cache[interfaceName];
        if (typeof(cacheEntry) !=3D=3D 'undefined') return cacheEntry;
    }
    else {
        cache =3D this.__interfaceCache =3D {};
    }
    var baseType =3D this;
    while (baseType) {
        var interfaces =3D baseType.__interfaces;
        if (interfaces) {
            if (Array.indexOf(interfaces, interfaceType) !=3D=3D -1) {
                return cache[interfaceName] =3D true;
            }
        }
        baseType =3D baseType.__baseType;
    }
    return cache[interfaceName] =3D false;
}
Type.prototype.inheritsFrom =3D function Type$inheritsFrom(parentType) {
    /// <summary locid=3D"M:J#Type.inheritsFrom" />
    /// <param name=3D"parentType" type=3D"Type"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "parentType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    var baseType =3D this.__baseType;
    while (baseType) {
        if (baseType =3D=3D=3D parentType) {
            return true;
        }
        baseType =3D baseType.__baseType;
    }
    return false;
}
Type.prototype.initializeBase =3D function Type$initializeBase(instance, =
baseArguments) {
    /// <summary locid=3D"M:J#Type.initializeBase" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (!this.isInstanceOfType(instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);
    this.resolveInheritance();
    if (this.__baseType) {
        if (!baseArguments) {
            this.__baseType.apply(instance);
        }
        else {
            this.__baseType.apply(instance, baseArguments);
        }
    }
    return instance;
}
Type.prototype.isImplementedBy =3D function =
Type$isImplementedBy(instance) {
    /// <summary locid=3D"M:J#Type.isImplementedBy" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType.implementsInterface && =
instanceType.implementsInterface(this));
}
Type.prototype.isInstanceOfType =3D function =
Type$isInstanceOfType(instance) {
    /// <summary locid=3D"M:J#Type.isInstanceOfType" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    if (instance instanceof this) return true;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType =3D=3D=3D this) ||
           (instanceType.inheritsFrom && =
instanceType.inheritsFrom(this)) ||
           (instanceType.implementsInterface && =
instanceType.implementsInterface(this));
}
Type.prototype.registerClass =3D function Type$registerClass(typeName, =
baseType, interfaceTypes) {
    /// <summary locid=3D"M:J#Type.registerClass" />
    /// <param name=3D"typeName" type=3D"String"></param>
    /// <param name=3D"baseType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"interfaceTypes" parameterArray=3D"true" =
type=3D"Type"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String},
        {name: "baseType", type: Type, mayBeNull: true, optional: true},
        {name: "interfaceTypes", type: Type, parameterArray: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    if ((arguments.length > 1) && (typeof(baseType) =3D=3D=3D =
'undefined')) throw Error.argumentUndefined('baseType');
    if (baseType && !baseType.__class) throw Error.argument('baseType', =
Sys.Res.baseNotAClass);
    this.prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__class =3D true;
    if (baseType) {
        this.__baseType =3D baseType;
        this.__basePrototypePending =3D true;
    }
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;
    if (interfaceTypes) {
        this.__interfaces =3D [];
        this.resolveInheritance();
        for (var i =3D 2, l =3D arguments.length; i < l; i++) {
            var interfaceType =3D arguments[i];
            if (!interfaceType.__interface) throw =
Error.argument('interfaceTypes[' + (i - 2) + ']', =
Sys.Res.notAnInterface);
            for (var methodName in interfaceType.prototype) {
                var method =3D interfaceType.prototype[methodName];
                if (!this.prototype[methodName]) {
                    this.prototype[methodName] =3D method;
                }
            }
            this.__interfaces.push(interfaceType);
        }
    }
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}
Type.prototype.registerInterface =3D function =
Type$registerInterface(typeName) {
    /// <summary locid=3D"M:J#Type.registerInterface" />
    /// <param name=3D"typeName" type=3D"String"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;
    this.prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__interface =3D true;
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}
Type.prototype.resolveInheritance =3D function Type$resolveInheritance() =
{
    /// <summary locid=3D"M:J#Type.resolveInheritance" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (this.__basePrototypePending) {
        var baseType =3D this.__baseType;
        baseType.resolveInheritance();
        for (var memberName in baseType.prototype) {
            var memberValue =3D baseType.prototype[memberName];
            if (!this.prototype[memberName]) {
                this.prototype[memberName] =3D memberValue;
            }
        }
        delete this.__basePrototypePending;
    }
}
Type.getRootNamespaces =3D function Type$getRootNamespaces() {
    /// <summary locid=3D"M:J#Type.getRootNamespaces" />
    /// <returns type=3D"Array"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return Array.clone(Sys.__rootNamespaces);
}
Type.isClass =3D function Type$isClass(type) {
    /// <summary locid=3D"M:J#Type.isClass" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__class;
}
Type.isInterface =3D function Type$isInterface(type) {
    /// <summary locid=3D"M:J#Type.isInterface" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__interface;
}
Type.isNamespace =3D function Type$isNamespace(object) {
    /// <summary locid=3D"M:J#Type.isNamespace" />
    /// <param name=3D"object" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(object) =3D=3D=3D 'undefined') || (object =3D=3D=3D =
null)) return false;
    return !!object.__namespace;
}
Type.parse =3D function Type$parse(typeName, ns) {
    /// <summary locid=3D"M:J#Type.parse" />
    /// <param name=3D"typeName" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"ns" optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Type" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String, mayBeNull: true},
        {name: "ns", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var fn;
    if (ns) {
        fn =3D Sys.__upperCaseTypes[ns.getName().toUpperCase() + '.' + =
typeName.toUpperCase()];
        return fn || null;
    }
    if (!typeName) return null;
    if (!Type.__htClasses) {
        Type.__htClasses =3D {};
    }
    fn =3D Type.__htClasses[typeName];
    if (!fn) {
        fn =3D eval(typeName);
        if (typeof(fn) !=3D=3D 'function') throw =
Error.argument('typeName', Sys.Res.notATypeName);
        Type.__htClasses[typeName] =3D fn;
    }
    return fn;
}
Type.registerNamespace =3D function =
Type$registerNamespace(namespacePath) {
    /// <summary locid=3D"M:J#Type.registerNamespace" />
    /// <param name=3D"namespacePath" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "namespacePath", type: String}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(namespacePath)) =
throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
    var rootObject =3D window;
    var namespaceParts =3D namespacePath.split('.');
    for (var i =3D 0; i < namespaceParts.length; i++) {
        var currentPart =3D namespaceParts[i];
        var ns =3D rootObject[currentPart];
        if (ns && !ns.__namespace) {
            throw =
Error.invalidOperation(String.format(Sys.Res.namespaceContainsObject, =
namespaceParts.splice(0, i + 1).join('.')));
        }
        if (!ns) {
            ns =3D rootObject[currentPart] =3D {
                __namespace: true,
                __typeName: namespaceParts.slice(0, i + 1).join('.')
            };
            if (i =3D=3D=3D 0) {
                Sys.__rootNamespaces[Sys.__rootNamespaces.length] =3D =
ns;
            }
            var parsedName;
            try {
                parsedName =3D eval(ns.__typeName);
            }
            catch(e) {
                parsedName =3D null;
            }
            if (parsedName !=3D=3D ns) {
                delete rootObject[currentPart];
                throw Error.argument('namespacePath', =
Sys.Res.invalidNameSpace);
            }
            ns.getName =3D function ns$getName() {return =
this.__typeName;}
        }
        rootObject =3D ns;
    }
}
window.Sys =3D {
    __namespace: true,
    __typeName: "Sys",
    getName: function() {return "Sys";},
    __upperCaseTypes: {}
};
Sys.__rootNamespaces =3D [Sys];
Sys.__registeredTypes =3D {};
=20
Sys.IDisposable =3D function Sys$IDisposable() {
    throw Error.notImplemented();
}
    function Sys$IDisposable$dispose() {
        throw Error.notImplemented();
    }
Sys.IDisposable.prototype =3D {
    dispose: Sys$IDisposable$dispose
}
Sys.IDisposable.registerInterface('Sys.IDisposable');
=20
Sys.StringBuilder =3D function Sys$StringBuilder(initialText) {
    /// <summary locid=3D"M:J#Sys.StringBuilder.#ctor" />
    /// <param name=3D"initialText" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "initialText", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    this._parts =3D (typeof(initialText) !=3D=3D 'undefined' && =
initialText !=3D=3D null && initialText !=3D=3D '') ?
        [initialText.toString()] : [];
    this._value =3D {};
    this._len =3D 0;
}
    function Sys$StringBuilder$append(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.append" />
        /// <param name=3D"text" mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true}
        ]);
        if (e) throw e;
        this._parts[this._parts.length] =3D text;
    }
    function Sys$StringBuilder$appendLine(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.appendLine" />
        /// <param name=3D"text" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._parts[this._parts.length] =3D
            ((typeof(text) =3D=3D=3D 'undefined') || (text =3D=3D=3D =
null) || (text =3D=3D=3D '')) ?
            '\r\n' : text + '\r\n';
    }
    function Sys$StringBuilder$clear() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.clear" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._parts =3D [];
        this._value =3D {};
        this._len =3D 0;
    }
    function Sys$StringBuilder$isEmpty() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.isEmpty" />
        /// <returns type=3D"Boolean"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._parts.length =3D=3D=3D 0) return true;
        return this.toString() =3D=3D=3D '';
    }
    function Sys$StringBuilder$toString(separator) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.toString" />
        /// <param name=3D"separator" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <returns type=3D"String"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "separator", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        separator =3D separator || '';
        var parts =3D this._parts;
        if (this._len !=3D=3D parts.length) {
            this._value =3D {};
            this._len =3D parts.length;
        }
        var val =3D this._value;
        if (typeof(val[separator]) =3D=3D=3D 'undefined') {
            if (separator !=3D=3D '') {
                for (var i =3D 0; i < parts.length;) {
                    if ((typeof(parts[i]) =3D=3D=3D 'undefined') || =
(parts[i] =3D=3D=3D '') || (parts[i] =3D=3D=3D null)) {
                        parts.splice(i, 1);
                    }
                    else {
                        i++;
                    }
                }
            }
            val[separator] =3D this._parts.join(separator);
        }
        return val[separator];
    }
Sys.StringBuilder.prototype =3D {
    append: Sys$StringBuilder$append,
    appendLine: Sys$StringBuilder$appendLine,
    clear: Sys$StringBuilder$clear,
    isEmpty: Sys$StringBuilder$isEmpty,
    toString: Sys$StringBuilder$toString
}
Sys.StringBuilder.registerClass('Sys.StringBuilder');
=20
if (!window.XMLHttpRequest) {
    window.XMLHttpRequest =3D function window$XMLHttpRequest() {
        var progIDs =3D [ 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP' ];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                return new ActiveXObject(progIDs[i]);
            }
            catch (ex) {
            }
        }
        return null;
    }
}
=20
Sys.Browser =3D {};
Sys.Browser.InternetExplorer =3D {};
Sys.Browser.Firefox =3D {};
Sys.Browser.Safari =3D {};
Sys.Browser.Opera =3D {};
Sys.Browser.agent =3D null;
Sys.Browser.hasDebuggerStatement =3D false;
Sys.Browser.name =3D navigator.appName;
Sys.Browser.version =3D parseFloat(navigator.appVersion);
Sys.Browser.documentMode =3D 0;
if (navigator.userAgent.indexOf(' MSIE ') > -1) {
    Sys.Browser.agent =3D Sys.Browser.InternetExplorer;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/MSIE =
(\d+\.\d+)/)[1]);
    if (Sys.Browser.version >=3D 8) {
        if (document.documentMode >=3D 7) {
            Sys.Browser.documentMode =3D document.documentMode;   =20
        }
    }
    Sys.Browser.hasDebuggerStatement =3D true;
}
else if (navigator.userAgent.indexOf(' Firefox/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Firefox;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ =
Firefox\/(\d+\.\d+)/)[1]);
    Sys.Browser.name =3D 'Firefox';
    Sys.Browser.hasDebuggerStatement =3D true;
}
else if (navigator.userAgent.indexOf(' AppleWebKit/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Safari;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ =
AppleWebKit\/(\d+(\.\d+)?)/)[1]);
    Sys.Browser.name =3D 'Safari';
}
else if (navigator.userAgent.indexOf('Opera/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Opera;
}
Type.registerNamespace('Sys.UI');
=20
Sys._Debug =3D function Sys$_Debug() {
    /// <summary locid=3D"M:J#Sys.Debug.#ctor" />
    /// <field name=3D"isDebug" type=3D"Boolean" =
locid=3D"F:J#Sys.Debug.isDebug"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
    function Sys$_Debug$_appendConsole(text) {
        if ((typeof(Debug) !=3D=3D 'undefined') && Debug.writeln) {
            Debug.writeln(text);
        }
        if (window.console && window.console.log) {
            window.console.log(text);
        }
        if (window.opera) {
            window.opera.postError(text);
        }
        if (window.debugService) {
            window.debugService.trace(text);
        }
    }
    function Sys$_Debug$_appendTrace(text) {
        var traceElement =3D document.getElementById('TraceConsole');
        if (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) {
            traceElement.value +=3D text + '\n';
        }
    }
    function Sys$_Debug$assert(condition, message, displayCaller) {
        /// <summary locid=3D"M:J#Sys.Debug.assert" />
        /// <param name=3D"condition" type=3D"Boolean"></param>
        /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <param name=3D"displayCaller" type=3D"Boolean" =
optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "condition", type: Boolean},
            {name: "message", type: String, mayBeNull: true, optional: =
true},
            {name: "displayCaller", type: Boolean, optional: true}
        ]);
        if (e) throw e;
        if (!condition) {
            message =3D (displayCaller && this.assert.caller) ?
                String.format(Sys.Res.assertFailedCaller, message, =
this.assert.caller) :
                String.format(Sys.Res.assertFailed, message);
            if (confirm(String.format(Sys.Res.breakIntoDebugger, =
message))) {
                this.fail(message);
            }
        }
    }
    function Sys$_Debug$clearTrace() {
        /// <summary locid=3D"M:J#Sys.Debug.clearTrace" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var traceElement =3D document.getElementById('TraceConsole');
        if (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) {
            traceElement.value =3D '';
        }
    }
    function Sys$_Debug$fail(message) {
        /// <summary locid=3D"M:J#Sys.Debug.fail" />
        /// <param name=3D"message" type=3D"String" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "message", type: String, mayBeNull: true}
        ]);
        if (e) throw e;
        this._appendConsole(message);
        if (Sys.Browser.hasDebuggerStatement) {
            eval('debugger');
        }
    }
    function Sys$_Debug$trace(text) {
        /// <summary locid=3D"M:J#Sys.Debug.trace" />
        /// <param name=3D"text"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text"}
        ]);
        if (e) throw e;
        this._appendConsole(text);
        this._appendTrace(text);
    }
    function Sys$_Debug$traceDump(object, name) {
        /// <summary locid=3D"M:J#Sys.Debug.traceDump" />
        /// <param name=3D"object" mayBeNull=3D"true"></param>
        /// <param name=3D"name" type=3D"String" mayBeNull=3D"true" =
optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", mayBeNull: true},
            {name: "name", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        var text =3D this._traceDump(object, name, true);
    }
    function Sys$_Debug$_traceDump(object, name, recursive, =
indentationPadding, loopArray) {
        name =3D name? name : 'traceDump';
        indentationPadding =3D indentationPadding? indentationPadding : =
'';
        if (object =3D=3D=3D null) {
            this.trace(indentationPadding + name + ': null');
            return;
        }
        switch(typeof(object)) {
            case 'undefined':
                this.trace(indentationPadding + name + ': Undefined');
                break;
            case 'number': case 'string': case 'boolean':
                this.trace(indentationPadding + name + ': ' + object);
                break;
            default:
                if (Date.isInstanceOfType(object) || =
RegExp.isInstanceOfType(object)) {
                    this.trace(indentationPadding + name + ': ' + =
object.toString());
                    break;
                }
                if (!loopArray) {
                    loopArray =3D [];
                }
                else if (Array.contains(loopArray, object)) {
                    this.trace(indentationPadding + name + ': ...');
                    return;
                }
                Array.add(loopArray, object);
                if ((object =3D=3D window) || (object =3D=3D=3D =
document) ||
                    (window.HTMLElement && (object instanceof =
HTMLElement)) ||
                    (typeof(object.nodeName) =3D=3D=3D 'string')) {
                    var tag =3D object.tagName? object.tagName : =
'DomElement';
                    if (object.id) {
                        tag +=3D ' - ' + object.id;
                    }
                    this.trace(indentationPadding + name + ' {' +  tag + =
'}');
                }
                else {
                    var typeName =3D Object.getTypeName(object);
                    this.trace(indentationPadding + name + =
(typeof(typeName) =3D=3D=3D 'string' ? ' {' + typeName + '}' : ''));
                    if ((indentationPadding =3D=3D=3D '') || recursive) =
{
                        indentationPadding +=3D "    ";
                        var i, length, properties, p, v;
                        if (Array.isInstanceOfType(object)) {
                            length =3D object.length;
                            for (i =3D 0; i < length; i++) {
                                this._traceDump(object[i], '[' + i + =
']', recursive, indentationPadding, loopArray);
                            }
                        }
                        else {
                            for (p in object) {
                                v =3D object[p];
                                if (!Function.isInstanceOfType(v)) {
                                    this._traceDump(v, p, recursive, =
indentationPadding, loopArray);
                                }
                            }
                        }
                    }
                }
                Array.remove(loopArray, object);
        }
    }
Sys._Debug.prototype =3D {
    _appendConsole: Sys$_Debug$_appendConsole,
    _appendTrace: Sys$_Debug$_appendTrace,
    assert: Sys$_Debug$assert,
    clearTrace: Sys$_Debug$clearTrace,
    fail: Sys$_Debug$fail,
    trace: Sys$_Debug$trace,
    traceDump: Sys$_Debug$traceDump,
    _traceDump: Sys$_Debug$_traceDump
}
Sys._Debug.registerClass('Sys._Debug');
Sys.Debug =3D new Sys._Debug();
    Sys.Debug.isDebug =3D true;
=20
function Sys$Enum$parse(value, ignoreCase) {
    /// <summary locid=3D"M:J#Sys.Enum.parse" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"ignoreCase" type=3D"Boolean" =
optional=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "ignoreCase", type: Boolean, optional: true}
    ]);
    if (e) throw e;
    var values, parsed, val;
    if (ignoreCase) {
        values =3D this.__lowerCaseValues;
        if (!values) {
            this.__lowerCaseValues =3D values =3D {};
            var prototype =3D this.prototype;
            for (var name in prototype) {
                values[name.toLowerCase()] =3D prototype[name];
            }
        }
    }
    else {
        values =3D this.prototype;
    }
    if (!this.__flags) {
        val =3D (ignoreCase ? value.toLowerCase() : value);
        parsed =3D values[val.trim()];
        if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, value, =
this.__typeName));
        return parsed;
    }
    else {
        var parts =3D (ignoreCase ? value.toLowerCase() : =
value).split(',');
        var v =3D 0;
        for (var i =3D parts.length - 1; i >=3D 0; i--) {
            var part =3D parts[i].trim();
            parsed =3D values[part];
            if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, =
value.split(',')[i].trim(), this.__typeName));
            v |=3D parsed;
        }
        return v;
    }
}
function Sys$Enum$toString(value) {
    /// <summary locid=3D"M:J#Sys.Enum.toString" />
    /// <param name=3D"value" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if ((typeof(value) =3D=3D=3D 'undefined') || (value =3D=3D=3D null)) =
return this.__string;
    if ((typeof(value) !=3D 'number') || ((value % 1) !=3D=3D 0)) throw =
Error.argumentType('value', Object.getType(value), this);
    var values =3D this.prototype;
    var i;
    if (!this.__flags || (value =3D=3D=3D 0)) {
        for (i in values) {
            if (values[i] =3D=3D=3D value) {
                return i;
            }
        }
    }
    else {
        var sorted =3D this.__sortedValues;
        if (!sorted) {
            sorted =3D [];
            for (i in values) {
                sorted[sorted.length] =3D {key: i, value: values[i]};
            }
            sorted.sort(function(a, b) {
                return a.value - b.value;
            });
            this.__sortedValues =3D sorted;
        }
        var parts =3D [];
        var v =3D value;
        for (i =3D sorted.length - 1; i >=3D 0; i--) {
            var kvp =3D sorted[i];
            var vali =3D kvp.value;
            if (vali =3D=3D=3D 0) continue;
            if ((vali & value) =3D=3D=3D vali) {
                parts[parts.length] =3D kvp.key;
                v -=3D vali;
                if (v =3D=3D=3D 0) break;
            }
        }
        if (parts.length && v =3D=3D=3D 0) return =
parts.reverse().join(', ');
    }
    throw Error.argumentOutOfRange('value', value, =
String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
}
Type.prototype.registerEnum =3D function Type$registerEnum(name, flags) =
{
    /// <summary locid=3D"M:J#Sys.UI.LineType.#ctor" />
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"flags" type=3D"Boolean" =
optional=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "flags", type: Boolean, optional: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(name)) throw =
Error.argument('name', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(name);
    }
    catch(e) {
        throw Error.argument('name', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('name', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[name]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
name));
    for (var i in this.prototype) {
        var val =3D this.prototype[i];
        if (!Type.__identifierRegExp.test(i)) throw =
Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, i));
        if (typeof(val) !=3D=3D 'number' || (val % 1) !=3D=3D 0) throw =
Error.invalidOperation(Sys.Res.enumValueNotInteger);
        if (typeof(this[i]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.enumReservedName, i));
    }
    Sys.__upperCaseTypes[name.toUpperCase()] =3D this;
    for (var i in this.prototype) {
        this[i] =3D this.prototype[i];
    }
    this.__typeName =3D name;
    this.parse =3D Sys$Enum$parse;
    this.__string =3D this.toString();
    this.toString =3D Sys$Enum$toString;
    this.__flags =3D flags;
    this.__enum =3D true;
    Sys.__registeredTypes[name] =3D true;
}
Type.isEnum =3D function Type$isEnum(type) {
    /// <summary locid=3D"M:J#Type.isEnum" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__enum;
}
Type.isFlags =3D function Type$isFlags(type) {
    /// <summary locid=3D"M:J#Type.isFlags" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__flags;
}
=20
Sys.EventHandlerList =3D function Sys$EventHandlerList() {
    /// <summary locid=3D"M:J#Sys.EventHandlerList.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._list =3D {};
}
    function Sys$EventHandlerList$addHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.addHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        Array.add(this._getEvent(id, true), handler);
    }
    function Sys$EventHandlerList$removeHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.removeHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        var evt =3D this._getEvent(id);
        if (!evt) return;
        Array.remove(evt, handler);
    }
    function Sys$EventHandlerList$getHandler(id) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.getHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <returns type=3D"Function"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        var evt =3D this._getEvent(id);
        if (!evt || (evt.length =3D=3D=3D 0)) return null;
        evt =3D Array.clone(evt);
        return function(source, args) {
            for (var i =3D 0, l =3D evt.length; i < l; i++) {
                evt[i](source, args);
            }
        };
    }
    function Sys$EventHandlerList$_getEvent(id, create) {
        if (!this._list[id]) {
            if (!create) return null;
            this._list[id] =3D [];
        }
        return this._list[id];
    }
Sys.EventHandlerList.prototype =3D {
    addHandler: Sys$EventHandlerList$addHandler,
    removeHandler: Sys$EventHandlerList$removeHandler,
    getHandler: Sys$EventHandlerList$getHandler,
    _getEvent: Sys$EventHandlerList$_getEvent
}
Sys.EventHandlerList.registerClass('Sys.EventHandlerList');
=20
Sys.EventArgs =3D function Sys$EventArgs() {
    /// <summary locid=3D"M:J#Sys.EventArgs.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Sys.EventArgs.registerClass('Sys.EventArgs');
Sys.EventArgs.Empty =3D new Sys.EventArgs();
=20
Sys.CancelEventArgs =3D function Sys$CancelEventArgs() {
    /// <summary locid=3D"M:J#Sys.CancelEventArgs.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.CancelEventArgs.initializeBase(this);
    this._cancel =3D false;
}
    function Sys$CancelEventArgs$get_cancel() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.CancelEventArgs.cancel"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._cancel;
    }
    function Sys$CancelEventArgs$set_cancel(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._cancel =3D value;
    }
Sys.CancelEventArgs.prototype =3D {
    get_cancel: Sys$CancelEventArgs$get_cancel,
    set_cancel: Sys$CancelEventArgs$set_cancel
}
Sys.CancelEventArgs.registerClass('Sys.CancelEventArgs', Sys.EventArgs);
=20
Sys.INotifyPropertyChange =3D function Sys$INotifyPropertyChange() {
    /// <summary locid=3D"M:J#Sys.INotifyPropertyChange.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
    function Sys$INotifyPropertyChange$add_propertyChanged(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyPropertyChange.propertyChanged" =
/>
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$INotifyPropertyChange$remove_propertyChanged(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
Sys.INotifyPropertyChange.prototype =3D {
    add_propertyChanged: Sys$INotifyPropertyChange$add_propertyChanged,
    remove_propertyChanged: =
Sys$INotifyPropertyChange$remove_propertyChanged
}
Sys.INotifyPropertyChange.registerInterface('Sys.INotifyPropertyChange');=

=20
Sys.PropertyChangedEventArgs =3D function =
Sys$PropertyChangedEventArgs(propertyName) {
    /// <summary locid=3D"M:J#Sys.PropertyChangedEventArgs.#ctor" />
    /// <param name=3D"propertyName" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "propertyName", type: String}
    ]);
    if (e) throw e;
    Sys.PropertyChangedEventArgs.initializeBase(this);
    this._propertyName =3D propertyName;
}
=20
    function Sys$PropertyChangedEventArgs$get_propertyName() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.PropertyChangedEventArgs.propertyName"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._propertyName;
    }
Sys.PropertyChangedEventArgs.prototype =3D {
    get_propertyName: Sys$PropertyChangedEventArgs$get_propertyName
}
Sys.PropertyChangedEventArgs.registerClass('Sys.PropertyChangedEventArgs'=
, Sys.EventArgs);
=20
Sys.INotifyDisposing =3D function Sys$INotifyDisposing() {
    /// <summary locid=3D"M:J#Sys.INotifyDisposing.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
    function Sys$INotifyDisposing$add_disposing(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyDisposing.disposing" />
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$INotifyDisposing$remove_disposing(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
Sys.INotifyDisposing.prototype =3D {
    add_disposing: Sys$INotifyDisposing$add_disposing,
    remove_disposing: Sys$INotifyDisposing$remove_disposing
}
Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing");
=20
Sys.Component =3D function Sys$Component() {
    /// <summary locid=3D"M:J#Sys.Component.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (Sys.Application) Sys.Application.registerDisposableObject(this);
}
    function Sys$Component$get_events() {
        /// <value type=3D"Sys.EventHandlerList" =
locid=3D"P:J#Sys.Component.events"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Component$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Component.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._id;
    }
    function Sys$Component$set_id(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (this._idSet) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdTwice);
        this._idSet =3D true;
        var oldId =3D this.get_id();
        if (oldId && Sys.Application.findComponent(oldId)) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp);
        this._id =3D value;
    }
    function Sys$Component$get_isInitialized() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isInitialized"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._initialized;
    }
    function Sys$Component$get_isUpdating() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._updating;
    }
    function Sys$Component$add_disposing(handler) {
        /// <summary locid=3D"E:J#Sys.Component.disposing" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("disposing", handler);
    }
    function Sys$Component$remove_disposing(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("disposing", handler);
    }
    function Sys$Component$add_propertyChanged(handler) {
        /// <summary locid=3D"E:J#Sys.Component.propertyChanged" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("propertyChanged", handler);
    }
    function Sys$Component$remove_propertyChanged(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("propertyChanged", handler);
    }
    function Sys$Component$beginUpdate() {
        this._updating =3D true;
    }
    function Sys$Component$dispose() {
        if (this._events) {
            var handler =3D this._events.getHandler("disposing");
            if (handler) {
                handler(this, Sys.EventArgs.Empty);
            }
        }
        delete this._events;
        Sys.Application.unregisterDisposableObject(this);
        Sys.Application.removeComponent(this);
    }
    function Sys$Component$endUpdate() {
        this._updating =3D false;
        if (!this._initialized) this.initialize();
        this.updated();
    }
    function Sys$Component$initialize() {
        this._initialized =3D true;
    }
    function Sys$Component$raisePropertyChanged(propertyName) {
        /// <summary locid=3D"M:J#Sys.Component.raisePropertyChanged" />
        /// <param name=3D"propertyName" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyName", type: String}
        ]);
        if (e) throw e;
        if (!this._events) return;
        var handler =3D this._events.getHandler("propertyChanged");
        if (handler) {
            handler(this, new =
Sys.PropertyChangedEventArgs(propertyName));
        }
    }
    function Sys$Component$updated() {
    }
Sys.Component.prototype =3D {
    _id: null,
    _idSet: false,
    _initialized: false,
    _updating: false,
    get_events: Sys$Component$get_events,
    get_id: Sys$Component$get_id,
    set_id: Sys$Component$set_id,
    get_isInitialized: Sys$Component$get_isInitialized,
    get_isUpdating: Sys$Component$get_isUpdating,
    add_disposing: Sys$Component$add_disposing,
    remove_disposing: Sys$Component$remove_disposing,
    add_propertyChanged: Sys$Component$add_propertyChanged,
    remove_propertyChanged: Sys$Component$remove_propertyChanged,
    beginUpdate: Sys$Component$beginUpdate,
    dispose: Sys$Component$dispose,
    endUpdate: Sys$Component$endUpdate,
    initialize: Sys$Component$initialize,
    raisePropertyChanged: Sys$Component$raisePropertyChanged,
    updated: Sys$Component$updated
}
Sys.Component.registerClass('Sys.Component', null, Sys.IDisposable, =
Sys.INotifyPropertyChange, Sys.INotifyDisposing);
function Sys$Component$_setProperties(target, properties) {
    /// <summary locid=3D"M:J#Sys.Component._setProperties" />
    /// <param name=3D"target"></param>
    /// <param name=3D"properties"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "properties"}
    ]);
    if (e) throw e;
    var current;
    var targetType =3D Object.getType(target);
    var isObject =3D (targetType =3D=3D=3D Object) || (targetType =
=3D=3D=3D Sys.UI.DomElement);
    var isComponent =3D Sys.Component.isInstanceOfType(target) && =
!target.get_isUpdating();
    if (isComponent) target.beginUpdate();
    for (var name in properties) {
        var val =3D properties[name];
        var getter =3D isObject ? null : target["get_" + name];
        if (isObject || typeof(getter) !=3D=3D 'function') {
            var targetVal =3D target[name];
            if (!isObject && typeof(targetVal) =3D=3D=3D 'undefined') =
throw Error.invalidOperation(String.format(Sys.Res.propertyUndefined, =
name));
            if (!val || (typeof(val) !=3D=3D 'object') || (isObject && =
!targetVal)) {
                target[name] =3D val;
            }
            else {
                Sys$Component$_setProperties(targetVal, val);
            }
        }
        else {
            var setter =3D target["set_" + name];
            if (typeof(setter) =3D=3D=3D 'function') {
                setter.apply(target, [val]);
            }
            else if (val instanceof Array) {
                current =3D getter.apply(target);
                if (!(current instanceof Array)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name));
                for (var i =3D 0, j =3D current.length, l=3D val.length; =
i < l; i++, j++) {
                    current[j] =3D val[i];
                }
            }
            else if ((typeof(val) =3D=3D=3D 'object') && =
(Object.getType(val) =3D=3D=3D Object)) {
                current =3D getter.apply(target);
                if ((typeof(current) =3D=3D=3D 'undefined') || (current =
=3D=3D=3D null)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, =
name));
                Sys$Component$_setProperties(current, val);
            }
            else {
                throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
            }
        }
    }
    if (isComponent) target.endUpdate();
}
function Sys$Component$_setReferences(component, references) {
    for (var name in references) {
        var setter =3D component["set_" + name];
        var reference =3D $find(references[name]);
        if (typeof(setter) !=3D=3D 'function') throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
        if (!reference) throw =
Error.invalidOperation(String.format(Sys.Res.referenceNotFound, =
references[name]));
        setter.apply(component, [reference]);
    }
}
var $create =3D Sys.Component.create =3D function =
Sys$Component$create(type, properties, events, references, element) {
    /// <summary locid=3D"M:J#Sys.Component.create" />
    /// <param name=3D"type" type=3D"Type"></param>
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"events" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"references" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Sys.UI.Component"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", type: Type},
        {name: "properties", mayBeNull: true, optional: true},
        {name: "events", mayBeNull: true, optional: true},
        {name: "references", mayBeNull: true, optional: true},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    if (!type.inheritsFrom(Sys.Component)) {
        throw Error.argument('type', =
String.format(Sys.Res.createNotComponent, type.getName()));
    }
    if (type.inheritsFrom(Sys.UI.Behavior) || =
type.inheritsFrom(Sys.UI.Control)) {
        if (!element) throw Error.argument('element', =
Sys.Res.createNoDom);
    }
    else if (element) throw Error.argument('element', =
Sys.Res.createComponentOnDom);
    var component =3D (element ? new type(element): new type());
    var app =3D Sys.Application;
    var creatingComponents =3D app.get_isCreatingComponents();
    component.beginUpdate();
    if (properties) {
        Sys$Component$_setProperties(component, properties);
    }
    if (events) {
        for (var name in events) {
            if (!(component["add_" + name] instanceof Function)) throw =
new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name));
            if (!(events[name] instanceof Function)) throw new =
Error.invalidOperation(Sys.Res.eventHandlerNotFunction);
            component["add_" + name](events[name]);
        }
    }
    if (component.get_id()) {
        app.addComponent(component);
    }
    if (creatingComponents) {
        app._createdComponents[app._createdComponents.length] =3D =
component;
        if (references) {
            app._addComponentToSecondPass(component, references);
        }
        else {
            component.endUpdate();
        }
    }
    else {
        if (references) {
            Sys$Component$_setReferences(component, references);
        }
        component.endUpdate();
    }
    return component;
}
=20
Sys.UI.MouseButton =3D function Sys$UI$MouseButton() {
    /// <summary locid=3D"M:J#Sys.UI.MouseButton.#ctor" />
    /// <field name=3D"leftButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.leftButton"></field>
    /// <field name=3D"middleButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.middleButton"></field>
    /// <field name=3D"rightButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.rightButton"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.MouseButton.prototype =3D {
    leftButton: 0,
    middleButton: 1,
    rightButton: 2
}
Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton");
=20
Sys.UI.Key =3D function Sys$UI$Key() {
    /// <summary locid=3D"M:J#Sys.UI.Key.#ctor" />
    /// <field name=3D"backspace" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.backspace"></field>
    /// <field name=3D"tab" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.tab"></field>
    /// <field name=3D"enter" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.enter"></field>
    /// <field name=3D"esc" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.esc"></field>
    /// <field name=3D"space" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.space"></field>
    /// <field name=3D"pageUp" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageUp"></field>
    /// <field name=3D"pageDown" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageDown"></field>
    /// <field name=3D"end" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.end"></field>
    /// <field name=3D"home" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.home"></field>
    /// <field name=3D"left" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.left"></field>
    /// <field name=3D"up" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.up"></field>
    /// <field name=3D"right" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.right"></field>
    /// <field name=3D"down" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.down"></field>
    /// <field name=3D"del" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.del"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.Key.prototype =3D {
    backspace: 8,
    tab: 9,
    enter: 13,
    esc: 27,
    space: 32,
    pageUp: 33,
    pageDown: 34,
    end: 35,
    home: 36,
    left: 37,
    up: 38,
    right: 39,
    down: 40,
    del: 127
}
Sys.UI.Key.registerEnum("Sys.UI.Key");
=20
Sys.UI.Point =3D function Sys$UI$Point(x, y) {
    /// <summary locid=3D"M:J#Sys.UI.Point.#ctor" />
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    /// <field name=3D"x" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Point.x"></field>
    /// <field name=3D"y" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Point.y"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
}
Sys.UI.Point.registerClass('Sys.UI.Point');
=20
Sys.UI.Bounds =3D function Sys$UI$Bounds(x, y, width, height) {
    /// <summary locid=3D"M:J#Sys.UI.Bounds.#ctor" />
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"height" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"width" type=3D"Number" integer=3D"true"></param>
    /// <field name=3D"x" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.x"></field>
    /// <field name=3D"y" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.y"></field>
    /// <field name=3D"height" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.height"></field>
    /// <field name=3D"width" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.width"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true},
        {name: "height", type: Number, integer: true},
        {name: "width", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
    this.height =3D height;
    this.width =3D width;
}
Sys.UI.Bounds.registerClass('Sys.UI.Bounds');
=20
Sys.UI.DomEvent =3D function Sys$UI$DomEvent(eventObject) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.#ctor" />
    /// <param name=3D"eventObject"></param>
    /// <field name=3D"altKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.altKey"></field>
    /// <field name=3D"button" type=3D"Sys.UI.MouseButton" =
locid=3D"F:J#Sys.UI.DomEvent.button"></field>
    /// <field name=3D"charCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.charCode"></field>
    /// <field name=3D"clientX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientX"></field>
    /// <field name=3D"clientY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientY"></field>
    /// <field name=3D"ctrlKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.ctrlKey"></field>
    /// <field name=3D"keyCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.keyCode"></field>
    /// <field name=3D"offsetX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetX"></field>
    /// <field name=3D"offsetY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetY"></field>
    /// <field name=3D"screenX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenX"></field>
    /// <field name=3D"screenY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenY"></field>
    /// <field name=3D"shiftKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.shiftKey"></field>
    /// <field name=3D"target" =
locid=3D"F:J#Sys.UI.DomEvent.target"></field>
    /// <field name=3D"type" type=3D"String" =
locid=3D"F:J#Sys.UI.DomEvent.type"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "eventObject"}
    ]);
    if (e) throw e;
    var e =3D eventObject;
    var etype =3D this.type =3D e.type.toLowerCase();
    this.rawEvent =3D e;
    this.altKey =3D e.altKey;
    if (typeof(e.button) !=3D=3D 'undefined') {
        this.button =3D (typeof(e.which) !=3D=3D 'undefined') ? e.button =
:
            (e.button =3D=3D=3D 4) ? Sys.UI.MouseButton.middleButton :
            (e.button =3D=3D=3D 2) ? Sys.UI.MouseButton.rightButton :
            Sys.UI.MouseButton.leftButton;
    }
    if (etype =3D=3D=3D 'keypress') {
        this.charCode =3D e.charCode || e.keyCode;
    }
    else if (e.keyCode && (e.keyCode =3D=3D=3D 46)) {
        this.keyCode =3D 127;
    }
    else {
        this.keyCode =3D e.keyCode;
    }
    this.clientX =3D e.clientX;
    this.clientY =3D e.clientY;
    this.ctrlKey =3D e.ctrlKey;
    this.target =3D e.target ? e.target : e.srcElement;
    if (!etype.startsWith('key')) {
        if ((typeof(e.offsetX) !=3D=3D 'undefined') && =
(typeof(e.offsetY) !=3D=3D 'undefined')) {
            this.offsetX =3D e.offsetX;
            this.offsetY =3D e.offsetY;
        }
        else if (this.target && (this.target.nodeType !=3D=3D 3) && =
(typeof(e.clientX) =3D=3D=3D 'number')) {
            var loc =3D Sys.UI.DomElement.getLocation(this.target);
            var w =3D Sys.UI.DomElement._getWindow(this.target);
            this.offsetX =3D (w.pageXOffset || 0) + e.clientX - loc.x;
            this.offsetY =3D (w.pageYOffset || 0) + e.clientY - loc.y;
        }
    }
    this.screenX =3D e.screenX;
    this.screenY =3D e.screenY;
    this.shiftKey =3D e.shiftKey;
}
    function Sys$UI$DomEvent$preventDefault() {
        /// <summary locid=3D"M:J#Sys.UI.DomEvent.preventDefault" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this.rawEvent.preventDefault) {
            this.rawEvent.preventDefault();
        }
        else if (window.event) {
            this.rawEvent.returnValue =3D false;
        }
    }
    function Sys$UI$DomEvent$stopPropagation() {
        /// <summary locid=3D"M:J#Sys.UI.DomEvent.stopPropagation" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this.rawEvent.stopPropagation) {
            this.rawEvent.stopPropagation();
        }
        else if (window.event) {
            this.rawEvent.cancelBubble =3D true;
        }
    }
Sys.UI.DomEvent.prototype =3D {
    preventDefault: Sys$UI$DomEvent$preventDefault,
    stopPropagation: Sys$UI$DomEvent$stopPropagation
}
Sys.UI.DomEvent.registerClass('Sys.UI.DomEvent');
var $addHandler =3D Sys.UI.DomEvent.addHandler =3D function =
Sys$UI$DomEvent$addHandler(element, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandler" />
    /// <param name=3D"element"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    if (eventName =3D=3D=3D "error") throw =
Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError);
    if (!element._events) {
        element._events =3D {};
    }
    var eventCache =3D element._events[eventName];
    if (!eventCache) {
        element._events[eventName] =3D eventCache =3D [];
    }
    var browserHandler;
    if (element.addEventListener) {
        browserHandler =3D function(e) {
            return handler.call(element, new Sys.UI.DomEvent(e));
        }
        element.addEventListener(eventName, browserHandler, false);
    }
    else if (element.attachEvent) {
        browserHandler =3D function() {
            var e =3D {};
            try {e =3D Sys.UI.DomElement._getWindow(element).event} =
catch(ex) {}
            return handler.call(element, new Sys.UI.DomEvent(e));
        }
        element.attachEvent('on' + eventName, browserHandler);
    }
    eventCache[eventCache.length] =3D {handler: handler, browserHandler: =
browserHandler};
}
var $addHandlers =3D Sys.UI.DomEvent.addHandlers =3D function =
Sys$UI$DomEvent$addHandlers(element, events, handlerOwner) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandlers" />
    /// <param name=3D"element"></param>
    /// <param name=3D"events" type=3D"Object"></param>
    /// <param name=3D"handlerOwner" optional=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "events", type: Object},
        {name: "handlerOwner", optional: true}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    for (var name in events) {
        var handler =3D events[name];
        if (typeof(handler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler);
        if (handlerOwner) {
            handler =3D Function.createDelegate(handlerOwner, handler);
        }
        $addHandler(element, name, handler);
    }
}
var $clearHandlers =3D Sys.UI.DomEvent.clearHandlers =3D function =
Sys$UI$DomEvent$clearHandlers(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.clearHandlers" />
    /// <param name=3D"element"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    if (element._events) {
        var cache =3D element._events;
        for (var name in cache) {
            var handlers =3D cache[name];
            for (var i =3D handlers.length - 1; i >=3D 0; i--) {
                $removeHandler(element, name, handlers[i].handler);
            }
        }
        element._events =3D null;
    }
}
var $removeHandler =3D Sys.UI.DomEvent.removeHandler =3D function =
Sys$UI$DomEvent$removeHandler(element, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.removeHandler" />
    /// <param name=3D"element"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    var browserHandler =3D null;
    if ((typeof(element._events) !=3D=3D 'object') || (element._events =
=3D=3D null)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    var cache =3D element._events[eventName];
    if (!(cache instanceof Array)) throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    for (var i =3D 0, l =3D cache.length; i < l; i++) {
        if (cache[i].handler =3D=3D=3D handler) {
            browserHandler =3D cache[i].browserHandler;
            break;
        }
    }
    if (typeof(browserHandler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    if (element.removeEventListener) {
        element.removeEventListener(eventName, browserHandler, false);
    }
    else if (element.detachEvent) {
        element.detachEvent('on' + eventName, browserHandler);
    }
    cache.splice(i, 1);
}
Sys.UI.DomEvent._ensureDomNode =3D function =
Sys$UI$DomEvent$_ensureDomNode(element) {
    if (element.tagName && (element.tagName.toUpperCase() =3D=3D=3D =
"SCRIPT")) return;
   =20
    var doc =3D element.ownerDocument || element.document || element;
    if ((typeof(element.document) !=3D=3D 'object') && (element !=3D =
doc) && (typeof(element.nodeType) !=3D=3D 'number')) {
        throw Error.argument("element", Sys.Res.argumentDomNode);
    }
}
=20
Sys.UI.DomElement =3D function Sys$UI$DomElement() {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.DomElement.registerClass('Sys.UI.DomElement');
Sys.UI.DomElement.addCssClass =3D function =
Sys$UI$DomElement$addCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.addCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (!Sys.UI.DomElement.containsCssClass(element, className)) {
        if (element.className =3D=3D=3D '') {
            element.className =3D className;
        }
        else {
            element.className +=3D ' ' + className;
        }
    }
}
Sys.UI.DomElement.containsCssClass =3D function =
Sys$UI$DomElement$containsCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.containsCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    return Array.contains(element.className.split(' '), className);
}
Sys.UI.DomElement.getBounds =3D function =
Sys$UI$DomElement$getBounds(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getBounds" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.Bounds"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var offset =3D Sys.UI.DomElement.getLocation(element);
    return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || =
0, element.offsetHeight || 0);
}
var $get =3D Sys.UI.DomElement.getElementById =3D function =
Sys$UI$DomElement$getElementById(id, element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getElementById" />
    /// <param name=3D"id" type=3D"String"></param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns domElement=3D"true" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "id", type: String},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    if (!element) return document.getElementById(id);
    if (element.getElementById) return element.getElementById(id);
    var nodeQueue =3D [];
    var childNodes =3D element.childNodes;
    for (var i =3D 0; i < childNodes.length; i++) {
        var node =3D childNodes[i];
        if (node.nodeType =3D=3D 1) {
            nodeQueue[nodeQueue.length] =3D node;
        }
    }
    while (nodeQueue.length) {
        node =3D nodeQueue.shift();
        if (node.id =3D=3D id) {
            return node;
        }
        childNodes =3D node.childNodes;
        for (i =3D 0; i < childNodes.length; i++) {
            node =3D childNodes[i];
            if (node.nodeType =3D=3D 1) {
                nodeQueue[nodeQueue.length] =3D node;
            }
        }
    }
    return null;
}
switch(Sys.Browser.agent) {
    case Sys.Browser.InternetExplorer:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if (element.self || element.nodeType =3D=3D=3D 9) return new =
Sys.UI.Point(0,0);
            var clientRect =3D element.getBoundingClientRect();
            if (!clientRect) {
                return new Sys.UI.Point(0,0);
            }
            var documentElement =3D =
element.ownerDocument.documentElement;
            var offsetX =3D clientRect.left - 2 + =
documentElement.scrollLeft,
                offsetY =3D clientRect.top - 2 + =
documentElement.scrollTop;
           =20
            try {
                var f =3D =
element.ownerDocument.parentWindow.frameElement || null;
                if (f) {
                    var offset =3D (f.frameBorder =3D=3D=3D "0" || =
f.frameBorder =3D=3D=3D "no") ? 2 : 0;
                    offsetX +=3D offset;
                    offsetY +=3D offset;
                }
            }
            catch(ex) {
            }   =20
           =20
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    case Sys.Browser.Safari:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            var previousStyle =3D null;
            var currentStyle;
            for (var parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                if ((parent.offsetLeft || parent.offsetTop) &&
                    ((tagName !=3D=3D "BODY") || (!previousStyle || =
previousStyle.position !=3D=3D "absolute"))) {
                    offsetX +=3D parent.offsetLeft;
                    offsetY +=3D parent.offsetTop;
                }
            }
            currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(element);
            var elementPosition =3D currentStyle ? currentStyle.position =
: null;
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                    if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D =
"HTML") && (parent.scrollLeft || parent.scrollTop)) {
                        offsetX -=3D (parent.scrollLeft || 0);
                        offsetY -=3D (parent.scrollTop || 0);
                    }
                    currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                    var parentPosition =3D currentStyle ? =
currentStyle.position : null;
                    if (parentPosition && (parentPosition =3D=3D=3D =
"absolute")) break;
                }
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    case Sys.Browser.Opera:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            for (var parent =3D element; parent; previous =3D parent, =
parent =3D parent.offsetParent) {
                var tagName =3D parent.tagName;
                offsetX +=3D parent.offsetLeft || 0;
                offsetY +=3D parent.offsetTop || 0;
            }
            var elementPosition =3D element.style.position;
            var elementPositioned =3D elementPosition && =
(elementPosition !=3D=3D "static");
            for (var parent =3D element.parentNode; parent; parent =3D =
parent.parentNode) {
                tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D "HTML") =
&& (parent.scrollLeft || parent.scrollTop) &&
                    ((elementPositioned &&
                    ((parent.style.overflow =3D=3D=3D "scroll") || =
(parent.style.overflow =3D=3D=3D "auto"))))) {
                    offsetX -=3D (parent.scrollLeft || 0);
                    offsetY -=3D (parent.scrollTop || 0);
                }
                var parentPosition =3D (parent && parent.style) ? =
parent.style.position : null;
                elementPositioned =3D elementPositioned || =
(parentPosition && (parentPosition !=3D=3D "static"));
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    default:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            var previousStyle =3D null;
            var currentStyle =3D null;
            for (var parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
                var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                if ((parent.offsetLeft || parent.offsetTop) &&
                    !((tagName =3D=3D=3D "BODY") &&
                    (!previousStyle || previousStyle.position !=3D=3D =
"absolute"))) {
                    offsetX +=3D parent.offsetLeft;
                    offsetY +=3D parent.offsetTop;
                }
                if (previous !=3D=3D null && currentStyle) {
                    if ((tagName !=3D=3D "TABLE") && (tagName !=3D=3D =
"TD") && (tagName !=3D=3D "HTML")) {
                        offsetX +=3D =
parseInt(currentStyle.borderLeftWidth) || 0;
                        offsetY +=3D =
parseInt(currentStyle.borderTopWidth) || 0;
                    }
                    if (tagName =3D=3D=3D "TABLE" &&
                        (currentStyle.position =3D=3D=3D "relative" || =
currentStyle.position =3D=3D=3D "absolute")) {
                        offsetX +=3D parseInt(currentStyle.marginLeft) =
|| 0;
                        offsetY +=3D parseInt(currentStyle.marginTop) || =
0;
                    }
                }
            }
            currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(element);
            var elementPosition =3D currentStyle ? currentStyle.position =
: null;
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                    if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D =
"HTML") && (parent.scrollLeft || parent.scrollTop)) {
                        offsetX -=3D (parent.scrollLeft || 0);
                        offsetY -=3D (parent.scrollTop || 0);
                        currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                        if (currentStyle) {
                            offsetX +=3D =
parseInt(currentStyle.borderLeftWidth) || 0;
                            offsetY +=3D =
parseInt(currentStyle.borderTopWidth) || 0;
                        }
                    }
                }
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
}
Sys.UI.DomElement.removeCssClass =3D function =
Sys$UI$DomElement$removeCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.removeCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    var currentClassName =3D ' ' + element.className + ' ';
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D (currentClassName.substr(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length)).trim();
    }
}
Sys.UI.DomElement.setLocation =3D function =
Sys$UI$DomElement$setLocation(element, x, y) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setLocation" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;
    var style =3D element.style;
    style.position =3D 'absolute';
    style.left =3D x + "px";
    style.top =3D y + "px";
}
Sys.UI.DomElement.toggleCssClass =3D function =
Sys$UI$DomElement$toggleCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.toggleCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (Sys.UI.DomElement.containsCssClass(element, className)) {
        Sys.UI.DomElement.removeCssClass(element, className);
    }
    else {
        Sys.UI.DomElement.addCssClass(element, className);
    }
}
Sys.UI.DomElement.getVisibilityMode =3D function =
Sys$UI$DomElement$getVisibilityMode(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisibilityMode" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.VisibilityMode"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    return (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide) ?
        Sys.UI.VisibilityMode.hide :
        Sys.UI.VisibilityMode.collapse;
}
Sys.UI.DomElement.setVisibilityMode =3D function =
Sys$UI$DomElement$setVisibilityMode(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisibilityMode" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Sys.UI.VisibilityMode"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Sys.UI.VisibilityMode}
    ]);
    if (e) throw e;
    Sys.UI.DomElement._ensureOldDisplayMode(element);
    if (element._visibilityMode !=3D=3D value) {
        element._visibilityMode =3D value;
        if (Sys.UI.DomElement.getVisible(element) =3D=3D=3D false) {
            if (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide) {
                element.style.display =3D element._oldDisplayMode;
            }
            else {
                element.style.display =3D 'none';
            }
        }
        element._visibilityMode =3D value;
    }
}
Sys.UI.DomElement.getVisible =3D function =
Sys$UI$DomElement$getVisible(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisible" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var style =3D element.currentStyle || =
Sys.UI.DomElement._getCurrentStyle(element);
    if (!style) return true;
    return (style.visibility !=3D=3D 'hidden') && (style.display !=3D=3D =
'none');
}
Sys.UI.DomElement.setVisible =3D function =
Sys$UI$DomElement$setVisible(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisible" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Boolean"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Boolean}
    ]);
    if (e) throw e;
    if (value !=3D=3D Sys.UI.DomElement.getVisible(element)) {
        Sys.UI.DomElement._ensureOldDisplayMode(element);
        element.style.visibility =3D value ? 'visible' : 'hidden';
        if (value || (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide)) {
            element.style.display =3D element._oldDisplayMode;
        }
        else {
            element.style.display =3D 'none';
        }
    }
}
Sys.UI.DomElement._ensureOldDisplayMode =3D function =
Sys$UI$DomElement$_ensureOldDisplayMode(element) {
    if (!element._oldDisplayMode) {
        var style =3D element.currentStyle || =
Sys.UI.DomElement._getCurrentStyle(element);
        element._oldDisplayMode =3D style ? style.display : null;
        if (!element._oldDisplayMode || element._oldDisplayMode =
=3D=3D=3D 'none') {
            switch(element.tagName.toUpperCase()) {
                case 'DIV': case 'P': case 'ADDRESS': case 'BLOCKQUOTE': =
case 'BODY': case 'COL':
                case 'COLGROUP': case 'DD': case 'DL': case 'DT': case =
'FIELDSET': case 'FORM':
                case 'H1': case 'H2': case 'H3': case 'H4': case 'H5': =
case 'H6': case 'HR':
                case 'IFRAME': case 'LEGEND': case 'OL': case 'PRE': =
case 'TABLE': case 'TD':
                case 'TH': case 'TR': case 'UL':
                    element._oldDisplayMode =3D 'block';
                    break;
                case 'LI':
                    element._oldDisplayMode =3D 'list-item';
                    break;
                default:
                    element._oldDisplayMode =3D 'inline';
            }
        }
    }
}
Sys.UI.DomElement._getWindow =3D function =
Sys$UI$DomElement$_getWindow(element) {
    var doc =3D element.ownerDocument || element.document || element;
    return doc.defaultView || doc.parentWindow;
}
Sys.UI.DomElement._getCurrentStyle =3D function =
Sys$UI$DomElement$_getCurrentStyle(element) {
    if (element.nodeType =3D=3D=3D 3) return null;
    var w =3D Sys.UI.DomElement._getWindow(element);
    if (element.documentElement) element =3D element.documentElement;
    var computedStyle =3D (w && (element !=3D=3D w) && =
w.getComputedStyle) ?
        w.getComputedStyle(element, null) :
        element.currentStyle || element.style;
    if (!computedStyle && (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) && element.style) {
        var oldDisplay =3D element.style.display;
        var oldPosition =3D element.style.position;
        element.style.position =3D 'absolute';
        element.style.display =3D 'block';
        var style =3D w.getComputedStyle(element, null);
        element.style.display =3D oldDisplay;
        element.style.position =3D oldPosition;
        computedStyle =3D {};
        for (var n in style) {
            computedStyle[n] =3D style[n];
        }
        computedStyle.display =3D 'none';
    }
    return computedStyle;
}
=20
Sys.IContainer =3D function Sys$IContainer() {
    throw Error.notImplemented();
}
    function Sys$IContainer$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.IContainer.addComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$removeComponent(component) {
        /// <summary locid=3D"M:J#Sys.IContainer.removeComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$findComponent(id) {
        /// <summary locid=3D"M:J#Sys.IContainer.findComponent" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <returns type=3D"Sys.Component"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$getComponents() {
        /// <summary locid=3D"M:J#Sys.IContainer.getComponents" />
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
Sys.IContainer.prototype =3D {
    addComponent: Sys$IContainer$addComponent,
    removeComponent: Sys$IContainer$removeComponent,
    findComponent: Sys$IContainer$findComponent,
    getComponents: Sys$IContainer$getComponents
}
Sys.IContainer.registerInterface("Sys.IContainer");
=20
Sys._ScriptLoader =3D function Sys$_ScriptLoader() {
    this._scriptsToLoad =3D null;
    this._sessions =3D [];
    this._scriptLoadedDelegate =3D Function.createDelegate(this, =
this._scriptLoadedHandler);
}
    function Sys$_ScriptLoader$dispose() {
        this._stopSession();
        this._loading =3D false;
        if(this._events) {
            delete this._events;
        }
        this._sessions =3D null;
        this._currentSession =3D null;
        this._scriptLoadedDelegate =3D null;       =20
    }
    function Sys$_ScriptLoader$loadScripts(scriptTimeout, =
allScriptsLoadedCallback, scriptLoadFailedCallback, =
scriptLoadTimeoutCallback) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.loadScripts" />
        /// <param name=3D"scriptTimeout" type=3D"Number" =
integer=3D"true"></param>
        /// <param name=3D"allScriptsLoadedCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        /// <param name=3D"scriptLoadFailedCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        /// <param name=3D"scriptLoadTimeoutCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptTimeout", type: Number, integer: true},
            {name: "allScriptsLoadedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadFailedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadTimeoutCallback", type: Function, =
mayBeNull: true}
        ]);
        if (e) throw e;
        var session =3D {
            allScriptsLoadedCallback: allScriptsLoadedCallback,
            scriptLoadFailedCallback: scriptLoadFailedCallback,
            scriptLoadTimeoutCallback: scriptLoadTimeoutCallback,
            scriptsToLoad: this._scriptsToLoad,
            scriptTimeout: scriptTimeout };
        this._scriptsToLoad =3D null;
        this._sessions[this._sessions.length] =3D session;
       =20
        if (!this._loading) {
            this._nextSession();
        }
    }
    function Sys$_ScriptLoader$notifyScriptLoaded() {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.notifyScriptLoaded" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
       =20
        if(!this._loading) {
            return;
        }
        this._currentTask._notified++;
       =20
        if(Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) {          =20
            if(this._currentTask._notified =3D=3D=3D 1) {
                window.setTimeout(Function.createDelegate(this, =
function() {
                    =
this._scriptLoadedHandler(this._currentTask.get_scriptElement(), true);
                }), 0);
            }
        }
    }
    function Sys$_ScriptLoader$queueCustomScriptTag(scriptAttributes) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueCustomScriptTag" />
        /// <param name=3D"scriptAttributes" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptAttributes"}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, scriptAttributes);
    }
    function Sys$_ScriptLoader$queueScriptBlock(scriptContent) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.queueScriptBlock" />
        /// <param name=3D"scriptContent" type=3D"String" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptContent", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {text: scriptContent});
    }
    function Sys$_ScriptLoader$queueScriptReference(scriptUrl) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueScriptReference" />
        /// <param name=3D"scriptUrl" type=3D"String" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptUrl", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {src: scriptUrl});
    }
    function Sys$_ScriptLoader$_createScriptElement(queuedScript) {
        var scriptElement =3D document.createElement('script');
        scriptElement.type =3D 'text/javascript';
        for (var attr in queuedScript) {
            scriptElement[attr] =3D queuedScript[attr];
        }
       =20
        return scriptElement;
    }
    function Sys$_ScriptLoader$_loadScriptsInternal() {
        var session =3D this._currentSession;
        if (session.scriptsToLoad && session.scriptsToLoad.length > 0) {
            var nextScript =3D Array.dequeue(session.scriptsToLoad);
            var scriptElement =3D this._createScriptElement(nextScript);
           =20
            if (scriptElement.text && Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) {
                scriptElement.innerHTML =3D scriptElement.text;
                delete scriptElement.text;
            }           =20
            if (typeof(nextScript.src) =3D=3D=3D "string") {
                this._currentTask =3D new =
Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate);
                this._currentTask.execute();
            }
            else {
                var headElements =3D =
document.getElementsByTagName('head');
                if (headElements.length =3D=3D=3D 0) {
                     throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
                }
                else {
                     headElements[0].appendChild(scriptElement);
                }
               =20
               =20
                Sys._ScriptLoader._clearScript(scriptElement);
                this._loadScriptsInternal();
            }
        }
        else {
            this._stopSession();
            var callback =3D session.allScriptsLoadedCallback;
            if(callback) {
                callback(this);
            }
            this._nextSession();
        }
    }
    function Sys$_ScriptLoader$_nextSession() {
        if (this._sessions.length =3D=3D=3D 0) {
            this._loading =3D false;
            this._currentSession =3D null;
            return;
        }
        this._loading =3D true;
       =20
        var session =3D Array.dequeue(this._sessions);
        this._currentSession =3D session;
        this._loadScriptsInternal();
    }
    function Sys$_ScriptLoader$_raiseError(multipleCallbacks) {
        var callback =3D this._currentSession.scriptLoadFailedCallback;
        var scriptElement =3D this._currentTask.get_scriptElement();
        this._stopSession();
       =20
        if(callback) {
            callback(this, scriptElement, multipleCallbacks);
            this._nextSession();
        }
        else {
            this._loading =3D false;
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src, =
multipleCallbacks);
        }
    }
    function Sys$_ScriptLoader$_scriptLoadedHandler(scriptElement, =
loaded) {
        if(loaded && this._currentTask._notified) {
            if(this._currentTask._notified > 1) {
                this._raiseError(true);
            }
            else {
                Array.add(Sys._ScriptLoader._getLoadedScripts(), =
scriptElement.src);
                this._currentTask.dispose();
                this._currentTask =3D null;
                this._loadScriptsInternal();
            }
        }
        else {
            this._raiseError(false);
        }
    }
    function Sys$_ScriptLoader$_scriptLoadTimeoutHandler() {
        var callback =3D this._currentSession.scriptLoadTimeoutCallback;
        this._stopSession();
        if(callback) {
            callback(this);
        }
        this._nextSession();
    }
    function Sys$_ScriptLoader$_stopSession() {
        if(this._currentTask) {
            this._currentTask.dispose();
            this._currentTask =3D null;
        }
    }
Sys._ScriptLoader.prototype =3D {
    dispose: Sys$_ScriptLoader$dispose,
    loadScripts: Sys$_ScriptLoader$loadScripts,
    notifyScriptLoaded: Sys$_ScriptLoader$notifyScriptLoaded,
    queueCustomScriptTag: Sys$_ScriptLoader$queueCustomScriptTag,
    queueScriptBlock: Sys$_ScriptLoader$queueScriptBlock,
    queueScriptReference: Sys$_ScriptLoader$queueScriptReference,
    _createScriptElement: Sys$_ScriptLoader$_createScriptElement,
    _loadScriptsInternal: Sys$_ScriptLoader$_loadScriptsInternal,
    _nextSession: Sys$_ScriptLoader$_nextSession,
    _raiseError: Sys$_ScriptLoader$_raiseError,
    _scriptLoadedHandler: Sys$_ScriptLoader$_scriptLoadedHandler,
    _scriptLoadTimeoutHandler: =
Sys$_ScriptLoader$_scriptLoadTimeoutHandler,
    _stopSession: Sys$_ScriptLoader$_stopSession   =20
}
Sys._ScriptLoader.registerClass('Sys._ScriptLoader', null, =
Sys.IDisposable);
Sys._ScriptLoader.getInstance =3D function =
Sys$_ScriptLoader$getInstance() {
    var sl =3D Sys._ScriptLoader._activeInstance;
    if(!sl) {
        sl =3D Sys._ScriptLoader._activeInstance =3D new =
Sys._ScriptLoader();
    }
    return sl;
}
Sys._ScriptLoader.isScriptLoaded =3D function =
Sys$_ScriptLoader$isScriptLoaded(scriptSrc) {
    var dummyScript =3D document.createElement('script');
    dummyScript.src =3D scriptSrc;
    return Array.contains(Sys._ScriptLoader._getLoadedScripts(), =
dummyScript.src);
}
Sys._ScriptLoader.readLoadedScripts =3D function =
Sys$_ScriptLoader$readLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        var referencedScripts =3D Sys._ScriptLoader._referencedScripts =
=3D [];
        var existingScripts =3D document.getElementsByTagName('script');
        for (i =3D existingScripts.length - 1; i >=3D 0; i--) {
            var scriptNode =3D existingScripts[i];
            var scriptSrc =3D scriptNode.src;
            if (scriptSrc.length) {
                if (!Array.contains(referencedScripts, scriptSrc)) {
                    Array.add(referencedScripts, scriptSrc);
                }
            }
        }
    }
}
Sys._ScriptLoader._clearScript =3D function =
Sys$_ScriptLoader$_clearScript(scriptElement) {
    if (!Sys.Debug.isDebug) {
        scriptElement.parentNode.removeChild(scriptElement);
    }
}
Sys._ScriptLoader._errorScriptLoadFailed =3D function =
Sys$_ScriptLoader$_errorScriptLoadFailed(scriptUrl, multipleCallbacks) {
    var errorMessage;
    if(multipleCallbacks) {
        errorMessage =3D Sys.Res.scriptLoadMultipleCallbacks;
    }
    else {
        errorMessage =3D Sys.Res.scriptLoadFailedDebug;
    }
    var displayMessage =3D "Sys.ScriptLoadFailedException: " + =
String.format(errorMessage, scriptUrl);
    var e =3D Error.create(displayMessage, {name: =
'Sys.ScriptLoadFailedException', 'scriptUrl': scriptUrl });
    e.popStackFrame();
    return e;
}
Sys._ScriptLoader._getLoadedScripts =3D function =
Sys$_ScriptLoader$_getLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        Sys._ScriptLoader._referencedScripts =3D [];
        Sys._ScriptLoader.readLoadedScripts();
    }
    return Sys._ScriptLoader._referencedScripts;
}
=20
Sys._ScriptLoaderTask =3D function Sys$_ScriptLoaderTask(scriptElement, =
completedCallback) {
    /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.#ctor" />
    /// <param name=3D"scriptElement" domElement=3D"true"></param>
    /// <param name=3D"completedCallback" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "scriptElement", domElement: true},
        {name: "completedCallback", type: Function}
    ]);
    if (e) throw e;
    this._scriptElement =3D scriptElement;
    this._completedCallback =3D completedCallback;
    this._notified =3D 0;
}
    function Sys$_ScriptLoaderTask$get_scriptElement() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys._ScriptLoaderTask.scriptElement"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._scriptElement;
    }
    function Sys$_ScriptLoaderTask$dispose() {
        if(this._disposed) {
            return;
        }
        this._disposed =3D true;
        this._removeScriptElementHandlers();
        Sys._ScriptLoader._clearScript(this._scriptElement);
        this._scriptElement =3D null;
    }
    function Sys$_ScriptLoaderTask$execute() {
        /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.execute" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._addScriptElementHandlers();
        var headElements =3D document.getElementsByTagName('head');
        if (headElements.length =3D=3D=3D 0) {
             throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
        }
        else {
             headElements[0].appendChild(this._scriptElement);
        }
    }
    function Sys$_ScriptLoaderTask$_addScriptElementHandlers() {
        this._scriptLoadDelegate =3D Function.createDelegate(this, =
this._scriptLoadHandler);
       =20
        if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) {
            this._scriptElement.readyState =3D 'loaded';
            $addHandler(this._scriptElement, 'load', =
this._scriptLoadDelegate);
        }
        else {
            $addHandler(this._scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
        }   =20
        if (this._scriptElement.addEventListener) {
            this._scriptErrorDelegate =3D Function.createDelegate(this, =
this._scriptErrorHandler);
            this._scriptElement.addEventListener('error', =
this._scriptErrorDelegate, false);
        }
    }
    function Sys$_ScriptLoaderTask$_removeScriptElementHandlers() {
        if(this._scriptLoadDelegate) {
            var scriptElement =3D this.get_scriptElement();
            if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) =
{
                $removeHandler(scriptElement, 'load', =
this._scriptLoadDelegate);
            }
            else {
                $removeHandler(scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
            }
            if (this._scriptErrorDelegate) {
                this._scriptElement.removeEventListener('error', =
this._scriptErrorDelegate, false);
                this._scriptErrorDelegate =3D null;
            }
            this._scriptLoadDelegate =3D null;
        }
    }
    function Sys$_ScriptLoaderTask$_scriptErrorHandler() {
        if(this._disposed) {
            return;
        }
       =20
        this._completedCallback(this.get_scriptElement(), false);
    }
    function Sys$_ScriptLoaderTask$_scriptLoadHandler() {
        if(this._disposed) {
            return;
        }
        var scriptElement =3D this.get_scriptElement();
        if ((scriptElement.readyState !=3D=3D 'loaded') &&
            (scriptElement.readyState !=3D=3D 'complete')) {
            return;
        }
       =20
        var _this =3D this;
        window.setTimeout(function() {
            _this._completedCallback(scriptElement, true);
        }, 0);
    }
Sys._ScriptLoaderTask.prototype =3D {
    get_scriptElement: Sys$_ScriptLoaderTask$get_scriptElement,
    dispose: Sys$_ScriptLoaderTask$dispose,
    execute: Sys$_ScriptLoaderTask$execute,
    _addScriptElementHandlers: =
Sys$_ScriptLoaderTask$_addScriptElementHandlers,   =20
    _removeScriptElementHandlers: =
Sys$_ScriptLoaderTask$_removeScriptElementHandlers,   =20
    _scriptErrorHandler: Sys$_ScriptLoaderTask$_scriptErrorHandler,
    _scriptLoadHandler: Sys$_ScriptLoaderTask$_scriptLoadHandler =20
}
Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask", null, =
Sys.IDisposable);
=20
Sys.ApplicationLoadEventArgs =3D function =
Sys$ApplicationLoadEventArgs(components, isPartialLoad) {
    /// <summary locid=3D"M:J#Sys.ApplicationLoadEventArgs.#ctor" />
    /// <param name=3D"components" type=3D"Array" =
elementType=3D"Sys.Component"></param>
    /// <param name=3D"isPartialLoad" type=3D"Boolean"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "components", type: Array, elementType: Sys.Component},
        {name: "isPartialLoad", type: Boolean}
    ]);
    if (e) throw e;
    Sys.ApplicationLoadEventArgs.initializeBase(this);
    this._components =3D components;
    this._isPartialLoad =3D isPartialLoad;
}
=20
    function Sys$ApplicationLoadEventArgs$get_components() {
        /// <value type=3D"Array" elementType=3D"Sys.Component" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.components"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._components;
    }
    function Sys$ApplicationLoadEventArgs$get_isPartialLoad() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.isPartialLoad"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._isPartialLoad;
    }
Sys.ApplicationLoadEventArgs.prototype =3D {
    get_components: Sys$ApplicationLoadEventArgs$get_components,
    get_isPartialLoad: Sys$ApplicationLoadEventArgs$get_isPartialLoad
}
Sys.ApplicationLoadEventArgs.registerClass('Sys.ApplicationLoadEventArgs'=
, Sys.EventArgs);
Sys.HistoryEventArgs =3D function Sys$HistoryEventArgs(state) {
    /// <summary locid=3D"M:J#Sys.HistoryEventArgs.#ctor" />
    /// <param name=3D"state" type=3D"Object"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "state", type: Object}
    ]);
    if (e) throw e;
    Sys.HistoryEventArgs.initializeBase(this);
    this._state =3D state;
}
    function Sys$HistoryEventArgs$get_state() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.HistoryEventArgs.state"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._state;
    }
Sys.HistoryEventArgs.prototype =3D {
    get_state: Sys$HistoryEventArgs$get_state
}
Sys.HistoryEventArgs.registerClass('Sys.HistoryEventArgs', =
Sys.EventArgs);
=20
Sys._Application =3D function Sys$_Application() {
    /// <summary locid=3D"M:J#Sys.Application.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys._Application.initializeBase(this);
    this._disposableObjects =3D [];
    this._components =3D {};
    this._createdComponents =3D [];
    this._secondPassComponents =3D [];
    this._appLoadHandler =3D null;
    this._beginRequestHandler =3D null;
    this._clientId =3D null;
    this._currentEntry =3D '';
    this._endRequestHandler =3D null;
    this._history =3D null;
    this._enableHistory =3D false;
    this._historyEnabledInScriptManager =3D false;
    this._historyFrame =3D null;
    this._historyInitialized =3D false;
    this._historyInitialLength =3D 0;
    this._historyLength =3D 0;
    this._historyPointIsNew =3D false;
    this._ignoreTimer =3D false;
    this._initialState =3D null;
    this._state =3D {};
    this._timerCookie =3D 0;
    this._timerHandler =3D null;
    this._uniqueId =3D null;
    this._unloadHandlerDelegate =3D Function.createDelegate(this, =
this._unloadHandler);
    this._loadHandlerDelegate =3D Function.createDelegate(this, =
this._loadHandler);
    Sys.UI.DomEvent.addHandler(window, "unload", =
this._unloadHandlerDelegate);
    Sys.UI.DomEvent.addHandler(window, "load", =
this._loadHandlerDelegate);
}
    function Sys$_Application$get_isCreatingComponents() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.isCreatingComponents"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._creatingComponents;
    }
    function Sys$_Application$get_stateString() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Application.stateString"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var hash =3D window.location.hash;
        if (this._isSafari2()) {
            var history =3D this._getHistory();
            if (history) {
                hash =3D history[window.history.length - =
this._historyInitialLength];
            }
        }
        if ((hash.length > 0) && (hash.charAt(0) =3D=3D=3D '#')) {
            hash =3D hash.substring(1);
        }
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.Firefox) {
            hash =3D this._serializeState(this._deserializeState(hash, =
true));
        }
        return hash;
    }
    function Sys$_Application$get_enableHistory() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.enableHistory"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._enableHistory;
    }
    function Sys$_Application$set_enableHistory(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        if (this._initialized && !this._initializing) {
            throw =
Error.invalidOperation(Sys.Res.historyCannotEnableHistory);
        }
        else if (this._historyEnabledInScriptManager && !value) {
            throw =
Error.invalidOperation(Sys.Res.invalidHistorySettingCombination);
        }
        this._enableHistory =3D value;
    }
    function Sys$_Application$add_init(handler) {
        /// <summary locid=3D"E:J#Sys.Application.init" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        if (this._initialized) {
            handler(this, Sys.EventArgs.Empty);
        }
        else {
            this.get_events().addHandler("init", handler);
        }
    }
    function Sys$_Application$remove_init(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("init", handler);
    }
    function Sys$_Application$add_load(handler) {
        /// <summary locid=3D"E:J#Sys.Application.load" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("load", handler);
    }
    function Sys$_Application$remove_load(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("load", handler);
    }
    function Sys$_Application$add_navigate(handler) {
        /// <summary locid=3D"E:J#Sys.Application.navigate" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("navigate", handler);
    }
    function Sys$_Application$remove_navigate(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("navigate", handler);
    }
    function Sys$_Application$add_unload(handler) {
        /// <summary locid=3D"E:J#Sys.Application.unload" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("unload", handler);
    }
    function Sys$_Application$remove_unload(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("unload", handler);
    }
    function Sys$_Application$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.addComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId);
        if (typeof(this._components[id]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, =
id));
        this._components[id] =3D component;
    }
    function Sys$_Application$addHistoryPoint(state, title) {
        /// <summary locid=3D"M:J#Sys.Application.addHistoryPoint" />
        /// <param name=3D"state" type=3D"Object"></param>
        /// <param name=3D"title" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "state", type: Object},
            {name: "title", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        if (!this._enableHistory) throw =
Error.invalidOperation(Sys.Res.historyCannotAddHistoryPointWithHistoryDis=
abled);
        for (var n in state) {
            var v =3D state[n];
            var t =3D typeof(v);
            if ((v !=3D=3D null) && ((t =3D=3D=3D 'object') || (t =
=3D=3D=3D 'function') || (t =3D=3D=3D 'undefined'))) {
                throw Error.argument('state', =
Sys.Res.stateMustBeStringDictionary);
            }
        }
        this._ensureHistory();
        var initialState =3D this._state;
        for (var key in state) {
            var value =3D state[key];
            if (value =3D=3D=3D null) {
                if (typeof(initialState[key]) !=3D=3D 'undefined') {
                    delete initialState[key];
                }
            }
            else {
                initialState[key] =3D value;
            }
        }
        var entry =3D this._serializeState(initialState);
        this._historyPointIsNew =3D true;
        this._setState(entry, title);
        this._raiseNavigate();
    }
    function Sys$_Application$beginCreateComponents() {
        /// <summary locid=3D"M:J#Sys.Application.beginCreateComponents" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._creatingComponents =3D true;
    }
    function Sys$_Application$dispose() {
        /// <summary locid=3D"M:J#Sys.Application.dispose" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._disposing) {
            this._disposing =3D true;
            if (this._timerCookie) {
                window.clearTimeout(this._timerCookie);
                delete this._timerCookie;
            }
            if (this._endRequestHandler) {
                =
Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._end=
RequestHandler);
                delete this._endRequestHandler;
            }
            if (this._beginRequestHandler) {
                =
Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._b=
eginRequestHandler);
                delete this._beginRequestHandler;
            }
            if (window.pageUnload) {
                window.pageUnload(this, Sys.EventArgs.Empty);
            }
            var unloadHandler =3D =
this.get_events().getHandler("unload");
            if (unloadHandler) {
                unloadHandler(this, Sys.EventArgs.Empty);
            }
            var disposableObjects =3D =
Array.clone(this._disposableObjects);
            for (var i =3D 0, l =3D disposableObjects.length; i < l; =
i++) {
                disposableObjects[i].dispose();
            }
            Array.clear(this._disposableObjects);
            Sys.UI.DomEvent.removeHandler(window, "unload", =
this._unloadHandlerDelegate);
            if(this._loadHandlerDelegate) {
                Sys.UI.DomEvent.removeHandler(window, "load", =
this._loadHandlerDelegate);
                this._loadHandlerDelegate =3D null;
            }
            var sl =3D Sys._ScriptLoader.getInstance();
            if(sl) {
                sl.dispose();
            }
            Sys._Application.callBaseMethod(this, 'dispose');
        }
    }
    function Sys$_Application$endCreateComponents() {
        /// <summary locid=3D"M:J#Sys.Application.endCreateComponents" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var components =3D this._secondPassComponents;
        for (var i =3D 0, l =3D components.length; i < l; i++) {
            var component =3D components[i].component;
            Sys$Component$_setReferences(component, =
components[i].references);
            component.endUpdate();
        }
        this._secondPassComponents =3D [];
        this._creatingComponents =3D false;
    }
    function Sys$_Application$findComponent(id, parent) {
        /// <summary locid=3D"M:J#Sys.Application.findComponent" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"parent" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <returns type=3D"Sys.Component" =
mayBeNull=3D"true"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "parent", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        return (parent ?
            ((Sys.IContainer.isInstanceOfType(parent)) ?
                parent.findComponent(id) :
                parent[id] || null) :
            Sys.Application._components[id] || null);
    }
    function Sys$_Application$getComponents() {
        /// <summary locid=3D"M:J#Sys.Application.getComponents" />
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var res =3D [];
        var components =3D this._components;
        for (var name in components) {
            res[res.length] =3D components[name];
        }
        return res;
    }
    function Sys$_Application$initialize() {
        /// <summary locid=3D"M:J#Sys.Application.initialize" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if(!this._initialized && !this._initializing) {
            this._initializing =3D true;
            window.setTimeout(Function.createDelegate(this, =
this._doInitialize), 0);
        }
    }
    function Sys$_Application$notifyScriptLoaded() {
        /// <summary locid=3D"M:J#Sys.Application.notifyScriptLoaded" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var sl =3D Sys._ScriptLoader.getInstance();
        if(sl) {
            sl.notifyScriptLoaded();
        }
    }
    function Sys$_Application$registerDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.registerDisposableObject" />
        /// <param name=3D"object" type=3D"Sys.IDisposable"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            this._disposableObjects[this._disposableObjects.length] =3D =
object;
        }
    }
    function Sys$_Application$raiseLoad() {
        /// <summary locid=3D"M:J#Sys.Application.raiseLoad" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var h =3D this.get_events().getHandler("load");
        var args =3D new =
Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), =
!this._initializing);
        if (h) {
            h(this, args);
        }
        if (window.pageLoad) {
            window.pageLoad(this, args);
        }
        this._createdComponents =3D [];
    }
    function Sys$_Application$removeComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.removeComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (id) delete this._components[id];
    }
    function Sys$_Application$setServerId(clientId, uniqueId) {
        /// <summary locid=3D"M:J#Sys.Application.setServerId" />
        /// <param name=3D"clientId" type=3D"String"></param>
        /// <param name=3D"uniqueId" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "clientId", type: String},
            {name: "uniqueId", type: String}
        ]);
        if (e) throw e;
        this._clientId =3D clientId;
        this._uniqueId =3D uniqueId;
    }
    function Sys$_Application$setServerState(value) {
        /// <summary locid=3D"M:J#Sys.Application.setServerState" />
        /// <param name=3D"value" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "value", type: String}
        ]);
        if (e) throw e;
        this._ensureHistory();
        this._state.__s =3D value;
        this._updateHiddenField(value);
    }
    function Sys$_Application$unregisterDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.unregisterDisposableObject" />
        /// <param name=3D"object" type=3D"Sys.IDisposable"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            Array.remove(this._disposableObjects, object);
        }
    }
    function Sys$_Application$_addComponentToSecondPass(component, =
references) {
        this._secondPassComponents[this._secondPassComponents.length] =
=3D {component: component, references: references};
    }
    function Sys$_Application$_deserializeState(entry, skipDecodeUri) {
        var result =3D {};
        entry =3D entry || '';
        var serverSeparator =3D entry.indexOf('&&');
        if ((serverSeparator !=3D=3D -1) && (serverSeparator + 2 < =
entry.length)) {
            result.__s =3D entry.substr(serverSeparator + 2);
            entry =3D entry.substr(0, serverSeparator);
        }
        var tokens =3D entry.split('&');
        for (var i =3D 0, l =3D tokens.length; i < l; i++) {
            var token =3D tokens[i];
            var equal =3D token.indexOf('=3D');
            if ((equal !=3D=3D -1) && (equal + 1 < token.length)) {
                var name =3D token.substr(0, equal);
                var value =3D token.substr(equal + 1);
                result[name] =3D skipDecodeUri ? value : =
decodeURIComponent(value);
            }
        }
        return result;
    }
    function Sys$_Application$_doInitialize() {
        Sys._Application.callBaseMethod(this, 'initialize');
       =20
        var handler =3D this.get_events().getHandler("init");
        if (handler) {
            this.beginCreateComponents();
            handler(this, Sys.EventArgs.Empty);
            this.endCreateComponents();
        }
        if (Sys.WebForms) {
            this._beginRequestHandler =3D Function.createDelegate(this, =
this._onPageRequestManagerBeginRequest);
            =
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this._begi=
nRequestHandler);
            this._endRequestHandler =3D Function.createDelegate(this, =
this._onPageRequestManagerEndRequest);
            =
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endReq=
uestHandler);
        }
       =20
        var loadedEntry =3D this.get_stateString();
        if (loadedEntry !=3D=3D this._currentEntry) {
            this._navigate(loadedEntry);
        }
=20
        this.raiseLoad();
        this._initializing =3D false;
    }
    function Sys$_Application$_enableHistoryInScriptManager() {
        this._enableHistory =3D true;
        this._historyEnabledInScriptManager =3D true;
    }
    function Sys$_Application$_ensureHistory() {
        if (!this._historyInitialized && this._enableHistory) {
            if ((Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) && (Sys.Browser.documentMode < 8)) {
                this._historyFrame =3D =
document.getElementById('__historyFrame');
                if (!this._historyFrame) throw =
Error.invalidOperation(Sys.Res.historyMissingFrame);
                this._ignoreIFrame =3D true;
            }
            if (this._isSafari2()) {
                var historyElement =3D =
document.getElementById('__history');
                if (!historyElement) throw =
Error.invalidOperation(Sys.Res.historyMissingHiddenInput);
                this._setHistory([window.location.hash]);
                this._historyInitialLength =3D window.history.length;
            }
           =20
            this._timerHandler =3D Function.createDelegate(this, =
this._onIdle);
            this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
           =20
            try {
                this._initialState =3D =
this._deserializeState(this.get_stateString());
            } catch(e) {}
           =20
            this._historyInitialized =3D true;
        }
    }
    function Sys$_Application$_getHistory() {
        var historyElement =3D document.getElementById('__history');
        if (!historyElement) return '';
        var v =3D historyElement.value;
        return v ? Sys.Serialization.JavaScriptSerializer.deserialize(v, =
true) : '';
    }
    function Sys$_Application$_isSafari2() {
        return (Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) &&
            (Sys.Browser.version <=3D 419.3);
    }
    function Sys$_Application$_loadHandler() {
        if(this._loadHandlerDelegate) {
            Sys.UI.DomEvent.removeHandler(window, "load", =
this._loadHandlerDelegate);
            this._loadHandlerDelegate =3D null;
        }
        this.initialize();
    }
    function Sys$_Application$_navigate(entry) {
        this._ensureHistory();
        var state =3D this._deserializeState(entry);
       =20
        if (this._uniqueId) {
            var oldServerEntry =3D this._state.__s || '';
            var newServerEntry =3D state.__s || '';
            if (newServerEntry !=3D=3D oldServerEntry) {
                this._updateHiddenField(newServerEntry);
                __doPostBack(this._uniqueId, newServerEntry);
                this._state =3D state;
                return;
            }
        }
        this._setState(entry);
        this._state =3D state;
        this._raiseNavigate();
    }
    function Sys$_Application$_onIdle() {
        delete this._timerCookie;
       =20
        var entry =3D this.get_stateString();
        if (entry !=3D=3D this._currentEntry) {
            if (!this._ignoreTimer) {
                this._historyPointIsNew =3D false;
                this._navigate(entry);
                this._historyLength =3D window.history.length;
            }
        }
        else {
            this._ignoreTimer =3D false;
        }
        this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
    }
    function Sys$_Application$_onIFrameLoad(entry) {
        this._ensureHistory();
        if (!this._ignoreIFrame) {
            this._historyPointIsNew =3D false;
            this._navigate(entry);
        }
        this._ignoreIFrame =3D false;
    }
    function Sys$_Application$_onPageRequestManagerBeginRequest(sender, =
args) {
        this._ignoreTimer =3D true;
    }
    function Sys$_Application$_onPageRequestManagerEndRequest(sender, =
args) {
        var dataItem =3D args.get_dataItems()[this._clientId];
        var eventTarget =3D document.getElementById("__EVENTTARGET");
        if (eventTarget && eventTarget.value =3D=3D=3D this._uniqueId) {
            eventTarget.value =3D '';
        }
        if (typeof(dataItem) !=3D=3D 'undefined') {
            this.setServerState(dataItem);
            this._historyPointIsNew =3D true;
        }
        else {
            this._ignoreTimer =3D false;
        }
        var entry =3D this._serializeState(this._state);
        if (entry !=3D=3D this._currentEntry) {
            this._ignoreTimer =3D true;
            this._setState(entry);
            this._raiseNavigate();
        }
    }
    function Sys$_Application$_raiseNavigate() {
        var h =3D this.get_events().getHandler("navigate");
        var stateClone =3D {};
        for (var key in this._state) {
            if (key !=3D=3D '__s') {
                stateClone[key] =3D this._state[key];
            }
        }
        var args =3D new Sys.HistoryEventArgs(stateClone);
        if (h) {
            h(this, args);
        }
    }
    function Sys$_Application$_serializeState(state) {
        var serialized =3D [];
        for (var key in state) {
            var value =3D state[key];
            if (key =3D=3D=3D '__s') {
                var serverState =3D value;
            }
            else {
                if (key.indexOf('=3D') !=3D=3D -1) throw =
Error.argument('state', Sys.Res.stateFieldNameInvalid);
                serialized[serialized.length] =3D key + '=3D' + =
encodeURIComponent(value);
            }
        }
        return serialized.join('&') + (serverState ? '&&' + serverState =
: '');
    }
    function Sys$_Application$_setHistory(historyArray) {
        var historyElement =3D document.getElementById('__history');
        if (historyElement) {
            historyElement.value =3D =
Sys.Serialization.JavaScriptSerializer.serialize(historyArray);
        }
    }
    function Sys$_Application$_setState(entry, title) {
        entry =3D entry || '';
        if (entry !=3D=3D this._currentEntry) {
            if (window.theForm) {
                var action =3D window.theForm.action;
                var hashIndex =3D action.indexOf('#');
                window.theForm.action =3D ((hashIndex !=3D=3D -1) ? =
action.substring(0, hashIndex) : action) + '#' + entry;
            }
           =20
            if (this._historyFrame && this._historyPointIsNew) {
                this._ignoreIFrame =3D true;
                this._historyPointIsNew =3D false;
                var frameDoc =3D =
this._historyFrame.contentWindow.document;
                frameDoc.open("javascript:'<html></html>'");
                frameDoc.write("<html><head><title>" + (title || =
document.title) +
                    "</title><scri" + "pt =
type=3D\"text/javascript\">parent.Sys.Application._onIFrameLoad('" +=20
                    entry + "');</scri" + =
"pt></head><body></body></html>");
                frameDoc.close();
            }
            this._ignoreTimer =3D false;
            var currentHash =3D this.get_stateString();
            this._currentEntry =3D entry;
            if (entry !=3D=3D currentHash) {
                var loc =3D document.location;
                if (loc.href.length - loc.hash.length + entry.length > =
1024) {
                    throw =
Error.invalidOperation(Sys.Res.urlMustBeLessThan1024chars);
                }
                if (this._isSafari2()) {
                    var history =3D this._getHistory();
                    history[window.history.length - =
this._historyInitialLength + 1] =3D entry;
                    this._setHistory(history);
                    this._historyLength =3D window.history.length + 1;
                    var form =3D document.createElement('form');
                    form.method =3D 'get';
                    form.action =3D '#' + entry;
                    document.appendChild(form);
                    form.submit();
                    document.removeChild(form);
                }
                else {
                    window.location.hash =3D entry;
                }
                if ((typeof(title) !=3D=3D 'undefined') && (title =
!=3D=3D null)) {
                    document.title =3D title;
                }
            }
        }
    }
    function Sys$_Application$_unloadHandler(event) {
        this.dispose();
    }
    function Sys$_Application$_updateHiddenField(value) {
        if (this._clientId) {
            var serverStateField =3D =
document.getElementById(this._clientId);
            if (serverStateField) {
                serverStateField.value =3D value;
            }
        }
    }
Sys._Application.prototype =3D {
    _creatingComponents: false,
    _disposing: false,
    get_isCreatingComponents: Sys$_Application$get_isCreatingComponents,
    get_stateString: Sys$_Application$get_stateString,
    get_enableHistory: Sys$_Application$get_enableHistory,
    set_enableHistory: Sys$_Application$set_enableHistory,
    add_init: Sys$_Application$add_init,
    remove_init: Sys$_Application$remove_init,
    add_load: Sys$_Application$add_load,
    remove_load: Sys$_Application$remove_load,
    add_navigate: Sys$_Application$add_navigate,
    remove_navigate: Sys$_Application$remove_navigate,
    add_unload: Sys$_Application$add_unload,
    remove_unload: Sys$_Application$remove_unload,
    addComponent: Sys$_Application$addComponent,
    addHistoryPoint: Sys$_Application$addHistoryPoint,
    beginCreateComponents: Sys$_Application$beginCreateComponents,
    dispose: Sys$_Application$dispose,
    endCreateComponents: Sys$_Application$endCreateComponents,
    findComponent: Sys$_Application$findComponent,
    getComponents: Sys$_Application$getComponents,
    initialize: Sys$_Application$initialize,
    notifyScriptLoaded: Sys$_Application$notifyScriptLoaded,
    registerDisposableObject: Sys$_Application$registerDisposableObject,
    raiseLoad: Sys$_Application$raiseLoad,
    removeComponent: Sys$_Application$removeComponent,
    setServerId: Sys$_Application$setServerId,
    setServerState: Sys$_Application$setServerState,
    unregisterDisposableObject: =
Sys$_Application$unregisterDisposableObject,
    _addComponentToSecondPass: =
Sys$_Application$_addComponentToSecondPass,
    _deserializeState: Sys$_Application$_deserializeState,
    _doInitialize: Sys$_Application$_doInitialize,
    _enableHistoryInScriptManager: =
Sys$_Application$_enableHistoryInScriptManager,   =20
    _ensureHistory: Sys$_Application$_ensureHistory,
    _getHistory: Sys$_Application$_getHistory,
    _isSafari2: Sys$_Application$_isSafari2,
    _loadHandler: Sys$_Application$_loadHandler,
    _navigate: Sys$_Application$_navigate,
    _onIdle: Sys$_Application$_onIdle,
    _onIFrameLoad: Sys$_Application$_onIFrameLoad,
    _onPageRequestManagerBeginRequest: =
Sys$_Application$_onPageRequestManagerBeginRequest,
    _onPageRequestManagerEndRequest: =
Sys$_Application$_onPageRequestManagerEndRequest,
    _raiseNavigate: Sys$_Application$_raiseNavigate,
    _serializeState: Sys$_Application$_serializeState,
    _setHistory: Sys$_Application$_setHistory,
    _setState: Sys$_Application$_setState,
    _unloadHandler: Sys$_Application$_unloadHandler,
    _updateHiddenField: Sys$_Application$_updateHiddenField
}
Sys._Application.registerClass('Sys._Application', Sys.Component, =
Sys.IContainer);
Sys.Application =3D new Sys._Application();
var $find =3D Sys.Application.findComponent;
Type.registerNamespace('Sys.Net');
=20
Sys.Net.WebRequestExecutor =3D function Sys$Net$WebRequestExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._webRequest =3D null;
    this._resultObject =3D null;
}
    function Sys$Net$WebRequestExecutor$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.webRequest"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
    function Sys$Net$WebRequestExecutor$_set_webRequest(value) {
        if (this.get_started()) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'set_webRequest'));
        }
        this._webRequest =3D value;
    }
    function Sys$Net$WebRequestExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.started"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseAvailable"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.aborted"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseData"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusText"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.WebRequestExecutor.xml"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_object() {
        /// <value =
locid=3D"P:J#Sys.Net.WebRequestExecutor.object"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._resultObject) {
            this._resultObject =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData(=
));
        }
        return this._resultObject;
    }
    function Sys$Net$WebRequestExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.executeRequest" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.abort" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getResponseHeader" />
        /// <param name=3D"header" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getAllResponseHeaders" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
Sys.Net.WebRequestExecutor.prototype =3D {
    get_webRequest: Sys$Net$WebRequestExecutor$get_webRequest,
    _set_webRequest: Sys$Net$WebRequestExecutor$_set_webRequest,
    get_started: Sys$Net$WebRequestExecutor$get_started,
    get_responseAvailable: =
Sys$Net$WebRequestExecutor$get_responseAvailable,
    get_timedOut: Sys$Net$WebRequestExecutor$get_timedOut,
    get_aborted: Sys$Net$WebRequestExecutor$get_aborted,
    get_responseData: Sys$Net$WebRequestExecutor$get_responseData,
    get_statusCode: Sys$Net$WebRequestExecutor$get_statusCode,
    get_statusText: Sys$Net$WebRequestExecutor$get_statusText,
    get_xml: Sys$Net$WebRequestExecutor$get_xml,
    get_object: Sys$Net$WebRequestExecutor$get_object,
    executeRequest: Sys$Net$WebRequestExecutor$executeRequest,
    abort: Sys$Net$WebRequestExecutor$abort,
    getResponseHeader: Sys$Net$WebRequestExecutor$getResponseHeader,
    getAllResponseHeaders: =
Sys$Net$WebRequestExecutor$getAllResponseHeaders
}
Sys.Net.WebRequestExecutor.registerClass('Sys.Net.WebRequestExecutor');
=20
Sys.Net.XMLDOM =3D function Sys$Net$XMLDOM(markup) {
    /// <summary locid=3D"M:J#Sys.Net.XMLDOM.#ctor" />
    /// <param name=3D"markup" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "markup", type: String}
    ]);
    if (e) throw e;
    if (!window.DOMParser) {
        var progIDs =3D [ 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' =
];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                var xmlDOM =3D new ActiveXObject(progIDs[i]);
                xmlDOM.async =3D false;
                xmlDOM.loadXML(markup);
                xmlDOM.setProperty('SelectionLanguage', 'XPath');
                return xmlDOM;
            }
            catch (ex) {
            }
        }
    }
    else {
        try {
            var domParser =3D new window.DOMParser();
            return domParser.parseFromString(markup, 'text/xml');
        }
        catch (ex) {
        }
    }
    return null;
}
Sys.Net.XMLHttpExecutor =3D function Sys$Net$XMLHttpExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Net.XMLHttpExecutor.initializeBase(this);
    var _this =3D this;
    this._xmlHttpRequest =3D null;
    this._webRequest =3D null;
    this._responseAvailable =3D false;
    this._timedOut =3D false;
    this._timer =3D null;
    this._aborted =3D false;
    this._started =3D false;
    this._onReadyStateChange =3D (function () {
       =20
        if (_this._xmlHttpRequest.readyState =3D=3D=3D 4 ) {
            try {
                if (typeof(_this._xmlHttpRequest.status) =3D=3D=3D =
"undefined") {
                    return;
                }
            }
            catch(ex) {
                return;
            }
           =20
            _this._clearTimer();
            _this._responseAvailable =3D true;
            try {
                _this._webRequest.completed(Sys.EventArgs.Empty);
            }
            finally {
                if (_this._xmlHttpRequest !=3D null) {
                    _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
                    _this._xmlHttpRequest =3D null;
                }
            }
        }
    });
    this._clearTimer =3D (function() {
        if (_this._timer !=3D null) {
            window.clearTimeout(_this._timer);
            _this._timer =3D null;
        }
    });
    this._onTimeout =3D (function() {
        if (!_this._responseAvailable) {
            _this._clearTimer();
            _this._timedOut =3D true;
            _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
            _this._xmlHttpRequest.abort();
            _this._webRequest.completed(Sys.EventArgs.Empty);
            _this._xmlHttpRequest =3D null;
        }
    });
}
    function Sys$Net$XMLHttpExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    }
    function Sys$Net$XMLHttpExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.started"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._started;
    }
    function Sys$Net$XMLHttpExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseAvailable"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._responseAvailable;
    }
    function Sys$Net$XMLHttpExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.aborted"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._aborted;
    }
    function Sys$Net$XMLHttpExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.executeRequest" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._webRequest =3D this.get_webRequest();
        if (this._started) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'executeRequest'));
        }
        if (this._webRequest =3D=3D=3D null) {
            throw Error.invalidOperation(Sys.Res.nullWebRequest);
        }
        var body =3D this._webRequest.get_body();
        var headers =3D this._webRequest.get_headers();
        this._xmlHttpRequest =3D new XMLHttpRequest();
        this._xmlHttpRequest.onreadystatechange =3D =
this._onReadyStateChange;
        var verb =3D this._webRequest.get_httpVerb();
        this._xmlHttpRequest.open(verb, =
this._webRequest.getResolvedUrl(), true );
        if (headers) {
            for (var header in headers) {
                var val =3D headers[header];
                if (typeof(val) !=3D=3D "function")
                    this._xmlHttpRequest.setRequestHeader(header, val);
            }
        }
        if (verb.toLowerCase() =3D=3D=3D "post") {
            if ((headers =3D=3D=3D null) || !headers['Content-Type']) {
                this._xmlHttpRequest.setRequestHeader('Content-Type', =
'application/x-www-form-urlencoded; charset=3Dutf-8');
            }
            if (!body) {
                body =3D "";
            }
        }
        var timeout =3D this._webRequest.get_timeout();
        if (timeout > 0) {
            this._timer =3D =
window.setTimeout(Function.createDelegate(this, this._onTimeout), =
timeout);
        }
        this._xmlHttpRequest.send(body);
        this._started =3D true;
    }
    function Sys$Net$XMLHttpExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getResponseHeader" />
        /// <param name=3D"header" type=3D"String"></param>
        /// <returns type=3D"String"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getResponseHeader'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getResponseHeader'));
        }
        var result;
        try {
            result =3D this._xmlHttpRequest.getResponseHeader(header);
        } catch (e) {
        }
        if (!result) result =3D "";
        return result;
    }
    function Sys$Net$XMLHttpExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getAllResponseHeaders" />
        /// <returns type=3D"String"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getAllResponseHeaders'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getAllResponseHeaders'));
        }
        return this._xmlHttpRequest.getAllResponseHeaders();
    }
    function Sys$Net$XMLHttpExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseData"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_responseData'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_responseData'));
        }
        return this._xmlHttpRequest.responseText;
    }
    function Sys$Net$XMLHttpExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusCode'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusCode'));
        }
        var result =3D 0;
        try {
            result =3D this._xmlHttpRequest.status;
        }
        catch(ex) {
        }
        return result;
    }
    function Sys$Net$XMLHttpExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusText"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusText'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusText'));
        }
        return this._xmlHttpRequest.statusText;
    }
    function Sys$Net$XMLHttpExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.XMLHttpExecutor.xml"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_xml'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_xml'));
        }
        var xml =3D this._xmlHttpRequest.responseXML;
        if (!xml || !xml.documentElement) {
            xml =3D Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);
            if (!xml || !xml.documentElement)
                return null;
        }
        else if (navigator.userAgent.indexOf('MSIE') !=3D=3D -1) {
            xml.setProperty('SelectionLanguage', 'XPath');
        }
        if (xml.documentElement.namespaceURI =3D=3D=3D =
"http://www.mozilla.org/newlayout/xml/parsererror.xml" &&
            xml.documentElement.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        if (xml.documentElement.firstChild && =
xml.documentElement.firstChild.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        return xml;
    }
    function Sys$Net$XMLHttpExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.abort" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._started) {
            throw =
Error.invalidOperation(Sys.Res.cannotAbortBeforeStart);
        }
        if (this._aborted || this._responseAvailable || this._timedOut)
            return;
        this._aborted =3D true;
        this._clearTimer();
        if (this._xmlHttpRequest && !this._responseAvailable) {
            this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
            this._xmlHttpRequest.abort();
           =20
            this._xmlHttpRequest =3D null;           =20
            this._webRequest.completed(Sys.EventArgs.Empty);
        }
    }
Sys.Net.XMLHttpExecutor.prototype =3D {
    get_timedOut: Sys$Net$XMLHttpExecutor$get_timedOut,
    get_started: Sys$Net$XMLHttpExecutor$get_started,
    get_responseAvailable: =
Sys$Net$XMLHttpExecutor$get_responseAvailable,
    get_aborted: Sys$Net$XMLHttpExecutor$get_aborted,
    executeRequest: Sys$Net$XMLHttpExecutor$executeRequest,
    getResponseHeader: Sys$Net$XMLHttpExecutor$getResponseHeader,
    getAllResponseHeaders: =
Sys$Net$XMLHttpExecutor$getAllResponseHeaders,
    get_responseData: Sys$Net$XMLHttpExecutor$get_responseData,
    get_statusCode: Sys$Net$XMLHttpExecutor$get_statusCode,
    get_statusText: Sys$Net$XMLHttpExecutor$get_statusText,
    get_xml: Sys$Net$XMLHttpExecutor$get_xml,
    abort: Sys$Net$XMLHttpExecutor$abort
}
Sys.Net.XMLHttpExecutor.registerClass('Sys.Net.XMLHttpExecutor', =
Sys.Net.WebRequestExecutor);
=20
Sys.Net._WebRequestManager =3D function Sys$Net$_WebRequestManager() {
    /// <summary locid=3D"P:J#Sys.Net.WebRequestManager.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._defaultTimeout =3D 0;
    this._defaultExecutorType =3D "Sys.Net.XMLHttpExecutor";
}
    function Sys$Net$_WebRequestManager$add_invokingRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.invokingRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("invokingRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$remove_invokingRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("invokingRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$add_completedRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.completedRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("completedRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$remove_completedRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("completedRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Net$_WebRequestManager$get_defaultTimeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultTimeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultTimeout;
    }
    function Sys$Net$_WebRequestManager$set_defaultTimeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }
        this._defaultTimeout =3D value;
    }
    function Sys$Net$_WebRequestManager$get_defaultExecutorType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultExecutorType"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultExecutorType;
    }
    function Sys$Net$_WebRequestManager$set_defaultExecutorType(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._defaultExecutorType =3D value;
    }
    function Sys$Net$_WebRequestManager$executeRequest(webRequest) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestManager.executeRequest" />
        /// <param name=3D"webRequest" =
type=3D"Sys.Net.WebRequest"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "webRequest", type: Sys.Net.WebRequest}
        ]);
        if (e) throw e;
        var executor =3D webRequest.get_executor();
        if (!executor) {
            var failed =3D false;
            try {
                var executorType =3D eval(this._defaultExecutorType);
                executor =3D new executorType();
            } catch (e) {
                failed =3D true;
            }
            if (failed  || =
!Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) {
                throw Error.argument("defaultExecutorType", =
String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType));
            }
            webRequest.set_executor(executor);
        }
        if (executor.get_aborted()) {
            return;
        }
        var evArgs =3D new Sys.Net.NetworkRequestEventArgs(webRequest);
        var handler =3D =
this._get_eventHandlerList().getHandler("invokingRequest");
        if (handler) {
            handler(this, evArgs);
        }
        if (!evArgs.get_cancel()) {
            executor.executeRequest();
        }
    }
Sys.Net._WebRequestManager.prototype =3D {
    add_invokingRequest: Sys$Net$_WebRequestManager$add_invokingRequest,
    remove_invokingRequest: =
Sys$Net$_WebRequestManager$remove_invokingRequest,
    add_completedRequest: =
Sys$Net$_WebRequestManager$add_completedRequest,
    remove_completedRequest: =
Sys$Net$_WebRequestManager$remove_completedRequest,
    _get_eventHandlerList: =
Sys$Net$_WebRequestManager$_get_eventHandlerList,
    get_defaultTimeout: Sys$Net$_WebRequestManager$get_defaultTimeout,
    set_defaultTimeout: Sys$Net$_WebRequestManager$set_defaultTimeout,
    get_defaultExecutorType: =
Sys$Net$_WebRequestManager$get_defaultExecutorType,
    set_defaultExecutorType: =
Sys$Net$_WebRequestManager$set_defaultExecutorType,
    executeRequest: Sys$Net$_WebRequestManager$executeRequest
}
Sys.Net._WebRequestManager.registerClass('Sys.Net._WebRequestManager');
Sys.Net.WebRequestManager =3D new Sys.Net._WebRequestManager();
=20
Sys.Net.NetworkRequestEventArgs =3D function =
Sys$Net$NetworkRequestEventArgs(webRequest) {
    /// <summary locid=3D"M:J#Sys.Net.NetworkRequestEventArgs.#ctor" />
    /// <param name=3D"webRequest" type=3D"Sys.Net.WebRequest"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "webRequest", type: Sys.Net.WebRequest}
    ]);
    if (e) throw e;
    Sys.Net.NetworkRequestEventArgs.initializeBase(this);
    this._webRequest =3D webRequest;
}
    function Sys$Net$NetworkRequestEventArgs$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.NetworkRequestEventArgs.webRequest"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
Sys.Net.NetworkRequestEventArgs.prototype =3D {
    get_webRequest: Sys$Net$NetworkRequestEventArgs$get_webRequest
}
Sys.Net.NetworkRequestEventArgs.registerClass('Sys.Net.NetworkRequestEven=
tArgs', Sys.CancelEventArgs);
=20
Sys.Net.WebRequest =3D function Sys$Net$WebRequest() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequest.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._url =3D "";
    this._headers =3D { };
    this._body =3D null;
    this._userContext =3D null;
    this._httpVerb =3D null;
    this._executor =3D null;
    this._invokeCalled =3D false;
    this._timeout =3D 0;
}
    function Sys$Net$WebRequest$add_completed(handler) {
    /// <summary locid=3D"E:J#Sys.Net.WebRequest.completed" />
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        this._get_eventHandlerList().addHandler("completed", handler);
    }
    function Sys$Net$WebRequest$remove_completed(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        this._get_eventHandlerList().removeHandler("completed", =
handler);
    }
    function Sys$Net$WebRequest$completed(eventArgs) {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.completed" />
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventArgs", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        var handler =3D =
Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRe=
quest");
        if (handler) {
            handler(this._executor, eventArgs);
        }
        handler =3D =
this._get_eventHandlerList().getHandler("completed");
        if (handler) {
            handler(this._executor, eventArgs);
        }
    }
    function Sys$Net$WebRequest$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Net$WebRequest$get_url() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.url"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._url;
    }
    function Sys$Net$WebRequest$set_url(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._url =3D value;
    }
    function Sys$Net$WebRequest$get_headers() {
        /// <value locid=3D"P:J#Sys.Net.WebRequest.headers"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._headers;
    }
    function Sys$Net$WebRequest$get_httpVerb() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.httpVerb"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._httpVerb =3D=3D=3D null) {
            if (this._body =3D=3D=3D null) {
                return "GET";
            }
            return "POST";
        }
        return this._httpVerb;
    }
    function Sys$Net$WebRequest$set_httpVerb(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (value.length =3D=3D=3D 0) {
            throw Error.argument('value', Sys.Res.invalidHttpVerb);
        }
        this._httpVerb =3D value;
    }
    function Sys$Net$WebRequest$get_body() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.body"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._body;
    }
    function Sys$Net$WebRequest$set_body(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._body =3D value;
    }
    function Sys$Net$WebRequest$get_userContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.userContext"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    }
    function Sys$Net$WebRequest$set_userContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    }
    function Sys$Net$WebRequest$get_executor() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.Net.WebRequest.executor"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._executor;
    }
    function Sys$Net$WebRequest$set_executor(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.Net.WebRequestExecutor}]);
        if (e) throw e;
        if (this._executor !=3D=3D null && this._executor.get_started()) =
{
            throw =
Error.invalidOperation(Sys.Res.setExecutorAfterActive);
        }
        this._executor =3D value;
        this._executor._set_webRequest(this);
    }
    function Sys$Net$WebRequest$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequest.timeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._timeout =3D=3D=3D 0) {
            return Sys.Net.WebRequestManager.get_defaultTimeout();
        }
        return this._timeout;
    }
    function Sys$Net$WebRequest$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }
        this._timeout =3D value;
    }
    function Sys$Net$WebRequest$getResolvedUrl() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.getResolvedUrl" />
        /// <returns type=3D"String"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Sys.Net.WebRequest._resolveUrl(this._url);
    }
    function Sys$Net$WebRequest$invoke() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.invoke" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._invokeCalled) {
            throw Error.invalidOperation(Sys.Res.invokeCalledTwice);
        }
        Sys.Net.WebRequestManager.executeRequest(this);
        this._invokeCalled =3D true;
    }
Sys.Net.WebRequest.prototype =3D {
    add_completed: Sys$Net$WebRequest$add_completed,
    remove_completed: Sys$Net$WebRequest$remove_completed,
    completed: Sys$Net$WebRequest$completed,
    _get_eventHandlerList: Sys$Net$WebRequest$_get_eventHandlerList,
    get_url: Sys$Net$WebRequest$get_url,
    set_url: Sys$Net$WebRequest$set_url,
    get_headers: Sys$Net$WebRequest$get_headers,
    get_httpVerb: Sys$Net$WebRequest$get_httpVerb,
    set_httpVerb: Sys$Net$WebRequest$set_httpVerb,
    get_body: Sys$Net$WebRequest$get_body,
    set_body: Sys$Net$WebRequest$set_body,
    get_userContext: Sys$Net$WebRequest$get_userContext,
    set_userContext: Sys$Net$WebRequest$set_userContext,
    get_executor: Sys$Net$WebRequest$get_executor,
    set_executor: Sys$Net$WebRequest$set_executor,
    get_timeout: Sys$Net$WebRequest$get_timeout,
    set_timeout: Sys$Net$WebRequest$set_timeout,
    getResolvedUrl: Sys$Net$WebRequest$getResolvedUrl,
    invoke: Sys$Net$WebRequest$invoke
}
Sys.Net.WebRequest._resolveUrl =3D function =
Sys$Net$WebRequest$_resolveUrl(url, baseUrl) {
    if (url && url.indexOf('://') !=3D=3D -1) {
        return url;
    }
    if (!baseUrl || baseUrl.length =3D=3D=3D 0) {
        var baseElement =3D document.getElementsByTagName('base')[0];
        if (baseElement && baseElement.href && baseElement.href.length > =
0) {
            baseUrl =3D baseElement.href;
        }
        else {
            baseUrl =3D document.URL;
        }
    }
    var qsStart =3D baseUrl.indexOf('?');
    if (qsStart !=3D=3D -1) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    qsStart =3D baseUrl.indexOf('#');
    if (qsStart !=3D=3D -1) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    baseUrl =3D baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);
    if (!url || url.length =3D=3D=3D 0) {
        return baseUrl;
    }
    if (url.charAt(0) =3D=3D=3D '/') {
        var slashslash =3D baseUrl.indexOf('://');
        if (slashslash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl1);
        }
        var nextSlash =3D baseUrl.indexOf('/', slashslash + 3);
        if (nextSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl2);
        }
        return baseUrl.substr(0, nextSlash) + url;
    }
    else {
        var lastSlash =3D baseUrl.lastIndexOf('/');
        if (lastSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl3);
        }
        return baseUrl.substr(0, lastSlash+1) + url;
    }
}
Sys.Net.WebRequest._createQueryString =3D function =
Sys$Net$WebRequest$_createQueryString(queryString, encodeMethod) {
    if (!encodeMethod)
        encodeMethod =3D encodeURIComponent;
    var sb =3D new Sys.StringBuilder();
    var i =3D 0;
    for (var arg in queryString) {
        var obj =3D queryString[arg];
        if (typeof(obj) =3D=3D=3D "function") continue;
        var val =3D =
Sys.Serialization.JavaScriptSerializer.serialize(obj);
        if (i !=3D=3D 0) {
            sb.append('&');
        }
        sb.append(arg);
        sb.append('=3D');
        sb.append(encodeMethod(val));
        i++;
    }
    return sb.toString();
}
Sys.Net.WebRequest._createUrl =3D function =
Sys$Net$WebRequest$_createUrl(url, queryString) {
    if (!queryString) {
        return url;
    }
    var qs =3D Sys.Net.WebRequest._createQueryString(queryString);
    if (qs.length > 0) {
        var sep =3D '?';
        if (url && url.indexOf('?') !=3D=3D -1)
            sep =3D '&';
        return url + sep + qs;
    } else {
        return url;
    }
}
Sys.Net.WebRequest.registerClass('Sys.Net.WebRequest');
=20
Sys.Net.WebServiceProxy =3D function Sys$Net$WebServiceProxy() {
}
    function Sys$Net$WebServiceProxy$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceProxy.timeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timeout;
    }
    function Sys$Net$WebServiceProxy$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) { throw Error.argumentOutOfRange('value', value, =
Sys.Res.invalidTimeout); }
        this._timeout =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultUserContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultUserContext"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    }
    function Sys$Net$WebServiceProxy$set_defaultUserContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultSucceededCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultSucceededCallback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._succeeded;
    }
    function Sys$Net$WebServiceProxy$set_defaultSucceededCallback(value) =
{
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._succeeded =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultFailedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultFailedCallback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._failed;
    }
    function Sys$Net$WebServiceProxy$set_defaultFailedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._failed =3D value;
    }
    function Sys$Net$WebServiceProxy$get_path() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceProxy.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path;
    }
    function Sys$Net$WebServiceProxy$set_path(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._path =3D value;
    }
    function Sys$Net$WebServiceProxy$_invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext) {
        /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy._invoke" />
        /// <param name=3D"servicePath" type=3D"String"></param>
        /// <param name=3D"methodName" type=3D"String"></param>
        /// <param name=3D"useGet" type=3D"Boolean"></param>
        /// <param name=3D"params"></param>
        /// <param name=3D"onSuccess" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"onFailure" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true"></param>
        /// <returns type=3D"Sys.Net.WebRequest"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "servicePath", type: String},
            {name: "methodName", type: String},
            {name: "useGet", type: Boolean},
            {name: "params"},
            {name: "onSuccess", type: Function, mayBeNull: true, =
optional: true},
            {name: "onFailure", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        if (onSuccess =3D=3D=3D null || typeof onSuccess =3D=3D=3D =
'undefined') onSuccess =3D this.get_defaultSucceededCallback();
        if (onFailure =3D=3D=3D null || typeof onFailure =3D=3D=3D =
'undefined') onFailure =3D this.get_defaultFailedCallback();
        if (userContext =3D=3D=3D null || typeof userContext =3D=3D=3D =
'undefined') userContext =3D this.get_defaultUserContext();
       =20
        return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext, this.get_timeout());
    }
Sys.Net.WebServiceProxy.prototype =3D {
    get_timeout: Sys$Net$WebServiceProxy$get_timeout,
    set_timeout: Sys$Net$WebServiceProxy$set_timeout,
    get_defaultUserContext: =
Sys$Net$WebServiceProxy$get_defaultUserContext,
    set_defaultUserContext: =
Sys$Net$WebServiceProxy$set_defaultUserContext,
    get_defaultSucceededCallback: =
Sys$Net$WebServiceProxy$get_defaultSucceededCallback,
    set_defaultSucceededCallback: =
Sys$Net$WebServiceProxy$set_defaultSucceededCallback,
    get_defaultFailedCallback: =
Sys$Net$WebServiceProxy$get_defaultFailedCallback,
    set_defaultFailedCallback: =
Sys$Net$WebServiceProxy$set_defaultFailedCallback,
    get_path: Sys$Net$WebServiceProxy$get_path,
    set_path: Sys$Net$WebServiceProxy$set_path,
    _invoke: Sys$Net$WebServiceProxy$_invoke
}
Sys.Net.WebServiceProxy.registerClass('Sys.Net.WebServiceProxy');
Sys.Net.WebServiceProxy.invoke =3D function =
Sys$Net$WebServiceProxy$invoke(servicePath, methodName, useGet, params, =
onSuccess, onFailure, userContext, timeout) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy.invoke" />
    /// <param name=3D"servicePath" type=3D"String"></param>
    /// <param name=3D"methodName" type=3D"String"></param>
    /// <param name=3D"useGet" type=3D"Boolean" =
optional=3D"true"></param>
    /// <param name=3D"params" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"onSuccess" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"onFailure" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"timeout" type=3D"Number" =
optional=3D"true"></param>
    /// <returns type=3D"Sys.Net.WebRequest"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "servicePath", type: String},
        {name: "methodName", type: String},
        {name: "useGet", type: Boolean, optional: true},
        {name: "params", mayBeNull: true, optional: true},
        {name: "onSuccess", type: Function, mayBeNull: true, optional: =
true},
        {name: "onFailure", type: Function, mayBeNull: true, optional: =
true},
        {name: "userContext", mayBeNull: true, optional: true},
        {name: "timeout", type: Number, optional: true}
    ]);
    if (e) throw e;
    var request =3D new Sys.Net.WebRequest();
    request.get_headers()['Content-Type'] =3D 'application/json; =
charset=3Dutf-8';
    if (!params) params =3D {};
    var urlParams =3D params;
    if (!useGet || !urlParams) urlParams =3D {};
    =
request.set_url(Sys.Net.WebRequest._createUrl(servicePath+"/"+encodeURICo=
mponent(methodName), urlParams));
    var body =3D null;
    if (!useGet) {
        body =3D =
Sys.Serialization.JavaScriptSerializer.serialize(params);
        if (body =3D=3D=3D "{}") body =3D "";
    }
    request.set_body(body);
    request.add_completed(onComplete);
    if (timeout && timeout > 0) request.set_timeout(timeout);
    request.invoke();
    function onComplete(response, eventArgs) {
        if (response.get_responseAvailable()) {
            var statusCode =3D response.get_statusCode();
            var result =3D null;
          =20
            try {
                var contentType =3D =
response.getResponseHeader("Content-Type");
                if (contentType.startsWith("application/json")) {
                    result =3D response.get_object();
                }
                else if (contentType.startsWith("text/xml")) {
                    result =3D response.get_xml();
                }
                else {
                    result =3D response.get_responseData();
                }
            } catch (ex) {
            }
            var error =3D response.getResponseHeader("jsonerror");
            var errorObj =3D (error =3D=3D=3D "true");
            if (errorObj) {
                if (result) {
                    result =3D new Sys.Net.WebServiceError(false, =
result.Message, result.StackTrace, result.ExceptionType);
                }
            }
            else if (contentType.startsWith("application/json")) {
                if (!result || typeof(result.d) =3D=3D=3D "undefined") {
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceInvalidJsonWrapper, methodName));
                }
                result =3D result.d;
            }
            if (((statusCode < 200) || (statusCode >=3D 300)) || =
errorObj) {
                if (onFailure) {
                    if (!result || !errorObj) {
                        result =3D new Sys.Net.WebServiceError(false , =
String.format(Sys.Res.webServiceFailedNoMsg, methodName), "", "");
                    }
                    result._statusCode =3D statusCode;
                    onFailure(result, userContext, methodName);
                }
                else {
                    var error;
                    if (result && errorObj) {
                        error =3D result.get_exceptionType() + "-- " + =
result.get_message();
                    }
                    else {
                        error =3D response.get_responseData();
                    }
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
                }
            }
            else if (onSuccess) {
                onSuccess(result, userContext, methodName);
            }
        }
        else {
            var msg;
            if (response.get_timedOut()) {
                msg =3D String.format(Sys.Res.webServiceTimedOut, =
methodName);
            }
            else {
                msg =3D String.format(Sys.Res.webServiceFailedNoMsg, =
methodName)
            }
            if (onFailure) {
                onFailure(new =
Sys.Net.WebServiceError(response.get_timedOut(), msg, "", ""), =
userContext, methodName);
            }
            else {
                throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, msg);
            }
        }
    }
    return request;
}
Sys.Net.WebServiceProxy._createFailedError =3D function =
Sys$Net$WebServiceProxy$_createFailedError(methodName, errorMessage) {
    var displayMessage =3D "Sys.Net.WebServiceFailedException: " + =
errorMessage;
    var e =3D Error.create(displayMessage, { 'name': =
'Sys.Net.WebServiceFailedException', 'methodName': methodName });
    e.popStackFrame();
    return e;
}
Sys.Net.WebServiceProxy._defaultFailedCallback =3D function =
Sys$Net$WebServiceProxy$_defaultFailedCallback(err, methodName) {
    var error =3D err.get_exceptionType() + "-- " + err.get_message();
    throw Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
}
Sys.Net.WebServiceProxy._generateTypedConstructor =3D function =
Sys$Net$WebServiceProxy$_generateTypedConstructor(type) {
    return function(properties) {
        if (properties) {
            for (var name in properties) {
                this[name] =3D properties[name];
            }
        }
        this.__type =3D type;
    }
}
=20
Sys.Net.WebServiceError =3D function Sys$Net$WebServiceError(timedOut, =
message, stackTrace, exceptionType) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceError.#ctor" />
    /// <param name=3D"timedOut" type=3D"Boolean"></param>
    /// <param name=3D"message" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"stackTrace" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"exceptionType" type=3D"String" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "timedOut", type: Boolean},
        {name: "message", type: String, mayBeNull: true},
        {name: "stackTrace", type: String, mayBeNull: true},
        {name: "exceptionType", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    this._timedOut =3D timedOut;
    this._message =3D message;
    this._stackTrace =3D stackTrace;
    this._exceptionType =3D exceptionType;
    this._statusCode =3D -1;
}
    function Sys$Net$WebServiceError$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebServiceError.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    }
    function Sys$Net$WebServiceError$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceError.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._statusCode;
    }
    function Sys$Net$WebServiceError$get_message() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.message"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._message;
    }
    function Sys$Net$WebServiceError$get_stackTrace() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.stackTrace"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._stackTrace;
    }
    function Sys$Net$WebServiceError$get_exceptionType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.exceptionType"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._exceptionType;
    }
Sys.Net.WebServiceError.prototype =3D {
    get_timedOut: Sys$Net$WebServiceError$get_timedOut,
    get_statusCode: Sys$Net$WebServiceError$get_statusCode,
    get_message: Sys$Net$WebServiceError$get_message,
    get_stackTrace: Sys$Net$WebServiceError$get_stackTrace,
    get_exceptionType: Sys$Net$WebServiceError$get_exceptionType
}
Sys.Net.WebServiceError.registerClass('Sys.Net.WebServiceError');
Type.registerNamespace('Sys.Services');
Sys.Services._ProfileService =3D function Sys$Services$_ProfileService() =
{
    /// <summary locid=3D"M:J#Sys.Net.ProfileService.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._ProfileService.initializeBase(this);
    this.properties =3D {};
}
Sys.Services._ProfileService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_ProfileService$get_defaultLoadCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.defaultLoadCompletedCallback"></=
value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoadCompletedCallback;
    }
    function =
Sys$Services$_ProfileService$set_defaultLoadCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoadCompletedCallback =3D value;
    }
    function =
Sys$Services$_ProfileService$get_defaultSaveCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.defaultSaveCompletedCallback"></=
value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultSaveCompletedCallback;
    }
    function =
Sys$Services$_ProfileService$set_defaultSaveCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultSaveCompletedCallback =3D value;
    }
    function Sys$Services$_ProfileService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_ProfileService$load(propertyNames, =
loadCompletedCallback, failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.ProfileService.load" />
        /// <param name=3D"propertyNames" type=3D"Array" =
elementType=3D"String" optional=3D"true" elementMayBeNull=3D"false" =
mayBeNull=3D"true"></param>
        /// <param name=3D"loadCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyNames", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "loadCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        var parameters;
        var methodName;
        if (!propertyNames) {
            methodName =3D "GetAllPropertiesForCurrentUser";
            parameters =3D { authenticatedUserOnly: false };
        }
        else {
            methodName =3D "GetPropertiesForCurrentUser";
            parameters =3D { properties: =
this._clonePropertyNames(propertyNames), authenticatedUserOnly: false };
        }
        this._invoke(this._get_path(),
                                        methodName,
                                        false,
                                        parameters,
                                        Function.createDelegate(this, =
this._onLoadComplete),
                                        Function.createDelegate(this, =
this._onLoadFailed),
                                        [loadCompletedCallback, =
failedCallback, userContext]);
    }
    function Sys$Services$_ProfileService$save(propertyNames, =
saveCompletedCallback, failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.ProfileService.save" />
        /// <param name=3D"propertyNames" type=3D"Array" =
elementType=3D"String" optional=3D"true" elementMayBeNull=3D"false" =
mayBeNull=3D"true"></param>
        /// <param name=3D"saveCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyNames", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "saveCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        var flattenedProperties =3D =
this._flattenProperties(propertyNames, this.properties);
        this._invoke(this._get_path(),
                                        "SetPropertiesForCurrentUser",
                                        false,
                                        { values: =
flattenedProperties.value, authenticatedUserOnly: false },
                                        Function.createDelegate(this, =
this._onSaveComplete),
                                        Function.createDelegate(this, =
this._onSaveFailed),
                                        [saveCompletedCallback, =
failedCallback, userContext, flattenedProperties.count]);
    }
    function Sys$Services$_ProfileService$_clonePropertyNames(arr) {
        var nodups =3D [];
        var seen =3D {};
        for (var i=3D0; i < arr.length; i++) {
            var prop =3D arr[i];
            if(!seen[prop]) { Array.add(nodups, prop); =
seen[prop]=3Dtrue; };
        }
        return nodups;
    }
    function =
Sys$Services$_ProfileService$_flattenProperties(propertyNames, =
properties, groupName) {
        var flattenedProperties =3D {};
        var val;
        var key;
        var count =3D 0;
        if (propertyNames && propertyNames.length =3D=3D=3D 0) {
            return { value: flattenedProperties, count: 0 };
        }
        for (var property in properties) {
            val =3D properties[property];
            key =3D groupName ? groupName + "." + property : property;
            if(Sys.Services.ProfileGroup.isInstanceOfType(val)) {
                var obj =3D this._flattenProperties(propertyNames, val, =
key);
                var groupProperties =3D obj.value;
                count +=3D obj.count;=20
                for(var subKey in groupProperties) {
                    var subVal =3D groupProperties[subKey];
                    flattenedProperties[subKey] =3D subVal;
                }
            }
            else {
                if(!propertyNames || Array.indexOf(propertyNames, key) =
!=3D=3D -1) {
                    flattenedProperties[key] =3D val;
                    count++;=20
                }
            }
        }
        return { value: flattenedProperties, count: count };
    }
    function Sys$Services$_ProfileService$_get_path() {
        var path =3D this.get_path();
        if (!path.length) {
            path =3D Sys.Services._ProfileService.DefaultWebServicePath;
        }
        if (!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function Sys$Services$_ProfileService$_onLoadComplete(result, =
context, methodName) {
        if (typeof(result) !=3D=3D "object") {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Object"));
        }
        var unflattened =3D this._unflattenProperties(result);
        for (var name in unflattened) {
            this.properties[name] =3D unflattened[name];
        }
       =20
        var callback =3D context[0] || =
this.get_defaultLoadCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();       =20
            callback(result.length, userContext, =
"Sys.Services.ProfileService.load");
        }
    }
    function Sys$Services$_ProfileService$_onLoadFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();       =20
            callback(err, userContext, =
"Sys.Services.ProfileService.load");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function Sys$Services$_ProfileService$_onSaveComplete(result, =
context, methodName) {
        var count =3D context[3];
        if (result !=3D=3D null) {=20
            if (result instanceof Array) {
                count -=3D result.length;
            }
            else if (typeof(result) =3D=3D=3D 'number') {
                count =3D result;
            }
            else {
                throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Array"));
            }
        }
       =20
        var callback =3D context[0] || =
this.get_defaultSaveCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(count, userContext, =
"Sys.Services.ProfileService.save");
        }
    }
    function Sys$Services$_ProfileService$_onSaveFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(err, userContext, =
"Sys.Services.ProfileService.save");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_ProfileService$_unflattenProperties(properties) {
        var unflattenedProperties =3D {};
        var dotIndex;
        var val;
        var count =3D 0;
        for (var key in properties) {
            count++;
            val =3D properties[key];
            dotIndex =3D key.indexOf('.');
            if (dotIndex !=3D=3D -1) {
                var groupName =3D key.substr(0, dotIndex);
                key =3D key.substr(dotIndex+1);
                var group =3D unflattenedProperties[groupName];
                if (!group || =
!Sys.Services.ProfileGroup.isInstanceOfType(group)) {
                    group =3D new Sys.Services.ProfileGroup();
                    unflattenedProperties[groupName] =3D group;
                }
                group[key] =3D val;
            }
            else {
                unflattenedProperties[key] =3D val;
            }
        }
        properties.length =3D count;
        return unflattenedProperties;
    }
Sys.Services._ProfileService.prototype =3D {
    _defaultLoadCompletedCallback: null,
    _defaultSaveCompletedCallback: null,
    _path: '',
    _timeout: 0,
    get_defaultLoadCompletedCallback: =
Sys$Services$_ProfileService$get_defaultLoadCompletedCallback,
    set_defaultLoadCompletedCallback: =
Sys$Services$_ProfileService$set_defaultLoadCompletedCallback,
    get_defaultSaveCompletedCallback: =
Sys$Services$_ProfileService$get_defaultSaveCompletedCallback,
    set_defaultSaveCompletedCallback: =
Sys$Services$_ProfileService$set_defaultSaveCompletedCallback,
    get_path: Sys$Services$_ProfileService$get_path,
    load: Sys$Services$_ProfileService$load,
    save: Sys$Services$_ProfileService$save,
    _clonePropertyNames: =
Sys$Services$_ProfileService$_clonePropertyNames,   =20
    _flattenProperties: Sys$Services$_ProfileService$_flattenProperties,
    _get_path: Sys$Services$_ProfileService$_get_path,   =20
    _onLoadComplete: Sys$Services$_ProfileService$_onLoadComplete,
    _onLoadFailed: Sys$Services$_ProfileService$_onLoadFailed,
    _onSaveComplete: Sys$Services$_ProfileService$_onSaveComplete,
    _onSaveFailed: Sys$Services$_ProfileService$_onSaveFailed,
    _unflattenProperties: =
Sys$Services$_ProfileService$_unflattenProperties
}
Sys.Services._ProfileService.registerClass('Sys.Services._ProfileService'=
, Sys.Net.WebServiceProxy);
Sys.Services.ProfileService =3D new Sys.Services._ProfileService();
Sys.Services.ProfileGroup =3D function =
Sys$Services$ProfileGroup(properties) {
    /// <summary locid=3D"M:J#Sys.Services.ProfileGroup.#ctor" />
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "properties", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (properties) {
        for (var property in properties) {
            this[property] =3D properties[property];
        }
    }
}
Sys.Services.ProfileGroup.registerClass('Sys.Services.ProfileGroup');
Sys.Services._AuthenticationService =3D function =
Sys$Services$_AuthenticationService() {
    /// <summary locid=3D"M:J#Sys.Services.AuthenticationService.#ctor" =
/>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._AuthenticationService.initializeBase(this);
}
Sys.Services._AuthenticationService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback() =
{
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.defaultLoginCompletedCall=
back"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoginCompletedCallback;
    }
    function =
Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback(val=
ue) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoginCompletedCallback =3D value;
    }
    function =
Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback() =
{
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.defaultLogoutCompletedCal=
lback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLogoutCompletedCallback;
    }
    function =
Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback(va=
lue) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLogoutCompletedCallback =3D value;
    }
    function Sys$Services$_AuthenticationService$get_isLoggedIn() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Services.AuthenticationService.isLoggedIn"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._authenticated;
    }
    function Sys$Services$_AuthenticationService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_AuthenticationService$login(username, =
password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, =
failedCallback, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Services.AuthenticationService.login" />
        /// <param name=3D"username" type=3D"String" =
mayBeNull=3D"false"></param>
        /// <param name=3D"password" type=3D"String" =
mayBeNull=3D"true"></param>
        /// <param name=3D"isPersistent" type=3D"Boolean" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"customInfo" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <param name=3D"redirectUrl" type=3D"String" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"loginCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "username", type: String},
            {name: "password", type: String, mayBeNull: true},
            {name: "isPersistent", type: Boolean, mayBeNull: true, =
optional: true},
            {name: "customInfo", type: String, mayBeNull: true, =
optional: true},
            {name: "redirectUrl", type: String, mayBeNull: true, =
optional: true},
            {name: "loginCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._invoke(this._get_path(), "Login", false,
                                        { userName: username, password: =
password, createPersistentCookie: isPersistent },
                                        Function.createDelegate(this, =
this._onLoginComplete),
                                        Function.createDelegate(this, =
this._onLoginFailed),
                                        [username, password, =
isPersistent, customInfo, redirectUrl, loginCompletedCallback, =
failedCallback, userContext]);
    }
    function Sys$Services$_AuthenticationService$logout(redirectUrl, =
logoutCompletedCallback, failedCallback, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Services.AuthenticationService.logout" />
        /// <param name=3D"redirectUrl" type=3D"String" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"logoutCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "redirectUrl", type: String, mayBeNull: true, =
optional: true},
            {name: "logoutCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._invoke(this._get_path(), "Logout", false, {},=20
                                        Function.createDelegate(this, =
this._onLogoutComplete),
                                        Function.createDelegate(this, =
this._onLogoutFailed),
                                        [redirectUrl, =
logoutCompletedCallback, failedCallback, userContext]);
    }
    function Sys$Services$_AuthenticationService$_get_path() {
        var path =3D this.get_path();
        if(!path.length) {
            path =3D =
Sys.Services._AuthenticationService.DefaultWebServicePath;
        }
        if(!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function =
Sys$Services$_AuthenticationService$_onLoginComplete(result, context, =
methodName) {
        if(typeof(result) !=3D=3D "boolean") {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Boolean"));
        }
       =20
        var redirectUrl =3D context[4];
        var userContext =3D context[7] || this.get_defaultUserContext();
        var callback =3D context[5] || =
this.get_defaultLoginCompletedCallback() || =
this.get_defaultSucceededCallback();
       =20
        if(result) {
            this._authenticated =3D true;
            if (callback) {
                callback(true, userContext, =
"Sys.Services.AuthenticationService.login");
            }
           =20
            if (typeof(redirectUrl) !=3D=3D "undefined" && redirectUrl =
!=3D=3D null) {
                window.location.href =3D redirectUrl;
            }
        }
        else if (callback) {
            callback(false, userContext, =
"Sys.Services.AuthenticationService.login");
        }
    }
    function Sys$Services$_AuthenticationService$_onLoginFailed(err, =
context, methodName) {
        var callback =3D context[6] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[7] || =
this.get_defaultUserContext();
            callback(err, userContext, =
"Sys.Services.AuthenticationService.login");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_AuthenticationService$_onLogoutComplete(result, context, =
methodName) {
        if(result !=3D=3D null) {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "null"));
        }
       =20
        var redirectUrl =3D context[0];
        var userContext =3D context[3] || this.get_defaultUserContext();
        var callback =3D context[1] || =
this.get_defaultLogoutCompletedCallback() || =
this.get_defaultSucceededCallback();
        this._authenticated =3D false;
       =20
        if (callback) {
            callback(null, userContext, =
"Sys.Services.AuthenticationService.logout");
        }
       =20
        if(!redirectUrl) {
            window.location.reload();
        }
        else {
            window.location.href =3D redirectUrl;
        }
    }
    function Sys$Services$_AuthenticationService$_onLogoutFailed(err, =
context, methodName) {
        var callback =3D context[2] || this.get_defaultFailedCallback();
        if (callback) {
            callback(err, context[3], =
"Sys.Services.AuthenticationService.logout");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_AuthenticationService$_setAuthenticated(authenticated) {
        this._authenticated =3D authenticated;
    }
Sys.Services._AuthenticationService.prototype =3D {
    _defaultLoginCompletedCallback: null,
    _defaultLogoutCompletedCallback: null,
    _path: '',
    _timeout: 0,
    _authenticated: false,
    get_defaultLoginCompletedCallback: =
Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback,
    set_defaultLoginCompletedCallback: =
Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback,
    get_defaultLogoutCompletedCallback: =
Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback,
    set_defaultLogoutCompletedCallback: =
Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback,
    get_isLoggedIn: Sys$Services$_AuthenticationService$get_isLoggedIn,
    get_path: Sys$Services$_AuthenticationService$get_path, =20
    login: Sys$Services$_AuthenticationService$login,
    logout: Sys$Services$_AuthenticationService$logout,
    _get_path: Sys$Services$_AuthenticationService$_get_path,
    _onLoginComplete: =
Sys$Services$_AuthenticationService$_onLoginComplete,
    _onLoginFailed: Sys$Services$_AuthenticationService$_onLoginFailed,
    _onLogoutComplete: =
Sys$Services$_AuthenticationService$_onLogoutComplete,
    _onLogoutFailed: =
Sys$Services$_AuthenticationService$_onLogoutFailed,
    _setAuthenticated: =
Sys$Services$_AuthenticationService$_setAuthenticated   =20
}
Sys.Services._AuthenticationService.registerClass('Sys.Services._Authenti=
cationService', Sys.Net.WebServiceProxy);
Sys.Services.AuthenticationService =3D new =
Sys.Services._AuthenticationService();
Sys.Services._RoleService =3D function Sys$Services$_RoleService() {
    /// <summary locid=3D"M:J#Sys.Services.RoleService.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._RoleService.initializeBase(this);
    this._roles =3D [];
}
Sys.Services._RoleService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_RoleService$get_defaultLoadCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.RoleService.defaultLoadCompletedCallback"></val=
ue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoadCompletedCallback;
    }
    function =
Sys$Services$_RoleService$set_defaultLoadCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoadCompletedCallback =3D value;
    }
    function Sys$Services$_RoleService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.RoleService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_RoleService$get_roles() {
        /// <value type=3D"Array" elementType=3D"String" =
mayBeNull=3D"false" =
locid=3D"P:J#Sys.Services.RoleService.roles"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Array.clone(this._roles);
    }
    function Sys$Services$_RoleService$isUserInRole(role) {
        /// <summary locid=3D"M:J#Sys.Services.RoleService.isUserInRole" =
/>
        /// <param name=3D"role" type=3D"String" =
mayBeNull=3D"false"></param>
        /// <returns type=3D"Boolean"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "role", type: String}
        ]);
        if (e) throw e;
        var v =3D this._get_rolesIndex()[role.trim().toLowerCase()];
        return !!v;
    }
    function Sys$Services$_RoleService$load(loadCompletedCallback, =
failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.RoleService.load" />
        /// <param name=3D"loadCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "loadCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        Sys.Net.WebServiceProxy.invoke(
                    this._get_path(),
                    "GetRolesForCurrentUser",
                    false,
                    {} ,
                    Function.createDelegate(this, this._onLoadComplete),
                    Function.createDelegate(this, this._onLoadFailed),
                    [loadCompletedCallback, failedCallback, =
userContext],
                    this.get_timeout());
    }
    function Sys$Services$_RoleService$_get_path() {
        var path =3D this.get_path();
        if(!path || !path.length) {
            path =3D Sys.Services._RoleService.DefaultWebServicePath;
        }
        if(!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function Sys$Services$_RoleService$_get_rolesIndex() {
        if (!this._rolesIndex) {
            var index =3D {};
            for(var i=3D0; i < this._roles.length; i++) {
                index[this._roles[i].toLowerCase()] =3D true;
            }
            this._rolesIndex =3D index;
        }
        return this._rolesIndex;
    }
    function Sys$Services$_RoleService$_onLoadComplete(result, context, =
methodName) {
        if(result && !(result instanceof Array)) {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Array"));
        }
        this._roles =3D result;
        this._rolesIndex =3D null;
        var callback =3D context[0] || =
this.get_defaultLoadCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            var clonedResult =3D Array.clone(result);
            callback(clonedResult, userContext, =
"Sys.Services.RoleService.load");
        }
    }
    function Sys$Services$_RoleService$_onLoadFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(err, userContext, "Sys.Services.RoleService.load");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
Sys.Services._RoleService.prototype =3D {
    _defaultLoadCompletedCallback: null,
    _rolesIndex: null,
    _timeout: 0,
    _path: '',
    get_defaultLoadCompletedCallback: =
Sys$Services$_RoleService$get_defaultLoadCompletedCallback,
    set_defaultLoadCompletedCallback: =
Sys$Services$_RoleService$set_defaultLoadCompletedCallback,
    get_path: Sys$Services$_RoleService$get_path,
    get_roles: Sys$Services$_RoleService$get_roles,
    isUserInRole: Sys$Services$_RoleService$isUserInRole,
    load: Sys$Services$_RoleService$load,
    _get_path: Sys$Services$_RoleService$_get_path, =20
    _get_rolesIndex: Sys$Services$_RoleService$_get_rolesIndex,
    _onLoadComplete: Sys$Services$_RoleService$_onLoadComplete,
    _onLoadFailed: Sys$Services$_RoleService$_onLoadFailed
}
Sys.Services._RoleService.registerClass('Sys.Services._RoleService', =
Sys.Net.WebServiceProxy);
Sys.Services.RoleService =3D new Sys.Services._RoleService();
Type.registerNamespace('Sys.Serialization');
Sys.Serialization.JavaScriptSerializer =3D function =
Sys$Serialization$JavaScriptSerializer() {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Sys.Serialization.JavaScriptSerializer.registerClass('Sys.Serialization.J=
avaScriptSerializer');
Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs =3D [];
Sys.Serialization.JavaScriptSerializer._charsToEscape =3D [];
Sys.Serialization.JavaScriptSerializer._dateRegEx =3D new =
RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4}=
)?\\)\\\\/\\"', 'g');
Sys.Serialization.JavaScriptSerializer._escapeChars =3D {};
Sys.Serialization.JavaScriptSerializer._escapeRegEx =3D new =
RegExp('["\\\\\\x00-\\x1F]', 'i');
Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal =3D new =
RegExp('["\\\\\\x00-\\x1F]', 'g');
Sys.Serialization.JavaScriptSerializer._jsonRegEx =3D new =
RegExp('[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]', 'g');
Sys.Serialization.JavaScriptSerializer._jsonStringRegEx =3D new =
RegExp('"(\\\\.|[^"\\\\])*"', 'g');
Sys.Serialization.JavaScriptSerializer._serverTypeFieldName =3D =
'__type';
Sys.Serialization.JavaScriptSerializer._init =3D function =
Sys$Serialization$JavaScriptSerializer$_init() {
    var replaceChars =3D =
['\\u0000','\\u0001','\\u0002','\\u0003','\\u0004','\\u0005','\\u0006','\=
\u0007',
                        =
'\\b','\\t','\\n','\\u000b','\\f','\\r','\\u000e','\\u000f','\\u0010','\\=
u0011',
                        =
'\\u0012','\\u0013','\\u0014','\\u0015','\\u0016','\\u0017','\\u0018','\\=
u0019',
                        =
'\\u001a','\\u001b','\\u001c','\\u001d','\\u001e','\\u001f'];
    Sys.Serialization.JavaScriptSerializer._charsToEscape[0] =3D '\\';
    Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['\\'] =
=3D new RegExp('\\\\', 'g');
    Sys.Serialization.JavaScriptSerializer._escapeChars['\\'] =3D =
'\\\\';
    Sys.Serialization.JavaScriptSerializer._charsToEscape[1] =3D '"';
    Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['"'] =3D =
new RegExp('"', 'g');
    Sys.Serialization.JavaScriptSerializer._escapeChars['"'] =3D '\\"';
    for (var i =3D 0; i < 32; i++) {
        var c =3D String.fromCharCode(i);
        Sys.Serialization.JavaScriptSerializer._charsToEscape[i+2] =3D =
c;
        Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c] =
=3D new RegExp(c, 'g');
        Sys.Serialization.JavaScriptSerializer._escapeChars[c] =3D =
replaceChars[i];
    }
}
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeBooleanWithBuilder(objec=
t, stringBuilder) {
    stringBuilder.append(object.toString());
}
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeNumberWithBuilder(object=
, stringBuilder) {
    if (isFinite(object)) {
        stringBuilder.append(String(object));
    }
    else {
        throw =
Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);
    }
}
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeStringWithBuilder(string=
, stringBuilder) {
    stringBuilder.append('"');
    if =
(Sys.Serialization.JavaScriptSerializer._escapeRegEx.test(string)) {
        if (Sys.Serialization.JavaScriptSerializer._charsToEscape.length =
=3D=3D=3D 0) {
            Sys.Serialization.JavaScriptSerializer._init();
        }
        if (string.length < 128) {
            string =3D =
string.replace(Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal,=

                function(x) { return =
Sys.Serialization.JavaScriptSerializer._escapeChars[x]; });
        }
        else {
            for (var i =3D 0; i < 34; i++) {
                var c =3D =
Sys.Serialization.JavaScriptSerializer._charsToEscape[i];
                if (string.indexOf(c) !=3D=3D -1) {
                    if (Sys.Browser.agent =3D=3D=3D Sys.Browser.Opera || =
Sys.Browser.agent =3D=3D=3D Sys.Browser.FireFox) {
                        string =3D =
string.split(c).join(Sys.Serialization.JavaScriptSerializer._escapeChars[=
c]);
                    }
                    else {
                        string =3D =
string.replace(Sys.Serialization.JavaScriptSerializer._charsToEscapeRegEx=
s[c],
                            =
Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
                    }
                }
            }
       }
    }
    stringBuilder.append(string);
    stringBuilder.append('"');
}
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeWithBuilder(object, =
stringBuilder, sort, prevObjects) {
    var i;
    switch (typeof object) {
    case 'object':
        if (object) {
            if (prevObjects){
                for( var j =3D 0; j < prevObjects.length; j++) {
                    if (prevObjects[j] =3D=3D=3D object) {
                        throw =
Error.invalidOperation(Sys.Res.cannotSerializeObjectWithCycle);
                    }
                }
            }
            else {
                prevObjects =3D new Array();
            }
            try {
                Array.add(prevObjects, object);
               =20
                if (Number.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object=
, stringBuilder);
                }
                else if (Boolean.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(objec=
t, stringBuilder);
                }
                else if (String.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object=
, stringBuilder);
                }
           =20
                else if (Array.isInstanceOfType(object)) {
                    stringBuilder.append('[');
                  =20
                    for (i =3D 0; i < object.length; ++i) {
                        if (i > 0) {
                            stringBuilder.append(',');
                        }
                        =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object[i], =
stringBuilder,false,prevObjects);
                    }
                    stringBuilder.append(']');
                }
                else {
                    if (Date.isInstanceOfType(object)) {
                        stringBuilder.append('"\\/Date(');
                        stringBuilder.append(object.getTime());
                        stringBuilder.append(')\\/"');
                        break;
                    }
                    var properties =3D [];
                    var propertyCount =3D 0;
                    for (var name in object) {
                        if (name.startsWith('$')) {
                            continue;
                        }
                        if (name =3D=3D=3D =
Sys.Serialization.JavaScriptSerializer._serverTypeFieldName && =
propertyCount !=3D=3D 0){
                            properties[propertyCount++] =3D =
properties[0];
                            properties[0] =3D name;
                        }
                        else{
                            properties[propertyCount++] =3D name;
                        }
                    }
                    if (sort) properties.sort();
                    stringBuilder.append('{');
                    var needComma =3D false;
                    =20
                    for (i=3D0; i<propertyCount; i++) {
                        var value =3D object[properties[i]];
                        if (typeof value !=3D=3D 'undefined' && typeof =
value !=3D=3D 'function') {
                            if (needComma) {
                                stringBuilder.append(',');
                            }
                            else {
                                needComma =3D true;
                            }
                          =20
                            =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(properties[i=
], stringBuilder, sort, prevObjects);
                            stringBuilder.append(':');
                            =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(value, =
stringBuilder, sort, prevObjects);
                         =20
                        }
                    }
                stringBuilder.append('}');
                }
            }
            finally {
                Array.removeAt(prevObjects, prevObjects.length - 1);
            }
        }
        else {
            stringBuilder.append('null');
        }
        break;
    case 'number':
        =
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object=
, stringBuilder);
        break;
    case 'string':
        =
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object=
, stringBuilder);
        break;
    case 'boolean':
        =
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(objec=
t, stringBuilder);
        break;
    default:
        stringBuilder.append('null');
        break;
    }
}
Sys.Serialization.JavaScriptSerializer.serialize =3D function =
Sys$Serialization$JavaScriptSerializer$serialize(object) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.serialize" />
    /// <param name=3D"object" mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    var stringBuilder =3D new Sys.StringBuilder();
    Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object, =
stringBuilder, false);
    return stringBuilder.toString();
}
Sys.Serialization.JavaScriptSerializer.deserialize =3D function =
Sys$Serialization$JavaScriptSerializer$deserialize(data, secure) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.deserialize" />
    /// <param name=3D"data" type=3D"String"></param>
    /// <param name=3D"secure" type=3D"Boolean" =
optional=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "data", type: String},
        {name: "secure", type: Boolean, optional: true}
    ]);
    if (e) throw e;
   =20
    if (data.length =3D=3D=3D 0) throw Error.argument('data', =
Sys.Res.cannotDeserializeEmptyString);
    try {   =20
        var exp =3D =
data.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx, "$1new =
Date($2)");
       =20
        if (secure && =
Sys.Serialization.JavaScriptSerializer._jsonRegEx.test(
             =
exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx, =
''))) throw null;
        return eval('(' + exp + ')');
    }
    catch (e) {
         throw Error.argument('data', =
Sys.Res.cannotDeserializeInvalidJson);
    }
}
=20
Sys.CultureInfo =3D function Sys$CultureInfo(name, numberFormat, =
dateTimeFormat) {
    /// <summary locid=3D"M:J#Sys.CultureInfo.#ctor" />
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"numberFormat" type=3D"Object"></param>
    /// <param name=3D"dateTimeFormat" type=3D"Object"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "numberFormat", type: Object},
        {name: "dateTimeFormat", type: Object}
    ]);
    if (e) throw e;
    this.name =3D name;
    this.numberFormat =3D numberFormat;
    this.dateTimeFormat =3D dateTimeFormat;
}
    function Sys$CultureInfo$_getDateTimeFormats() {
        if (! this._dateTimeFormats) {
            var dtf =3D this.dateTimeFormat;
            this._dateTimeFormats =3D
              [ dtf.MonthDayPattern,
                dtf.YearMonthPattern,
                dtf.ShortDatePattern,
                dtf.ShortTimePattern,
                dtf.LongDatePattern,
                dtf.LongTimePattern,
                dtf.FullDateTimePattern,
                dtf.RFC1123Pattern,
                dtf.SortableDateTimePattern,
                dtf.UniversalSortableDateTimePattern ];
        }
        return this._dateTimeFormats;
    }
    function Sys$CultureInfo$_getMonthIndex(value) {
        if (!this._upperMonths) {
            this._upperMonths =3D =
this._toUpperArray(this.dateTimeFormat.MonthNames);
        }
        return Array.indexOf(this._upperMonths, this._toUpper(value));
    }
    function Sys$CultureInfo$_getAbbrMonthIndex(value) {
        if (!this._upperAbbrMonths) {
            this._upperAbbrMonths =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
        }
        return Array.indexOf(this._upperAbbrMonths, =
this._toUpper(value));
    }
    function Sys$CultureInfo$_getDayIndex(value) {
        if (!this._upperDays) {
            this._upperDays =3D =
this._toUpperArray(this.dateTimeFormat.DayNames);
        }
        return Array.indexOf(this._upperDays, this._toUpper(value));
    }
    function Sys$CultureInfo$_getAbbrDayIndex(value) {
        if (!this._upperAbbrDays) {
            this._upperAbbrDays =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);
        }
        return Array.indexOf(this._upperAbbrDays, this._toUpper(value));
    }
    function Sys$CultureInfo$_toUpperArray(arr) {
        var result =3D [];
        for (var i =3D 0, il =3D arr.length; i < il; i++) {
            result[i] =3D this._toUpper(arr[i]);
        }
        return result;
    }
    function Sys$CultureInfo$_toUpper(value) {
        return value.split("\u00A0").join(' ').toUpperCase();
    }
Sys.CultureInfo.prototype =3D {
    _getDateTimeFormats: Sys$CultureInfo$_getDateTimeFormats,
    _getMonthIndex: Sys$CultureInfo$_getMonthIndex,
    _getAbbrMonthIndex: Sys$CultureInfo$_getAbbrMonthIndex,
    _getDayIndex: Sys$CultureInfo$_getDayIndex,
    _getAbbrDayIndex: Sys$CultureInfo$_getAbbrDayIndex,
    _toUpperArray: Sys$CultureInfo$_toUpperArray,
    _toUpper: Sys$CultureInfo$_toUpper
}
Sys.CultureInfo._parse =3D function Sys$CultureInfo$_parse(value) {
    var cultureInfo =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(value);
    return new Sys.CultureInfo(cultureInfo.name, =
cultureInfo.numberFormat, cultureInfo.dateTimeFormat);
}
Sys.CultureInfo.registerClass('Sys.CultureInfo');
Sys.CultureInfo.InvariantCulture =3D =
Sys.CultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits=
":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes"=
:[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparat=
or":",","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePatt=
ern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegat=
ivePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","Nu=
mberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":=
",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","Posi=
tiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","Per=
centGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","Na=
tiveDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution"=
:1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTi=
me":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","Algor=
ithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnl=
y":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"Ful=
lDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, =
dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","Sort=
ableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSepar=
ator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd =
HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy =
MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":true,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}');
if (typeof(__cultureInfo) =3D=3D=3D 'undefined') {
    var __cultureInfo =3D =
'{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecim=
alSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":[3],"NumberGroup=
Sizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","Currency=
Symbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegative=
Pattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"Negativ=
eInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"=
NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositiveP=
attern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","Percent=
DecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",=
","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","=
2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{=
"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@=
","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarT=
ype":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":false},"DateSeparat=
or":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dd=
dd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM dd, =
yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm =
tt","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","=
TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd=
 HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"MMMM, =
yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":false,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}';
}
Sys.CultureInfo.CurrentCulture =3D =
Sys.CultureInfo._parse(__cultureInfo);
delete __cultureInfo;
=20
Sys.UI.Behavior =3D function Sys$UI$Behavior(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.#ctor" />
    /// <param name=3D"element" domElement=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    Sys.UI.Behavior.initializeBase(this);
    this._element =3D element;
    var behaviors =3D element._behaviors;
    if (!behaviors) {
        element._behaviors =3D [this];
    }
    else {
        behaviors[behaviors.length] =3D this;
    }
}
    function Sys$UI$Behavior$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Behavior.element"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    }
    function Sys$UI$Behavior$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var baseId =3D Sys.UI.Behavior.callBaseMethod(this, 'get_id');
        if (baseId) return baseId;
        if (!this._element || !this._element.id) return '';
        return this._element.id + '$' + this.get_name();
    }
    function Sys$UI$Behavior$get_name() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.name"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._name) return this._name;
        var name =3D Object.getTypeName(this);
        var i =3D name.lastIndexOf('.');
        if (i !=3D -1) name =3D name.substr(i + 1);
        if (!this.get_isInitialized()) this._name =3D name;
        return name;
    }
    function Sys$UI$Behavior$set_name(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if ((value =3D=3D=3D '') || (value.charAt(0) =3D=3D=3D ' ') || =
(value.charAt(value.length - 1) =3D=3D=3D ' '))
            throw Error.argument('value', Sys.Res.invalidId);
        if (typeof(this._element[value]) !=3D=3D 'undefined')
            throw =
Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, =
value));
        if (this.get_isInitialized()) throw =
Error.invalidOperation(Sys.Res.cantSetNameAfterInit);
        this._name =3D value;
    }
    function Sys$UI$Behavior$initialize() {
        Sys.UI.Behavior.callBaseMethod(this, 'initialize');
        var name =3D this.get_name();
        if (name) this._element[name] =3D this;
    }
    function Sys$UI$Behavior$dispose() {
        Sys.UI.Behavior.callBaseMethod(this, 'dispose');
        if (this._element) {
            var name =3D this.get_name();
            if (name) {
                this._element[name] =3D null;
            }
            Array.remove(this._element._behaviors, this);
            delete this._element;
        }
    }
Sys.UI.Behavior.prototype =3D {
    _name: null,
    get_element: Sys$UI$Behavior$get_element,
    get_id: Sys$UI$Behavior$get_id,
    get_name: Sys$UI$Behavior$get_name,
    set_name: Sys$UI$Behavior$set_name,
    initialize: Sys$UI$Behavior$initialize,
    dispose: Sys$UI$Behavior$dispose
}
Sys.UI.Behavior.registerClass('Sys.UI.Behavior', Sys.Component);
Sys.UI.Behavior.getBehaviorByName =3D function =
Sys$UI$Behavior$getBehaviorByName(element, name) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorByName" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <returns type=3D"Sys.UI.Behavior" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    var b =3D element[name];
    return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null;
}
Sys.UI.Behavior.getBehaviors =3D function =
Sys$UI$Behavior$getBehaviors(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviors" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Array" =
elementType=3D"Sys.UI.Behavior"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (!element._behaviors) return [];
    return Array.clone(element._behaviors);
}
Sys.UI.Behavior.getBehaviorsByType =3D function =
Sys$UI$Behavior$getBehaviorsByType(element, type) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorsByType" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"type" type=3D"Type"></param>
    /// <returns type=3D"Array" =
elementType=3D"Sys.UI.Behavior"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "type", type: Type}
    ]);
    if (e) throw e;
    var behaviors =3D element._behaviors;
    var results =3D [];
    if (behaviors) {
        for (var i =3D 0, l =3D behaviors.length; i < l; i++) {
            if (type.isInstanceOfType(behaviors[i])) {
                results[results.length] =3D behaviors[i];
            }
        }
    }
    return results;
}
=20
Sys.UI.VisibilityMode =3D function Sys$UI$VisibilityMode() {
    /// <summary locid=3D"M:J#Sys.UI.VisibilityMode.#ctor" />
    /// <field name=3D"hide" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.hide"></field>
    /// <field name=3D"collapse" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.collapse"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.VisibilityMode.prototype =3D {
    hide: 0,
    collapse: 1
}
Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");
=20
Sys.UI.Control =3D function Sys$UI$Control(element) {
    /// <summary locid=3D"M:J#Sys.UI.Control.#ctor" />
    /// <param name=3D"element" domElement=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (typeof(element.control) !=3D 'undefined') throw =
Error.invalidOperation(Sys.Res.controlAlreadyDefined);
    Sys.UI.Control.initializeBase(this);
    this._element =3D element;
    element.control =3D this;
}
    function Sys$UI$Control$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Control.element"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    }
    function Sys$UI$Control$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Control.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) return '';
        return this._element.id;
    }
    function Sys$UI$Control$set_id(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        throw Error.invalidOperation(Sys.Res.cantSetId);
    }
    function Sys$UI$Control$get_parent() {
        /// <value type=3D"Sys.UI.Control" =
locid=3D"P:J#Sys.UI.Control.parent"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._parent) return this._parent;
        if (!this._element) return null;
       =20
        var parentElement =3D this._element.parentNode;
        while (parentElement) {
            if (parentElement.control) {
                return parentElement.control;
            }
            parentElement =3D parentElement.parentNode;
        }
        return null;
    }
    function Sys$UI$Control$set_parent(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.Control}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        var parents =3D [this];
        var current =3D value;
        while (current) {
            if (Array.contains(parents, current)) throw =
Error.invalidOperation(Sys.Res.circularParentChain);
            parents[parents.length] =3D current;
            current =3D current.get_parent();
        }
        this._parent =3D value;
    }
    function Sys$UI$Control$get_visibilityMode() {
        /// <value type=3D"Sys.UI.VisibilityMode" =
locid=3D"P:J#Sys.UI.Control.visibilityMode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisibilityMode(this._element);
    }
    function Sys$UI$Control$set_visibilityMode(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.VisibilityMode}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisibilityMode(this._element, value);
    }
    function Sys$UI$Control$get_visible() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI.Control.visible"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisible(this._element);
    }
    function Sys$UI$Control$set_visible(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisible(this._element, value)
    }
    function Sys$UI$Control$addCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.addCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.addCssClass(this._element, className);
    }
    function Sys$UI$Control$dispose() {
        Sys.UI.Control.callBaseMethod(this, 'dispose');
        if (this._element) {
            this._element.control =3D undefined;
            delete this._element;
        }
        if (this._parent) delete this._parent;
    }
    function Sys$UI$Control$onBubbleEvent(source, args) {
        /// <summary locid=3D"M:J#Sys.UI.Control.onBubbleEvent" />
        /// <param name=3D"source"></param>
        /// <param name=3D"args" type=3D"Sys.EventArgs"></param>
        /// <returns type=3D"Boolean"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        return false;
    }
    function Sys$UI$Control$raiseBubbleEvent(source, args) {
        /// <summary locid=3D"M:J#Sys.UI.Control.raiseBubbleEvent" />
        /// <param name=3D"source"></param>
        /// <param name=3D"args" type=3D"Sys.EventArgs"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        var currentTarget =3D this.get_parent();
        while (currentTarget) {
            if (currentTarget.onBubbleEvent(source, args)) {
                return;
            }
            currentTarget =3D currentTarget.get_parent();
        }
    }
    function Sys$UI$Control$removeCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.removeCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.removeCssClass(this._element, className);
    }
    function Sys$UI$Control$toggleCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.toggleCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.toggleCssClass(this._element, className);
    }
Sys.UI.Control.prototype =3D {
    _parent: null,
    _visibilityMode: Sys.UI.VisibilityMode.hide,
    get_element: Sys$UI$Control$get_element,
    get_id: Sys$UI$Control$get_id,
    set_id: Sys$UI$Control$set_id,
    get_parent: Sys$UI$Control$get_parent,
    set_parent: Sys$UI$Control$set_parent,
    get_visibilityMode: Sys$UI$Control$get_visibilityMode,
    set_visibilityMode: Sys$UI$Control$set_visibilityMode,
    get_visible: Sys$UI$Control$get_visible,
    set_visible: Sys$UI$Control$set_visible,
    addCssClass: Sys$UI$Control$addCssClass,
    dispose: Sys$UI$Control$dispose,
    onBubbleEvent: Sys$UI$Control$onBubbleEvent,
    raiseBubbleEvent: Sys$UI$Control$raiseBubbleEvent,
    removeCssClass: Sys$UI$Control$removeCssClass,
    toggleCssClass: Sys$UI$Control$toggleCssClass
}
Sys.UI.Control.registerClass('Sys.UI.Control', Sys.Component);


Type.registerNamespace('Sys');
Sys.Res=3D{
"urlMustBeLessThan1024chars":"The history state must be small enough to =
not make the url larger than 1024 characters.",
"argumentTypeName":"Value is not the name of an existing type.",
"methodRegisteredTwice":"Method {0} has already been registered.",
"cantSetIdAfterInit":"The id property can\u0027t be set on this object =
after initialization.",
"cantBeCalledAfterDispose":"Can\u0027t be called after dispose.",
"componentCantSetIdAfterAddedToApp":"The id property of a component =
can\u0027t be set after it\u0027s been added to the Application =
object.",
"behaviorDuplicateName":"A behavior with name \u0027{0}\u0027 already =
exists or it is the name of an existing property on the target =
element.",
"notATypeName":"Value is not a valid type name.",
"typeShouldBeTypeOrString":"Value is not a valid type or a valid type =
name.",
"historyInvalidHistorySettingCombination":"Cannot set enableHistory to =
false when ScriptManager.EnableHistory is true.",
"stateMustBeStringDictionary":"The state object can only have null and =
string fields.",
"boolTrueOrFalse":"Value must be \u0027true\u0027 or =
\u0027false\u0027.",
"scriptLoadFailedNoHead":"ScriptLoader requires pages to contain a =
\u003chead\u003e element.",
"stringFormatInvalid":"The format string is invalid.",
"referenceNotFound":"Component \u0027{0}\u0027 was not found.",
"enumReservedName":"\u0027{0}\u0027 is a reserved name that can\u0027t =
be used as an enum value name.",
"eventHandlerNotFound":"Handler not found.",
"circularParentChain":"The chain of control parents can\u0027t have =
circular references.",
"undefinedEvent":"\u0027{0}\u0027 is not an event.",
"notAMethod":"{0} is not a method.",
"propertyUndefined":"\u0027{0}\u0027 is not a property or an existing =
field.",
"historyCannotEnableHistory":"Cannot set enableHistory after =
initialization.",
"eventHandlerInvalid":"Handler was not added through the =
Sys.UI.DomEvent.addHandler method.",
"scriptLoadFailedDebug":"The script \u0027{0}\u0027 failed to load. =
Check for:\r\n Inaccessible path.\r\n Script errors. (IE) Enable =
\u0027Display a notification about every script error\u0027 under =
advanced settings.\r\n Missing call to =
Sys.Application.notifyScriptLoaded().",
"propertyNotWritable":"\u0027{0}\u0027 is not a writable property.",
"enumInvalidValueName":"\u0027{0}\u0027 is not a valid name for an enum =
value.",
"controlAlreadyDefined":"A control is already associated with the =
element.",
"addHandlerCantBeUsedForError":"Can\u0027t add a handler for the error =
event using this method. Please set the window.onerror property =
instead.",
"namespaceContainsObject":"Object {0} already exists and is not a =
namespace.",
"cantAddNonFunctionhandler":"Can\u0027t add a handler that is not a =
function.",
"invalidNameSpace":"Value is not a valid namespace identifier.",
"notAnInterface":"Value is not a valid interface.",
"eventHandlerNotFunction":"Handler must be a function.",
"propertyNotAnArray":"\u0027{0}\u0027 is not an Array property.",
"typeRegisteredTwice":"Type {0} has already been registered. The type =
may be defined multiple times or the script file that defines it may =
have already been loaded. A possible cause is a change of settings =
during a partial update.",
"cantSetNameAfterInit":"The name property can\u0027t be set on this =
object after initialization.",
"historyMissingFrame":"For the history feature to work in IE, the page =
must have an iFrame element with id \u0027__historyFrame\u0027 pointed =
to a page that gets its title from the \u0027title\u0027 query string =
parameter and calls Sys.Application._onIFrameLoad() on the parent =
window. This can be done by setting EnableHistory to true on =
ScriptManager.",
"appDuplicateComponent":"Two components with the same id \u0027{0}\u0027 =
can\u0027t be added to the application.",
"historyCannotAddHistoryPointWithHistoryDisabled":"A history point can =
only be added if enableHistory is set to true.",
"appComponentMustBeInitialized":"Components must be initialized before =
they are added to the Application object.",
"baseNotAClass":"Value is not a class.",
"methodNotFound":"No method found with name \u0027{0}\u0027.",
"arrayParseBadFormat":"Value must be a valid string representation for =
an array. It must start with a \u0027[\u0027 and end with a =
\u0027]\u0027.",
"stateFieldNameInvalid":"State field names must not contain any =
\u0027=3D\u0027 characters.",
"cantSetId":"The id property can\u0027t be set on this object.",
"historyMissingHiddenInput":"For the history feature to work in Safari =
2, the page must have a hidden input element with id =
\u0027__history\u0027.",
"stringFormatBraceMismatch":"The format string contains an unmatched =
opening or closing brace.",
"enumValueNotInteger":"An enumeration definition can only contain =
integer values.",
"propertyNullOrUndefined":"Cannot set the properties of \u0027{0}\u0027 =
because it returned a null value.",
"argumentDomNode":"Value must be a DOM element or a text node.",
"componentCantSetIdTwice":"The id property of a component can\u0027t be =
set more than once.",
"createComponentOnDom":"Value must be null for Components that are not =
Controls or Behaviors.",
"createNotComponent":"{0} does not derive from Sys.Component.",
"createNoDom":"Value must not be null for Controls and Behaviors.",
"cantAddWithoutId":"Can\u0027t add a component that doesn\u0027t have an =
id.",
"badTypeName":"Value is not the name of the type being registered or the =
name is a reserved word.",
"argumentInteger":"Value must be an integer.",
"scriptLoadMultipleCallbacks":"The script \u0027{0}\u0027 contains =
multiple calls to Sys.Application.notifyScriptLoaded(). Only one is =
allowed.",
"invokeCalledTwice":"Cannot call invoke more than once.",
"webServiceFailed":"The server method \u0027{0}\u0027 failed with the =
following error: {1}",
"webServiceInvalidJsonWrapper":"The server method \u0027{0}\u0027 =
returned invalid data. The \u0027d\u0027 property is missing from the =
JSON wrapper.",
"argumentType":"Object cannot be converted to the required type.",
"argumentNull":"Value cannot be null.",
"controlCantSetId":"The id property can\u0027t be set on a control.",
"formatBadFormatSpecifier":"Format specifier was invalid.",
"webServiceFailedNoMsg":"The server method \u0027{0}\u0027 failed.",
"argumentDomElement":"Value must be a DOM element.",
"invalidExecutorType":"Could not create a valid =
Sys.Net.WebRequestExecutor from: {0}.",
"cannotCallBeforeResponse":"Cannot call {0} when responseAvailable is =
false.",
"actualValue":"Actual value was {0}.",
"enumInvalidValue":"\u0027{0}\u0027 is not a valid value for enum {1}.",
"scriptLoadFailed":"The script \u0027{0}\u0027 could not be loaded.",
"parameterCount":"Parameter count mismatch.",
"cannotDeserializeEmptyString":"Cannot deserialize empty string.",
"formatInvalidString":"Input string was not in a correct format.",
"invalidTimeout":"Value must be greater than or equal to zero.",
"cannotAbortBeforeStart":"Cannot abort when executor has not started.",
"argument":"Value does not fall within the expected range.",
"cannotDeserializeInvalidJson":"Cannot deserialize. The data does not =
correspond to valid JSON.",
"invalidHttpVerb":"httpVerb cannot be set to an empty or null string.",
"nullWebRequest":"Cannot call executeRequest with a null webRequest.",
"eventHandlerInvalid":"Handler was not added through the =
Sys.UI.DomEvent.addHandler method.",
"cannotSerializeNonFiniteNumbers":"Cannot serialize non finite =
numbers.",
"argumentUndefined":"Value cannot be undefined.",
"webServiceInvalidReturnType":"The server method \u0027{0}\u0027 =
returned an invalid type. Expected type: {1}",
"servicePathNotSet":"The path to the web service has not been set.",
"argumentTypeWithTypes":"Object of type \u0027{0}\u0027 cannot be =
converted to type \u0027{1}\u0027.",
"cannotCallOnceStarted":"Cannot call {0} once started.",
"badBaseUrl1":"Base URL does not contain ://.",
"badBaseUrl2":"Base URL does not contain another /.",
"badBaseUrl3":"Cannot find last / in base URL.",
"setExecutorAfterActive":"Cannot set executor after it has become =
active.",
"paramName":"Parameter name: {0}",
"cannotCallOutsideHandler":"Cannot call {0} outside of a completed event =
handler.",
"cannotSerializeObjectWithCycle":"Cannot serialize object with cyclic =
reference within child properties.",
"format":"One of the identified items was in an invalid format.",
"assertFailedCaller":"Assertion Failed: {0}\r\nat {1}",
"argumentOutOfRange":"Specified argument was out of the range of valid =
values.",
"webServiceTimedOut":"The server method \u0027{0}\u0027 timed out.",
"notImplemented":"The method or operation is not implemented.",
"assertFailed":"Assertion Failed: {0}",
"invalidOperation":"Operation is not valid due to the current state of =
the object.",
"breakIntoDebugger":"{0}\r\n\r\nBreak into debugger?"
};

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/ScriptResource.axd?d=PbBLjPLWYArrvhvzvjpXpu7zX95sm6CZuUbL4urydYjVtpUc6ovN77ufDyV7l_51twHxzauWFWWqFqLkiEt7yl7O9GcxQgMZxnZ0VSMBHgQCqZJh068tupi_Ee_RLbhhBB0eb14BZvaGr09uonG46QI6KRsC5rlQ6BuzEEW1Jpm8ku8Q0&t=ffffffffe91ada60

// Name:        MicrosoftAjaxWebForms.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.30729.3644
//-----------------------------------------------------------------------=

// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------=

// MicrosoftAjaxWebForms.js
// Microsoft AJAX ASP.NET WebForms Framework.
Type.registerNamespace('Sys.WebForms');
Sys.WebForms.BeginRequestEventArgs =3D function =
Sys$WebForms$BeginRequestEventArgs(request, postBackElement) {
    /// <summary locid=3D"M:J#Sys.WebForms.BeginRequestEventArgs.#ctor" =
/>
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest"></param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true}
    ]);
    if (e) throw e;
    Sys.WebForms.BeginRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
}
    function Sys$WebForms$BeginRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.postBackElement"></value>=

        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    }
    function Sys$WebForms$BeginRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    }
Sys.WebForms.BeginRequestEventArgs.prototype =3D {
    get_postBackElement: =
Sys$WebForms$BeginRequestEventArgs$get_postBackElement,
    get_request: Sys$WebForms$BeginRequestEventArgs$get_request
}
Sys.WebForms.BeginRequestEventArgs.registerClass('Sys.WebForms.BeginReque=
stEventArgs', Sys.EventArgs);
=20
Sys.WebForms.EndRequestEventArgs =3D function =
Sys$WebForms$EndRequestEventArgs(error, dataItems, response) {
    /// <summary locid=3D"M:J#Sys.WebForms.EndRequestEventArgs.#ctor" />
    /// <param name=3D"error" type=3D"Error" mayBeNull=3D"true"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    /// <param name=3D"response" =
type=3D"Sys.Net.WebRequestExecutor"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "error", type: Error, mayBeNull: true},
        {name: "dataItems", type: Object, mayBeNull: true},
        {name: "response", type: Sys.Net.WebRequestExecutor}
    ]);
    if (e) throw e;
    Sys.WebForms.EndRequestEventArgs.initializeBase(this);
    this._errorHandled =3D false;
    this._error =3D error;
    this._dataItems =3D dataItems || new Object();
    this._response =3D response;
}
    function Sys$WebForms$EndRequestEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$EndRequestEventArgs$get_error() {
        /// <value type=3D"Error" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.error"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._error;
    }
    function Sys$WebForms$EndRequestEventArgs$get_errorHandled() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.errorHandled"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._errorHandled;
    }
    function Sys$WebForms$EndRequestEventArgs$set_errorHandled(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._errorHandled =3D value;
    }
    function Sys$WebForms$EndRequestEventArgs$get_response() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.response"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._response;
    }
Sys.WebForms.EndRequestEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$EndRequestEventArgs$get_dataItems,
    get_error: Sys$WebForms$EndRequestEventArgs$get_error,
    get_errorHandled: Sys$WebForms$EndRequestEventArgs$get_errorHandled,
    set_errorHandled: Sys$WebForms$EndRequestEventArgs$set_errorHandled,
    get_response: Sys$WebForms$EndRequestEventArgs$get_response
}
Sys.WebForms.EndRequestEventArgs.registerClass('Sys.WebForms.EndRequestEv=
entArgs', Sys.EventArgs);
Sys.WebForms.InitializeRequestEventArgs =3D function =
Sys$WebForms$InitializeRequestEventArgs(request, postBackElement) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.InitializeRequestEventArgs.#ctor" />
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest"></param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true}
    ]);
    if (e) throw e;
    Sys.WebForms.InitializeRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
}
    function =
Sys$WebForms$InitializeRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.postBackElement"></v=
alue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    }
    function Sys$WebForms$InitializeRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    }
Sys.WebForms.InitializeRequestEventArgs.prototype =3D {
    get_postBackElement: =
Sys$WebForms$InitializeRequestEventArgs$get_postBackElement,
    get_request: Sys$WebForms$InitializeRequestEventArgs$get_request
}
Sys.WebForms.InitializeRequestEventArgs.registerClass('Sys.WebForms.Initi=
alizeRequestEventArgs', Sys.CancelEventArgs);
=20
Sys.WebForms.PageLoadedEventArgs =3D function =
Sys$WebForms$PageLoadedEventArgs(panelsUpdated, panelsCreated, =
dataItems) {
    /// <summary locid=3D"M:J#Sys.WebForms.PageLoadedEventArgs.#ctor" />
    /// <param name=3D"panelsUpdated" type=3D"Array"></param>
    /// <param name=3D"panelsCreated" type=3D"Array"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdated", type: Array},
        {name: "panelsCreated", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadedEventArgs.initializeBase(this);
    this._panelsUpdated =3D panelsUpdated;
    this._panelsCreated =3D panelsCreated;
    this._dataItems =3D dataItems || new Object();
}
    function Sys$WebForms$PageLoadedEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$PageLoadedEventArgs$get_panelsCreated() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsCreated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsCreated;
    }
    function Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsUpdated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdated;
    }
Sys.WebForms.PageLoadedEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$PageLoadedEventArgs$get_dataItems,
    get_panelsCreated: =
Sys$WebForms$PageLoadedEventArgs$get_panelsCreated,
    get_panelsUpdated: =
Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated
}
Sys.WebForms.PageLoadedEventArgs.registerClass('Sys.WebForms.PageLoadedEv=
entArgs', Sys.EventArgs);
Sys.WebForms.PageLoadingEventArgs =3D function =
Sys$WebForms$PageLoadingEventArgs(panelsUpdating, panelsDeleting, =
dataItems) {
    /// <summary locid=3D"M:J#Sys.WebForms.PageLoadingEventArgs.#ctor" =
/>
    /// <param name=3D"panelsUpdating" type=3D"Array"></param>
    /// <param name=3D"panelsDeleting" type=3D"Array"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdating", type: Array},
        {name: "panelsDeleting", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadingEventArgs.initializeBase(this);
    this._panelsUpdating =3D panelsUpdating;
    this._panelsDeleting =3D panelsDeleting;
    this._dataItems =3D dataItems || new Object();
}
    function Sys$WebForms$PageLoadingEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsDeleting"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsDeleting;
    }
    function Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdating;
    }
Sys.WebForms.PageLoadingEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$PageLoadingEventArgs$get_dataItems,
    get_panelsDeleting: =
Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting,
    get_panelsUpdating: =
Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating
}
Sys.WebForms.PageLoadingEventArgs.registerClass('Sys.WebForms.PageLoading=
EventArgs', Sys.EventArgs);
=20
Sys.WebForms.PageRequestManager =3D function =
Sys$WebForms$PageRequestManager() {
    this._form =3D null;
    this._activeDefaultButton =3D null;
    this._activeDefaultButtonClicked =3D false;
    this._updatePanelIDs =3D null;
    this._updatePanelClientIDs =3D null;
    this._updatePanelHasChildrenAsTriggers =3D null;
    this._asyncPostBackControlIDs =3D null;
    this._asyncPostBackControlClientIDs =3D null;
    this._postBackControlIDs =3D null;
    this._postBackControlClientIDs =3D null;
    this._scriptManagerID =3D null;
    this._pageLoadedHandler =3D null;
    this._additionalInput =3D null;
    this._onsubmit =3D null;
    this._onSubmitStatements =3D [];
    this._originalDoPostBack =3D null;
    this._originalDoPostBackWithOptions =3D null;
    this._originalFireDefaultButton =3D null;
    this._originalDoCallback =3D null;
    this._isCrossPost =3D false;
    this._postBackSettings =3D null;
    this._request =3D null;
    this._onFormSubmitHandler =3D null;
    this._onFormElementClickHandler =3D null;
    this._onWindowUnloadHandler =3D null;
    this._asyncPostBackTimeout =3D null;
    this._controlIDToFocus =3D null;
    this._scrollPosition =3D null;
    this._processingRequest =3D false;
    this._scriptDisposes =3D {};
   =20
    this._transientFields =3D ["__VIEWSTATEENCRYPTED", =
"__VIEWSTATEFIELDCOUNT"];
}
    function Sys$WebForms$PageRequestManager$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$WebForms$PageRequestManager$get_isInAsyncPostBack() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.PageRequestManager.isInAsyncPostBack"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request !=3D=3D null;
    }
    function Sys$WebForms$PageRequestManager$add_beginRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.beginRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("beginRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$remove_beginRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("beginRequest", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_endRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.endRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("endRequest", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_endRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("endRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$add_initializeRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.initializeRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("initializeRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$remove_initializeRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("initializeRequest", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_pageLoaded(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoaded" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("pageLoaded", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_pageLoaded(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("pageLoaded", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_pageLoading(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoading" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("pageLoading", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_pageLoading(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("pageLoading", =
handler);
    }
    function Sys$WebForms$PageRequestManager$abortPostBack() {
        if (!this._processingRequest && this._request) {
            this._request.get_executor().abort();
            this._request =3D null;
        }
    }
    function Sys$WebForms$PageRequestManager$_cancelPendingCallbacks() {
        for (var i =3D 0, l =3D window.__pendingCallbacks.length; i < l; =
i++) {
            var callback =3D window.__pendingCallbacks[i];
            if (callback) {
                if (!callback.async) {
                    window.__synchronousCallBackIndex =3D -1;
                }
                window.__pendingCallbacks[i] =3D null;
                var callbackFrameID =3D "__CALLBACKFRAME" + i;
                var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
                if (xmlRequestFrame) {
                    =
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
                }
            }
        }
    }
    function =
Sys$WebForms$PageRequestManager$_commitControls(updatePanelData, =
asyncPostBackTimeout) {
        if (updatePanelData) {
            this._updatePanelIDs =3D updatePanelData.updatePanelIDs;
            this._updatePanelClientIDs =3D =
updatePanelData.updatePanelClientIDs;
            this._updatePanelHasChildrenAsTriggers =3D =
updatePanelData.updatePanelHasChildrenAsTriggers;
            this._asyncPostBackControlIDs =3D =
updatePanelData.asyncPostBackControlIDs;
            this._asyncPostBackControlClientIDs =3D =
updatePanelData.asyncPostBackControlClientIDs;
            this._postBackControlIDs =3D =
updatePanelData.postBackControlIDs;
            this._postBackControlClientIDs =3D =
updatePanelData.postBackControlClientIDs;
        }
        if (typeof(asyncPostBackTimeout) !=3D=3D 'undefined' && =
asyncPostBackTimeout !=3D=3D null) {
            this._asyncPostBackTimeout =3D asyncPostBackTimeout * 1000;
        }
    }
    function Sys$WebForms$PageRequestManager$_createHiddenField(id, =
value) {
        var container, field =3D document.getElementById(id);
        if (field) {
            if (!field._isContained) {
                field.parentNode.removeChild(field);
            }
            else {
                container =3D field.parentNode;
            }
        }
        if (!container) {
            container =3D document.createElement('span');
            container.style.cssText =3D "display:none !important";
            this._form.appendChild(container);
        }
        container.innerHTML =3D "<input type=3D'hidden' />";
        field =3D container.childNodes[0];
        field._isContained =3D true;
        field.id =3D field.name =3D id;
        field.value =3D value;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError() =
{
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerTimeoutException: " + =
Sys.WebForms.Res.PRM_TimeoutError;
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerTimeoutException'});
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError(http=
StatusCode, message) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerServerErrorException: " +
            (message || String.format(Sys.WebForms.Res.PRM_ServerError, =
httpStatusCode));
        var e =3D Error.create(displayMessage, {
            name: 'Sys.WebForms.PageRequestManagerServerErrorException',
            httpStatusCode: httpStatusCode
        });
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError(pars=
erErrorMessage) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerParserErrorException: " + =
String.format(Sys.WebForms.Res.PRM_ParserError, parserErrorMessage);
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerParserErrorException'});
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPostBackSettings(async, panelID, =
sourceElement) {
        return { async:async, panelID:panelID, =
sourceElement:sourceElement };
    }
    function Sys$WebForms$PageRequestManager$_convertToClientIDs(source, =
destinationIDs, destinationClientIDs) {
        if (source) {
            for (var i =3D 0, l =3D source.length; i < l; i++) {
                Array.add(destinationIDs, source[i]);
                Array.add(destinationClientIDs, =
this._uniqueIDToClientID(source[i]));
            }
        }
    }
    function Sys$WebForms$PageRequestManager$_destroyTree(element) {
        if (element.nodeType =3D=3D=3D 1) {
            var childNodes =3D element.childNodes;
            for (var i =3D childNodes.length - 1; i >=3D 0; i--) {
                var node =3D childNodes[i];
                if (node.nodeType =3D=3D=3D 1) {
                    if (node.dispose && typeof(node.dispose) =3D=3D=3D =
"function") {
                        node.dispose();
                    }
                    else if (node.control && =
typeof(node.control.dispose) =3D=3D=3D "function") {
                        node.control.dispose();
                    }
                    var behaviors =3D =
Sys.UI.Behavior.getBehaviors(node);
                    for (var j =3D behaviors.length - 1; j >=3D 0; j--) =
{
                        behaviors[j].dispose();
                    }
                    this._destroyTree(node);
                }
            }
        }
    }
    function Sys$WebForms$PageRequestManager$dispose() {
        if (this._form) {
            Sys.UI.DomEvent.removeHandler(this._form, 'submit', =
this._onFormSubmitHandler);
            Sys.UI.DomEvent.removeHandler(this._form, 'click', =
this._onFormElementClickHandler);
            Sys.UI.DomEvent.removeHandler(window, 'unload', =
this._onWindowUnloadHandler);
            Sys.UI.DomEvent.removeHandler(window, 'load', =
this._pageLoadedHandler);
        }
        if (this._originalDoPostBack) {
            window.__doPostBack =3D this._originalDoPostBack;
            this._originalDoPostBack =3D null;
        }
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
this._originalDoPostBackWithOptions;
            this._originalDoPostBackWithOptions =3D null;
        }
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
this._originalFireDefaultButton;
            this._originalFireDefaultButton =3D null;
        }
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D this._originalDoCallback;
            this._originalDoCallback =3D null;
        }
        this._form =3D null;
        this._updatePanelIDs =3D null;
        this._updatePanelClientIDs =3D null;
        this._asyncPostBackControlIDs =3D null;
        this._asyncPostBackControlClientIDs =3D null;
        this._postBackControlIDs =3D null;
        this._postBackControlClientIDs =3D null;
        this._asyncPostBackTimeout =3D null;
        this._scrollPosition =3D null;
    }
    function Sys$WebForms$PageRequestManager$_doCallback(eventTarget, =
eventArgument, eventCallback, context, errorCallback, useAsync) {
        if (!this.get_isInAsyncPostBack()) {
            this._originalDoCallback(eventTarget, eventArgument, =
eventCallback, context, errorCallback, useAsync);
        }
    }
    function Sys$WebForms$PageRequestManager$_doPostBack(eventTarget, =
eventArgument) {
        this._additionalInput =3D null;
        var form =3D this._form;
        if ((eventTarget =3D=3D=3D null) || (typeof(eventTarget) =
=3D=3D=3D "undefined") || (this._isCrossPost)) {
            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
            this._isCrossPost =3D false;
        }
        else {
            var clientID =3D this._uniqueIDToClientID(eventTarget);
            var postBackElement =3D document.getElementById(clientID);
            if (!postBackElement) {
                if (Array.contains(this._asyncPostBackControlIDs, =
eventTarget)) {
                    this._postBackSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
eventTarget, null);
                }
                else {
                    if (Array.contains(this._postBackControlIDs, =
eventTarget)) {
                        this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                    }
                    else {
                        var nearestUniqueIDMatch =3D =
this._findNearestElement(eventTarget);
                        if (nearestUniqueIDMatch) {
                            this._postBackSettings =3D =
this._getPostBackSettings(nearestUniqueIDMatch, eventTarget);
                        }
                        else {
                            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                        }
                    }
                }
            }
            else {
                this._postBackSettings =3D =
this._getPostBackSettings(postBackElement, eventTarget);
            }
        }
        if (!this._postBackSettings.async) {
            form.onsubmit =3D this._onsubmit;
            this._originalDoPostBack(eventTarget, eventArgument);
            form.onsubmit =3D null;
            return;
        }
        form.__EVENTTARGET.value =3D eventTarget;
        form.__EVENTARGUMENT.value =3D eventArgument;
        this._onFormSubmit();
    }
    function =
Sys$WebForms$PageRequestManager$_doPostBackWithOptions(options) {
        this._isCrossPost =3D options && options.actionUrl;
        this._originalDoPostBackWithOptions(options);
    }
    function Sys$WebForms$PageRequestManager$_elementContains(container, =
element) {
        while (element) {
            if (element =3D=3D=3D container) {
                return true;
            }
            element =3D element.parentNode;
        }
        return false;
    }
    function Sys$WebForms$PageRequestManager$_endPostBack(error, =
executor, data) {
        if (this._request =3D=3D=3D executor.get_webRequest()) {
            this._processingRequest =3D false;
            this._additionalInput =3D null;
            this._request =3D null;
        }
        var handler =3D =
this._get_eventHandlerList().getHandler("endRequest");
        var errorHandled =3D false;
        if (handler) {
            var eventArgs =3D new =
Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, =
executor);
            handler(this, eventArgs);
            errorHandled =3D eventArgs.get_errorHandled();
        }
        if (error && !errorHandled) {
            throw error;
        }
    }
    function =
Sys$WebForms$PageRequestManager$_findNearestElement(uniqueID) {
        while (uniqueID.length > 0) {
            var clientID =3D this._uniqueIDToClientID(uniqueID);
            var element =3D document.getElementById(clientID);
            if (element) {
                return element;
            }
            var indexOfLastDollar =3D uniqueID.lastIndexOf('$');
            if (indexOfLastDollar =3D=3D=3D -1) {
                return null;
            }
            uniqueID =3D uniqueID.substring(0, indexOfLastDollar);
        }
        return null;
    }
    function Sys$WebForms$PageRequestManager$_findText(text, location) {
        var startIndex =3D Math.max(0, location - 20);
        var endIndex =3D Math.min(text.length, location + 20);
        return text.substring(startIndex, endIndex);
    }
    function Sys$WebForms$PageRequestManager$_fireDefaultButton(event, =
target) {
        if (event.keyCode =3D=3D=3D 13) {
            var src =3D event.srcElement || event.target;
            if (!src || (src.tagName.toLowerCase() !=3D=3D "textarea")) =
{
                var defaultButton =3D document.getElementById(target);
                if (defaultButton && (typeof(defaultButton.click) =
!=3D=3D "undefined")) {
                   =20
                   =20
                    this._activeDefaultButton =3D defaultButton;
                    this._activeDefaultButtonClicked =3D false;
                    try {
                        defaultButton.click();
                    }
                    finally {
                        this._activeDefaultButton =3D null;
                    }
                   =20
                   =20
                    event.cancelBubble =3D true;
                    if (typeof(event.stopPropagation) =3D=3D=3D =
"function") {
                        event.stopPropagation();
                    }
                    return false;
                }
            }
        }
        return true;
    }
    function =
Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs(initialLoad, =
data) {
        var updated =3D [];
        var created =3D [];
        var upData =3D data ? data.updatePanelData : null;
        var newIDs, childIDs, refreshedIDs;
        if (!upData) {
            newIDs =3D this._updatePanelIDs;
            childIDs =3D null;
            refreshedIDs =3D null;
        }
        else {
            newIDs =3D upData.updatePanelIDs;
            childIDs =3D upData.childUpdatePanelIDs;
            refreshedIDs =3D upData.panelsToRefreshIDs;
        }
        var i, l;
        if (refreshedIDs) {
            for (i =3D 0, l =3D refreshedIDs.length; i < l; i++) {
                Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
            }
        }
        for (i =3D 0, l =3D newIDs.length; i < l; i++) {
            if (initialLoad || Array.indexOf(childIDs, newIDs[i]) =
!=3D=3D -1) {
                Array.add(created, =
document.getElementById(this._uniqueIDToClientID(newIDs[i])));
            }
        }
        return new Sys.WebForms.PageLoadedEventArgs(updated, created, =
data ? data.dataItems : {});
    }
    function =
Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs(data) {
        var updated =3D [];
        var deleted =3D [];
        var upData =3D data.updatePanelData;
        var oldIDs =3D upData.oldUpdatePanelIDs;
        var newIDs =3D upData.updatePanelIDs;
        var childIDs =3D upData.childUpdatePanelIDs;
        var refreshedIDs =3D upData.panelsToRefreshIDs;
        var i, l;
        for (i =3D 0, l =3D refreshedIDs.length; i < l; i++) {
            Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
        }
        for (i =3D 0, l =3D oldIDs.length; i < l; i++) {
            if (Array.indexOf(refreshedIDs, oldIDs[i]) =3D=3D=3D -1 &&
                (Array.indexOf(newIDs, oldIDs[i]) =3D=3D=3D -1 || =
Array.indexOf(childIDs, oldIDs[i]) > -1)) {
                Array.add(deleted, =
document.getElementById(this._uniqueIDToClientID(oldIDs[i])));
            }
        }
        return new Sys.WebForms.PageLoadingEventArgs(updated, deleted, =
data.dataItems);
    }
    function =
Sys$WebForms$PageRequestManager$_getPostBackSettings(element, =
elementUniqueID) {
        var originalElement =3D element;
        var proposedSettings =3D null;
        while (element) {
            if (element.id) {
                if (!proposedSettings && =
Array.contains(this._asyncPostBackControlClientIDs, element.id)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
Array.contains(this._postBackControlClientIDs, element.id)) {
                        return this._createPostBackSettings(false, null, =
null);
                    }
                    else {
                        var indexOfPanel =3D =
Array.indexOf(this._updatePanelClientIDs, element.id);
                        if (indexOfPanel !=3D=3D -1) {
                            if =
(this._updatePanelHasChildrenAsTriggers[indexOfPanel]) {
                                return =
this._createPostBackSettings(true, this._updatePanelIDs[indexOfPanel] + =
'|' + elementUniqueID, originalElement);
                            }
                            else {
                                return =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                            }
                        }
                    }
                }
                if (!proposedSettings && =
this._matchesParentIDInList(element.id, =
this._asyncPostBackControlClientIDs)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
this._matchesParentIDInList(element.id, this._postBackControlClientIDs)) =
{
                        return this._createPostBackSettings(false, null, =
null);
                    }
                }
            }
            element =3D element.parentNode;
        }
        if (!proposedSettings) {
            return this._createPostBackSettings(false, null, null);
        }
        else {
            return proposedSettings;
        }
    }
    function Sys$WebForms$PageRequestManager$_getScrollPosition() {
        var d =3D document.documentElement;
        if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
            return {
                x: d.scrollLeft,
                y: d.scrollTop
            };
        }
        else {
            d =3D document.body;
            if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
                return {
                    x: d.scrollLeft,
                    y: d.scrollTop
                };
            }
            else {
                if (this._validPosition(window.pageXOffset) || =
this._validPosition(window.pageYOffset)) {
                    return {
                        x: window.pageXOffset,
                        y: window.pageYOffset
                    };
                }
                else {
                    return {
                        x: 0,
                        y: 0
                    };
                }
            }
        }
    }
    function =
Sys$WebForms$PageRequestManager$_initializeInternal(scriptManagerID, =
formElement) {
        if (this._prmInitialized) {
            throw =
Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice);
        }
        this._prmInitialized =3D true;
        this._scriptManagerID =3D scriptManagerID;
        this._form =3D formElement;
        this._onsubmit =3D this._form.onsubmit;
        this._form.onsubmit =3D null;
        this._onFormSubmitHandler =3D Function.createDelegate(this, =
this._onFormSubmit);
        this._onFormElementClickHandler =3D =
Function.createDelegate(this, this._onFormElementClick);
        this._onWindowUnloadHandler =3D Function.createDelegate(this, =
this._onWindowUnload);
        Sys.UI.DomEvent.addHandler(this._form, 'submit', =
this._onFormSubmitHandler);
        Sys.UI.DomEvent.addHandler(this._form, 'click', =
this._onFormElementClickHandler);
        Sys.UI.DomEvent.addHandler(window, 'unload', =
this._onWindowUnloadHandler);
        this._originalDoPostBack =3D window.__doPostBack;
        if (this._originalDoPostBack) {
            window.__doPostBack =3D Function.createDelegate(this, =
this._doPostBack);
        }
        this._originalDoPostBackWithOptions =3D =
window.WebForm_DoPostBackWithOptions;
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
Function.createDelegate(this, this._doPostBackWithOptions);
        }
        this._originalFireDefaultButton =3D =
window.WebForm_FireDefaultButton;
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
Function.createDelegate(this, this._fireDefaultButton);
        }
        this._originalDoCallback =3D window.WebForm_DoCallback;
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D Function.createDelegate(this, =
this._doCallback);
        }
        this._pageLoadedHandler =3D Function.createDelegate(this, =
this._pageLoadedInitialLoad);
        Sys.UI.DomEvent.addHandler(window, 'load', =
this._pageLoadedHandler);
    }
    function =
Sys$WebForms$PageRequestManager$_matchesParentIDInList(clientID, =
parentIDList) {
        for (var i =3D 0, l =3D parentIDList.length; i < l; i++) {
            if (clientID.startsWith(parentIDList[i] + "_")) {
                return true;
            }
        }
        return false;
    }
    function =
Sys$WebForms$PageRequestManager$_onFormElementActive(element, offsetX, =
offsetY) {
        if (element.disabled) {
            return;
        }
        this._postBackSettings =3D this._getPostBackSettings(element, =
element.name);
        if (element.name) {
            var tagName =3D element.tagName.toUpperCase();
            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if (type =3D=3D=3D 'submit') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
                }
                else if (type =3D=3D=3D 'image') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '.x=3D' + offsetX + '&' + =
encodeURIComponent(element.name) + '.y=3D' + offsetY;
                }
            }
            else if ((tagName =3D=3D=3D 'BUTTON') && =
(element.name.length !=3D=3D 0) && (element.type =3D=3D=3D 'submit')) {
                this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
            }
        }
    }
    function Sys$WebForms$PageRequestManager$_onFormElementClick(evt) {
        this._activeDefaultButtonClicked =3D (evt.target =3D=3D=3D =
this._activeDefaultButton);
        this._onFormElementActive(evt.target, evt.offsetX, evt.offsetY);
    }
    function Sys$WebForms$PageRequestManager$_onFormSubmit(evt) {
        var continueSubmit =3D true;
        var isCrossPost =3D this._isCrossPost;
        this._isCrossPost =3D false;
        var i, l;
        if (this._onsubmit) {
            continueSubmit =3D this._onsubmit();
        }
        if (continueSubmit) {
            for (i =3D 0, l =3D this._onSubmitStatements.length; i < l; =
i++) {
                if (!this._onSubmitStatements[i]()) {
                    continueSubmit =3D false;
                    break;
                }
            }
        }
        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
        var form =3D this._form;
        if (isCrossPost) {
            return;
        }
        if (this._activeDefaultButton && =
!this._activeDefaultButtonClicked) {
            this._onFormElementActive(this._activeDefaultButton, 0, 0);
        }
        if (!this._postBackSettings.async) {
            return;
        }
        var formBody =3D new Sys.StringBuilder();
        formBody.append(encodeURIComponent(this._scriptManagerID) + =
'=3D' + encodeURIComponent(this._postBackSettings.panelID) + '&');
        var count =3D form.elements.length;
        for (i =3D 0; i < count; i++) {
            var element =3D form.elements[i];
            var name =3D element.name;
            if (typeof(name) =3D=3D=3D "undefined" || (name =3D=3D=3D =
null) || (name.length =3D=3D=3D 0) || (name =3D=3D=3D =
this._scriptManagerID)) {
                continue;
            }
            var tagName =3D element.tagName.toUpperCase();
            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if ((type =3D=3D=3D 'text') ||
                    (type =3D=3D=3D 'password') ||
                    (type =3D=3D=3D 'hidden') ||
                    (((type =3D=3D=3D 'checkbox') || (type =3D=3D=3D =
'radio')) && element.checked)) {
                    formBody.append(encodeURIComponent(name));
                    formBody.append('=3D');
                    formBody.append(encodeURIComponent(element.value));
                    formBody.append('&');
                }
            }
            else if (tagName =3D=3D=3D 'SELECT') {
                var optionCount =3D element.options.length;
                for (var j =3D 0; j < optionCount; j++) {
                    var option =3D element.options[j];
                    if (option.selected) {
                        formBody.append(encodeURIComponent(name));
                        formBody.append('=3D');
                        =
formBody.append(encodeURIComponent(option.value));
                        formBody.append('&');
                    }
                }
            }
            else if (tagName =3D=3D=3D 'TEXTAREA') {
                formBody.append(encodeURIComponent(name));
                formBody.append('=3D');
                formBody.append(encodeURIComponent(element.value));
                formBody.append('&');
            }
        }
        formBody.append("__ASYNCPOST=3Dtrue&");
        if (this._additionalInput) {
            formBody.append(this._additionalInput);
            this._additionalInput =3D null;
        }
       =20
        var request =3D new Sys.Net.WebRequest();
        var action =3D form.action;
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.InternetExplorer) {
            var fragmentIndex =3D action.indexOf('#');
            if (fragmentIndex !=3D=3D -1) {
                action =3D action.substr(0, fragmentIndex);
            }
            var queryIndex =3D action.indexOf('?');
            if (queryIndex !=3D=3D -1) {
                var path =3D action.substr(0, queryIndex);
                if (path.indexOf("%") =3D=3D=3D -1) {
                    action =3D encodeURI(path) + =
action.substr(queryIndex);
                }
            }
            else if (action.indexOf("%") =3D=3D=3D -1) {
                action =3D encodeURI(action);
            }
        }
        request.set_url(action);
        request.get_headers()['X-MicrosoftAjax'] =3D 'Delta=3Dtrue';
        request.get_headers()['Cache-Control'] =3D 'no-cache';
        request.set_timeout(this._asyncPostBackTimeout);
        request.add_completed(Function.createDelegate(this, =
this._onFormSubmitCompleted));
        request.set_body(formBody.toString());
        var eventArgs, handler =3D =
this._get_eventHandlerList().getHandler("initializeRequest");
        if (handler) {
            eventArgs =3D new =
Sys.WebForms.InitializeRequestEventArgs(request, =
this._postBackSettings.sourceElement);
            handler(this, eventArgs);
            continueSubmit =3D !eventArgs.get_cancel();
        }
        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
        this._scrollPosition =3D this._getScrollPosition();
        this.abortPostBack();
        handler =3D =
this._get_eventHandlerList().getHandler("beginRequest");
        if (handler) {
            eventArgs =3D new =
Sys.WebForms.BeginRequestEventArgs(request, =
this._postBackSettings.sourceElement);
            handler(this, eventArgs);
        }
       =20
        if (this._originalDoCallback) {
            this._cancelPendingCallbacks();
        }
        this._request =3D request;
        this._processingRequest =3D false;
        request.invoke();
        if (evt) {
            evt.preventDefault();
        }
    }
    function =
Sys$WebForms$PageRequestManager$_onFormSubmitCompleted(sender, =
eventArgs) {
        this._processingRequest =3D true;
        if (sender.get_timedOut()) {
            =
this._endPostBack(this._createPageRequestManagerTimeoutError(), sender, =
null);
            return;
        }
        if (sender.get_aborted()) {
            this._endPostBack(null, sender, null);
            return;
        }
        if (!this._request || (sender.get_webRequest() !=3D=3D =
this._request)) {
            return;
        }
        if (sender.get_statusCode() !=3D=3D 200) {
            =
this._endPostBack(this._createPageRequestManagerServerError(sender.get_st=
atusCode()), sender, null);
            return;
        }
        var data =3D this._parseDelta(sender);
        if (!data) return;
       =20
        var i, l;
        if (data.asyncPostBackControlIDsNode && =
data.postBackControlIDsNode &&
            data.updatePanelIDsNode && data.panelsToRefreshNode && =
data.childUpdatePanelIDsNode) {
           =20
            var oldUpdatePanelIDs =3D this._updatePanelIDs;
            var childUpdatePanelIDsString =3D =
data.childUpdatePanelIDsNode.content;
            var childUpdatePanelIDs =3D childUpdatePanelIDsString.length =
? childUpdatePanelIDsString.split(',') : [];
            var asyncPostBackControlIDsArray =3D =
this._splitNodeIntoArray(data.asyncPostBackControlIDsNode);
            var postBackControlIDsArray =3D =
this._splitNodeIntoArray(data.postBackControlIDsNode);
            var updatePanelIDsArray =3D =
this._splitNodeIntoArray(data.updatePanelIDsNode);
            var panelsToRefreshIDs =3D =
this._splitNodeIntoArray(data.panelsToRefreshNode);
            for (i =3D 0, l =3D panelsToRefreshIDs.length; i < l; i++) {
                var panelClientID =3D =
this._uniqueIDToClientID(panelsToRefreshIDs[i]);
                if (!document.getElementById(panelClientID)) {
                    =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, panelClientID)), sender, data);
                    return;
                }
            }
           =20
            var updatePanelData =3D this._processUpdatePanelArrays(
                updatePanelIDsArray,
                asyncPostBackControlIDsArray,
                postBackControlIDsArray);
            updatePanelData.oldUpdatePanelIDs =3D oldUpdatePanelIDs;
            updatePanelData.childUpdatePanelIDs =3D childUpdatePanelIDs;
            updatePanelData.panelsToRefreshIDs =3D panelsToRefreshIDs;
            data.updatePanelData =3D updatePanelData;
        }
        data.dataItems =3D {};
        var node;
        for (i =3D 0, l =3D data.dataItemNodes.length; i < l; i++) {
            node =3D data.dataItemNodes[i];
            data.dataItems[node.id] =3D node.content;
        }
        for (i =3D 0, l =3D data.dataItemJsonNodes.length; i < l; i++) {
            node =3D data.dataItemJsonNodes[i];
            data.dataItems[node.id] =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(node.content);
        }
        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoading");
        if (handler) {
            handler(this, this._getPageLoadingEventArgs(data));
        }
       =20
        Sys._ScriptLoader.readLoadedScripts();
        Sys.Application.beginCreateComponents();
        var scriptLoader =3D Sys._ScriptLoader.getInstance();
        this._queueScripts(scriptLoader, data.scriptBlockNodes, true, =
false);
       =20
        this._processingRequest =3D true;
        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadComplete, data)),
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadFailed, data)),
            null);       =20
    }
    function Sys$WebForms$PageRequestManager$_onWindowUnload(evt) {
        this.dispose();
    }
    function Sys$WebForms$PageRequestManager$_pageLoaded(initialLoad, =
data) {
        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoaded");
        if (handler) {
            handler(this, this._getPageLoadedEventArgs(initialLoad, =
data));
        }
        if (!initialLoad) {
            Sys.Application.raiseLoad();
        }
    }
    function Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad(evt) =
{
        this._pageLoaded(true, null);
    }
    function Sys$WebForms$PageRequestManager$_parseDelta(executor) {
        var reply =3D executor.get_responseData();
        var delimiterIndex, len, type, id, content;
        var replyIndex =3D 0;
        var parserErrorDetails =3D null;
        var delta =3D [];
        while (replyIndex < reply.length) {
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            len =3D parseInt(reply.substring(replyIndex, =
delimiterIndex), 10);
            if ((len % 1) !=3D=3D 0) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            replyIndex =3D delimiterIndex + 1;
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            type =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            id =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;
            if ((replyIndex + len) >=3D reply.length) {
                parserErrorDetails =3D this._findText(reply, =
reply.length);
                break;
            }
            content =3D reply.substr(replyIndex, len);
            replyIndex +=3D len;
            if (reply.charAt(replyIndex) !=3D=3D '|') {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            replyIndex++;
            Array.add(delta, {type: type, id: id, content: content});
        }
        if (parserErrorDetails) {
            =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_ParserErrorDetails, parserErrorDetails)), =
executor, null);
            return null;
        }
        var updatePanelNodes =3D [];
        var hiddenFieldNodes =3D [];
        var arrayDeclarationNodes =3D [];
        var scriptBlockNodes =3D [];
        var scriptStartupNodes =3D [];
        var expandoNodes =3D [];
        var onSubmitNodes =3D [];
        var dataItemNodes =3D [];
        var dataItemJsonNodes =3D [];
        var scriptDisposeNodes =3D [];
        var asyncPostBackControlIDsNode, postBackControlIDsNode,
            updatePanelIDsNode, asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode, panelsToRefreshNode, =
formActionNode;
        for (var i =3D 0, l =3D delta.length; i < l; i++) {
            var deltaNode =3D delta[i];
            switch (deltaNode.type) {
                case "updatePanel":
                    Array.add(updatePanelNodes, deltaNode);
                    break;
                case "hiddenField":
                    Array.add(hiddenFieldNodes, deltaNode);
                    break;
                case "arrayDeclaration":
                    Array.add(arrayDeclarationNodes, deltaNode);
                    break;
                case "scriptBlock":
                    Array.add(scriptBlockNodes, deltaNode);
                    break;
                case "scriptStartupBlock":
                    Array.add(scriptStartupNodes, deltaNode);
                    break;
                case "expando":
                    Array.add(expandoNodes, deltaNode);
                    break;
                case "onSubmit":
                    Array.add(onSubmitNodes, deltaNode);
                    break;
                case "asyncPostBackControlIDs":
                    asyncPostBackControlIDsNode =3D deltaNode;
                    break;
                case "postBackControlIDs":
                    postBackControlIDsNode =3D deltaNode;
                    break;
                case "updatePanelIDs":
                    updatePanelIDsNode =3D deltaNode;
                    break;
                case "asyncPostBackTimeout":
                    asyncPostBackTimeoutNode =3D deltaNode;
                    break;
                case "childUpdatePanelIDs":
                    childUpdatePanelIDsNode =3D deltaNode;
                    break;
                case "panelsToRefreshIDs":
                    panelsToRefreshNode =3D deltaNode;
                    break;
                case "formAction":
                    formActionNode =3D deltaNode;
                    break;
                case "dataItem":
                    Array.add(dataItemNodes, deltaNode);
                    break;
                case "dataItemJson":
                    Array.add(dataItemJsonNodes, deltaNode);
                    break;
                case "scriptDispose":
                    Array.add(scriptDisposeNodes, deltaNode);
                    break;
                case "pageRedirect":
                    if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                        var anchor =3D document.createElement("a");
                        anchor.style.display =3D 'none';
                        anchor.attachEvent("onclick", cancelBubble);
                        anchor.href =3D deltaNode.content;
                        document.body.appendChild(anchor);
                        anchor.click();
                        anchor.detachEvent("onclick", cancelBubble);
                        document.body.removeChild(anchor);
                       =20
                        function cancelBubble(e) {
                            e.cancelBubble =3D true;
                        }
                    }
                    else {
                        window.location.href =3D deltaNode.content;
                    }
                    return;
                case "error":
                    =
this._endPostBack(this._createPageRequestManagerServerError(Number.parseI=
nvariant(deltaNode.id), deltaNode.content), executor, null);
                    return null;
                case "pageTitle":
                    document.title =3D deltaNode.content;
                    break;
                case "focus":
                    this._controlIDToFocus =3D deltaNode.content;
                    break;
                default:
                    =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_UnknownToken, deltaNode.type)), executor, null);
                    return null;
            }=20
        }=20
        return {
            executor: executor,
            updatePanelNodes: updatePanelNodes,
            hiddenFieldNodes: hiddenFieldNodes,
            arrayDeclarationNodes: arrayDeclarationNodes,
            scriptBlockNodes: scriptBlockNodes,
            scriptStartupNodes: scriptStartupNodes,
            expandoNodes: expandoNodes,
            onSubmitNodes: onSubmitNodes,
            dataItemNodes: dataItemNodes,
            dataItemJsonNodes: dataItemJsonNodes,
            scriptDisposeNodes: scriptDisposeNodes,
            asyncPostBackControlIDsNode: asyncPostBackControlIDsNode,
            postBackControlIDsNode: postBackControlIDsNode,
            updatePanelIDsNode: updatePanelIDsNode,
            asyncPostBackTimeoutNode: asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode: childUpdatePanelIDsNode,
            panelsToRefreshNode: panelsToRefreshNode,
            formActionNode: formActionNode };
    }
    function =
Sys$WebForms$PageRequestManager$_processUpdatePanelArrays(updatePanelIDs,=
 asyncPostBackControlIDs, postBackControlIDs) {
        var newUpdatePanelIDs;
        var newUpdatePanelClientIDs;
        var newUpdatePanelHasChildrenAsTriggers;
       =20
        if (updatePanelIDs) {
            var l =3D updatePanelIDs.length;
            newUpdatePanelIDs =3D new Array(l);
            newUpdatePanelClientIDs =3D new Array(l);
            newUpdatePanelHasChildrenAsTriggers =3D new Array(l);
           =20
            for (var i =3D 0; i < l; i++) {
                var realPanelID =3D updatePanelIDs[i].substr(1);
                var childrenAsTriggers =3D (updatePanelIDs[i].charAt(0) =
=3D=3D=3D 't');
                newUpdatePanelHasChildrenAsTriggers[i] =3D =
childrenAsTriggers;
                newUpdatePanelIDs[i] =3D realPanelID;
                newUpdatePanelClientIDs[i] =3D =
this._uniqueIDToClientID(realPanelID);
            }
        }
        else {
            newUpdatePanelIDs =3D [];
            newUpdatePanelClientIDs =3D [];
            newUpdatePanelHasChildrenAsTriggers =3D [];
        }
        var newAsyncPostBackControlIDs =3D [];
        var newAsyncPostBackControlClientIDs =3D [];
        this._convertToClientIDs(asyncPostBackControlIDs, =
newAsyncPostBackControlIDs, newAsyncPostBackControlClientIDs);
        var newPostBackControlIDs =3D [];
        var newPostBackControlClientIDs =3D [];
        this._convertToClientIDs(postBackControlIDs, =
newPostBackControlIDs, newPostBackControlClientIDs);
       =20
        return {
            updatePanelIDs: newUpdatePanelIDs,
            updatePanelClientIDs: newUpdatePanelClientIDs,
            updatePanelHasChildrenAsTriggers: =
newUpdatePanelHasChildrenAsTriggers,
            asyncPostBackControlIDs: newAsyncPostBackControlIDs,
            asyncPostBackControlClientIDs: =
newAsyncPostBackControlClientIDs,
            postBackControlIDs: newPostBackControlIDs,
            postBackControlClientIDs: newPostBackControlClientIDs
        };
    }
    function Sys$WebForms$PageRequestManager$_queueScripts(scriptLoader, =
scriptBlockNodes, queueIncludes, queueBlocks) {
       =20
        for (var i =3D 0, l =3D scriptBlockNodes.length; i < l; i++) {
            var scriptBlockType =3D scriptBlockNodes[i].id;
            switch (scriptBlockType) {
                case "ScriptContentNoTags":
                    if (!queueBlocks) {
                        continue;
                    }
                    =
scriptLoader.queueScriptBlock(scriptBlockNodes[i].content);
                    break;
                case "ScriptContentWithTags":
                    var scriptTagAttributes;
                    eval("scriptTagAttributes =3D " + =
scriptBlockNodes[i].content);
                    if (scriptTagAttributes.src) {
                        if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptTagAttributes.src)) {
                            continue;
                        }
                    }
                    else if (!queueBlocks) {
                        continue;
                    }
                    =
scriptLoader.queueCustomScriptTag(scriptTagAttributes);
                    break;
                case "ScriptPath":
                    if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptBlockNodes[i].content)) {
                        continue;
                    }
                    =
scriptLoader.queueScriptReference(scriptBlockNodes[i].content);
                    break;
            }
        }       =20
    }
    function =
Sys$WebForms$PageRequestManager$_registerDisposeScript(panelID, =
disposeScript) {
        if (!this._scriptDisposes[panelID]) {
            this._scriptDisposes[panelID] =3D [disposeScript];
        }
        else {
            Array.add(this._scriptDisposes[panelID], disposeScript);
        }
    }
    function =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadComplete(scriptLoader,=
 data) {
       =20
       =20
        if (data.executor.get_webRequest() !=3D=3D this._request) {
            return;
        }
       =20
        this._commitControls(data.updatePanelData,
            data.asyncPostBackTimeoutNode ? =
data.asyncPostBackTimeoutNode.content : null);
        if (data.formActionNode) {
            this._form.action =3D data.formActionNode.content;
        }
       =20
        var i, l, node;
        for (i =3D 0, l =3D data.updatePanelNodes.length; i < l; i++) {
            node =3D data.updatePanelNodes[i];
            var updatePanelElement =3D document.getElementById(node.id);
            if (!updatePanelElement) {
                =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, node.id)), data.executor, data);
                return;
            }
            this._updatePanel(updatePanelElement, node.content);
        }
        for (i =3D 0, l =3D data.scriptDisposeNodes.length; i < l; i++) =
{
            node =3D data.scriptDisposeNodes[i];
            this._registerDisposeScript(node.id, node.content);
        }
        for (i =3D 0, l =3D this._transientFields.length; i < l; i++) {
            var field =3D =
document.getElementById(this._transientFields[i]);
            if (field) {
                var toRemove =3D field._isContained ? field.parentNode : =
field;
                toRemove.parentNode.removeChild(toRemove);
            }
        }
        for (i =3D 0, l =3D data.hiddenFieldNodes.length; i < l; i++) {
            node =3D data.hiddenFieldNodes[i];
            this._createHiddenField(node.id, node.content);
        }
       =20
        if (data.scriptsFailed) {
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(data.scriptsFailed.src, =
data.scriptsFailed.multipleCallbacks);
        }
       =20
        this._queueScripts(scriptLoader, data.scriptBlockNodes, false, =
true);
        var arrayScript =3D '';
        for (i =3D 0, l =3D data.arrayDeclarationNodes.length; i < l; =
i++) {
            node =3D data.arrayDeclarationNodes[i];
            arrayScript +=3D =
"Sys.WebForms.PageRequestManager._addArrayElement('" + node.id + "', " + =
node.content + ");\r\n";
        }
        var expandoScript =3D '';
        for (i =3D 0, l =3D data.expandoNodes.length; i < l; i++) {
            node =3D data.expandoNodes[i];
            expandoScript +=3D node.id + " =3D " + node.content + =
"\r\n";
        }
        if (arrayScript.length) {
            scriptLoader.queueScriptBlock(arrayScript);
        }
        if (expandoScript.length) {
            scriptLoader.queueScriptBlock(expandoScript);
        }
       =20
        this._queueScripts(scriptLoader, data.scriptStartupNodes, true, =
true);
        var onSubmitStatementScript =3D '';
        for (i =3D 0, l =3D data.onSubmitNodes.length; i < l; i++) {
            if (i =3D=3D=3D 0) {
                onSubmitStatementScript =3D =
'Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStateme=
nts, function() {\r\n';
            }
            onSubmitStatementScript +=3D data.onSubmitNodes[i].content + =
"\r\n";
        }
        if (onSubmitStatementScript.length) {
            onSubmitStatementScript +=3D "\r\nreturn true;\r\n});\r\n";
            scriptLoader.queueScriptBlock(onSubmitStatementScript);
        }
        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptsLoadComplete, data)), null, null);
    }
    function =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadFailed(scriptLoader, =
scriptElement, multipleCallbacks, data) {
        data.scriptsFailed =3D { src: scriptElement.src, =
multipleCallbacks: multipleCallbacks };
        this._scriptIncludesLoadComplete(scriptLoader, data);
    }
    function =
Sys$WebForms$PageRequestManager$_scriptsLoadComplete(scriptLoader, data) =
{
       =20
       =20
        var response =3D data.executor;
        if (window.__theFormPostData) {
            window.__theFormPostData =3D "";
        }
        if (window.__theFormPostCollection) {
            window.__theFormPostCollection =3D [];
        }
        if (window.WebForm_InitCallback) {
            window.WebForm_InitCallback();
        }
        if (this._scrollPosition) {
            if (window.scrollTo) {
                window.scrollTo(this._scrollPosition.x, =
this._scrollPosition.y);
            }
            this._scrollPosition =3D null;
        }
        Sys.Application.endCreateComponents();
        this._pageLoaded(false, data);
        this._endPostBack(null, response, data);
        if (this._controlIDToFocus) {
            var focusTarget;
            var oldContentEditableSetting;
            if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                var targetControl =3D $get(this._controlIDToFocus);
                focusTarget =3D targetControl;
                if (targetControl && (!WebForm_CanFocus(targetControl))) =
{
                    focusTarget =3D =
WebForm_FindFirstFocusableChild(targetControl);
                }
                if (focusTarget && (typeof(focusTarget.contentEditable) =
!=3D=3D "undefined")) {
                    oldContentEditableSetting =3D =
focusTarget.contentEditable;
                    focusTarget.contentEditable =3D false;
                }
                else {
                    focusTarget =3D null;
                }
            }
            WebForm_AutoFocus(this._controlIDToFocus);
            if (focusTarget) {
                focusTarget.contentEditable =3D =
oldContentEditableSetting;
            }
            this._controlIDToFocus =3D null;
        }
    }
    function Sys$WebForms$PageRequestManager$_splitNodeIntoArray(node) {
        var str =3D node.content;
        var arr =3D str.length ? str.split(',') : [];
        return arr;
    }
    function =
Sys$WebForms$PageRequestManager$_uniqueIDToClientID(uniqueID) {
        return uniqueID.replace(/\$/g, '_');
    }
    function =
Sys$WebForms$PageRequestManager$_updateControls(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout) {
        this._commitControls(
            this._processUpdatePanelArrays(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs),
            asyncPostBackTimeout);
    }
    function =
Sys$WebForms$PageRequestManager$_updatePanel(updatePanelElement, =
rendering) {
        for (var updatePanelID in this._scriptDisposes) {
            if (this._elementContains(updatePanelElement, =
document.getElementById(updatePanelID))) {
                var disposeScripts =3D =
this._scriptDisposes[updatePanelID];
                for (var i =3D 0, l =3D disposeScripts.length; i < l; =
i++) {
                    eval(disposeScripts[i]);
                }
                delete this._scriptDisposes[updatePanelID];
            }
        }
        this._destroyTree(updatePanelElement);
        updatePanelElement.innerHTML =3D rendering;
    }
    function Sys$WebForms$PageRequestManager$_validPosition(position) {
        return (typeof(position) !=3D=3D "undefined") && (position =
!=3D=3D null) && (position !=3D=3D 0);
    }
Sys.WebForms.PageRequestManager.prototype =3D {
    _get_eventHandlerList: =
Sys$WebForms$PageRequestManager$_get_eventHandlerList,
    get_isInAsyncPostBack: =
Sys$WebForms$PageRequestManager$get_isInAsyncPostBack,
    add_beginRequest: Sys$WebForms$PageRequestManager$add_beginRequest,
    remove_beginRequest: =
Sys$WebForms$PageRequestManager$remove_beginRequest,
    add_endRequest: Sys$WebForms$PageRequestManager$add_endRequest,
    remove_endRequest: =
Sys$WebForms$PageRequestManager$remove_endRequest,
    add_initializeRequest: =
Sys$WebForms$PageRequestManager$add_initializeRequest,
    remove_initializeRequest: =
Sys$WebForms$PageRequestManager$remove_initializeRequest,
    add_pageLoaded: Sys$WebForms$PageRequestManager$add_pageLoaded,
    remove_pageLoaded: =
Sys$WebForms$PageRequestManager$remove_pageLoaded,
    add_pageLoading: Sys$WebForms$PageRequestManager$add_pageLoading,
    remove_pageLoading: =
Sys$WebForms$PageRequestManager$remove_pageLoading,
    abortPostBack: Sys$WebForms$PageRequestManager$abortPostBack,
    _cancelPendingCallbacks: =
Sys$WebForms$PageRequestManager$_cancelPendingCallbacks,
    _commitControls: Sys$WebForms$PageRequestManager$_commitControls,
    _createHiddenField: =
Sys$WebForms$PageRequestManager$_createHiddenField,
    _createPageRequestManagerTimeoutError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError,
    _createPageRequestManagerServerError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError,
    _createPageRequestManagerParserError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError,
    _createPostBackSettings: =
Sys$WebForms$PageRequestManager$_createPostBackSettings,
    _convertToClientIDs: =
Sys$WebForms$PageRequestManager$_convertToClientIDs,
    _destroyTree: Sys$WebForms$PageRequestManager$_destroyTree,
    dispose: Sys$WebForms$PageRequestManager$dispose,
    _doCallback: Sys$WebForms$PageRequestManager$_doCallback,
    _doPostBack: Sys$WebForms$PageRequestManager$_doPostBack,
    _doPostBackWithOptions: =
Sys$WebForms$PageRequestManager$_doPostBackWithOptions,
    _elementContains: Sys$WebForms$PageRequestManager$_elementContains,
    _endPostBack: Sys$WebForms$PageRequestManager$_endPostBack,
    _findNearestElement: =
Sys$WebForms$PageRequestManager$_findNearestElement,
    _findText: Sys$WebForms$PageRequestManager$_findText,
    _fireDefaultButton: =
Sys$WebForms$PageRequestManager$_fireDefaultButton,
    _getPageLoadedEventArgs: =
Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs,
    _getPageLoadingEventArgs: =
Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs,
    _getPostBackSettings: =
Sys$WebForms$PageRequestManager$_getPostBackSettings,
    _getScrollPosition: =
Sys$WebForms$PageRequestManager$_getScrollPosition,
    _initializeInternal: =
Sys$WebForms$PageRequestManager$_initializeInternal,
    _matchesParentIDInList: =
Sys$WebForms$PageRequestManager$_matchesParentIDInList,
    _onFormElementActive: =
Sys$WebForms$PageRequestManager$_onFormElementActive,
    _onFormElementClick: =
Sys$WebForms$PageRequestManager$_onFormElementClick,
    _onFormSubmit: Sys$WebForms$PageRequestManager$_onFormSubmit,
    _onFormSubmitCompleted: =
Sys$WebForms$PageRequestManager$_onFormSubmitCompleted,
    _onWindowUnload: Sys$WebForms$PageRequestManager$_onWindowUnload,
    _pageLoaded: Sys$WebForms$PageRequestManager$_pageLoaded,
    _pageLoadedInitialLoad: =
Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad,
    _parseDelta: Sys$WebForms$PageRequestManager$_parseDelta,
    _processUpdatePanelArrays: =
Sys$WebForms$PageRequestManager$_processUpdatePanelArrays,
    _queueScripts: Sys$WebForms$PageRequestManager$_queueScripts,
    _registerDisposeScript: =
Sys$WebForms$PageRequestManager$_registerDisposeScript,
    _scriptIncludesLoadComplete: =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadComplete,
    _scriptIncludesLoadFailed: =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadFailed,
    _scriptsLoadComplete: =
Sys$WebForms$PageRequestManager$_scriptsLoadComplete,
    _splitNodeIntoArray: =
Sys$WebForms$PageRequestManager$_splitNodeIntoArray,
    _uniqueIDToClientID: =
Sys$WebForms$PageRequestManager$_uniqueIDToClientID,
    _updateControls: Sys$WebForms$PageRequestManager$_updateControls,
    _updatePanel: Sys$WebForms$PageRequestManager$_updatePanel,
    _validPosition: Sys$WebForms$PageRequestManager$_validPosition
}
Sys.WebForms.PageRequestManager.getInstance =3D function =
Sys$WebForms$PageRequestManager$getInstance() {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageRequestManager.getInstance" />
    /// <returns type=3D"Sys.WebForms.PageRequestManager"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var prm =3D Sys.WebForms.PageRequestManager._instance;
    if (!prm) {
        prm =3D Sys.WebForms.PageRequestManager._instance =3D new =
Sys.WebForms.PageRequestManager();
    }
    return prm;
}
Sys.WebForms.PageRequestManager._addArrayElement =3D function =
Sys$WebForms$PageRequestManager$_addArrayElement(arrayName) {
    if (!window[arrayName]) {
        window[arrayName] =3D new Array();
    }
    for (var i =3D 1, l =3D arguments.length; i < l; i++) {
        Array.add(window[arrayName], arguments[i]);
    }
}
Sys.WebForms.PageRequestManager._initialize =3D function =
Sys$WebForms$PageRequestManager$_initialize(scriptManagerID, =
formElement) {
    =
Sys.WebForms.PageRequestManager.getInstance()._initializeInternal(scriptM=
anagerID, formElement);
}
Sys.WebForms.PageRequestManager.registerClass('Sys.WebForms.PageRequestMa=
nager');
=20
Sys.UI._UpdateProgress =3D function Sys$UI$_UpdateProgress(element) {
    Sys.UI._UpdateProgress.initializeBase(this,[element]);
    this._displayAfter =3D 500;
    this._dynamicLayout =3D true;
    this._associatedUpdatePanelId =3D null;
    this._beginRequestHandlerDelegate =3D null;
    this._startDelegate =3D null;
    this._endRequestHandlerDelegate =3D null;
    this._pageRequestManager =3D null;
    this._timerCookie =3D null;
}
    function Sys$UI$_UpdateProgress$get_displayAfter() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.UI._UpdateProgress.displayAfter"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._displayAfter;
    }
    function Sys$UI$_UpdateProgress$set_displayAfter(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        this._displayAfter =3D value;
    }
    function Sys$UI$_UpdateProgress$get_dynamicLayout() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI._UpdateProgress.dynamicLayout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dynamicLayout;
    }
    function Sys$UI$_UpdateProgress$set_dynamicLayout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._dynamicLayout =3D value;
    }
    function Sys$UI$_UpdateProgress$get_associatedUpdatePanelId() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.UI._UpdateProgress.associatedUpdatePanelId"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._associatedUpdatePanelId;
    }
    function Sys$UI$_UpdateProgress$set_associatedUpdatePanelId(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String, mayBeNull: true}]);
        if (e) throw e;
        this._associatedUpdatePanelId =3D value;
    }
    function Sys$UI$_UpdateProgress$_clearTimeout() {
        if (this._timerCookie) {
            window.clearTimeout(this._timerCookie);
            this._timerCookie =3D null;
        }
    }
    function Sys$UI$_UpdateProgress$_handleBeginRequest(sender, arg) {
        var curElem =3D arg.get_postBackElement();
        var showProgress =3D !this._associatedUpdatePanelId;=20
        while (!showProgress && curElem) {
            if (curElem.id && this._associatedUpdatePanelId =3D=3D=3D =
curElem.id) {
                showProgress =3D true;=20
            }
            curElem =3D curElem.parentNode;=20
        }=20
        if (showProgress) {
            this._timerCookie =3D window.setTimeout(this._startDelegate, =
this._displayAfter);
        }
    }
    function Sys$UI$_UpdateProgress$_startRequest() {
        if (this._pageRequestManager.get_isInAsyncPostBack()) {
            if (this._dynamicLayout) this.get_element().style.display =
=3D 'block';
            else this.get_element().style.visibility =3D 'visible';
        }
        this._timerCookie =3D null;
    }
    function Sys$UI$_UpdateProgress$_handleEndRequest(sender, arg) {
        if (this._dynamicLayout) this.get_element().style.display =3D =
'none';
        else this.get_element().style.visibility =3D 'hidden';
        this._clearTimeout();
    }
    function Sys$UI$_UpdateProgress$dispose() {
        if (this._beginRequestHandlerDelegate !=3D=3D null) {
            =
this._pageRequestManager.remove_beginRequest(this._beginRequestHandlerDel=
egate);
            =
this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegat=
e);
            this._beginRequestHandlerDelegate =3D null;
            this._endRequestHandlerDelegate =3D null;
        }
        this._clearTimeout();
        Sys.UI._UpdateProgress.callBaseMethod(this,"dispose");
    }
    function Sys$UI$_UpdateProgress$initialize() {
        Sys.UI._UpdateProgress.callBaseMethod(this, 'initialize');
    	this._beginRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleBeginRequest);
    	this._endRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleEndRequest);
    	this._startDelegate =3D Function.createDelegate(this, =
this._startRequest);
    	if (Sys.WebForms && Sys.WebForms.PageRequestManager) {
           this._pageRequestManager =3D =
Sys.WebForms.PageRequestManager.getInstance();
    	}
    	if (this._pageRequestManager !=3D=3D null ) {
    	    =
this._pageRequestManager.add_beginRequest(this._beginRequestHandlerDelega=
te);
    	    =
this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);=

    	}
    }
Sys.UI._UpdateProgress.prototype =3D {
    get_displayAfter: Sys$UI$_UpdateProgress$get_displayAfter,
    set_displayAfter: Sys$UI$_UpdateProgress$set_displayAfter,
    get_dynamicLayout: Sys$UI$_UpdateProgress$get_dynamicLayout,
    set_dynamicLayout: Sys$UI$_UpdateProgress$set_dynamicLayout,
    get_associatedUpdatePanelId: =
Sys$UI$_UpdateProgress$get_associatedUpdatePanelId,
    set_associatedUpdatePanelId: =
Sys$UI$_UpdateProgress$set_associatedUpdatePanelId,
    _clearTimeout: Sys$UI$_UpdateProgress$_clearTimeout,
    _handleBeginRequest: Sys$UI$_UpdateProgress$_handleBeginRequest,
    _startRequest: Sys$UI$_UpdateProgress$_startRequest,
    _handleEndRequest: Sys$UI$_UpdateProgress$_handleEndRequest,
    dispose: Sys$UI$_UpdateProgress$dispose,
    initialize: Sys$UI$_UpdateProgress$initialize
}
Sys.UI._UpdateProgress.registerClass('Sys.UI._UpdateProgress', =
Sys.UI.Control);


Type.registerNamespace('Sys.WebForms');
Sys.WebForms.Res=3D{
"PRM_MissingPanel":"Could not find UpdatePanel with ID \u0027{0}\u0027. =
If it is being updated dynamically then it must be inside another =
UpdatePanel.",
"PRM_ServerError":"An unknown error occurred while processing the =
request on the server. The status code returned from the server was: =
{0}",
"PRM_ParserError":"The message received from the server could not be =
parsed.",
"PRM_TimeoutError":"The server request timed out.",
"PRM_CannotRegisterTwice":"The PageRequestManager cannot be initialized =
more than once.",
"PRM_UnknownToken":"Unknown token: \u0027{0}\u0027.",
"PRM_MissingPanel":"Could not find UpdatePanel with ID \u0027{0}\u0027. =
If it is being updated dynamically then it must be inside another =
UpdatePanel.",
"PRM_ServerError":"An unknown error occurred while processing the =
request on the server. The status code returned from the server was: =
{0}",
"PRM_ParserError":"The message received from the server could not be =
parsed. Common causes for this error are when the response is modified =
by calls to Response.Write(), response filters, HttpModules, or server =
trace is enabled.\r\nDetails: {0}",
"PRM_TimeoutError":"The server request timed out.",
"PRM_ParserErrorDetails":"Error parsing near \u0027{0}\u0027.",
"PRM_CannotRegisterTwice":"The PageRequestManager cannot be initialized =
more than once."
};

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/ScriptResource.axd?d=RrJs_DAlEqgR0D03t-zPA0gmsr2beRZCYq9MdwpE9cpWT4cye4Ewj2v6F7wXwQRgEdW-6l7iR4O4CK_QZE8xwzduQELlHkD68YY1YtiJh5PlCTSGMZYCKnFRqbte4ccKEvcxBbY1kO-sbFmD4U5SaMsu8ms1&t=ffffffffb5824b70

Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.BoxSide =
=3D function() {
}
AjaxControlToolkit.BoxSide.prototype =3D {
Top : 0,
Right : 1,
Bottom : 2,
Left : 3
}
AjaxControlToolkit.BoxSide.registerEnum("AjaxControlToolkit.BoxSide", =
false);AjaxControlToolkit._CommonToolkitScripts =3D function() {
}
AjaxControlToolkit._CommonToolkitScripts.prototype =3D {
_borderStyleNames : =
["borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle=
"],
_borderWidthNames : ["borderTopWidth", "borderRightWidth", =
"borderBottomWidth", "borderLeftWidth"],
_paddingWidthNames : ["paddingTop", "paddingRight", "paddingBottom", =
"paddingLeft"],
_marginWidthNames : ["marginTop", "marginRight", "marginBottom", =
"marginLeft"],
getCurrentStyle : function(element, attribute, defaultValue) {
var currentValue =3D null;if (element) {
if (element.currentStyle) {
currentValue =3D element.currentStyle[attribute];} else if =
(document.defaultView && document.defaultView.getComputedStyle) {
var style =3D document.defaultView.getComputedStyle(element, null);if =
(style) {
currentValue =3D style[attribute];}
}
if (!currentValue && element.style.getPropertyValue) {
currentValue =3D element.style.getPropertyValue(attribute);}
else if (!currentValue && element.style.getAttribute) {
currentValue =3D element.style.getAttribute(attribute);}=20
}
if ((!currentValue || currentValue =3D=3D "" || typeof(currentValue) =
=3D=3D=3D 'undefined')) {
if (typeof(defaultValue) !=3D 'undefined') {
currentValue =3D defaultValue;}
else {
currentValue =3D null;}
}=20
return currentValue;},
getInheritedBackgroundColor : function(element) {
if (!element) return '#FFFFFF';var background =3D =
this.getCurrentStyle(element, 'backgroundColor');try {
while (!background || background =3D=3D '' || background =3D=3D =
'transparent' || background =3D=3D 'rgba(0, 0, 0, 0)') {
element =3D element.parentNode;if (!element) {
background =3D '#FFFFFF';} else {
background =3D this.getCurrentStyle(element, 'backgroundColor');}
}
} catch(ex) {
background =3D '#FFFFFF';}
return background;},
getLocation : function(element) {
if (element =3D=3D=3D document.documentElement) {
return new Sys.UI.Point(0,0);}
if (Sys.Browser.agent =3D=3D Sys.Browser.InternetExplorer && =
Sys.Browser.version < 7) {
if (element.window =3D=3D=3D element || element.nodeType =3D=3D=3D 9 || =
!element.getClientRects || !element.getBoundingClientRect) return new =
Sys.UI.Point(0,0);var screenRects =3D element.getClientRects();if =
(!screenRects || !screenRects.length) {
return new Sys.UI.Point(0,0);}
var first =3D screenRects[0];var dLeft =3D 0;var dTop =3D 0;var inFrame =
=3D false;try {
inFrame =3D element.ownerDocument.parentWindow.frameElement;} catch(ex) =
{
inFrame =3D true;}
if (inFrame) {
var clientRect =3D element.getBoundingClientRect();if (!clientRect) {
return new Sys.UI.Point(0,0);}
var minLeft =3D first.left;var minTop =3D first.top;for (var i =3D 1;i < =
screenRects.length;i++) {
var r =3D screenRects[i];if (r.left < minLeft) {
minLeft =3D r.left;}
if (r.top < minTop) {
minTop =3D r.top;}
}
dLeft =3D minLeft - clientRect.left;dTop =3D minTop - clientRect.top;}
var ownerDocument =3D element.document.documentElement;return new =
Sys.UI.Point(first.left - 2 - dLeft + ownerDocument.scrollLeft, =
first.top - 2 - dTop + ownerDocument.scrollTop);}
return Sys.UI.DomElement.getLocation(element);},
setLocation : function(element, point) {
Sys.UI.DomElement.setLocation(element, point.x, point.y);},
getContentSize : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var size =3D this.getSize(element);var borderBox =3D =
this.getBorderBox(element);var paddingBox =3D =
this.getPaddingBox(element);return {
width : size.width - borderBox.horizontal - paddingBox.horizontal,
height : size.height - borderBox.vertical - paddingBox.vertical
}
},
getSize : function(element) {
if (!element) {
throw Error.argumentNull('element');}
return {
width: element.offsetWidth,
height: element.offsetHeight
};},
setContentSize : function(element, size) {
if (!element) {
throw Error.argumentNull('element');}
if (!size) {
throw Error.argumentNull('size');}
if(this.getCurrentStyle(element, 'MozBoxSizing') =3D=3D 'border-box' || =
this.getCurrentStyle(element, 'BoxSizing') =3D=3D 'border-box') {
var borderBox =3D this.getBorderBox(element);var paddingBox =3D =
this.getPaddingBox(element);size =3D {
width: size.width + borderBox.horizontal + paddingBox.horizontal,
height: size.height + borderBox.vertical + paddingBox.vertical
};}
element.style.width =3D size.width.toString() + =
'px';element.style.height =3D size.height.toString() + 'px';},
setSize : function(element, size) {
if (!element) {
throw Error.argumentNull('element');}
if (!size) {
throw Error.argumentNull('size');}
var borderBox =3D this.getBorderBox(element);var paddingBox =3D =
this.getPaddingBox(element);var contentSize =3D {
width: size.width - borderBox.horizontal - paddingBox.horizontal,
height: size.height - borderBox.vertical - paddingBox.vertical
};this.setContentSize(element, contentSize);},
getBounds : function(element) {
var offset =3D $common.getLocation(element);return new =
Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || 0, =
element.offsetHeight || 0);},=20
setBounds : function(element, bounds) {
if (!element) {
throw Error.argumentNull('element');}
if (!bounds) {
throw Error.argumentNull('bounds');}
this.setSize(element, bounds);$common.setLocation(element, bounds);},
getClientBounds : function() {
var clientWidth;var clientHeight;switch(Sys.Browser.agent) {
case Sys.Browser.InternetExplorer:
clientWidth =3D document.documentElement.clientWidth;clientHeight =3D =
document.documentElement.clientHeight;break;case Sys.Browser.Safari:
clientWidth =3D window.innerWidth;clientHeight =3D =
window.innerHeight;break;case Sys.Browser.Opera:
clientWidth =3D Math.min(window.innerWidth, =
document.body.clientWidth);clientHeight =3D Math.min(window.innerHeight, =
document.body.clientHeight);break;default:=20
clientWidth =3D Math.min(window.innerWidth, =
document.documentElement.clientWidth);clientHeight =3D =
Math.min(window.innerHeight, =
document.documentElement.clientHeight);break;}
return new Sys.UI.Bounds(0, 0, clientWidth, clientHeight);},
getMarginBox : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var box =3D {
top: this.getMargin(element, AjaxControlToolkit.BoxSide.Top),
right: this.getMargin(element, AjaxControlToolkit.BoxSide.Right),
bottom: this.getMargin(element, AjaxControlToolkit.BoxSide.Bottom),
left: this.getMargin(element, AjaxControlToolkit.BoxSide.Left)
};box.horizontal =3D box.left + box.right;box.vertical =3D box.top + =
box.bottom;return box;},
getBorderBox : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var box =3D {
top: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Top),
right: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Right),
bottom: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Bottom),
left: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Left)
};box.horizontal =3D box.left + box.right;box.vertical =3D box.top + =
box.bottom;return box;},
getPaddingBox : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var box =3D {
top: this.getPadding(element, AjaxControlToolkit.BoxSide.Top),
right: this.getPadding(element, AjaxControlToolkit.BoxSide.Right),
bottom: this.getPadding(element, AjaxControlToolkit.BoxSide.Bottom),
left: this.getPadding(element, AjaxControlToolkit.BoxSide.Left)
};box.horizontal =3D box.left + box.right;box.vertical =3D box.top + =
box.bottom;return box;},
isBorderVisible : function(element, boxSide) {
if (!element) {
throw Error.argumentNull('element');}
if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > =
AjaxControlToolkit.BoxSide.Left) {
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'AjaxControlToolkit.BoxSide'));}
var styleName =3D this._borderStyleNames[boxSide];var styleValue =3D =
this.getCurrentStyle(element, styleName);return styleValue !=3D =
"none";},
getMargin : function(element, boxSide) {
if (!element) {
throw Error.argumentNull('element');}
if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > =
AjaxControlToolkit.BoxSide.Left) {
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'AjaxControlToolkit.BoxSide'));}
var styleName =3D this._marginWidthNames[boxSide];var styleValue =3D =
this.getCurrentStyle(element, styleName);try { return =
this.parsePadding(styleValue);} catch(ex) { return 0;}
},
getBorderWidth : function(element, boxSide) {
if (!element) {
throw Error.argumentNull('element');}
if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > =
AjaxControlToolkit.BoxSide.Left) {
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'AjaxControlToolkit.BoxSide'));}
if(!this.isBorderVisible(element, boxSide)) {
return 0;}=20
var styleName =3D this._borderWidthNames[boxSide];var styleValue =3D =
this.getCurrentStyle(element, styleName);return =
this.parseBorderWidth(styleValue);},
getPadding : function(element, boxSide) {
if (!element) {
throw Error.argumentNull('element');}
if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > =
AjaxControlToolkit.BoxSide.Left) {
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, =
boxSide, 'AjaxControlToolkit.BoxSide'));}
var styleName =3D this._paddingWidthNames[boxSide];var styleValue =3D =
this.getCurrentStyle(element, styleName);return =
this.parsePadding(styleValue);},
parseBorderWidth : function(borderWidth) {
if (!this._borderThicknesses) {
var borderThicknesses =3D { };var div0 =3D =
document.createElement('div');div0.style.visibility =3D =
'hidden';div0.style.position =3D 'absolute';div0.style.fontSize =3D =
'1px';document.body.appendChild(div0)
var div1 =3D document.createElement('div');div1.style.height =3D =
'0px';div1.style.overflow =3D 'hidden';div0.appendChild(div1);var base =
=3D div0.offsetHeight;div1.style.borderTop =3D 'solid =
black';div1.style.borderTopWidth =3D 'thin';borderThicknesses['thin'] =
=3D div0.offsetHeight - base;div1.style.borderTopWidth =3D =
'medium';borderThicknesses['medium'] =3D div0.offsetHeight - =
base;div1.style.borderTopWidth =3D 'thick';borderThicknesses['thick'] =
=3D div0.offsetHeight - =
base;div0.removeChild(div1);document.body.removeChild(div0);this._borderT=
hicknesses =3D borderThicknesses;}
if (borderWidth) {
switch(borderWidth) {
case 'thin':
case 'medium':
case 'thick':
return this._borderThicknesses[borderWidth];case 'inherit':
return 0;}
var unit =3D this.parseUnit(borderWidth);Sys.Debug.assert(unit.type =
=3D=3D 'px', =
String.format(AjaxControlToolkit.Resources.Common_InvalidBorderWidthUnit,=
 unit.type));return unit.size;}
return 0;},
parsePadding : function(padding) {
if(padding) {
if(padding =3D=3D 'inherit') {
return 0;}
var unit =3D this.parseUnit(padding);Sys.Debug.assert(unit.type =3D=3D =
'px', =
String.format(AjaxControlToolkit.Resources.Common_InvalidPaddingUnit, =
unit.type));return unit.size;}
return 0;},
parseUnit : function(value) {
if (!value) {
throw Error.argumentNull('value');}
value =3D value.trim().toLowerCase();var l =3D value.length;var s =3D =
-1;for(var i =3D 0;i < l;i++) {
var ch =3D value.substr(i, 1);if((ch < '0' || ch > '9') && ch !=3D '-' =
&& ch !=3D '.' && ch !=3D ',') {
break;}
s =3D i;}
if(s =3D=3D -1) {
throw =
Error.create(AjaxControlToolkit.Resources.Common_UnitHasNoDigits);}
var type;var size;if(s < (l - 1)) {
type =3D value.substring(s + 1).trim();} else {
type =3D 'px';}
size =3D parseFloat(value.substr(0, s + 1));if(type =3D=3D 'px') {
size =3D Math.floor(size);}
return {=20
size: size,
type: type
};},
getElementOpacity : function(element) {
if (!element) {
throw Error.argumentNull('element');}
var hasOpacity =3D false;var opacity;if (element.filters) {
var filters =3D element.filters;if (filters.length !=3D=3D 0) {
var alphaFilter =3D filters['DXImageTransform.Microsoft.Alpha'];if =
(alphaFilter) {
opacity =3D alphaFilter.opacity / 100.0;hasOpacity =3D true;}
}
}
else {
opacity =3D this.getCurrentStyle(element, 'opacity', 1);hasOpacity =3D =
true;}
if (hasOpacity =3D=3D=3D false) {
return 1.0;}
return parseFloat(opacity);},
setElementOpacity : function(element, value) {
if (!element) {
throw Error.argumentNull('element');}
if (element.filters) {
var filters =3D element.filters;var createFilter =3D true;if =
(filters.length !=3D=3D 0) {
var alphaFilter =3D filters['DXImageTransform.Microsoft.Alpha'];if =
(alphaFilter) {
createFilter =3D false;alphaFilter.opacity =3D value * 100;}
}
if (createFilter) {
element.style.filter =3D =
'progid:DXImageTransform.Microsoft.Alpha(opacity=3D' + (value * 100) + =
')';}
}
else {
element.style.opacity =3D value;}
},
getVisible : function(element) {
return (element &&
("none" !=3D $common.getCurrentStyle(element, "display")) &&
("hidden" !=3D $common.getCurrentStyle(element, "visibility")));},
setVisible : function(element, value) {
if (element && value !=3D $common.getVisible(element)) {
if (value) {
if (element.style.removeAttribute) {
element.style.removeAttribute("display");} else {
element.style.removeProperty("display");}
} else {
element.style.display =3D 'none';}
element.style.visibility =3D value ? 'visible' : 'hidden';}
},
resolveFunction : function(value) {
if (value) {
if (value instanceof Function) {
return value;} else if (String.isInstanceOfType(value) && value.length > =
0) {
var func;if ((func =3D window[value]) instanceof Function) {
return func;} else if ((func =3D eval(value)) instanceof Function) {
return func;}
}
}
return null;},
addCssClasses : function(element, classNames) {
for(var i =3D 0;i < classNames.length;i++) {
Sys.UI.DomElement.addCssClass(element, classNames[i]);}
},
removeCssClasses : function(element, classNames) {
for(var i =3D 0;i < classNames.length;i++) {
Sys.UI.DomElement.removeCssClass(element, classNames[i]);}
},
setStyle : function(element, style) {
$common.applyProperties(element.style, style);},
removeHandlers : function(element, events) {
for (var name in events) {
$removeHandler(element, name, events[name]);}
},
overlaps : function(r1, r2) {
return r1.x < (r2.x + r2.width)
&& r2.x < (r1.x + r1.width)
&& r1.y < (r2.y + r2.height)
&& r2.y < (r1.y + r1.height);},
containsPoint : function(rect, x, y) {
return x >=3D rect.x && x < (rect.x + rect.width) && y >=3D rect.y && y =
< (rect.y + rect.height);},
isKeyDigit : function(keyCode) {=20
return (0x30 <=3D keyCode && keyCode <=3D 0x39);},
isKeyNavigation : function(keyCode) {=20
return (Sys.UI.Key.left <=3D keyCode && keyCode <=3D Sys.UI.Key.down);},
padLeft : function(text, size, ch, truncate) {=20
return $common._pad(text, size || 2, ch || ' ', 'l', truncate || =
false);},
padRight : function(text, size, ch, truncate) {=20
return $common._pad(text, size || 2, ch || ' ', 'r', truncate || =
false);},
_pad : function(text, size, ch, side, truncate) {
text =3D text.toString();var length =3D text.length;var builder =3D new =
Sys.StringBuilder();if (side =3D=3D 'r') {
builder.append(text);}=20
while (length < size) {
builder.append(ch);length++;}
if (side =3D=3D 'l') {
builder.append(text);}
var result =3D builder.toString();if (truncate && result.length > size) =
{
if (side =3D=3D 'l') {
result =3D result.substr(result.length - size, size);} else {
result =3D result.substr(0, size);}
}
return result;},
__DOMEvents : {
focusin : { eventGroup : "UIEvents", init : function(e, p) { =
e.initUIEvent("focusin", true, false, window, 1);} },
focusout : { eventGroup : "UIEvents", init : function(e, p) { =
e.initUIEvent("focusout", true, false, window, 1);} },
activate : { eventGroup : "UIEvents", init : function(e, p) { =
e.initUIEvent("activate", true, true, window, 1);} },
focus : { eventGroup : "UIEvents", init : function(e, p) { =
e.initUIEvent("focus", false, false, window, 1);} },
blur : { eventGroup : "UIEvents", init : function(e, p) { =
e.initUIEvent("blur", false, false, window, 1);} },
click : { eventGroup : "MouseEvents", init : function(e, p) { =
e.initMouseEvent("click", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null);} },
dblclick : { eventGroup : "MouseEvents", init : function(e, p) { =
e.initMouseEvent("click", true, true, window, 2, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null);} },
mousedown : { eventGroup : "MouseEvents", init : function(e, p) { =
e.initMouseEvent("mousedown", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null);} },
mouseup : { eventGroup : "MouseEvents", init : function(e, p) { =
e.initMouseEvent("mouseup", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null);} },
mouseover : { eventGroup : "MouseEvents", init : function(e, p) { =
e.initMouseEvent("mouseover", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null);} },
mousemove : { eventGroup : "MouseEvents", init : function(e, p) { =
e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null);} },
mouseout : { eventGroup : "MouseEvents", init : function(e, p) { =
e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, =
p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, =
p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || =
0, p.relatedTarget || null);} },
load : { eventGroup : "HTMLEvents", init : function(e, p) { =
e.initEvent("load", false, false);} },
unload : { eventGroup : "HTMLEvents", init : function(e, p) { =
e.initEvent("unload", false, false);} },
select : { eventGroup : "HTMLEvents", init : function(e, p) { =
e.initEvent("select", true, false);} },
change : { eventGroup : "HTMLEvents", init : function(e, p) { =
e.initEvent("change", true, false);} },
submit : { eventGroup : "HTMLEvents", init : function(e, p) { =
e.initEvent("submit", true, true);} },
reset : { eventGroup : "HTMLEvents", init : function(e, p) { =
e.initEvent("reset", true, false);} },
resize : { eventGroup : "HTMLEvents", init : function(e, p) { =
e.initEvent("resize", true, false);} },
scroll : { eventGroup : "HTMLEvents", init : function(e, p) { =
e.initEvent("scroll", true, false);} }
},
tryFireRawEvent : function(element, rawEvent) {
try {
if (element.fireEvent) {
element.fireEvent("on" + rawEvent.type, rawEvent);return true;} else if =
(element.dispatchEvent) {
element.dispatchEvent(rawEvent);return true;}
} catch (e) {
}
return false;},=20
tryFireEvent : function(element, eventName, properties) {
try {
if (document.createEventObject) {
var e =3D document.createEventObject();$common.applyProperties(e, =
properties || {});element.fireEvent("on" + eventName, e);return true;} =
else if (document.createEvent) {
var def =3D $common.__DOMEvents[eventName];if (def) {
var e =3D document.createEvent(def.eventGroup);def.init(e, properties || =
{});element.dispatchEvent(e);return true;}
}
} catch (e) {
}
return false;},
wrapElement : function(innerElement, newOuterElement, =
newInnerParentElement) {
var parent =3D =
innerElement.parentNode;parent.replaceChild(newOuterElement, =
innerElement);(newInnerParentElement || =
newOuterElement).appendChild(innerElement);},
unwrapElement : function(innerElement, oldOuterElement) {
var parent =3D oldOuterElement.parentNode;if (parent !=3D null) {
$common.removeElement(innerElement);parent.replaceChild(innerElement, =
oldOuterElement);}
},
removeElement : function(element) {
var parent =3D element.parentNode;if (parent !=3D null) {
parent.removeChild(element);}
},
applyProperties : function(target, properties) {
for (var p in properties) {
var pv =3D properties[p];if (pv !=3D null && =
Object.getType(pv)=3D=3D=3DObject) {
var tv =3D target[p];$common.applyProperties(tv, pv);} else {
target[p] =3D pv;}
}
},
createElementFromTemplate : function(template, appendToParent, =
nameTable) {
if (typeof(template.nameTable)!=3D'undefined') {
var newNameTable =3D template.nameTable;if =
(String.isInstanceOfType(newNameTable)) {
newNameTable =3D nameTable[newNameTable];}
if (newNameTable !=3D null) {
nameTable =3D newNameTable;}
}
var elementName =3D null;if (typeof(template.name)!=3D=3D'undefined') {
elementName =3D template.name;}
var elt =3D document.createElement(template.nodeName);if =
(typeof(template.name)!=3D=3D'undefined' && nameTable) {
nameTable[template.name] =3D elt;}
if (typeof(template.parent)!=3D=3D'undefined' && appendToParent =3D=3D =
null) {
var newParent =3D template.parent;if =
(String.isInstanceOfType(newParent)) {
newParent =3D nameTable[newParent];}
if (newParent !=3D null) {
appendToParent =3D newParent;}
}
if (typeof(template.properties)!=3D=3D'undefined' && template.properties =
!=3D null) {
$common.applyProperties(elt, template.properties);}
if (typeof(template.cssClasses)!=3D=3D'undefined' && template.cssClasses =
!=3D null) {
$common.addCssClasses(elt, template.cssClasses);}
if (typeof(template.events)!=3D=3D'undefined' && template.events !=3D =
null) {
$addHandlers(elt, template.events);}
if (typeof(template.visible)!=3D=3D'undefined' && template.visible !=3D =
null) {
this.setVisible(elt, template.visible);}
if (appendToParent) {
appendToParent.appendChild(elt);}
if (typeof(template.opacity)!=3D=3D'undefined' && template.opacity !=3D =
null) {
$common.setElementOpacity(elt, template.opacity);}
if (typeof(template.children)!=3D=3D'undefined' && template.children =
!=3D null) {
for (var i =3D 0;i < template.children.length;i++) {
var subtemplate =3D =
template.children[i];$common.createElementFromTemplate(subtemplate, elt, =
nameTable);}
}
var contentPresenter =3D elt;if =
(typeof(template.contentPresenter)!=3D=3D'undefined' && =
template.contentPresenter !=3D null) {
contentPresenter =3D nameTable[contentPresenter];}
if (typeof(template.content)!=3D=3D'undefined' && template.content !=3D =
null) {
var content =3D template.content;if (String.isInstanceOfType(content)) {
content =3D nameTable[content];}
if (content.parentNode) {
$common.wrapElement(content, elt, contentPresenter);} else {
contentPresenter.appendChild(content);}
}
return elt;},
prepareHiddenElementForATDeviceUpdate : function () {
var objHidden =3D =
document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts=
');if (!objHidden) {
var objHidden =3D =
document.createElement('input');objHidden.setAttribute('type', =
'hidden');objHidden.setAttribute('value', =
'1');objHidden.setAttribute('id', =
'hiddenInputToUpdateATBuffer_CommonToolkitScripts');objHidden.setAttribut=
e('name', 'hiddenInputToUpdateATBuffer_CommonToolkitScripts');if ( =
document.forms[0] ) {
document.forms[0].appendChild(objHidden);}
}
},
updateFormToRefreshATDeviceBuffer : function () {
var objHidden =3D =
document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts=
');if (objHidden) {
if (objHidden.getAttribute('value') =3D=3D '1') {
objHidden.setAttribute('value', '0');} else {
objHidden.setAttribute('value', '1');}
}
}
}
var CommonToolkitScripts =3D AjaxControlToolkit.CommonToolkitScripts =3D =
new AjaxControlToolkit._CommonToolkitScripts();var $common =3D =
CommonToolkitScripts;Sys.UI.DomElement.getVisible =3D =
$common.getVisible;Sys.UI.DomElement.setVisible =3D =
$common.setVisible;Sys.UI.Control.overlaps =3D =
$common.overlaps;AjaxControlToolkit._DomUtility =3D function() {
}
AjaxControlToolkit._DomUtility.prototype =3D {
isDescendant : function(ancestor, descendant) {
for (var n =3D descendant.parentNode;n !=3D null;n =3D n.parentNode) {
if (n =3D=3D ancestor) return true;}
return false;},
isDescendantOrSelf : function(ancestor, descendant) {
if (ancestor =3D=3D=3D descendant)=20
return true;return AjaxControlToolkit.DomUtility.isDescendant(ancestor, =
descendant);},
isAncestor : function(descendant, ancestor) {
return AjaxControlToolkit.DomUtility.isDescendant(ancestor, =
descendant);},
isAncestorOrSelf : function(descendant, ancestor) {
if (descendant =3D=3D=3D ancestor)
return true;return AjaxControlToolkit.DomUtility.isDescendant(ancestor, =
descendant);},
isSibling : function(self, sibling) {
var parent =3D self.parentNode;for (var i =3D 0;i < =
parent.childNodes.length;i++) {
if (parent.childNodes[i] =3D=3D sibling) return true;}
return false;}
}
AjaxControlToolkit._DomUtility.registerClass("AjaxControlToolkit._DomUtil=
ity");AjaxControlToolkit.DomUtility =3D new =
AjaxControlToolkit._DomUtility();AjaxControlToolkit.TextBoxWrapper =3D =
function(element) {
AjaxControlToolkit.TextBoxWrapper.initializeBase(this, =
[element]);this._current =3D element.value;this._watermark =3D =
null;this._isWatermarked =3D false;}
AjaxControlToolkit.TextBoxWrapper.prototype =3D {
dispose : function() {
this.get_element().AjaxControlToolkitTextBoxWrapper =3D =
null;AjaxControlToolkit.TextBoxWrapper.callBaseMethod(this, =
'dispose');},
get_Current : function() {
this._current =3D this.get_element().value;return this._current;},
set_Current : function(value) {
this._current =3D value;this._updateElement();},
get_Value : function() {
if (this.get_IsWatermarked()) {
return "";} else {
return this.get_Current();}
},
set_Value : function(text) {
this.set_Current(text);if (!text || (0 =3D=3D text.length)) {
if (null !=3D this._watermark) {
this.set_IsWatermarked(true);}
} else {
this.set_IsWatermarked(false);}
},
get_Watermark : function() {
return this._watermark;},
set_Watermark : function(value) {
this._watermark =3D value;this._updateElement();},
get_IsWatermarked : function() {
return this._isWatermarked;},
set_IsWatermarked : function(isWatermarked) {
if (this._isWatermarked !=3D isWatermarked) {
this._isWatermarked =3D =
isWatermarked;this._updateElement();this._raiseWatermarkChanged();}
},
_updateElement : function() {
var element =3D this.get_element();if (this._isWatermarked) {
if (element.value !=3D this._watermark) {
element.value =3D this._watermark;}
} else {
if (element.value !=3D this._current) {
element.value =3D this._current;}
}
},
add_WatermarkChanged : function(handler) {
this.get_events().addHandler("WatermarkChanged", handler);},
remove_WatermarkChanged : function(handler) {
this.get_events().removeHandler("WatermarkChanged", handler);},
_raiseWatermarkChanged : function() {
var onWatermarkChangedHandler =3D =
this.get_events().getHandler("WatermarkChanged");if =
(onWatermarkChangedHandler) {
onWatermarkChangedHandler(this, Sys.EventArgs.Empty);}
}
}
AjaxControlToolkit.TextBoxWrapper.get_Wrapper =3D function(element) {
if (null =3D=3D element.AjaxControlToolkitTextBoxWrapper) {
element.AjaxControlToolkitTextBoxWrapper =3D new =
AjaxControlToolkit.TextBoxWrapper(element);}
return element.AjaxControlToolkitTextBoxWrapper;}
AjaxControlToolkit.TextBoxWrapper.registerClass('AjaxControlToolkit.TextB=
oxWrapper', =
Sys.UI.Behavior);AjaxControlToolkit.TextBoxWrapper.validatorGetValue =3D =
function(id) {
var control =3D $get(id);if (control && =
control.AjaxControlToolkitTextBoxWrapper) {
return control.AjaxControlToolkitTextBoxWrapper.get_Value();}
return =
AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue(id);}
if (typeof(ValidatorGetValue) =3D=3D 'function') {
AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue =3D =
ValidatorGetValue;ValidatorGetValue =3D =
AjaxControlToolkit.TextBoxWrapper.validatorGetValue;}
if (Sys.CultureInfo.prototype._getAbbrMonthIndex) {
try {
Sys.CultureInfo.prototype._getAbbrMonthIndex('');} catch(ex) {
Sys.CultureInfo.prototype._getAbbrMonthIndex =3D function(value) {
if (!this._upperAbbrMonths) {
this._upperAbbrMonths =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);}
return Array.indexOf(this._upperAbbrMonths, this._toUpper(value));}
Sys.CultureInfo.CurrentCulture._getAbbrMonthIndex =3D =
Sys.CultureInfo.prototype._getAbbrMonthIndex;Sys.CultureInfo.InvariantCul=
ture._getAbbrMonthIndex =3D =
Sys.CultureInfo.prototype._getAbbrMonthIndex;}
}

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/ScriptResource.axd?d=F-MCXAd7S6EAY7OO9ym7dLWvOmrh2ERYJzv0OQqLBmfTgDRdH3ejdnawDAZ96bm2xPKaHrs724Jdwe6Kqtv4YNcDhIAOfs5czKCS8--8F8wA6tQfV4wzInfpLsoduYHdy8XHqn-KnXPqcH5ple4MiOiYEKA1&t=ffffffffb5824b70

/////////////////////////////////////////////////////////////////////////=
////
Sys.Timer =3D function() {
Sys.Timer.initializeBase(this);this._interval =3D 1000;this._enabled =3D =
false;this._timer =3D null;}
Sys.Timer.prototype =3D {
get_interval: function() {
return this._interval;},
set_interval: function(value) {
if (this._interval !=3D=3D value) {
this._interval =3D value;this.raisePropertyChanged('interval');if =
(!this.get_isUpdating() && (this._timer !=3D=3D null)) {
this._stopTimer();this._startTimer();}
}
},
get_enabled: function() {
return this._enabled;},
set_enabled: function(value) {
if (value !=3D=3D this.get_enabled()) {
this._enabled =3D value;this.raisePropertyChanged('enabled');if =
(!this.get_isUpdating()) {
if (value) {
this._startTimer();}
else {
this._stopTimer();}
}
}
},
add_tick: function(handler) {
this.get_events().addHandler("tick", handler);},
remove_tick: function(handler) {
this.get_events().removeHandler("tick", handler);},
dispose: function() {
this.set_enabled(false);this._stopTimer();Sys.Timer.callBaseMethod(this, =
'dispose');},
updated: function() {
Sys.Timer.callBaseMethod(this, 'updated');if (this._enabled) {
this._stopTimer();this._startTimer();}
},
_timerCallback: function() {
var handler =3D this.get_events().getHandler("tick");if (handler) {
handler(this, Sys.EventArgs.Empty);}
},
_startTimer: function() {
this._timer =3D window.setInterval(Function.createDelegate(this, =
this._timerCallback), this._interval);},
_stopTimer: function() {
window.clearInterval(this._timer);this._timer =3D null;}
}
Sys.Timer.descriptor =3D {
properties: [ {name: 'interval', type: Number},
{name: 'enabled', type: Boolean} ],
events: [ {name: 'tick'} ]
}
Sys.Timer.registerClass('Sys.Timer', Sys.Component);
if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/ScriptResource.axd?d=70K-xH5GhWxeCeaCaYx2k9oYxMSttjntL_6WizVirCE_aaSVEeDJ1bY1Yb_HO-s8mCdhhZUZQivLnxMjd5wjig_xZ8unydmpKtSxH_dDGLCordmowTbrUP9YWhiTTnsK1-S2Ku1FjBbqDG2_hjsWXCD5kIc1&t=ffffffffb5824b70

Type.registerNamespace('AjaxControlToolkit.Animation');var $AA =3D =
AjaxControlToolkit.Animation;$AA.registerAnimation =3D function(name, =
type) {
if (type && ((type =3D=3D=3D $AA.Animation) || (type.inheritsFrom && =
type.inheritsFrom($AA.Animation)))) {
if (!$AA.__animations) {
$AA.__animations =3D { };}
$AA.__animations[name.toLowerCase()] =3D type;type.play =3D function() {
var animation =3D new type();type.apply(animation, =
arguments);animation.initialize();var handler =3D =
Function.createDelegate(animation,
function() {
animation.remove_ended(handler);handler =3D =
null;animation.dispose();});animation.add_ended(handler);animation.play()=
;}
} else {
throw Error.argumentType('type', type, $AA.Animation, =
AjaxControlToolkit.Resources.Animation_InvalidBaseType);}
}
$AA.buildAnimation =3D function(json, defaultTarget) {
if (!json || json =3D=3D=3D '') {
return null;}
var obj;json =3D '(' + json + ')';if (! Sys.Debug.isDebug) {
try { obj =3D Sys.Serialization.JavaScriptSerializer.deserialize(json);} =
catch (ex) { }=20
} else {
obj =3D Sys.Serialization.JavaScriptSerializer.deserialize(json);}
return $AA.createAnimation(obj, defaultTarget);}
$AA.createAnimation =3D function(obj, defaultTarget) {
if (!obj || !obj.AnimationName) {
throw Error.argument('obj', =
AjaxControlToolkit.Resources.Animation_MissingAnimationName);}
var type =3D $AA.__animations[obj.AnimationName.toLowerCase()];if =
(!type) {
throw Error.argument('type', =
String.format(AjaxControlToolkit.Resources.Animation_UknownAnimationName,=
 obj.AnimationName));}
var animation =3D new type();if (defaultTarget) {
animation.set_target(defaultTarget);}
if (obj.AnimationChildren && obj.AnimationChildren.length) {
if ($AA.ParentAnimation.isInstanceOfType(animation)) {
for (var i =3D 0;i < obj.AnimationChildren.length;i++) {
var child =3D $AA.createAnimation(obj.AnimationChildren[i]);if (child) {
animation.add(child);}
}
} else {
throw Error.argument('obj', =
String.format(AjaxControlToolkit.Resources.Animation_ChildrenNotAllowed, =
type.getName()));}
}
var properties =3D type.__animationProperties;if (!properties) {
type.__animationProperties =3D { };type.resolveInheritance();for (var =
name in type.prototype) {
if (name.startsWith('set_')) {
type.__animationProperties[name.substr(4).toLowerCase()] =3D name;}
}
delete type.__animationProperties['id'];properties =3D =
type.__animationProperties;}
for (var property in obj) {
var prop =3D property.toLowerCase();if (prop =3D=3D 'animationname' || =
prop =3D=3D 'animationchildren') {
continue;}
var value =3D obj[property];var setter =3D properties[prop];if (setter =
&& String.isInstanceOfType(setter) && animation[setter]) {
if (! Sys.Debug.isDebug) {
try { animation[setter](value);} catch (ex) { }
} else {
animation[setter](value);}
} else {
if (prop.endsWith('script')) {
setter =3D properties[prop.substr(0, property.length - 6)];if (setter && =
String.isInstanceOfType(setter) && animation[setter]) {
animation.DynamicProperties[setter] =3D value;} else if ( =
Sys.Debug.isDebug) {
throw Error.argument('obj', =
String.format(AjaxControlToolkit.Resources.Animation_NoDynamicPropertyFou=
nd, property, property.substr(0, property.length - 5)));}
} else if ( Sys.Debug.isDebug) {
throw Error.argument('obj', =
String.format(AjaxControlToolkit.Resources.Animation_NoPropertyFound, =
property));}
}
}
return animation;}
$AA.Animation =3D function(target, duration, fps) {
$AA.Animation.initializeBase(this);this._duration =3D 1;this._fps =3D =
25;this._target =3D null;this._tickHandler =3D null;this._timer =3D =
null;this._percentComplete =3D 0;this._percentDelta =3D null;this._owner =
=3D null;this._parentAnimation =3D null;this.DynamicProperties =3D { =
};if (target) {
this.set_target(target);}
if (duration) {
this.set_duration(duration);}
if (fps) {=20
this.set_fps(fps);}
}
$AA.Animation.prototype =3D {
dispose : function() {
if (this._timer) {
this._timer.dispose();this._timer =3D null;}
this._tickHandler =3D null;this._target =3D =
null;$AA.Animation.callBaseMethod(this, 'dispose');},
play : function() {
if (!this._owner) {
var resume =3D true;if (!this._timer) {
resume =3D false;if (!this._tickHandler) {
this._tickHandler =3D Function.createDelegate(this, this._onTimerTick);}
this._timer =3D new =
Sys.Timer();this._timer.add_tick(this._tickHandler);this.onStart();this._=
timer.set_interval(1000 / this._fps);this._percentDelta =3D 100 / =
(this._duration * this._fps);this._updatePercentComplete(0, true);}
this._timer.set_enabled(true);this.raisePropertyChanged('isPlaying');if =
(!resume) {
this.raisePropertyChanged('isActive');}
}
},
pause : function() {
if (!this._owner) {
if (this._timer) {
this._timer.set_enabled(false);this.raisePropertyChanged('isPlaying');}
}
},
stop : function(finish) {
if (!this._owner) {
var t =3D this._timer;this._timer =3D null;if (t) {
t.dispose();if (this._percentComplete !=3D=3D 100) {
this._percentComplete =3D =
100;this.raisePropertyChanged('percentComplete');if (finish || finish =
=3D=3D=3D undefined) {
this.onStep(100);}
}
this.onEnd();this.raisePropertyChanged('isPlaying');this.raisePropertyCha=
nged('isActive');}
}
},
onStart : function() {
this.raiseStarted();for (var property in this.DynamicProperties) {
try {
this[property](eval(this.DynamicProperties[property]));} catch(ex) {
if ( Sys.Debug.isDebug) {
throw ex;}
}
}
},
onStep : function(percentage) {
this.setValue(this.getAnimatedValue(percentage));},
onEnd : function() {
this.raiseEnded();},
getAnimatedValue : function(percentage) {
throw Error.notImplemented();},
setValue : function(value) {
throw Error.notImplemented();},
interpolate : function(start, end, percentage) {
return start + (end - start) * (percentage / 100);},
_onTimerTick : function() {
this._updatePercentComplete(this._percentComplete + this._percentDelta, =
true);},
_updatePercentComplete : function(percentComplete, animate) {
if (percentComplete > 100) {
percentComplete =3D 100;}
this._percentComplete =3D =
percentComplete;this.raisePropertyChanged('percentComplete');if =
(animate) {
this.onStep(percentComplete);}
if (percentComplete =3D=3D=3D 100) {
this.stop(false);}
},
setOwner : function(owner) {
this._owner =3D owner;},
raiseStarted : function() {
var handlers =3D this.get_events().getHandler('started');if (handlers) {
handlers(this, Sys.EventArgs.Empty);}
},
add_started : function(handler) {
this.get_events().addHandler("started", handler);},
remove_started : function(handler) {
this.get_events().removeHandler("started", handler);},
raiseEnded : function() {
var handlers =3D this.get_events().getHandler('ended');if (handlers) {
handlers(this, Sys.EventArgs.Empty);}
},
add_ended : function(handler) {
this.get_events().addHandler("ended", handler);},
remove_ended : function(handler) {
this.get_events().removeHandler("ended", handler);},
get_target : function() {
if (!this._target && this._parentAnimation) {
return this._parentAnimation.get_target();}
return this._target;},
set_target : function(value) {
if (this._target !=3D value) {
this._target =3D value;this.raisePropertyChanged('target');}
},
set_animationTarget : function(id) {
var target =3D null;var element =3D $get(id);if (element) {
target =3D element;} else {
var ctrl =3D $find(id);if (ctrl) {
element =3D ctrl.get_element();if (element) {
target =3D element;}
}
}
if (target) {=20
this.set_target(target);} else {
throw Error.argument('id', =
String.format(AjaxControlToolkit.Resources.Animation_TargetNotFound, =
id));}
},
get_duration : function() {
return this._duration;},
set_duration : function(value) {
value =3D this._getFloat(value);if (this._duration !=3D value) {
this._duration =3D value;this.raisePropertyChanged('duration');}
},
get_fps : function() {
return this._fps;},
set_fps : function(value) {
value =3D this._getInteger(value);if (this.fps !=3D value) {
this._fps =3D value;this.raisePropertyChanged('fps');}
},
get_isActive : function() {
return (this._timer !=3D=3D null);},
get_isPlaying : function() {
return (this._timer !=3D=3D null) && this._timer.get_enabled();},
get_percentComplete : function() {
return this._percentComplete;},
_getBoolean : function(value) {
if (String.isInstanceOfType(value)) {
return Boolean.parse(value);}
return value;},
_getInteger : function(value) {
if (String.isInstanceOfType(value)) {
return parseInt(value);}
return value;},
_getFloat : function(value) {
if (String.isInstanceOfType(value)) {
return parseFloat(value);}
return value;},
_getEnum : function(value, type) {
if (String.isInstanceOfType(value) && type && type.parse) {
return type.parse(value);}
return value;}
}
$AA.Animation.registerClass('AjaxControlToolkit.Animation.Animation', =
Sys.Component);$AA.registerAnimation('animation', =
$AA.Animation);$AA.ParentAnimation =3D function(target, duration, fps, =
animations) {
$AA.ParentAnimation.initializeBase(this, [target, duration, =
fps]);this._animations =3D [];if (animations && animations.length) {
for (var i =3D 0;i < animations.length;i++) {
this.add(animations[i]);}
}
}
$AA.ParentAnimation.prototype =3D {
initialize : function() {
$AA.ParentAnimation.callBaseMethod(this, 'initialize');if =
(this._animations) {
for (var i =3D 0;i < this._animations.length;i++) {
var animation =3D this._animations[i];if (animation && =
!animation.get_isInitialized) {
animation.initialize();}
}
}
},
dispose : function() {
this.clear();this._animations =3D =
null;$AA.ParentAnimation.callBaseMethod(this, 'dispose');},
get_animations : function() {
return this._animations;},
add : function(animation) {
if (this._animations) {
if (animation) {
animation._parentAnimation =3D this;}
Array.add(this._animations, =
animation);this.raisePropertyChanged('animations');}
},
remove : function(animation) {
if (this._animations) {
if (animation) {
animation.dispose();}
Array.remove(this._animations, =
animation);this.raisePropertyChanged('animations');}
},
removeAt : function(index) {
if (this._animations) {
var animation =3D this._animations[index];if (animation) {
animation.dispose();}
Array.removeAt(this._animations, =
index);this.raisePropertyChanged('animations');}
},
clear : function() {
if (this._animations) {
for (var i =3D this._animations.length - 1;i >=3D 0;i--) {
this._animations[i].dispose();this._animations[i] =3D null;}
Array.clear(this._animations);this._animations =3D =
[];this.raisePropertyChanged('animations');}
}
}
$AA.ParentAnimation.registerClass('AjaxControlToolkit.Animation.ParentAni=
mation', $AA.Animation);$AA.registerAnimation('parent', =
$AA.ParentAnimation);$AA.ParallelAnimation =3D function(target, =
duration, fps, animations) {
$AA.ParallelAnimation.initializeBase(this, [target, duration, fps, =
animations]);}
$AA.ParallelAnimation.prototype =3D {
add : function(animation) {
$AA.ParallelAnimation.callBaseMethod(this, 'add', =
[animation]);animation.setOwner(this);},
onStart : function() {
$AA.ParallelAnimation.callBaseMethod(this, 'onStart');var animations =3D =
this.get_animations();for (var i =3D 0;i < animations.length;i++) {
animations[i].onStart();}
},
onStep : function(percentage) {
var animations =3D this.get_animations();for (var i =3D 0;i < =
animations.length;i++) {
animations[i].onStep(percentage);}
},
onEnd : function() {
var animations =3D this.get_animations();for (var i =3D 0;i < =
animations.length;i++) {
animations[i].onEnd();}
$AA.ParallelAnimation.callBaseMethod(this, 'onEnd');}
}
$AA.ParallelAnimation.registerClass('AjaxControlToolkit.Animation.Paralle=
lAnimation', $AA.ParentAnimation);$AA.registerAnimation('parallel', =
$AA.ParallelAnimation);$AA.SequenceAnimation =3D function(target, =
duration, fps, animations, iterations) {
$AA.SequenceAnimation.initializeBase(this, [target, duration, fps, =
animations]);this._handler =3D null;this._paused =3D false;this._playing =
=3D false;this._index =3D 0;this._remainingIterations =3D =
0;this._iterations =3D (iterations !=3D=3D undefined) ? iterations : 1;}
$AA.SequenceAnimation.prototype =3D {
dispose : function() {
this._handler =3D null;$AA.SequenceAnimation.callBaseMethod(this, =
'dispose');},
stop : function() {
if (this._playing) {
var animations =3D this.get_animations();if (this._index < =
animations.length) {
animations[this._index].remove_ended(this._handler);for (var i =3D =
this._index;i < animations.length;i++) {
animations[i].stop();}
}
this._playing =3D false;this._paused =3D =
false;this.raisePropertyChanged('isPlaying');this.onEnd();}
},
pause : function() {
if (this.get_isPlaying()) {
var current =3D this.get_animations()[this._index];if (current !=3D =
null) {
current.pause();}
this._paused =3D true;this.raisePropertyChanged('isPlaying');}
},
play : function() {
var animations =3D this.get_animations();if (!this._playing) {
this._playing =3D true;if (this._paused) {
this._paused =3D false;var current =3D animations[this._index];if =
(current !=3D null) {
current.play();this.raisePropertyChanged('isPlaying');}
} else {
this.onStart();this._index =3D 0;var first =3D =
animations[this._index];if (first) {
first.add_ended(this._handler);first.play();this.raisePropertyChanged('is=
Playing');} else {
this.stop();}
}
}
},
onStart : function() {
$AA.SequenceAnimation.callBaseMethod(this, =
'onStart');this._remainingIterations =3D this._iterations - 1;if =
(!this._handler) {
this._handler =3D Function.createDelegate(this, this._onEndAnimation);}
},
_onEndAnimation : function() {
var animations =3D this.get_animations();var current =3D =
animations[this._index++];if (current) {
current.remove_ended(this._handler);}
if (this._index < animations.length) {
var next =3D =
animations[this._index];next.add_ended(this._handler);next.play();} else =
if (this._remainingIterations >=3D 1 || this._iterations <=3D 0) {
this._remainingIterations--;this._index =3D 0;var first =3D =
animations[0];first.add_ended(this._handler);first.play();} else {
this.stop();}
},
onStep : function(percentage) {
throw =
Error.invalidOperation(AjaxControlToolkit.Resources.Animation_CannotNestS=
equence);},
onEnd : function() {
this._remainingIterations =3D =
0;$AA.SequenceAnimation.callBaseMethod(this, 'onEnd');},
get_isActive : function() {
return true;},
get_isPlaying : function() {
return this._playing && !this._paused;},
get_iterations : function() {
return this._iterations;},
set_iterations : function(value) {
value =3D this._getInteger(value);if (this._iterations !=3D value) {
this._iterations =3D value;this.raisePropertyChanged('iterations');}
},
get_isInfinite : function() {
return this._iterations <=3D 0;}
}
$AA.SequenceAnimation.registerClass('AjaxControlToolkit.Animation.Sequenc=
eAnimation', $AA.ParentAnimation);$AA.registerAnimation('sequence', =
$AA.SequenceAnimation);$AA.SelectionAnimation =3D function(target, =
duration, fps, animations) {
$AA.SelectionAnimation.initializeBase(this, [target, duration, fps, =
animations]);this._selectedIndex =3D -1;this._selected =3D null;}
$AA.SelectionAnimation.prototype =3D {=20
getSelectedIndex : function() {
throw Error.notImplemented();},
onStart : function() {
$AA.SelectionAnimation.callBaseMethod(this, 'onStart');var animations =
=3D this.get_animations();this._selectedIndex =3D =
this.getSelectedIndex();if (this._selectedIndex >=3D 0 && =
this._selectedIndex < animations.length) {
this._selected =3D animations[this._selectedIndex];if (this._selected) {
this._selected.setOwner(this);this._selected.onStart();}
}
},
onStep : function(percentage) {
if (this._selected) {
this._selected.onStep(percentage);}
},
onEnd : function() {
if (this._selected) {
this._selected.onEnd();this._selected.setOwner(null);}
this._selected =3D null;this._selectedIndex =3D =
null;$AA.SelectionAnimation.callBaseMethod(this, 'onEnd');}
}
$AA.SelectionAnimation.registerClass('AjaxControlToolkit.Animation.Select=
ionAnimation', $AA.ParentAnimation);$AA.registerAnimation('selection', =
$AA.SelectionAnimation);$AA.ConditionAnimation =3D function(target, =
duration, fps, animations, conditionScript) {
$AA.ConditionAnimation.initializeBase(this, [target, duration, fps, =
animations]);this._conditionScript =3D conditionScript;}
$AA.ConditionAnimation.prototype =3D {=20
getSelectedIndex : function() {
var selected =3D -1;if (this._conditionScript && =
this._conditionScript.length > 0) {
try {
selected =3D eval(this._conditionScript) ? 0 : 1;} catch(ex) {
}
}
return selected;},
get_conditionScript : function() {
return this._conditionScript;},
set_conditionScript : function(value) {
if (this._conditionScript !=3D value) {
this._conditionScript =3D =
value;this.raisePropertyChanged('conditionScript');}
}
}
$AA.ConditionAnimation.registerClass('AjaxControlToolkit.Animation.Condit=
ionAnimation', =
$AA.SelectionAnimation);$AA.registerAnimation('condition', =
$AA.ConditionAnimation);$AA.CaseAnimation =3D function(target, duration, =
fps, animations, selectScript) {
$AA.CaseAnimation.initializeBase(this, [target, duration, fps, =
animations]);this._selectScript =3D selectScript;}
$AA.CaseAnimation.prototype =3D {
getSelectedIndex : function() {
var selected =3D -1;if (this._selectScript && this._selectScript.length =
> 0) {
try {
var result =3D eval(this._selectScript)
if (result !=3D=3D undefined)
selected =3D result;} catch (ex) {
}
}
return selected;},
get_selectScript : function() {
return this._selectScript;},
set_selectScript : function(value) {
if (this._selectScript !=3D value) {
this._selectScript =3D value;this.raisePropertyChanged('selectScript');}
}
}
$AA.CaseAnimation.registerClass('AjaxControlToolkit.Animation.CaseAnimati=
on', $AA.SelectionAnimation);$AA.registerAnimation('case', =
$AA.CaseAnimation);$AA.FadeEffect =3D function() {
throw Error.invalidOperation();}
$AA.FadeEffect.prototype =3D {
FadeIn : 0,
FadeOut : 1
}
$AA.FadeEffect.registerEnum("AjaxControlToolkit.Animation.FadeEffect", =
false);$AA.FadeAnimation =3D function(target, duration, fps, effect, =
minimumOpacity, maximumOpacity, forceLayoutInIE) {
$AA.FadeAnimation.initializeBase(this, [target, duration, =
fps]);this._effect =3D (effect !=3D=3D undefined) ? effect : =
$AA.FadeEffect.FadeIn;this._max =3D (maximumOpacity !=3D=3D undefined) ? =
maximumOpacity : 1;this._min =3D (minimumOpacity !=3D=3D undefined) ? =
minimumOpacity : 0;this._start =3D this._min;this._end =3D =
this._max;this._layoutCreated =3D false;this._forceLayoutInIE =3D =
(forceLayoutInIE =3D=3D=3D undefined || forceLayoutInIE =3D=3D=3D null) =
? true : forceLayoutInIE;this._currentTarget =3D =
null;this._resetOpacities();}
$AA.FadeAnimation.prototype =3D {
_resetOpacities : function() {
if (this._effect =3D=3D $AA.FadeEffect.FadeIn) {
this._start =3D this._min;this._end =3D this._max;} else {
this._start =3D this._max;this._end =3D this._min;}
},
_createLayout : function() {
var element =3D this._currentTarget;if (element) {
var originalWidth =3D $common.getCurrentStyle(element, 'width');var =
originalHeight =3D $common.getCurrentStyle(element, 'height');var =
originalBackColor =3D $common.getCurrentStyle(element, =
'backgroundColor');if ((!originalWidth || originalWidth =3D=3D '' || =
originalWidth =3D=3D 'auto') &&
(!originalHeight || originalHeight =3D=3D '' || originalHeight =3D=3D =
'auto')) {
element.style.width =3D element.offsetWidth + 'px';}
if (!originalBackColor || originalBackColor =3D=3D '' || =
originalBackColor =3D=3D 'transparent' || originalBackColor =3D=3D =
'rgba(0, 0, 0, 0)') {
element.style.backgroundColor =3D =
$common.getInheritedBackgroundColor(element);}
this._layoutCreated =3D true;}
},
onStart : function() {
$AA.FadeAnimation.callBaseMethod(this, 'onStart');this._currentTarget =
=3D this.get_target();this.setValue(this._start);if =
(this._forceLayoutInIE && !this._layoutCreated && Sys.Browser.agent =
=3D=3D Sys.Browser.InternetExplorer) {
this._createLayout();}
},
getAnimatedValue : function(percentage) {
return this.interpolate(this._start, this._end, percentage);},
setValue : function(value) {
if (this._currentTarget) {
$common.setElementOpacity(this._currentTarget, value);}
},
get_effect : function() {
return this._effect;},
set_effect : function(value) {
value =3D this._getEnum(value, $AA.FadeEffect);if (this._effect !=3D =
value) {
this._effect =3D =
value;this._resetOpacities();this.raisePropertyChanged('effect');}
},
get_minimumOpacity : function() {
return this._min;},
set_minimumOpacity : function(value) {
value =3D this._getFloat(value);if (this._min !=3D value) {
this._min =3D =
value;this._resetOpacities();this.raisePropertyChanged('minimumOpacity');=
}
},
get_maximumOpacity : function() {
return this._max;},
set_maximumOpacity : function(value) {
value =3D this._getFloat(value);if (this._max !=3D value) {
this._max =3D =
value;this._resetOpacities();this.raisePropertyChanged('maximumOpacity');=
}
},
get_forceLayoutInIE : function() {
return this._forceLayoutInIE;},
set_forceLayoutInIE : function(value) {
value =3D this._getBoolean(value);if (this._forceLayoutInIE !=3D value) =
{
this._forceLayoutInIE =3D =
value;this.raisePropertyChanged('forceLayoutInIE');}
},
set_startValue : function(value) {
value =3D this._getFloat(value);this._start =3D value;}
}
$AA.FadeAnimation.registerClass('AjaxControlToolkit.Animation.FadeAnimati=
on', $AA.Animation);$AA.registerAnimation('fade', =
$AA.FadeAnimation);$AA.FadeInAnimation =3D function(target, duration, =
fps, minimumOpacity, maximumOpacity, forceLayoutInIE) {
$AA.FadeInAnimation.initializeBase(this, [target, duration, fps, =
$AA.FadeEffect.FadeIn, minimumOpacity, maximumOpacity, =
forceLayoutInIE]);}
$AA.FadeInAnimation.prototype =3D {
onStart : function() {
$AA.FadeInAnimation.callBaseMethod(this, 'onStart');if =
(this._currentTarget) {
this.set_startValue($common.getElementOpacity(this._currentTarget));}
}
}
$AA.FadeInAnimation.registerClass('AjaxControlToolkit.Animation.FadeInAni=
mation', $AA.FadeAnimation);$AA.registerAnimation('fadeIn', =
$AA.FadeInAnimation);$AA.FadeOutAnimation =3D function(target, duration, =
fps, minimumOpacity, maximumOpacity, forceLayoutInIE) {
$AA.FadeOutAnimation.initializeBase(this, [target, duration, fps, =
$AA.FadeEffect.FadeOut, minimumOpacity, maximumOpacity, =
forceLayoutInIE]);}
$AA.FadeOutAnimation.prototype =3D {
onStart : function() {
$AA.FadeOutAnimation.callBaseMethod(this, 'onStart');if =
(this._currentTarget) {
this.set_startValue($common.getElementOpacity(this._currentTarget));}
}
}
$AA.FadeOutAnimation.registerClass('AjaxControlToolkit.Animation.FadeOutA=
nimation', $AA.FadeAnimation);$AA.registerAnimation('fadeOut', =
$AA.FadeOutAnimation);$AA.PulseAnimation =3D function(target, duration, =
fps, iterations, minimumOpacity, maximumOpacity, forceLayoutInIE) {
$AA.PulseAnimation.initializeBase(this, [target, duration, fps, null, =
((iterations !=3D=3D undefined) ? iterations : 3)]);this._out =3D new =
$AA.FadeOutAnimation(target, duration, fps, minimumOpacity, =
maximumOpacity, forceLayoutInIE);this.add(this._out);this._in =3D new =
$AA.FadeInAnimation(target, duration, fps, minimumOpacity, =
maximumOpacity, forceLayoutInIE);this.add(this._in);}
$AA.PulseAnimation.prototype =3D {
get_minimumOpacity : function() {
return this._out.get_minimumOpacity();},
set_minimumOpacity : function(value) {
value =3D =
this._getFloat(value);this._out.set_minimumOpacity(value);this._in.set_mi=
nimumOpacity(value);this.raisePropertyChanged('minimumOpacity');},
get_maximumOpacity : function() {
return this._out.get_maximumOpacity();},
set_maximumOpacity : function(value) {
value =3D =
this._getFloat(value);this._out.set_maximumOpacity(value);this._in.set_ma=
ximumOpacity(value);this.raisePropertyChanged('maximumOpacity');},
get_forceLayoutInIE : function() {
return this._out.get_forceLayoutInIE();},
set_forceLayoutInIE : function(value) {
value =3D =
this._getBoolean(value);this._out.set_forceLayoutInIE(value);this._in.set=
_forceLayoutInIE(value);this.raisePropertyChanged('forceLayoutInIE');},
set_duration : function(value) {
value =3D this._getFloat(value);$AA.PulseAnimation.callBaseMethod(this, =
'set_duration', =
[value]);this._in.set_duration(value);this._out.set_duration(value);},
set_fps : function(value) {
value =3D =
this._getInteger(value);$AA.PulseAnimation.callBaseMethod(this, =
'set_fps', [value]);this._in.set_fps(value);this._out.set_fps(value);}
}
$AA.PulseAnimation.registerClass('AjaxControlToolkit.Animation.PulseAnima=
tion', $AA.SequenceAnimation);$AA.registerAnimation('pulse', =
$AA.PulseAnimation);$AA.PropertyAnimation =3D function(target, duration, =
fps, property, propertyKey) {
$AA.PropertyAnimation.initializeBase(this, [target, duration, =
fps]);this._property =3D property;this._propertyKey =3D =
propertyKey;this._currentTarget =3D null;}
$AA.PropertyAnimation.prototype =3D {
onStart : function() {
$AA.PropertyAnimation.callBaseMethod(this, =
'onStart');this._currentTarget =3D this.get_target();},
setValue : function(value) {
var element =3D this._currentTarget;if (element && this._property && =
this._property.length > 0) {=20
if (this._propertyKey && this._propertyKey.length > 0 && =
element[this._property]) {
element[this._property][this._propertyKey] =3D value;} else {
element[this._property] =3D value;}
}
},
getValue : function() {
var element =3D this.get_target();if (element && this._property && =
this._property.length > 0) {=20
var property =3D element[this._property];if (property) {
if (this._propertyKey && this._propertyKey.length > 0) {
return property[this._propertyKey];}
return property;}
}
return null;},
get_property : function() {
return this._property;},
set_property : function(value) {
if (this._property !=3D value) {
this._property =3D value;this.raisePropertyChanged('property');}
},
get_propertyKey : function() {
return this._propertyKey;},
set_propertyKey : function(value) {
if (this._propertyKey !=3D value) {
this._propertyKey =3D value;this.raisePropertyChanged('propertyKey');}
}
}
$AA.PropertyAnimation.registerClass('AjaxControlToolkit.Animation.Propert=
yAnimation', $AA.Animation);$AA.registerAnimation('property', =
$AA.PropertyAnimation);$AA.DiscreteAnimation =3D function(target, =
duration, fps, property, propertyKey, values) {
$AA.DiscreteAnimation.initializeBase(this, [target, duration, fps, =
property, propertyKey]);this._values =3D (values && values.length) ? =
values : [];}
$AA.DiscreteAnimation.prototype =3D {
getAnimatedValue : function(percentage) {
var index =3D Math.floor(this.interpolate(0, this._values.length - 1, =
percentage));return this._values[index];},
get_values : function() {
return this._values;},
set_values : function(value) {
if (this._values !=3D value) {
this._values =3D value;this.raisePropertyChanged('values');}
}
}
$AA.DiscreteAnimation.registerClass('AjaxControlToolkit.Animation.Discret=
eAnimation', $AA.PropertyAnimation);$AA.registerAnimation('discrete', =
$AA.DiscreteAnimation);$AA.InterpolatedAnimation =3D function(target, =
duration, fps, property, propertyKey, startValue, endValue) {
$AA.InterpolatedAnimation.initializeBase(this, [target, duration, fps, =
((property !=3D=3D undefined) ? property : 'style'), =
propertyKey]);this._startValue =3D startValue;this._endValue =3D =
endValue;}
$AA.InterpolatedAnimation.prototype =3D {
get_startValue : function() {
return this._startValue;},
set_startValue : function(value) {
value =3D this._getFloat(value);if (this._startValue !=3D value) {
this._startValue =3D value;this.raisePropertyChanged('startValue');}
},
get_endValue : function() {
return this._endValue;},
set_endValue : function(value) {
value =3D this._getFloat(value);if (this._endValue !=3D value) {
this._endValue =3D value;this.raisePropertyChanged('endValue');}
}=20
}
$AA.InterpolatedAnimation.registerClass('AjaxControlToolkit.Animation.Int=
erpolatedAnimation', =
$AA.PropertyAnimation);$AA.registerAnimation('interpolated', =
$AA.InterpolatedAnimation);$AA.ColorAnimation =3D function(target, =
duration, fps, property, propertyKey, startValue, endValue) {
$AA.ColorAnimation.initializeBase(this, [target, duration, fps, =
property, propertyKey, startValue, endValue]);this._start =3D =
null;this._end =3D null;this._interpolateRed =3D =
false;this._interpolateGreen =3D false;this._interpolateBlue =3D false;}
$AA.ColorAnimation.prototype =3D {
onStart : function() {
$AA.ColorAnimation.callBaseMethod(this, 'onStart');this._start =3D =
$AA.ColorAnimation.getRGB(this.get_startValue());this._end =3D =
$AA.ColorAnimation.getRGB(this.get_endValue());this._interpolateRed =3D =
(this._start.Red !=3D this._end.Red);this._interpolateGreen =3D =
(this._start.Green !=3D this._end.Green);this._interpolateBlue =3D =
(this._start.Blue !=3D this._end.Blue);},
getAnimatedValue : function(percentage) {
var r =3D this._start.Red;var g =3D this._start.Green;var b =3D =
this._start.Blue;if (this._interpolateRed)
r =3D Math.round(this.interpolate(r, this._end.Red, percentage));if =
(this._interpolateGreen)
g =3D Math.round(this.interpolate(g, this._end.Green, percentage));if =
(this._interpolateBlue)
b =3D Math.round(this.interpolate(b, this._end.Blue, percentage));return =
$AA.ColorAnimation.toColor(r, g, b);},
set_startValue : function(value) {
if (this._startValue !=3D value) {
this._startValue =3D value;this.raisePropertyChanged('startValue');}
},
set_endValue : function(value) {
if (this._endValue !=3D value) {
this._endValue =3D value;this.raisePropertyChanged('endValue');}
}=20
}
$AA.ColorAnimation.getRGB =3D function(color) {
if (!color || color.length !=3D 7) {
throw String.format(AjaxControlToolkit.Resources.Animation_InvalidColor, =
color);}
return { 'Red': parseInt(color.substr(1,2), 16),
'Green': parseInt(color.substr(3,2), 16),
'Blue': parseInt(color.substr(5,2), 16) };}
$AA.ColorAnimation.toColor =3D function(red, green, blue) {
var r =3D red.toString(16);var g =3D green.toString(16);var b =3D =
blue.toString(16);if (r.length =3D=3D 1) r =3D '0' + r;if (g.length =
=3D=3D 1) g =3D '0' + g;if (b.length =3D=3D 1) b =3D '0' + b;return '#' =
+ r + g + b;}
$AA.ColorAnimation.registerClass('AjaxControlToolkit.Animation.ColorAnima=
tion', $AA.InterpolatedAnimation);$AA.registerAnimation('color', =
$AA.ColorAnimation);$AA.LengthAnimation =3D function(target, duration, =
fps, property, propertyKey, startValue, endValue, unit) {
$AA.LengthAnimation.initializeBase(this, [target, duration, fps, =
property, propertyKey, startValue, endValue]);this._unit =3D (unit !=3D =
null) ? unit : 'px';}
$AA.LengthAnimation.prototype =3D {
getAnimatedValue : function(percentage) {
var value =3D this.interpolate(this.get_startValue(), =
this.get_endValue(), percentage);return Math.round(value) + =
this._unit;},
get_unit : function() {
return this._unit;},
set_unit : function(value) {
if (this._unit !=3D value) {
this._unit =3D value;this.raisePropertyChanged('unit');}
}
}
$AA.LengthAnimation.registerClass('AjaxControlToolkit.Animation.LengthAni=
mation', $AA.InterpolatedAnimation);$AA.registerAnimation('length', =
$AA.LengthAnimation);$AA.MoveAnimation =3D function(target, duration, =
fps, horizontal, vertical, relative, unit) {
$AA.MoveAnimation.initializeBase(this, [target, duration, fps, =
null]);this._horizontal =3D horizontal ? horizontal : 0;this._vertical =
=3D vertical ? vertical : 0;this._relative =3D (relative =3D=3D=3D =
undefined) ? true : relative;this._horizontalAnimation =3D new =
$AA.LengthAnimation(target, duration, fps, 'style', 'left', null, null, =
unit);this._verticalAnimation =3D new $AA.LengthAnimation(target, =
duration, fps, 'style', 'top', null, null, =
unit);this.add(this._verticalAnimation);this.add(this._horizontalAnimatio=
n);}
$AA.MoveAnimation.prototype =3D {
onStart : function() {
$AA.MoveAnimation.callBaseMethod(this, 'onStart');var element =3D =
this.get_target();this._horizontalAnimation.set_startValue(element.offset=
Left);this._horizontalAnimation.set_endValue(this._relative ? =
element.offsetLeft + this._horizontal : =
this._horizontal);this._verticalAnimation.set_startValue(element.offsetTo=
p);this._verticalAnimation.set_endValue(this._relative ? =
element.offsetTop + this._vertical : this._vertical);},
get_horizontal : function() {
return this._horizontal;},
set_horizontal : function(value) {
value =3D this._getFloat(value);if (this._horizontal !=3D value) {
this._horizontal =3D value;this.raisePropertyChanged('horizontal');}
},
get_vertical : function() {
return this._vertical;},
set_vertical : function(value) {
value =3D this._getFloat(value);if (this._vertical !=3D value) {
this._vertical =3D value;this.raisePropertyChanged('vertical');}
},
get_relative : function() {
return this._relative;},
set_relative : function(value) {
value =3D this._getBoolean(value);if (this._relative !=3D value) {
this._relative =3D value;this.raisePropertyChanged('relative');}
},
get_unit : function() {
this._horizontalAnimation.get_unit();},
set_unit : function(value) {
var unit =3D this._horizontalAnimation.get_unit();if (unit !=3D value) {
this._horizontalAnimation.set_unit(value);this._verticalAnimation.set_uni=
t(value);this.raisePropertyChanged('unit');}
}
}
$AA.MoveAnimation.registerClass('AjaxControlToolkit.Animation.MoveAnimati=
on', $AA.ParallelAnimation);$AA.registerAnimation('move', =
$AA.MoveAnimation);$AA.ResizeAnimation =3D function(target, duration, =
fps, width, height, unit) {
$AA.ResizeAnimation.initializeBase(this, [target, duration, fps, =
null]);this._width =3D width;this._height =3D =
height;this._horizontalAnimation =3D new $AA.LengthAnimation(target, =
duration, fps, 'style', 'width', null, null, =
unit);this._verticalAnimation =3D new $AA.LengthAnimation(target, =
duration, fps, 'style', 'height', null, null, =
unit);this.add(this._horizontalAnimation);this.add(this._verticalAnimatio=
n);}
$AA.ResizeAnimation.prototype =3D {
onStart : function() {
$AA.ResizeAnimation.callBaseMethod(this, 'onStart');var element =3D =
this.get_target();this._horizontalAnimation.set_startValue(element.offset=
Width);this._verticalAnimation.set_startValue(element.offsetHeight);this.=
_horizontalAnimation.set_endValue((this._width !=3D=3D null && =
this._width !=3D=3D undefined) ?
this._width : =
element.offsetWidth);this._verticalAnimation.set_endValue((this._height =
!=3D=3D null && this._height !=3D=3D undefined) ?
this._height : element.offsetHeight);},
get_width : function() {
return this._width;},
set_width : function(value) {
value =3D this._getFloat(value);if (this._width !=3D value) {
this._width =3D value;this.raisePropertyChanged('width');}
},
get_height : function() {
return this._height;},
set_height : function(value) {
value =3D this._getFloat(value);if (this._height !=3D value) {
this._height =3D value;this.raisePropertyChanged('height');}
},
get_unit : function() {
this._horizontalAnimation.get_unit();},
set_unit : function(value) {
var unit =3D this._horizontalAnimation.get_unit();if (unit !=3D value) {
this._horizontalAnimation.set_unit(value);this._verticalAnimation.set_uni=
t(value);this.raisePropertyChanged('unit');}
}
}
$AA.ResizeAnimation.registerClass('AjaxControlToolkit.Animation.ResizeAni=
mation', $AA.ParallelAnimation);$AA.registerAnimation('resize', =
$AA.ResizeAnimation);$AA.ScaleAnimation =3D function(target, duration, =
fps, scaleFactor, unit, center, scaleFont, fontUnit) {
$AA.ScaleAnimation.initializeBase(this, [target, duration, =
fps]);this._scaleFactor =3D (scaleFactor !=3D=3D undefined) ? =
scaleFactor : 1;this._unit =3D (unit !=3D=3D undefined) ? unit : =
'px';this._center =3D center;this._scaleFont =3D =
scaleFont;this._fontUnit =3D (fontUnit !=3D=3D undefined) ? fontUnit : =
'pt';this._element =3D null;this._initialHeight =3D =
null;this._initialWidth =3D null;this._initialTop =3D =
null;this._initialLeft =3D null;this._initialFontSize =3D null;}
$AA.ScaleAnimation.prototype =3D {=20
getAnimatedValue : function(percentage) {
return this.interpolate(1.0, this._scaleFactor, percentage);},
onStart : function() {
$AA.ScaleAnimation.callBaseMethod(this, 'onStart');this._element =3D =
this.get_target();if (this._element) {
this._initialHeight =3D this._element.offsetHeight;this._initialWidth =
=3D this._element.offsetWidth;if (this._center) {
this._initialTop =3D this._element.offsetTop;this._initialLeft =3D =
this._element.offsetLeft;}
if (this._scaleFont) {
this._initialFontSize =3D parseFloat(
$common.getCurrentStyle(this._element, 'fontSize'));}
}
},
setValue : function(scale) {
if (this._element) {
var width =3D Math.round(this._initialWidth * scale);var height =3D =
Math.round(this._initialHeight * scale);this._element.style.width =3D =
width + this._unit;this._element.style.height =3D height + this._unit;if =
(this._center) {
this._element.style.top =3D (this._initialTop +
Math.round((this._initialHeight - height) / 2)) + =
this._unit;this._element.style.left =3D (this._initialLeft +
Math.round((this._initialWidth - width) / 2)) + this._unit;}
if (this._scaleFont) {
var size =3D this._initialFontSize * scale;if (this._fontUnit =3D=3D =
'px' || this._fontUnit =3D=3D 'pt') {
size =3D Math.round(size);}
this._element.style.fontSize =3D size + this._fontUnit;}
}
},
onEnd : function() {
this._element =3D null;this._initialHeight =3D null;this._initialWidth =
=3D null;this._initialTop =3D null;this._initialLeft =3D =
null;this._initialFontSize =3D =
null;$AA.ScaleAnimation.callBaseMethod(this, 'onEnd');},
get_scaleFactor : function() {
return this._scaleFactor;},
set_scaleFactor : function(value) {
value =3D this._getFloat(value);if (this._scaleFactor !=3D value) {
this._scaleFactor =3D value;this.raisePropertyChanged('scaleFactor');}
},
get_unit : function() {
return this._unit;},
set_unit : function(value) {
if (this._unit !=3D value) {
this._unit =3D value;this.raisePropertyChanged('unit');}
},
get_center : function() {
return this._center;},
set_center : function(value) {
value =3D this._getBoolean(value);if (this._center !=3D value) {
this._center =3D value;this.raisePropertyChanged('center');}
},
get_scaleFont : function() {
return this._scaleFont;},
set_scaleFont : function(value) {
value =3D this._getBoolean(value);if (this._scaleFont !=3D value) {
this._scaleFont =3D value;this.raisePropertyChanged('scaleFont');}
},
get_fontUnit : function() {
return this._fontUnit;},
set_fontUnit : function(value) {
if (this._fontUnit !=3D value) {=20
this._fontUnit =3D value;this.raisePropertyChanged('fontUnit');}
}
}
$AA.ScaleAnimation.registerClass('AjaxControlToolkit.Animation.ScaleAnima=
tion', $AA.Animation);$AA.registerAnimation('scale', =
$AA.ScaleAnimation);$AA.Action =3D function(target, duration, fps) {
$AA.Action.initializeBase(this, [target, duration, fps]);if (duration =
=3D=3D=3D undefined) {
this.set_duration(0);}
}
$AA.Action.prototype =3D {
onEnd : function() {
this.doAction();$AA.Action.callBaseMethod(this, 'onEnd');},
doAction : function() {
throw Error.notImplemented();},
getAnimatedValue : function() {
},
setValue : function() {
}
}
$AA.Action.registerClass('AjaxControlToolkit.Animation.Action', =
$AA.Animation);$AA.registerAnimation('action', =
$AA.Action);$AA.EnableAction =3D function(target, duration, fps, =
enabled) {
$AA.EnableAction.initializeBase(this, [target, duration, =
fps]);this._enabled =3D (enabled !=3D=3D undefined) ? enabled : true;}
$AA.EnableAction.prototype =3D {
doAction : function() {
var element =3D this.get_target();if (element) {
element.disabled =3D !this._enabled;}
},
get_enabled : function() {
return this._enabled;},
set_enabled : function(value) {
value =3D this._getBoolean(value);if (this._enabled !=3D value) {
this._enabled =3D value;this.raisePropertyChanged('enabled');}
}
}
$AA.EnableAction.registerClass('AjaxControlToolkit.Animation.EnableAction=
', $AA.Action);$AA.registerAnimation('enableAction', =
$AA.EnableAction);$AA.HideAction =3D function(target, duration, fps, =
visible) {
$AA.HideAction.initializeBase(this, [target, duration, =
fps]);this._visible =3D visible;}
$AA.HideAction.prototype =3D {
doAction : function() {
var element =3D this.get_target();if (element) {
$common.setVisible(element, this._visible);}
},
get_visible : function() {
return this._visible;},
set_visible : function(value) {
if (this._visible !=3D value) {
this._visible =3D value;this.raisePropertyChanged('visible');}
}
}
$AA.HideAction.registerClass('AjaxControlToolkit.Animation.HideAction', =
$AA.Action);$AA.registerAnimation('hideAction', =
$AA.HideAction);$AA.StyleAction =3D function(target, duration, fps, =
attribute, value) {
$AA.StyleAction.initializeBase(this, [target, duration, =
fps]);this._attribute =3D attribute;this._value =3D value;}
$AA.StyleAction.prototype =3D {
doAction : function() {
var element =3D this.get_target();if (element) {
element.style[this._attribute] =3D this._value;}
},
get_attribute : function() {
return this._attribute;},
set_attribute : function(value) {
if (this._attribute !=3D value) {
this._attribute =3D value;this.raisePropertyChanged('attribute');}
},
get_value : function() {
return this._value;},
set_value : function(value) {
if (this._value !=3D value) {
this._value =3D value;this.raisePropertyChanged('value');}
}
}
$AA.StyleAction.registerClass('AjaxControlToolkit.Animation.StyleAction',=
 $AA.Action);$AA.registerAnimation('styleAction', =
$AA.StyleAction);$AA.OpacityAction =3D function(target, duration, fps, =
opacity) {
$AA.OpacityAction.initializeBase(this, [target, duration, =
fps]);this._opacity =3D opacity;}
$AA.OpacityAction.prototype =3D {
doAction : function() {
var element =3D this.get_target();if (element) {
$common.setElementOpacity(element, this._opacity);}
},
get_opacity : function() {
return this._opacity;},
set_opacity : function(value) {
value =3D this._getFloat(value);if (this._opacity !=3D value) {
this._opacity =3D value;this.raisePropertyChanged('opacity');}
}
}
$AA.OpacityAction.registerClass('AjaxControlToolkit.Animation.OpacityActi=
on', $AA.Action);$AA.registerAnimation('opacityAction', =
$AA.OpacityAction);$AA.ScriptAction =3D function(target, duration, fps, =
script) {
$AA.ScriptAction.initializeBase(this, [target, duration, =
fps]);this._script =3D script;}
$AA.ScriptAction.prototype =3D {
doAction : function() {
try {
eval(this._script);} catch (ex) {
}
},
get_script : function() {
return this._script;},
set_script : function(value) {
if (this._script !=3D value) {
this._script =3D value;this.raisePropertyChanged('script');}
}
}
$AA.ScriptAction.registerClass('AjaxControlToolkit.Animation.ScriptAction=
', $AA.Action);$AA.registerAnimation('scriptAction', $AA.ScriptAction);
if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/ScriptResource.axd?d=386vsFSEtA4C97dGKsHUd4OV7y8QwjfMDwAmdDrMGAa5lQrh44FEihxILtuj90t3vOts3zJXfJnnigrUtRSpXdDeZDdhwrTeTeoXP01z-nzR2DKu1dHidWAXN8DnzzXR9jD2qfz7KkmTTGUK6fZHj85Cnas1&t=ffffffffb5824b70

Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.BehaviorB=
ase =3D function(element) {
AjaxControlToolkit.BehaviorBase.initializeBase(this,[element]);this._clie=
ntStateFieldID =3D null;this._pageRequestManager =3D =
null;this._partialUpdateBeginRequestHandler =3D =
null;this._partialUpdateEndRequestHandler =3D null;}
AjaxControlToolkit.BehaviorBase.prototype =3D {
initialize : function() {
AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'initialize');},
dispose : function() {
AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'dispose');if =
(this._pageRequestManager) {
if (this._partialUpdateBeginRequestHandler) {
this._pageRequestManager.remove_beginRequest(this._partialUpdateBeginRequ=
estHandler);this._partialUpdateBeginRequestHandler =3D null;}
if (this._partialUpdateEndRequestHandler) {
this._pageRequestManager.remove_endRequest(this._partialUpdateEndRequestH=
andler);this._partialUpdateEndRequestHandler =3D null;}
this._pageRequestManager =3D null;}
},
get_ClientStateFieldID : function() {
return this._clientStateFieldID;},
set_ClientStateFieldID : function(value) {
if (this._clientStateFieldID !=3D value) {
this._clientStateFieldID =3D =
value;this.raisePropertyChanged('ClientStateFieldID');}
},
get_ClientState : function() {
if (this._clientStateFieldID) {
var input =3D document.getElementById(this._clientStateFieldID);if =
(input) {
return input.value;}
}
return null;},
set_ClientState : function(value) {
if (this._clientStateFieldID) {
var input =3D document.getElementById(this._clientStateFieldID);if =
(input) {
input.value =3D value;}
}
},
registerPartialUpdateEvents : function() {
if (Sys && Sys.WebForms && Sys.WebForms.PageRequestManager){
this._pageRequestManager =3D =
Sys.WebForms.PageRequestManager.getInstance();if =
(this._pageRequestManager) {
this._partialUpdateBeginRequestHandler =3D Function.createDelegate(this, =
this._partialUpdateBeginRequest);this._pageRequestManager.add_beginReques=
t(this._partialUpdateBeginRequestHandler);this._partialUpdateEndRequestHa=
ndler =3D Function.createDelegate(this, =
this._partialUpdateEndRequest);this._pageRequestManager.add_endRequest(th=
is._partialUpdateEndRequestHandler);}
}
},
_partialUpdateBeginRequest : function(sender, beginRequestEventArgs) {
},
_partialUpdateEndRequest : function(sender, endRequestEventArgs) {
}
}
AjaxControlToolkit.BehaviorBase.registerClass('AjaxControlToolkit.Behavio=
rBase', Sys.UI.Behavior);AjaxControlToolkit.DynamicPopulateBehaviorBase =
=3D function(element) {
AjaxControlToolkit.DynamicPopulateBehaviorBase.initializeBase(this, =
[element]);this._DynamicControlID =3D null;this._DynamicContextKey =3D =
null;this._DynamicServicePath =3D null;this._DynamicServiceMethod =3D =
null;this._cacheDynamicResults =3D false;this._dynamicPopulateBehavior =
=3D null;this._populatingHandler =3D null;this._populatedHandler =3D =
null;}
AjaxControlToolkit.DynamicPopulateBehaviorBase.prototype =3D {
initialize : function() {
AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, =
'initialize');this._populatingHandler =3D Function.createDelegate(this, =
this._onPopulating);this._populatedHandler =3D =
Function.createDelegate(this, this._onPopulated);},
dispose : function() {
if (this._populatedHandler) {
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.remove_populated(this._populatedHandler);}
this._populatedHandler =3D null;}
if (this._populatingHandler) {
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.remove_populating(this._populatingHandler);=
}
this._populatingHandler =3D null;}
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.dispose();this._dynamicPopulateBehavior =
=3D null;}
AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, =
'dispose');},
populate : function(contextKeyOverride) {
if (this._dynamicPopulateBehavior && =
(this._dynamicPopulateBehavior.get_element() !=3D =
$get(this._DynamicControlID))) {
this._dynamicPopulateBehavior.dispose();this._dynamicPopulateBehavior =
=3D null;}
if (!this._dynamicPopulateBehavior && this._DynamicControlID && =
this._DynamicServiceMethod) {
this._dynamicPopulateBehavior =3D =
$create(AjaxControlToolkit.DynamicPopulateBehavior,
{
"id" : this.get_id() + "_DynamicPopulateBehavior",
"ContextKey" : this._DynamicContextKey,
"ServicePath" : this._DynamicServicePath,
"ServiceMethod" : this._DynamicServiceMethod,
"cacheDynamicResults" : this._cacheDynamicResults
}, null, null, =
$get(this._DynamicControlID));this._dynamicPopulateBehavior.add_populatin=
g(this._populatingHandler);this._dynamicPopulateBehavior.add_populated(th=
is._populatedHandler);}
if (this._dynamicPopulateBehavior) {
this._dynamicPopulateBehavior.populate(contextKeyOverride ? =
contextKeyOverride : this._DynamicContextKey);}
},
_onPopulating : function(sender, eventArgs) {
this.raisePopulating(eventArgs);},
_onPopulated : function(sender, eventArgs) {
this.raisePopulated(eventArgs);},
get_dynamicControlID : function() {
return this._DynamicControlID;},
get_DynamicControlID : this.get_dynamicControlID,
set_dynamicControlID : function(value) {
if (this._DynamicControlID !=3D value) {
this._DynamicControlID =3D =
value;this.raisePropertyChanged('dynamicControlID');this.raisePropertyCha=
nged('DynamicControlID');}
},
set_DynamicControlID : this.set_dynamicControlID,
get_dynamicContextKey : function() {
return this._DynamicContextKey;},
get_DynamicContextKey : this.get_dynamicContextKey,
set_dynamicContextKey : function(value) {
if (this._DynamicContextKey !=3D value) {
this._DynamicContextKey =3D =
value;this.raisePropertyChanged('dynamicContextKey');this.raisePropertyCh=
anged('DynamicContextKey');}
},
set_DynamicContextKey : this.set_dynamicContextKey,
get_dynamicServicePath : function() {
return this._DynamicServicePath;},
get_DynamicServicePath : this.get_dynamicServicePath,
set_dynamicServicePath : function(value) {
if (this._DynamicServicePath !=3D value) {
this._DynamicServicePath =3D =
value;this.raisePropertyChanged('dynamicServicePath');this.raisePropertyC=
hanged('DynamicServicePath');}
},
set_DynamicServicePath : this.set_dynamicServicePath,
get_dynamicServiceMethod : function() {
return this._DynamicServiceMethod;},
get_DynamicServiceMethod : this.get_dynamicServiceMethod,
set_dynamicServiceMethod : function(value) {
if (this._DynamicServiceMethod !=3D value) {
this._DynamicServiceMethod =3D =
value;this.raisePropertyChanged('dynamicServiceMethod');this.raisePropert=
yChanged('DynamicServiceMethod');}
},
set_DynamicServiceMethod : this.set_dynamicServiceMethod,
get_cacheDynamicResults : function() {
return this._cacheDynamicResults;},
set_cacheDynamicResults : function(value) {
if (this._cacheDynamicResults !=3D value) {
this._cacheDynamicResults =3D =
value;this.raisePropertyChanged('cacheDynamicResults');}
},
add_populated : function(handler) {
this.get_events().addHandler("populated", handler);},
remove_populated : function(handler) {
this.get_events().removeHandler("populated", handler);},
raisePopulated : function(arg) {
var handler =3D this.get_events().getHandler("populated");if (handler) =
handler(this, arg);},
add_populating : function(handler) {
this.get_events().addHandler('populating', handler);},
remove_populating : function(handler) {
this.get_events().removeHandler('populating', handler);},
raisePopulating : function(eventArgs) {
var handler =3D this.get_events().getHandler('populating');if (handler) =
{
handler(this, eventArgs);}
}
}
AjaxControlToolkit.DynamicPopulateBehaviorBase.registerClass('AjaxControl=
Toolkit.DynamicPopulateBehaviorBase', =
AjaxControlToolkit.BehaviorBase);AjaxControlToolkit.ControlBase =3D =
function(element) {
AjaxControlToolkit.ControlBase.initializeBase(this, =
[element]);this._clientStateField =3D null;this._callbackTarget =3D =
null;this._onsubmit$delegate =3D Function.createDelegate(this, =
this._onsubmit);this._oncomplete$delegate =3D =
Function.createDelegate(this, this._oncomplete);this._onerror$delegate =
=3D Function.createDelegate(this, this._onerror);}
AjaxControlToolkit.ControlBase.prototype =3D {
initialize : function() {
AjaxControlToolkit.ControlBase.callBaseMethod(this, "initialize");if =
(this._clientStateField) {
this.loadClientState(this._clientStateField.value);}
if (typeof(Sys.WebForms)!=3D=3D"undefined" && =
typeof(Sys.WebForms.PageRequestManager)!=3D=3D"undefined") {
Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatemen=
ts, this._onsubmit$delegate);} else {
$addHandler(document.forms[0], "submit", this._onsubmit$delegate);}
},
dispose : function() {
if (typeof(Sys.WebForms)!=3D=3D"undefined" && =
typeof(Sys.WebForms.PageRequestManager)!=3D=3D"undefined") {
Array.remove(Sys.WebForms.PageRequestManager.getInstance()._onSubmitState=
ments, this._onsubmit$delegate);} else {
$removeHandler(document.forms[0], "submit", this._onsubmit$delegate);}
AjaxControlToolkit.ControlBase.callBaseMethod(this, "dispose");},
findElement : function(id) {
return $get(this.get_id() + '_' + id.split(':').join('_'));},
get_clientStateField : function() {
return this._clientStateField;},
set_clientStateField : function(value) {
if (this.get_isInitialized()) throw =
Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_CannotSe=
tClientStateField);if (this._clientStateField !=3D value) {
this._clientStateField =3D =
value;this.raisePropertyChanged('clientStateField');}
},
loadClientState : function(value) {
},
saveClientState : function() {
return null;},
_invoke : function(name, args, cb) {
if (!this._callbackTarget) {
throw =
Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_ControlN=
otRegisteredForCallbacks);}
if (typeof(WebForm_DoCallback)=3D=3D=3D"undefined") {
throw =
Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_PageNotR=
egisteredForCallbacks);}
var ar =3D [];for (var i =3D 0;i < args.length;i++)=20
ar[i] =3D args[i];var clientState =3D this.saveClientState();if =
(clientState !=3D null && !String.isInstanceOfType(clientState)) {
throw =
Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_InvalidC=
lientStateType);}
var payload =3D =
Sys.Serialization.JavaScriptSerializer.serialize({name:name,args:ar,state=
:this.saveClientState()});WebForm_DoCallback(this._callbackTarget, =
payload, this._oncomplete$delegate, cb, this._onerror$delegate, true);},
_oncomplete : function(result, context) {
result =3D Sys.Serialization.JavaScriptSerializer.deserialize(result);if =
(result.error) {
throw Error.create(result.error);}
this.loadClientState(result.state);context(result.result);},
_onerror : function(message, context) {
throw Error.create(message);},
_onsubmit : function() {
if (this._clientStateField) {
this._clientStateField.value =3D this.saveClientState();}
return true;}=20
}
AjaxControlToolkit.ControlBase.registerClass("AjaxControlToolkit.ControlB=
ase", Sys.UI.Control);
Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.Resources=
=3D{"PasswordStrength_InvalidWeightingRatios":"Strength Weighting ratios =
must have 4 =
elements","Animation_ChildrenNotAllowed":"AjaxControlToolkit.Animation.cr=
eateAnimation cannot add child animations to type \"{0}\" that does not =
derive from =
AjaxControlToolkit.Animation.ParentAnimation","PasswordStrength_Remaining=
Symbols":"{0} symbol =
characters","ExtenderBase_CannotSetClientStateField":"clientStateField =
can only be set before initialization","RTE_PreviewHTML":"Preview =
HTML","RTE_JustifyCenter":"Justify =
Center","PasswordStrength_RemainingUpperCase":"{0} more upper case =
characters","Animation_TargetNotFound":"AjaxControlToolkit.Animation.Anim=
ation.set_animationTarget requires the ID of a Sys.UI.DomElement or =
Sys.UI.Control.  No element or control could be found corresponding to =
\"{0}\"","RTE_FontColor":"Font Color","RTE_LabelColor":"Label =
Color","Common_InvalidBorderWidthUnit":"A unit type of \"{0}\"\u0027 is =
invalid for =
parseBorderWidth","RTE_Heading":"Heading","Tabs_PropertySetBeforeInitiali=
zation":"{0} cannot be changed before =
initialization","RTE_OrderedList":"Ordered =
List","ReorderList_DropWatcherBehavior_NoChild":"Could not find child of =
list with id \"{0}\"","CascadingDropDown_MethodTimeout":"[Method =
timeout]","RTE_Columns":"Columns","RTE_InsertImage":"Insert =
Image","RTE_InsertTable":"Insert =
Table","RTE_Values":"Values","RTE_OK":"OK","ExtenderBase_PageNotRegistere=
dForCallbacks":"This Page has not been registered for =
callbacks","Animation_NoDynamicPropertyFound":"AjaxControlToolkit.Animati=
on.createAnimation found no property corresponding to \"{0}\" or =
\"{1}\"","Animation_InvalidBaseType":"AjaxControlToolkit.Animation.regist=
erAnimation can only register types that inherit from =
AjaxControlToolkit.Animation.Animation","RTE_UnorderedList":"Unordered =
List","ResizableControlBehavior_InvalidHandler":"{0} handler not a =
function, function name, or function =
text","Animation_InvalidColor":"Color must be a 7-character hex =
representation (e.g. #246ACF), not \"{0}\"","RTE_CellColor":"Cell =
Color","PasswordStrength_RemainingMixedCase":"Mixed case =
characters","RTE_Italic":"Italic","CascadingDropDown_NoParentElement":"Fa=
iled to find parent element =
\"{0}\"","ValidatorCallout_DefaultErrorMessage":"This control is =
invalid","RTE_Indent":"Indent","ReorderList_DropWatcherBehavior_CallbackE=
rror":"Reorder failed, see details =
below.\\r\\n\\r\\n{0}","PopupControl_NoDefaultProperty":"No default =
property supported for control \"{0}\" of type =
\"{1}\"","RTE_Normal":"Normal","PopupExtender_NoParentElement":"Couldn\u0=
027t find parent element \"{0}\"","RTE_ViewValues":"View =
Values","RTE_Legend":"Legend","RTE_Labels":"Labels","RTE_CellSpacing":"Ce=
ll Spacing","PasswordStrength_RemainingNumbers":"{0} more =
numbers","RTE_Border":"Border","RTE_Create":"Create","RTE_BackgroundColor=
":"Background Color","RTE_Cancel":"Cancel","RTE_JustifyFull":"Justify =
Full","RTE_JustifyLeft":"Justify =
Left","RTE_Cut":"Cut","ResizableControlBehavior_CannotChangeProperty":"Ch=
anges to {0} not supported","RTE_ViewSource":"View =
Source","Common_InvalidPaddingUnit":"A unit type of \"{0}\" is invalid =
for =
parsePadding","RTE_Paste":"Paste","ExtenderBase_ControlNotRegisteredForCa=
llbacks":"This Control has not been registered for =
callbacks","Calendar_Today":"Today: =
{0}","Common_DateTime_InvalidFormat":"Invalid =
format","ListSearch_DefaultPrompt":"Type to =
search","CollapsiblePanel_NoControlID":"Failed to find element =
\"{0}\"","RTE_ViewEditor":"View Editor","RTE_BarColor":"Bar =
Color","PasswordStrength_DefaultStrengthDescriptions":"NonExistent;Very =
Weak;Weak;Poor;Almost OK;Barely =
Acceptable;Average;Good;Strong;Excellent;Unbreakable!","RTE_Inserttexther=
e":"Insert text =
here","Animation_UknownAnimationName":"AjaxControlToolkit.Animation.creat=
eAnimation could not find an Animation corresponding to the name =
\"{0}\"","ExtenderBase_InvalidClientStateType":"saveClientState must =
return a value of type String","Rating_CallbackError":"An unhandled =
exception has occurred:\\r\\n{0}","Tabs_OwnerExpected":"owner must be =
set before initialize","DynamicPopulate_WebServiceTimeout":"Web service =
call timed out","PasswordStrength_RemainingLowerCase":"{0} more lower =
case =
characters","Animation_MissingAnimationName":"AjaxControlToolkit.Animatio=
n.createAnimation requires an object with an AnimationName =
property","RTE_JustifyRight":"Justify =
Right","Tabs_ActiveTabArgumentOutOfRange":"Argument is not a member of =
the tabs collection","RTE_CellPadding":"Cell =
Padding","RTE_ClearFormatting":"Clear =
Formatting","AlwaysVisible_ElementRequired":"AjaxControlToolkit.AlwaysVis=
ibleControlBehavior must have an =
element","Slider_NoSizeProvided":"Please set valid values for the height =
and width attributes in the slider\u0027s CSS =
classes","DynamicPopulate_WebServiceError":"Web Service call failed: =
{0}","PasswordStrength_StrengthPrompt":"Strength: =
","PasswordStrength_RemainingCharacters":"{0} more =
characters","PasswordStrength_Satisfied":"Nothing more =
required","RTE_Hyperlink":"Hyperlink","Animation_NoPropertyFound":"AjaxCo=
ntrolToolkit.Animation.createAnimation found no property corresponding =
to \"{0}\"","PasswordStrength_InvalidStrengthDescriptionStyles":"Text =
Strength description style classes must match the number of text =
descriptions.","PasswordStrength_GetHelpRequirements":"Get help on =
password =
requirements","PasswordStrength_InvalidStrengthDescriptions":"Invalid =
number of text strength descriptions =
specified","RTE_Underline":"Underline","Tabs_PropertySetAfterInitializati=
on":"{0} cannot be changed after =
initialization","RTE_Rows":"Rows","RTE_Redo":"Redo","RTE_Size":"Size","RT=
E_Undo":"Undo","RTE_Bold":"Bold","RTE_Copy":"Copy","RTE_Font":"Font","Cas=
cadingDropDown_MethodError":"[Method error =
{0}]","RTE_BorderColor":"Border =
Color","RTE_Paragraph":"Paragraph","RTE_InsertHorizontalRule":"Insert =
Horizontal Rule","Common_UnitHasNoDigits":"No =
digits","RTE_Outdent":"Outdent","Common_DateTime_InvalidTimeSpan":"\"{0}\=
" is not a valid TimeSpan =
format","Animation_CannotNestSequence":"AjaxControlToolkit.Animation.Sequ=
enceAnimation cannot be nested inside =
AjaxControlToolkit.Animation.ParallelAnimation","Shared_BrowserSecurityPr=
eventsPaste":"Your browser security settings don\u0027t permit the =
automatic execution of paste operations. Please use the keyboard =
shortcut Ctrl+V instead."};
if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_002A_01CC9E27.6B4D4140
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://matp.pa.gov/ScriptResource.axd?d=QcGTKX1Gif_gn792erGUeC5SuR2wMDjcPR1LBr8p3SXh4NihZoY3f4eFiluGRbC0Rha2Q-N8OfXGm_EULQEqxqSjZzr3uFhdh3c-gfJjRYHWxxgpx2wKPJKyfqbc7qvSD9xppCB4dSeSaZqjQZ1JnZPBlplciyPidMQZo02R_KTGVLku0&t=ffffffffb5824b70

Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.Collapsib=
lePanelExpandDirection =3D function() {
throw Error.invalidOperation();}
AjaxControlToolkit.CollapsiblePanelExpandDirection.prototype =3D {
Horizontal : 0,
Vertical: 1
}
AjaxControlToolkit.CollapsiblePanelExpandDirection.registerEnum("AjaxCont=
rolToolkit.CollapsiblePanelExpandDirection", =
false);AjaxControlToolkit.CollapsiblePanelBehavior =3D function(element) =
{
AjaxControlToolkit.CollapsiblePanelBehavior.initializeBase(this, =
[element]);this._collapsedSize =3D 0;this._expandedSize =3D =
0;this._scrollContents =3D null;this._collapsed =3D =
false;this._expandControlID =3D null;this._collapseControlID =3D =
null;this._textLabelID =3D null;this._collapsedText =3D =
null;this._expandedText =3D null;this._imageControlID =3D =
null;this._expandedImage =3D null;this._collapsedImage =3D =
null;this._suppressPostBack =3D null;this._autoExpand =3D =
null;this._autoCollapse =3D null;this._expandDirection =3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical;this._collaps=
eClickHandler =3D null;this._expandClickHandler =3D =
null;this._panelMouseEnterHandler =3D null;this._panelMouseLeaveHandler =
=3D null;this._childDiv =3D null;this._animation =3D null;}
AjaxControlToolkit.CollapsiblePanelBehavior.prototype =3D {=20
initialize : function() {
AjaxControlToolkit.CollapsiblePanelBehavior.callBaseMethod(this, =
'initialize');var element =3D this.get_element();this._animation =3D new =
AjaxControlToolkit.Animation.LengthAnimation(element, .25, 10, 'style', =
null, 0, 0, 'px');if (this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
this._animation.set_propertyKey('height');} else if =
(this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
this._animation.set_propertyKey('width');}
this._animation.add_ended(Function.createDelegate(this, =
this._onAnimateComplete));if (this._suppressPostBack =3D=3D null) {
if (element.tagName =3D=3D "INPUT" && element.type =3D=3D "checkbox") {
this._suppressPostBack =3D =
false;this.raisePropertyChanged('SuppressPostBack');}=20
else if (element.tagName =3D=3D "A") {
this._suppressPostBack =3D =
true;this.raisePropertyChanged('SuppressPostBack');}
}
var lastState =3D =
AjaxControlToolkit.CollapsiblePanelBehavior.callBaseMethod(this, =
'get_ClientState');if (lastState && lastState !=3D "") {
var wasCollapsed =3D Boolean.parse(lastState);if (this._collapsed !=3D =
wasCollapsed) {
this._collapsed =3D =
wasCollapsed;this.raisePropertyChanged('Collapsed');}
}
this._setupChildDiv();if (this._collapsed) {
this._setTargetSize(this._getCollapsedSize());} else {=20
this._setTargetSize(this._getExpandedSize());}=20
this._setupState(this._collapsed);if (this._collapseControlID =3D=3D =
this._expandControlID) {
this._collapseClickHandler =3D Function.createDelegate(this, =
this.togglePanel);this._expandClickHandler =3D null;} else {
this._collapseClickHandler =3D Function.createDelegate(this, =
this.collapsePanel);this._expandClickHandler =3D =
Function.createDelegate(this, this.expandPanel);}
if (this._autoExpand) {
this._panelMouseEnterHandler =3D Function.createDelegate(this, =
this._onMouseEnter);$addHandler(element, 'mouseover', =
this._panelMouseEnterHandler);}=20
if (this._autoCollapse) {
this._panelMouseLeaveHandler =3D Function.createDelegate(this, =
this._onMouseLeave);$addHandler(element, 'mouseout', =
this._panelMouseLeaveHandler);}
if (this._collapseControlID) {
var collapseElement =3D $get(this._collapseControlID);if =
(!collapseElement) {
throw Error.argument('CollapseControlID', =
String.format(AjaxControlToolkit.Resources.CollapsiblePanel_NoControlID, =
this._collapseControlID));} else {
$addHandler(collapseElement, 'click', this._collapseClickHandler);}
}
if (this._expandControlID) {
if (this._expandClickHandler) {=20
var expandElement =3D $get(this._expandControlID);if (!expandElement) {
throw Error.argument('ExpandControlID', =
String.format(AjaxControlToolkit.Resources.CollapsiblePanel_NoControlID, =
this._expandControlID));} else {
$addHandler(expandElement, 'click', this._expandClickHandler);}
}
}
},
dispose : function() {
var element =3D this.get_element();if (this._collapseClickHandler) {
var collapseElement =3D (this._collapseControlID ? =
$get(this._collapseControlID) : null);if (collapseElement) {
$removeHandler(collapseElement, 'click', this._collapseClickHandler);}
this._collapseClickHandler =3D null;}
if (this._expandClickHandler) {
var expandElement =3D (this._expandControlID ? =
$get(this._expandControlID) : null);if (expandElement) {
$removeHandler(expandElement, 'click', this._expandClickHandler);}
this._expandClickHandler =3D null;}
if (this._panelMouseEnterHandler) {
$removeHandler(element, 'mouseover', this._panelMouseEnterHandler);}
if (this._panelMouseLeaveHandler) {
$removeHandler(element, 'mouseout', this._panelMouseLeaveHandler);}
if (this._animation) {
this._animation.dispose();this._animation =3D null;}
AjaxControlToolkit.CollapsiblePanelBehavior.callBaseMethod(this, =
'dispose');},
togglePanel : function(eventObj) {
this._toggle(eventObj);},=20
expandPanel : function(eventObj) {
this._doOpen(eventObj);},
collapsePanel : function(eventObj) {
this._doClose(eventObj);},
_checkCollapseHide : function() {
if (this._collapsed && this._getTargetSize() =3D=3D 0) {
var e =3D this.get_element();var display =3D $common.getCurrentStyle(e, =
'display');if (!e.oldDisplay && display !=3D "none") {
e.oldDisplay =3D display;e.style.display =3D "none";}
return true;}
return false;},
_doClose : function(eventObj) {
var eventArgs =3D new =
Sys.CancelEventArgs();this.raiseCollapsing(eventArgs);if =
(eventArgs.get_cancel()) {
return;}
if (this._animation) {
this._animation.stop();this._animation.set_startValue(this._getTargetSize=
());this._animation.set_endValue(this._getCollapsedSize());this._animatio=
n.play();}
this._setupState(true);if (this._suppressPostBack) {
if (eventObj && eventObj.preventDefault) {
eventObj.preventDefault();} else {
if (event) {
event.returnValue =3D false;}
return false;}
}
},
_doOpen : function(eventObj) {
var eventArgs =3D new =
Sys.CancelEventArgs();this.raiseExpanding(eventArgs);if =
(eventArgs.get_cancel()) {
return;}
if (this._animation) {
this._animation.stop();var e =3D this.get_element();if =
(this._checkCollapseHide() && $common.getCurrentStyle(e, 'display', =
e.style.display)) {
if (e.oldDisplay) {
e.style.display =3D e.oldDisplay;} else {
if (e.style.removeAttribute) {
e.style.removeAttribute("display");} else {
e.style.removeProperty("display");}
}
e.oldDisplay =3D null;}
this._animation.set_startValue(this._getTargetSize());this._animation.set=
_endValue(this._getExpandedSize());this._animation.play();}
this._setupState(false);if (this._suppressPostBack) {
if (eventObj && eventObj.preventDefault) {
eventObj.preventDefault();} else {
if (event) {
event.returnValue =3D false;}
return false;}
}
},
_onAnimateComplete : function() {
var e =3D this.get_element();if (!this._collapsed && =
!this._expandedSize)
{
if(this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
if(this._childDiv.offsetHeight <=3D e.offsetHeight) {
e.style.height =3D "auto";this.raisePropertyChanged('TargetHeight');}=20
else {
this._checkCollapseHide();}
}
else=20
{
if( this._childDiv.offsetWidth <=3D e.offsetWidth) {
e.style.width =3D "auto";this.raisePropertyChanged('TargetWidth');}
else {
this._checkCollapseHide();}
}
}
else {
this._checkCollapseHide();}
if (this._collapsed) {
this.raiseCollapseComplete();this.raiseCollapsed(Sys.EventArgs.Empty);} =
else {
this.raiseExpandComplete()
this.raiseExpanded(new Sys.EventArgs());}
},
_onMouseEnter : function(eventObj) {
if (this._autoExpand) {
this.expandPanel(eventObj);}
},
_onMouseLeave : function(eventObj) {
if (this._autoCollapse) {
this.collapsePanel(eventObj);}
},
_getExpandedSize : function() {
if (this._expandedSize) {
return this._expandedSize;}=20
if (this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
return this._childDiv.offsetHeight;} else if (this._expandDirection =
=3D=3D AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
return this._childDiv.offsetWidth;}
},
_getCollapsedSize : function() {
if (this._collapsedSize) {
return this._collapsedSize;}
return 0;},
_getTargetSize : function() {
var value;if (this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
value =3D this.get_TargetHeight();} else if (this._expandDirection =
=3D=3D AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
value =3D this.get_TargetWidth();}=20
if (value =3D=3D=3D undefined) {
value =3D 0;}
return value;},
_setTargetSize : function(value) {
var useSize =3D this._collapsed || this._expandedSize;var e =3D =
this.get_element();if (this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
if (useSize || value < e.offsetHeight) {
this.set_TargetHeight(value);} else {
e.style.height =3D "auto";this.raisePropertyChanged('TargetHeight');}
} else if (this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
if (useSize || value < e.offsetWidth) {
this.set_TargetWidth(value);}
else {
e.style.width =3D "auto";this.raisePropertyChanged('TargetWidth');}=20
}
this._checkCollapseHide();},
_setupChildDiv : function() {
var startSize =3D this._getTargetSize();var e =3D =
this.get_element();this._childDiv =3D =
e.cloneNode(false);this._childDiv.id =3D '';while (e.hasChildNodes()) {=20
var child =3D e.childNodes[0];child =3D =
e.removeChild(child);this._childDiv.appendChild(child);}
e.style.padding =3D "";e.style.border =3D "";if (this._scrollContents) {
if (this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
e.style.overflowY =3D "scroll";this._childDiv.style.overflowY =3D "";} =
else {
e.style.overflowX =3D "scroll";this._childDiv.style.overflowX =3D "";}
if (Sys.Browser.agent =3D=3D Sys.Browser.Safari || Sys.Browser.agent =
=3D=3D Sys.Browser.Opera) {
e.style.overflow =3D "scroll";this._childDiv.style.overflow =3D "";}
}
else {
if (this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
e.style.overflowY =3D "hidden";this._childDiv.style.overflowY =3D "";} =
else {
e.style.overflowX =3D "hidden";this._childDiv.style.overflowX =3D "";}
if (Sys.Browser.Agent =3D=3D Sys.Browser.Safari || Sys.Browser.Agent =
=3D=3D Sys.Browser.Opera) {
e.style.overflow =3D "hidden";this._childDiv.style.overflow =3D "";}=20
}
this._childDiv.style.position =3D "";this._childDiv.style.margin =3D =
"";if (startSize =3D=3D this._collapsedSize) {
if (this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
this._childDiv.style.height =3D "auto";} else if (this._expandDirection =
=3D=3D AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
this._childDiv.style.width =3D "auto";}
}
e.appendChild(this._childDiv);if (this._collapsed) {
startSize =3D this._getCollapsedSize();}
else {
startSize =3D this._getExpandedSize();}
if (this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
e.style.height =3D startSize + "px";if (!this._expandedSize) {
e.style.height =3D "auto";}
else {
e.style.height =3D this._expandedSize + "px";}
this._childDiv.style.height =3D "auto";} else if (this._expandDirection =
=3D=3D AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
e.style.width =3D startSize + "px";if (!this._expandedSize) {
e.style.width =3D "auto";}
else {
e.style.width =3D this._expandedSize + "px";}
this._childDiv.style.width =3D "auto";}=20
},
_setupState : function(isCollapsed) {
if (isCollapsed) {=20
if (this._textLabelID && this._collapsedText) {
var e =3D $get(this._textLabelID);if (e) {
e.innerHTML =3D this._collapsedText;}
}
if (this._imageControlID && this._collapsedImage) {
var i =3D $get(this._imageControlID);if (i && i.src) {
i.src =3D this._collapsedImage;if (this._expandedText || =
this._collapsedText) {
i.title =3D this._collapsedText;}
}
}=20
}
else {=20
if (this._textLabelID && this._expandedText) {
var e =3D $get(this._textLabelID);if (e) {
e.innerHTML =3D this._expandedText;}
}
if (this._imageControlID && this._expandedImage) {
var i =3D $get(this._imageControlID);if (i && i.src) {
i.src =3D this._expandedImage;if (this._expandedText || =
this._collapsedText) {
i.title =3D this._expandedText;}
}
}=20
}=20
if (this._collapsed !=3D isCollapsed) {
this._collapsed =3D isCollapsed;this.raisePropertyChanged('Collapsed');}
AjaxControlToolkit.CollapsiblePanelBehavior.callBaseMethod(this, =
'set_ClientState', [this._collapsed.toString()]);},
_toggle : function(eventObj) {
if (this.get_Collapsed()) {
return this.expandPanel(eventObj);} else {
return this.collapsePanel(eventObj);}
},
add_collapsing : function(handler) {
this.get_events().addHandler('collapsing', handler);},
remove_collapsing : function(handler) {
this.get_events().removeHandler('collapsing', handler);},
raiseCollapsing : function(eventArgs) {
var handler =3D this.get_events().getHandler('collapsing');if (handler) =
{
handler(this, eventArgs);}
},
add_collapsed : function(handler) {
this.get_events().addHandler('collapsed', handler);},
remove_collapsed : function(handler) {
this.get_events().removeHandler('collapsed', handler);},
raiseCollapsed : function(eventArgs) {
var handler =3D this.get_events().getHandler('collapsed');if (handler) {
handler(this, eventArgs);}
},
add_collapseComplete : function(handler) {
this.get_events().addHandler('collapseComplete', handler);},
remove_collapseComplete : function(handler) {
this.get_events().removeHandler('collapseComplete', handler);},
raiseCollapseComplete : function() {
var handlers =3D this.get_events().getHandler('collapseComplete');if =
(handlers) {
handlers(this, Sys.EventArgs.Empty);}
},
add_expanding : function(handler) {
this.get_events().addHandler('expanding', handler);},
remove_expanding : function(handler) {
this.get_events().removeHandler('expanding', handler);},
raiseExpanding : function(eventArgs) {
var handler =3D this.get_events().getHandler('expanding');if (handler) {
handler(this, eventArgs);}
},
add_expanded : function(handler) {
this.get_events().addHandler('expanded', handler);},
remove_expanded : function(handler) {
this.get_events().removeHandler('expanded', handler);},
raiseExpanded : function(eventArgs) {
var handler =3D this.get_events().getHandler('expanded');if (handler) {
handler(this, eventArgs);}
},
add_expandComplete : function(handler) {
this.get_events().addHandler('expandComplete', handler);},
remove_expandComplete : function(handler) {
this.get_events().removeHandler('expandComplete', handler);},
raiseExpandComplete : function() {
var handlers =3D this.get_events().getHandler('expandComplete');if =
(handlers) {
handlers(this, Sys.EventArgs.Empty);}
},
get_TargetHeight : function() {
return this.get_element().offsetHeight;},
set_TargetHeight : function(value) {=20
this.get_element().style.height =3D value + =
"px";this.raisePropertyChanged('TargetHeight');},
get_TargetWidth : function() {
return this.get_element().offsetWidth;},
set_TargetWidth : function(value) {
this.get_element().style.width =3D value + "px"=20
this.raisePropertyChanged('TargetWidth');},
get_Collapsed : function() {
return this._collapsed;},=20
set_Collapsed : function(value) {
if (this.get_isInitialized() && this.get_element() && value !=3D =
this.get_Collapsed()) {
this.togglePanel();}
else {
this._collapsed =3D value;this.raisePropertyChanged('Collapsed');}
},
get_CollapsedSize : function() {
return this._collapsedSize;},
set_CollapsedSize : function(value) {
if (this._collapsedSize !=3D value) {
this._collapsedSize =3D =
value;this.raisePropertyChanged('CollapsedSize');}
},
get_ExpandedSize : function() {
return this._expandedSize;},
set_ExpandedSize : function(value) {
if (this._expandedSize !=3D value) {
this._expandedSize =3D value;this.raisePropertyChanged('ExpandedSize');}
},
get_CollapseControlID : function() {
return this._collapseControlID;},
set_CollapseControlID : function(value) {
if (this._collapseControlID !=3D value) {
this._collapseControlID =3D =
value;this.raisePropertyChanged('CollapseControlID');}
},
get_ExpandControlID : function() {
return this._expandControlID;},=20
set_ExpandControlID : function(value) {
if (this._expandControlID !=3D value) {
this._expandControlID =3D =
value;this.raisePropertyChanged('ExpandControlID');}
},
get_ScrollContents : function() {
return this._scrollContents;},
set_ScrollContents : function(value) {
if (this._scrollContents !=3D value) {
this._scrollContents =3D =
value;this.raisePropertyChanged('ScrollContents');}
},
get_SuppressPostBack : function() {
return this._suppressPostBack;},
set_SuppressPostBack : function(value) {
if (this._suppressPostBack !=3D value) {
this._suppressPostBack =3D =
value;this.raisePropertyChanged('SuppressPostBack');}
},
get_TextLabelID : function() {
return this._textLabelID;},
set_TextLabelID : function(value) {
if (this._textLabelID !=3D value) {
this._textLabelID =3D value;this.raisePropertyChanged('TextLabelID');}
},
get_ExpandedText : function() {
return this._expandedText;},
set_ExpandedText : function(value) {
if (this._expandedText !=3D value) {
this._expandedText =3D value;this.raisePropertyChanged('ExpandedText');}
},
get_CollapsedText : function() {
return this._collapsedText;},
set_CollapsedText : function(value) {
if (this._collapsedText !=3D value) {
this._collapsedText =3D =
value;this.raisePropertyChanged('CollapsedText');}
},
get_ImageControlID : function() {
return this._imageControlID;},
set_ImageControlID : function(value) {
if (this._imageControlID !=3D value) {
this._imageControlID =3D =
value;this.raisePropertyChanged('ImageControlID');}
},
get_ExpandedImage : function() {
return this._expandedImage;},
set_ExpandedImage : function(value) {
if (this._expandedImage !=3D value) {
this._expandedImage =3D =
value;this.raisePropertyChanged('ExpandedImage');}
},
get_CollapsedImage : function() {
return this._collapsedImage;},
set_CollapsedImage : function(value) {
if (this._collapsedImage !=3D value) {
this._collapsedImage =3D =
value;this.raisePropertyChanged('CollapsedImage');}
},
get_AutoExpand : function() {
return this._autoExpand;},
set_AutoExpand : function(value) {
if (this._autoExpand !=3D value) {
this._autoExpand =3D value;this.raisePropertyChanged('AutoExpand');}
},
get_AutoCollapse : function() {
return this._autoCollapse;},
set_AutoCollapse : function(value) {
if (this._autoCollapse !=3D value) {
this._autoCollapse =3D value;this.raisePropertyChanged('AutoCollapse');}
},=20
get_ExpandDirection : function() {
return this._expandDirection =3D=3D =
AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical;},=20
set_ExpandDirection : function(value) {
if (this._expandDirection !=3D value) {
this._expandDirection =3D =
value;this.raisePropertyChanged('ExpandDirection');}
}
}
AjaxControlToolkit.CollapsiblePanelBehavior.registerClass('AjaxControlToo=
lkit.CollapsiblePanelBehavior', AjaxControlToolkit.BehaviorBase);
if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_002A_01CC9E27.6B4D4140--
