From: <Guardado por Microsoft Internet Explorer 7>
Subject: Sis 'Advanced Grants' per a investigadors de centres catalans
Date: Thu, 4 Feb 2010 16:51:42 +0100
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01CAA5BA.54114B00"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/Sis-Advanced-Grants-per-a-investigadors-de-centres-catalans.html

=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 xml:lang=3D"en" =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Sis 'Advanced =
Grants' per a investigadors de centres catalans</TITLE>
<SCRIPT type=3Dtext/javascript>
   =20
    var estils =3D new Array();
    estils['h2.ambit-tematic'] =3D '1';
    estils['h1.titol'] =3D '1';
    estils['.entradeta'] =3D '1';
    estils['.contingut p.data'] =3D '1';
    estils['.agruacio-texte-index'] =3D '1';
    estils['.TituletsColor'] =3D '1';
    estils['.PeuFoto'] =3D '1';
    estils['.DespieceTitol'] =3D '1';
    estils['.DespieceText'] =3D '1';
    estils['.topics-article'] =3D '1';
    estils['.autor1 h3'] =3D '1';
    estils['p.professio'] =3D '1';
    estils['h3'] =3D '1';
    estils['.DestacatEsquerra'] =3D '1';
    estils['.DestacatDreta'] =3D '1';
    estils['.contingut-conferencia h1.titol'] =3D '1';
    estils['.contingut-conferencia h2.subtitol'] =3D '1';
    estils['h2.subtitol'] =3D '1';
    estils['.EstilEntradeta'] =3D '1';

    function textSize(signo) {
        var cssRules;

        if (document.styleSheets[0]['rules']) {
          cssRules =3D 'rules';
	    } else if (document.styleSheets[0]['cssRules']) {
	      cssRules =3D 'cssRules';
	    } else {
	      //no rules found... browser unknown
	    }

       var factor =3D  (signo=3D=3D"mes") ? 1 : -1;
             =20
       for(i =3D 0; i <  document.styleSheets[0][cssRules].length;i++)
       {
            if(estils[document.styleSheets[0][cssRules][i].selectorText]
                && =
document.styleSheets[0][cssRules][i].style['fontSize']){
               =20
                var size =3D =
parseInt(document.styleSheets[0][cssRules][i].style['fontSize'], 10);
               =20
                document.styleSheets[0][cssRules][i].style['fontSize'] =
=3D (size + factor) + "px";
         }
       }
    }
   =20
   =20
    function videoComplet(idVideo) {
        var url =3D "/divulgator/videocomplet.aspx?idVideo=3D" + =
idVideo;
        window.open(url, "","width=3D966,height=3D610, =
status=3Dyes,toolbar=3Dno,menubar=3Dno,location=3Dno");
    }
   =20
    </SCRIPT>
<LINK id=3Dctl00_ContentCustomHeaders_lkEstilArticle=20
href=3D"http://www.ca.globaltalentfcri.com/top/css/top_ie.css" =
type=3Dtext/css=20
rel=3Dstylesheet></LINK>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3DUTF-8">
<META http-equiv=3DContent-Language content=3Dca>
<META content=3D"global, talent, portal, ci=C3=A8ncia m=C3=B3n" =
name=3Dkeywords>
<META content=3D"Portal Ci=C3=A8ncia, Economia i Societat" =
name=3Ddescription>
<STYLE type=3Dtext/css>.ctl00_ContentPlaceHolder1_WebPartZone1_0 {
	BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; =
BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid
}
</STYLE>

<META content=3D"MSHTML 6.00.6000.16981" name=3DGENERATOR></HEAD>
<BODY onkeypress=3Djavascript:EnterKeyFilter(event);>
<FORM=20
onkeypress=3D"javascript:return WebForm_FireDefaultButton(event, =
'ctl00_btFake')"=20
id=3DaspnetForm onsubmit=3D"javascript:return WebForm_OnSubmit();"=20
action=3Darticle.aspx?id=3D1994 method=3Dpost>
<DIV><INPUT id=3D__WPPS type=3Dhidden value=3Ds name=3D__WPPS> <INPUT =
id=3D__EVENTTARGET=20
type=3Dhidden name=3D__EVENTTARGET> <INPUT id=3D__EVENTARGUMENT =
type=3Dhidden=20
name=3D__EVENTARGUMENT> <INPUT id=3D__VIEWSTATE type=3Dhidden=20
value=3D/wEPDwUKMTY2MDAzMzk4Mw8WAh4GVGl0b2xzZRYCZg9kFhJmD2QWAgIBD2QWAgIBD=
xYCHgRocmVmBRMvdG9wL2Nzcy90b3BfaWUuY3NzZAIBD2QWDAIHD2QWBgIBDw8WAh4PQ29tbW=
FuZEFyZ3VtZW50BQZVcmxDQVRkZAIDDw8WAh8CBQZVcmxFU1BkZAIFDw8WAh8CBQZVcmxBTkd=
kZAILDw8WAh4EVGV4dAUWZGlqb3VzLCAwNCBmZWJyZXIgMjAxMGRkAg8PZBY2AgEPZBYCZg8P=
FgIfAwUDVE9QZGQCAw9kFgJmDw8WAh8DBQRNw5NOZGQCBQ9kFgJmDw8WAh8DBQxPRkYgQ0nDi=
E5DSUFkZAIHD2QWAmYPDxYCHwMFCkRJVlVMR0FUT1JkZAIJD2QWAmYPDxYCHwMFB0dBTEVSSU=
FkZAILD2QWAmYPDxYCHwMFB1DDklNUSVRkZAIND2QWAmYPDxYCHwMFB1NJU1RFTUFkZAIPDw8=
WBh4LTmF2aWdhdGVVcmxlHglGb250X0JvbGRnHgRfIVNCAoAQZBYCZg8PFgIfAwUKYWN0dWFs=
aXRhdGRkAhEPZBYCZg8PFgIfAwUJZnJvbnRlcmVzZGQCEw9kFgJmDw8WAh8DBRljacOobmNpY=
SBwZXIgYSBwcmVzaWRlbnRzZGQCFQ9kFgJmDw8WAh8DBQ9jb3JyZXNwb25zYWxpZXNkZAIXD2=
QWAmYPDxYCHwMFCmJpdMOgY29sZXNkZAIZD2QWAmYPDxYCHwMFCHRyaWJ1bmVzZGQCGw9kFgJ=
mDw8WAh8DBQZkZWJhdHNkZAIdD2QWAmYPDxYCHwMFB2xhIHRpcmFkZAIfD2QWAmYPDxYCHwMF=
C2VudHJldmlzdGVzZGQCIQ9kFgJmDw8WAh8DBQdwZXJmaWxzZGQCIw9kFgJmDw8WAh8DBQ1jb=
25mZXLDqG5jaWVzZGQCJQ9kFgJmDw8WAh8DBQxmb3RvZ2FsZXJpZXNkZAInD2QWAmYPDxYCHw=
MFC2RvY3VtZW50YWxzZGQCKQ9kFgJmDw8WAh8DBQtpbmZvZ3JhZmllc2RkAisPZBYCZg8PFgI=
fAwUNcmVjb21hbmFjaW9uc2RkAi0PZBYCZg8PFgIfAwUKY3LDrXRpcXVlc2RkAi8PZBYCZg8P=
FgIfAwUSYWdyZWdhZG9yIGN1bHR1cmFsZGQCMQ9kFgJmDw8WAh8DBQdlbnRvcm5zZGQCMw9kF=
gJmDw8WAh8DBQhyZWN1cnNvc2RkAjUPZBYCZg8PFgIfAwUOY29udm9jYXTDsnJpZXNkZAIRDw=
8WAh8DBbgBPGEgaHJlZj0iLyIgPklOSUNJPC9hPiA+IDxhIGhyZWY9Ii90b3AvdG9wLmFzcHg=
iPlRPUDwvYT4gPiA8YSBocmVmPSIvdG9wL2FjdHVhbGl0YXQuYXNweCI+QWN0dWFsaXRhdDwv=
YT4gPiA8YSBocmVmPSIjIj5TaXMgJ0FkdmFuY2VkIEdyYW50cycgcGVyIGEgaW52ZXN0aWdhZ=
G9ycyBkZSBjZW50cmVzIGNhdGFsYW5zPC9hPmRkAhMPZBYCAgEPZBYIBRBnd3BEZXN0YWNhdE=
RyZXRhD2QWAmYPZBYEAgEPDxYCHwMFClJlbGFjaW9uYXRkZAIDDw8WBB4IQ3NzQ2xhc3MFGGN=
vbnRpZ3V0LXF1YWRyZS1kZXN0YWNhdB8GAgJkFgYCAQ8PFgIfBAVmL2FydGljbGVzLzg5Ni9E=
ZXUtY2llbnRpZmljcy1kZS1jZW50cmVzLWRlLXJlY2VyY2EtY2F0YWxhbnMtZGlzdGluZ2l0c=
y1hbWItYmVxdWVzLVN0YXJ0aW5nLUdyYW50cy5odG1sZBYCAgEPDxYCHwMFMkRldSBTdGFydG=
luZyBHcmFudHMgZGUgY2VudHJlcyBkZSByZWNlcmNhIGNhdGFsYW5zZGQCAw8PFgIfBAVmL2F=
ydGljbGVzLzg5Ni9EZXUtY2llbnRpZmljcy1kZS1jZW50cmVzLWRlLXJlY2VyY2EtY2F0YWxh=
bnMtZGlzdGluZ2l0cy1hbWItYmVxdWVzLVN0YXJ0aW5nLUdyYW50cy5odG1sZBYCZg8PFgQeD=
UFsdGVybmF0ZVRleHQFMkRldSBTdGFydGluZyBHcmFudHMgZGUgY2VudHJlcyBkZSByZWNlcm=
NhIGNhdGFsYW5zHghJbWFnZVVybAUffi9tZWRpYS83MC83MS84OTYvZm90b193MTU0LmpwZxY=
CHgV0aXRsZQUyRGV1IFN0YXJ0aW5nIEdyYW50cyBkZSBjZW50cmVzIGRlIHJlY2VyY2EgY2F0=
YWxhbnNkAgUPDxYCHwQFZi9hcnRpY2xlcy84OTYvRGV1LWNpZW50aWZpY3MtZGUtY2VudHJlc=
y1kZS1yZWNlcmNhLWNhdGFsYW5zLWRpc3RpbmdpdHMtYW1iLWJlcXVlcy1TdGFydGluZy1Hcm=
FudHMuaHRtbGQWAmYPDxYCHwMFGERlbHMgMTggZGUgdG90IGzigJlFc3RhdGRkBQ9nd3BDYWl=
4YVRvcEJsb2cPZBYCZg9kFgJmDw8WBB8HBRFkZXN0YWNhdF90b3AtYmxvZx8GAgJkFgQCAQ9k=
FgJmDw8WAh8DZWRkAgMPDxYEHwcFHWNvbnRpZ3V0LXF1YWRyZS1kZXN0YWNhdC1ibG9nHwYCA=
mQWBgIBD2QWAmYPDxYGHwhlHwllHgdUb29sVGlwZWRkAgMPZBYCZg8PFgQfA2UeB1Zpc2libG=
VoZGQCBQ8PFgIfA2VkZAUTZ3dwQ2FpeGFMaW5rc1JlbEFydA9kFgJmDw8WAh8MaGQWBAIBDxY=
CHwxnFgICAQ8PFgIfAwURTGlua3MgcmVsYWNpb25hdHNkZAIDDw8WAh8DBRNSZWxhY2lvbmF0=
cyBzZWNjacOzZGQFFGd3cENhaXhhTGlua3NSZWxTZWNjD2QWAmYPDxYCHwxoZBYEAgEPFgIfD=
GcWAgIBDw8WAh8DBRFMaW5rcyByZWxhY2lvbmF0c2RkAgMPDxYCHwMFElJlbGFjaW9uYXRzIE=
dsb2JhbGRkAhUPZBYCAgEPZBYGAgEPZBYCAgEPDxYCHwQFFC90b3AvYWN0dWFsaXRhdC5hc3B=
4ZBYCZg8PFgIfAwUKQWN0dWFsaXRhdGRkAgMPDxYEHwkFFi9pbWdzL0xJTklBYWN0dWFsQy5q=
cGcfCAUKYWN0dWFsaXRhdGRkAgUPZBYcAgEPDxYCHwMFFEd1YXJkb25zIGNpZW50w61maWNzZ=
GQCAw9kFgICAQ9kFgICAQ8WAh8DBc0DPG9iamVjdCB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2=
Nrd2F2ZS1mbGFzaCIgZGF0YT0ic3dmL2ZsYXNoX2dsb2JhbEJDTl92LnN3Zj9pZEFydGljbGU=
9LTEiIHdpZHRoPSI2MjUiIGhlaWdodD0iMjU5Ij48cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVl=
PSJzd2YvZmxhc2hfZ2xvYmFsQkNOX3Yuc3dmP2lkQXJ0aWNsZT0tMSIgLz48cGFyYW0gbmFtZ=
T0idXJsX3htbCIgdmFsdWU9InN3Zi9mbGFzaF9nbG9iYWxCQ04uYXNweD9pZD0tMSIgLz48aD=
E+SGF1cmllcyBkJmFjdXRlO2luc3RhbC5sYXIgZWwgcGx1Zy1pbiBkZWwgZmxhc2guLi4gPGE=
gaHJlZj0iaHR0cDovL3d3dy5hZG9iZS5jb20vc2hvY2t3YXZlL2Rvd25sb2FkL2Rvd25sb2Fk=
LmNnaT9QMV9Qcm9kX1ZlcnNpb249U2hvY2t3YXZlRmxhc2gmYW1wO3Byb21vaWQ9Qk9OUk4iP=
kRlc2NhcnJlZ2FyIHBsdWctaW4gZGUgRmxhc2g8L2E+PC9oMT48L29iamVjdD5kAgUPDxYCHw=
xoZGQCBw8PFgIfDGhkZAIJDw8WAh8MaGQWAgIBDw8WAh8MaGRkAgsPDxYCHwxoZBYCAgEPDxY=
CHwxoZGQCDQ8PFgIfAwU9U2lzICdBZHZhbmNlZCBHcmFudHMnIHBlciBhIGludmVzdGlnYWRv=
cnMgZGUgY2VudHJlcyBjYXRhbGFuc2RkAg8PDxYCHwNlZGQCEQ9kFgYCAQ8PFgIfAwXsAkVuI=
GxhIHNlZ29uYSBjb252b2NhdMOycmlhIHBlciBhIGludmVzdGlnYWRvcnMgZXhwZXJpbWVudG=
F0cyBkZSBs4oCZRXVyb3BlYW4gUmVzZWFyY2ggQ291bmNpbCAoRVJDKSwgNiBkZWxzIDIzNiB=
sw61kZXJzIGVuIHJlY2VyY2EgZGUgbGEgVW5pw7MgRXVyb3BlYSAoVUUpIHF1ZSBoYW4gb2J0=
aW5ndXQgdW5hICdBZHZhbmNlZCBHcmFudCcgdHJlYmFsbGVuIGVuIGNlbnRyZXMgZGUgcmVjZ=
XJjYSBkZSBDYXRhbHVueWEsIMOpcyBhIGRpciwgZWwgMiw1JSBkZWxzIGd1YXJkb25hdHMuIE=
NhZGEgYWp1dCBlc3TDoCBkb3RhdCBhbWIgdW4gbcOgeGltIGRlIDMsNSBtaWxpb25zIGTigJl=
ldXJvcyBlbiB1biB0ZXJtaW5pIGRlIGNpbmMgYW55cy5kZAIDDw8WAh8DBR9SZWRhY2Npw7Mg=
fCAxNSBkZSBnZW5lciBkZSAyMDEwZGQCBQ8PFgIfA2VkZAIbDw8WAh8MaGRkAh0PZBYCAgEPD=
xYCHwMFE09waW5pw7MgZGUgbCdleHBlcnRkZAIfD2QWAgIBDw8WAh8DBRNPcGluacOzIGRlIG=
wnZXhwZXJ0ZGQCIQ8PFgIfDGdkFgICAg8PFgIfAwWQAjx1bD48bGk+PGEgaHJlZj0iL3RvcGl=
jcy5hc3B4P2lkPTY2MCZpZFNTZWM9MTEiPklDUkVBPC9hPjwvbGk+PGxpPjxhIGhyZWY9Ii90=
b3BpY3MuYXNweD9pZD04MjcmaWRTU2VjPTExIj5QcmVtaTwvYT48L2xpPjxsaT48YSBocmVmP=
SIvdG9waWNzLmFzcHg/aWQ9MTQ1OCZpZFNTZWM9MTEiPkV1cm9wZWFuIFJlc2VhcmNoIENvdW=
5jaWw8L2E+PC9saT48bGk+PGEgaHJlZj0iL3RvcGljcy5hc3B4P2lkPTE0NTcmaWRTU2VjPTE=
xIj5BZHZhbmNlZCBHcmFudDwvYT48L2xpPjwvdWw+ZGQCIw9kFgICAQ8PFgIeCUlEQXJ0aWNs=
ZQLKD2QWCmYPZBYGAgEPDxYCHwMFCkNvbWVudGFyaXNkZAIDD2QWAmYPZBYMZg8PFgIfAwUQQ=
WZlZ2lyIGNvbWVudGFyaWRkAgEPDxYCHwMFBE5vbTpkZAIDDw8WBB8LBQpPYmxpZ2F0b3JpHw=
MFCk9ibGlnYXRvcmlkZAIEDw8WAh8DBQZFbWFpbDpkZAIHDw8WAh8DBQpDb21lbnRhcmk6ZGQ=
CCQ8PFgIfAwUIUHVibGljYXJkZAIFD2QWAmYPZBYGAgEPDxYCHwMFDDAgY29tZW50YXJpc2Rk=
AgMPFCsAAg8WBB4LXyFEYXRhQm91bmRnHgtfIUl0ZW1Db3VudGZkZGQCBQ8UKwACFgIfDGhkZ=
AIBD2QWAmYPZBYWZg8WAh8DBRBFbnZpYXIgYSB1biBhbWljZAIBDxYCHwMFE0UtbWFpbCBkZW=
wgdGV1IGFtaWNkAgMPDxYCHwMFCk9ibGlnYXRvcmlkZAIEDw8WAh8DBRBFbWFpbCBpbmNvcnJ=
lY3RlZGQCBQ8WAh8DBQdOb20gdGV1ZAIHDw8WAh8DBQpPYmxpZ2F0b3JpZGQCCA8WAh8DBQ1F=
bCB0ZXUgZS1tYWlsZAIKDw8WAh8DBQpPYmxpZ2F0b3JpZGQCCw8PFgIfAwUQRW1haWwgaW5jb=
3JyZWN0ZWRkAgwPFgIfAwUITWlzc2F0Z2VkAg4PDxYCHwMFBkVudmlhcmRkAgIPDxYCHwkFFi=
4uL3RvcC9pbWdzL2JvY2F0YS5qcGdkZAIDDw8WAh8JBRUuLi90b3AvaW1ncy9zb2JyZS5qcGd=
kZAIEDw8WAh8JBRUuLi90b3AvaW1ncy9pbXByZS5qcGdkZAICDxYCHwMFClF1w6ggc29tID9k=
AgMPFgIfAwUJUXVpIHNvbSA/ZAIEDxYCHwNlZAIFDxYCHwMFEENvbmRpY2lvbnMgZCfDunNkA=
gYPFgIfAwUTUHJvdGVjY2nDsyBkZSBkYWRlc2QCBw8WAh8DBQtBdsOtcyBsZWdhbGQCCA8WAh=
8DBUtMbG9jIFdlYiBvcHRpbWl0emF0IHBlcjogaWU3LCBpZTgsIGZpcmVmb3gsIGNocm9tZSw=
gc2FmYXJpLiBQcm9wZXJhbWVudCBpZTZkGAQFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tL=
ZXlfXxYBBQ5jdGwwMCRidEJ1c2NhcgU0Y3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRQZXVBc=
nRpY2xlJFBhZ2VyQ29tZW50YXJpcw8UKwAEZGQCBWZkBTFjdGwwMCRDb250ZW50UGxhY2VIb2=
xkZXIxJFBldUFydGljbGUkbHZDb21lbnRhcmlzDzwrAAkBCGZkBSNjdGwwMCRDb250ZW50UGx=
hY2VIb2xkZXIxJE1WUGFnaW5lcw8PZGZkm6MZIGz7KPVO8bno+dk51qUfBxQ=3D=20
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=20
src=3D"http://www.ca.globaltalentfcri.com/WebResource.axd?d=3DnaAtxYPlf8S=
0dZi3OkYgXQ2&amp;t=3D633363364222850001"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.ca.globaltalentfcri.com/ScriptResource.axd?d=3DO2RIBNEn=
P422Pa7HU8B_NPmUNGU00LUtnGDMO00PUmMih27ySno8Bon1Nq5_tZKG5fLxC6h0MdfZFubDv=
v4UWA2&amp;t=3D633363364222850001"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.ca.globaltalentfcri.com/ScriptResource.axd?d=3DO2RIBNEn=
P422Pa7HU8B_NPmUNGU00LUtnGDMO00PUmNBNIARPaAK6enlDaiqq__ubNCiWih1A95dHHZhY=
cmmcw2&amp;t=3D633363364222850001"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.ca.globaltalentfcri.com/ScriptResource.axd?d=3DhdInAlzD=
ABHw00Bzlv6YXwf2Fj-obYy8_KwQvLZjSpkjmxeGyDunZXEpxXCrMPDtycIQD_TZZvpF7iXrX=
SpHaFxDuIWjJ0y3RgtLoCmjNGs1&amp;t=3D633880924179270475"=20
type=3Dtext/javascript></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=20
src=3D"http://www.ca.globaltalentfcri.com/ScriptResource.axd?d=3DhdInAlzD=
ABHw00Bzlv6YXwf2Fj-obYy8_KwQvLZjSpkjmxeGyDunZXEpxXCrMPDtT0JxoipOtnSdNZOjg=
tF7Ytc9vCQIdFMYfsPgUShCK7EMw4_2BOi-YpDVF24ic4u60&amp;t=3D6338809241792704=
75"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.ca.globaltalentfcri.com/WebResource.axd?d=3D2jD60Y-Fqtr=
cRVEN3at3Cg2&amp;t=3D633363364222850001"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) =3D=3D "function" && ValidatorOnSubmit() =
=3D=3D false) return false;
return true;
}
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ctl00$ScriptManager', =
document.getElementById('aspnetForm'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tctl00$Co=
ntentPlaceHolder1$UpdatePanel1','tctl00$ContentPlaceHolder1$PeuArticle$Up=
datePanelComentari','tctl00$ContentPlaceHolder1$PeuArticle$UpdatePanel2',=
'tctl00$ContentPlaceHolder1$PeuArticle$upEnviarAmic'], [], [], 90);
//]]>
</SCRIPT>
<!--inici estructura general -->
<DIV id=3Destructura><!--inici cap=C3=A7alera-->
<DIV id=3Dcap>
<UL class=3Didiomes id=3Dctl00_langButtons>
  <LI><A id=3Dctl00_btCAT =
href=3D"javascript:__doPostBack('ctl00$btCAT','')"=20
  CauseValidation=3D"false">cat |</A>=20
  <LI><A id=3Dctl00_btESP =
href=3D"javascript:__doPostBack('ctl00$btESP','')"=20
  CauseValidation=3D"false">esp |</A>=20
  <LI><A id=3Dctl00_btANG =
href=3D"javascript:__doPostBack('ctl00$btANG','')"=20
  CauseValidation=3D"false">en</A> </LI></UL><!-- Inici buscador -->
<DIV id=3Dbuscador>
<DIV=20
onkeypress=3D"javascript:return WebForm_FireDefaultButton(event, =
'ctl00_btBuscar')"=20
id=3Dctl00_PanelBuscar><INPUT id=3Dctl00_edBuscar maxLength=3D100 =
name=3Dctl00$edBuscar>=20
<INPUT id=3Dctl00_btBuscar=20
style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
type=3Dimage=20
src=3D"http://www.ca.globaltalentfcri.com/articles/1994/imgs/triangle.png=
"=20
name=3Dctl00$btBuscar> </DIV></DIV><!-- Fi buscador -->
<P class=3Dcapdata><SPAN id=3Dctl00_lbData>dijous, 04 febrer =
2010</SPAN></P><!--inici part logo-->
<DIV class=3Dlogo><A id=3Dctl00_lkHome=20
href=3D"http://www.ca.globaltalentfcri.com/index.aspx"><IMG =
alt=3D"Global Pces"=20
src=3D"http://www.ca.globaltalentfcri.com/articles/1994/imgs/logoC.png"><=
/A>=20
</DIV>
<DIV class=3Dpesta style=3D"MARGIN-TOP: -0.5em; FLOAT: right; =
MARGIN-BOTTOM: 0em"><A=20
href=3D"http://www.antibloc.com/"><IMG alt=3D"Global "=20
src=3D"http://www.ca.globaltalentfcri.com/articles/1994/imgs/pestanyeta-a=
ntibloc.png"></A>=20
<!-- tancament part logo--></DIV><!-- menu --><!-- inici menu top-->
<DIV class=3Dtop_menu>
<UL>
  <LI class=3Dtop><A id=3Dctl00_menu1_lkTop=20
  href=3D"http://www.ca.globaltalentfcri.com/top/top.aspx"><SPAN=20
  id=3Dctl00_menu1_lbTop>TOP</SPAN></A>=20
  <LI class=3Dmon><A id=3Dctl00_menu1_lkMon=20
  href=3D"http://www.ca.globaltalentfcri.com/mon/mon.aspx"><SPAN=20
  id=3Dctl00_menu1_lbMon>M=C3=93N</SPAN></A>=20
  <LI class=3Dciencia><A id=3Dctl00_menu1_lkOffCiencia=20
  =
href=3D"http://www.ca.globaltalentfcri.com/offciencia/offciencia.aspx"><S=
PAN=20
  id=3Dctl00_menu1_lbOffCiencia>OFF CI=C3=88NCIA</SPAN></A>=20
  <LI class=3Ddivulgator><A id=3Dctl00_menu1_lkDivulgator=20
  =
href=3D"http://www.ca.globaltalentfcri.com/divulgator/divulgator.aspx"><S=
PAN=20
  id=3Dctl00_menu1_lbDivulgator>DIVULGATOR</SPAN></A>=20
  <LI class=3Dgaleria><A id=3Dctl00_menu1_lkGaleria=20
  href=3D"http://www.ca.globaltalentfcri.com/galeria/galeria.aspx"><SPAN =

  id=3Dctl00_menu1_lbGaleria>GALERIA</SPAN></A>=20
  <LI class=3Dpostit><A id=3Dctl00_menu1_lkPostit=20
  href=3D"http://www.ca.globaltalentfcri.com/postit/postit.aspx"><SPAN=20
  id=3Dctl00_menu1_lbPostit>P=C3=92STIT</SPAN></A>=20
  <LI class=3Dsistema><A id=3Dctl00_menu1_lkSistema=20
  href=3D"http://www.ca.globaltalentfcri.com/sistema/sistema.aspx"><SPAN =

  id=3Dctl00_menu1_lbSistema>SISTEMA</SPAN></A> </LI></UL>
<UL class=3Dtop_subseccions>
  <LI><A id=3Dctl00_menu1_lkActualitat style=3D"FONT-WEIGHT: bold"><SPAN =

  id=3Dctl00_menu1_lbActualitat>actualitat</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkFronteres=20
  href=3D"http://www.ca.globaltalentfcri.com/top/fronteres.aspx"><SPAN=20
  id=3Dctl00_menu1_lbFronteres>fronteres</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkCienciaPresid=20
  =
href=3D"http://www.ca.globaltalentfcri.com/top/cienciapresidents.aspx"><S=
PAN=20
  id=3Dctl00_menu1_lbCienciaPresid>ci=C3=A8ncia per a =
presidents</SPAN></A> </LI></UL>
<UL class=3Dmon_subseccions>
  <LI><A id=3Dctl00_menu1_lkCorresponsalies=20
  =
href=3D"http://www.ca.globaltalentfcri.com/mon/corresponsalies.aspx"><SPA=
N=20
  id=3Dctl00_menu1_lbCorresponsalies>corresponsalies</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkBitacores=20
  href=3D"http://www.ca.globaltalentfcri.com/mon/bitacores.aspx"><SPAN=20
  id=3Dctl00_menu1_lbBitacores>bit=C3=A0coles</SPAN></A> </LI></UL>
<UL class=3Dciencia_subseccions>
  <LI><A id=3Dctl00_menu1_lkTribunes=20
  =
href=3D"http://www.ca.globaltalentfcri.com/offciencia/tribunes.aspx"><SPA=
N=20
  id=3Dctl00_menu1_lbTribunes>tribunes</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkDebats=20
  =
href=3D"http://www.ca.globaltalentfcri.com/offciencia/debats.aspx"></A>
  <LI><A id=3Dctl00_menu1_lkLaTira=20
  =
href=3D"http://www.ca.globaltalentfcri.com/offciencia/latira.aspx"><SPAN =

  id=3Dctl00_menu1_lbLaTira>la tira</SPAN></A> </LI></UL>
<UL class=3Ddivulgator_subseccions>
  <LI><A id=3Dctl00_menu1_lkEntrevistes=20
  =
href=3D"http://www.ca.globaltalentfcri.com/divulgator/entrevistes.aspx"><=
SPAN=20
  id=3Dctl00_menu1_lbEntrevistes>entrevistes</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkPerfils=20
  =
href=3D"http://www.ca.globaltalentfcri.com/divulgator/perfils.aspx"><SPAN=
=20
  id=3Dctl00_menu1_lbPerfils>perfils</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkConferencies=20
  =
href=3D"http://www.ca.globaltalentfcri.com/divulgator/conferencies.aspx">=
<SPAN=20
  id=3Dctl00_menu1_lbConferencies>confer=C3=A8ncies</SPAN></A> =
</LI></UL>
<UL class=3Dgaleria_subseccions>
  <LI><A id=3Dctl00_menu1_lkFotografies=20
  =
href=3D"http://www.ca.globaltalentfcri.com/galeria/fotografies.aspx"><SPA=
N=20
  id=3Dctl00_menu1_lbFotografies>fotogaleries</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkVideos=20
  href=3D"http://www.ca.globaltalentfcri.com/galeria/videos.aspx"><SPAN=20
  id=3Dctl00_menu1_lbVideos>documentals</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkInfografies=20
  =
href=3D"http://www.ca.globaltalentfcri.com/galeria/infografies.aspx"><SPA=
N=20
  id=3Dctl00_menu1_lbInfografies>infografies</SPAN></A> </LI></UL>
<UL class=3Dpostit_subseccions>
  <LI><A id=3Dctl00_menu1_lkRecomanacions=20
  =
href=3D"http://www.ca.globaltalentfcri.com/postit/recomanacions.aspx"><SP=
AN=20
  id=3Dctl00_menu1_lbRecomanacions>recomanacions</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkCritiques=20
  =
href=3D"http://www.ca.globaltalentfcri.com/postit/critiques.aspx"><SPAN=20
  id=3Dctl00_menu1_lbCritiques>cr=C3=ADtiques</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkAgregadorCultural=20
  =
href=3D"http://www.ca.globaltalentfcri.com/postit/agregadorcultural.aspx"=
><SPAN=20
  id=3Dctl00_menu1_lbAgregadorCultural>agregador cultural</SPAN></A> =
</LI></UL>
<UL class=3Dsistema_subseccions>
  <LI><A id=3Dctl00_menu1_lkEntorns=20
  href=3D"http://www.ca.globaltalentfcri.com/sistema/entorns.aspx"><SPAN =

  id=3Dctl00_menu1_lbEntorns>entorns</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkImperdible=20
  =
href=3D"http://www.ca.globaltalentfcri.com/sistema/imperdible.aspx"><SPAN=
=20
  id=3Dctl00_menu1_lbImperdible>recursos</SPAN></A>=20
  <LI><A id=3Dctl00_menu1_lkAgendaConvocatories=20
  =
href=3D"http://www.ca.globaltalentfcri.com/sistema/agconvoc.aspx"><SPAN=20
  id=3Dctl00_menu1_lbAgendaConvocatories>convocat=C3=B2ries</SPAN></A> =
</LI></UL></DIV><!-- tancament menu top --><!-- breadcrumbs --><!-- =
breadcrumbs -->
<DIV class=3Dbreadcrumbs><SPAN id=3Dctl00_lbAridana><A=20
href=3D"http://www.ca.globaltalentfcri.com/">INICI</A> &gt; <A=20
href=3D"http://www.ca.globaltalentfcri.com/top/top.aspx">TOP</A> &gt; <A =

href=3D"http://www.ca.globaltalentfcri.com/top/actualitat.aspx">Actualita=
t</A>=20
&gt; <A=20
href=3D"http://www.ca.globaltalentfcri.com/articles/1994/Sis-Advanced-Gra=
nts-per-a-investigadors-de-centres-catalans.html#">Sis=20
'Advanced Grants' per a investigadors de centres catalans</A></SPAN>=20
</DIV></DIV><!-- tancament centre--><!-- inici centre   -->
<DIV id=3Dcentre><!-- inici central   -->
<DIV class=3Dcentral>
<DIV class=3Dagrupacio-central-article=20
id=3Dctl00_ContentPlaceHolder1_DivAgrupacioCentral>
<H1 id=3Dctl00_ContentPlaceHolder1_paTitol><A=20
id=3Dctl00_ContentPlaceHolder1_lkSubseccio=20
href=3D"http://www.ca.globaltalentfcri.com/top/actualitat.aspx"><SPAN=20
id=3Dctl00_ContentPlaceHolder1_lbSubseccio>Actualitat</SPAN></A> =
</H1><!-- inici lateral  -->
<DIV class=3Dlateral><IMG id=3Dctl00_ContentPlaceHolder1_imLateral=20
style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
alt=3Dactualitat =
src=3D"http://www.ca.globaltalentfcri.com/imgs/LINIAactualC.jpg">=20
</DIV><!-- inici contingut   -->
<DIV class=3Dcontingut id=3Dctl00_ContentPlaceHolder1_DivContingut>
<H2 class=3Dambit-tematic><SPAN=20
id=3Dctl00_ContentPlaceHolder1_lbAmbitTematic>Guardons =
cient=C3=ADfics</SPAN> </H2>
<DIV class=3Dbarra-utilitats><A class=3DestiloMenos title=3DDisminuir=20
onclick=3D"javascript:textSize('menys');return false;"=20
href=3D"http://www.ca.globaltalentfcri.com/articles/1994/Sis-Advanced-Gra=
nts-per-a-investigadors-de-centres-catalans.html#"><IMG=20
alt=3DDisminuir =
src=3D"http://www.ca.globaltalentfcri.com/imgs/lupa_menys.jpg"></A>=20
<A class=3DestiloMas title=3DAumentar=20
onclick=3D"javascript:textSize('mes');return false;"=20
href=3D"http://www.ca.globaltalentfcri.com/articles/1994/Sis-Advanced-Gra=
nts-per-a-investigadors-de-centres-catalans.html#"><IMG=20
alt=3D"Aumentar " =
src=3D"http://www.ca.globaltalentfcri.com/imgs/lupa_mes.jpg">=20
</A></DIV><!-- tancament barra utilitats-->
<DIV class=3Dautors><!-- inici autors --></DIV><!-- tancament autors-->
<H1 class=3Dtitol><SPAN id=3Dctl00_ContentPlaceHolder1_lbTitol>Sis =
'Advanced Grants'=20
per a investigadors de centres catalans</SPAN> </H1>
<H2 class=3Dsubtitol><SPAN =
id=3Dctl00_ContentPlaceHolder1_lbSubtitol></SPAN></H2>
<DIV id=3Dctl00_ContentPlaceHolder1_paCapcaleraEstandard>
<P class=3Dentradeta><SPAN id=3Dctl00_ContentPlaceHolder1_lbEntradeta>En =
la segona=20
convocat=C3=B2ria per a investigadors experimentats de =
l=E2=80=99European Research Council=20
(ERC), 6 dels 236 l=C3=ADders en recerca de la Uni=C3=B3 Europea (UE) =
que han obtingut una=20
'Advanced Grant' treballen en centres de recerca de Catalunya, =C3=A9s a =
dir, el 2,5%=20
dels guardonats. Cada ajut est=C3=A0 dotat amb un m=C3=A0xim de 3,5 =
milions d=E2=80=99euros en un=20
termini de cinc anys.</SPAN></P>
<P class=3Ddata><SPAN =
id=3Dctl00_ContentPlaceHolder1_lbData>Redacci=C3=B3 | 15 de gener=20
de 2010</SPAN></P>
<P class=3Dlloc><SPAN =
id=3Dctl00_ContentPlaceHolder1_lbLloc></SPAN></P></DIV>
<DIV class=3Dagruacio-texte-index><!-- inici agrupaci texte + taula  =
index  -->
<DIV id=3Dctl00_ContentPlaceHolder1_TaulaIndex></DIV>
<DIV id=3Dctl00_ContentPlaceHolder1_UpdatePanel1><SPAN>En el conjunt de =
l=E2=80=99Estat,=20
l=E2=80=99ERC ha distingit 10 investigadors, 6 dels quals han anat a =
parar a centres de=20
recerca catalans. Aquest =C3=A8xit de la recerca feta des de Catalunya =
se suma a=20
l=E2=80=99=C3=A8xit de l=E2=80=99octubre passat, quan un total de 10 =
cient=C3=ADfics novells van rebre una=20
de les 240 Starting Grants que atorga aquest organisme.<BR><BR>Entre els =

distingits d=E2=80=99aquest any, hi ha dos investigadors ICREA =
(Instituci=C3=B3 Catalana de=20
Recerca i Estudis Avan=C3=A7ats), un programa impulsat per la =
Generalitat de=20
Catalunya que dedica quantiosos recursos a la contractaci=C3=B3 de =
personal cient=C3=ADfic=20
de talent internacional.<BR><BR>Els ajuts <SPAN=20
style=3D"FONT-STYLE: italic">Advanced Grants</SPAN> donen suport als =
investigadors=20
que mostren una traject=C3=B2ria d=E2=80=99excel=C2=B7l=C3=A8ncia i =
lideratge internacional, i=20
subvencionen recerca de frontera pionera en tots els =C3=A0mbits, tot =
encoratjant la=20
interdisciplinarietat. El pressupost total de la convocat=C3=B2ria =
ascendeix fins a=20
515 milions d=E2=80=99euros.<BR><BR>Els guardonats dels centres catalans =
han=20
estat:<BR><BR><SPAN class=3DTituletsColor>Ci=C3=A8ncies socials i=20
humanitats</SPAN><BR><BR><SPAN style=3D"FONT-WEIGHT: bold">Jaume =
Ventura.=20
</SPAN>Investigador al Centre de Recerca en Economia Internacional =
(CREI) i=20
professor de la Universitat Pompeu Fabra (UPF). Es dedica a =
l=E2=80=99economia=20
internacional i la macroeconomia.<BR><BR><SPAN =
class=3DTituletsColor>Ci=C3=A8ncies=20
f=C3=ADsiques i enginyeries </SPAN><BR><BR><SPAN style=3D"FONT-WEIGHT: =
bold">Niek van=20
Hulst. </SPAN>Investigador ICREA de l=E2=80=99Institut de Ci=C3=A8ncies =
Fot=C3=B2niques (ICFO).=20
Els seus camps de recerca abasten la f=C3=ADsica molecular, =
l=E2=80=99=C3=B2ptica, la=20
qu=C3=ADmica-f=C3=ADsica de mol=C3=A8cules i les t=C3=A8cniques =
instrumentals.<BR><BR><SPAN=20
style=3D"FONT-WEIGHT: bold">Piet van Leeuwen.</SPAN> Duu a terme la seva =
recerca a=20
l=E2=80=99Institut Catal=C3=A0 d=E2=80=99Investigaci=C3=B3 Qu=C3=ADmica, =
i =C3=A9s professor em=C3=A8rit de les=20
universitats d=E2=80=99Amsterdam i d=E2=80=99Eindhoven. Es dedica =
principalment als efectes dels=20
lligands en la reacci=C3=B3 de hidroformilaci=C3=B3, de =
carbonilaci=C3=B3 i de formaci=C3=B3=20
d=E2=80=99enlla=C3=A7os carboni-carboni, i als sistemes reactors =
microflu=C3=ADdics per a cat=C3=A0lisi=20
homog=C3=A8nia.<BR><BR><SPAN style=3D"FONT-WEIGHT: bold">Sergio =
Idelsohn.</SPAN>=20
Investigador ICREA del Centre Internacional de M=C3=A8todes =
Num=C3=A8rics en l=E2=80=99Enginyeria=20
(CIMNE). =C3=89s especialista en simulacions num=C3=A8riques de =
problemes d=E2=80=99enginyeria=20
mec=C3=A0nica, en particular din=C3=A0miques computacionals de fluids. =
Ha desenvolupat un=20
nou m=C3=A8tode anomenat =E2=80=98M=C3=A8tode de part=C3=ADcules finites =
elementals=E2=80=99, que soluciona=20
problemes de mec=C3=A0nica de fluids i resulta molt =C3=BAtil en el =
disseny de vaixells i=20
molls. <BR><BR><SPAN class=3DTituletsColor>Ci=C3=A8ncies de la =
vida</SPAN><BR><BR><SPAN=20
style=3D"FONT-WEIGHT: bold">Josep Baselga.</SPAN> Du a terme la seva =
tasca=20
investigadora al Vall d=E2=80=99Hebron Institut d=E2=80=99Oncologia. =
=C3=89s cap del servei=20
d=E2=80=99oncologia de l=E2=80=99Hospital Universitari de Vall =
d=E2=80=99Hebron i professor de la=20
Universitat Aut=C3=B2noma de Barcelona (UAB). El seu inter=C3=A8s se =
centra sobretot en la=20
recerca cl=C3=ADnica i translacional del c=C3=A0ncer de =
mama.<BR><BR><SPAN=20
style=3D"FONT-WEIGHT: bold">Mokhtar Chmeissani. </SPAN>Treballa a =
l=E2=80=99Institut de=20
F=C3=ADsica d=E2=80=99Altes Energies (IFAE). Es dedica a la tomografia =
d=E2=80=99emissi=C3=B3 de=20
positrons.</SPAN> </DIV>
<DIV id=3Dctl00_ContentPlaceHolder1_paPaginesSota></DIV></DIV><!-- fi =
agrupaci=EF=BF=BD texte + taula  index  -->
<DIV class=3Dparauletes-sistema></DIV>
<DIV class=3Dtopics-article>
<DIV id=3Dctl00_ContentPlaceHolder1_paTopics><SPAN=20
id=3Dctl00_ContentPlaceHolder1_lbTopics>T=C3=B2pics de =
l'article</SPAN><SPAN=20
id=3Dctl00_ContentPlaceHolder1_edTopics>
<UL>
  <LI><A=20
  =
href=3D"http://www.ca.globaltalentfcri.com/topics.aspx?id=3D660&amp;idSSe=
c=3D11">ICREA</A></LI>
  <LI><A=20
  =
href=3D"http://www.ca.globaltalentfcri.com/topics.aspx?id=3D827&amp;idSSe=
c=3D11">Premi</A></LI>
  <LI><A=20
  =
href=3D"http://www.ca.globaltalentfcri.com/topics.aspx?id=3D1458&amp;idSS=
ec=3D11">European=20
  Research Council</A></LI>
  <LI><A=20
  =
href=3D"http://www.ca.globaltalentfcri.com/topics.aspx?id=3D1457&amp;idSS=
ec=3D11">Advanced=20
  Grant</A></LI></UL></SPAN></DIV></DIV>
<DIV id=3Dctl00_ContentPlaceHolder1_paPeuArticle>
<SCRIPT type=3Dtext/javascript>

function mostrarEnviarAmic()
    {
        amagarResultatEnviament();
   =20
        =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_edMailAmic'=
).value =3D "";
        =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_edNomTeu').=
value =3D "";
        =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_edMailTeu')=
.value =3D "";
        =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_edMissatge'=
).value =3D "";
   =20
        document.getElementById('paEnviarAmic').style.display =3D =
'inline';
       =20
        =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_edMailAmic'=
).focus();
    }
   =20
    function mostrarComentar()
    {
        =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_edNomAutor'=
).value =3D "";
        =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_edEmail').v=
alue =3D "";
        =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_edComentari=
').value =3D "";
       =20
        document.getElementById('paComentar').style.display =3D =
'inline';
        =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_edNomAutor'=
).focus();
    }
   =20
    function amagarEnviarAmic()
    {
        document.getElementById('paEnviarAmic').style.display =3D =
'none';
        return false;
    }
   =20
    function amagarComentari()
    {
        document.getElementById('paComentar').style.display =3D 'none';
        return false;
    }
   =20
    function amagarResultatEnviament()
    {
        =
if(document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_paResult=
atEnviament') !=3D undefined)
            =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_paResultatE=
nviament').style.display =3D 'none';
        return false;
    }

</SCRIPT>
<!-- COMENTARIS -->
<DIV id=3Dctl00_ContentPlaceHolder1_PeuArticle_paComentaris>
<H1><SPAN=20
id=3Dctl00_ContentPlaceHolder1_PeuArticle_lbTitolComentaris>Comentaris</S=
PAN></H1>
<DIV class=3Dtaula-comentaris><!-- AFEGIR COMENTARI -->
<DIV id=3Dctl00_ContentPlaceHolder1_PeuArticle_UpdatePanelComentari>
<DIV id=3DpaComentar style=3D"CLEAR: both; DISPLAY: none">
<TABLE>
  <TBODY>
  <TR>
    <TD colSpan=3D2><SPAN=20
      id=3Dctl00_ContentPlaceHolder1_PeuArticle_lbNouComentari>Afegir=20
      comentari</SPAN> </TD></TR>
  <TR>
    <TD><SPAN=20
id=3Dctl00_ContentPlaceHolder1_PeuArticle_lbNomAutor>Nom:</SPAN></TD>
    <TD><INPUT id=3Dctl00_ContentPlaceHolder1_PeuArticle_edNomAutor=20
      style=3D"WIDTH: 15em" maxLength=3D100=20
      name=3Dctl00$ContentPlaceHolder1$PeuArticle$edNomAutor =
autocomplete=3D"off">=20
      <SPAN class=3DerrorEdit=20
      id=3Dctl00_ContentPlaceHolder1_PeuArticle_NomObligatori =
title=3DObligatori=20
      style=3D"VISIBILITY: hidden; COLOR: =
red">Obligatori</SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_PeuArticle_lbEmail>Email:</SPAN></TD>
    <TD><INPUT id=3Dctl00_ContentPlaceHolder1_PeuArticle_edEmail=20
      style=3D"WIDTH: 15em" maxLength=3D250=20
      name=3Dctl00$ContentPlaceHolder1$PeuArticle$edEmail =
autocomplete=3D"off">=20
      <SPAN class=3DerrorEdit=20
      id=3Dctl00_ContentPlaceHolder1_PeuArticle_EmailValidator=20
      style=3D"VISIBILITY: hidden; COLOR: red">e-mail no =
v=C3=A0lid</SPAN> </TD></TR>
  <TR>
    <TD><SPAN=20
      =
id=3Dctl00_ContentPlaceHolder1_PeuArticle_lbComentari>Comentari:</SPAN></=
TD>
    <TD><TEXTAREA id=3Dctl00_ContentPlaceHolder1_PeuArticle_edComentari =
name=3Dctl00$ContentPlaceHolder1$PeuArticle$edComentari rows=3D5 =
cols=3D50></TEXTAREA>=20
    </TD>
  <TR>
    <TD colSpan=3D2><INPUT =
id=3Dctl00_ContentPlaceHolder1_PeuArticle_btPublicar =
onclick=3D'javascript:WebForm_DoPostBackWithOptions(new =
WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$PeuArticle$btPublicar"=
, "", true, "CommentsValidator", "", false, false))' type=3Dsubmit =
value=3DPublicar name=3Dctl00$ContentPlaceHolder1$PeuArticle$btPublicar> =

<INPUT id=3DButton1 onclick=3Djavascript:amagarComentari() type=3Dbutton =
value=3DCancelar>=20
    </TD></TR></TBODY></TABLE><BR></DIV></DIV><!-- FI AFEGIR COMENTARI =
--></DIV>
<DIV class=3Dbloc-comentaris><!-- LLISTA DE COMENTARIS -->
<DIV id=3Dctl00_ContentPlaceHolder1_PeuArticle_UpdatePanel2><SPAN=20
id=3Dctl00_ContentPlaceHolder1_PeuArticle_lbTotalComentaris>0 =
comentaris</SPAN>=20
<DIV class=3Dpaginacio-comentaris></DIV></DIV></DIV><!-- FIN LLISTA DE =
COMENTARIS --></DIV><!-- FI COMENTARIS --><!-- ENVIAR A UN AMIC-->
<DIV id=3Dctl00_ContentPlaceHolder1_PeuArticle_upEnviarAmic>
<DIV id=3DpaEnviarAmic style=3D"CLEAR: both; DISPLAY: none">
<DIV class=3Dtaula-comentaris>
<DIV id=3DtitolEnviar>
<H1>Enviar a un amic</H1></DIV>
<TABLE>
  <TBODY>
  <TR>
    <TD>E-mail del teu amic</TD>
    <TD><INPUT id=3Dctl00_ContentPlaceHolder1_PeuArticle_edMailAmic=20
      style=3D"WIDTH: 15em" maxLength=3D250=20
      name=3Dctl00$ContentPlaceHolder1$PeuArticle$edMailAmic =
autocomplete=3D"off">=20
      <SPAN class=3DerrorEdit=20
      id=3Dctl00_ContentPlaceHolder1_PeuArticle_RequiredMailAmic=20
      style=3D"VISIBILITY: hidden; COLOR: red">Obligatori</SPAN> <SPAN=20
      class=3DerrorEdit =
id=3Dctl00_ContentPlaceHolder1_PeuArticle_MailAmicValidator=20
      style=3D"VISIBILITY: hidden; COLOR: red">Email incorrecte</SPAN> =
</TD></TR>
  <TR>
    <TD>Nom teu</TD>
    <TD><INPUT id=3Dctl00_ContentPlaceHolder1_PeuArticle_edNomTeu=20
      style=3D"WIDTH: 15em" maxLength=3D150=20
      name=3Dctl00$ContentPlaceHolder1$PeuArticle$edNomTeu =
autocomplete=3D"off">=20
      <SPAN class=3DerrorEdit=20
      id=3Dctl00_ContentPlaceHolder1_PeuArticle_RequiredNomTeuValidator=20
      style=3D"VISIBILITY: hidden; COLOR: red">Obligatori</SPAN> =
</TD></TR>
  <TR>
    <TD>El teu e-mail</TD>
    <TD><INPUT id=3Dctl00_ContentPlaceHolder1_PeuArticle_edMailTeu=20
      style=3D"WIDTH: 15em" maxLength=3D250=20
      name=3Dctl00$ContentPlaceHolder1$PeuArticle$edMailTeu =
autocomplete=3D"off">=20
      <SPAN class=3DerrorEdit=20
      id=3Dctl00_ContentPlaceHolder1_PeuArticle_RequiredMailTeu=20
      style=3D"VISIBILITY: hidden; COLOR: red">Obligatori</SPAN> <SPAN=20
      class=3DerrorEdit =
id=3Dctl00_ContentPlaceHolder1_PeuArticle_MailTeuValidator=20
      style=3D"VISIBILITY: hidden; COLOR: red">Email incorrecte</SPAN> =
</TD></TR>
  <TR>
    <TD>Missatge</TD>
    <TD><TEXTAREA id=3Dctl00_ContentPlaceHolder1_PeuArticle_edMissatge =
name=3Dctl00$ContentPlaceHolder1$PeuArticle$edMissatge rows=3D5 =
cols=3D50></TEXTAREA></TD></TR>
  <TR>
    <TD colSpan=3D2><INPUT =
id=3Dctl00_ContentPlaceHolder1_PeuArticle_btEnviar =
onclick=3D'javascript:WebForm_DoPostBackWithOptions(new =
WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$PeuArticle$btEnviar", =
"", true, "EnviarAmicValidator", "", false, false))' type=3Dsubmit =
value=3DEnviar name=3Dctl00$ContentPlaceHolder1$PeuArticle$btEnviar>=20
<INPUT id=3DbtCancelarEnviar onclick=3Djavascript:amagarEnviarAmic() =
type=3Dbutton value=3DCancelar>=20
    </TD></TR></TBODY></TABLE></DIV></DIV></DIV>
<DIV class=3Diconos-peu>
<UL>
  <LI><A id=3Dctl00_ContentPlaceHolder1_PeuArticle_imgBocata=20
  href=3D"javascript:mostrarComentar();"><IMG=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  =
src=3D"http://www.ca.globaltalentfcri.com/articles/1994/top/imgs/bocata.j=
pg"></A><A=20
  href=3D"javascript:mostrarComentar();">Comentar</A>=20
  <LI><A id=3Dctl00_ContentPlaceHolder1_PeuArticle_imgSobre=20
  href=3D"javascript:mostrarEnviarAmic();"><IMG=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  =
src=3D"http://www.ca.globaltalentfcri.com/articles/1994/top/imgs/sobre.jp=
g"></A>=20

  <LI><A=20
  onclick=3D"window.open('/preImprimirArticle.aspx?id=3D1994', =
'myPopup','height=3D850,width=3D925,left=3D300,top=3D50,resizable=3Dyes,s=
crollbars=3Dyes,location=3D0');"><IMG=20
  id=3Dctl00_ContentPlaceHolder1_PeuArticle_imgImpre=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  =
src=3D"http://www.ca.globaltalentfcri.com/articles/1994/top/imgs/impre.jp=
g"></A>=20
  </LI></UL>
<UL>
  <LI><A title=3D""=20
  href=3D"http://del.icio.us/post?title=3DSis 'Advanced Grants' per a =
investigadors de centres =
catalans&amp;url=3Dhttp://www.ca.globaltalentfcri.com/articles/1994/Sis-A=
dvanced-Grants-per-a-investigadors-de-centres-catalans.html"=20
  target=3Dblank><IMG=20
  src=3D"http://www.ca.globaltalentfcri.com/imgs/icondelicious.jpg"> =
</A>
  <LI><A title=3D""=20
  =
href=3D"http://fresqui.com/enviar?url=3Dhttp://www.ca.globaltalentfcri.co=
m/articles/1994/Sis-Advanced-Grants-per-a-investigadors-de-centres-catala=
ns.html"=20
  target=3Dblank><IMG alt=3D"Global Pces"=20
  src=3D"http://www.ca.globaltalentfcri.com/imgs/iconfresqui.jpg"> </A>
  <LI><A title=3D""=20
  =
href=3D"http://technorati.com/faves?add=3Dhttp://www.ca.globaltalentfcri.=
com/articles/1994/Sis-Advanced-Grants-per-a-investigadors-de-centres-cata=
lans.html"=20
  target=3D_blank><IMG alt=3D"Global Pces"=20
  src=3D"http://www.ca.globaltalentfcri.com/imgs/icontechnorati.jpg"> =
</A>
  <LI><A title=3D""=20
  =
href=3D"http://myweb2.search.yahoo.com/myresults/bookmarklet?u=3Dhttp://w=
ww.ca.globaltalentfcri.com/articles/1994/Sis-Advanced-Grants-per-a-invest=
igadors-de-centres-catalans.html&amp;t=3DSis+'Advanced+Grants'+per+a+inve=
stigadors+de+centres+catalans"=20
  target=3Dblank><IMG alt=3D"Global Pces"=20
  src=3D"http://www.ca.globaltalentfcri.com/imgs/iconyahoo.jpg"> </A>
  <LI><A title=3D""=20
  =
href=3D"http://www.google.com/bookmarks/mark?op=3Dedit&amp;bkmk=3Dhttp://=
www.ca.globaltalentfcri.com/articles/1994/Sis-Advanced-Grants-per-a-inves=
tigadors-de-centres-catalans.html&amp;title=3DSis 'Advanced Grants' per =
a investigadors de centres catalans"=20
  target=3Dblank><IMG alt=3D"Global Pces"=20
  src=3D"http://www.ca.globaltalentfcri.com/imgs/icongoogle.jpg"> </A>
  <LI><A title=3D""=20
  =
href=3D"http://meneame.net/submit.php?url=3Dhttp://www.ca.globaltalentfcr=
i.com/articles/1994/Sis-Advanced-Grants-per-a-investigadors-de-centres-ca=
talans.html"=20
  target=3Dblank><IMG alt=3D"Global Pces"=20
  src=3D"http://www.ca.globaltalentfcri.com/imgs/iconmeneame.jpg"> </A>
  <LI><A title=3D""=20
  href=3D"http://reporter.es.msn.com/?fn=3Dcontribute&amp;Title=3DSis =
'Advanced Grants' per a investigadors de centres catalans =
&amp;URL=3Dhttp://www.ca.globaltalentfcri.com/articles/1994/Sis-Advanced-=
Grants-per-a-investigadors-de-centres-catalans.html"=20
  target=3Dblank><IMG alt=3D"Global Pces"=20
  src=3D"http://www.ca.globaltalentfcri.com/imgs/iconmsn.jpg"> </A>
  <LI><A title=3D""=20
  =
href=3D"http://www.facebook.com/share.php?u=3Dhttp://www.ca.globaltalentf=
cri.com/articles/1994/Sis-Advanced-Grants-per-a-investigadors-de-centres-=
catalans.html"=20
  target=3Dblank><IMG alt=3D"Global Pces"=20
  src=3D"http://www.ca.globaltalentfcri.com/imgs/ico.facebook.jpg">=20
</A></LI></UL></DIV></DIV></DIV><!-- tancament contingut--></DIV><!-- =
agrupacio central article -->
<DIV class=3Ddreta id=3Dctl00_ContentPlaceHolder1_paDreta><!-- inici =
dreta -->
<TABLE class=3Dzona2-llista id=3Dctl00_ContentPlaceHolder1_WebPartZone1=20
cellSpacing=3D0 cellPadding=3D0 border=3D0>
  <TBODY>
  <TR>
    <TD style=3D"HEIGHT: 100%">
      <TABLE style=3D"WIDTH: 100%; HEIGHT: 100%" cellSpacing=3D0 =
cellPadding=3D2=20
      border=3D0>
        <TBODY>
        <TR>
          <TD>
            <TABLE id=3DWebPart_gwpDestacatDreta style=3D"WIDTH: 100%" =
cellSpacing=3D0=20
            cellPadding=3D2 border=3D0>
              <TBODY>
              <TR>
                <TD=20
                style=3D"PADDING-RIGHT: 5px; PADDING-LEFT: 5px; =
PADDING-BOTTOM: 5px; PADDING-TOP: 5px"><!-- inici bloc destacat =
lateral-->
                  <DIV class=3Ddestacat_seccio>
                  <H2><SPAN=20
                  =
id=3Dctl00_ContentAdministracio_WebPartManager_gwpDestacatDreta_DestacatD=
reta_lbTitol>Relacionat</SPAN>=20
                  </H2><!-- inici quadre destacat dins del bloc destacat =
lateral-->
                  <DIV class=3Dcontigut-quadre-destacat=20
                  =
id=3Dctl00_ContentAdministracio_WebPartManager_gwpDestacatDreta_DestacatD=
reta_paDestacat><A=20
                  =
id=3Dctl00_ContentAdministracio_WebPartManager_gwpDestacatDreta_DestacatD=
reta_lkArticle3=20
                  =
href=3D"http://www.ca.globaltalentfcri.com/articles/896/Deu-cientifics-de=
-centres-de-recerca-catalans-distingits-amb-beques-Starting-Grants.html">=

                  <P><SPAN=20
                  =
id=3Dctl00_ContentAdministracio_WebPartManager_gwpDestacatDreta_DestacatD=
reta_lbTextSuperior>Deu=20
                  Starting Grants de centres de recerca catalans</SPAN> =
</P></A>
                  <DIV class=3Dimatge_texte><A=20
                  =
id=3Dctl00_ContentAdministracio_WebPartManager_gwpDestacatDreta_DestacatD=
reta_lkArticle2=20
                  =
href=3D"http://www.ca.globaltalentfcri.com/articles/896/Deu-cientifics-de=
-centres-de-recerca-catalans-distingits-amb-beques-Starting-Grants.html">=
<IMG=20
                  =
id=3Dctl00_ContentAdministracio_WebPartManager_gwpDestacatDreta_DestacatD=
reta_imImatge=20
                  title=3D"Deu Starting Grants de centres de recerca =
catalans"=20
                  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: =
0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
                  alt=3D"Deu Starting Grants de centres de recerca =
catalans"=20
                  =
src=3D"http://www.ca.globaltalentfcri.com/articles/1994/media/70/71/896/f=
oto_w154.jpg"></A>=20

                  <H2><A=20
                  =
id=3Dctl00_ContentAdministracio_WebPartManager_gwpDestacatDreta_DestacatD=
reta_lkArticle=20
                  =
href=3D"http://www.ca.globaltalentfcri.com/articles/896/Deu-cientifics-de=
-centres-de-recerca-catalans-distingits-amb-beques-Starting-Grants.html">=
<SPAN=20
                  =
id=3Dctl00_ContentAdministracio_WebPartManager_gwpDestacatDreta_DestacatD=
reta_lbTitular>Dels=20
                  18 de tot l=E2=80=99Estat</SPAN></A> =
</H2></DIV></DIV><!-- fi quadre destacat dins del bloc destacat =
lateral--></DIV><!-- fi bloc destacat =
lateral--></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD>
            <TABLE id=3DWebPart_gwpPanelCapitols style=3D"WIDTH: 100%" =
cellSpacing=3D0=20
            cellPadding=3D2 border=3D0>
              <TBODY>
              <TR>
                <TD=20
                style=3D"PADDING-RIGHT: 5px; PADDING-LEFT: 5px; =
PADDING-BOTTOM: 5px; PADDING-TOP: =
5px"></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD>
            <TABLE id=3DWebPart_gwpPanelVideo style=3D"WIDTH: 100%" =
cellSpacing=3D0=20
            cellPadding=3D2 border=3D0>
              <TBODY>
              <TR>
                <TD=20
                style=3D"PADDING-RIGHT: 5px; PADDING-LEFT: 5px; =
PADDING-BOTTOM: 5px; PADDING-TOP: =
5px"></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD>
            <TABLE id=3DWebPart_gwpCaixaTopBlog style=3D"WIDTH: 100%" =
cellSpacing=3D0=20
            cellPadding=3D2 border=3D0>
              <TBODY>
              <TR>
                <TD=20
                style=3D"PADDING-RIGHT: 5px; PADDING-LEFT: 5px; =
PADDING-BOTTOM: 5px; PADDING-TOP: =
5px"></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD>
            <TABLE id=3DWebPart_gwpCaixaLinksRelArt style=3D"WIDTH: =
100%"=20
            cellSpacing=3D0 cellPadding=3D2 border=3D0>
              <TBODY>
              <TR>
                <TD=20
                style=3D"PADDING-RIGHT: 5px; PADDING-LEFT: 5px; =
PADDING-BOTTOM: 5px; PADDING-TOP: =
5px"></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD>
            <TABLE id=3DWebPart_gwpCaixaLinksRelSecc style=3D"WIDTH: =
100%"=20
            cellSpacing=3D0 cellPadding=3D2 border=3D0>
              <TBODY>
              <TR>
                <TD=20
                style=3D"PADDING-RIGHT: 5px; PADDING-LEFT: 5px; =
PADDING-BOTTOM: 5px; PADDING-TOP: =
5px"></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD=20
          style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 0px; =
PADDING-BOTTOM: 0px; PADDING-TOP: 0px; HEIGHT: =
100%"></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV><!-- =
tancament dreta--></DIV><!--fi central--></DIV><!--fi =
centre-->&nbsp;</DIV><!-- tancament estructura-->
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var Page_Validators =3D  new =
Array(document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_NomOb=
ligatori"), =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_EmailValida=
tor"), =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_RequiredMai=
lAmic"), =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_MailAmicVal=
idator"), =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_RequiredNom=
TeuValidator"), =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_RequiredMai=
lTeu"), =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_MailTeuVali=
dator"));
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var ctl00_ContentPlaceHolder1_PeuArticle_NomObligatori =3D document.all =
? document.all["ctl00_ContentPlaceHolder1_PeuArticle_NomObligatori"] : =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_NomObligato=
ri");
ctl00_ContentPlaceHolder1_PeuArticle_NomObligatori.controltovalidate =3D =
"ctl00_ContentPlaceHolder1_PeuArticle_edNomAutor";
ctl00_ContentPlaceHolder1_PeuArticle_NomObligatori.errormessage =3D =
"Obligatori";
ctl00_ContentPlaceHolder1_PeuArticle_NomObligatori.validationGroup =3D =
"CommentsValidator";
ctl00_ContentPlaceHolder1_PeuArticle_NomObligatori.evaluationfunction =
=3D "RequiredFieldValidatorEvaluateIsValid";
ctl00_ContentPlaceHolder1_PeuArticle_NomObligatori.initialvalue =3D "";
var ctl00_ContentPlaceHolder1_PeuArticle_EmailValidator =3D document.all =
? document.all["ctl00_ContentPlaceHolder1_PeuArticle_EmailValidator"] : =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_EmailValida=
tor");
ctl00_ContentPlaceHolder1_PeuArticle_EmailValidator.controltovalidate =
=3D "ctl00_ContentPlaceHolder1_PeuArticle_edEmail";
ctl00_ContentPlaceHolder1_PeuArticle_EmailValidator.errormessage =3D =
"e-mail no v=C3=A0lid";
ctl00_ContentPlaceHolder1_PeuArticle_EmailValidator.validationGroup =3D =
"CommentsValidator";
ctl00_ContentPlaceHolder1_PeuArticle_EmailValidator.evaluationfunction =
=3D "RegularExpressionValidatorEvaluateIsValid";
ctl00_ContentPlaceHolder1_PeuArticle_EmailValidator.validationexpression =
=3D "\\w+([-+.\']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
var ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailAmic =3D =
document.all ? =
document.all["ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailAmic"] : =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_RequiredMai=
lAmic");
ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailAmic.controltovalidate =
=3D "ctl00_ContentPlaceHolder1_PeuArticle_edMailAmic";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailAmic.validationGroup =
=3D "EnviarAmicValidator";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailAmic.evaluationfunction =
=3D "RequiredFieldValidatorEvaluateIsValid";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailAmic.initialvalue =3D =
"";
var ctl00_ContentPlaceHolder1_PeuArticle_MailAmicValidator =3D =
document.all ? =
document.all["ctl00_ContentPlaceHolder1_PeuArticle_MailAmicValidator"] : =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_MailAmicVal=
idator");
ctl00_ContentPlaceHolder1_PeuArticle_MailAmicValidator.controltovalidate =
=3D "ctl00_ContentPlaceHolder1_PeuArticle_edMailAmic";
ctl00_ContentPlaceHolder1_PeuArticle_MailAmicValidator.errormessage =3D =
"e-mail no v=C3=A0lid";
ctl00_ContentPlaceHolder1_PeuArticle_MailAmicValidator.validationGroup =
=3D "EnviarAmicValidator";
ctl00_ContentPlaceHolder1_PeuArticle_MailAmicValidator.evaluationfunction=
 =3D "RegularExpressionValidatorEvaluateIsValid";
ctl00_ContentPlaceHolder1_PeuArticle_MailAmicValidator.validationexpressi=
on =3D =
"^(\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*\\b([,;]\\s?)?)*$";
var ctl00_ContentPlaceHolder1_PeuArticle_RequiredNomTeuValidator =3D =
document.all ? =
document.all["ctl00_ContentPlaceHolder1_PeuArticle_RequiredNomTeuValidato=
r"] : =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_RequiredNom=
TeuValidator");
ctl00_ContentPlaceHolder1_PeuArticle_RequiredNomTeuValidator.controltoval=
idate =3D "ctl00_ContentPlaceHolder1_PeuArticle_edNomTeu";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredNomTeuValidator.errormessage=
 =3D "nom obligatori";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredNomTeuValidator.validationGr=
oup =3D "EnviarAmicValidator";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredNomTeuValidator.evaluationfu=
nction =3D "RequiredFieldValidatorEvaluateIsValid";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredNomTeuValidator.initialvalue=
 =3D "";
var ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailTeu =3D =
document.all ? =
document.all["ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailTeu"] : =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_RequiredMai=
lTeu");
ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailTeu.controltovalidate =
=3D "ctl00_ContentPlaceHolder1_PeuArticle_edMailTeu";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailTeu.validationGroup =3D =
"EnviarAmicValidator";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailTeu.evaluationfunction =
=3D "RequiredFieldValidatorEvaluateIsValid";
ctl00_ContentPlaceHolder1_PeuArticle_RequiredMailTeu.initialvalue =3D =
"";
var ctl00_ContentPlaceHolder1_PeuArticle_MailTeuValidator =3D =
document.all ? =
document.all["ctl00_ContentPlaceHolder1_PeuArticle_MailTeuValidator"] : =
document.getElementById("ctl00_ContentPlaceHolder1_PeuArticle_MailTeuVali=
dator");
ctl00_ContentPlaceHolder1_PeuArticle_MailTeuValidator.controltovalidate =
=3D "ctl00_ContentPlaceHolder1_PeuArticle_edMailTeu";
ctl00_ContentPlaceHolder1_PeuArticle_MailTeuValidator.errormessage =3D =
"e-mail no v=C3=A0lid";
ctl00_ContentPlaceHolder1_PeuArticle_MailTeuValidator.validationGroup =
=3D "EnviarAmicValidator";
ctl00_ContentPlaceHolder1_PeuArticle_MailTeuValidator.evaluationfunction =
=3D "RegularExpressionValidatorEvaluateIsValid";
ctl00_ContentPlaceHolder1_PeuArticle_MailTeuValidator.validationexpressio=
n =3D "\\w+([-+.\']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
//]]>
</SCRIPT>

<DIV><INPUT id=3D__EVENTVALIDATION type=3Dhidden=20
value=3D/wEWDwLjvrSdCgKP0IKpCQL99MH9AQKMgaCVCALyta7bDQL3pZbXCALWipb8DwLHn=
aWJBgLKmbLJBwKqvqOzCgKFqO6ODgK/gq2aDQL9usKCAwLj/dCmCwLYx937Cn/+Hu2EmAG+70=
31o/PEi2dyrFes=20
name=3D__EVENTVALIDATION> </DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var __wpmExportWarning=3D'This Web Part Page has been personalized. As a =
result, one or more Web Part properties may contain confidential =
information. Make sure the properties contain information that is safe =
for others to read. After exporting this Web Part, view properties in =
the Web Part description file (.WebPart) by using a text editor such as =
Microsoft Notepad.';var __wpmCloseProviderWarning=3D'You are about to =
close this Web Part.  It is currently providing data to other Web Parts, =
and these connections will be deleted if this Web Part is closed.  To =
close this Web Part, click OK.  To keep this Web Part, click =
Cancel.';var __wpmDeleteWarning=3D'You are about to permanently delete =
this Web Part.  Are you sure you want to do this?  To delete this Web =
Part, click OK.  To keep this Web Part, click Cancel.';//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript>

__wpm =3D new WebPartManager();
__wpm.overlayContainerElement =3D null;
__wpm.personalizationScopeShared =3D true;

var zoneElement;
var zoneObject;

zoneElement =3D =
document.getElementById('ctl00_ContentPlaceHolder1_WebPartZone1');
if (zoneElement !=3D null) {
    zoneObject =3D __wpm.AddZone(zoneElement, =
'ctl00$ContentPlaceHolder1$WebPartZone1', true, false, 'black');
    =
zoneObject.AddWebPart(document.getElementById('WebPart_gwpDestacatDreta')=
, null, false);
    =
zoneObject.AddWebPart(document.getElementById('WebPart_gwpPanelCapitols')=
, null, false);
    =
zoneObject.AddWebPart(document.getElementById('WebPart_gwpPanelVideo'), =
null, false);
    =
zoneObject.AddWebPart(document.getElementById('WebPart_gwpCaixaTopBlog'),=
 null, false);
    =
zoneObject.AddWebPart(document.getElementById('WebPart_gwpCaixaLinksRelAr=
t'), null, false);
    =
zoneObject.AddWebPart(document.getElementById('WebPart_gwpCaixaLinksRelSe=
cc'), null, false);
}
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
<!--
var Page_ValidationActive =3D false;
if (typeof(ValidatorOnLoad) =3D=3D "function") {
    ValidatorOnLoad();
}

function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else {
        return true;
    }
}
// -->
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
WebForm_AutoFocus('btFake');Sys.Application.initialize();

document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_NomObligato=
ri').dispose =3D function() {
    Array.remove(Page_Validators, =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_NomObligato=
ri'));
}

document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_EmailValida=
tor').dispose =3D function() {
    Array.remove(Page_Validators, =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_EmailValida=
tor'));
}

document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_RequiredMai=
lAmic').dispose =3D function() {
    Array.remove(Page_Validators, =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_RequiredMai=
lAmic'));
}

document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_MailAmicVal=
idator').dispose =3D function() {
    Array.remove(Page_Validators, =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_MailAmicVal=
idator'));
}

document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_RequiredNom=
TeuValidator').dispose =3D function() {
    Array.remove(Page_Validators, =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_RequiredNom=
TeuValidator'));
}

document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_RequiredMai=
lTeu').dispose =3D function() {
    Array.remove(Page_Validators, =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_RequiredMai=
lTeu'));
}

document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_MailTeuVali=
dator').dispose =3D function() {
    Array.remove(Page_Validators, =
document.getElementById('ctl00_ContentPlaceHolder1_PeuArticle_MailTeuVali=
dator'));
}
//]]>
</SCRIPT>
</FORM>
<DIV class=3Dpeu>
<DIV class=3Dlogos><A href=3D"http://www.gencat.cat/"><IMG alt=3D"Global =
"=20
src=3D"http://www.ca.globaltalentfcri.com/articles/1994/imgs/logo-gene.pn=
g"></A>=20
<A href=3D"http://www.fcri.cat/"><IMG class=3Dfcri alt=3D"Global "=20
src=3D"http://www.ca.globaltalentfcri.com/articles/1994/imgs/logo-fcri.pn=
g"></A>=20
</DIV>
<P><A =
href=3D"http://www.antibloc.com/">http://www.antibloc.com/</A></P><A=20
href=3D"http://www.ca.globaltalentfcri.com/rss/subscripcio.aspx"><IMG=20
style=3D"MARGIN-TOP: 5em; FLOAT: left" alt=3DRSS=20
src=3D"http://www.ca.globaltalentfcri.com/rss/imgs/rss.png"></A>=20
<DIV class=3Dcorpo>
<UL>
  <LI class=3Dblau><A=20
  =
href=3D"http://www.ca.globaltalentfcri.com/articles/1119/Que-som.html">Qu=
=C3=A8 som=20
  ?</A><SPAN>-</SPAN>=20
  <LI class=3Dblau><A=20
  =
href=3D"http://www.ca.globaltalentfcri.com/articles/1126/Qui-som.html">Qu=
i som=20
  ?</A><SPAN>-</SPAN>=20
  <LI>
  <LI><A=20
  =
href=3D"http://www.ca.globaltalentfcri.com/articles/1127/Condicions-dus.h=
tml"></A>
  <LI><A=20
  =
href=3D"http://www.ca.globaltalentfcri.com/articles/1136/Proteccio-de-dad=
es.html"></A>
  <LI><A=20
  =
href=3D"http://www.ca.globaltalentfcri.com/articles/1128/Avis-Legal.html"=
>Av=C3=ADs=20
  legal</A> </LI></UL></DIV></DIV>
<P style=3D"FONT-SIZE: 12px; COLOR: #313f5a; TEXT-ALIGN: center">Global =
Talent -=20
Pg.Llu=C3=ADs Companys,23 - 08010 Barcelona - Tel: 932687700 -=20
info@globaltalentfcri.com </P>
<P style=3D"FONT-SIZE: 10px">Lloc Web optimitzat per: ie7, ie8, firefox, =
chrome,=20
safari. Properament ie6</P>
<SCRIPT type=3Dtext/javascript>
function EnterKeyFilter(e)
{ =20
    if(window.event !=3D undefined)
    {
        if (window.event.keyCode =3D=3D 13)
        {
            if(window.event.srcElement.tagName.toLowerCase() !=3D =
'textarea')
            {
                event.returnValue=3Dfalse;
                event.cancel =3D true;
           }
        }
    } else {
        if(e.which =3D=3D 13)
        {   =20
            if(e.target.type !=3D 'textarea')
            {
                e.preventDefault();
                return false;
            }
        }
    }
}
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://ssl." : "http://www.");
document.write(unescape("%3Cscript src=3D'" + gaJsHost + =
"google-analytics.com/ga.js' =
type=3D'text/javascript'%3E%3C/script%3E"));
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
var pageTracker =3D _gat._getTracker("UA-9717186-2");
pageTracker._setDomainName('globaltalentfcri.com');
pageTracker._initData();
pageTracker._trackPageview();
</SCRIPT>
</BODY></HTML>

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/imgs/logoC.png

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
wK6J3jKFxQAAAABJRU5ErkJggg==

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/imgs/pestanyeta-antibloc.png

iVBORw0KGgoAAAANSUhEUgAAAJUAAAATCAYAAACZS0+KAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAABO9JREFUeNrsWmlInEcYfrVS0PX4lSZe/6qCIHjVi8bbrVS00qCCYFpZ
g2LBC6stVZt6UBTi8cNExMAi1tQTQVwVRInW+6BJUdRCike1EKKo/afrdt5XZ/i2bBuzXVso88DL
fN83zzfzfjOPz8wka/WBWv02AFSw+JSFK0hImIdfWWhZVNqcn59/wy6+kGMi8Q+BhvQVi7ds9Ofn
GjkeEhaExkav19+Q4yBhQdywOTs7k8MgYVHY6K8oKmdnZygrL6frx21tsLKyIuo8PD2hoKCAnmEd
R/PDh6AbGoIhFnhtCj9vbsKQTkfvc25CQgJ8yEKJ309OiDf59CndIx/7/Sw312S79g4OxIkID6fr
/f19aluZHyI8IgKyNBpqC4HtNzY2El/CTFGdXlFU79++Df7+/nDCJjclNRXmFxZEna2tLdVhjI+P
wyYTCgLvl5aWAPswGAxCnC4uLsTBttieTrzPue/cvEn3nIPwY/cogOzsbFheXoZ3PTyI81f5Nzc3
gycTyuDgIAkkICAAsrKywM7ODurr64kTGRkJtbW1sLe3B62trZRbYmIi9ZWUlCT6lnhDUV11+UP3
wMHHiccBRyHwQWf7MsErKiqiyeNgp0vAPjSai/NATk4ORV1dHbWFCAwMNOJiiVByoqKioKGhAfz8
/GB+fl6I1FT+mB8KqqWlhYKjjblUeno6dHR00LdgrlimpaWJb1lfX6f8fH19YWJiQirELKc6PX39
WdHVFby8vKC9vV2IKpwtKwMDA0YTi/fJyck0IYuLi0Jwyj64APEd/py/z7mc48HciNdFMJdCzM3N
EYeLylT+nNvf329Uj/mjgLF+gTktOiY+Ozg4EBytVkshcc1OhcsEAh1i4XLZQ+fo7e01EkpfXx+J
r6amBqKjo43cR+lc/B2lmEw5VWlpqVEeY2NjMDs7S9d/51QObA+F2NraMnp+eHhIJS6BGIijoyOQ
h5X/wKnQfRC4pGDs7u5CbGwsLYHHx8dCFFhWVVVBZ2cnZGRkCKEo+1CKij9XigqfcU51dTWsra3R
dXBwMOTn50Mu25g3NTUJjqn8eR3Pj0OlUol6LjB8pmzD0dGRSuV7Em/qVK8RlZubG3h7e9M1TqoS
McyNenp6gJ8gsUQnGR0dhby8vIsJREdSiooLkHH5c/4+53LOT8+fC2f6YWqK+g8KCiKOcCoT+WP/
ISEhIj+Rb0wMlSPDw7C6ukrCUavVUP/ggRDRJ3fvQiHba91j+0JsR+IaTn+xcXFUZmZmwsjIiPhr
3tjYgDg2IZ1PnsAZ3yeh+7D2ysvLxTKJpztlH/pLF+Fcfq3kcs7Hd+7Ae0xEiLCwMCqnp6eNTpN5
fxJ6d3c3OWVhYSF8ff8+qOztSUChoaGQkpICMzMz8OOzZ8StqKigfz4YZt/V1dUF7u7utGnf2dmB
SSbiU7ksXo9TpaamUjk1OSlc4eDVK5rc+Ph4ULG9idKpkPPLixd0cispKbnYJ5la/kw51SWXc3CC
lfieCbjl0SMjpyouLjbioKNh/x+xwwRuwisrK0Ud5oxOxPv9jp0CD9km/XOWJ29Hp9NBWVkZfaOE
ebBycnIy/J8/0MfHB9g3wvb2NoXEvyAqe5XKIIdBwrLLn17/kpXyP5UlLIWX+CuFxyB/TyVhOWit
rK2t8Zef37JIZ3FLjomEmfiNRSeLL/8QYAC8xwxPBFYdmAAAAABJRU5ErkJggg==

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/LINIAactualC.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAJQAEkDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iii
gAoopkkgjXJ69hQASSCNcnr2FU2dnbJPNIzF2yTzTkiZwSBwP1pkt3JYZ/4XP0NWazulWIZ/4XP0
NDBMs0UUUigooooAZJII1yevYVSZi7ZJ5qzcRs2GUZx2qOOBmPzAgU0S7iQwmQ5PC1bAAGAMCgAA
YHApaQ0rEM0O/wCZfvfzqp0rRqGaHf8AMv3v507g0Mgm6I34GrNUkicuBtI9zV2hggooopDCiimS
SLEhdzgCgAkkWJC7nAFZMt/M7ko2xewFMublrh8nhR0WoljdwxVSQoycdqpIzcr7GtZ3gnGx8CQf
rVuudBKkEHBHQ1r2d4JxsfiQfrSaKjLuW6KKKRQUUUUAMkkWJC7nAFY1zctcPk8KOi1b1RX/AHZ/
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

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/lupa_menys.jpg

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/b
AIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgIC
AwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAFgAUAwERAAIRAQMRAf/EAGIAAQADAQAAAAAAAAAAAAAA
AAYABwgKAQEAAAAAAAAAAAAAAAAAAAAAEAACAgECBQMFAQAAAAAAAAAEBQMGAgEHABMUFRYREjUi
RCUmFwgRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AO+J48V1tWU5cldIvE5GOeeMBBZE
5JZMIQC9eAFCQwaNmrAmIYMMaKYowqaOCCOSWTDDIA6/ckrU4IW1bd3jb4JkWMrAe2onb4xJO7Pm
wHVJZyaVfLeQrLcEZ8kSU2IYQgzKITCbUwkWCcLO4DPO+95q1EcbHNrE00ini3Zw7dX14TF1abD3
miXahZ+OV9QIawZ6p2F5EJL9McfQbTWOHnGzBiEgHcskd1qd6oVM/wBAl722W/UazUtXWoWmzzYF
FLZFsqzW6v59t6VX2aOu13CfXIssmfODLCTpx4CmRAA0oa+4Ak48E8qp3f8AxLzb9h/n/eOz+VfH
ReV+Hdb+X+J9ncOi+29vO+j04BbwE4D/2Q==

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/lupa_mes.jpg

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/b
AIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgIC
AwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAFgAUAwERAAIRAQMRAf/EAGEAAAMBAQAAAAAAAAAAAAAA
AAYHCAAKAQEAAAAAAAAAAAAAAAAAAAAAEAACAgEDAwMFAQAAAAAAAAAEBQMGAhUWBwABExESFCJE
JTUmFxEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A74nr1VW1RTp0V8ReJ4Mc88ICSyZy
CyIQgF69eFCSwatmrAiIYMMaKYowqaOCCOSWTDDIAdfySV3OCFtXHl44+DZFjKwHtqJ4+MSzOz5s
B1SWcmlXy3kKy3JGfhElNiGEIMyiExm7mEiDzgzugnnne81WiOODm1jaeKeLlnDTa8uCYurTYtZo
t1oMm3a+oENYNNGPvQhJntx7eg2PeOLzGzCCEgmxQ1j9XzxU6nzwJzJYOZhHadAgTuuMnmAGDzjO
n0eS/wB+zpFPRkVsStEI5op54puy3Nd2GhiGKdFQQzhdXQCTjYm6qdr+0t7f0P8An+saPur9dFuv
Z3zfy/6n2ah8L7b2+b6PToC3oN0H/9k=

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/top/imgs/bocata.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAOAA4DASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp/Dfg
RPEOg2+qyanLG9wXJURhsYYr1zz0zVHX9HfwbqlultqEshuIWJYDYRhhxwaw7Hxf4p8M2cui211b
bLdyiMYw2z5iWxleck96lsD4i8favi9vrdpLaAlSy7AAWH91a6uaV9XoeX7KlypRXvH/2Q==

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/top/imgs/sobre.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAOAA4DASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwC9b22j
y2Fm00kz6jcRee6y3iQIyl2GVZkIyNuSCR7Z6UXMthYJbXei3N0BKZYZWaTIJTyz8pCqSPn7gdOl
c5Pe3dmV0+60/S7p7INAskgkyQGJ7MO5PatLRLLUfFVythbx6fZRWqPKFj3gEsUBPOT/AAiuvmZ5
KpLZLU//2Q==

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/top/imgs/impre.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAOAA4DASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCOyKy2
KXctnPdGS4ZGZC3AAUk8Dk8mpXlk0nVmFrLPHFLFviZsoxQnofxH6VivPeaeTYT29pO1qzRB/NlX
+Ik/dYZ5J5xmtfSLTU/F+o/Z4xY2ot4mfCBgDkqD6+grs5zx1QXTc//Z

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/icondelicious.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QSZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp
AAQAAAABAAAApAAAANAACvzaAAAnEAAK/NoAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv
c2gAMjAwOTowNTowNyAxMDo1NTowMgAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAFqADAAQAAAAB
AAAAFgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAANjAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAFgAWAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9SfZtcGhpcSCYEdo/eLf3lg9d+u3TOhZbMPNoyXWPrFoNTa3
DaXPZ+dcz3bq3Kp9evruPqi/AecP7b9sFwj1fS2+n6H/AAV27d6q5yqr/wAcdv7cB/Zf2c/Y/Q/n
52frHq+r+q/S+1bNnpqzyUeWOYDmpGOKjrHi+b9H5OJZlMxH9WLk9r/zr6f/AM3P+cfpXfY/9HtZ
6v8AO/ZPo+p6X85/w382ks//AJuf9g/7B+0fn7ftGz/u16/81v8A7P8AOJKTh5L96X+6eH9L/cP7
/wAvzrby9h8n/jr/AP/Q6D/GRhfU3K/Z3/OjPyMDZ6/2T7O0u3z6Hr79uNl/Q20/6NE+o2D9VaOk
2s+rvUMjKwze4vstbDhZsq3MHqYuP7dnpfmLwZJJT9P7Mb7Fs9R3pb/5z87d6n9X/TfyEl8wJJKf
/9n/7SFAUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAAAAAAAAAAAAAAOEJJTQPqAAAA
ABf/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHBsaXN0
IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5j
b20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGlj
dD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1Ib3Jpem9udGFsUmVzPC9rZXk+
Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxz
dHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50
LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20u
YXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tleT4KCQkJCTxyZWFsPjcy
PC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJ
CQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8
a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNT3JpZW50YXRpb248L2tleT4KCTxkaWN0
PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5j
b20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5w
cmludC5QYWdlRm9ybWF0LlBNT3JpZW50YXRpb248L2tleT4KCQkJCTxpbnRlZ2VyPjE8L2ludGVn
ZXI+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8
aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+
Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8a2V5
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxl
LmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJy
YXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFn
ZUZvcm1hdC5QTVNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5h
cHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2Vy
PgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBh
Z2VGb3JtYXQuUE1WZXJ0aWNhbFJlczwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0
cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFy
cmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0
aWNhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2Rp
Y3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQu
UE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
Y2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+
CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4K
CQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxT
Y2FsaW5nPC9rZXk+CgkJCQk8cmVhbD4xPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQu
dGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0
PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5zdWJUaWNrZXQucGFw
ZXJfaW5mb190aWNrZXQ8L2tleT4KCTxkaWN0PgoJCTxrZXk+UE1QUERQYXBlckNvZGVOYW1lPC9r
ZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+
CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJ
CTxrZXk+UE1QUERQYXBlckNvZGVOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5BNDwvc3RyaW5nPgoJ
CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50
ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5
PlBNVGlvZ2FQYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQu
dGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJp
bmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFy
cmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5QTVRpb2dhUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0
cmluZz5pc28tYTQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3Rh
dGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9h
cnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVz
dGVkUGFnZVJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJ
CQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVk
UGFnZVJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJ
PHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD43ODM8L3JlYWw+CgkJCQkJCTxyZWFsPjU1OTwv
cmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0
ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2Fy
cmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0
ZWRQYXBlclJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJ
CQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVk
UGFwZXJSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJ
CTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+ODI0PC9yZWFsPgoJCQkJCQk8cmVhbD41Nzc8
L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3Rh
dGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9h
cnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNUGFwZXJO
YW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9y
PC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNv
bS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0
PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJ
CQkJCTxzdHJpbmc+aXNvLWE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj
a2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+
CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5Q
TVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0
cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8
YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1V
bmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPjAuMDwvcmVh
bD4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD43ODM8L3JlYWw+CgkJCQkJCTxy
ZWFsPjU1OTwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
Y2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0
PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8u
UE1VbmFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnBy
aW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwv
c3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJ
CTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5Q
TVVuYWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwv
cmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD44MjQ8L3JlYWw+CgkJCQkJ
CTxyZWFsPjU3NzwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50
LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9k
aWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlcklu
Zm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50
LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3Ry
aW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxh
cnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQu
UE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20u
YXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVn
ZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnBy
aW50LnRpY2tldC5BUElWZXJzaW9uPC9rZXk+CgkJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJCTxr
ZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUu
cHJpbnQuUGFwZXJJbmZvVGlja2V0PC9zdHJpbmc+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5w
cmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJPGtl
eT5jb20uYXBwbGUucHJpbnQudGlja2V0LnR5cGU8L2tleT4KCTxzdHJpbmc+Y29tLmFwcGxlLnBy
aW50LlBhZ2VGb3JtYXRUaWNrZXQ8L3N0cmluZz4KPC9kaWN0Pgo8L3BsaXN0PgoAOEJJTQPtAAAA
AAAQAEgCTgABAAIASAJOAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAE
AAAAHjhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAAAAABAAA4
QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgAB
AKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAA
AABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPo
AAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gA
ADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANF
AAAABgAAAAAAAAAAAAAAFgAAABYAAAAIAEkAbQBhAGcAZQBuACAAMQAAAAEAAAAAAAAAAAAAAAAA
AAAAAAAAAQAAAAAAAAAAAAAAFgAAABYAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA
AAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAA
VG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAABYAAAAAUmdodGxvbmcA
AAAWAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxv
bmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAA
AA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3Vu
ZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAA
AAAAQnRvbWxvbmcAAAAWAAAAAFJnaHRsb25nAAAAFgAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxU
RVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRl
eHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9F
U2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRB
bGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAA
AABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0
b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAE/
8AAAAAAAADhCSU0EFAAAAAAABAAAAAE4QklNBAwAAAAAA38AAAABAAAAFgAAABYAAABEAAAF2AAA
A2MAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/
2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIABYAFgMBIgACEQEDEQH/3QAEAAL/xAE/AAABBQEBAQEB
AQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIE
AgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRai
soMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dn
d4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi
4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl
9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APUn2bXBoaXEgmBHaP3i395YPXfr
t0zoWWzDzaMl1j6xaDU2tw2lz2fnXM926tyqfXr67j6ovwHnD+2/bBcI9X0tvp+h/wAFdu3equcq
q/8AHHb+3Af2X9nP2P0P5+dn6x6vq/qv0vtWzZ6as8lHljmA5qRjio6x4vm/R+TiWZTMR/Vi5Pa/
86+n/wDNz/nH6V32P/R7Wer/ADv2T6Pqel/Of8N/NpLP/wCbn/YP+wftH5+37Rs/7tev/Nb/AOz/
ADiSk4eS/el/unh/S/3D+/8AL8628vYfJ/46/wD/0Og/xkYX1Nyv2d/zoz8jA2ev9k+ztLt8+h6+
/bjZf0NtP+jRPqNg/VWjpNrPq71DIysM3uL7LWw4WbKtzB6mLj+3Z6X5i8GSSU/T+zG+xbPUd6W/
+c/O3ep/V/038hJfMCSSn//ZADhCSU0EIQAAAAAAVQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgA
bwB0AG8AcwBoAG8AcAAAABMAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMAMwAA
AAEAOEJJTQQGAAAAAAAHAAgBAQABAQD/4Q8saHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8
P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4
bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA0
LjEtYzAzNiA0Ni4yNzY3MjAsIE1vbiBGZWIgMTkgMjAwNyAyMjoxMzo0MyAgICAgICAgIj4gPHJk
ZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt
bnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eGFwPSJodHRwOi8vbnMu
YWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRz
LzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4w
LyIgeG1sbnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnRp
ZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMu
YWRvYmUuY29tL2V4aWYvMS4wLyIgeGFwOkNyZWF0ZURhdGU9IjIwMDktMDUtMDdUMTA6NTU6MDIr
MDI6MDAiIHhhcDpNb2RpZnlEYXRlPSIyMDA5LTA1LTA3VDEwOjU1OjAyKzAyOjAwIiB4YXA6TWV0
YWRhdGFEYXRlPSIyMDA5LTA1LTA3VDEwOjU1OjAyKzAyOjAwIiB4YXA6Q3JlYXRvclRvb2w9IkFk
b2JlIFBob3Rvc2hvcCBDUzMgTWFjaW50b3NoIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHBob3Rv
c2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJpTWFjIiBwaG90b3Nob3A6
SGlzdG9yeT0iIiB4YXBNTTpJbnN0YW5jZUlEPSJ1dWlkOjFBQUIwRjk0ODczQ0RFMTE4MEYzRjA0
NEU4Qjc3NUUyIiB4YXBNTTpEb2N1bWVudElEPSJ1dWlkOjE5QUIwRjk0ODczQ0RFMTE4MEYzRjA0
NEU4Qjc3NUUyIiB0aWZmOk9yaWVudGF0aW9uPSIxIiB0aWZmOlhSZXNvbHV0aW9uPSI3MjAwOTAv
MTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjcyMDA5MC8xMDAwMCIgdGlmZjpSZXNvbHV0aW9uVW5p
dD0iMiIgdGlmZjpOYXRpdmVEaWdlc3Q9IjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQs
NTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3Miwz
MDUsMzE1LDMzNDMyOzM4RkRBOTVBNThBOTVFNEJDREMwNEVFRkQ5MENDMDQwIiBleGlmOlBpeGVs
WERpbWVuc2lvbj0iMjIiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIyMiIgZXhpZjpDb2xvclNwYWNl
PSItMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQw
OTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUy
LDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3
Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDky
LDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQx
OTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0
LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwy
NywyOCwzMDs1QkY3REYxNEREQjU2ODIyODlCNkYwMjE4M0I1NzIxQSI+IDx4YXBNTTpEZXJpdmVk
RnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6
UkRGPiA8L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/+IP2ElDQ19QUk9GSUxFAAEBAAAPyGFw
cGwCAAAAbW50clJHQiBYWVogB9kAAQABAA4AFQAjYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAPbWAAEAAAAA0y1hcHBsoiHSADHfk72UZdb6qhSv5gAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgA
AAAUY2hhZAAAAXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAA
AdgAAAYSbmRpbgAAB+wAAAY+ZGVzYwAADiwAAABfZHNjbQAADowAAADwbW1vZAAAD3wAAAAoY3By
dAAAD6QAAAAkWFlaIAAAAAAAAHebAAA+KgAAAWRYWVogAAAAAAAAWbgAAK3VAAAZCFhZWiAAAAAA
AAAlggAAFBwAALi5WFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IA
AP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAA
AAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAABAAOAB0AMIBMgHaArQDvgT0BnEIEAnrC+YN
9hAXEkYUaRaHGJUanRyjHqkgsSK7JM8m5CjuKvwtCC8UMQ4zBjT5Ntw4tDp9PEQ99D+fQUdC1ERU
RalHA0hVSalK+ExBTYpOy1AMUUtShFO7VO5WH1dPWIBZrlrbXAddNV5dX5BgwmHvYxtkRWVqZopn
qWjEadxq8mwGbRhuK286cEpxXnJvc390k3Wjdqh3pnijeaB6nnudfJt9mX6Yf5uAnYGhgqaDr4S7
hcaG1ofoiP2KEYsljD2NV45uj4iQoJG+ktmT9JURliyXRJhbmW2af5uTnJudp56un7Ggs6Gxoqyj
sqSwpbOmsKevqKipnqqWq4eseK1lrlKvPLAjsQix7bLRs7C0kLVytle3Q7gyuSC6Drr6u+S8y72w
vpS/d8BZwTvCHML7w9zEvMWdxn3HYMhCyR3J68qny2LMHMzXzZPOUM8Nz8vQjNFO0hHS19Oe1GbV
L9X71sXXk9hj2S7Z7tqV2zvb4dyN3Trd596Y30nf/OCx4WXiGuLP44LkNeTo5ZfmRub0557oNOi8
6TvpuOo16rPrMuux7DPstu067b/uRe7M71Tv3fBo8PPxffII8pTzIfOy9ET01/Vo9fn2jPcf97H4
RPjZ+W/6Bfqd+zj71fxz/RP9t/5b/wD/f///AAAADwA0AGsAtAERAaYCWgM3BE0FogclCN8KzwzS
DukRBRMZFSYXHBkGGucc0x61IKMikySEJm4oYCpJLDUuEy/rMbwzgjU8Nug4kDopO7Y9Qz61QBpB
XEKgQ91FGUZUR4VItUniSwxMMk1UTnRPj1CoUcBS11PtVQFWElcnWDpZXlqCW6JcwV3fXvlgEGEm
YjhjSGRVZWJmamd4aH9pimqUa59sqW21brxvtnCocZhyhnN1dGd1V3ZIdzl4LHkhehZ7DHwFfQB9
+375f/uA/YH/gwCEAYUAhf6G/ogAiQaKDYsUjB6NKY40jz6QRZFNklaTWpRelWCWX5dcmFaZUJpQ
m02cS51InkOfPKAzoSmiHKMNo/yk66XZpsGnqKiPqXaqV6s6rB2tBK30ruev27DOsb+yr7OctIi1
c7Zdt0e4MLkYuf+65rvNvLW9m76Ev2vAT8EswgDC0MOkxHTFRMYUxuTHtciGyVfKKcr7y87Moc10
zkjPHc/z0MzRo9Jz0z7UB9TO1ZzWaNc12AHYzdmb2mfbMtv83MTdid5N3w/fz+CN4UniAuK643Hk
KOTg5ZLmReb356XoUuj/6anqUer465zsP+zh7YPuJO7F72XwBvCu8WjyLfL187j0fPU/9gD2vPd3
+DD45/ma+kv6+/up/Fb9Af2t/lf+//9///8AAAANAC4AYAChAPEBbgIFAskDsQTGBfsHXgjaCmsM
CQ2pD0oQ5BJ1E/kVghcHGIsaFhulHToexCBOIdojYyTnJmIn2SlJKq8sCS1iLqov7TEwMl0zfTSI
NZA2lDeXOJc5kzqMO4E8dj1oPlc/REAuQRVB/ELhQ8dEqkWNRnFHU0hJST9KMksmTBlNCU34TuVP
0lC+UapSlVN/VGxVV1ZEVzNYIVkPWf9a6VvEXJVdZF4xXwBfz2CfYW5iPWMNY95krmWAZlRnKGf8
aNNprWqHa19sNW0Dbc1uk29ccCZw83HBco9zX3QvdP51y3aWd2B4KXjuebF6c3sue+h8o31mflF/
O4AmgRCB9oLZg7qEmoV2hlCHKYgAiNeJq4p+i1KMJYz3jcmOno90kFqRQpIpkw+T9JTYlbuWnJd8
mF2ZPpohmwSb6JzNnbSenZ+HoHShYqJKoyWj9aTApZCmXqcuqACo0qmoqoKrXqw8rR6uAq7or8+w
vbGnspazibR4tVq2MbcEt9i4tLmRunC7Urw3vR6+B77xv9vAxcGtwpbDfcRixUbGJ8cGx+fI2cnK
ysLLs8ypzZ3OkM+C0HfRatJc007UP9Ux1iHXEtgE2PTZ49rU28fc4N4G3zDgXOGP4svkE+Vo5sro
R+nU637tPO8X8Q/zHPVE94f53Pw//pP//wAAbmRpbgAAAAAAAAY2AACl8AAAVwMAAEopAACaUQAA
JhgAABL1AABQDQAAVDkAAtR6AAJ9cAABq4UAAwEAAAIAAAAxAFIAbgCIAKEAtwDOAOQA+QEOASMB
OAFNAWMBeAGPAaUBvAHUAewCBgIfAjoCVgJyApACrQLMAusDCwMrA0wDbQOPA7ED0wP2BBkEPQRi
BIgErgTUBPsFIwVLBXQFnwXKBfYGIwZQBn8GrwbhBxMHSAd+B7QH7AgnCGMIoAjfCR4JYgmoCfEK
RAqXCusLQwuaC/QMUAyvDQ4NcQ3WDjwOpA8PD3wP6xBdENERRhG8EjUSrxMsE6oUKBSrFSoVqxYu
FrUXPRfHGFUY5xl6GhEaqxtIG+ccih0uHdQefh8oH9IgfyEvId0ijiNJJAwk0SWZJmInKyf3KMUp
lCpiKzIsAizULaQucy9FMBUw5DGzMoMzVjQpNPk1zDaiN3c4TzkjOfw61TuwPIs9aj5MPzFAHEEH
QfJC6UPeRNlF2kbdR+ZI9Un5SwhME00lTjhPUlByUZJSvFPoVRtWUFeLWM9aFVtcXK5eAV9TYKFh
42MqZHFlv2cQaGhpxWsnbItt9G9fcNByQHO1dSl2oHgVeY57JnzwfsGAloJnhD2GEIfeia6LeI1B
jwyQz5KZlFyWHJf9mjKccp6eoMui8KUTpzOpVKt6raiv2LIWtFy2trmrvO3AKcNhxofJqczEz9rS
6dX+2RPcD98I4gzlDegV6xbuEvEH8+v2yfmT/F7//wAAADUAWgB7AJgAsgDKAOIA+QEPASQBOgFQ
AWYBfAGTAaoBwgHbAfQCDgIpAkYCYwKCAqECwgLjAwQDJgNKA20DkQO1A9oD/wQlBEwEdAScBMQE
7gUYBUMFbgWbBckF+AYoBlkGiwa/BvQHKwdkB54H2QgWCFYImAjaCR4JZwmyCgIKWwqzCw8LbQvM
DC0Mkgz5DWINzg48Dq0PIQ+XEBAQjRELEYsSDhKTExoTpRQuFLsVQBXHFlIW3xdtF/4YkxkrGcQa
YhsCG6YcSxz1HZ0eSx75H6ggWSEMIcAidSM2JAMk0yWnJnwnUSgpKQMp3iq5K5Uscy1RLi4vDC/r
MMgxpTKEM2Y0STUvNhk3AzfuONc5vzqqO5Q8fj1pPlY/R0A7QS9CI0MhRB1FHkYlRy5IPUlMSlZL
aEx3TYxOo0/AUOBSBFMtVFtVjFa/V/xZPVqAW8ZdF15lX7dg+WI4Y3hkuWYBZ0pommnua0Vsn238
b1twwXImc5B0+XZmd9F5QXq7fEx97H+HgS2C0oR9hieH0omBiy+M346QkEKR9JOolVaXCpjVmqyc
ip5boDOiC6PqpcSnp6mOq4Cte698sYqznrXEt++6I7xWvp3A5sNCxaXIF8qXzSbPwNJf1QfXttpH
3HzequDn4yblb+fJ6i7soO8l8bX0Ufb7+ab8YP//AAAAOwBlAIkAqgDIAOYBAgEeAToBVgFzAZAB
rgHNAe0CDgIxAlUCewKjAssC9AMfA0sDdwOkA9EEAAQuBF8EkQTEBPcFLAViBZkF0gYNBkkGhwbH
BwkHTgeWB94IKwh7CM0JIAl6CdgKQQqtCx0LkAwFDH8M/A1+DgIOig8WD6YQOhDSEW0SCxKsE1IT
+BSjFUIV4xaIFy8X2BiGGTcZ6xqiG1scFxzXHZYeWR8dH+EgqCFxIjkjDyP7JOwl4ibZJ9IozynO
Ks4r0SzWLdou4C/oMO0x9DL/NBA1MDZcN4c4sjnbOwY8Mj1fPpE/zEEKQk5DnUTzRlZHwkkeSjtL
YkyITbVO6FAiUV9SplPwVUFWlFfvWU9ar1wUXX5e5WBLYZdi52Q5ZY9m6mhIaaxrE2x6beNvS3C2
ch9ziXTwdlh3vHkhepR8Kn3Vf3eBIILFhGqGCoekiT2K0Ixgje2Pe5D/koqUD5WPlxiYwpqDnEed
+5+uoV6jCaSxplan+6mgq0is9a6ksFeyELPPtZi3ZLkMuri8Wb4Jv7DBXsMQxMPGdMgqyePLoM1d
zx3Q4dKi1GjWNNf82cPbSdzD3jnfsOEj4o3j7+VJ5prn4ekf6kzrcOyO7Z3up++q8KHxlPJ782H0
QfUf9fX2yfeV+F/5J/ns+rD7cfwz/O/9qf6S//8AAGRlc2MAAAAAAAAABWlNYWMAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
ty7x5r1fVpNn9vzOT/S/xOlyfPDK/L4//9k=

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/iconfresqui.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QPbRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp
AAQAAAABAAAApAAAANAACvzaAAAnEAAK/NoAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv
c2gAMjAwOTowNTowNyAxMDo1NTo0MwAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAGKADAAQAAAAB
AAAAFgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAKlAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAFgAYAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9Tc4NBJMAakqmMzI3eoWD7NO3d+d/wAZ/UU88wKt0+nvHqfD
zUrLqgw6t2RzIiE8ChdXa0nWrqk7XBwkGR4pKt00uNBJ+juds+ElJDh9XDfVXF6bf//Q9Tfs2nfG
3vPEKnHSt3LP4L5jST4dfm/wVsvp9X6obtj28doSXyukm9U9Oj//2f/tIIxQaG90b3Nob3AgMy4w
ADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNA+oAAAAAF/88P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8v
RFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlz
dC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0PgoJPGtleT5jb20uYXBwbGUu
cHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29t
LmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUuam9i
dGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwv
a2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9y
bWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNv
bS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRl
Z2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50
LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8
L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJ
PGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1P
cmllbnRhdGlvbjwva2V5PgoJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFw
cGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+
CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFn
ZUZvcm1hdC5QTVNjYWxpbmc8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
Y2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+
CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4K
CQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwv
a2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5z
dGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2Fy
cmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2Fs
UmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwv
a2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFw
cGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJ
PGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8
cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8
L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9k
aWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwv
a2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4K
CQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5w
cmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxy
ZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9r
ZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGlj
dD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnN1YlRpY2tldC5wYXBlcl9pbmZvX3RpY2tldDwva2V5
PgoJPGRpY3Q+CgkJPGtleT5QTVBQRFBhcGVyQ29kZU5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtl
eT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBw
bGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVt
QXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5QTVBQRFBhcGVyQ29k
ZU5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJ
CQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+UE1UaW9nYVBhcGVyTmFtZTwv
a2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5
PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBw
bGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJ
CQk8a2V5PlBNVGlvZ2FQYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPmlzby1hNDwvc3RyaW5n
PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8
aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8
a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJ
CTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8
c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5
PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJ
CTxhcnJheT4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJ
CQkJCTxyZWFsPjc4MzwvcmVhbD4KCQkJCQkJPHJlYWw+NTU5PC9yZWFsPgoJCQkJCTwvYXJyYXk+
CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxp
bnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxr
ZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJ
CTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8
c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5
PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQkJ
CQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJ
CQkJCQk8cmVhbD44MjQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU3NzwvcmVhbD4KCQkJCQk8L2FycmF5
PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8
aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8
a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4K
CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5j
b20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
dC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBw
bGUucHJpbnQuUGFwZXJJbmZvLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5pc28tYTQ8
L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+
CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2Rp
Y3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0
PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9r
ZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5h
cHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJ
CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwv
a2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8
L3JlYWw+CgkJCQkJCTxyZWFsPjc4MzwvcmVhbD4KCQkJCQkJPHJlYWw+NTU5PC9yZWFsPgoJCQkJ
CTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5
PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9k
aWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYXBlclJl
Y3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8
L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29t
LmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+
CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVj
dDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4t
MTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJ
CQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwv
a2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJ
PC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8
L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tl
eT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFw
cGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJ
CQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLnBwZC5QTVBhcGVyTmFtZTwva2V5PgoJ
CQkJCTxzdHJpbmc+QTQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
c3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJ
PC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNp
b248L2tleT4KCQk8c3RyaW5nPjAwLjIwPC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQu
dGlja2V0LnR5cGU8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYXBlckluZm9UaWNr
ZXQ8L3N0cmluZz4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5BUElWZXJz
aW9uPC9rZXk+Cgk8c3RyaW5nPjAwLjIwPC9zdHJpbmc+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50
aWNrZXQudHlwZTwva2V5PgoJPHN0cmluZz5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdFRpY2tl
dDwvc3RyaW5nPgo8L2RpY3Q+CjwvcGxpc3Q+CgA4QklNA+0AAAAAABAASAJOAAEAAgBIAk4AAQAC
OEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAA
HjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAA
AAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEA
WgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP//////////////////
//////////8D6AAAAAD/////////////////////////////A+gAAAAA////////////////////
/////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQIAAAAAAAQAAAAAQAA
AkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA08AAAAGAAAAAAAAAAAAAAAWAAAA
GAAAAA0AaQBjAG8AbgBkAGUAbABpAGMAaQBvAHUAcwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
AAAAAAAAAAAAGAAAABYAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAA
AAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcA
AAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAABYAAAAAUmdodGxvbmcAAAAYAAAABnNs
aWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAA
B2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1hdXRvR2Vu
ZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNPYmpjAAAA
AQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxv
bmcAAAAWAAAAAFJnaHRsb25nAAAAGAAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhUAAAAAQAA
AAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJc0hUTUxi
b29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xpY2VIb3J6
QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGlnbgAAAAdk
ZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABOb25lAAAA
CXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21PdXRzZXRs
b25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAE/8AAAAAAAADhC
SU0EFAAAAAAABAAAAAE4QklNBAwAAAAAAsEAAAABAAAAGAAAABYAAABIAAAGMAAAAqUAGAAB/9j/
4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJ
CAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDP/AABEIABYAGAMBIgACEQEDEQH/3QAEAAL/xAE/AAABBQEBAQEBAQAAAAAAAAAD
AAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwz
AQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXC
o3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3
EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNz
NPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG
1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APU3ODQSTAGpKpjMyN3qFg+zTt3fnf8AGf1FPPMC
rdPp7x6nw81Ky6oMOrdkcyIhPAoXV2tJ1q6pO1wcJBkeKSrdNLjQSfo7nbPhJSQ4fVw31Vxem3//
0PU37Np3xt7zxCpx0rdyz+C+Y0k+HX5v8FbL6fV+qG7Y9vHaEl8rpJvVPTo//9kAOEJJTQQhAAAA
AABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUA
IABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwAzAAAAAQA4QklNBAYAAAAAAAcACAEBAAEBAP/hDyxo
dHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVN
ME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0
YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMS1jMDM2IDQ2LjI3NjcyMCwgTW9uIEZlYiAx
OSAyMDA3IDIyOjEzOjQzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjph
Ym91dD0iIiB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRj
PSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRw
Oi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFk
b2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZm
LzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiB4YXA6Q3Jl
YXRlRGF0ZT0iMjAwOS0wNS0wN1QxMDo1NTo0MyswMjowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDkt
MDUtMDdUMTA6NTU6NDMrMDI6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDUtMDdUMTA6NTU6
NDMrMDI6MDAiIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRvc2gi
IGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9w
OklDQ1Byb2ZpbGU9ImlNYWMiIHBob3Rvc2hvcDpIaXN0b3J5PSIiIHhhcE1NOkluc3RhbmNlSUQ9
InV1aWQ6RUI1MDRERjE4NzNDREUxMTgwRjNGMDQ0RThCNzc1RTIiIHhhcE1NOkRvY3VtZW50SUQ9
InV1aWQ6RUE1MDRERjE4NzNDREUxMTgwRjNGMDQ0RThCNzc1RTIiIHRpZmY6T3JpZW50YXRpb249
IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDA5MC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIw
MDkwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2
LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgs
MzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7OEU0MEI3RTlCRDBFNDVB
NUI1RDg2ODkwRTgzOTZDRjkiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIyNCIgZXhpZjpQaXhlbFlE
aW1lbnNpb249IjIyIiBleGlmOkNvbG9yU3BhY2U9Ii0xIiBleGlmOk5hdGl2ZURpZ2VzdD0iMzY4
NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4Njcs
MzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzcz
NzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzczOTYsNDE0ODMs
NDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUsNDE3MjgsNDE3MjksNDE3
MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMs
NDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1
LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwO0FFNzA4RDRGMkY2NEMxMkE0MUI2
OUZGQzNFQjhDOTU1Ij4gPHhhcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNl
Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9
InciPz7/4g/YSUNDX1BST0ZJTEUAAQEAAA/IYXBwbAIAAABtbnRyUkdCIFhZWiAH2QABAAEADgAV
ACNhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGyiIdIAMd+T
vZRl1vqqFK/mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFla
AAABQAAAABRiWFlaAAABVAAAABR3dHB0AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5n
VFJDAAABuAAAAA5iVFJDAAAByAAAAA52Y2d0AAAB2AAABhJuZGluAAAH7AAABj5kZXNjAAAOLAAA
AF9kc2NtAAAOjAAAAPBtbW9kAAAPfAAAAChjcHJ0AAAPpAAAACRYWVogAAAAAAAAd5sAAD4qAAAB
ZFhZWiAAAAAAAABZuAAArdUAABkIWFlaIAAAAAAAACWCAAAUHAAAuLlYWVogAAAAAAAA81IAAQAA
AAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3VydgAAAAAA
AAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAAAAMBAAAC
AAAAEAA4AHQAwgEyAdoCtAO+BPQGcQgQCesL5g32EBcSRhRpFocYlRqdHKMeqSCxIrskzybkKO4q
/C0ILxQxDjMGNPk23Di0On08RD30P59BR0LURFRFqUcDSFVJqUr4TEFNik7LUAxRS1KEU7tU7lYf
V09YgFmuWttcB101Xl1fkGDCYe9jG2RFZWpmimepaMRp3GrybAZtGG4rbzpwSnFecm9zf3STdaN2
qHemeKN5oHqee518m32Zfph/m4CdgaGCpoOvhLuFxobWh+iI/YoRiyWMPY1Xjm6PiJCgkb6S2ZP0
lRGWLJdEmFuZbZp/m5Ocm52nnq6fsaCzobGirKOypLCls6awp6+oqKmeqparh6x4rWWuUq88sCOx
CLHtstGzsLSQtXK2V7dDuDK5ILoOuvq75LzLvbC+lL93wFnBO8IcwvvD3MS8xZ3GfcdgyELJHcnr
yqfLYswczNfNk85Qzw3Py9CM0U7SEdLX057UZtUv1fvWxdeT2GPZLtnu2pXbO9vh3I3dOt3n3pjf
Sd/84LHhZeIa4s/jguQ15Ojll+ZG5vTnnug06LzpO+m46jXqs+sy67HsM+y27Trtv+5F7szvVO/d
8Gjw8/F98gjylPMh87L0RPTX9Wj1+faM9x/3sfhE+Nn5b/oF+p37OPvV/HP9E/23/lv/AP9///8A
AAAPADQAawC0AREBpgJaAzcETQWiByUI3wrPDNIO6REFExkVJhccGQYa5xzTHrUgoyKTJIQmbihg
KkksNS4TL+sxvDOCNTw26DiQOik7tj1DPrVAGkFcQqBD3UUZRlRHhUi1SeJLDEwyTVROdE+PUKhR
wFLXU+1VAVYSVydYOlleWoJbolzBXd9e+WAQYSZiOGNIZFVlYmZqZ3hof2mKapRrn2ypbbVuvG+2
cKhxmHKGc3V0Z3VXdkh3OXgseSF6FnsMfAV9AH37fvl/+4D9gf+DAIQBhQCF/ob+iACJBooNixSM
Ho0pjjSPPpBFkU2SVpNalF6VYJZfl1yYVplQmlCbTZxLnUieQ588oDOhKaIcow2j/KTrpdmmwaeo
qI+pdqpXqzqsHa0ErfSu56/bsM6xv7Kvs5y0iLVztl23R7gwuRi5/7rmu828tb2bvoS/a8BPwSzC
AMLQw6TEdMVExhTG5Me1yIbJV8opyvvLzsyhzXTOSM8dz/PQzNGj0nPTPtQH1M7VnNZo1zXYAdjN
2ZvaZ9sy2/zcxN2J3k3fD9/P4I3hSeIC4rrjceQo5ODlkuZF5vfnpehS6P/pqepR6vjrnOw/7OHt
g+4k7sXvZfAG8K7xaPIt8vXzuPR89T/2APa893f4MPjn+Zr6S/r7+6n8Vv0B/a3+V/7//3///wAA
AA0ALgBgAKEA8QFuAgUCyQOxBMYF+wdeCNoKawwJDakPShDkEnUT+RWCFwcYixoWG6UdOh7EIE4h
2iNjJOcmYifZKUkqrywJLWIuqi/tMTAyXTN9NIg1kDaUN5c4lzmTOow7gTx2PWg+Vz9EQC5BFUH8
QuFDx0SqRY1GcUdTSElJP0oySyZMGU0JTfhO5U/SUL5RqlKVU39UbFVXVkRXM1ghWQ9Z/1rpW8Rc
lV1kXjFfAF/PYJ9hbmI9Yw1j3mSuZYBmVGcoZ/xo02mtaodrX2w1bQNtzW6Tb1xwJnDzccFyj3Nf
dC90/nXLdpZ3YHgpeO55sXpzey576HyjfWZ+UX87gCaBEIH2gtmDuoSahXaGUIcpiACI14mrin6L
UowljPeNyY6ej3SQWpFCkimTD5P0lNiVu5acl3yYXZk+miGbBJvonM2dtJ6dn4egdKFiokqjJaP1
pMClkKZepy6oAKjSqaiqgqterDytHq4Cruivz7C9saeylrOJtHi1WrYxtwS32Li0uZG6cLtSvDe9
Hr4HvvG/28DFwa3ClsN9xGLFRsYnxwbH58jZycrKwsuzzKnNnc6Qz4LQd9Fq0lzTTtQ/1THWIdcS
2ATY9Nnj2tTbx9zg3gbfMOBc4Y/iy+QT5WjmyuhH6dTrfu087xfxD/Mc9UT3h/nc/D/+k///AABu
ZGluAAAAAAAABjYAAKXwAABXAwAASikAAJpRAAAmGAAAEvUAAFANAABUOQAC1HoAAn1wAAGrhQAD
AQAAAgAAADEAUgBuAIgAoQC3AM4A5AD5AQ4BIwE4AU0BYwF4AY8BpQG8AdQB7AIGAh8COgJWAnIC
kAKtAswC6wMLAysDTANtA48DsQPTA/YEGQQ9BGIEiASuBNQE+wUjBUsFdAWfBcoF9gYjBlAGfwav
BuEHEwdIB34HtAfsCCcIYwigCN8JHgliCagJ8QpECpcK6wtDC5oL9AxQDK8NDg1xDdYOPA6kDw8P
fA/rEF0Q0RFGEbwSNRKvEywTqhQoFKsVKhWrFi4WtRc9F8cYVRjnGXoaERqrG0gb5xyKHS4d1B5+
Hygf0iB/IS8h3SKOI0kkDCTRJZkmYicrJ/coxSmUKmIrMiwCLNQtpC5zL0UwFTDkMbMygzNWNCk0
+TXMNqI3dzhPOSM5/DrVO7A8iz1qPkw/MUAcQQdB8kLpQ95E2UXaRt1H5kj1SflLCEwTTSVOOE9S
UHJRklK8U+hVG1ZQV4tYz1oVW1xcrl4BX1NgoWHjYypkcWW/ZxBoaGnFaydsi230b19w0HJAc7V1
KXageBV5jnsmfPB+wYCWgmeEPYYQh96Jrot4jUGPDJDPkpmUXJYcl/2aMpxynp6gy6LwpROnM6lU
q3qtqK/Ysha0XLa2uau87cApw2HGh8mpzMTP2tLp1f7ZE9wP3wjiDOUN6BXrFu4S8Qfz6/bJ+ZP8
Xv//AAAANQBaAHsAmACyAMoA4gD5AQ8BJAE6AVABZgF8AZMBqgHCAdsB9AIOAikCRgJjAoICoQLC
AuMDBAMmA0oDbQORA7UD2gP/BCUETAR0BJwExATuBRgFQwVuBZsFyQX4BigGWQaLBr8G9AcrB2QH
ngfZCBYIVgiYCNoJHglnCbIKAgpbCrMLDwttC8wMLQySDPkNYg3ODjwOrQ8hD5cQEBCNEQsRixIO
EpMTGhOlFC4UuxVAFccWUhbfF20X/hiTGSsZxBpiGwIbphxLHPUdnR5LHvkfqCBZIQwhwCJ1IzYk
AyTTJacmfCdRKCkpAyneKrkrlSxzLVEuLi8ML+swyDGlMoQzZjRJNS82GTcDN+441zm/Oqo7lDx+
PWk+Vj9HQDtBL0IjQyFEHUUeRiVHLkg9SUxKVktoTHdNjE6jT8BQ4FIEUy1UW1WMVr9X/Fk9WoBb
xl0XXmVft2D5YjhjeGS5ZgFnSmiaae5rRWyfbfxvW3DBciZzkHT5dmZ30XlBert8TH3sf4eBLYLS
hH2GJ4fSiYGLL4zfjpCQQpH0k6iVVpcKmNWarJyKnlugM6ILo+qlxKenqY6rgK17r3yxirOetcS3
77ojvFa+ncDmw0LFpcgXypfNJs/A0l/VB9e22kfcfN6q4OfjJuVv58nqLuyg7yXxtfRR9vv5pvxg
//8AAAA7AGUAiQCqAMgA5gECAR4BOgFWAXMBkAGuAc0B7QIOAjECVQJ7AqMCywL0Ax8DSwN3A6QD
0QQABC4EXwSRBMQE9wUsBWIFmQXSBg0GSQaHBscHCQdOB5YH3ggrCHsIzQkgCXoJ2ApBCq0LHQuQ
DAUMfwz8DX4OAg6KDxYPphA6ENIRbRILEqwTUhP4FKMVQhXjFogXLxfYGIYZNxnrGqIbWxwXHNcd
lh5ZHx0f4SCoIXEiOSMPI/sk7CXiJtkn0ijPKc4qzivRLNYt2i7gL+gw7TH0Mv80EDUwNlw3hziy
Ods7BjwyPV8+kT/MQQpCTkOdRPNGVkfCSR5KO0tiTIhNtU7oUCJRX1KmU/BVQVaUV+9ZT1qvXBRd
fl7lYEthl2LnZDllj2bqaEhprGsTbHpt429LcLZyH3OJdPB2WHe8eSF6lHwqfdV/d4EggsWEaoYK
h6SJPYrQjGCN7Y97kP+SipQPlY+XGJjCmoOcR537n66hXqMJpLGmVqf7qaCrSKz1rqSwV7IQs8+1
mLdkuQy6uLxZvgm/sMFewxDEw8Z0yCrJ48ugzV3PHdDh0qLUaNY01/zZw9tJ3MPeOd+w4SPijePv
5Unmmufh6R/qTOtw7I7tne6n76rwofGU8nvzYfRB9R/19fbJ95X4X/kn+ez6sPtx/DP87/2p/pL/
/wAAZGVzYwAAAAAAAAAFaU1hYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAASAAAA
DG5iTk8AAAAIAAAA6HB0UFQAAAAIAAAA6HN2U0UAAAAIAAAA6GZpRkkAAAAIAAAA6GRhREsAAAAI
AAAA6HpoQ04AAAAIAAAA6GZyRlIAAAAIAAAA6GphSlAAAAAIAAAA6GVuVVMAAAAIAAAA6HBsUEwA
AAAIAAAA6HB0QlIAAAAIAAAA6GVzRVMAAAAIAAAA6HpoVFcAAAAIAAAA6HJ1UlUAAAAIAAAA6Gtv
S1IAAAAIAAAA6GRlREUAAAAIAAAA6G5sTkwAAAAIAAAA6Gl0SVQAAAAIAAAA6ABpAE0AYQBjbW1v
ZAAAAAAAAAYQAACcawAAAAC/04NwAAAAAAAAAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFw
cGxlLCBJbmMuLCAyMDA5AP/uACFBZG9iZQBkQAAAAAEDABADAgMGAAAAAAAAAAAAAAAA/9sAhAAB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMD
AwMDAwMDAQEBAQEBAQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwP/wgARCAAWABgDAREAAhEBAxEB/8QAnQABAAMAAAAAAAAAAAAAAAAACAUG
CgEBAAMBAAAAAAAAAAAAAAAABgMFBwQQAAICAgICAwAAAAAAAAAAAAMEAQUCBhQHEwgAEhURAAED
AgYBBQEAAAAAAAAAAAIBAwQSBREhExQVBgAxkSIyBxYSAAECBAQEBAUFAAAAAAAAAAERAiExEgMA
QRMEUWEiFHGxUgWBocEyFZFikiQW/9oADAMBAQIRAxEAAADfHJEUtCHLHOWJ5Zmpirnrl5xokaoJ
WgE15nyb/9oACAECAAEFAAiMwYus68NKRNBJqBAY/Mau/hrsEFcvdJw7Lc59lcVvk8r/2gAIAQMA
AQUAOYa4YvrLyhOFge0SWMZs6WVNPzYzUZgMixHp/mS4P0//2gAIAQEAAQUAuLJOoSX717KmwrLB
SzV9km+Ipsu96etS+prNq313fxRzUQD0y/TqfyuF/9oACAECAgY/AGWNvt3XLroADIyU5pGKY7L8
k/8A0os6pbDSzGkMy8lDP7VPLFy1urVNxp/UcUjOY4j5+9MBA9zO2/r+qsOA6f5BUIimROO5te33
n7qsOe5ylG1NWcQ4KvAASliyzYXw95sMdcHpeQOn4cMvHG2/HOuDe1ijT++rKlIr4YvDR32iorPW
tSQr6qlT1Qxf72ru166lqXmufzlyx//aAAgBAwIGPwC5fuvRrWnMBTlOZggChVxa3tyyntrrlCJy
WpSFyImn0bdsPqYce3FtqqwLpr5NSZ4eXkXbfXY/pKNKJUnpMAZxEclUx3hvggaxQLABMhIZeRlh
3cOAtIVVElz5LjpvbfWX9s0y6Zpww7saaFjTKZ+q/Fcf/9oACAEBAQY/AJFwn3Bq3RIkaRKkSHya
BptiOIuuuKTqYIQAOXriirkq4YNdxldQhN/irt//AJjl6Hw7M0yb8cU76+eqdsDqIipgI6SPKpIS
5JmzKhS2p0Z9hqQzLYcbdZfaerUDbdaQWzH4KmKInv5+cFdDlD0p39AsjXdBjsyHo52wZsSRG5VW
BLQtDcmPVIMstNFFUUSLCQwly68x1tuAcd192bBeshwBCQkuMpMOo0cF+K2SUIhOEpIiJSR+XKRI
3K2F3tvZi6k7JM1R6x85ckjnDB8UkBbxFBFirKgUQfiieT/6QrcNj2sjkuX2vHLD0XNzut4KsaOh
VVjlTj4riTfz+vcLiyoNcNuMUJc1icZ9ME+9NHv5H4ba7DQa22zp22hSujpUfCin0w8//9k=

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/icontechnorati.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QR8RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp
AAQAAAABAAAApAAAANAACvzaAAAnEAAK/NoAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv
c2gAMjAwOTowNTowNyAxMDo1NjoxMgAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAGKADAAQAAAAB
AAAAFgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAANGAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAFgAYAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9H6l1NuD6LBWbbch2ytk7ROg1dDv30PO6/g4Ngpu3OtgFzKx
uifFztiz/rba6m3BtZo6tz3NnxBqcFDOHQ811WRl3nHyba2usaz3cgaP9j/es/NzWUZM0IShGUDD
h9z0x4ZR9Xq/fYJ5JAzAIsVXE7uFm0ZtAvoMsOmuhB8CkqXQbunGq3G6fuNdJBc92hcX7tfzf3El
Y94/dvc4ocVfNf6n3Pk+b++v4j7fFYut/wBG3//Q9B66zpT6a29SsNQk+m5sl06bo2tsWL9k+qnf
Nu8tD/7zrwNJZXOcPvG/u+w/nfc9z/C4Gtmrj19v/D4uJ+luhM6VXVY3p1htEj1XOkO49nLa0l80
pKxp9z/yNcP9b7t83+P/AOhsn+S/R/8AUe7/AP/Z/+0hKFBob3Rvc2hvcCAzLjAAOEJJTQQlAAAA
AAAQAAAAAAAAAAAAAAAAAAAAADhCSU0D6gAAAAAX/zw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04Ij8+CjwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1Qg
MS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQi
Pgo8cGxpc3QgdmVyc2lvbj0iMS4wIj4KPGRpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdl
Rm9ybWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0
cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFy
cmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1Ib3Jp
em9udGFsUmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnBy
aW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwv
ZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1h
dC5QTU9yaWVudGF0aW9uPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr
ZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJ
CTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9u
PC9rZXk+CgkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQu
dGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0
PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBN
U2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0
b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNv
bS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4K
CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9rZXk+CgkJCQk8
cmVhbD4xPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwv
a2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2Rp
Y3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxSZXM8L2tleT4K
CTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0
cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQu
dGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5h
cHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxSZXM8L2tleT4KCQkJCTxyZWFsPjcyPC9y
ZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJ
PGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5
PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxTY2FsaW5nPC9rZXk+Cgk8ZGlj
dD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+
Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
dC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUu
cHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwvcmVh
bD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxp
bnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5j
b20uYXBwbGUucHJpbnQuc3ViVGlja2V0LnBhcGVyX2luZm9fdGlja2V0PC9rZXk+Cgk8ZGljdD4K
CQk8a2V5PlBNUFBEUGFwZXJDb2RlTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNr
ZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5
PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PlBNUFBEUGFwZXJDb2RlTmFtZTwva2V5
PgoJCQkJCTxzdHJpbmc+QTQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr
ZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4K
CQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5QTVRpb2dhUGFwZXJOYW1lPC9rZXk+CgkJPGRp
Y3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJp
bmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50
aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+UE1U
aW9nYVBhcGVyTmFtZTwva2V5PgoJCQkJCTxzdHJpbmc+aXNvLWE0PC9zdHJpbmc+CgkJCQkJPGtl
eT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8
L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFw
cGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29t
LmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
aXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxl
LnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJ
CQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+
NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwv
aW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBw
bGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29t
LmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
aXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxl
LnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4K
CQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFs
PjgyNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtl
eT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8
L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFw
cGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNv
bS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5q
b2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJh
eTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5Q
YXBlckluZm8uUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPmlzby1hNDwvc3RyaW5nPgoJ
CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50
ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5
PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQk8
ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0
cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50
LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5j
b20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJ
PGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJ
CQkJPHJlYWw+NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4K
CQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGlu
dGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtl
eT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJ
CTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8
c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5
PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJ
CQkJPGFycmF5PgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4K
CQkJCQkJPHJlYWw+ODI0PC9yZWFsPgoJCQkJCQk8cmVhbD41Nzc8L3JlYWw+CgkJCQkJPC9hcnJh
eT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJ
PGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJ
PGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLnBwZC5QTVBhcGVyTmFtZTwva2V5PgoJCTxk
aWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3Ry
aW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQu
dGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNv
bS5hcHBsZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmlu
Zz5BNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8
L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJ
CTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJ
CTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQudHlw
ZTwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mb1RpY2tldDwvc3RyaW5n
PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4K
CTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBl
PC9rZXk+Cgk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0VGlja2V0PC9zdHJpbmc+
CjwvZGljdD4KPC9wbGlzdD4KADhCSU0D7QAAAAAAEABIAk4AAQACAEgCTgABAAI4QklNBCYAAAAA
AA4AAAAAAAAAAAAAP4AAADhCSU0EDQAAAAAABAAAAB44QklNBBkAAAAAAAQAAAAeOEJJTQPzAAAA
AAAJAAAAAAAAAAABADhCSU0ECgAAAAAAAQAAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAA
AAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAA
AQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPo
AAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gA
AAAA/////////////////////////////wPoAAA4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAA
OEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADSwAAAAYAAAAAAAAAAAAAABYAAAAYAAAACwBpAGMA
bwBuAGYAcgBlAHMAcQB1AGkAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAABgAAAAW
AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAA
AAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9u
ZwAAAAAAAAAAQnRvbWxvbmcAAAAWAAAAAFJnaHRsb25nAAAAGAAAAAZzbGljZXNWbExzAAAAAU9i
amMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAA
AAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBl
ZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAA
BAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAFgAAAABSZ2h0
bG9uZwAAABgAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAA
AAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRl
eHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1
bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0Nv
bG9yVHlwZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25n
AAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmln
aHRPdXRzZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAAAAQAAAAB
OEJJTQQMAAAAAANiAAAAAQAAABgAAAAWAAAASAAABjAAAANGABgAAf/Y/+AAEEpGSUYAAQIAAEgA
SAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwM
DxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAU
Dg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAAR
CAAWABgDASIAAhEBAxEB/90ABAAC/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQAB
BQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWET
InGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N1
4/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcH
BgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJE
k1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH
/9oADAMBAAIRAxEAPwD0fqXU24PosFZttyHbK2TtE6DV0O/fQ87r+Dg2Cm7c62AXMrG6J8XO2LP+
ttrqbcG1mjq3Pc2fEGpwUM4dDzXVZGXecfJtra6xrPdyBo/2P96z83NZRkzQhKEZQMOH3PTHhlH1
er99gnkkDMAixVcTu4WbRm0C+gyw6a6EHwKSpdBu6carcbp+410kFz3aFxfu1/N/cSVj3j929zih
xV81/qfc+T5v76/iPt8Vi63/AEbf/9D0HrrOlPprb1Kw1CT6bmyXTpuja2xYv2T6qd827y0P/vOv
A0llc5w+8b+77D+d9z3P8Lga2auPX2/8Pi4n6W6EzpVdVjenWG0SPVc6Q7j2ctrSXzSkrGn3P/I1
w/1vu3zf4/8A6Gyf5L9H/wBR7v8A/9k4QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAA
UABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBT
ADMAAAABADhCSU0EBgAAAAAABwAIAQEAAQEA/+EPLGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4g
PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENv
cmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6MTM6NDMgICAgICAgICI+
IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3lu
dGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhhcD0iaHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVt
ZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9w
LzEuMC8iIHhtbG5zOnhhcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxu
czp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDov
L25zLmFkb2JlLmNvbS9leGlmLzEuMC8iIHhhcDpDcmVhdGVEYXRlPSIyMDA5LTA1LTA3VDEwOjU2
OjEyKzAyOjAwIiB4YXA6TW9kaWZ5RGF0ZT0iMjAwOS0wNS0wN1QxMDo1NjoxMiswMjowMCIgeGFw
Ok1ldGFkYXRhRGF0ZT0iMjAwOS0wNS0wN1QxMDo1NjoxMiswMjowMCIgeGFwOkNyZWF0b3JUb29s
PSJBZG9iZSBQaG90b3Nob3AgQ1MzIE1hY2ludG9zaCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBw
aG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0iaU1hYyIgcGhvdG9z
aG9wOkhpc3Rvcnk9IiIgeGFwTU06SW5zdGFuY2VJRD0idXVpZDpFRjUwNERGMTg3M0NERTExODBG
M0YwNDRFOEI3NzVFMiIgeGFwTU06RG9jdW1lbnRJRD0idXVpZDpFRTUwNERGMTg3M0NERTExODBG
M0YwNDRFOEI3NzVFMiIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iNzIw
MDkwLzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI3MjAwOTAvMTAwMDAiIHRpZmY6UmVzb2x1dGlv
blVuaXQ9IjIiIHRpZmY6TmF0aXZlRGlnZXN0PSIyNTYsMjU3LDI1OCwyNTksMjYyLDI3NCwyNzcs
Mjg0LDUzMCw1MzEsMjgyLDI4MywyOTYsMzAxLDMxOCwzMTksNTI5LDUzMiwzMDYsMjcwLDI3MSwy
NzIsMzA1LDMxNSwzMzQzMjswN0YwNUM1Qjg2NjJDODJDRUIwNDEyODlCQjNFMzAyNyIgZXhpZjpQ
aXhlbFhEaW1lbnNpb249IjI0IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjIiIGV4aWY6Q29sb3JT
cGFjZT0iLTEiIGV4aWY6TmF0aXZlRGlnZXN0PSIzNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEy
Miw0MDk2Miw0MDk2MywzNzUxMCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwz
NDg1MiwzNDg1NSwzNDg1NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4
MywzNzM4NCwzNzM4NSwzNzM4NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0
MTQ5Miw0MTQ5Myw0MTQ5NSw0MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4
OCw0MTk4OSw0MTk5MCw0MTk5MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiww
LDIsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUs
MjYsMjcsMjgsMzA7QUU3MDhENEYyRjY0QzEyQTQxQjY5RkZDM0VCOEM5NTUiPiA8eGFwTU06RGVy
aXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwv
cmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iD9hJQ0NfUFJPRklMRQABAQAA
D8hhcHBsAgAAAG1udHJSR0IgWFlaIAfZAAEAAQAOABUAI2Fjc3BBUFBMAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAD21gABAAAAANMtYXBwbKIh0gAx35O9lGXW+qoUr+YAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAADnJYWVoAAAEsAAAAFGdYWVoAAAFAAAAAFGJYWVoAAAFUAAAAFHd0cHQA
AAFoAAAAFGNoYWQAAAF8AAAALHJUUkMAAAGoAAAADmdUUkMAAAG4AAAADmJUUkMAAAHIAAAADnZj
Z3QAAAHYAAAGEm5kaW4AAAfsAAAGPmRlc2MAAA4sAAAAX2RzY20AAA6MAAAA8G1tb2QAAA98AAAA
KGNwcnQAAA+kAAAAJFhZWiAAAAAAAAB3mwAAPioAAAFkWFlaIAAAAAAAAFm4AACt1QAAGQhYWVog
AAAAAAAAJYIAABQcAAC4uVhZWiAAAAAAAADzUgABAAAAARbPc2YzMgAAAAAAAQxCAAAF3v//8yYA
AAeSAAD9kf//+6L///2jAAAD3AAAwGxjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAGN1
cnYAAAAAAAAAAQHNAAB2Y2d0AAAAAAAAAAAAAwEAAAIAAAAQADgAdADCATIB2gK0A74E9AZxCBAJ
6wvmDfYQFxJGFGkWhxiVGp0cox6pILEiuyTPJuQo7ir8LQgvFDEOMwY0+TbcOLQ6fTxEPfQ/n0FH
QtREVEWpRwNIVUmpSvhMQU2KTstQDFFLUoRTu1TuVh9XT1iAWa5a21wHXTVeXV+QYMJh72MbZEVl
amaKZ6loxGncavJsBm0YbitvOnBKcV5yb3N/dJN1o3aod6Z4o3mgep57nXybfZl+mH+bgJ2BoYKm
g6+Eu4XGhtaH6Ij9ihGLJYw9jVeObo+IkKCRvpLZk/SVEZYsl0SYW5ltmn+bk5ybnaeerp+xoLOh
saKso7KksKWzprCnr6ioqZ6qlquHrHitZa5SrzywI7EIse2y0bOwtJC1crZXt0O4Mrkgug66+rvk
vMu9sL6Uv3fAWcE7whzC+8PcxLzFncZ9x2DIQskdyevKp8tizBzM182TzlDPDc/L0IzRTtIR0tfT
ntRm1S/V+9bF15PYY9ku2e7alds72+Hcjd063efemN9J3/zgseFl4hriz+OC5DXk6OWX5kbm9Oee
6DTovOk76bjqNeqz6zLrsewz7LbtOu2/7kXuzO9U793waPDz8X3yCPKU8yHzsvRE9Nf1aPX59oz3
H/ex+ET42flv+gX6nfs4+9X8c/0T/bf+W/8A/3///wAAAA8ANABrALQBEQGmAloDNwRNBaIHJQjf
Cs8M0g7pEQUTGRUmFxwZBhrnHNMetSCjIpMkhCZuKGAqSSw1LhMv6zG8M4I1PDboOJA6KTu2PUM+
tUAaQVxCoEPdRRlGVEeFSLVJ4ksMTDJNVE50T49QqFHAUtdT7VUBVhJXJ1g6WV5agluiXMFd3175
YBBhJmI4Y0hkVWViZmpneGh/aYpqlGufbKlttW68b7ZwqHGYcoZzdXRndVd2SHc5eCx5IXoWewx8
BX0Afft++X/7gP2B/4MAhAGFAIX+hv6IAIkGig2LFIwejSmONI8+kEWRTZJWk1qUXpVgll+XXJhW
mVCaUJtNnEudSJ5DnzygM6EpohyjDaP8pOul2abBp6ioj6l2qlerOqwdrQSt9K7nr9uwzrG/sq+z
nLSItXO2XbdHuDC5GLn/uua7zby1vZu+hL9rwE/BLMIAwtDDpMR0xUTGFMbkx7XIhslXyinK+8vO
zKHNdM5Izx3P89DM0aPSc9M+1AfUztWc1mjXNdgB2M3Zm9pn2zLb/NzE3YneTd8P38/gjeFJ4gLi
uuNx5Cjk4OWS5kXm9+el6FLo/+mp6lHq+Ouc7D/s4e2D7iTuxe9l8AbwrvFo8i3y9fO49Hz1P/YA
9rz3d/gw+Of5mvpL+vv7qfxW/QH9rf5X/v//f///AAAADQAuAGAAoQDxAW4CBQLJA7EExgX7B14I
2gprDAkNqQ9KEOQSdRP5FYIXBxiLGhYbpR06HsQgTiHaI2Mk5yZiJ9kpSSqvLAktYi6qL+0xMDJd
M300iDWQNpQ3lziXOZM6jDuBPHY9aD5XP0RALkEVQfxC4UPHRKpFjUZxR1NISUk/SjJLJkwZTQlN
+E7lT9JQvlGqUpVTf1RsVVdWRFczWCFZD1n/WulbxFyVXWReMV8AX89gn2FuYj1jDWPeZK5lgGZU
Zyhn/GjTaa1qh2tfbDVtA23NbpNvXHAmcPNxwXKPc190L3T+dct2lndgeCl47nmxenN7LnvofKN9
Zn5RfzuAJoEQgfaC2YO6hJqFdoZQhymIAIjXiauKfotSjCWM943Jjp6PdJBakUKSKZMPk/SU2JW7
lpyXfJhdmT6aIZsEm+iczZ20np2fh6B0oWKiSqMlo/WkwKWQpl6nLqgAqNKpqKqCq16sPK0ergKu
6K/PsL2xp7KWs4m0eLVatjG3BLfYuLS5kbpwu1K8N70evge+8b/bwMXBrcKWw33EYsVGxifHBsfn
yNnJysrCy7PMqc2dzpDPgtB30WrSXNNO1D/VMdYh1xLYBNj02ePa1NvH3ODeBt8w4Fzhj+LL5BPl
aObK6Efp1Ot+7TzvF/EP8xz1RPeH+dz8P/6T//8AAG5kaW4AAAAAAAAGNgAApfAAAFcDAABKKQAA
mlEAACYYAAAS9QAAUA0AAFQ5AALUegACfXAAAauFAAMBAAACAAAAMQBSAG4AiAChALcAzgDkAPkB
DgEjATgBTQFjAXgBjwGlAbwB1AHsAgYCHwI6AlYCcgKQAq0CzALrAwsDKwNMA20DjwOxA9MD9gQZ
BD0EYgSIBK4E1AT7BSMFSwV0BZ8FygX2BiMGUAZ/Bq8G4QcTB0gHfge0B+wIJwhjCKAI3wkeCWIJ
qAnxCkQKlwrrC0MLmgv0DFAMrw0ODXEN1g48DqQPDw98D+sQXRDREUYRvBI1Eq8TLBOqFCgUqxUq
FasWLha1Fz0XxxhVGOcZehoRGqsbSBvnHIodLh3UHn4fKB/SIH8hLyHdIo4jSSQMJNElmSZiJysn
9yjFKZQqYisyLAIs1C2kLnMvRTAVMOQxszKDM1Y0KTT5Ncw2ojd3OE85Izn8OtU7sDyLPWo+TD8x
QBxBB0HyQulD3kTZRdpG3UfmSPVJ+UsITBNNJU44T1JQclGSUrxT6FUbVlBXi1jPWhVbXFyuXgFf
U2ChYeNjKmRxZb9nEGhoacVrJ2yLbfRvX3DQckBztXUpdqB4FXmOeyZ88H7BgJaCZ4Q9hhCH3omu
i3iNQY8MkM+SmZRclhyX/ZoynHKenqDLovClE6czqVSreq2or9iyFrRctra5q7ztwCnDYcaHyanM
xM/a0unV/tkT3A/fCOIM5Q3oFesW7hLxB/Pr9sn5k/xe//8AAAA1AFoAewCYALIAygDiAPkBDwEk
AToBUAFmAXwBkwGqAcIB2wH0Ag4CKQJGAmMCggKhAsIC4wMEAyYDSgNtA5EDtQPaA/8EJQRMBHQE
nATEBO4FGAVDBW4FmwXJBfgGKAZZBosGvwb0BysHZAeeB9kIFghWCJgI2gkeCWcJsgoCClsKswsP
C20LzAwtDJIM+Q1iDc4OPA6tDyEPlxAQEI0RCxGLEg4SkxMaE6UULhS7FUAVxxZSFt8XbRf+GJMZ
KxnEGmIbAhumHEsc9R2dHkse+R+oIFkhDCHAInUjNiQDJNMlpyZ8J1EoKSkDKd4quSuVLHMtUS4u
Lwwv6zDIMaUyhDNmNEk1LzYZNwM37jjXOb86qjuUPH49aT5WP0dAO0EvQiNDIUQdRR5GJUcuSD1J
TEpWS2hMd02MTqNPwFDgUgRTLVRbVYxWv1f8WT1agFvGXRdeZV+3YPliOGN4ZLlmAWdKaJpp7mtF
bJ9t/G9bcMFyJnOQdPl2ZnfReUF6u3xMfex/h4EtgtKEfYYnh9KJgYsvjN+OkJBCkfSTqJVWlwqY
1ZqsnIqeW6Azoguj6qXEp6epjquArXuvfLGKs561xLfvuiO8Vr6dwObDQsWlyBfKl80mz8DSX9UH
17baR9x83qrg5+Mm5W/nyeou7KDvJfG19FH2+/mm/GD//wAAADsAZQCJAKoAyADmAQIBHgE6AVYB
cwGQAa4BzQHtAg4CMQJVAnsCowLLAvQDHwNLA3cDpAPRBAAELgRfBJEExAT3BSwFYgWZBdIGDQZJ
BocGxwcJB04HlgfeCCsIewjNCSAJegnYCkEKrQsdC5AMBQx/DPwNfg4CDooPFg+mEDoQ0hFtEgsS
rBNSE/gUoxVCFeMWiBcvF9gYhhk3GesaohtbHBcc1x2WHlkfHR/hIKghcSI5Iw8j+yTsJeIm2SfS
KM8pzirOK9Es1i3aLuAv6DDtMfQy/zQQNTA2XDeHOLI52zsGPDI9Xz6RP8xBCkJOQ51E80ZWR8JJ
Hko7S2JMiE21TuhQIlFfUqZT8FVBVpRX71lPWq9cFF1+XuVgS2GXYudkOWWPZupoSGmsaxNsem3j
b0twtnIfc4l08HZYd7x5IXqUfCp91X93gSCCxYRqhgqHpIk9itCMYI3tj3uQ/5KKlA+Vj5cYmMKa
g5xHnfufrqFeowmksaZWp/upoKtIrPWupLBXshCzz7WYt2S5DLq4vFm+Cb+wwV7DEMTDxnTIKsnj
y6DNXc8d0OHSotRo1jTX/NnD20ncw94537DhI+KN4+/lSeaa5+HpH+pM63Dsju2d7qfvqvCh8ZTy
e/Nh9EH1H/X19sn3lfhf+Sf57Pqw+3H8M/zv/an+kv//AABkZXNjAAAAAAAAAAVpTWFjAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAABIAAAAMbmJOTwAAAAgAAADocHRQVAAAAAgAAADo
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

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/iconyahoo.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QQ6RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp
AAQAAAABAAAApAAAANAACvzaAAAnEAAK/NoAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv
c2gAMjAwOTowNTowNyAxMDo1NjozMAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAGqADAAQAAAAB
AAAAFgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAMEAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAFgAaAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9Nyeo4GI4MysiulzhIFjg0kePuRKcii+sW0WNsrd9F7SCDHm
EPPxsTJxbKsxgfQ5p3h3YD87+S5q5TpNFXVMr7B1C03Y3T3ObhAtLX3Ml211t/59dbGfzbNn/CJp
JBA7tnHhxzxSnxSicfz6cdwl8vt/L+l83qerdn4bMpuG+5rcl7d7aiYcQSR7f3voqwsDA6dTZ9Ys
jNZs9HCrZi41bfzHRvtln5mzd7f+NW+lZrbr+Cvaw8fDxS/muP8A6vwe7wf3f0P77//Q9VTe3yXy
skkp+qBskxEz7o5mO6kvlVJJT//Z/+0g7FBob3Rvc2hvcCAzLjAAOEJJTQQlAAAAAAAQAAAAAAAA
AAAAAAAAAAAAADhCSU0D6gAAAAAX/zw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04
Ij8+CjwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIg
Imh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgo8cGxpc3Qg
dmVyc2lvbj0iMS4wIj4KPGRpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBN
SG9yaXpvbnRhbFJlczwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8
ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1Ib3Jpem9udGFsUmVz
PC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
dC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8
L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVu
dGF0aW9uPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRv
cjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29t
LmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJ
CQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+CgkJ
CQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0
YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJy
YXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwv
a2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4K
CQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5w
cmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9rZXk+CgkJCQk8cmVhbD4xPC9y
ZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJ
PGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5
PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxSZXM8L2tleT4KCTxkaWN0PgoJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20u
YXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0
ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC5QYWdlRm9ybWF0LlBNVmVydGljYWxSZXM8L2tleT4KCQkJCTxyZWFsPjcyPC9yZWFsPgoJCQkJ
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+
MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBs
ZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxTY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8a2V5
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxl
LmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJy
YXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFn
ZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxr
ZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8
L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUu
cHJpbnQuc3ViVGlja2V0LnBhcGVyX2luZm9fdGlja2V0PC9rZXk+Cgk8ZGljdD4KCQk8a2V5PlBN
UFBEUGFwZXJDb2RlTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50
aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmlu
Zz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJy
YXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PlBNUFBEUGFwZXJDb2RlTmFtZTwva2V5PgoJCQkJCTxz
dHJpbmc+QTQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVG
bGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJh
eT4KCQk8L2RpY3Q+CgkJPGtleT5QTVRpb2dhUGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxr
ZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFw
cGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRl
bUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+UE1UaW9nYVBhcGVy
TmFtZTwva2V5PgoJCQkJCTxzdHJpbmc+aXNvLWE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBw
bGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+
CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50
LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29t
LmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpv
YnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5
PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBh
Z2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVh
bD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzgzPC9yZWFs
PgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4K
CQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQu
UGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29t
LmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpv
YnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5
PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBh
Z2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJl
YWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwvcmVh
bD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBw
bGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+
CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50
LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5w
cmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8
L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJ
CQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8u
UE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPmlzby1hNDwvc3RyaW5nPgoJCQkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9p
bnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJ
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20u
YXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5p
dGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUu
cHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJ
CQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+
NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwv
aW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBw
bGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJ
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNv
bS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJCQkJPGFycmF5
PgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJl
YWw+ODI0PC9yZWFsPgoJCQkJCQk8cmVhbD41Nzc8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+
MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20u
YXBwbGUucHJpbnQuUGFwZXJJbmZvLnBwZC5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5h
cHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0
ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5w
cmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5BNDwvc3Ry
aW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJ
CQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4K
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJpbmc+
MDAuMjA8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQudHlwZTwva2V5PgoJ
CTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mb1RpY2tldDwvc3RyaW5nPgoJPC9kaWN0
PgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCTxzdHJpbmc+
MDAuMjA8L3N0cmluZz4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+Cgk8
c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0VGlja2V0PC9zdHJpbmc+CjwvZGljdD4K
PC9wbGlzdD4KADhCSU0D7QAAAAAAEABIAk4AAQACAEgCTgABAAI4QklNBCYAAAAAAA4AAAAAAAAA
AAAAP4AAADhCSU0EDQAAAAAABAAAAB44QklNBBkAAAAAAAQAAAAeOEJJTQPzAAAAAAAJAAAAAAAA
AAABADhCSU0ECgAAAAAAAQAAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYA
AQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAt
AAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP//////
//////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA////////
/////////////////////wPoAAA4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAA
AAAEAAAAADhCSU0EGgAAAAADUQAAAAYAAAAAAAAAAAAAABYAAAAaAAAADgBpAGMAbwBuAHQAZQBj
AGgAbgBvAHIAYQB0AGkAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAABoAAAAWAAAA
AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZi
b3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAA
AAAAAAAAQnRvbWxvbmcAAAAWAAAAAFJnaHRsb25nAAAAGgAAAAZzbGljZXNWbExzAAAAAU9iamMA
AAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAA
AAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51
bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAA
AABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAFgAAAABSZ2h0bG9u
ZwAAABoAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEA
AAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRU
RVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQA
AAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9y
VHlwZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAA
AAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRP
dXRzZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAAAAQAAAABOEJJ
TQQMAAAAAAMgAAAAAQAAABoAAAAWAAAAUAAABuAAAAMEABgAAf/Y/+AAEEpGSUYAAQIAAEgASAAA
/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUY
ExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4O
FBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAW
ABoDASIAAhEBAxEB/90ABAAC/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEB
AQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGB
MgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NG
J5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1
AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1Sj
F2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oA
DAMBAAIRAxEAPwD03J6jgYjgzKyK6XOEgWODSR4+5EpyKL6xbRY2yt30XtIIMeYQ8/GxMnFsqzGB
9DmneHdgPzv5LmrlOk0VdUyvsHULTdjdPc5uEC0tfcyXbXW3/n11sZ/Ns2f8ImkkEDu2ceHHPFKf
FKJx/Ppx3CXy+38v6Xzep6t2fhsym4b7mtyXt3tqJhxBJHt/e+irCwMDp1Nn1iyM1mz0cKtmLjVt
/MdG+2WfmbN3t/41b6Vmtuv4K9rDx8PFL+a4/wDq/B7vB/d/Q/vv/9D1VN7fJfKySSn6oGyTETPu
jmY7qS+VUklP/9k4QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMA
aABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTADMAAAABADhCSU0E
BgAAAAAABwAIAQEAAQEA/+EPLGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0
IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4
bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYg
NDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6MTM6NDMgICAgICAgICI+IDxyZGY6UkRGIHht
bG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxy
ZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNv
bS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4
bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5z
OnhhcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczp0aWZmPSJodHRw
Oi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNv
bS9leGlmLzEuMC8iIHhhcDpDcmVhdGVEYXRlPSIyMDA5LTA1LTA3VDEwOjU2OjMwKzAyOjAwIiB4
YXA6TW9kaWZ5RGF0ZT0iMjAwOS0wNS0wN1QxMDo1NjozMCswMjowMCIgeGFwOk1ldGFkYXRhRGF0
ZT0iMjAwOS0wNS0wN1QxMDo1NjozMCswMjowMCIgeGFwOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90
b3Nob3AgQ1MzIE1hY2ludG9zaCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6Q29s
b3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0iaU1hYyIgcGhvdG9zaG9wOkhpc3Rvcnk9
IiIgeGFwTU06SW5zdGFuY2VJRD0idXVpZDpGMzUwNERGMTg3M0NERTExODBGM0YwNDRFOEI3NzVF
MiIgeGFwTU06RG9jdW1lbnRJRD0idXVpZDpGMjUwNERGMTg3M0NERTExODBGM0YwNDRFOEI3NzVF
MiIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iNzIwMDkwLzEwMDAwIiB0
aWZmOllSZXNvbHV0aW9uPSI3MjAwOTAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIHRp
ZmY6TmF0aXZlRGlnZXN0PSIyNTYsMjU3LDI1OCwyNTksMjYyLDI3NCwyNzcsMjg0LDUzMCw1MzEs
MjgyLDI4MywyOTYsMzAxLDMxOCwzMTksNTI5LDUzMiwzMDYsMjcwLDI3MSwyNzIsMzA1LDMxNSwz
MzQzMjs5NTUyOTVGOEE4N0MyREQ4Qjk4RDY1QzZDOUQ1N0E0MSIgZXhpZjpQaXhlbFhEaW1lbnNp
b249IjI2IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjIiIGV4aWY6Q29sb3JTcGFjZT0iLTEiIGV4
aWY6TmF0aXZlRGlnZXN0PSIzNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2
MywzNzUxMCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwz
NDg1NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4
NSwzNzM4NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0
MTQ5NSw0MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5
MCw0MTk5MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4
LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7
MTFGNzBDRDYyMTlEQTFBMjM0MzQ3Nzk2MEEzRDA0MEUiPiA8eGFwTU06RGVyaXZlZEZyb20gcmRm
OnBhcnNlVHlwZT0iUmVzb3VyY2UiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94
OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iD9hJQ0NfUFJPRklMRQABAQAAD8hhcHBsAgAAAG1u
dHJSR0IgWFlaIAfZAAEAAQAOABUAI2Fjc3BBUFBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2
1gABAAAAANMtYXBwbKIh0gAx35O9lGXW+qoUr+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAADnJYWVoAAAEsAAAAFGdYWVoAAAFAAAAAFGJYWVoAAAFUAAAAFHd0cHQAAAFoAAAAFGNoYWQA
AAF8AAAALHJUUkMAAAGoAAAADmdUUkMAAAG4AAAADmJUUkMAAAHIAAAADnZjZ3QAAAHYAAAGEm5k
aW4AAAfsAAAGPmRlc2MAAA4sAAAAX2RzY20AAA6MAAAA8G1tb2QAAA98AAAAKGNwcnQAAA+kAAAA
JFhZWiAAAAAAAAB3mwAAPioAAAFkWFlaIAAAAAAAAFm4AACt1QAAGQhYWVogAAAAAAAAJYIAABQc
AAC4uVhZWiAAAAAAAADzUgABAAAAARbPc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeSAAD9kf//+6L/
//2jAAAD3AAAwGxjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHN
AAB2Y2d0AAAAAAAAAAAAAwEAAAIAAAAQADgAdADCATIB2gK0A74E9AZxCBAJ6wvmDfYQFxJGFGkW
hxiVGp0cox6pILEiuyTPJuQo7ir8LQgvFDEOMwY0+TbcOLQ6fTxEPfQ/n0FHQtREVEWpRwNIVUmp
SvhMQU2KTstQDFFLUoRTu1TuVh9XT1iAWa5a21wHXTVeXV+QYMJh72MbZEVlamaKZ6loxGncavJs
Bm0YbitvOnBKcV5yb3N/dJN1o3aod6Z4o3mgep57nXybfZl+mH+bgJ2BoYKmg6+Eu4XGhtaH6Ij9
ihGLJYw9jVeObo+IkKCRvpLZk/SVEZYsl0SYW5ltmn+bk5ybnaeerp+xoLOhsaKso7KksKWzprCn
r6ioqZ6qlquHrHitZa5SrzywI7EIse2y0bOwtJC1crZXt0O4Mrkgug66+rvkvMu9sL6Uv3fAWcE7
whzC+8PcxLzFncZ9x2DIQskdyevKp8tizBzM182TzlDPDc/L0IzRTtIR0tfTntRm1S/V+9bF15PY
Y9ku2e7alds72+Hcjd063efemN9J3/zgseFl4hriz+OC5DXk6OWX5kbm9Oee6DTovOk76bjqNeqz
6zLrsewz7LbtOu2/7kXuzO9U793waPDz8X3yCPKU8yHzsvRE9Nf1aPX59oz3H/ex+ET42flv+gX6
nfs4+9X8c/0T/bf+W/8A/3///wAAAA8ANABrALQBEQGmAloDNwRNBaIHJQjfCs8M0g7pEQUTGRUm
FxwZBhrnHNMetSCjIpMkhCZuKGAqSSw1LhMv6zG8M4I1PDboOJA6KTu2PUM+tUAaQVxCoEPdRRlG
VEeFSLVJ4ksMTDJNVE50T49QqFHAUtdT7VUBVhJXJ1g6WV5agluiXMFd3175YBBhJmI4Y0hkVWVi
ZmpneGh/aYpqlGufbKlttW68b7ZwqHGYcoZzdXRndVd2SHc5eCx5IXoWewx8BX0Afft++X/7gP2B
/4MAhAGFAIX+hv6IAIkGig2LFIwejSmONI8+kEWRTZJWk1qUXpVgll+XXJhWmVCaUJtNnEudSJ5D
nzygM6EpohyjDaP8pOul2abBp6ioj6l2qlerOqwdrQSt9K7nr9uwzrG/sq+znLSItXO2XbdHuDC5
GLn/uua7zby1vZu+hL9rwE/BLMIAwtDDpMR0xUTGFMbkx7XIhslXyinK+8vOzKHNdM5Izx3P89DM
0aPSc9M+1AfUztWc1mjXNdgB2M3Zm9pn2zLb/NzE3YneTd8P38/gjeFJ4gLiuuNx5Cjk4OWS5kXm
9+el6FLo/+mp6lHq+Ouc7D/s4e2D7iTuxe9l8AbwrvFo8i3y9fO49Hz1P/YA9rz3d/gw+Of5mvpL
+vv7qfxW/QH9rf5X/v//f///AAAADQAuAGAAoQDxAW4CBQLJA7EExgX7B14I2gprDAkNqQ9KEOQS
dRP5FYIXBxiLGhYbpR06HsQgTiHaI2Mk5yZiJ9kpSSqvLAktYi6qL+0xMDJdM300iDWQNpQ3lziX
OZM6jDuBPHY9aD5XP0RALkEVQfxC4UPHRKpFjUZxR1NISUk/SjJLJkwZTQlN+E7lT9JQvlGqUpVT
f1RsVVdWRFczWCFZD1n/WulbxFyVXWReMV8AX89gn2FuYj1jDWPeZK5lgGZUZyhn/GjTaa1qh2tf
bDVtA23NbpNvXHAmcPNxwXKPc190L3T+dct2lndgeCl47nmxenN7LnvofKN9Zn5RfzuAJoEQgfaC
2YO6hJqFdoZQhymIAIjXiauKfotSjCWM943Jjp6PdJBakUKSKZMPk/SU2JW7lpyXfJhdmT6aIZsE
m+iczZ20np2fh6B0oWKiSqMlo/WkwKWQpl6nLqgAqNKpqKqCq16sPK0ergKu6K/PsL2xp7KWs4m0
eLVatjG3BLfYuLS5kbpwu1K8N70evge+8b/bwMXBrcKWw33EYsVGxifHBsfnyNnJysrCy7PMqc2d
zpDPgtB30WrSXNNO1D/VMdYh1xLYBNj02ePa1NvH3ODeBt8w4Fzhj+LL5BPlaObK6Efp1Ot+7Tzv
F/EP8xz1RPeH+dz8P/6T//8AAG5kaW4AAAAAAAAGNgAApfAAAFcDAABKKQAAmlEAACYYAAAS9QAA
UA0AAFQ5AALUegACfXAAAauFAAMBAAACAAAAMQBSAG4AiAChALcAzgDkAPkBDgEjATgBTQFjAXgB
jwGlAbwB1AHsAgYCHwI6AlYCcgKQAq0CzALrAwsDKwNMA20DjwOxA9MD9gQZBD0EYgSIBK4E1AT7
BSMFSwV0BZ8FygX2BiMGUAZ/Bq8G4QcTB0gHfge0B+wIJwhjCKAI3wkeCWIJqAnxCkQKlwrrC0ML
mgv0DFAMrw0ODXEN1g48DqQPDw98D+sQXRDREUYRvBI1Eq8TLBOqFCgUqxUqFasWLha1Fz0XxxhV
GOcZehoRGqsbSBvnHIodLh3UHn4fKB/SIH8hLyHdIo4jSSQMJNElmSZiJysn9yjFKZQqYisyLAIs
1C2kLnMvRTAVMOQxszKDM1Y0KTT5Ncw2ojd3OE85Izn8OtU7sDyLPWo+TD8xQBxBB0HyQulD3kTZ
RdpG3UfmSPVJ+UsITBNNJU44T1JQclGSUrxT6FUbVlBXi1jPWhVbXFyuXgFfU2ChYeNjKmRxZb9n
EGhoacVrJ2yLbfRvX3DQckBztXUpdqB4FXmOeyZ88H7BgJaCZ4Q9hhCH3omui3iNQY8MkM+SmZRc
lhyX/ZoynHKenqDLovClE6czqVSreq2or9iyFrRctra5q7ztwCnDYcaHyanMxM/a0unV/tkT3A/f
COIM5Q3oFesW7hLxB/Pr9sn5k/xe//8AAAA1AFoAewCYALIAygDiAPkBDwEkAToBUAFmAXwBkwGq
AcIB2wH0Ag4CKQJGAmMCggKhAsIC4wMEAyYDSgNtA5EDtQPaA/8EJQRMBHQEnATEBO4FGAVDBW4F
mwXJBfgGKAZZBosGvwb0BysHZAeeB9kIFghWCJgI2gkeCWcJsgoCClsKswsPC20LzAwtDJIM+Q1i
Dc4OPA6tDyEPlxAQEI0RCxGLEg4SkxMaE6UULhS7FUAVxxZSFt8XbRf+GJMZKxnEGmIbAhumHEsc
9R2dHkse+R+oIFkhDCHAInUjNiQDJNMlpyZ8J1EoKSkDKd4quSuVLHMtUS4uLwwv6zDIMaUyhDNm
NEk1LzYZNwM37jjXOb86qjuUPH49aT5WP0dAO0EvQiNDIUQdRR5GJUcuSD1JTEpWS2hMd02MTqNP
wFDgUgRTLVRbVYxWv1f8WT1agFvGXRdeZV+3YPliOGN4ZLlmAWdKaJpp7mtFbJ9t/G9bcMFyJnOQ
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
H//Z

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/icongoogle.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QR2RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp
AAQAAAABAAAApAAAANAACvzaAAAnEAAK/NoAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv
c2gAMjAwOTowNTowNyAxMDo1ODoxOQAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAFqADAAQAAAAB
AAAAFgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAANAAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAFgAWAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9Lycx9OQyiuoWF9b7S4uDQGsNbD2d/pVR/5xUgBxa0VuiLi5
4qMnaP1k0eh9L/hFV+txtbS51Qc7bjWOsaydxrF2G7IiP+B3rQv6n0/H6W3OaDdgBgeH0tD2isDd
6kfR9OtrVIcXohIWeO40CN4/4MmK5GUhdcPgmqzrLKbXCmLabBUa92hJ2a79v7tv7qSrYlg9LNt1
2/ag+O8bcdySguVb/wArbXtDiqzt/wBxx2//0PScmqmzMqJufTeKrNoaGkFm6r1N3q12M+n6Sxhj
/VHc7blY87zvgY8bp9279Dt+kvnpJSQr/WbfoWxyqz/6E/TdFGOKshleRYXG8G20hu4Wfova39F6
W3+b/wAGkvmRJQaV0/kWx+l+nt9fkf/Z/+0hIlBob3Rvc2hvcCAzLjAAOEJJTQQlAAAAAAAQAAAA
AAAAAAAAAAAAAAAAADhCSU0D6gAAAAAX/zw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+CjwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9F
TiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgo8cGxp
c3QgdmVyc2lvbj0iMS4wIj4KPGRpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0
LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj
a2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4K
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJ
CQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1Ib3Jpem9udGFs
UmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
Y2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4K
CQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9y
aWVudGF0aW9uPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3Jl
YXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0
PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+
CgkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwv
YXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGlu
Zzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tl
eT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxr
ZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9rZXk+CgkJCQk8cmVhbD4x
PC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJ
CQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8
a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxSZXM8L2tleT4KCTxkaWN0
PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5j
b20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5w
cmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxSZXM8L2tleT4KCQkJCTxyZWFsPjcyPC9yZWFsPgoJ
CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVn
ZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5h
cHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxTY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFw
cGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVt
QXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQu
UGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2Vy
PjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBw
bGUucHJpbnQuc3ViVGlja2V0LnBhcGVyX2luZm9fdGlja2V0PC9rZXk+Cgk8ZGljdD4KCQk8a2V5
PlBNUFBEUGFwZXJDb2RlTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0
cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8
YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PlBNUFBEUGFwZXJDb2RlTmFtZTwva2V5PgoJCQkJ
CTxzdHJpbmc+QTQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3Rh
dGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9h
cnJheT4KCQk8L2RpY3Q+CgkJPGtleT5QTVRpb2dhUGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29t
LmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
aXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+UE1UaW9nYVBh
cGVyTmFtZTwva2V5PgoJCQkJCTxzdHJpbmc+aXNvLWE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20u
YXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVn
ZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnBy
aW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxl
LmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFy
cmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50
LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8
cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzgzPC9y
ZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5h
cHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdl
cj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJp
bnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxl
LmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFy
cmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50
LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJ
PHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwv
cmVhbD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20u
YXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVn
ZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnBy
aW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNr
ZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5
PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlcklu
Zm8uUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPmlzby1hNDwvc3RyaW5nPgoJCQkJCTxr
ZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4w
PC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5h
cHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQk8ZGljdD4K
CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5j
b20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
dC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBw
bGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5
PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJl
YWw+NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+
MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20u
YXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0
PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5n
PmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj
a2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5h
cHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJCQkJPGFy
cmF5PgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJ
PHJlYWw+ODI0PC9yZWFsPgoJCQkJCQk8cmVhbD41Nzc8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJ
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVn
ZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5j
b20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLnBwZC5QTVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJ
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNv
bS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5BNDwv
c3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4K
CQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGlj
dD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJp
bmc+MDAuMjA8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQudHlwZTwva2V5
PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mb1RpY2tldDwvc3RyaW5nPgoJPC9k
aWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCTxzdHJp
bmc+MDAuMjA8L3N0cmluZz4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+
Cgk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0VGlja2V0PC9zdHJpbmc+CjwvZGlj
dD4KPC9wbGlzdD4KADhCSU0D7QAAAAAAEABIAk4AAQACAEgCTgABAAI4QklNBCYAAAAAAA4AAAAA
AAAAAAAAP4AAADhCSU0EDQAAAAAABAAAAB44QklNBBkAAAAAAAQAAAAeOEJJTQPzAAAAAAAJAAAA
AAAAAAABADhCSU0ECgAAAAAAAQAAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAv
ZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAA
AQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP//
//////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA////
/////////////////////////wPoAAA4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQe
AAAAAAAEAAAAADhCSU0EGgAAAAADSwAAAAYAAAAAAAAAAAAAABYAAAAWAAAACwBpAGMAbwBuAG0A
ZQBuAGUAYQBtAGUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAABYAAAAWAAAAAAAA
AAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3Vu
ZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAA
AAAAQnRvbWxvbmcAAAAWAAAAAFJnaHRsb25nAAAAFgAAAAZzbGljZXNWbExzAAAAAU9iamMAAAAB
AAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAG
b3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAA
AApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABU
b3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAFgAAAABSZ2h0bG9uZwAA
ABYAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAA
AAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhU
AAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJ
dmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlw
ZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAA
AApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRz
ZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAAAAQAAAABOEJJTQQM
AAAAAANcAAAAAQAAABYAAAAWAAAARAAABdgAAANAABgAAf/Y/+AAEEpGSUYAAQIAAEgASAAA/+0A
DEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMV
ExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQO
Dg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAWABYD
ASIAAhEBAxEB/90ABAAC/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEB
AQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYU
kaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5Sk
hbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQAC
EQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RF
VTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMB
AAIRAxEAPwD0vJzH05DKK6hYX1vtLi4NAaw1sPZ3+lVH/nFSAHFrRW6IuLnioydo/WTR6H0v+EVX
63G1tLnVBztuNY6xrJ3GsXYbsiI/4HetC/qfT8fpbc5oN2AGB4fS0PaKwN3qR9H062tUhxeiEhZ4
7jQI3j/gyYrkZSF1w+CarOssptcKYtpsFRr3aEnZrv2/u2/upKtiWD0s23Xb9qD47xtx3JKC5Vv/
ACtte0OKrO3/AHHHb//Q9JyaqbMyom59N4qs2hoaQWbqvU3erXYz6fpLGGP9UdztuVjzvO+Bjxun
3bv0O36S+eklJCv9Zt+hbHKrP/oT9N0UY4qyGV5FhcbwbbSG7hZ+i9rf0Xpbf5v/AAaS+ZElBpXT
+RbH6X6e31+R/9k4QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMA
aABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTADMAAAABADhCSU0E
BgAAAAAABwAIAQEAAQEA/+EPLGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0
IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4
bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYg
NDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6MTM6NDMgICAgICAgICI+IDxyZGY6UkRGIHht
bG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxy
ZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNv
bS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4
bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5z
OnhhcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczp0aWZmPSJodHRw
Oi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNv
bS9leGlmLzEuMC8iIHhhcDpDcmVhdGVEYXRlPSIyMDA5LTA1LTA3VDEwOjU4OjE5KzAyOjAwIiB4
YXA6TW9kaWZ5RGF0ZT0iMjAwOS0wNS0wN1QxMDo1ODoxOSswMjowMCIgeGFwOk1ldGFkYXRhRGF0
ZT0iMjAwOS0wNS0wN1QxMDo1ODoxOSswMjowMCIgeGFwOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90
b3Nob3AgQ1MzIE1hY2ludG9zaCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6Q29s
b3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0iaU1hYyIgcGhvdG9zaG9wOkhpc3Rvcnk9
IiIgeGFwTU06SW5zdGFuY2VJRD0idXVpZDpEMDY1RDMwQzg4M0NERTExODBGM0YwNDRFOEI3NzVF
MiIgeGFwTU06RG9jdW1lbnRJRD0idXVpZDpDRjY1RDMwQzg4M0NERTExODBGM0YwNDRFOEI3NzVF
MiIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iNzIwMDkwLzEwMDAwIiB0
aWZmOllSZXNvbHV0aW9uPSI3MjAwOTAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIHRp
ZmY6TmF0aXZlRGlnZXN0PSIyNTYsMjU3LDI1OCwyNTksMjYyLDI3NCwyNzcsMjg0LDUzMCw1MzEs
MjgyLDI4MywyOTYsMzAxLDMxOCwzMTksNTI5LDUzMiwzMDYsMjcwLDI3MSwyNzIsMzA1LDMxNSwz
MzQzMjtDNEI1M0ZBNEZDMjgzNEJCMEZCRDJFM0ZGMjg3NzE2MiIgZXhpZjpQaXhlbFhEaW1lbnNp
b249IjIyIiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjIiIGV4aWY6Q29sb3JTcGFjZT0iLTEiIGV4
aWY6TmF0aXZlRGlnZXN0PSIzNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2
MywzNzUxMCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwz
NDg1NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4
NSwzNzM4NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0
MTQ5NSw0MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5
MCw0MTk5MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4
LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7
NUJGN0RGMTREREI1NjgyMjg5QjZGMDIxODNCNTcyMUEiPiA8eGFwTU06RGVyaXZlZEZyb20gcmRm
OnBhcnNlVHlwZT0iUmVzb3VyY2UiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94
OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iD9hJQ0NfUFJPRklMRQABAQAAD8hhcHBsAgAAAG1u
dHJSR0IgWFlaIAfZAAEAAQAOABUAI2Fjc3BBUFBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2
1gABAAAAANMtYXBwbKIh0gAx35O9lGXW+qoUr+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAADnJYWVoAAAEsAAAAFGdYWVoAAAFAAAAAFGJYWVoAAAFUAAAAFHd0cHQAAAFoAAAAFGNoYWQA
AAF8AAAALHJUUkMAAAGoAAAADmdUUkMAAAG4AAAADmJUUkMAAAHIAAAADnZjZ3QAAAHYAAAGEm5k
aW4AAAfsAAAGPmRlc2MAAA4sAAAAX2RzY20AAA6MAAAA8G1tb2QAAA98AAAAKGNwcnQAAA+kAAAA
JFhZWiAAAAAAAAB3mwAAPioAAAFkWFlaIAAAAAAAAFm4AACt1QAAGQhYWVogAAAAAAAAJYIAABQc
AAC4uVhZWiAAAAAAAADzUgABAAAAARbPc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeSAAD9kf//+6L/
//2jAAAD3AAAwGxjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHN
AAB2Y2d0AAAAAAAAAAAAAwEAAAIAAAAQADgAdADCATIB2gK0A74E9AZxCBAJ6wvmDfYQFxJGFGkW
hxiVGp0cox6pILEiuyTPJuQo7ir8LQgvFDEOMwY0+TbcOLQ6fTxEPfQ/n0FHQtREVEWpRwNIVUmp
SvhMQU2KTstQDFFLUoRTu1TuVh9XT1iAWa5a21wHXTVeXV+QYMJh72MbZEVlamaKZ6loxGncavJs
Bm0YbitvOnBKcV5yb3N/dJN1o3aod6Z4o3mgep57nXybfZl+mH+bgJ2BoYKmg6+Eu4XGhtaH6Ij9
ihGLJYw9jVeObo+IkKCRvpLZk/SVEZYsl0SYW5ltmn+bk5ybnaeerp+xoLOhsaKso7KksKWzprCn
r6ioqZ6qlquHrHitZa5SrzywI7EIse2y0bOwtJC1crZXt0O4Mrkgug66+rvkvMu9sL6Uv3fAWcE7
whzC+8PcxLzFncZ9x2DIQskdyevKp8tizBzM182TzlDPDc/L0IzRTtIR0tfTntRm1S/V+9bF15PY
Y9ku2e7alds72+Hcjd063efemN9J3/zgseFl4hriz+OC5DXk6OWX5kbm9Oee6DTovOk76bjqNeqz
6zLrsewz7LbtOu2/7kXuzO9U793waPDz8X3yCPKU8yHzsvRE9Nf1aPX59oz3H/ex+ET42flv+gX6
nfs4+9X8c/0T/bf+W/8A/3///wAAAA8ANABrALQBEQGmAloDNwRNBaIHJQjfCs8M0g7pEQUTGRUm
FxwZBhrnHNMetSCjIpMkhCZuKGAqSSw1LhMv6zG8M4I1PDboOJA6KTu2PUM+tUAaQVxCoEPdRRlG
VEeFSLVJ4ksMTDJNVE50T49QqFHAUtdT7VUBVhJXJ1g6WV5agluiXMFd3175YBBhJmI4Y0hkVWVi
ZmpneGh/aYpqlGufbKlttW68b7ZwqHGYcoZzdXRndVd2SHc5eCx5IXoWewx8BX0Afft++X/7gP2B
/4MAhAGFAIX+hv6IAIkGig2LFIwejSmONI8+kEWRTZJWk1qUXpVgll+XXJhWmVCaUJtNnEudSJ5D
nzygM6EpohyjDaP8pOul2abBp6ioj6l2qlerOqwdrQSt9K7nr9uwzrG/sq+znLSItXO2XbdHuDC5
GLn/uua7zby1vZu+hL9rwE/BLMIAwtDDpMR0xUTGFMbkx7XIhslXyinK+8vOzKHNdM5Izx3P89DM
0aPSc9M+1AfUztWc1mjXNdgB2M3Zm9pn2zLb/NzE3YneTd8P38/gjeFJ4gLiuuNx5Cjk4OWS5kXm
9+el6FLo/+mp6lHq+Ouc7D/s4e2D7iTuxe9l8AbwrvFo8i3y9fO49Hz1P/YA9rz3d/gw+Of5mvpL
+vv7qfxW/QH9rf5X/v//f///AAAADQAuAGAAoQDxAW4CBQLJA7EExgX7B14I2gprDAkNqQ9KEOQS
dRP5FYIXBxiLGhYbpR06HsQgTiHaI2Mk5yZiJ9kpSSqvLAktYi6qL+0xMDJdM300iDWQNpQ3lziX
OZM6jDuBPHY9aD5XP0RALkEVQfxC4UPHRKpFjUZxR1NISUk/SjJLJkwZTQlN+E7lT9JQvlGqUpVT
f1RsVVdWRFczWCFZD1n/WulbxFyVXWReMV8AX89gn2FuYj1jDWPeZK5lgGZUZyhn/GjTaa1qh2tf
bDVtA23NbpNvXHAmcPNxwXKPc190L3T+dct2lndgeCl47nmxenN7LnvofKN9Zn5RfzuAJoEQgfaC
2YO6hJqFdoZQhymIAIjXiauKfotSjCWM943Jjp6PdJBakUKSKZMPk/SU2JW7lpyXfJhdmT6aIZsE
m+iczZ20np2fh6B0oWKiSqMlo/WkwKWQpl6nLqgAqNKpqKqCq16sPK0ergKu6K/PsL2xp7KWs4m0
eLVatjG3BLfYuLS5kbpwu1K8N70evge+8b/bwMXBrcKWw33EYsVGxifHBsfnyNnJysrCy7PMqc2d
zpDPgtB30WrSXNNO1D/VMdYh1xLYBNj02ePa1NvH3ODeBt8w4Fzhj+LL5BPlaObK6Efp1Ot+7Tzv
F/EP8xz1RPeH+dz8P/6T//8AAG5kaW4AAAAAAAAGNgAApfAAAFcDAABKKQAAmlEAACYYAAAS9QAA
UA0AAFQ5AALUegACfXAAAauFAAMBAAACAAAAMQBSAG4AiAChALcAzgDkAPkBDgEjATgBTQFjAXgB
jwGlAbwB1AHsAgYCHwI6AlYCcgKQAq0CzALrAwsDKwNMA20DjwOxA9MD9gQZBD0EYgSIBK4E1AT7
BSMFSwV0BZ8FygX2BiMGUAZ/Bq8G4QcTB0gHfge0B+wIJwhjCKAI3wkeCWIJqAnxCkQKlwrrC0ML
mgv0DFAMrw0ODXEN1g48DqQPDw98D+sQXRDREUYRvBI1Eq8TLBOqFCgUqxUqFasWLha1Fz0XxxhV
GOcZehoRGqsbSBvnHIodLh3UHn4fKB/SIH8hLyHdIo4jSSQMJNElmSZiJysn9yjFKZQqYisyLAIs
1C2kLnMvRTAVMOQxszKDM1Y0KTT5Ncw2ojd3OE85Izn8OtU7sDyLPWo+TD8xQBxBB0HyQulD3kTZ
RdpG3UfmSPVJ+UsITBNNJU44T1JQclGSUrxT6FUbVlBXi1jPWhVbXFyuXgFfU2ChYeNjKmRxZb9n
EGhoacVrJ2yLbfRvX3DQckBztXUpdqB4FXmOeyZ88H7BgJaCZ4Q9hhCH3omui3iNQY8MkM+SmZRc
lhyX/ZoynHKenqDLovClE6czqVSreq2or9iyFrRctra5q7ztwCnDYcaHyanMxM/a0unV/tkT3A/f
COIM5Q3oFesW7hLxB/Pr9sn5k/xe//8AAAA1AFoAewCYALIAygDiAPkBDwEkAToBUAFmAXwBkwGq
AcIB2wH0Ag4CKQJGAmMCggKhAsIC4wMEAyYDSgNtA5EDtQPaA/8EJQRMBHQEnATEBO4FGAVDBW4F
mwXJBfgGKAZZBosGvwb0BysHZAeeB9kIFghWCJgI2gkeCWcJsgoCClsKswsPC20LzAwtDJIM+Q1i
Dc4OPA6tDyEPlxAQEI0RCxGLEg4SkxMaE6UULhS7FUAVxxZSFt8XbRf+GJMZKxnEGmIbAhumHEsc
9R2dHkse+R+oIFkhDCHAInUjNiQDJNMlpyZ8J1EoKSkDKd4quSuVLHMtUS4uLwwv6zDIMaUyhDNm
NEk1LzYZNwM37jjXOb86qjuUPH49aT5WP0dAO0EvQiNDIUQdRR5GJUcuSD1JTEpWS2hMd02MTqNP
wFDgUgRTLVRbVYxWv1f8WT1agFvGXRdeZV+3YPliOGN4ZLlmAWdKaJpp7mtFbJ9t/G9bcMFyJnOQ
dPl2ZnfReUF6u3xMfex/h4EtgtKEfYYnh9KJgYsvjN+OkJBCkfSTqJVWlwqY1ZqsnIqeW6Azoguj
6qXEp6epjquArXuvfLGKs561xLfvuiO8Vr6dwObDQsWlyBfKl80mz8DSX9UH17baR9x83qrg5+Mm
5W/nyeou7KDvJfG19FH2+/mm/GD//wAAADsAZQCJAKoAyADmAQIBHgE6AVYBcwGQAa4BzQHtAg4C
MQJVAnsCowLLAvQDHwNLA3cDpAPRBAAELgRfBJEExAT3BSwFYgWZBdIGDQZJBocGxwcJB04Hlgfe
CCsIewjNCSAJegnYCkEKrQsdC5AMBQx/DPwNfg4CDooPFg+mEDoQ0hFtEgsSrBNSE/gUoxVCFeMW
iBcvF9gYhhk3GesaohtbHBcc1x2WHlkfHR/hIKghcSI5Iw8j+yTsJeIm2SfSKM8pzirOK9Es1i3a
LuAv6DDtMfQy/zQQNTA2XDeHOLI52zsGPDI9Xz6RP8xBCkJOQ51E80ZWR8JJHko7S2JMiE21TuhQ
IlFfUqZT8FVBVpRX71lPWq9cFF1+XuVgS2GXYudkOWWPZupoSGmsaxNsem3jb0twtnIfc4l08HZY
d7x5IXqUfCp91X93gSCCxYRqhgqHpIk9itCMYI3tj3uQ/5KKlA+Vj5cYmMKag5xHnfufrqFeowmk
saZWp/upoKtIrPWupLBXshCzz7WYt2S5DLq4vFm+Cb+wwV7DEMTDxnTIKsnjy6DNXc8d0OHSotRo
1jTX/NnD20ncw94537DhI+KN4+/lSeaa5+HpH+pM63Dsju2d7qfvqvCh8ZTye/Nh9EH1H/X19sn3
lfhf+Sf57Pqw+3H8M/zv/an+kv//AABkZXNjAAAAAAAAAAVpTWFjAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABtbHVjAAAAAAAAABIAAAAMbmJOTwAAAAgAAADocHRQVAAAAAgAAADoc3ZTRQAAAAgAAADo
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
VyIZnyNhni0EtHsIJuZQkI9RBJ6uPyiuCmVQ/9k=

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/iconmeneame.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QRoRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp
AAQAAAABAAAApAAAANAACvzaAAAnEAAK/NoAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv
c2gAMjAwOTowNTowNyAxMDo1Njo1MgAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAFqADAAQAAAAB
AAAAFgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAMyAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAFgAWAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9M6hlHExX3gBxaAGg9yTtCp3W9UxA22y6u1hn1A4BjW+EPnf
7vot9qnmNqv6nXj5MGkUlzGEwHPcdh/tNZ9FVMp9dDWVbLicext5FxDgWNPpFrPe7/SLN5nLK8k+
Iwhj9EDGUo8OSHqnKcIx4ZcXF8s/3G5hgKjGhKUvVLiiD6JemIjL9FPXm9QPSbcp4HrBw9M7dNks
92393bvSWpLdszpEykp/u2Sq+8T/AJr2/wDD4uL3/mYvejf81H5+P/B/zb//0PSeo/s70x9v27fz
ZmfPZs96o1f8297YifzfU9Tb/wCC+xfN6Szea/n/APwJ+j/P/wC6P5fuNzD/ADX/AII6/wA1/NP1
TokvlZJaTTf/2f/tIRBQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4
QklNA+oAAAAAF/88P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8IURPQ1RZ
UEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3
LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEu
MCI+CjxkaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxS
ZXM8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9r
ZXk+CgkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBw
bGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8
a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJ
PHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFn
PC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwv
ZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5
PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8
c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29t
LmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJCQkJPGludGVnZXI+
MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tl
eT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0
PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVNjYWxpbmc8L2tleT4KCTxkaWN0
PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5j
b20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5w
cmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxr
ZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8
L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUu
cHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5h
cHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRp
Y2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tl
eT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1h
dC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFw
cGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+
CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFn
ZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8
L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJ
PGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1W
ZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJ
CQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnN1YlRp
Y2tldC5wYXBlcl9pbmZvX3RpY2tldDwva2V5PgoJPGRpY3Q+CgkJPGtleT5QTVBQRFBhcGVyQ29k
ZU5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0
b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRp
Y3Q+CgkJCQkJPGtleT5QTVBQRFBhcGVyQ29kZU5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkE0PC9z
dHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJ
CQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0
PgoJCTxrZXk+UE1UaW9nYVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNr
ZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5
PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PlBNVGlvZ2FQYXBlck5hbWU8L2tleT4K
CQkJCQk8c3RyaW5nPmlzby1hNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
Y2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0
PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0
LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0
cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8
YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBN
QWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+MC4wPC9yZWFs
PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjc4MzwvcmVhbD4KCQkJCQkJPHJl
YWw+NTU5PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj
a2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+
CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQu
UE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0
cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8
YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBN
QWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwvcmVh
bD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD44MjQ8L3JlYWw+CgkJCQkJCTxy
ZWFsPjU3NzwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
Y2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0
PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8u
UE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJ
CQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNUGFwZXJOYW1l
PC9rZXk+CgkJCQkJPHN0cmluZz5pc28tYTQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5w
cmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJ
CTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFw
ZXJJbmZvLlBNVW5hZGp1c3RlZFBhZ2VSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFw
cGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRp
Y2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9r
ZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVy
SW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+
MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjc4MzwvcmVhbD4K
CQkJCQkJPHJlYWw+NTU5PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJ
CQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBh
cGVySW5mby5QTVVuYWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20u
YXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9i
dGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8
L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFw
ZXJJbmZvLlBNVW5hZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJl
YWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwvcmVh
bD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBw
bGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+
CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50
LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBw
bGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlj
a2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tl
eT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJ
bmZvLnBwZC5QTVBhcGVyTmFtZTwva2V5PgoJCQkJCTxzdHJpbmc+QTQ8L3N0cmluZz4KCQkJCQk8
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+
MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20u
YXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCQk8c3RyaW5nPjAwLjIwPC9zdHJp
bmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnR5cGU8L2tleT4KCQk8c3RyaW5nPmNv
bS5hcHBsZS5wcmludC5QYXBlckluZm9UaWNrZXQ8L3N0cmluZz4KCTwvZGljdD4KCTxrZXk+Y29t
LmFwcGxlLnByaW50LnRpY2tldC5BUElWZXJzaW9uPC9rZXk+Cgk8c3RyaW5nPjAwLjIwPC9zdHJp
bmc+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQudHlwZTwva2V5PgoJPHN0cmluZz5jb20u
YXBwbGUucHJpbnQuUGFnZUZvcm1hdFRpY2tldDwvc3RyaW5nPgo8L2RpY3Q+CjwvcGxpc3Q+CgA4
QklNA+0AAAAAABAASAJOAAEAAgBIAk4AAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklN
BA0AAAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoA
AAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAA
AAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4
QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////
////////A+gAAAAA/////////////////////////////wPoAAAAAP//////////////////////
//////8D6AAAOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklN
BBoAAAAAA0cAAAAGAAAAAAAAAAAAAAAWAAAAFgAAAAkAaQBjAG8AbgB5AGEAaABvAG8AAAABAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAABYAAAAWAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAA
AAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJj
dDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAAWAAAA
AFJnaHRsb25nAAAAFgAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAASAAAA
B3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxFU2xp
Y2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAAAElt
ZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVm
dGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAFgAAAABSZ2h0bG9uZwAAABYAAAADdXJsVEVYVAAAAAEA
AAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAAAQAA
AAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpBbGln
bmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAAAA9F
U2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNlQkdD
b2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAA
AAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAAAAA4QklNBCgA
AAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAAAAQAAAABOEJJTQQMAAAAAANOAAAAAQAAABYAAAAW
AAAARAAABdgAAAMyABgAAf/Y/+AAEEpGSUYAAQIAAEgASAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRv
YmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwM
EQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAWABYDASIAAhEBAxEB/90ABAAC/8QB
PwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJ
CgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwcl
klPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaW
prbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRSh
sUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0
lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwD0zqGUcTFfeAHF
oAaD3JO0Kndb1TEDbbLq7WGfUDgGNb4Q+d/u+i32qeY2q/qdePkwaRSXMYTAc9x2H+01n0VUyn10
NZVsuJx7G3kXEOBY0+kWs97v9Is3mcsryT4jCGP0QMZSjw5IeqcpwjHhlxcXyz/cbmGAqMaEpS9U
uKIPol6YiMv0U9eb1A9JtyngesHD0zt02Sz3bf3du9Jakt2zOkTKSn+7ZKr7xP8Amvb/AMPi4vf+
Zi96N/zUfn4/8H/Nv//Q9J6j+zvTH2/bt/NmZ89mz3qjV/zb3tiJ/N9T1Nv/AIL7F83pLN5r+f8A
/An6P8//ALo/l+43MP8ANf8Agjr/ADX80/VOiS+VklpNN//ZOEJJTQQhAAAAAABVAAAAAQEAAAAP
AEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0AG8A
cwBoAG8AcAAgAEMAUwAzAAAAAQA4QklNBAYAAAAAAAcACAEBAAEBAP/hDyxodHRwOi8vbnMuYWRv
YmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVT
ek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9
IkFkb2JlIFhNUCBDb3JlIDQuMS1jMDM2IDQ2LjI3NjcyMCwgTW9uIEZlYiAxOSAyMDA3IDIyOjEz
OjQzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
MDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxu
czp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVy
bC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUu
Y29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4YXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv
MS4wL21tLyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5z
OmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiB4YXA6Q3JlYXRlRGF0ZT0iMjAw
OS0wNS0wN1QxMDo1Njo1MiswMjowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDktMDUtMDdUMTA6NTY6
NTIrMDI6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDktMDUtMDdUMTA6NTY6NTIrMDI6MDAiIHhh
cDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRvc2giIGRjOmZvcm1hdD0i
aW1hZ2UvanBlZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9
ImlNYWMiIHBob3Rvc2hvcDpIaXN0b3J5PSIiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6Q0M2NUQz
MEM4ODNDREUxMTgwRjNGMDQ0RThCNzc1RTIiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6Q0I2NUQz
MEM4ODNDREUxMTgwRjNGMDQ0RThCNzc1RTIiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJl
c29sdXRpb249IjcyMDA5MC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDkwLzEwMDAwIiB0
aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5
LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIs
MzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7ODYzMzY2NkJFNkQzQzJDNzk0NjkxRjRDQTQ0
ODBGMjEiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIyMiIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjIy
IiBleGlmOkNvbG9yU3BhY2U9Ii0xIiBleGlmOk5hdGl2ZURpZ2VzdD0iMzY4NjQsNDA5NjAsNDA5
NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0MzQs
MzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzczNzksMzczODAsMzcz
ODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0ODYs
NDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5
ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUs
NDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIw
LDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzVCRjdERjE0RERCNTY4MjI4OUI2RjAyMTgzQjU3MjFB
Ij4gPHhhcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIi8+IDwvcmRmOkRl
c2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/4g/YSUND
X1BST0ZJTEUAAQEAAA/IYXBwbAIAAABtbnRyUkdCIFhZWiAH2QABAAEADgAVACNhY3NwQVBQTAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGyiIdIAMd+TvZRl1vqqFK/mAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5yWFlaAAABLAAAABRnWFlaAAABQAAAABRiWFla
AAABVAAAABR3dHB0AAABaAAAABRjaGFkAAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5i
VFJDAAAByAAAAA52Y2d0AAAB2AAABhJuZGluAAAH7AAABj5kZXNjAAAOLAAAAF9kc2NtAAAOjAAA
APBtbW9kAAAPfAAAAChjcHJ0AAAPpAAAACRYWVogAAAAAAAAd5sAAD4qAAABZFhZWiAAAAAAAABZ
uAAArdUAABkIWFlaIAAAAAAAACWCAAAUHAAAuLlYWVogAAAAAAAA81IAAQAAAAEWz3NmMzIAAAAA
AAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3VydgAAAAAAAAABAc0AAGN1cnYA
AAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAAAAMBAAACAAAAEAA4AHQAwgEy
AdoCtAO+BPQGcQgQCesL5g32EBcSRhRpFocYlRqdHKMeqSCxIrskzybkKO4q/C0ILxQxDjMGNPk2
3Di0On08RD30P59BR0LURFRFqUcDSFVJqUr4TEFNik7LUAxRS1KEU7tU7lYfV09YgFmuWttcB101
Xl1fkGDCYe9jG2RFZWpmimepaMRp3GrybAZtGG4rbzpwSnFecm9zf3STdaN2qHemeKN5oHqee518
m32Zfph/m4CdgaGCpoOvhLuFxobWh+iI/YoRiyWMPY1Xjm6PiJCgkb6S2ZP0lRGWLJdEmFuZbZp/
m5Ocm52nnq6fsaCzobGirKOypLCls6awp6+oqKmeqparh6x4rWWuUq88sCOxCLHtstGzsLSQtXK2
V7dDuDK5ILoOuvq75LzLvbC+lL93wFnBO8IcwvvD3MS8xZ3GfcdgyELJHcnryqfLYswczNfNk85Q
zw3Py9CM0U7SEdLX057UZtUv1fvWxdeT2GPZLtnu2pXbO9vh3I3dOt3n3pjfSd/84LHhZeIa4s/j
guQ15Ojll+ZG5vTnnug06LzpO+m46jXqs+sy67HsM+y27Trtv+5F7szvVO/d8Gjw8/F98gjylPMh
87L0RPTX9Wj1+faM9x/3sfhE+Nn5b/oF+p37OPvV/HP9E/23/lv/AP9///8AAAAPADQAawC0AREB
pgJaAzcETQWiByUI3wrPDNIO6REFExkVJhccGQYa5xzTHrUgoyKTJIQmbihgKkksNS4TL+sxvDOC
NTw26DiQOik7tj1DPrVAGkFcQqBD3UUZRlRHhUi1SeJLDEwyTVROdE+PUKhRwFLXU+1VAVYSVydY
OlleWoJbolzBXd9e+WAQYSZiOGNIZFVlYmZqZ3hof2mKapRrn2ypbbVuvG+2cKhxmHKGc3V0Z3VX
dkh3OXgseSF6FnsMfAV9AH37fvl/+4D9gf+DAIQBhQCF/ob+iACJBooNixSMHo0pjjSPPpBFkU2S
VpNalF6VYJZfl1yYVplQmlCbTZxLnUieQ588oDOhKaIcow2j/KTrpdmmwaeoqI+pdqpXqzqsHa0E
rfSu56/bsM6xv7Kvs5y0iLVztl23R7gwuRi5/7rmu828tb2bvoS/a8BPwSzCAMLQw6TEdMVExhTG
5Me1yIbJV8opyvvLzsyhzXTOSM8dz/PQzNGj0nPTPtQH1M7VnNZo1zXYAdjN2ZvaZ9sy2/zcxN2J
3k3fD9/P4I3hSeIC4rrjceQo5ODlkuZF5vfnpehS6P/pqepR6vjrnOw/7OHtg+4k7sXvZfAG8K7x
aPIt8vXzuPR89T/2APa893f4MPjn+Zr6S/r7+6n8Vv0B/a3+V/7//3///wAAAA0ALgBgAKEA8QFu
AgUCyQOxBMYF+wdeCNoKawwJDakPShDkEnUT+RWCFwcYixoWG6UdOh7EIE4h2iNjJOcmYifZKUkq
rywJLWIuqi/tMTAyXTN9NIg1kDaUN5c4lzmTOow7gTx2PWg+Vz9EQC5BFUH8QuFDx0SqRY1GcUdT
SElJP0oySyZMGU0JTfhO5U/SUL5RqlKVU39UbFVXVkRXM1ghWQ9Z/1rpW8RclV1kXjFfAF/PYJ9h
bmI9Yw1j3mSuZYBmVGcoZ/xo02mtaodrX2w1bQNtzW6Tb1xwJnDzccFyj3NfdC90/nXLdpZ3YHgp
eO55sXpzey576HyjfWZ+UX87gCaBEIH2gtmDuoSahXaGUIcpiACI14mrin6LUowljPeNyY6ej3SQ
WpFCkimTD5P0lNiVu5acl3yYXZk+miGbBJvonM2dtJ6dn4egdKFiokqjJaP1pMClkKZepy6oAKjS
qaiqgqterDytHq4Cruivz7C9saeylrOJtHi1WrYxtwS32Li0uZG6cLtSvDe9Hr4HvvG/28DFwa3C
lsN9xGLFRsYnxwbH58jZycrKwsuzzKnNnc6Qz4LQd9Fq0lzTTtQ/1THWIdcS2ATY9Nnj2tTbx9zg
3gbfMOBc4Y/iy+QT5WjmyuhH6dTrfu087xfxD/Mc9UT3h/nc/D/+k///AABuZGluAAAAAAAABjYA
AKXwAABXAwAASikAAJpRAAAmGAAAEvUAAFANAABUOQAC1HoAAn1wAAGrhQADAQAAAgAAADEAUgBu
AIgAoQC3AM4A5AD5AQ4BIwE4AU0BYwF4AY8BpQG8AdQB7AIGAh8COgJWAnICkAKtAswC6wMLAysD
TANtA48DsQPTA/YEGQQ9BGIEiASuBNQE+wUjBUsFdAWfBcoF9gYjBlAGfwavBuEHEwdIB34HtAfs
CCcIYwigCN8JHgliCagJ8QpECpcK6wtDC5oL9AxQDK8NDg1xDdYOPA6kDw8PfA/rEF0Q0RFGEbwS
NRKvEywTqhQoFKsVKhWrFi4WtRc9F8cYVRjnGXoaERqrG0gb5xyKHS4d1B5+Hygf0iB/IS8h3SKO
I0kkDCTRJZkmYicrJ/coxSmUKmIrMiwCLNQtpC5zL0UwFTDkMbMygzNWNCk0+TXMNqI3dzhPOSM5
/DrVO7A8iz1qPkw/MUAcQQdB8kLpQ95E2UXaRt1H5kj1SflLCEwTTSVOOE9SUHJRklK8U+hVG1ZQ
V4tYz1oVW1xcrl4BX1NgoWHjYypkcWW/ZxBoaGnFaydsi230b19w0HJAc7V1KXageBV5jnsmfPB+
wYCWgmeEPYYQh96Jrot4jUGPDJDPkpmUXJYcl/2aMpxynp6gy6LwpROnM6lUq3qtqK/Ysha0XLa2
uau87cApw2HGh8mpzMTP2tLp1f7ZE9wP3wjiDOUN6BXrFu4S8Qfz6/bJ+ZP8Xv//AAAANQBaAHsA
mACyAMoA4gD5AQ8BJAE6AVABZgF8AZMBqgHCAdsB9AIOAikCRgJjAoICoQLCAuMDBAMmA0oDbQOR
A7UD2gP/BCUETAR0BJwExATuBRgFQwVuBZsFyQX4BigGWQaLBr8G9AcrB2QHngfZCBYIVgiYCNoJ
HglnCbIKAgpbCrMLDwttC8wMLQySDPkNYg3ODjwOrQ8hD5cQEBCNEQsRixIOEpMTGhOlFC4UuxVA
FccWUhbfF20X/hiTGSsZxBpiGwIbphxLHPUdnR5LHvkfqCBZIQwhwCJ1IzYkAyTTJacmfCdRKCkp
AyneKrkrlSxzLVEuLi8ML+swyDGlMoQzZjRJNS82GTcDN+441zm/Oqo7lDx+PWk+Vj9HQDtBL0Ij
QyFEHUUeRiVHLkg9SUxKVktoTHdNjE6jT8BQ4FIEUy1UW1WMVr9X/Fk9WoBbxl0XXmVft2D5Yjhj
eGS5ZgFnSmiaae5rRWyfbfxvW3DBciZzkHT5dmZ30XlBert8TH3sf4eBLYLShH2GJ4fSiYGLL4zf
jpCQQpH0k6iVVpcKmNWarJyKnlugM6ILo+qlxKenqY6rgK17r3yxirOetcS377ojvFa+ncDmw0LF
pcgXypfNJs/A0l/VB9e22kfcfN6q4OfjJuVv58nqLuyg7yXxtfRR9vv5pvxg//8AAAA7AGUAiQCq
AMgA5gECAR4BOgFWAXMBkAGuAc0B7QIOAjECVQJ7AqMCywL0Ax8DSwN3A6QD0QQABC4EXwSRBMQE
9wUsBWIFmQXSBg0GSQaHBscHCQdOB5YH3ggrCHsIzQkgCXoJ2ApBCq0LHQuQDAUMfwz8DX4OAg6K
DxYPphA6ENIRbRILEqwTUhP4FKMVQhXjFogXLxfYGIYZNxnrGqIbWxwXHNcdlh5ZHx0f4SCoIXEi
OSMPI/sk7CXiJtkn0ijPKc4qzivRLNYt2i7gL+gw7TH0Mv80EDUwNlw3hziyOds7BjwyPV8+kT/M
QQpCTkOdRPNGVkfCSR5KO0tiTIhNtU7oUCJRX1KmU/BVQVaUV+9ZT1qvXBRdfl7lYEthl2LnZDll
j2bqaEhprGsTbHpt429LcLZyH3OJdPB2WHe8eSF6lHwqfdV/d4EggsWEaoYKh6SJPYrQjGCN7Y97
kP+SipQPlY+XGJjCmoOcR537n66hXqMJpLGmVqf7qaCrSKz1rqSwV7IQs8+1mLdkuQy6uLxZvgm/
sMFewxDEw8Z0yCrJ48ugzV3PHdDh0qLUaNY01/zZw9tJ3MPeOd+w4SPijePv5Unmmufh6R/qTOtw
7I7tne6n76rwofGU8nvzYfRB9R/19fbJ95X4X/kn+ez6sPtx/DP87/2p/pL//wAAZGVzYwAAAAAA
AAAFaU1hYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAASAAAADG5iTk8AAAAIAAAA
6HB0UFQAAAAIAAAA6HN2U0UAAAAIAAAA6GZpRkkAAAAIAAAA6GRhREsAAAAIAAAA6HpoQ04AAAAI
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
5gDH7dGw0dLHywyaebt+X64/Tr//2Q==

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/imgs/iconmsn.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QRYRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp
AAQAAAABAAAApAAAANAACvzaAAAnEAAK/NoAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv
c2gAMjAwOTowNTowNyAxMDo1OToxMgAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAGaADAAQAAAAB
AAAAFgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAMiAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAFgAZAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9QvvbS0EiXO+i0clYvVOu53TMhltlTbMG4ACPpMf/X/OU+tP
tbn0tDiyt7AC7+07d/3xVuommqo4Nn60y07rCeQP8H6f0ve1VTz0MeSYnG4R9Bv96fykfptfNKZB
4DwSidD4/uy/qyTdFy8vJ6pa+21z6nUlzWSdg9zI9n0Vvqh0nEqpxa3sYWOc2CHGTE/JX0ODJ7Pz
a8XHxXK/bvi/d+fgdD7zDi9z2xXt8PBX6XC//9D0nqYwDQBmna0n2ETun+RtlyzsenoTLmH132On
2tsBDZ7f4Nn/AE185JKhzNfeIf7n6fzvF730/wC5Yp/N+j9d36pEQI47J18qpK+yv//Z/+0hAlBo
b3Rvc2hvcCAzLjAAOEJJTQQlAAAAAAAQAAAAAAAAAAAAAAAAAAAAADhCSU0D6gAAAAAX/zw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjwhRE9DVFlQRSBwbGlzdCBQVUJMSUMg
Ii0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMv
UHJvcGVydHlMaXN0LTEuMC5kdGQiPgo8cGxpc3QgdmVyc2lvbj0iMS4wIj4KPGRpY3Q+Cgk8a2V5
PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJPGRpY3Q+
CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNv
bS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
aXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnBy
aW50LlBhZ2VGb3JtYXQuUE1Ib3Jpem9udGFsUmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4K
CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRl
Z2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20u
YXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+Cgk8ZGljdD4KCQk8a2V5
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxl
LmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJy
YXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFn
ZUZvcm1hdC5QTU9yaWVudGF0aW9uPC9rZXk+CgkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJ
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+
MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBs
ZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBw
bGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNr
ZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+
CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQu
UE1TY2FsaW5nPC9rZXk+CgkJCQk8cmVhbD4xPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9k
aWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0
LlBNVmVydGljYWxSZXM8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
dC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJ
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJ
PGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGljYWxSZXM8
L2tleT4KCQkJCTxyZWFsPjcyPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwv
YXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNVmVydGlj
YWxTY2FsaW5nPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3Jl
YXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0
PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwv
a2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5z
dGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2Fy
cmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuc3ViVGlja2V0LnBhcGVyX2luZm9f
dGlja2V0PC9rZXk+Cgk8ZGljdD4KCQk8a2V5PlBNUFBEUGFwZXJDb2RlTmFtZTwva2V5PgoJCTxk
aWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3Ry
aW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQu
dGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PlBN
UFBEUGFwZXJDb2RlTmFtZTwva2V5PgoJCQkJCTxzdHJpbmc+QTQ8L3N0cmluZz4KCQkJCQk8a2V5
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwv
aW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5QTVRpb2dh
UGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5j
cmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJ
CTxkaWN0PgoJCQkJCTxrZXk+UE1UaW9nYVBhcGVyTmFtZTwva2V5PgoJCQkJCTxzdHJpbmc+aXNv
LWE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwv
a2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJ
PC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VS
ZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9y
PC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNv
bS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0
PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhZ2VSZWN0
PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjAu
MDwvcmVhbD4KCQkJCQkJPHJlYWw+NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8L3JlYWw+CgkJ
CQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9r
ZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8
L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJS
ZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9y
PC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNv
bS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0
PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVj
dDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD4t
MTg8L3JlYWw+CgkJCQkJCTxyZWFsPjgyNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc3PC9yZWFsPgoJ
CQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwv
a2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJ
PC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5
PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJ
CQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8
a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3Ry
aW5nPmlzby1hNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0
ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2Fy
cmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVz
dGVkUGFnZVJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJ
CQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1c3Rl
ZFBhZ2VSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJ
CTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+NzgzPC9yZWFsPgoJCQkJCQk8cmVhbD41NTk8
L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3Rh
dGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9h
cnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNVW5hZGp1
c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr
ZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4K
CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+
CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVz
dGVkUGFwZXJSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJ
CQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+ODI0PC9yZWFsPgoJCQkJCQk8cmVhbD41
Nzc8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
c3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJ
PC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLnBwZC5Q
TVBhcGVyTmFtZTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
Y3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJ
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJ
CQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJO
YW1lPC9rZXk+CgkJCQkJPHN0cmluZz5BNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnBy
aW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJ
PC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr
ZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCQk8a2V5PmNvbS5h
cHBsZS5wcmludC50aWNrZXQudHlwZTwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBh
cGVySW5mb1RpY2tldDwvc3RyaW5nPgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlj
a2V0LkFQSVZlcnNpb248L2tleT4KCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCTxrZXk+Y29tLmFw
cGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+Cgk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYWdl
Rm9ybWF0VGlja2V0PC9zdHJpbmc+CjwvZGljdD4KPC9wbGlzdD4KADhCSU0D7QAAAAAAEABIAk4A
AQACAEgCTgABAAI4QklNBCYAAAAAAA4AAAAAAAAAAAAAP4AAADhCSU0EDQAAAAAABAAAAB44QklN
BBkAAAAAAAQAAAAeOEJJTQPzAAAAAAAJAAAAAAAAAAABADhCSU0ECgAAAAAAAQAAOEJJTScQAAAA
AAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAA
AAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA////
/////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////
////////////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAgA
AAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADSQAAAAYAAAAA
AAAAAAAAABYAAAAZAAAACgBpAGMAbwBuAGcAbwBvAGcAbABlAAAAAQAAAAAAAAAAAAAAAAAAAAAA
AAABAAAAAAAAAAAAAAAZAAAAFgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAA
AAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3Ag
bG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAFgAAAABSZ2h0bG9uZwAAABkA
AAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAA
AAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1
dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09i
amMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABC
dG9tbG9uZwAAABYAAAAAUmdodGxvbmcAAAAZAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQA
AAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElz
SFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGlj
ZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWdu
AAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5v
bmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91
dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAT/wAAAA
AAAAOEJJTQQUAAAAAAAEAAAAAThCSU0EDAAAAAADPgAAAAEAAAAZAAAAFgAAAEwAAAaIAAADIgAY
AAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQA
DAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwM/8AAEQgAFgAZAwEiAAIRAQMRAf/dAAQAAv/EAT8AAAEFAQEBAQEBAAAA
AAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcG
CAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZE
k1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5en
t8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKS
Q1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2
hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9QvvbS0EiXO+i0clYvVOu53TMhltlTbM
G4ACPpMf/X/OU+tPtbn0tDiyt7AC7+07d/3xVuommqo4Nn60y07rCeQP8H6f0ve1VTz0MeSYnG4R
9Bv96fykfptfNKZB4DwSidD4/uy/qyTdFy8vJ6pa+21z6nUlzWSdg9zI9n0Vvqh0nEqpxa3sYWOc
2CHGTE/JX0ODJ7Pza8XHxXK/bvi/d+fgdD7zDi9z2xXt8PBX6XC//9D0nqYwDQBmna0n2ETun+Rt
lyzsenoTLmH132On2tsBDZ7f4Nn/AE185JKhzNfeIf7n6fzvF730/wC5Yp/N+j9d36pEQI47J18q
pK+yv//ZOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBw
AAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwAzAAAAAQA4QklNBAYAAAAA
AAcACAEBAAEBAP/hDyxodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMS1jMDM2IDQ2LjI3
NjcyMCwgTW9uIEZlYiAxOSAyMDA3IDIyOjEzOjQzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpy
ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRl
c2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFw
LzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6
cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4YXBN
TT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6dGlmZj0iaHR0cDovL25z
LmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhp
Zi8xLjAvIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOS0wNS0wN1QxMDo1OToxMiswMjowMCIgeGFwOk1v
ZGlmeURhdGU9IjIwMDktMDUtMDdUMTA6NTk6MTIrMDI6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIw
MDktMDUtMDdUMTA6NTk6MTIrMDI6MDAiIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9w
IENTMyBNYWNpbnRvc2giIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgcGhvdG9zaG9wOkNvbG9yTW9k
ZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9ImlNYWMiIHBob3Rvc2hvcDpIaXN0b3J5PSIiIHhh
cE1NOkluc3RhbmNlSUQ9InV1aWQ6RDQ2NUQzMEM4ODNDREUxMTgwRjNGMDQ0RThCNzc1RTIiIHhh
cE1NOkRvY3VtZW50SUQ9InV1aWQ6RDM2NUQzMEM4ODNDREUxMTgwRjNGMDQ0RThCNzc1RTIiIHRp
ZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDA5MC8xMDAwMCIgdGlmZjpZ
UmVzb2x1dGlvbj0iNzIwMDkwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5h
dGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4Miwy
ODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7
QzQ3NUREMzZGNDgzMzU4RUU3QUJERjZBRDM0N0E2MkEiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIy
NSIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjIyIiBleGlmOkNvbG9yU3BhY2U9Ii0xIiBleGlmOk5h
dGl2ZURpZ2VzdD0iMzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1
MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYs
MzczNzcsMzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzcz
ODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUs
NDE3MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5
OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEw
LDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzBFRjc1
Q0Y2NzFGMDIxNEE2RUY5NkI5ODlEOTRFOEREIj4gPHhhcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJz
ZVR5cGU9IlJlc291cmNlIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBt
ZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw/eHBhY2tldCBlbmQ9InciPz7/4g/YSUNDX1BST0ZJTEUAAQEAAA/IYXBwbAIAAABtbnRyUkdC
IFhZWiAH2QABAAEADgAVACNhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAA
AADTLWFwcGyiIdIAMd+TvZRl1vqqFK/mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5y
WFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0AAABaAAAABRjaGFkAAABfAAA
ACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52Y2d0AAAB2AAABhJuZGluAAAH
7AAABj5kZXNjAAAOLAAAAF9kc2NtAAAOjAAAAPBtbW9kAAAPfAAAAChjcHJ0AAAPpAAAACRYWVog
AAAAAAAAd5sAAD4qAAABZFhZWiAAAAAAAABZuAAArdUAABkIWFlaIAAAAAAAACWCAAAUHAAAuLlY
WVogAAAAAAAA81IAAQAAAAEWz3NmMzIAAAAAAAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAA
A9wAAMBsY3VydgAAAAAAAAABAc0AAGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNn
dAAAAAAAAAAAAAMBAAACAAAAEAA4AHQAwgEyAdoCtAO+BPQGcQgQCesL5g32EBcSRhRpFocYlRqd
HKMeqSCxIrskzybkKO4q/C0ILxQxDjMGNPk23Di0On08RD30P59BR0LURFRFqUcDSFVJqUr4TEFN
ik7LUAxRS1KEU7tU7lYfV09YgFmuWttcB101Xl1fkGDCYe9jG2RFZWpmimepaMRp3GrybAZtGG4r
bzpwSnFecm9zf3STdaN2qHemeKN5oHqee518m32Zfph/m4CdgaGCpoOvhLuFxobWh+iI/YoRiyWM
PY1Xjm6PiJCgkb6S2ZP0lRGWLJdEmFuZbZp/m5Ocm52nnq6fsaCzobGirKOypLCls6awp6+oqKme
qparh6x4rWWuUq88sCOxCLHtstGzsLSQtXK2V7dDuDK5ILoOuvq75LzLvbC+lL93wFnBO8IcwvvD
3MS8xZ3GfcdgyELJHcnryqfLYswczNfNk85Qzw3Py9CM0U7SEdLX057UZtUv1fvWxdeT2GPZLtnu
2pXbO9vh3I3dOt3n3pjfSd/84LHhZeIa4s/jguQ15Ojll+ZG5vTnnug06LzpO+m46jXqs+sy67Hs
M+y27Trtv+5F7szvVO/d8Gjw8/F98gjylPMh87L0RPTX9Wj1+faM9x/3sfhE+Nn5b/oF+p37OPvV
/HP9E/23/lv/AP9///8AAAAPADQAawC0AREBpgJaAzcETQWiByUI3wrPDNIO6REFExkVJhccGQYa
5xzTHrUgoyKTJIQmbihgKkksNS4TL+sxvDOCNTw26DiQOik7tj1DPrVAGkFcQqBD3UUZRlRHhUi1
SeJLDEwyTVROdE+PUKhRwFLXU+1VAVYSVydYOlleWoJbolzBXd9e+WAQYSZiOGNIZFVlYmZqZ3ho
f2mKapRrn2ypbbVuvG+2cKhxmHKGc3V0Z3VXdkh3OXgseSF6FnsMfAV9AH37fvl/+4D9gf+DAIQB
hQCF/ob+iACJBooNixSMHo0pjjSPPpBFkU2SVpNalF6VYJZfl1yYVplQmlCbTZxLnUieQ588oDOh
KaIcow2j/KTrpdmmwaeoqI+pdqpXqzqsHa0ErfSu56/bsM6xv7Kvs5y0iLVztl23R7gwuRi5/7rm
u828tb2bvoS/a8BPwSzCAMLQw6TEdMVExhTG5Me1yIbJV8opyvvLzsyhzXTOSM8dz/PQzNGj0nPT
PtQH1M7VnNZo1zXYAdjN2ZvaZ9sy2/zcxN2J3k3fD9/P4I3hSeIC4rrjceQo5ODlkuZF5vfnpehS
6P/pqepR6vjrnOw/7OHtg+4k7sXvZfAG8K7xaPIt8vXzuPR89T/2APa893f4MPjn+Zr6S/r7+6n8
Vv0B/a3+V/7//3///wAAAA0ALgBgAKEA8QFuAgUCyQOxBMYF+wdeCNoKawwJDakPShDkEnUT+RWC
FwcYixoWG6UdOh7EIE4h2iNjJOcmYifZKUkqrywJLWIuqi/tMTAyXTN9NIg1kDaUN5c4lzmTOow7
gTx2PWg+Vz9EQC5BFUH8QuFDx0SqRY1GcUdTSElJP0oySyZMGU0JTfhO5U/SUL5RqlKVU39UbFVX
VkRXM1ghWQ9Z/1rpW8RclV1kXjFfAF/PYJ9hbmI9Yw1j3mSuZYBmVGcoZ/xo02mtaodrX2w1bQNt
zW6Tb1xwJnDzccFyj3NfdC90/nXLdpZ3YHgpeO55sXpzey576HyjfWZ+UX87gCaBEIH2gtmDuoSa
hXaGUIcpiACI14mrin6LUowljPeNyY6ej3SQWpFCkimTD5P0lNiVu5acl3yYXZk+miGbBJvonM2d
tJ6dn4egdKFiokqjJaP1pMClkKZepy6oAKjSqaiqgqterDytHq4Cruivz7C9saeylrOJtHi1WrYx
twS32Li0uZG6cLtSvDe9Hr4HvvG/28DFwa3ClsN9xGLFRsYnxwbH58jZycrKwsuzzKnNnc6Qz4LQ
d9Fq0lzTTtQ/1THWIdcS2ATY9Nnj2tTbx9zg3gbfMOBc4Y/iy+QT5WjmyuhH6dTrfu087xfxD/Mc
9UT3h/nc/D/+k///AABuZGluAAAAAAAABjYAAKXwAABXAwAASikAAJpRAAAmGAAAEvUAAFANAABU
OQAC1HoAAn1wAAGrhQADAQAAAgAAADEAUgBuAIgAoQC3AM4A5AD5AQ4BIwE4AU0BYwF4AY8BpQG8
AdQB7AIGAh8COgJWAnICkAKtAswC6wMLAysDTANtA48DsQPTA/YEGQQ9BGIEiASuBNQE+wUjBUsF
dAWfBcoF9gYjBlAGfwavBuEHEwdIB34HtAfsCCcIYwigCN8JHgliCagJ8QpECpcK6wtDC5oL9AxQ
DK8NDg1xDdYOPA6kDw8PfA/rEF0Q0RFGEbwSNRKvEywTqhQoFKsVKhWrFi4WtRc9F8cYVRjnGXoa
ERqrG0gb5xyKHS4d1B5+Hygf0iB/IS8h3SKOI0kkDCTRJZkmYicrJ/coxSmUKmIrMiwCLNQtpC5z
L0UwFTDkMbMygzNWNCk0+TXMNqI3dzhPOSM5/DrVO7A8iz1qPkw/MUAcQQdB8kLpQ95E2UXaRt1H
5kj1SflLCEwTTSVOOE9SUHJRklK8U+hVG1ZQV4tYz1oVW1xcrl4BX1NgoWHjYypkcWW/ZxBoaGnF
aydsi230b19w0HJAc7V1KXageBV5jnsmfPB+wYCWgmeEPYYQh96Jrot4jUGPDJDPkpmUXJYcl/2a
Mpxynp6gy6LwpROnM6lUq3qtqK/Ysha0XLa2uau87cApw2HGh8mpzMTP2tLp1f7ZE9wP3wjiDOUN
6BXrFu4S8Qfz6/bJ+ZP8Xv//AAAANQBaAHsAmACyAMoA4gD5AQ8BJAE6AVABZgF8AZMBqgHCAdsB
9AIOAikCRgJjAoICoQLCAuMDBAMmA0oDbQORA7UD2gP/BCUETAR0BJwExATuBRgFQwVuBZsFyQX4
BigGWQaLBr8G9AcrB2QHngfZCBYIVgiYCNoJHglnCbIKAgpbCrMLDwttC8wMLQySDPkNYg3ODjwO
rQ8hD5cQEBCNEQsRixIOEpMTGhOlFC4UuxVAFccWUhbfF20X/hiTGSsZxBpiGwIbphxLHPUdnR5L
HvkfqCBZIQwhwCJ1IzYkAyTTJacmfCdRKCkpAyneKrkrlSxzLVEuLi8ML+swyDGlMoQzZjRJNS82
GTcDN+441zm/Oqo7lDx+PWk+Vj9HQDtBL0IjQyFEHUUeRiVHLkg9SUxKVktoTHdNjE6jT8BQ4FIE
Uy1UW1WMVr9X/Fk9WoBbxl0XXmVft2D5YjhjeGS5ZgFnSmiaae5rRWyfbfxvW3DBciZzkHT5dmZ3
0XlBert8TH3sf4eBLYLShH2GJ4fSiYGLL4zfjpCQQpH0k6iVVpcKmNWarJyKnlugM6ILo+qlxKen
qY6rgK17r3yxirOetcS377ojvFa+ncDmw0LFpcgXypfNJs/A0l/VB9e22kfcfN6q4OfjJuVv58nq
Luyg7yXxtfRR9vv5pvxg//8AAAA7AGUAiQCqAMgA5gECAR4BOgFWAXMBkAGuAc0B7QIOAjECVQJ7
AqMCywL0Ax8DSwN3A6QD0QQABC4EXwSRBMQE9wUsBWIFmQXSBg0GSQaHBscHCQdOB5YH3ggrCHsI
zQkgCXoJ2ApBCq0LHQuQDAUMfwz8DX4OAg6KDxYPphA6ENIRbRILEqwTUhP4FKMVQhXjFogXLxfY
GIYZNxnrGqIbWxwXHNcdlh5ZHx0f4SCoIXEiOSMPI/sk7CXiJtkn0ijPKc4qzivRLNYt2i7gL+gw
7TH0Mv80EDUwNlw3hziyOds7BjwyPV8+kT/MQQpCTkOdRPNGVkfCSR5KO0tiTIhNtU7oUCJRX1Km
U/BVQVaUV+9ZT1qvXBRdfl7lYEthl2LnZDllj2bqaEhprGsTbHpt429LcLZyH3OJdPB2WHe8eSF6
lHwqfdV/d4EggsWEaoYKh6SJPYrQjGCN7Y97kP+SipQPlY+XGJjCmoOcR537n66hXqMJpLGmVqf7
qaCrSKz1rqSwV7IQs8+1mLdkuQy6uLxZvgm/sMFewxDEw8Z0yCrJ48ugzV3PHdDh0qLUaNY01/zZ
w9tJ3MPeOd+w4SPijePv5Unmmufh6R/qTOtw7I7tne6n76rwofGU8nvzYfRB9R/19fbJ95X4X/kn
+ez6sPtx/DP87/2p/pL//wAAZGVzYwAAAAAAAAAFaU1hYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
bWx1YwAAAAAAAAASAAAADG5iTk8AAAAIAAAA6HB0UFQAAAAIAAAA6HN2U0UAAAAIAAAA6GZpRkkA
AAAIAAAA6GRhREsAAAAIAAAA6HpoQ04AAAAIAAAA6GZyRlIAAAAIAAAA6GphSlAAAAAIAAAA6GVu
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
o9Phy8vty8OHt+n/2Q==

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ca.globaltalentfcri.com/imgs/ico.facebook.jpg

=FF=D8=FF=E0=00=10JFIF=00=01=02=01=00H=00H=00=00=FF=E1=04YExif=00=00MM=00=
*=00=00=00=08=00=07=01=12=00=03=00=00=00=01=00=01=00=00=01=1A=00=05=00=00=
=00=01=00=00=00b=01=1B=00=05=00=00=00=01=00=00=00j=01(=00=03=00=00=00=01=00=
=02=00=00=011=00=02=00=00=00=1C=00=00=00r=012=00=02=00=00=00=14=00=00=00=8E=
=87i=00=04=00=00=00=01=00=00=00=A4=00=00=00=D0=00=0A=
=FC=80=00=00'=10=00=0A=
=FC=80=00=00'=10Adobe Photoshop CS2 Windows=002009:05:11 =
12:11:25=00=00=00=00=03=A0=01=00=03=00=00=00=01=FF=FF=00=00=A0=02=00=04=00=
=00=00=01=00=00=00=16=A0=03=00=04=00=00=00=01=00=00=00=16=00=00=00=00=00=00=
=00=06=01=03=00=03=00=00=00=01=00=06=00=00=01=1A=00=05=00=00=00=01=00=00=01=
=1E=01=1B=00=05=00=00=00=01=00=00=01&=01(=00=03=00=00=00=01=00=02=00=00=02=
=01=00=04=00=00=00=01=00=00=01.=02=02=00=04=00=00=00=01=00=00=03#=00=00=00=
=00=00=00=00H=00=00=00=01=00=00=00H=00=00=00=01=FF=D8=FF=E0=00=10JFIF=00=01=
=02=00=00H=00H=00=00=FF=ED=00=0CAdobe_CM=00=02=FF=EE=00=0EAdobe=00d=80=00=
=00=00=01=FF=DB=00=84=00=0C=08=08=08	=08=0C		=0C=11=0B=0A=
=0B=11=15=0F=0C=0C=0F=15=18=13=13=15=13=13=18=11=0C=0C=0C=0C=0C=0C=11=0C=0C=
=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=
=0C=01=0D=0B=0B=0D=0E=0D=10=0E=0E=10=14=0E=0E=0E=14=14=0E=0E=0E=0E=14=11=0C=
=0C=0C=0C=0C=11=11=0C=0C=0C=0C=0C=0C=11=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=
=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=FF=C0=00=11=08=00=16=00=16=
=03=01"=00=02=11=01=03=11=01=FF=DD=00=04=00=02=FF=C4=01?=00=00=01=05=01=01=
=01=01=01=01=00=00=00=00=00=00=00=03=00=01=02=04=05=06=07=08	=0A=
=0B=01=00=01=05=01=01=01=01=01=01=00=00=00=00=00=00=00=01=00=02=03=04=05=06=
=07=08	=0A=
=0B=10=00=01=04=01=03=02=04=02=05=07=06=08=05=03=0C3=01=00=02=11=03=04!=12=
1=05AQa=13"q=812=06=14=91=A1=B1B#$=15R=C1b34r=82=D1C=07%=92S=F0=E1=F1cs5=16=
=A2=B2=83&D=93TdE=C2=A3t6=17=D2U=E2e=F2=B3=84=C3=D3u=E3=F3F'=94=A4=85=B4=95=
=C4=D4=E4=F4=A5=B5=C5=D5=E5=F5Vfv=86=96=A6=B6=C6=D6=E6=F67GWgw=87=97=A7=B7=
=C7=D7=E7=F7=11=00=02=02=01=02=04=04=03=04=05=06=07=07=06=055=01=00=02=11=
=03!1=12=04AQaq"=13=052=81=91=14=A1=B1B#=C1R=D1=F03$b=E1r=82=92CS=15cs4=F1=
%=06=16=A2=B2=83=07&5=C2=D2D=93T=A3=17dEU6te=E2=F2=B3=84=C3=D3u=E3=F3F=94=
=A4=85=B4=95=C4=D4=E4=F4=A5=B5=C5=D5=E5=F5Vfv=86=96=A6=B6=C6=D6=E6=F6'7GW=
gw=87=97=A7=B7=C7=FF=DA=00=0C=03=01=00=02=11=03=11=00?=00=E92=BA=AB=BE=D3=
hu=AE=90=F7=0F=A4G=04=B5^=E9=D6Un=15=F9=D7=BA=D7=D7N=81=ADs=84=FE>k=80=EA=
=997=0E=A7=98=03=8C=0B=ED=03=FC=F7.=AF=A1=F5=CE=A2>=A7=E7d=87=B7=D5=C1!=98=
=EE=DA4h=0C=FAC=F3=FE=92=B7=93=15B$u =
}=AC1=9D=93~-=FA:=AD=06=CC=986=FD=99=AC=0E5=EE;=FE=9Dl=E6=7F=94=92=E4=B0:=
=D7P6u>=A4l=1Fj=14=B2=C0=ED=A27}=A3=19=BFC=E8=A4=8F=B1=AF=E1=BF=E9p=AB=DC=
=D1=FF=D0=BF=D4=B1q=7Fhd=96fc=C1=B5=E6=1E-=0E=04=B8=EEk=B6=D0=F6=FB]=FC=A5=
=A1=D3=EAs~=AFg=D5]=98=F6P=F7=0FR=F0=EB=00g=D0=FAU=9C}=EF=FE=CA=F0=B4=95=C9=
_=04w=DE;=B0=8D=CF=D5=F6|<\Q=89=9D=FA=E69q=A9=82=00=B6=00=F5i%=CFq=A1=BF=C9=
o=B1=8FIx=C2I=DA=DF_=9B=FA=BF=BA=8D+=A6=DF=B5=FF=D9=FF=ED	=0A=
Photoshop =
3.0=008BIM=04%=00=00=00=00=00=10=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=008BIM=03=ED=00=00=00=00=00=10=00H=00=00=00=01=00=02=00H=00=00=00=01=00=
=028BIM=04&=00=00=00=00=00=0E=00=00=00=00=00=00=00=00=00=00?=80=00=008BIM=
=04=0D=00=00=00=00=00=04=00=00=00=1E8BIM=04=19=00=00=00=00=00=04=00=00=00=
=1E8BIM=03=F3=00=00=00=00=00	=00=00=00=00=00=00=00=00=01=008BIM=04=0A=
=00=00=00=00=00=01=00=008BIM'=10=00=00=00=00=00=0A=
=00=01=00=00=00=00=00=00=00=028BIM=03=F5=00=00=00=00=00H=00/ff=00=01=00lf=
f=00=06=00=00=00=00=00=01=00/ff=00=01=00=A1=99=9A=00=06=00=00=00=00=00=01=
=002=00=00=00=01=00Z=00=00=00=06=00=00=00=00=00=01=005=00=00=00=01=00-=00=
=00=00=06=00=00=00=00=00=018BIM=03=F8=00=00=00=00=00p=00=00=FF=FF=FF=FF=FF=
=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=03=E8=00=00=00=00=FF=FF=
=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=03=E8=00=00=00=
=00=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=03=E8=
=00=00=00=00=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=
=FF=03=E8=00=008BIM=04=08=00=00=00=00=00=10=00=00=00=01=00=00=02@=00=00=02=
@=00=00=00=008BIM=04=1E=00=00=00=00=00=04=00=00=00=008BIM=04=1A=00=00=00=00=
=03M=00=00=00=06=00=00=00=00=00=00=00=00=00=00=00=16=00=00=00=16=00=00=00=
=0C=00i=00c=00o=00.=00f=00a=00c=00e=00b=00o=00o=00k=00=00=00=01=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=01=00=00=00=00=00=00=00=00=00=
=00=00=16=00=00=00=16=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=01=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=10=00=00=00=01=00=00=
=00=00=00=00null=00=00=00=02=00=00=00=06boundsObjc=00=00=00=01=00=00=00=00=
=00=00Rct1=00=00=00=04=00=00=00=00Top =
long=00=00=00=00=00=00=00=00Leftlong=00=00=00=00=00=00=00=00Btomlong=00=00=
=00=16=00=00=00=00Rghtlong=00=00=00=16=00=00=00=06slicesVlLs=00=00=00=01O=
bjc=00=00=00=01=00=00=00=00=00=05slice=00=00=00=12=00=00=00=07sliceIDlong=
=00=00=00=00=00=00=00=07groupIDlong=00=00=00=00=00=00=00=06originenum=00=00=
=00=0CESliceOrigin=00=00=00=0DautoGenerated=00=00=00=00Typeenum=00=00=00=0A=
ESliceType=00=00=00=00Img =
=00=00=00=06boundsObjc=00=00=00=01=00=00=00=00=00=00Rct1=00=00=00=04=00=00=
=00=00Top =
long=00=00=00=00=00=00=00=00Leftlong=00=00=00=00=00=00=00=00Btomlong=00=00=
=00=16=00=00=00=00Rghtlong=00=00=00=16=00=00=00=03urlTEXT=00=00=00=01=00=00=
=00=00=00=00nullTEXT=00=00=00=01=00=00=00=00=00=00MsgeTEXT=00=00=00=01=00=
=00=00=00=00=06altTagTEXT=00=00=00=01=00=00=00=00=00=0EcellTextIsHTMLbool=
=01=00=00=00=08cellTextTEXT=00=00=00=01=00=00=00=00=00	=
horzAlignenum=00=00=00=0FESliceHorzAlign=00=00=00=07default=00=00=00	=
vertAlignenum=00=00=00=0FESliceVertAlign=00=00=00=07default=00=00=00=0Bbg=
ColorTypeenum=00=00=00=11ESliceBGColorType=00=00=00=00None=00=00=00	=
topOutsetlong=00=00=00=00=00=00=00=0A=
leftOutsetlong=00=00=00=00=00=00=00=0CbottomOutsetlong=00=00=00=00=00=00=00=
=0BrightOutsetlong=00=00=00=00=008BIM=04(=00=00=00=00=00=0C=00=00=00=01?=F0=
=00=00=00=00=00=008BIM=04=11=00=00=00=00=00=01=01=008BIM=04=14=00=00=00=00=
=00=04=00=00=00=018BIM=04=0C=00=00=00=00=03?=00=00=00=01=00=00=00=16=00=00=
=00=16=00=00=00D=00=00=05=D8=00=00=03#=00=18=00=01=FF=D8=FF=E0=00=10JFIF=00=
=01=02=00=00H=00H=00=00=FF=ED=00=0CAdobe_CM=00=02=FF=EE=00=0EAdobe=00d=80=
=00=00=00=01=FF=DB=00=84=00=0C=08=08=08	=08=0C		=0C=11=0B=0A=
=0B=11=15=0F=0C=0C=0F=15=18=13=13=15=13=13=18=11=0C=0C=0C=0C=0C=0C=11=0C=0C=
=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=
=0C=01=0D=0B=0B=0D=0E=0D=10=0E=0E=10=14=0E=0E=0E=14=14=0E=0E=0E=0E=14=11=0C=
=0C=0C=0C=0C=11=11=0C=0C=0C=0C=0C=0C=11=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=
=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=0C=FF=C0=00=11=08=00=16=00=16=
=03=01"=00=02=11=01=03=11=01=FF=DD=00=04=00=02=FF=C4=01?=00=00=01=05=01=01=
=01=01=01=01=00=00=00=00=00=00=00=03=00=01=02=04=05=06=07=08	=0A=
=0B=01=00=01=05=01=01=01=01=01=01=00=00=00=00=00=00=00=01=00=02=03=04=05=06=
=07=08	=0A=
=0B=10=00=01=04=01=03=02=04=02=05=07=06=08=05=03=0C3=01=00=02=11=03=04!=12=
1=05AQa=13"q=812=06=14=91=A1=B1B#$=15R=C1b34r=82=D1C=07%=92S=F0=E1=F1cs5=16=
=A2=B2=83&D=93TdE=C2=A3t6=17=D2U=E2e=F2=B3=84=C3=D3u=E3=F3F'=94=A4=85=B4=95=
=C4=D4=E4=F4=A5=B5=C5=D5=E5=F5Vfv=86=96=A6=B6=C6=D6=E6=F67GWgw=87=97=A7=B7=
=C7=D7=E7=F7=11=00=02=02=01=02=04=04=03=04=05=06=07=07=06=055=01=00=02=11=
=03!1=12=04AQaq"=13=052=81=91=14=A1=B1B#=C1R=D1=F03$b=E1r=82=92CS=15cs4=F1=
%=06=16=A2=B2=83=07&5=C2=D2D=93T=A3=17dEU6te=E2=F2=B3=84=C3=D3u=E3=F3F=94=
=A4=85=B4=95=C4=D4=E4=F4=A5=B5=C5=D5=E5=F5Vfv=86=96=A6=B6=C6=D6=E6=F6'7GW=
gw=87=97=A7=B7=C7=FF=DA=00=0C=03=01=00=02=11=03=11=00?=00=E92=BA=AB=BE=D3=
hu=AE=90=F7=0F=A4G=04=B5^=E9=D6Un=15=F9=D7=BA=D7=D7N=81=ADs=84=FE>k=80=EA=
=997=0E=A7=98=03=8C=0B=ED=03=FC=F7.=AF=A1=F5=CE=A2>=A7=E7d=87=B7=D5=C1!=98=
=EE=DA4h=0C=FAC=F3=FE=92=B7=93=15B$u =
}=AC1=9D=93~-=FA:=AD=06=CC=986=FD=99=AC=0E5=EE;=FE=9Dl=E6=7F=94=92=E4=B0:=
=D7P6u>=A4l=1Fj=14=B2=C0=ED=A27}=A3=19=BFC=E8=A4=8F=B1=AF=E1=BF=E9p=AB=DC=
=D1=FF=D0=BF=D4=B1q=7Fhd=96fc=C1=B5=E6=1E-=0E=04=B8=EEk=B6=D0=F6=FB]=FC=A5=
=A1=D3=EAs~=AFg=D5]=98=F6P=F7=0FR=F0=EB=00g=D0=FAU=9C}=EF=FE=CA=F0=B4=95=C9=
_=04w=DE;=B0=8D=CF=D5=F6|<\Q=89=9D=FA=E69q=A9=82=00=B6=00=F5i%=CFq=A1=BF=C9=
o=B1=8FIx=C2I=DA=DF_=9B=FA=BF=BA=8D+=A6=DF=B5=FF=D9=008BIM=04!=00=00=00=00=
=00U=00=00=00=01=01=00=00=00=0F=00A=00d=00o=00b=00e=00 =
=00P=00h=00o=00t=00o=00s=00h=00o=00p=00=00=00=13=00A=00d=00o=00b=00e=00 =
=00P=00h=00o=00t=00o=00s=00h=00o=00p=00 =
=00C=00S=002=00=00=00=01=008BIM=04=06=00=00=00=00=00=07=00=08=00=00=00=01=
=01=00=FF=E1:hhttp://ns.adobe.com/xap/1.0/=00<?xpacket =
begin=3D"=EF=BB=BF" id=3D"W5M0MpCehiHzreSzNTczkc9d"?>=0A=
<x:xmpmeta xmlns:x=3D"adobe:ns:meta/" x:xmptk=3D"3.1.1-111">=0A=
   <rdf:RDF xmlns:rdf=3D"http://www.w3.org/1999/02/22-rdf-syntax-ns#">=0A=
      <rdf:Description rdf:about=3D""=0A=
            xmlns:xapMM=3D"http://ns.adobe.com/xap/1.0/mm/"=0A=
            =
xmlns:stRef=3D"http://ns.adobe.com/xap/1.0/sType/ResourceRef#">=0A=
         =
<xapMM:DocumentID>uuid:C731E331123EDE11905DE9021FC90BA5</xapMM:DocumentID=
>=0A=
         =
<xapMM:InstanceID>uuid:C831E331123EDE11905DE9021FC90BA5</xapMM:InstanceID=
>=0A=
         <xapMM:DerivedFrom rdf:parseType=3D"Resource">=0A=
            =
<stRef:instanceID>uuid:C631E331123EDE11905DE9021FC90BA5</stRef:instanceID=
>=0A=
            =
<stRef:documentID>uuid:C631E331123EDE11905DE9021FC90BA5</stRef:documentID=
>=0A=
         </xapMM:DerivedFrom>=0A=
      </rdf:Description>=0A=
      <rdf:Description rdf:about=3D""=0A=
            xmlns:xap=3D"http://ns.adobe.com/xap/1.0/">=0A=
         <xap:CreateDate>2009-05-11T12:11:25+02:00</xap:CreateDate>=0A=
         <xap:ModifyDate>2009-05-11T12:11:25+02:00</xap:ModifyDate>=0A=
         <xap:MetadataDate>2009-05-11T12:11:25+02:00</xap:MetadataDate>=0A=
         <xap:CreatorTool>Adobe Photoshop CS2 Windows</xap:CreatorTool>=0A=
      </rdf:Description>=0A=
      <rdf:Description rdf:about=3D""=0A=
            xmlns:dc=3D"http://purl.org/dc/elements/1.1/">=0A=
         <dc:format>image/jpeg</dc:format>=0A=
      </rdf:Description>=0A=
      <rdf:Description rdf:about=3D""=0A=
            xmlns:photoshop=3D"http://ns.adobe.com/photoshop/1.0/">=0A=
         <photoshop:ColorMode>3</photoshop:ColorMode>=0A=
         <photoshop:History/>=0A=
      </rdf:Description>=0A=
      <rdf:Description rdf:about=3D""=0A=
            xmlns:tiff=3D"http://ns.adobe.com/tiff/1.0/">=0A=
         <tiff:Orientation>1</tiff:Orientation>=0A=
         <tiff:XResolution>720000/10000</tiff:XResolution>=0A=
         <tiff:YResolution>720000/10000</tiff:YResolution>=0A=
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>=0A=
         =
<tiff:NativeDigest>256,257,258,259,262,274,277,284,530,531,282,283,296,30=
1,318,319,529,532,306,270,271,272,305,315,33432;428BD7F623BD45852D73AF3F2=
DE5BA22</tiff:NativeDigest>=0A=
      </rdf:Description>=0A=
      <rdf:Description rdf:about=3D""=0A=
            xmlns:exif=3D"http://ns.adobe.com/exif/1.0/">=0A=
         <exif:PixelXDimension>22</exif:PixelXDimension>=0A=
         <exif:PixelYDimension>22</exif:PixelYDimension>=0A=
         <exif:ColorSpace>-1</exif:ColorSpace>=0A=
         =
<exif:NativeDigest>36864,40960,40961,37121,37122,40962,40963,37510,40964,=
36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,3=
7381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41=
492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,419=
91,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,=
16,17,18,20,22,23,24,25,26,27,28,30;5BF7DF14DDB5682289B6F02183B5721A</exi=
f:NativeDigest>=0A=
      </rdf:Description>=0A=
   </rdf:RDF>=0A=
</x:xmpmeta>=0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                                                                         =
                           =0A=
                            =0A=
<?xpacket =
end=3D"w"?>=FF=EE=00=0EAdobe=00d@=00=00=00=01=FF=DB=00=84=00=01=01=01=01=01=
=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=01=
=01=01=01=01=01=01=01=01=01=01=01=01=01=02=02=02=02=02=02=02=02=02=02=02=03=
=03=03=03=03=03=03=03=03=03=01=01=01=01=01=01=01=01=01=01=01=02=02=01=02=02=
=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=
=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=03=FF=
=C0=00=11=08=00=16=00=16=03=01=11=00=02=11=01=03=11=01=FF=DD=00=04=00=03=FF=
=C4=01=A2=00=00=00=06=02=03=01=00=00=00=00=00=00=00=00=00=00=07=08=06=05=04=
	=03=0A=
=02=01=00=0B=01=00=00=06=03=01=01=01=00=00=00=00=00=00=00=00=00=06=05=04=03=
=07=02=08=01	=00=0A=
=0B=10=00=02=01=03=04=01=03=03=02=03=03=03=02=06	=
u=01=02=03=04=11=05=12=06!=07=13"=00=081=14A2#=15	=
QB=16a$3=17Rq=81=18b=91%C=A1=B1=F0&4r=0A=
=19=C1=D15'=E1S6=82=F1=92=A2DTsEF7Gc(UVW=1A=B2=C2=D2=E2=F2d=83t=93=84e=A3=
=B3=C3=D3=E3)8f=F3u*9:HIJXYZghijvwxyz=85=86=87=88=89=8A=94=95=96=97=98=99=
=9A=A4=A5=A6=A7=A8=A9=AA=B4=B5=B6=B7=B8=B9=BA=C4=C5=C6=C7=C8=C9=CA=D4=D5=D6=
=D7=D8=D9=DA=E4=E5=E6=E7=E8=E9=EA=F4=F5=F6=F7=F8=F9=FA=11=00=02=01=03=02=04=
=04=03=05=04=04=04=06=06=05m=01=02=03=11=04!=12=051=06=00"=13AQ=072a=14q=08=
B=81#=91=15R=A1b=163	=
=B1$=C1=D1Cr=F0=17=E1=824%=92S=18cD=F1=A2=B2&5=19T6Ed'=0A=
s=83=93Ft=C2=D2=E2=F2UeuV7=84=85=A3=B3=C3=D3=E3=F3)=1A=94=A4=B4=C4=D4=E4=F4=
=95=A5=B5=C5=D5=E5=F5(GWf8v=86=96=A6=B6=C6=D6=E6=F6gw=87=97=A7=B7=C7=D7=E7=
=F7HXhx=88=98=A8=B8=C8=D8=E8=F89IYiy=89=99=A9=B9=C9=D9=E9=F9*:JZjz=8A=9A=AA=
=BA=CA=DA=EA=FA=FF=DA=00=0C=03=01=00=02=11=03=11=00?=00=BB.=D0=F9QZ=FD=93=
=BF=E2=CAo=DC=F8=AD=A0=DE=BB=AB=13$P=EE<=AD=0C=14=D1=E23=D9=0Ce=3D%=3D=1D=
=1Du=3D-,=14=B4=F4=AB=1A=A2"=80=17=9B=9B=93=3Dm<=AE=8F=B6=ED=EE=96=11=90=D0=
F=D5(=A6=A5=91X=9A=90I=A9=3DG=B7[=BB=8B=9B=81=F5=0D=87#=04=81=83JS=E5N=8D=
'=C7=AC=F6=D8=DD=3D3=DB=1D=F5=D89=BE=D0=DC=1Bk=AE=E6=8A=92=9B=07=80=DD=BB=
=AA=8A|=8F=F9%=15L=D54=F2G=93=A7z=D6=92L=8CQ=A1YDH=03=B3\=FD=02=9C=C1=03=C1=
=BCm=FB-=8A=DA=C7$=A3=B9=99" =
=12H=A1%N=9AS#=8FF=FB|=C2K+=9B=EB=96=99=911=A6=AD=91A=91N<pGH=1D=8D=F2=A7=
bU=E7=FB=9CEQ=D9=B2=F5N;g=E13=D5{*]=DB=9A=9Fx=D3=18=FB=17=AD04=A6=9A=BE\=AB=
=D6P=D7=9C=8EvEc=14=C8d=A6=94=C6=C4=8FkoyV=EE;M=A2=ADh/=DEvQ0T=11=15=F0=E5=
s^=DD$QiR0=C2=BD&=B7=DD`i=AF=BB%=FA`=80=E8=ABj=07R.3Z=D4=F0=E3=E5=D7=FF=D0=
+=FF=00(=BB=1BwQ=FC=9B=F9!GM=9B=A8=8A=9E=93=BF{=92=9E=18=D6B=168=A1=ECm=C9=
=1Ch=06=AE=02=A2=81=EF>=B9^=CA=D5=F9c=96=98=C4=0B=1D=BE=DC=F9q=F0=96=BDc=B6=
=E9s:n[=8A=86=A0=13=C9=FB5=B7[=01=FC=1F=F9=C1=F2&=8B=F9@=FC=AE=ED=08wN	=
=B7=97=C6=0A=
=9Cv=CB=E9=EC=94=DBO=075>=1B=01E=88=D8=CDMO=99=A1=92=03I=B9jQ=B3u=04=CDV=B2=
H=E5=C6=A2t=8Fpg8ro/=9Fu=B9kj=16=AE=B6[=8D$=B8Q#w3<=BA=8A=9E)] =D0`yu =
=EC=9B=D6=E3=FDQ=DC=AF|e7=16=C4=ACgH=C0UJTy=D2=A7'=D3=AA=99=E8O=9A=1F!'=CF=
=FC=DE=F9A.=EF=C7=BFq=D1t=FE=C3=DF=D4=F9=93=B7=B1'	=
=16=E5=97=E5=AF=C6L;=D4=AE=D70=FF=00=06ZF=C7J=D1=F8=04~;=1F=A5=FD=CA=9B=D7=
'r=F8=83=93=F9\Z=9F=DC=E6=EEH=CA=EA:=B4=FD=15=DB=FC|k=A8=03_^=826;=E6=E2e=
=DE=B7C0=FA=C1=0A=
=BDi=8A=F8=F0=8E=1E=944=A7_=FF=D17?$:=B7=AA=DF=E4=0FuM=87=F9!=F1=F8=D1=D5=
=F6=86=FA=AD=92=9Ft=E0=FB=E3=17=B8q=99=0A=
=BD=CD=93=A8=CBa=B2=F4=D8^=83=DC=F8y*=F1=199%=A73R=D7TCP#=12+=00=D6=19o=CB=
{=96=EA6=0D=91_=97=AF=F5=AD=AC`=14{fF=01=00V]W=08=C02=D0=E9*=0A=
=D6=86=BCz=877K[#=B9_=15=DCm=C5ec=DC$=0C=0DMA=A4L0j*=0D)=D1=BF=E8=3D=B5_=8C=
=FE_?.=B6=B6=DF=DE_=1E=F77]gs=D8=E9w=7Fh=D1=EE=8E=E5=C5a=B65BS=ED0=B4=B9-=
=A5=90=F8=E1=16=E2=DC=0F*A	=
=D7E=14=8A=04=EA=18=FA=1A=C0=CEa=9CK=EE=07*\=DCZ=DF=C5=B8=A2=8D=10=94=81=9E=
L=CB=90=EBtQx=9F=88=81=8F=9EN=F6=F8=F4r=EE=ED=14R=C0=F6=CCN=A7=0D =
=0B=85=E2=A6*=9F=9D=07Ew=A8=BA=C3=AC =
=EAO=95=8D=FE=CC_=C7=EA=BC=BDgTlj=08=E9=B1xN=F5l&7=0C>A=F4=E6B=BF;=B9=F2=B9=
=0E=86=C6=E4!=A7=19**:=1AZz=0A=
=0C=94=D2=D5V+=CA!=827=95E=FB=A6=E5=BB6=EF=CB#=FA=BD~#=172=1A=B3=DB=EAf=FA=
Y=C0TQpW=E1,=CCY=D6=81h*H=04=9A=CE=D6=C8Y=EE=BF=EE=C6=DC=C8bA=81%=00=F1c$=
=B11=022=14=00=15=AANh=07_=FF=D9
------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/media/70/71/896/foto_w154.jpg

/9j/4AAQSkZJRgABAgEAAwADAAD/4RzzRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAbAAAAcgEyAAIAAAAUAAAAjYdp
AAQAAAABAAAApAAAANAAAAACAAAAAQAAAAIAAAABQWRvYmUgUGhvdG9zaG9wIENTIFdpbmRvd3MA
MjAxMDowMToxNSAxODoxNjozMAAAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAmqADAAQAAAAB
AAAAlgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABu9AAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAQBIAEgAAP/tAAxBZG9iZV9DTQAC/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAlgCaAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9VSSSSUpJJJJSkkyjaHGtwYdriCA7mD+8kpk7hBbk0OyTjB7
Te1u91f5wafbuKCLDg4HqZtpt9Bk3W7YLturnem1TxrMfIYzMoAItYC2yIJby0JvFZA2PzGJ34V3
DQMiCY3wiQ+XjbD/AKJlAwsluVSy5rXsDphtg2uEGPc1Dx8jNfm31W0CvHZHo3B0l8/S9v5qtWlz
a3OY3c5oJa3xI/NSBvUbC9K7KMa0NcRogg6UWTjAJPCHTdVc1tlThYw8OaQR4coGDdk5GIx+XSMe
1076p3Aa+P8AVSbZg4TqsRrmUusn0ahpMe521qXFYB2ie+h1+VRjqY6mQP6PqjUfmbiSrXOyxkUi
prDSS71y4ncBHs2BWEQbvwQRVba/y1XSSSRQpJJJJSkkkklP/9D1VJJJJSyY8JO4VfHw68d1rmFx
9Z5sdvcXQT+5P0WoG9NPNIqjZ16KfiUuy2Zmvq1sNbdTth2v0fooeQzPOZQ+mxjcVu77Qxwlzv3d
jvzUq8KqvqFuYLHl9rQ11RdLWgcEMVHpr+u/tLJ+3ADDE+lMAc+309v8n6e9Rk1QMSOOW8P6v6U5
f1mWMbEiJxPBDbJ/X+aOOP6XBxelO7reD+1B0ohxtdoSQNskbth/sofXG9ZDKB0gABrosAgGBG36
X5inhZXRs/MsuxQyzLpG11m2Hbfo+135zUDpeV1x/UshmfWK8Rm7Y6AAIPs9N357dn7yjMuIcJlx
DJIiE8P6Ef60mUQEJccYCJwwEsmPmP8AKTl6fRB1XsufiOZv9O5zI3t/NcR9Jv8AaVDoHT8/Bosr
zbvWc58sAJcAO/0v3/zlW/ZmT+2j1b7WPsgG4ieGhu01ug+ns/OUurVftrAjpmWyKny8hxDTAPtf
t93t+kkZG+MwPHj4hCHF/Ox/eRGIoYxkj7eXhllnwfzM/wBziS9eu61SKP2WzfLj6ugJ/kTv/M+k
p9TzMDBroy86sOtYdtUDc5riPfslByruoY3RGfYXjLyqw1llrYedP5xzW/nJrcjHPRqbvrBU0OcR
urLZJf8Am7WD85zUJSNz1IkYRmPc9WHHX9ZMICsdxEoicsZ9r08zl4u8f3W7k5GXdhV5HS9lllmx
zfU0Hpn6X9pW9rn17SdpI1LfHyVJ977um129KgtcB6cAaN/dbP7qt0C92M0WnbaR7iOxU0TZ6m4g
6fzf+AwSjQ2EalIa/wA7/wBU/upgIAHPmnUGNLWhrjJHdSAUjGukkkkpSSSSSn//0fVUzuEncIbb
GOeWNcHOZ9JoOon95JSLEOU6mcwMbbuOlckRPs5/kqGLhOoysi832W+uQRW/6LI7Vpq7sx2fbTZR
txmNaa8ifpE/SbtVOjH643rll1loPTyDtYDpH5gDfpb2qEkDg9Mp1Lhv939Hjl8rNGJPueqELhx1
0l+n7cPn9SsTol2P1m7qLskvZbuirX879/8AqfmoeD1Hqt/V8jFysfZh1h0PiIA+j+k/P9RP1Lp3
V7+rY+Ti3+njVxvZJAEH3+z8/eq3UOu9So623BrpDsclrdpaSXB354eoZSGPpPHEZP74zcf/AHLY
jGWYb480zh6+g8uMf/do8TI6RR9uHQmudn7HOY10wQOW0bv3Xe7Yn6eesdX6PmY+S4sc6BTa8FhP
d9bv5H5u5Tcz6v8A1ez/AFHOf69oJaz6QY1x9zv5O5T+s9fUMzDx39OL7KidzxUYLgR+jdp+amEE
RkZEE4xKMsGD5eGf6RZeKMpwEQQMpjKHNcxrLixfox/ej6V+m9DsxekZeJn3BrbwZLToxsbd0u/6
SF0rouN+zsyrFzBe/K9htZoGls7fZ/a9yPj9Lz8r6uHAy3ll7wQ0u1IEh1bH/wBke5Q6B0W3prch
tt7BkXthrGH6O3dteZ+l9JGOMcWIDEeDgI4pH1w4v0Fssp4M5Oce57kTwRj+rycHDw5GvjdL6p0j
pWYcaxtmU8t9lWuxo9rntDv8K5Sos9boe76xtcWi0CouEWH90+3+2hfV7pHWMTqxtyQ5lQDhY4un
1CeP63763Oq4mJm11YmVuBsfNTm8hzQXf9Shixk4zICUKBxjDkPFjlr8xTmyxGXhMo5DKUcsuYxD
hywEY/LH/Big+1sp6bQ7pFYdR9Fuh9oH8laJ9a7GEfo7HAEjz8Fk2vu6S6jCwmH0AJLnAuLnE6+5
aVrct1lbqztYQC4ef8pT45E8QN3ERhKER6In+o1skQOGQrhkZTjkkbnIf6xPU17aw1xl3ipjjVRf
v2+3nxUxMa8qcduzXPfuukkkihSSSSSn/9L1R3CqvZhYbrcp+yk3EC2w6biNG7lPNyDjY7rhW+7b
H6OsS4ydvtHzUcnGxs2n0cqsW1EhxY/iRq1Nl1AriGotdHoZXwSNS4d6G7R6/m9Sw8auzp9PrPe6
H6F0Dt7R+8l1ajqWZ0tjMV3oZT9rntDtp8X1ts/NU6ut4b+qO6W0OFzJbuiGyBJYFXYev/t9wf8A
8m6xoNu2P3vp+ooJSEuL1SnGZ9oiH+Sl+lJswjKIjcIY54h74lk3zxPywphnYXV39Drxa7t+a2PV
2u2uc0fmteq7epX9B6ZjV9RYb8x5dsbIJazwdaVGnpWZZ9YHdRryW2YzLC5z2PkxH8w+v/ViNdnd
B69ktwbA/wBRhPo2RtBI+k2t6hN6yB9vJ/M4vclxRycP6TOK0jIDNhv38xxQ4J4pTEvQf6sUeZgd
O65RX1h9zsVjWbbpAOjTq3lWqup4l/TLqOjWF1+NSRUxwIdoIa4B30lU6nmdEZiv6DXYaQAGB7Wl
zGOB3fpH/wBb+cVXHxavqtRf1zq9zGU0MLWMrJduLtGhvHuf+YlHi90DGIy4xw8xkhvGf/cqkIez
eWU48B4uVw5BpPH0/v8A/cIvqvd1J3VYL7H1EO+0by4jjTdu/P8AUQf2T1sdZ3em/wBb1t32mDtj
dPqb/wBz0/zFx2f/AIwfrn9Ys443RWvx2PPsxsVu+0jndbZtL/7TNiHkWf40+i1nNyH51dLRL7HR
axo/4RrhYxv9tPHIjgjGWSR4ZcdrD8Sl7k5xxQjxxEK/u8Xq/R/efcR2QctzKqX5DmbzS1z2gc6D
suH+of8AjJHW7x0rqzWU9QcP0NrNGWwPc2PzLfzv5a1f8Y3VM/pf1csyun3Oov3Bu8AHQmHe2wOV
qZofZ9stA0scblXme2kRxFvdG6zfn3OqtY1vtLmObrBH733q3h15VN7jkuhrp+k6QT/JXiWB/jD+
seJh5VNd27JySwV5JYwGsCd/pMaz6dv8pT6T1z68u6tiVfasgvy7GtYMhpdW4E/pDtePoNb/AKNR
QxzEY8c+KcST2DLPJAyl7cOCEgBW77tSywOJeZB4RBMrkfrr9d6PqtiVV1gZPUbmzVTMMAHN9v53
p7vofvrzhn1i/wAY31mte/BsyrWgyW4jdlbP5O9g/wCrsU0RQYZGy+7SnXhFP10+vv1azW1dRsuP
c42azRw/kvdts/qua9evfVb6yYf1k6WzqGNLHTsvpcfdXYPpM/lN/PYih2UkkklP/9P1R3Cp2uzx
nVCtjDhFrvWcSQ8O/M2hFy6LbhWK7nU7Hte4t13Bv+DdP5rkz8vGZkMxn2NbdYC5lZI3OATZHoTw
6jW64v6q6I6gCZqViieH+swOLisusy2UtOVtILwBuMD6P9pZXSuo5nVqc2nMq+zNa0sFgDmxukFr
t/5zEbpfRrunZmVl25JtZbJDNfHdufM7nqLOoYn1gxcvBxnPrdtje4cgnR4/zVASfTf6uR4/1Nj9
cf7zZEYjir9bGPt/0ipf0cf3ZIfq50ivp7cjIOVXfXYNpNZ9kDl1jv30/SuidHZmOz8TI9cVkkN3
NLWE+bY/sKHTOg+l0zNwxlMstydCazLWEcAtHu/rpdE+rmXgjKORa0G+v0mhhnT/AEjvaxQ44Eez
H2BwgGV3xe3Nny5Affl95PFLhjXDw+7D5dv6vrc5/R8DqHV7G4ufW5r3l1lUHfqZeKzGyxcz/jmz
3tt6b0euRTWw3Ob4n+Zp/wA1nqLo+mdFswesUNy8imr0XAsbvG58cbWfSZu/lrlf8dGLY3rGBlEf
o7qDWD/KrdP/AKMUnJR0nIwGOZlqGP4jKzigMhywjD0kj9seHiSf4vfrd9T/AKt9JLctzx1HIc43
vbU5x2g/oq2vb+Zt966l3+Nn6mOaWuttLXCCDS4gg/vLnPqP/i/+qv1i+r1Gfc/I+1Bz68lrLAGh
7Xe2G+m76VZrct//AMZ36pDXdlf9ut/9JK20Xybqmdg4/wBYreodCJbisvF+IC0t2wfVDNn7rX7m
f1F65/jIzW2fUey1jQ5uU2ogu5AJZb7f5S5fN6B/in6fn3dOzM/LqyMdxZZJc5oMfR3VY7/o/RXU
f4xhiUfUSymthsr21Nx3OkFoBZtsPt/c9qbP5d61j/0l+P5tr0l/0Xgf8VnRsbqnX7LcoTXhUmxv
GjydrHe7933L2luLjWY7amODwwgtcYcQ797X6Ll5H/igodkZnVamu2udjsg/25XrHT8O3HqeLCG7
o0B0A8UyV+5XDYMdZf8Acro17d8dES0h/wB0+EfW3Js6v9cstm4kOyBjU94aD6TV7z0jpeJ0jp2P
07FYGVUNDQAPpED3vd/Kf9JfP+a39n/XKwXf4DP3Onw9TdP+avotrmvG5urTqD4g6ypBsGMuB9df
qtX9ZujnDa5leVW8WY97wYaZ97fb7ttjPYqX1F+pF/1U+0+pmjKblbJqawtDXN3e8Oc8/mv2/QXQ
9X6pi9I6df1LL3ehjNL37AC49trGuLfc5Zv1c+u3QfrHe/H6a+w3VsNr2PrLYbIZq76H0n/vooeg
SSSSU//U9UdwgOx6H3tyHVtN1YIZYR7gD4OU8mll9D6XztsaWmDBgjs4Ktketh9PIwqvtFlTQ2qp
xguiBq8psjVki4gX3On9VdEXQBqRPD+7Gpf12kOsZJ66emHF/QAH9LB4jdv/AHNv5qsMxel4z7cb
H9PHyMtplrSA8yD7g36Xt+ki5XUKMLEblZv6GQA4D3HcfzAszJ6f0y3Lr+sL8osoAa4fukgbWfy/
7DVDIkXrHJLi4vV6DixS+ZsRAl0lhhw8F4+LLHNnh8v+Mh6H0g9KzbhdlVuutZFdIMOdH59jSq3R
m/WD9tk5Hrelud65eT6Zb+bsM+n/AFNil1Dp+IM1vX3Zg+xve142jc8uHFdeqt9a63c7pFeb0px2
WP22WR7mAdtpnaq1QiNbxjATOEYy4zlx/vNsmczoBllzMRinPJj4I4ckf0Lcnq/1e6o/qN1rWh9N
ry/1i4BrW/8ACbvo7FZ+snR+mfXDo37Nx8prs7FAfj2mfptGw7w73ejb9B6vdP8At/WPq/dXkktu
s3MrtIjcPzXOEfRWZgdKzuhut6plhobjMcGMY6d7nDY3dp7GIw/VTE8cJHHm9eSUv0AjIPexyxZs
kRm5c+3ihD/Ky+X/AJ3yvmnT+p/Wv6g9RsYanUeoQLqLhuptA+i9jm+1/wDItpd/IWxn/wCOTr2V
jOoxMWjFtsG31m7nuE/6Nrzt3Lu+nfWQZ9llHU6K3VCt1gIbIAYN7mubZ/JT9G6l0DI6gKK+m1Yt
j59OwMZrA3e/2t27mqzDm8MuGpfOeGIPdqT5HmIcVw+QcUiCK4Xzz6j/AFC6n1vqTOqdWrfX05jx
a910773E74a1/vcxz/dba/8A8EXef40m0n6o5AeS1zS30wBoXBzfY7+yuxgARCBfTj2PqNwBLHTW
HfvEEfR/O9qlkLHTcb+EmCBo3rtLb+6+M/4q6sp/UM9tAJHot3taYJG7Reu0te3AbVkv2Pd9EO5+
BWbT0zPr6s6/aGsL93qggDYPzf3lqu+zZr5rs91ehHkq8SZSlIxMZH0CEj8w7hsSAjGEBISiPWZw
GsSf0ZPl3+NP6nZNWUev4dZtpuA+2NYJLHtEev8A8XZ++n+rH+Nx2BgV4PWMZ+T9naGV5FThvLRo
xtrH/S/rtevWGil7fTHuDBEHuFgZ3+L36n9QtN1/TmNedXGkuqBJ8W0uarMdmtLd80+u3+Ma/wCs
uO3pmFQ7GwnOBsa47rLSD7G+we1m78xdv/it+qV/Q+m2Z+ez083P2xWfpMqb7mtd/Ltd73t/4tbv
SfqV9WOj2i7AwK2XN+ja+bHj+q+0uc1bkDwRQukkkkp//9X1Q8Kt69v2v0PRd6WzcMiRt3Tt9Par
Si+Giew5QIuteqQa6W52aemdQvPSMn32hot9PUQP3g8fFVL/ANiZgP1eDix1QG1rZG0s19r/AN5q
0sS+jKrGVU0jdLdz27Xw0993uVfDx+jX5VnU8XZZdLm2WtJgO/P0/eUMo8VVwHj0lY+bD2Z4S4AQ
fdj7QuPCfTDmf3pfu/K5+RX0FrK/q5Y54dILHDs8+5v6T95yBb1XG6DkV9Ioxy+lu11r3H3OLz+Y
385aWN+wup9QOXQ0W5eN7XPgiI9od/K2qthdUxup9Ytx34YF2NPpXOEuG07ffP0P5CgkNQYzhCUp
cGKURxfqo/5NsROkhOGScIR9zPCcuD9fP/KhH9bK+qH7O3CbYaNQ9tOh3/mb2qVvVqen9JxsfrDH
X5GRWfVriSW/8LP8lyH0np/WcTqt+VmWE4wDy8l07wda9rP5KEb+k/Wa8stbZjPx2F7LZHurBG7c
mmUrlMEwy5fRDFl+UiNXJfGMeGGOQGTBhrJPNg+cHJxcMS6HTul9Crw35eO2Kcmshz7HHSsj3sl3
0FW6F0TpDMk5uLknLFRIY3SGEjb7tGucrf2fp2f0azp/T72+i1vp72mdpB3e7+0Peqv1e6ZX0tmR
mXZNdjCA1zqzLGhkuJcU/gHHhrHAxAMvciaEJ9eFj9yXtZyc2QTMhAYpDWcD8vEf7rbx/rN0/Iz/
ALE3eCXFjLSPa5w7BP8AWHp+Vn049WKPe20OLpIDQB9PRZrMXoGKLeu41jshmOZbSD7Wvd9H/q1K
/qOZ13phd09j6rqbg22trolsT9P87lL3Scc4ZSJTl6oRxbyxrvZEcsMmAGEIEQyTzjSGU94ulm9V
+y3sxXV+pLRvcTEg6aI+PTiYdoAcd9g9oPYKp6hwcHFd1CoXZI9u4wSI1gu/eWiWY1oryXjbIBBO
nyKkjcpEkjiFSjGQ1xRlu151GIABETxRlKJ9OWUf+5ShldZkaFyJoolrHgHkdipDwCsDTya5/FdJ
JJFCkkkklP8A/9b1VMQCnSSUjtdXVWbHkNYwEuceAAq9AwmYxsxwxuO8Gwubo0g6uerTmNe0teA5
rhBB1BBUfTqrq2BobW0RtAgAfBNIN3pskEVWu/0pxsUdMw+nZPU+k1eqHgugE+4tP0R/JRekZdnU
+nPyTSMW6zczeBzH0bGz71fw7MWygHDLDTJDdkBuh14QsPPqzH31srez7O/03F7doPnX/JUUY0Ye
oCJiRwQHplLrOLPOZIyEwkZCQPuZDc4QHpjCbS+r/TM/ArvbnXet6rgWtkuH8p3u/wBIqod0Bufk
9HppNF2S11VlrRpLhu2NVrEb10daudkuH7Pg+mNIj8zb+d/WS6nmdG6XnVX5FUZVwIFrRJDR7XPc
o6iMcaAhHHLhkcwuXAfm4D/WZuKUssrPuTywE4jljwx9wDihxx/1bSwek9PxRmdMbmh+Xks2Fo0L
Wgae0fna+9Qxuj4nSsLIx+qZbWNzYY3b7QC33b27vpO3FaT+k9Mw85/WrXljh73SfYCRsLvxSzOn
9M6/RVf6hcxhO2ys9jo9h/zU0YABQhD3IcQxw4jwnFLfiXfeSZWcmT2p8Es2TgjxRzw9QjD/ABYt
B2P076t9PeL92a3MO0iAA4Af5qsZOJZd0Sv9gAY4tLbdrfYXNcONx/OR3ZvR7s0dDtYLCyGhrmyy
Wt3hm79/Yo9Yt6zj24tfSqg6jiwBsxrG13+jZsR4YCMqo44j2xHELywnL5/Ut45mcOKxlkfdMs54
cOWAH6v9X8v6Keqz7J07Hb1VwsvgB5jdLv8AzH95XH11ZFI/cdDmkaIHULOntbSzOLWix4bVu/fP
ZsK0amOq9OIbwAFYANmOkoiIH9f/AA2rI6RlRjKUpS0H6v8A6myaxrWBo4GikBCYAAbR2TgKQMa6
SSSSlJJJJKf/1/VUkkklKTEAiDwnSSUjZVVU3bUwMb2DRA+4IVuXj031Y7yRZkE+mACZgS6f3VYS
2g9kCDWmiRV2dd/tafUG55rZ9gdW2zeN5sGmz8/b/KUsrDxMjbZkVNudSdzZEkHyVlwgaIGJXk1t
cMm0WuL3Frg3bDD9Bn9lNMQTqOLi76xHD4LhIgCiImPb0zlx/wBZq1Oxut9Oe22t7KbSWOZYNrva
eyiDg9Bwq62seai8NG0bnFzz9N+1X8p1tdD301+ra1pLK5jcezdxSr3vra6xmxzgC5hM7TyW/wBl
Dh1vT3BGuPhXcela+yZcXtcfX+X6SH7Bhfaftopb9oIj1Y1iITUHqP2y/wBcM+y6fZy36X8reiX/
AGwvqGOWBm79NvknZB+hH8pHACIiL0BjRs16eMlaZGtSJXHh9WssdHp+6h242REhlordpwQ1w/7+
iPr3RqWwZ0UaMTHxw4UVisPcXu293HlyKnAaagX1paSL0JobWpOkkihSSSSSlJJJJKf/0PVUl8qp
JKfqpJfKqSSn6qSXyqkkp+qT5pDb2Xyskkp+qXRGvCYbI047QvldJJT9U+1LRfKySSn6qSXyqkkp
+qkl8qpJKfqpJfKqSSn6qSXyqkkp/9n/7SGWUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAA
AAAAAAAAAAAAAAAAOEJJTQPtAAAAAAAQAAKBywABAAIAAoHLAAEAAjhCSU0EJgAAAAAADgAAAAAA
AAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAHjhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAA
AAAAAAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9m
ZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAAB
AC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA////
/////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////
////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4A
AAAAAAQAAAAAOEJJTQQaAAAAAANBAAAABgAAAAAAAAAAAAAAlgAAAJoAAAAGAEUAUgBDADEANAA3
AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACaAAAAlgAAAAAAAAAAAAAAAAAAAAAB
AAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEA
AAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25n
AAAAlgAAAABSZ2h0bG9uZwAAAJoAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNl
AAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0A
AAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlw
ZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAA
AAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAJYAAAAAUmdodGxvbmcAAACaAAAAA3VybFRF
WFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVY
VAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlo
b3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVu
dW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVT
bGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNl
dGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAA
OEJJTQQoAAAAAAAMAAAAAT/wAAAAAAAAOEJJTQQRAAAAAAABAQA4QklNBBQAAAAAAAQAAAABOEJJ
TQQMAAAAABvZAAAAAQAAAJoAAACWAAAB0AABD+AAABu9ABgAAf/Y/+AAEEpGSUYAAQIBAEgASAAA
/+0ADEFkb2JlX0NNAAL/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUY
ExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4O
FBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCACW
AJoDASIAAhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEB
AQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGB
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
3+1p9Qbnmtn2B1bbN43mwabPz9v8pSysPEyNtmRU251J3NkSQfJWXCBogYleTW1wybRa4vcWuDds
MP0Gf2U0xBOo4uLvrEcPguEiAKIiY9vTOXH/AFmrU7G63057ba3sptJY5lg2u9p7KIOD0HCrrax5
qLw0bRucXPP037VfynW10PfTX6trWksrmNx7N3FKve+trrGbHOALmEztPJb/AGUOHW9PcEa4+Fdx
6Vr7Jlxe1x9f5fpIfsGF9p+2ilv2giPVjWIhNQeo/bL/AFwz7Lp9nLfpfyt6Jf8AbC+oY5YGbv02
+SdkH6EfykcAIiIvQGNGzXp4yVpka1IlceH1ayx0en7qHbjZESGWit2nBDXD/v6I+vdGpbBnRRox
MfHDhRWKw9xe7b3ceXIqcBpqBfWlpIvQmhtak6SSKFJJJJKUkkkkp//Q9VSXyqkkp+qkl8qpJKfq
pJfKqSSn6pPmkNvZfKySSn6pdEa8JhsjTjtC+V0klP1T7UtF8rJJKfqpJfKqSSn6qSXyqkkp+qkl
8qpJKfqpJfKqSSn/2QA4QklNBCEAAAAAAFMAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABv
AHMAaABvAHAAAAASAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTAAAAAQA4QklN
BAYAAAAAAAcABAAAAAEBAP/hGAFodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tl
dCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+Cjx4OnhtcG1ldGEg
eG1sbnM6eD0nYWRvYmU6bnM6bWV0YS8nIHg6eG1wdGs9J1hNUCB0b29sa2l0IDMuMC0yOCwgZnJh
bWV3b3JrIDEuNic+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8w
Mi8yMi1yZGYtc3ludGF4LW5zIycgeG1sbnM6aVg9J2h0dHA6Ly9ucy5hZG9iZS5jb20vaVgvMS4w
Lyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6YjBkMGZkMWItMDFmOS0xMWRm
LTlmNTEtOTY2MWRkMzEwZWY4JwogIHhtbG5zOmV4aWY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vZXhp
Zi8xLjAvJz4KICA8ZXhpZjpDb2xvclNwYWNlPjQyOTQ5NjcyOTU8L2V4aWY6Q29sb3JTcGFjZT4K
ICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTU0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICA8ZXhp
ZjpQaXhlbFlEaW1lbnNpb24+MTUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KIDwvcmRmOkRlc2Ny
aXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmIwZDBmZDFiLTAxZjkt
MTFkZi05ZjUxLTk2NjFkZDMxMGVmOCcKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20v
cGRmLzEuMy8nPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv
dXQ9J3V1aWQ6YjBkMGZkMWItMDFmOS0xMWRmLTlmNTEtOTY2MWRkMzEwZWY4JwogIHhtbG5zOnBo
b3Rvc2hvcD0naHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyc+CiAgPHBob3Rvc2hv
cDpIaXN0b3J5PjwvcGhvdG9zaG9wOkhpc3Rvcnk+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRm
OkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDpiMGQwZmQxYi0wMWY5LTExZGYtOWY1MS05NjYx
ZGQzMTBlZjgnCiAgeG1sbnM6dGlmZj0naHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8nPgog
IDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgPHRpZmY6WFJlc29sdXRp
b24+Mi8xPC90aWZmOlhSZXNvbHV0aW9uPgogIDx0aWZmOllSZXNvbHV0aW9uPjIvMTwvdGlmZjpZ
UmVzb2x1dGlvbj4KICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0
PgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6
YjBkMGZkMWItMDFmOS0xMWRmLTlmNTEtOTY2MWRkMzEwZWY4JwogIHhtbG5zOnhhcD0naHR0cDov
L25zLmFkb2JlLmNvbS94YXAvMS4wLyc+CiAgPHhhcDpDcmVhdGVEYXRlPjIwMTAtMDEtMTVUMTg6
MTY6MzArMDE6MDA8L3hhcDpDcmVhdGVEYXRlPgogIDx4YXA6TW9kaWZ5RGF0ZT4yMDEwLTAxLTE1
VDE4OjE2OjMwKzAxOjAwPC94YXA6TW9kaWZ5RGF0ZT4KICA8eGFwOk1ldGFkYXRhRGF0ZT4yMDEw
LTAxLTE1VDE4OjE2OjMwKzAxOjAwPC94YXA6TWV0YWRhdGFEYXRlPgogIDx4YXA6Q3JlYXRvclRv
b2w+QWRvYmUgUGhvdG9zaG9wIENTIFdpbmRvd3M8L3hhcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRl
c2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOmIwZDBmZDFiLTAx
ZjktMTFkZi05ZjUxLTk2NjFkZDMxMGVmOCcKICB4bWxuczp4YXBNTT0naHR0cDovL25zLmFkb2Jl
LmNvbS94YXAvMS4wL21tLyc+CiAgPHhhcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9z
aG9wOmIwZDBmZDFhLTAxZjktMTFkZi05ZjUxLTk2NjFkZDMxMGVmODwveGFwTU06RG9jdW1lbnRJ
RD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlk
OmIwZDBmZDFiLTAxZjktMTFkZi05ZjUxLTk2NjFkZDMxMGVmOCcKICB4bWxuczpkYz0naHR0cDov
L3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nPgogIDxkYzpmb3JtYXQ+aW1hZ2UvanBlZzwvZGM6
Zm9ybWF0PgogPC9yZGY6RGVzY3JpcHRpb24+Cgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAg
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
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVu
ZD0ndyc/Pv/uAA5BZG9iZQBkAAAAAAH/2wCEAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQ
DAwMDAwMEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBwcHDQwNGBAQGBQODg4UFA4ODg4U
EQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAJYAmgMBEQAC
EQEDEQH/3QAEABT/xAGiAAAABwEBAQEBAAAAAAAAAAAEBQMCBgEABwgJCgsBAAICAwEBAQEBAAAA
AAAAAAEAAgMEBQYHCAkKCxAAAgEDAwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcV
sUIjwVLR4TMWYvAkcoLxJUM0U5KismNzwjVEJ5OjszYXVGR0w9LiCCaDCQoYGYSURUaktFbTVSga
8uPzxNTk9GV1hZWltcXV5fVmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZ
aXmJmam5ydnp+So6SlpqeoqaqrrK2ur6EQACAgECAwUFBAUGBAgDA20BAAIRAwQhEjFBBVETYSIG
cYGRMqGx8BTB0eEjQhVSYnLxMyQ0Q4IWklMlomOywgdz0jXiRIMXVJMICQoYGSY2RRonZHRVN/Kj
s8MoKdPj84SUpLTE1OT0ZXWFlaW1xdXl9UZWZnaGlqa2xtbm9kdXZ3eHl6e3x9fn9zhIWGh4iJio
uMjY6Pg5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6vr/2gAMAwEAAhEDEQA/APVOKuxV2KuxV2Ku
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
irsVdirsVdirsVdirsVf/9k=

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/imgs/logo-gene.png

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/b
AIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgIC
AwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAQwCBAwERAAIRAQMRAf/EAJgAAQABBAMBAAAAAAAAAAAA
AAAGAwcICQECBQQBAQACAwEBAQAAAAAAAAAAAAADBAEFBgIHCBAAAQUBAAICAgEDAwUAAAAABAEC
AwUGBwAIERITFBYhMSIVFwlBUXGBMxEAAgEDAwMCBAIHCAMAAAAAAQIRACEDMRIEQRMFUSJhcTIU
gRWRsUJSYiMGocHRM0MkNLThgiX/2gAMAwEAAhEDEQA/AOvn6Sr4/TxSnilPFKeKU8Up4pTxSnil
PFKeKU8Up4pTxSnilPFKeKU8Up4pTxSnilPFKeKVl16S3I1F2yc8ixkp1h5p1MhLhKsW7FpxKzE2
9ze25tQbFKLZf6Xmq00gWF6fV9hGP8/0+UXSefxnJwNoG7+bjtMSS4AAI0liAT+7NbLxbBOVuJj2
PeJiFJJjrABj4xW9oMaGi6PBg6uvpxs7Ve0HSuaTiT0tbYz6zI0PouTvKYPoFjZjlWu7ki1llLYv
WzIIa8hzURGxwwMi+dsTk4v3DljlbiY8mpG1jy9hKAWT2gL7QLfMz1gAXN2lA2DOy6AyBg3DcdWv
e/8AcI18e6koEfqhywqE1CDNxl/V7pulqhqysDhzu433Lt24x9WQMPE8DG6gPIFEspB2xggWQ6yj
tayZ8TOm8CG/OcwIhcb8jGpknciZEifVlLAbzcqYOk1p/KQPH4zN3XExECzMrafwmD7RYEW1rTl5
3NczTxSnilPFKeKU8Up4pTxSnilPFKeKU8Up4pTxSsp/UGvdadO01fLaVtJVWXF+00l9b2azfr1V
Vpuc32XS2Vo8c07h6ayuhjCla1yxgwTyKnwxfNP5ttnERgCzjPiIA6lXDR+IBA+JFbDxo3Z2UkBT
icEnoCpE/gSCfhNb+DVSHvR6kNcN8e7nXpUSdronOgb/AMccD/2Y2yNR74JI1bI16IrXMe1U+UVP
Pm638cIv/wDPx/8Aerrz/wAszb/dP/1q1y+5okUXqjxQgKzBLLseFeij72sZIn7dEFnecd1grELb
9Fa0m+K17pIWK5JVgCkd9fonz51HgiT5nkBgQo5HLg9CWfDP6At/iRWl8mB+X4iCJOLBI9IXJ+vd
/ZWnrzuK5qnilPFKeKU8Up4pTxSnilPFKkWayeg15hQWfA/dlBAItbGaYoKur6ysFdGyewtLWzJD
rKwJk08caSkTRsdLIyNFV72tWLLmxYFDZTAJgakk+gAkk/IaXqTHjfIYQTAk9AB8SbCqejzF9krW
el0NbNW2MA4ZjoXuhnilBsBoDK+wEMEknCOrrAQmOWAiGSSCaORrmOciovjFmx5kGTEZQkj8RYgj
UEHUG4rD43xttcQ3+On4V4aMeqsRGOVZP/miNX5f8uVifRPj/L/JPj+n/XySvNGse9URrXOVXNYi
NaqqrnfP1anwi/LnfH9E/uvilSIfH6YoEOxFpjCBLGGUgB0DWSymjjy2kJM4grHuKIhFkpCvyuYx
UiSFVf8ACfCrEc+JWKlgCNfhp106iPnXsYshAYAwf/P+BqUco33Q+X6v+Z80kaLpQaHQwqZNmqXU
wj0FjVlVujklrNDVXFYoklRPPDPK+FfpC96fZEVfIuZxuNzMPY5d8RZbbitwZW6kGZgi+te+PmzY
MndwfWAegNiINiCNKyNyvvN7dxR1dJlNvXfjy7LS4yocHM+XFuxbK7IWddZmZKc/HEEZz9TERGDL
+rJH9QVljan1c5F1eb+nvCGcmbGZeAx7mQb5YEbob3S8G/WDV7H5XyVkxuIW49qe2ARb229si3Sr
UdA9lu39ayqc+2mhEu6Cw1VZspa8XF4+rsbXXg0aZSuvCralzwN7Y2KUH1BYj53sWBjI0b9WMRLn
G8T4/hZvucClcgQrO5iApO4iCxAE301vVfNzuVyMfZysChYNG0CTEAyBJtarb6fmm3xwsZuho3Bj
OtZqGaSA+rtP0L4eFs89DcMqTjpKS8jhVXKGYkBPwx/+H+D/AK2sPL4+c7cTSYnQiR6iQJHxEioM
mDLiEuIEx0N/Qxofgb1E31liwISxeAW0A8k0IExw8qDGGVzA5DxRplb+OacKOwgdKxqq5iTMVUT7
J8z703FZG4AEj0BmP0wf0VHtaA0GD/dXJdXYAi1ZxYksAl0LOdVTyIiMOEGPMq554fhVVWR2AE0S
/Px/nGvmFdWJVTLKYPwMA/qINCpABOh0/VXw/VyIjlRUaqqiO+F+FVvx8oi/2VU+U+f/AD57rFPq
76q74X6oqNV3wv1RzkcrUVf7Irkavx/3+F8xSuPM1inilPFKeKVkDnaq55nWajO9byHQMHR9IqKw
esvrDFHsfGfmtDVaQZyUt/Jnx9HTFKJ+AqKMljolljmT7/j/ABSazK+PlumXhPiyZMTGQGGjKV1G
7abyLXuLTIuorYFZOSrojgQSvoQdDEj1v8au0L3jlFSHcAZ+ntKj84VK4wwfIhAibecCguKi0pLD
OUm3qqmizlkecwmMaf8A1YRrJJHSDvnjY+SkfHcxyrZGDXMDcTskgghihJYARI2nSDBtYHM46ghA
RYdPqgEEQGAAPpcfCa86n9i8/JZHPv00T42fvA4u2UZSSOdgl5WlplJz4lVpM4cFJMTTrHMwI4N6
xEPn/I6ZHMk9v4vKEHb2zYuP3zuJ9xKsDraQdIiNMLzU3Hfu/hP7tgLQR6dCNZqvN36nW/DbOXsc
zTQAbKzr566lWscRotRbDEBasyrp9dTXM0lvm45YpJYLqMiGYp31ImgeQ2fyPGv2jAR3JUGTPtUX
UEqRZo1WIGgMQPMXffcqwx06k6wCDcfxddSJmvYexGIXX2VvnP5bnRLC6vSgrUKrACs6UDSHdPMK
bAGFo/v9hE3Q6PijMahCjyfMif4qpfGcjsBMuxmCgEEkglRj6leuw3i0istzcXdLY9ygk3i4B3n1
/iHXpXY7veBXKhUFRd9BAJiz9zRjGOqWrPS1l1zMnKk0bCW7p404U+hCEknaAFViSwOSZ0D541a/
C+N5PeOV1xEbgYnUjJun6NdpMSWINpg0bmYe2EUuDtI00BSI+r1jQAdYmoTzbrFFkMAwE4jZBxD1
vUaKyzNPTgz5HoFhuskVUU5mjuCbYRRCaFSGMe39QqeIWNjxXMfJJ5Y5XCyZ+TuXtkk4yGJO5AjS
QogzPzAkmdBUWDkJjw7W3AQ4IAs24QJM9PkbaVIdz0ifb6jEbnA5TVaasxO6stewaTJ28YVAJA6u
1gvP4bJNHs4lqs7SZcqb8Y7K4AcVss0IcTPzKkXH4o4+HJx+S6I+TGF+oSTdd8bVuxYC+4kwCxtX
vLnOXImbCrMqOTobddsy1gAdIESY1rxq655fzTbFESG9fDtzyLezfJc52LMWGNbb52ybnWGUomqg
t9DYSLoEklOGPppohfiQR6qQ5GSMnL5fHAjAUAAs24NDDdB2wotoQwmx0rwrYMGWZyBrm4jbItaZ
JvqCttNanVj7EYY+1INDvN/Twx3GvuKdIamaKGvO1We5QMefINUdFq7eMg87HXEUyjWsJEjj45pi
JmSFQvrp4zkKgVlxMdqg31CtkgXQiwZTdSLEACAamPNwlpBcXJFupCSbMDeDoQbySbivBP7HyW60
8RZcesrM/Ub+v31awPK0RRhw4HRema92V/Qk1EAlQ0is3sEP7CTkxNlEcixOa5i+SLwebjxbRsOV
sRQyxgSmNd07ZN0NoBg614bk8ZskncEDhhYfvMY1tZvjppXTPdlpNdpKrLaQywhwRsPOM4YLcnVl
dWZvIVPK7XE9PLpnFESiVtucZPHZgpCx0tiaGP8Ala6f8bPM5eDkwYjmxAfcje0gElmOQPjnqQB7
TP0gmLTROUmRxjeeydovAAAQq8fHqPUgdakDuhAanDaDIj5Poslt1On0Q/P8kFkT7WnKlB2NfNmL
XNvG0lfWnB0ucyKU0xEVMdYQEDS/UlIEWFkX2rYeQucvi2YWXexYAiVO4N7SQSzbwNwUgi03PvvL
kxNjCvuyA7REjWxFwLARO0mesWrBtUVqq1U+FRVRUX+6Kn9FT/0vnQ1qq48VinilPFK3U6L2n9Yr
DdbmXadBs+24vqHbYukUFLocbrpsvxIWlwO/qaI4mq1deS63KN1enrv3Qq+vMC/Qr1c6MhyMGdwW
Lw/l14+McfEOPnw8fYSGXdlJdCRKm0KrQWYGTqNa6h/IcBsr91zlxZMu4AqYSFYAwRe5EgAiB10r
4B9z6mRYnRdCtKzjbcxY9J02X0ANfyR1jf8ATIAvX7JRSg8/kIzNRa8yfZdFLQ+M/wDSz4SFtlni
bAiPEl9Hj+aPIXjIc/eGJWUnJC45zNd/cRkhBES5iAZ+oYGXxwxNmYYu2chB9klv5Y+mwKy15hRN
xGlQ247X6aUmWoJ85Vc81WrynPtwDnornirEgJvzuUY8THjaytdjKqntDQunVlhO+Qkm4SN86zOO
ljnkjjnx8DzuTMwytlTC+VC0ZegyMW2neSAcZUWC6RtBE1G3K8YuMFAjZFRolOpQRI2gH3g6k/O9
SXOexXqnqDM9peuXWKuDXci4hhb3On8QYqVsGZxWtpt/T1RVZgLOCCZNaRXkCtrpqyJtekX4TWqM
gSxZfF+Zwq2LhLkVe/lcMMuu51KEguP2ZB3bvdMrfdXtOb4/IQ/JKE9tFIKaQpDAQp6wREWi9oqG
0XsD6liVuQzdjkOaTUsM3NqHTGS8Qrp7t2Un9cZ6bqhKXzc6l3NdE9tHEmjNZKp7XR/mGkbC6VXz
5PG+aZ3yq+XuRkKjumN3fnHbdEdqbadDeKiTmeOCrjZce32g/wAsTHbh7xM74vr1FqaDuPp0PUZq
fLY/nKk0/NdqmZAO5ZNY2+d18nDJKTO0e7YfkRqHXPM7C1lhGWQVffjl+5Lyx4ZnDNYvH+cLuM2T
LDZU3EZIDL3ZYpDbljFaAEtAAJE0fleMCqcapIRoBSSD24Aa0H33mW9ZExVp/YTt3INtxe6xHOSa
KoIJ7DgekOzVVz7+NBGEnev+PznQ7KnnGphw6dkHUa+zWQRHjxSRTMcMx0CIjLnjPH87j89eRygz
AYHTcX3ERmZkBvJ/llb30veq/N5XGy8U4sBAPdVoCx/pgMRa3uBt+i1TPvvsTyJ/F/4pwLS02fnO
6Fkb7P5DK82NxF1j8O7ieq59sKPcap9bAHuNRNaaIiKU/wDZOmniLklYR9X/AIoIPG+M5v3/AHvJ
IzAYmDMzhwz91XUosyiwotAAIAjqZeZzeN9r2+GwUlwQAu0hdhUhj+0ZOsnXXoJl0v2T9YNfbaiR
QcxoYtoD1QK/v73linapIBvWHm+V43BU6KypZb2ibW9jzpascHNC6BI0llVo8ny6DieK8vgRBLqc
ZxkKMkL/AMjI2WVBgziYagzoL1Jn53ByM1lbcHklJP8AlKEgkSPeDof7KoWXdPT250U6w57nVFHT
7HfC80u4uIDtpM3T3XEKWtx+p22fCz6y7etpuxQlGShmwWJUb5PzMgfAjYVynjvOY8QlsrFkTuDu
3YjKSyqS3sJxQJBUdCZvRuX413+lBDNtOywBQBSwj3APJgyesRaoZp+yeo01f1OQHIZg/W0lZSf7
cW9bzCCozm/2O55jTc465oXUEocCZfO5TRiT6vN1pTYWRGyO/FHA+T6MsYeD5oNhDO4wsTvBySyK
mQvjWZ9zMpGN2EyNZiaiycrxxXJCqcgA2kLAYsoVzEWAMuoPX0q7Gl7D6UT2ISZE7mFVpAs5v6PL
7244CRc5PPxEa7mNnjptXhYef1Q15YuxAGjroXf6dZy1xhXw8udrmGJSxcHz4U98ZmxFkLIM0M3t
yBtr7zA3lGPuUMB9I+mrD8nxe4ds4w4VgGOOQLqVldok7dw0ME6nWork+6er47KWIW1x2V1NXm7S
uB2Oi4pb6DG1NUZ7A9L02ty9dz9JNa+nM3XKtBWjhyRSGsBFSWvcZA57p0mzeO8udxKu+FnBKrlC
sSMKKrF/bITIrE6SYbaYio8fL4AgAquQKQGKEqB3GJG28bkIA1gSsjWsAu212Ch2c2h5mSyLFbt+
h2OeyzopGWGApTd1rqugxlw+Qoz9iyCz1QIUsjXq1YTI0+XKivd0nAbknB2uWP8AcY9qs3RyEUlh
8CxI+YNajlLh7u/B/lPLAdVG4gKfjAB/GrQeXqq08Up4pWTHp3scdgvZPl+n35wVXkRLG8r7ezsx
VMra5NBlL7PBH2MCQkO/08OytYZJ3ox6xRNc/wCF+vmp85gz8nxWbDxgTmIBAFidrBiB8SAY9dKv
+Ny4sPOx5MxAxyQSdBIIv+JrLVDvXXG80wGL35nG+vbPknLjPwiA6a8Nxh2m3/s/WFkiwaPHWObK
01nR8mtTTZ4kIfCIjURfsrHN80u3ymfl5M/GGfBx82YXKgMFTjn9lgwUHIABaTWxnhYsCYsxxZMu
PH6nbLZR1WJIQk/CpGWN6S2lxn+eXuropefZZvX7XNaBmn0dhPS1mP8AZy90dRi4FaZEO9Os8XfM
OLI9iyvKeLO17ZXPV0Snz6I3Kxo33L9oMu1RJbAFLaf6eWCekbhpXsjxTMuF2HZXeQZNguUkL/7p
YfGDXOcp/wDj/ssxxSyt67FBEXVvlrTcxzbjQg2VabYV21N6BktJWpoJ7MbLVR0YA1aYwQBY2xjO
jJMcQQjcZX/qVM3IRDkIVWCexSCAUCMpiNxElhLdZCwKIvh2x4mYKCSC3uMizbgRMwLAGB0uZNdO
Qlenrs1xnoVj/tpyzeDdcwmg0ENTstiXaV1eR1E2O/rhEN1DrfLVefxCwvX92vLEbBA2aG0kKlfG
meaPODNn4yd7NxjgdRKrBPbEEwsMS86MDJgoAJpxj43ZizHt483cUmGMj33GsgBfUEdQ01JMM/0y
6BLzGx6m7iAVZX8a5djbmuhvdBnrkO1J2/RoegXpz4NXVN/kFPVsq5/2JWWJkiHI+GF8LXvgi5H5
7xhmXh/cFznyMDCsCNqbAPafaTuEDaLXM6+8X5Zm7Z5HaCjEqm5Bnc246i4EXub2EaU8470z3X8N
/n8XEQBweA8oy6WUWmvKoiivKubaA7wnQZsPR5wi7vY5Iq6T9sY6a2/G5rxwzmTOdDnL+e8fufbf
cEnk5GjaDIO0ptYq0D6rEBZ1ZYuT8sy7e72gBhQTJEEbt0iRJ0uDPoDNtfbbTHx+q17QNvRn7V3s
Vn7QOiQ4thJGPg5zqwib1tS9WjKNHbTQQrO5v5mOkRn9lVPOl2Zz5hcu0/b/AGpBMD6t6mJ+UmNK
027H+XlJ/m94GPhtN4+dbMeobnh3QL7kQWn6Ng7zigsPO/5Nl07j81ryKXixNcVBPymkxVJc5OSH
cxo2c6PQkOfIrnrGn7P1i5Ph8fyHGx52w4si8879rdq98s/5hYhvZoNg+dr73kZeJmfGMjoeL7ZH
c9Ej6AoI93Xd+uoRznIem/XNLjKGu5/zCvvCKTneqsKWm2XS4hrKxufXvrWq63Q237eptjq/Nc+3
GWpnPURULB/JJ9pZ/wAqp5Y5WfznCxZMjZcxxhnUErjsBmxrjI9oBZ0ZtbG1hFRYcfjOQ6oExhyF
JALanG5cG5MKwXS4+NQ+5B9G6qbPQXFPzEmy0m54Dnum/wAI2fQLTO87pLeq053YL3mRTb0oi4rQ
UrqmGecl9mwMoydsH3VrFbPjb+oXDFGzBEx5mx71QM5BUYhksIJliANsgCYqJl8UsBhjLM+MNtZi
FBB3lb3AtczBJipyJlfQUrbaoQ8flFQJPjs5FMZ/uJfWWWpLR9huGWtpnqkDaI8+UimhplJYBoLO
xEnYjoQJHEkRwV2zf1IOOjKczHe1tihiISASUtfdEoqkatYEzDH4g5WBGMDaP2iQDLSQN3pt0Ykd
BcxjV7AZj1iqvXbnhPMrHDHdXDt8BBdnZi/uiLW+orrm5tpsTryittDbuGIqt3DEK9ZBKqaCX7Mj
GQZ0Uj9r4zN5Z/KZRyxkHDKvAYCAQ4CgEKNUvqwI6zNUeZj4C8JDgKHkArMEyQVlpBJ0a2g+UVgP
50laenilPFKeKU8Up4pTxSnilPFKeKU8Up4pTxSnilPFKeKU8Up4pTxSnilPFKeKU8Up4pTxSnil
PFKeKU8Up4pTxSnilPFKeKU8Up4pTxSv/9k=

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/imgs/logo-fcri.png

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
RpejRpejRr//2Q==

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/rss/imgs/rss.png

iVBORw0KGgoAAAANSUhEUgAAABUAAAAcCAYAAACOGPReAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAABNFJREFUeNqsVV1sVEUU/s7cu7tt+YcGC0ZTEUEFGotSRI0lMVqBGBr1
AX0RfNEHTDAhsVF58F2jxgcTTMQHTH0QEDAxRgyCKFrFIsFEoNAWWgq0dLfb/9177/GbuZfSEivG
OLtn750zM99853clOPPDveg4UQXjNYpGUBGIGMBQIO47Yahee+E3XtQoBPzMeixb96U3bU5kpP1E
lRTDRjEZ6PT5QOksqPGA0SHIcN49URyJpTACKRacKAUFyugo5yGkP7sX7c3L7SW+DuYbRXhTxULI
sjrA3koA7e+G9rRCLp8meA7ipcjaOKKKCBLJGHP7pkGAMNdd7llQxwChM8FtsywzUyAUlFdCF9RA
245BWn/mZf2Al45d4EwX906vQYICokIh7ZgipAnC23raoacOE2wqdMYtwPQKsvMgaYIvehRasQj4
fT+k+yyBS8bc6i6wrKMi34sxqPb1AjNmczNN7TjBA2RaUkbdfER3PACpXAHxMxBeoqtegDZ9Bjnf
DKTLHFsbWAc+TN/39c52oHLsK2BWOXRxDXBPLUBfItcBXDgOuXgSevZHaPXTMHPpcz8NXfk8zWQQ
W34iGDNkiMHszwI9ncC8pSuIud1XFOBdbYWmVgMrN8RWDfTQFYeAozshZz6G/roL0eNbYGqeo0t8
oGYDGe+G13mKruM8olOLo7TSRC4s4htIiq5IpcZSUaaWw9z/DGTjR9CldTBX22B2NSA6vjdeL5sJ
rH+DRMg0naLf6R7fZ3LEGWFstJU+1NajiPZuQ9TUCO27PAYuG95H9NhmxrkIs4/rV1rig4trEVWv
JclBqE8wTyzFmKmdRBmakLsA78gOmM+3Ah8+RfBPnf9d4qx9E2HVGmCgC/rt23FgrP7hTbQyBfVY
iZ6JgS2oGrW/MKSPFKWklI6/CNnXABz+ID5sI1z3OjBnHrzTBxB1Ho/1t1dDb6uCS0sLnNQDmVrW
TA1+wtqXoS/uhD7xGswUFsDhdxC1HIw3lt8JXbaOJZmFnNyTnObhhQ8xzQMH6AgixgOCUejCVTB1
DczLByG1ryBa8iRLkXXdtJ3RDWKQu9dAS5mfXc1xOdsxfwkT02P/MbFFjqnrSLyhbMb16NsfRtgB
9P4JzXfGC+V3AdMYvIFLUPYDN+ZUIkqXJM7HdaaaKYWcO4Toj/3cnKXJB4CWrwk8lfuYf1mWZmEA
bu8UXhawevq7qBuEdRyYkuq6ZGy+H3l+kzFSI+EozP6tbH9zYYo5W2vcTJ9JGvL9W0kjYXcK88xP
5vS+zXFFFQMHxhxCsXR2b8Yy7br1kSOmkI+9wLr3hntYNcJsYArbrGCqmDAHM3IJZvgKTQu4Rv1Q
N0y+A4auMNEIhsT/Lbf02V3Ofe3nz08f3L1tQUXfL6/6vqbhm0hTXiA+adiy85nQ9t1aVrRdMjII
bP9kbyqGPoLQ78fMb7LLX+pZsnbTF0mPVVzJD4t9/ldpOdc24byb/N/DJM9KSj1lB2XPuPnBROrH
nZlMP/7P0VFerfHYQtlIqaRkKfWJZBPdZPoJ7hgP2jxu4T5Ka3IQ4w5Opp8U9OANi+8mTKzsoMy8
if5fgV5jUZ9YseUm+jExkwRwYxIwtnjY3Gu7if5vo3/j+ITyHSWb/BHb7vHeP+gnjL8EGADQZynw
GYReKQAAAABJRU5ErkJggg==

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.ca.globaltalentfcri.com/articles/1994/imgs/triangle.png

iVBORw0KGgoAAAANSUhEUgAAAAkAAAAQCAYAAADESFVDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAARtJREFUeNpi+v//P4ODg0MdEGuA2NgwEwMQsLGxNfLy8k7w9vYWYMAC
wIqEhIQY9PX13dXV1Vv9/PzY0BWxwBSZm5sz/P37Nwto/DOgUCuGSUDrGCQlJRmMjY0ZLCwsyjMy
MrIxFIEAMzMzg7i4OIOpqSkv0NTapKQkewxFIMDKysogLS0NslrcxMRkaUxMjB7cTcgAZLWCggLI
WumvX79OCgsLS8ZQxMjIyMDJycmgqqrK8OPHD/tv375NZcEWLiCFPDw8DBoaGgxARZpMDDgASCE/
P/92HR0dZ5yKgGAGMMzCJSQk7mBT9BuIK3///p3NwsLyGZvvvgAxKCAXgYIDJVqg4CHQ+FSgW3Zj
jWAgOAZU4INNAQgABBgAj49ZNOjrjwEAAAAASUVORK5CYII=

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ca.globaltalentfcri.com/top/css/top_ie.css

* {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
BODY {
	BACKGROUND: #ebebeb; COLOR: #000000; FONT-FAMILY: 'Arial'; TEXT-ALIGN: =
center
}
#estructura {
	BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; FONT-SIZE: =
12px; BACKGROUND: #ffffff; PADDING-BOTTOM: 2em; MARGIN: 0px auto; =
OVERFLOW: hidden; BORDER-LEFT: #ccc 1px solid; WIDTH: 81.2em; =
BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: left
}
H2 {
	FONT-SIZE: 14px
}
H3 {
	FONT-WEIGHT: normal; FONT-SIZE: 12px; COLOR: #ffffff
}
UL LI {
	BACKGROUND: url(../imgs/ico.cuadro.gris.gif) no-repeat left 0.3em
}
IMG A {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
IMG {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
#cap {
	BACKGROUND: #d5d5d5
}
.logo {
	BACKGROUND: url(../imgs/fons-cap.jpg)
}
#cap A {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
#cap DIV A {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
.top_menu {
	PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 1.1em; OVERFLOW: hidden; WIDTH: =
81em
}
.top_menu UL {
	MARGIN-TOP: 0.8em; LIST-STYLE-TYPE: none
}
.top_menu UL LI {
	DISPLAY: inline; MARGIN-BOTTOM: 0.3em; MARGIN-LEFT: 0em; MARGIN-RIGHT: =
0.2em; TEXT-DECORATION: none
}
.top_menu UL LI A {
	FONT-WEIGHT: 200; COLOR: #ffffff; FONT-FAMILY: 'Arial'; =
TEXT-DECORATION: none
}
top_menu UL LI A:visited {
	COLOR: #ffffff
}
LI.top A {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_top.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; MARGIN-RIGHT: 0.2em; =
PADDING-TOP: 0.3em
}
LI.mon A {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_gris.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; MARGIN-RIGHT: 0.2em; =
PADDING-TOP: 0.3em
}
LI.mon A:hover {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_mon.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; PADDING-TOP: 0.3em
}
LI.ciencia A {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_gris.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; MARGIN-RIGHT: 0.2em; =
PADDING-TOP: 0.3em
}
LI.ciencia A:hover {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_ciencia.jpg) =
no-repeat; FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; =
PADDING-TOP: 0.3em
}
LI.divulgator A {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_gris.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; MARGIN-RIGHT: 0.2em; =
PADDING-TOP: 0.3em
}
LI.divulgator A:hover {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_divulgator.jpg) =
no-repeat; FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; =
PADDING-TOP: 0.3em
}
LI.galeria A {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_gris.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; MARGIN-RIGHT: 0.2em; =
PADDING-TOP: 0.3em
}
LI.galeria A:hover {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_galeria.jpg) =
no-repeat; FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; =
PADDING-TOP: 0.3em
}
LI.postit A {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_gris.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; MARGIN-RIGHT: 0.2em; =
PADDING-TOP: 0.3em
}
LI.postit A:hover {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_postit.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; PADDING-TOP: 0.3em
}
LI.sistema A {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_gris.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0.3em; WIDTH: 10.8em; MARGIN-RIGHT: 0.2em; =
PADDING-TOP: 0.3em
}
LI.sistema A:hover {
	PADDING-LEFT: 0.3em; BACKGROUND: url(../imgs/pas_sistema.jpg) =
no-repeat; FLOAT: left; PADDING-BOTTOM: 0.3em; MARGIN: 0em; WIDTH: =
10.8em; PADDING-TOP: 0.3em
}
.breadcrumbs {
	MARGIN-TOP: 0.5em; FLOAT: left; MARGIN-LEFT: 1.5em
}
UL.top_subseccions {
	MARGIN-TOP: 0em; FLOAT: left; PADDING-BOTTOM: 0.8em; MARGIN-LEFT: =
0.3em; WIDTH: 11.5em
}
UL.top_subseccions LI {
	DISPLAY: block; MARGIN: 0em; COLOR: #2b7a85; TEXT-DECORATION: none
}
UL.top_subseccions LI A {
	FONT-WEIGHT: normal; COLOR: #2b7a85
}
UL.top_subseccions LI A:visited {
	FONT-WEIGHT: normal; COLOR: #2b7a85
}
UL.mon_subseccions {
	MARGIN-TOP: 0em; FLOAT: left; MARGIN-LEFT: 0em; WIDTH: 10em
}
UL.mon_subseccions LI {
	DISPLAY: block; MARGIN: 0em; COLOR: #979caa; LIST-STYLE-TYPE: none; =
TEXT-DECORATION: none
}
UL.mon_subseccions LI A {
	COLOR: #979caa
}
UL.mon_subseccions LI A:visited {
	COLOR: #979caa
}
UL.ciencia_subseccions {
	MARGIN-TOP: 0em; FLOAT: left; MARGIN-LEFT: 1.3em; WIDTH: 10em; COLOR: =
#068d07
}
UL.ciencia_subseccions LI {
	DISPLAY: block; MARGIN: 0em; LIST-STYLE-TYPE: none; TEXT-DECORATION: =
none
}
UL.ciencia_subseccions LI A {
	COLOR: #979caa
}
UL.ciencia_subseccions LI A:visited {
	COLOR: #979caa
}
UL.divulgator_subseccions {
	MARGIN-TOP: 0em; FLOAT: left; MARGIN-LEFT: 1.3em; WIDTH: 11em
}
UL.divulgator_subseccions LI {
	DISPLAY: block; MARGIN: 0em; COLOR: #979caa; LIST-STYLE-TYPE: none; =
TEXT-DECORATION: none
}
UL.divulgator_subseccions LI A {
	COLOR: #979caa
}
UL.divulgator_subseccions LI A:visited {
	COLOR: #979caa
}
UL.galeria_subseccions {
	MARGIN-TOP: 0em; FLOAT: left; MARGIN-LEFT: 0.3em; WIDTH: 11em
}
UL.galeria_subseccions LI {
	DISPLAY: block; MARGIN: 0em; COLOR: #979caa; LIST-STYLE-TYPE: none; =
TEXT-DECORATION: none
}
UL.galeria_subseccions LI A {
	COLOR: #979caa
}
UL.galeria_subseccions LI A:visited {
	COLOR: #979caa
}
UL.postit_subseccions {
	MARGIN-TOP: 0em; FLOAT: left; MARGIN-LEFT: 0.3em; WIDTH: 10em
}
UL.postit_subseccions LI {
	DISPLAY: block; MARGIN: 0em; COLOR: #979caa; LIST-STYLE-TYPE: none; =
TEXT-DECORATION: none
}
UL.postit_subseccions LI A {
	COLOR: #979caa
}
UL.postit_subseccions LI A:visited {
	COLOR: #979caa
}
UL.sistema_subseccions {
	MARGIN-TOP: 0em; FLOAT: left; MARGIN-LEFT: 1.2em; WIDTH: 11em
}
UL.sistema_subseccions LI {
	DISPLAY: block; MARGIN: 0em; COLOR: #979caa; LIST-STYLE-TYPE: none; =
TEXT-DECORATION: none
}
UL.sistema_subseccions LI A {
	COLOR: #979caa
}
UL.sistema_subseccions LI A:visited {
	COLOR: #979caa
}
#centre {
	BACKGROUND: #ffffff; FLOAT: left; WIDTH: 81em
}
.foto {
	FLOAT: left; WIDTH: 28em; MARGIN-RIGHT: 3em
}
.destacat_foto {
	MARGIN-TOP: 1em; FLOAT: left; WIDTH: auto
}
.destacat_foto imgs {
	PADDING-RIGHT: 0em; PADDING-LEFT: 0em; FLOAT: left; PADDING-BOTTOM: =
0em; MARGIN: 0em; WIDTH: 28em; PADDING-TOP: 0em
}
.titols_destacats {
	MARGIN-TOP: 2em; FLOAT: left; MARGIN-BOTTOM: 1em; WIDTH: 18em; =
MARGIN-RIGHT: 1.5em
}
.titols_destacats H1 {
	FONT-SIZE: 22px; COLOR: #ffffff
}
.titols_destacats H2 {
	COLOR: #2b7a85
}
.zona1 {
	FLOAT: left; MARGIN-LEFT: 1em; WIDTH: 80em
}
.zona1a {
	FLOAT: left; MARGIN-LEFT: 1em; WIDTH: 52.1em; HEIGHT: 23em
}
.zona1b {
	MARGIN-TOP: 0.4em; FLOAT: left; MARGIN-LEFT: 0.6em; WIDTH: 26em; =
HEIGHT: 23em
}
.zona2 {
	FLOAT: left; MARGIN-LEFT: 0.4em; WIDTH: 25.5em
}
.zona3 {
	FLOAT: left; MARGIN-LEFT: 0.8em; WIDTH: 25.5em
}
.zona3-horitzontal {
	MARGIN-TOP: 0.4em; FLOAT: left; MARGIN-LEFT: 0em; WIDTH: 50em
}
.zona4 {
	FLOAT: left; MARGIN-LEFT: 1.9em; WIDTH: 26em; MARGIN-RIGHT: 0em
}
.agrupacio_zona1 {
	FLOAT: left; WIDTH: 82em; HEIGHT: 24em
}
.agruacio-texte-index P {
	FONT-SIZE: 14px
}
.destacat_seccio {
	MARGIN-TOP: 0em; BACKGROUND: url(../imgs/barracurtatext.jpg) no-repeat; =
FLOAT: left; MARGIN-LEFT: 1em; WIDTH: 25.5em; MARGIN-RIGHT: 0.5em
}
.destacat_seccio H2 {
	PADDING-LEFT: 1.8em; FONT-WEIGHT: bold; FONT-SIZE: 16px; MARGIN: 0.3em =
0.5em 0.2em; WIDTH: auto; COLOR: #25656f
}
.contigut-quadre-destacat {
	MARGIN-TOP: 0em; BACKGROUND: url(../imgs/quadre-top.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 1em; WIDTH: 308px; HEIGHT: 222px
}
.contigut-quadre-destacat P {
	MARGIN-TOP: 1.5em; FONT-SIZE: 12px; FLOAT: left; MARGIN-BOTTOM: 1.5em; =
MARGIN-LEFT: 1.5em; COLOR: #ffffff
}
.contingut-quadre-destacat P SPAN {
	MARGIN-TOP: 1.5em; FONT-SIZE: 12px; MARGIN-BOTTOM: 3em; MARGIN-LEFT: =
1.5em; COLOR: #ffffff
}
.imatge_texte {
	MARGIN-TOP: 0em; BACKGROUND: #25656f; FLOAT: left; WIDTH: 277px
}
.imatge_texte IMG {
	FLOAT: left; PADDING-BOTTOM: 0em; WIDTH: 12em; HEIGHT: auto
}
.imatge_texte H2 {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; BACKGROUND: none transparent =
scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0.5em; MARGIN: 0em; =
WIDTH: 7em; COLOR: #ffffff; PADDING-TOP: 0.5em; HEIGHT: auto
}
.imatge_texte H2 A {
	COLOR: #ffffff; TEXT-DECORATION: none
}
.imatge_texte H2 A:visited {
	COLOR: #ffffff; TEXT-DECORATION: none
}
.imatge_texte H2 A:hover {
	COLOR: #ffffff; TEXT-DECORATION: none
}
.caixa_subseccio {
	MARGIN-TOP: 0.3em; BACKGROUND: url(../imgs/barracurtatext306.jpg) #eee =
no-repeat; FLOAT: left; MARGIN-BOTTOM: 0.3em; PADDING-BOTTOM: 0em; =
MARGIN-LEFT: 0em; WIDTH: 25.5em
}
.caixa_subseccio H2 {
	PADDING-LEFT: 2.3em; MARGIN: 0.5em; COLOR: #2b7a85
}
.caixa_subseccio H2 IMG {
	MARGIN-RIGHT: 0.5em
}
.caixa_subseccio UL {
	FLOAT: left; MARGIN-BOTTOM: 0em; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: =
1em; MARGIN-RIGHT: 1em
}
.caixa_subseccio UL LI {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 1.5em; BACKGROUND: =
url(../imgs/puntet_top.gif) no-repeat left 1em; PADDING-BOTTOM: 0.5em; =
COLOR: #767d8d; PADDING-TOP: 0.5em; LIST-STYLE-TYPE: none
}
.caixa_subseccio UL LI A {
	COLOR: #767d8d
}
.caixa_subseccio UL LI A:link {
	COLOR: #767d8d
}
.caixa_subseccio UL LI A:visited {
	COLOR: #767d8d
}
.caixa_subseccio UL LI A:hover {
	COLOR: #767d8d
}
.texte-tirat P SPAN {
	MARGIN-TOP: 1em; FLOAT: left; MARGIN-LEFT: 1em; WIDTH: 25em; COLOR: =
#25656f
}
.destacat-caixa {
	BACKGROUND: #67929b; FLOAT: left; OVERFLOW: hidden
}
.destacat-caixa IMG {
	FLOAT: left
}
.destacat-caixa H3.color1 {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; BACKGROUND: #25656f; FLOAT: =
left; PADDING-BOTTOM: 0.5em; WIDTH: 12.2em; PADDING-TOP: 0.5em; =
BORDER-BOTTOM: #cccccc 1px solid
}
.destacat-caixa H3.color2 {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; BACKGROUND: #67929b; FLOAT: =
left; PADDING-BOTTOM: 0.5em; WIDTH: 12.2em; PADDING-TOP: 0.5em; =
BORDER-BOTTOM: #cccccc 1px solid
}
.destacat-caixa H3.color3 {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; BACKGROUND: #67929b; FLOAT: =
left; PADDING-BOTTOM: 0em; WIDTH: 12.2em; PADDING-TOP: 0.5em
}
.destacat-caixa H3 A {
	COLOR: #ffffff; TEXT-DECORATION: none
}
.destacat-caixa H3 A:hover {
	COLOR: #ffffff
}
.destacat-caixa H3 A:visited {
	COLOR: #ffffff
}
P.titulets {
	MARGIN-TOP: 0.3em; MARGIN-BOTTOM: 0.5em; MARGIN-LEFT: 1em; WIDTH: 20em; =
COLOR: #979caa
}
.caixa-subseccio-horitzontal {
	MARGIN-TOP: 2em; BACKGROUND: url(../imgs/barrallargadaltok.jpg) #eeeeee =
no-repeat; FLOAT: left; MARGIN-BOTTOM: 0.5em; PADDING-BOTTOM: 1em; =
OVERFLOW: hidden; WIDTH: 51.5em
}
.caixa-subseccio-horitzontal TD {
	FLOAT: left
}
.caixa-subseccio-horitzontal H2 {
	PADDING-LEFT: 2em; MARGIN: 0.5em; COLOR: #2b7a85
}
.caixa-subseccio-horitzontal H2 IMG {
	MARGIN-RIGHT: 0.5em
}
.destacat-caixa-subseccio-horitzontal {
	BACKGROUND: #ffffff; FLOAT: left; PADDING-BOTTOM: 1em; WIDTH: 59em; =
HEIGHT: auto
}
.destacat-caixa-subseccio-horitzontal P {
	FLOAT: left; MARGIN-BOTTOM: 1em; WIDTH: 25em
}
.destacat-caixa-subseccio-horitzontal H3 {
	FLOAT: left; MARGIN-LEFT: 0.5em; WIDTH: 9em; COLOR: #c59390
}
.caixa-subseccio-horitzontal P.titulets {
	COLOR: #25656f
}
.caixa-subseccio-horitzontal UL {
	FLOAT: left; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: =
1em; MARGIN-RIGHT: 1em
}
.caixa-subseccio-horitzontal UL LI {
	PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; BACKGROUND: =
url(../imgs/ico.cuadro.gris.gif) no-repeat left 1em; PADDING-BOTTOM: =
0.3em; COLOR: #767d8d; PADDING-TOP: 0.3em; LIST-STYLE-TYPE: none
}
.fotos-caixa-subseccio-horitzontal {
	FLOAT: left; MARGIN-LEFT: 1em; WIDTH: 50em
}
.fotos H3 {
	MARGIN-LEFT: 0em; COLOR: #25656f
}
.foto1 {
	FLOAT: left; WIDTH: 14em
}
.foto1 IMG {
	FLOAT: left
}
.foto1 H3 {
	MARGIN-LEFT: 0em; COLOR: #25656f
}
.foto1 A H3 SPAN {
	MARGIN-TOP: 0.3em; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 14em; COLOR: =
#25656f
}
.foto1 P {
	FONT-SIZE: 12px; FLOAT: left; MARGIN-LEFT: 0em; WIDTH: 14em
}
.foto2 {
	FLOAT: left; MARGIN-LEFT: 3em; WIDTH: 14em
}
.foto2 H3 {
	MARGIN-LEFT: 0em; COLOR: #25656f
}
.foto2 A H3 SPAN {
	MARGIN-TOP: 0.3em; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 14em; COLOR: =
#25656f
}
.foto2 H3 A {
	COLOR: #25656f
}
.foto2 P {
	FONT-SIZE: 12px; FLOAT: left; MARGIN-LEFT: 0em; WIDTH: 14em
}
.foto3 {
	FLOAT: left; MARGIN-LEFT: 3em; WIDTH: 14em
}
.foto3 H3 {
	MARGIN-LEFT: 0em; COLOR: #25656f
}
.foto3 P {
	FONT-SIZE: 12px; FLOAT: left; MARGIN-LEFT: 0em; WIDTH: 14em
}
.foto3 A H3 SPAN {
	MARGIN-TOP: 0.3em; FONT-WEIGHT: bold; FLOAT: left; MARGIN-LEFT: 0em; =
WIDTH: 14em; COLOR: #25656f
}
.foto3 H3 A {
	COLOR: #25656f
}
.destacat_links {
	MARGIN-TOP: 1em; BACKGROUND: url(../imgs/quadre-gris-bo.jpg) no-repeat; =
OVERFLOW: hidden; WIDTH: 25.5em; HEIGHT: auto
}
.destacat_links H2 {
	FONT-SIZE: 16px; MARGIN: 0.5em; COLOR: #2b7a85
}
.destacat_links H2 IMG {
	MARGIN-RIGHT: 0.5em
}
.contigut-quadre-destacat-links {
	BACKGROUND: #d2e0e1; FLOAT: left; PADDING-BOTTOM: 1em; WIDTH: 304px; =
HEIGHT: auto
}
.contigut-quadre-destacat-links P {
	MARGIN-TOP: 1.5em; MARGIN-BOTTOM: 3em; MARGIN-LEFT: 1.5em; COLOR: =
#ffffff
}
.contigut-quadre-destacat-links IMG {
	PADDING-RIGHT: 1em; FLOAT: left; WIDTH: 10em; PADDING-TOP: 1em
}
.contigut-quadre-destacat-links H2 {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FLOAT: left; PADDING-BOTTOM: =
1.3em; MARGIN: 0em; WIDTH: 8.3em; PADDING-TOP: 0.5em
}
.destacat_top-links P {
	MARGIN: 0px; COLOR: #000000
}
P.titulets-negres {
	MARGIN-TOP: 1em; FONT-WEIGHT: bold; MARGIN-BOTTOM: 0.5em
}
.contigut-quadre-destacat-links UL {
	FLOAT: left; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: =
1em; MARGIN-RIGHT: 1em
}
.contigut-quadre-destacat-links UL LI {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; BACKGROUND: =
url(../imgs/ico.cuadro.gris.gif) no-repeat left 1em; PADDING-BOTTOM: =
0.5em; COLOR: #767d8d; PADDING-TOP: 0.5em; LIST-STYLE-TYPE: none
}
.caixa_sistema {
	MARGIN-TOP: 0em; BACKGROUND: url(../imgs/barracurtatext.jpg) no-repeat; =
MARGIN-LEFT: 0.8em; OVERFLOW: hidden; WIDTH: 25.5em; HEIGHT: auto
}
.caixa_sistema H2 {
	MARGIN-TOP: 0.3em; PADDING-LEFT: 2.8em; FONT-SIZE: 16px; MARGIN-BOTTOM: =
0.1em; WIDTH: auto; COLOR: #2b7a85
}
.caixa_sistema H2 IMG {
	MARGIN-RIGHT: 0.5em
}
.contigut-quadre-destacat-sistema {
	MARGIN-TOP: 0em; BACKGROUND: #d2e0e1; FLOAT: left; PADDING-BOTTOM: 1em; =
WIDTH: 23em; HEIGHT: auto
}
.contigut-quadre-destacat-sistema P {
	PADDING-RIGHT: 1em; FLOAT: left; WIDTH: 10em; PADDING-TOP: 1em
}
.contigut-quadre-destacat-sistema IMG {
	PADDING-RIGHT: 1em; FLOAT: left; WIDTH: 10em; PADDING-TOP: 1em
}
.contigut-quadre-destacat-sistema H2 {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FLOAT: left; PADDING-BOTTOM: =
1.3em; MARGIN: 0em; WIDTH: 8.3em; PADDING-TOP: 0.5em
}
.destacat_top-links P {
	MARGIN: 0px; COLOR: #000000
}
P.titulets-negres {
	MARGIN-TOP: 1em; FONT-WEIGHT: bold; MARGIN-BOTTOM: 0.5em
}
.contigut-quadre-destacat-sistema UL {
	FLOAT: left; PADDING-BOTTOM: 0.5em; MARGIN: 0.8em 1em 1em
}
.contigut-quadre-destacat-sistema UL LI {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 2em; BACKGROUND: =
url(../imgs/ico.cuadro.gris.gif) no-repeat left 0.3em; PADDING-BOTTOM: =
0.5em; COLOR: #25656f; PADDING-TOP: 0.5em; LIST-STYLE-TYPE: none
}
.caixa_sistema UL {
	FLOAT: left; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: =
2em; MARGIN-RIGHT: 1em
}
.caixa_sistema UL LI {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 2em; BACKGROUND: =
url(../imgs/puntet_top.gif) no-repeat left 1em; PADDING-BOTTOM: 0.5em; =
COLOR: #25656f; PADDING-TOP: 0.5em; LIST-STYLE-TYPE: none
}
.caixa_sistema UL LI A {
	COLOR: #25656f; TEXT-DECORATION: none
}
.caixa_sistema UL LI A:visited {
	COLOR: #25656f
}
.caixa_sistema UL LI A:hover {
	COLOR: #25656f
}
.contigut-quadre-destacat P SPAN {
	FONT-SIZE: 12px; FLOAT: left; MARGIN: 0.5em 0.5em 0em 0em; WIDTH: =
20.5em; COLOR: #ffffff
}
.caixa_tira {
	MARGIN-TOP: 1em; BACKGROUND: url(../imgs/quadre-gris-bo.jpg) no-repeat; =
MARGIN-BOTTOM: 0.5em; OVERFLOW: hidden; WIDTH: 25.5em; HEIGHT: auto
}
.caixa_tira H2 {
	FONT-SIZE: 16px; MARGIN: 0.5em; WIDTH: 25.5em; COLOR: #3798a8
}
.caixa_tira H2 IMG {
	MARGIN-RIGHT: 0.5em
}
.zona1-llista {
	FLOAT: left; MARGIN-LEFT: 1em; WIDTH: 54em
}
.zona2-llista {
	MARGIN-TOP: 0.3em; FLOAT: left; MARGIN-LEFT: 0.5em; WIDTH: 25.5em
}
.bloc-llista {
	FLOAT: left; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 1em; WIDTH: 49em; =
BORDER-BOTTOM: #568d9b 1px dashed
}
.paginacio-llista {
	MARGIN-TOP: 5px; WIDTH: 49em; TEXT-ALIGN: center
}
.zona1-llista H2 IMG {
	MARGIN-LEFT: 0.5em; MARGIN-RIGHT: 0.5em
}
.zona1-llista H2 {
	MARGIN-TOP: 0.7em; PADDING-LEFT: 1.8em; FONT-SIZE: 18px; BACKGROUND: =
url(../imgs/barrallargadaltok.jpg) no-repeat; MARGIN-BOTTOM: 1em; =
PADDING-BOTTOM: 0.5em; COLOR: #2f6f66; PADDING-TOP: 0.2em
}
.foto-text-llista {
	MARGIN-TOP: 0em; MARGIN-LEFT: 5em
}
.foto-text-llista IMG {
	MARGIN-TOP: 0.2em; FLOAT: left; PADDING-BOTTOM: 1em; MARGIN-RIGHT: =
1.5em
}
.foto-text-llista P {
	MARGIN-BOTTOM: 1.2em
}
H1.titol-llista {
	PADDING-LEFT: 1em; FONT-SIZE: 22px; BACKGROUND: url(../imgs/oo.jpg) =
no-repeat left 0.3em; MARGIN-BOTTOM: 0em; PADDING-BOTTOM: 0em; =
MARGIN-LEFT: 1.7em; COLOR: #243e41
}
H1.titol-llista A {
	COLOR: #243e41; TEXT-DECORATION: none
}
H1.titol-llista A:hover {
	COLOR: #243e41
}
H1.titol-llista A:visited {
	COLOR: #243e41
}
H2.subtitol-llista {
	MARGIN-TOP: 0.6em; FONT-SIZE: 16px; BACKGROUND: none transparent scroll =
repeat 0% 0%; MARGIN-BOTTOM: 0.5em; MARGIN-LEFT: 2em; COLOR: #568d9b; =
LINE-HEIGHT: 1.1em; PADDING-TOP: 0em
}
P.data-llista {
	MARGIN-TOP: 0em; FONT-SIZE: 12px; TEXT-TRANSFORM: uppercase; COLOR: =
#568d9b
}
P.corresponsalia-lloc-llista {
	MARGIN-TOP: 0.5em; FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #568d9b
}
.iconos-peu {
	MARGIN-TOP: 1em; FLOAT: left
}
.iconos-peu UL {
	DISPLAY: inline; FLOAT: left; MARGIN-LEFT: 0em; TEXT-DECORATION: none
}
.iconos-peu UL LI {
	DISPLAY: inline; FONT-WEIGHT: bold; BACKGROUND: none transparent scroll =
repeat 0% 0%; COLOR: #328190; MARGIN-RIGHT: 0.5em; FONT-FAMILY: 'Arial'; =
TEXT-DECORATION: none
}
.central {
	MARGIN-TOP: 0.3em; FLOAT: left; MARGIN-LEFT: 1em; OVERFLOW: hidden; =
WIDTH: 79.5em
}
.dreta {
	MARGIN-TOP: 0em; FLOAT: right; MARGIN-LEFT: 0em; WIDTH: 25em
}
.titol-article {
	FLOAT: left; WIDTH: 41em
}
.central H1 {
	MARGIN-TOP: 1em; PADDING-LEFT: 1.8em; FONT-WEIGHT: bold; FLOAT: left; =
PADDING-BOTTOM: 0.3em; WIDTH: 30em; COLOR: #246570; LINE-HEIGHT: 0.5em; =
PADDING-TOP: 0.1em
}
.agrupacio-central-article {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 54em
}
.agrupacio-central-article H1 {
	MARGIN-TOP: 0.5em; PADDING-LEFT: 2.3em; FONT-WEIGHT: bold; FONT-SIZE: =
18px; BACKGROUND: url(../imgs/barrallargadaltok.jpg) no-repeat; FLOAT: =
left; PADDING-BOTTOM: 0.5em; WIDTH: 50em; COLOR: #246570; PADDING-TOP: =
0.5em
}
.agrupacio-central-article H1 A {
	COLOR: #246570; TEXT-DECORATION: none
}
.agrupacio-central-article H1 A:visited {
	COLOR: #246570; TEXT-DECORATION: none
}
.agrupacio-central-article H1 A:hover {
	COLOR: #246570; TEXT-DECORATION: none
}
.lateral {
	MARGIN-TOP: 2em; FLOAT: left; WIDTH: 8em; MARGIN-RIGHT: 0.5em
}
.lateral IMG {
	FLOAT: left
}
.contingut {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 45em
}
.contingut P.data {
	FONT-SIZE: 12px; MARGIN-BOTTOM: 0.3em; TEXT-TRANSFORM: uppercase; =
WIDTH: 40em
}
H2.ambit-tematic {
	MARGIN-TOP: 1em; FONT-WEIGHT: normal; FONT-SIZE: 14px; FLOAT: left; =
TEXT-TRANSFORM: uppercase; WIDTH: 20em; COLOR: #777777
}
.barra-utilitats {
	MARGIN-TOP: 1em; FLOAT: right; WIDTH: 15em
}
.autors {
	MARGIN-TOP: 1em; FLOAT: left; WIDTH: 44em
}
.autor1 {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; BACKGROUND: #bed1d4; FLOAT: =
left; PADDING-BOTTOM: 0.5em; WIDTH: 19em; PADDING-TOP: 0.5em
}
.autor1 IMG {
	FLOAT: left
}
.autor1 H3 {
	MARGIN-TOP: 1.5em; FONT-WEIGHT: bold; FONT-SIZE: 12px; FLOAT: left; =
MARGIN-LEFT: 1em; WIDTH: 12em; COLOR: #000000; TEXT-ALIGN: left
}
P.professio {
	FONT-SIZE: 12px; FLOAT: left; MARGIN-BOTTOM: 0em; MARGIN-LEFT: 1em; =
WIDTH: 8em; COLOR: #246570; TEXT-ALIGN: left
}
P.ciutat {
	MARGIN-TOP: 0em; FONT-SIZE: 12px; FLOAT: left; MARGIN-LEFT: 1em; WIDTH: =
8em; COLOR: #246570; TEXT-ALIGN: left
}
.autor2 {
	BACKGROUND: #bed1d4; FLOAT: left; MARGIN-LEFT: 2em; WIDTH: 17em
}
.autor2 IMG {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; FLOAT: left; PADDING-BOTTOM: =
0.5em; PADDING-TOP: 0.5em
}
.autor2 H3 {
	MARGIN-TOP: 0.5em; FONT-WEIGHT: bold; FLOAT: left; MARGIN-LEFT: 2em; =
WIDTH: 9em; COLOR: #000000; TEXT-ALIGN: left
}
.professio {
	FLOAT: left; MARGIN-LEFT: 2em; WIDTH: 8em; TEXT-ALIGN: left
}
.ciutat {
	FLOAT: left; MARGIN-LEFT: 2em; WIDTH: 8em; COLOR: #246570; TEXT-ALIGN: =
left
}
H1.titol {
	PADDING-RIGHT: 0em; PADDING-LEFT: 0em; FONT-WEIGHT: bold; FONT-SIZE: =
32px; BACKGROUND: none transparent scroll repeat 0% 0%; FLOAT: left; =
MARGIN-BOTTOM: 0.5em; PADDING-BOTTOM: 0em; MARGIN-LEFT: 0em; WIDTH: =
auto; COLOR: #000000; LINE-HEIGHT: 1em; PADDING-TOP: 0em
}
H2.subtitol {
	FONT-WEIGHT: bold; FONT-SIZE: 20px; FLOAT: left; WIDTH: 26em; COLOR: =
#777777
}
.entradeta {
	MARGIN-TOP: 1em; FONT-WEIGHT: bold; FONT-SIZE: 14px; FLOAT: left; =
COLOR: #246570; MARGIN-RIGHT: 0.3em
}
.data {
	MARGIN-TOP: 1em; FLOAT: left; TEXT-TRANSFORM: uppercase; WIDTH: 45em; =
COLOR: #3699a9
}
.lloc {
	MARGIN-TOP: 0.3em; FONT-WEIGHT: bold; FLOAT: left; WIDTH: 45em; COLOR: =
#3699a9
}
.titol-index {
	BACKGROUND: #00ff99; FLOAT: left
}
.index {
	FLOAT: left; MARGIN-BOTTOM: 0em
}
TABLE.index-pagines {
	BORDER-RIGHT: #bed1d4 1px solid; BORDER-TOP: #bed1d4 1px solid; =
MARGIN-TOP: 0.3em; MARGIN-BOTTOM: 0.6em; PADDING-BOTTOM: 0.5em; =
BORDER-LEFT: #bed1d4 1px solid; MARGIN-RIGHT: 1.5em; BORDER-BOTTOM: =
#bed1d4 1px solid
}
TABLE.index-pagines P {
	PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; FLOAT: left; MARGIN-BOTTOM: =
0.5em; PADDING-BOTTOM: 0.3em; WIDTH: 8em; COLOR: #246570; PADDING-TOP: =
0.3em; BORDER-BOTTOM: #bed1d4 1px dotted
}
TABLE.index-pagines P A {
	COLOR: #246570; TEXT-DECORATION: none
}
TABLE.index-pagines TD.pag {
	PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; FLOAT: left; PADDING-BOTTOM: =
0.3em; COLOR: #246570; PADDING-TOP: 0.3em
}
TABLE.index-pagines TH {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; BACKGROUND: #bed1d4; =
MARGIN-BOTTOM: 0.5em; PADDING-BOTTOM: 0.5em; COLOR: #ffffff; =
PADDING-TOP: 0.5em
}
TABLE.index-pagines THEAD TR TH {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; BACKGROUND: #bed1d4; =
MARGIN-BOTTOM: 0.5em; PADDING-BOTTOM: 0.5em; COLOR: #ffffff; =
PADDING-TOP: 0.5em
}
TABLE.index-pagines TABLE SPAN {
	MARGIN-LEFT: 1em
}
TABLE.index-pagines THEAD {
	BACKGROUND: #bed1d4
}
.agruacio-texte-index {
	FONT-SIZE: 14px; FLOAT: left; WIDTH: 38.5em
}
.agruacio-texte-index UL {
	FLOAT: left; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0.5em; MARGIN-LEFT: =
1em; MARGIN-RIGHT: 1em
}
.agruacio-texte-index UL LI {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; BACKGROUND: =
url(../imgs/puntet_top.gif) no-repeat left 1em; PADDING-BOTTOM: 0.5em; =
COLOR: #000000; PADDING-TOP: 0.5em; LIST-STYLE-TYPE: none
}
.text-tirat {
	MARGIN-TOP: 0em; FONT-SIZE: 14px; WIDTH: auto
}
.text-tirat P {
	MARGIN-TOP: 0em; FONT-SIZE: 14px; MARGIN-BOTTOM: 0.5em; WIDTH: auto; =
MARGIN-RIGHT: 0.3em; PADDING-TOP: 0em
}
.destacat-articles {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; BACKGROUND: #246570; FLOAT: =
right; PADDING-BOTTOM: 1em; MARGIN: 0.5em; WIDTH: 15em; COLOR: #ffffff; =
PADDING-TOP: 1em
}
.foto-article {
	MARGIN-TOP: 0em; BACKGROUND: #eaeff2; FLOAT: left; MARGIN-BOTTOM: =
0.5em; WIDTH: auto; MARGIN-RIGHT: 1em
}
.foto-article-dreta {
	MARGIN-TOP: 0em; BACKGROUND: #eaeff2; FLOAT: right; MARGIN-BOTTOM: =
0.5em; MARGIN-LEFT: 1em; WIDTH: auto
}
.foto-article P {
	FONT-SIZE: 10px; MARGIN-LEFT: 1em; COLOR: #246570
}
.titulets-color {
	FONT-WEIGHT: bold; FONT-SIZE: 18px; COLOR: #bed1d4
}
.despiece {
	MARGIN-TOP: 1em; BACKGROUND: #eaeff2
}
.despiece P {
	FONT-SIZE: 16px; PADDING-BOTTOM: 1em; MARGIN-LEFT: 2em; MARGIN-RIGHT: =
2em
}
H2.titol-despiece {
	FONT-SIZE: 22px; MARGIN: 1em; COLOR: #246570; PADDING-TOP: 1em
}
.relacionat-article {
	MARGIN-TOP: 1.2em; BACKGROUND: url(../imgs/dalt-gran.jpg) no-repeat; =
FLOAT: left; PADDING-BOTTOM: 0em; WIDTH: auto; PADDING-TOP: 0.5em
}
.relacionat-article H2 {
	FONT-SIZE: 16px; PADDING-BOTTOM: 0.2em; MARGIN-LEFT: 0.5em; WIDTH: =
auto; COLOR: #979caa; PADDING-TOP: 0.3em
}
.contigut-quadre-relacionat {
	BACKGROUND: url(../imgs/quadre-top-p.jpg) no-repeat; PADDING-BOTTOM: =
1em; HEIGHT: 250px
}
.contigut-quadre-relacionat P {
	MARGIN-TOP: 0.5em; MARGIN-BOTTOM: 0em; MARGIN-LEFT: 1.5em; COLOR: =
#246570
}
.contigut-quadre-relacionat IMG {
	WIDTH: auto
}
.contigut-quadre-relacionat H3 {
	FONT-WEIGHT: bold; FONT-SIZE: 14px; MARGIN: 0.5em
}
.grup-texte-fonscolor {
	BACKGROUND: #d4e1e3; PADDING-BOTTOM: 1em; WIDTH: 240px; PADDING-TOP: =
1em
}
.links-relacionats-article {
	MARGIN-TOP: 2em; BACKGROUND: url(../imgs/gris-imago-baix-p.jpg) =
no-repeat; FLOAT: left; MARGIN-LEFT: 1em; WIDTH: 21.5em
}
H2.titol-relacionat-article {
	MARGIN-TOP: 0.2em; PADDING-LEFT: 2.3em; FONT-WEIGHT: bold; FONT-SIZE: =
16px; BACKGROUND: url(../imgs/barracurtatext.jpg) no-repeat; =
PADDING-BOTTOM: 0.2em; WIDTH: 25.5em; COLOR: #246570; MARGIN-RIGHT: =
0.5em; PADDING-TOP: 0.3em
}
.links-relacionats-article H3 {
	PADDING-RIGHT: 0.6em; MARGIN-TOP: 1.5em; PADDING-LEFT: 0.6em; =
FONT-WEIGHT: bold; BACKGROUND: #bed1d4; FLOAT: left; MARGIN-BOTTOM: 2em; =
PADDING-BOTTOM: 0.6em; WIDTH: 25.5em; PADDING-TOP: 0.6em
}
.links-relacionats-article UL {
	MARGIN-LEFT: 1em; WIDTH: 18em
}
.links-relacionats-article UL LI {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 2em; BACKGROUND: =
url(../imgs/ico.quadre.top.gif) no-repeat left 0.9em; FLOAT: left; =
PADDING-BOTTOM: 0.5em; MARGIN-LEFT: 1em; WIDTH: 18em; COLOR: #246570; =
PADDING-TOP: 0.5em; LIST-STYLE-TYPE: none
}
.links-relacionats-article UL LI A {
	COLOR: #246570; TEXT-DECORATION: none
}
.links-relacionats-article UL LI A:hover {
	COLOR: #246570
}
.links-relacionats-article UL LI A:visited {
	COLOR: #246570
}
SPAN UL LI {
	PADDING-RIGHT: 0.4em; PADDING-LEFT: 1em; BACKGROUND: =
url(../imgs/ico.cuadro.gris.gif) no-repeat left 0.9em; FLOAT: left; =
PADDING-BOTTOM: 0.4em; MARGIN-LEFT: 0em; WIDTH: 18em; COLOR: #246570; =
PADDING-TOP: 0.4em; LIST-STYLE-TYPE: none
}
.Destacat {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; FONT-WEIGHT: bold; FONT-SIZE: =
14px; BACKGROUND: #246570; FLOAT: right; PADDING-BOTTOM: 1em; MARGIN: =
0.5em; WIDTH: 15em; COLOR: #ffffff; PADDING-TOP: 1em
}
.DestacatDreta {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; FONT-WEIGHT: bold; FONT-SIZE: =
16px; BACKGROUND: #246570; FLOAT: right; PADDING-BOTTOM: 1em; =
MARGIN-LEFT: 0.5em; WIDTH: 15em; COLOR: #ffffff; MARGIN-RIGHT: 0em; =
PADDING-TOP: 1em
}
.DestacatEsquerra {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; FONT-WEIGHT: bold; FONT-SIZE: =
16px; BACKGROUND: #246570; FLOAT: left; MARGIN-BOTTOM: 0em; =
PADDING-BOTTOM: 1em; MARGIN-LEFT: 0em; WIDTH: 15em; COLOR: #ffffff; =
MARGIN-RIGHT: 1em; PADDING-TOP: 1em
}
.BlocDespiece {
	MARGIN-TOP: 2em; BACKGROUND: #eaeff2; FLOAT: left; MARGIN-BOTTOM: 0em; =
WIDTH: 638px
}
.BlocDespiece UL {
	BACKGROUND: #eaeff2
}
.BlocDespiece BR {
	BACKGROUND: #eaeff2
}
SPAN.BlocDespiece UL {
	BACKGROUND: #eaeff2
}
.quadratdespiece {
	MARGIN-TOP: 1em; BACKGROUND: #eaeff2; FLOAT: left; MARGIN-BOTTOM: 0em; =
WIDTH: 658px
}
.TitolDespiece {
	FONT-WEIGHT: bold; FONT-SIZE: 16px; BACKGROUND: url(../imgs/desp2.jpg) =
#eaeff2 no-repeat; FLOAT: left; MARGIN-BOTTOM: 1em; MARGIN-LEFT: 0em; =
WIDTH: 35em; COLOR: #246570; PADDING-TOP: 1em; FONT-FAMILY: 'Arial'; =
TEXT-ALIGN: left
}
.DespieceTitol {
	PADDING-RIGHT: 3em; PADDING-LEFT: 1.7em; FONT-WEIGHT: bold; FONT-SIZE: =
22px; BACKGROUND: url(../imgs/desp4.jpg) #eaeff2 no-repeat left 1.2em; =
FLOAT: left; PADDING-BOTTOM: 1em; MARGIN: 0.5em 1em 0em 0em; WIDTH: =
30em; COLOR: #246570; PADDING-TOP: 1em; FONT-FAMILY: 'Arial'; =
TEXT-ALIGN: left
}
.DespieceText {
	PADDING-RIGHT: 2.5em; PADDING-LEFT: 2.5em; FONT-SIZE: 16px; BACKGROUND: =
#eaeff2; FLOAT: left; PADDING-BOTTOM: 1em; WIDTH: 30em; FONT-FAMILY: =
'Arial'
}
.TituletsColor {
	FONT-WEIGHT: 100; FONT-SIZE: 18px; COLOR: #246570
}
.EstilEntradeta {
	MARGIN-TOP: 1em; FONT-WEIGHT: bold; FONT-SIZE: 14px; FLOAT: left; =
COLOR: #246570; MARGIN-RIGHT: 0.3em
}
P.lloc {
	MARGIN-TOP: 0em; MARGIN-BOTTOM: 0.5em
}
.PeuFoto {
	FONT-SIZE: 10px; FLOAT: left; MARGIN-BOTTOM: 0.3em; PADDING-BOTTOM: =
0.3em; MARGIN-LEFT: 1em; COLOR: #246570; LINE-HEIGHT: 1.1em; =
PADDING-TOP: 0.3em
}
.pagines-sota {
	MARGIN-TOP: 1.5em; FLOAT: right
}
.pagines-sota UL LI {
	DISPLAY: inline; FONT-SIZE: 10px; COLOR: #246570; MARGIN-RIGHT: 0.5em
}
.pagines-sota UL LI A {
	COLOR: #246570; TEXT-DECORATION: none
}
.pagines-sota UL LI A:visited {
	COLOR: #246570; TEXT-DECORATION: none
}
.pagines-sota UL LI A:hover {
	COLOR: #246570; TEXT-DECORATION: none
}
.foto-article SPAN.peuFoto {
	COLOR: #246570
}
SPAN A {
	COLOR: #246570; TEXT-DECORATION: none
}
SPAN A:hover {
	TEXT-DECORATION: underline
}
SPAN A:visited {
	COLOR: #246570
}
UL.idiomes {
	MARGIN-TOP: 1em; DISPLAY: inline; FLOAT: right; MARGIN-RIGHT: 1em
}
UL.idiomes LI {
	DISPLAY: inline; BACKGROUND: none transparent scroll repeat 0% 0%; =
LIST-STYLE-TYPE: none
}
UL.idiomes LI A {
	COLOR: #ffffff; TEXT-DECORATION: none
}
UL.idiomes LI A:visited {
	COLOR: #ffffff
}
.taula-comentaris {
	FLOAT: left; WIDTH: 44em
}
.bloc-comentaris {
	FLOAT: left; WIDTH: 44em
}
.central-comentaris {
	MARGIN-TOP: 2em; MARGIN-LEFT: 1em; COLOR: #000000
}
.central-comentaris P STRONG {
	COLOR: #246570; MARGIN-RIGHT: 2em
}
.bloc-comentaris SPAN {
	MARGIN-TOP: 4em; MARGIN-LEFT: 1em; COLOR: #246570
}
.iconos-peu UL LI A {
	MARGIN-LEFT: 0.3em; COLOR: #246570; TEXT-DECORATION: none
}
.iconos-peu UL LI A:visited {
	COLOR: #246570
}
.iconos-peu UL LI A:hover {
	COLOR: #246570
}
INPUT {
	BORDER-RIGHT: #246570 1px solid; BORDER-TOP: #246570 1px solid; =
BORDER-LEFT: #246570 1px solid; BORDER-BOTTOM: #246570 1px solid
}
TEXTAREA {
	BORDER-RIGHT: #246570 1px solid; BORDER-TOP: #246570 1px solid; =
BORDER-LEFT: #246570 1px solid; BORDER-BOTTOM: #246570 1px solid
}
INPUT#submit {
	BACKGROUND: #ffffff; MARGIN-LEFT: 4em
}
#buscador {
	MARGIN-TOP: 3em; FLOAT: right; MARGIN-RIGHT: -3em
}
P.capdata {
	MARGIN-TOP: 5.5em; FLOAT: right; COLOR: #ffffff; MARGIN-RIGHT: -12em
}
.topics-article {
	MARGIN-TOP: 2em; FLOAT: left; WIDTH: 43em
}
.topics-article UL {
	DISPLAY: inline; MARGIN-LEFT: 0em
}
.topics-article UL LI {
	PADDING-RIGHT: 0.5em; DISPLAY: inline; PADDING-LEFT: 0em; BACKGROUND: =
none transparent scroll repeat 0% 0%; FLOAT: left; MARGIN-LEFT: 0em; =
WIDTH: auto; MARGIN-RIGHT: 0.3em
}
.topics-article UL LI A {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0em; MARGIN-LEFT: 0em
}
.topics-article SPAN {
	FLOAT: left; MARGIN-LEFT: 0em; WIDTH: 43em
}
.peu {
	FONT-SIZE: 12px; BACKGROUND: url(../imgs/peu.jpg) no-repeat; MARGIN: =
0px auto; WIDTH: 975px; HEIGHT: 90px
}
.peu P {
	PADDING-LEFT: 1em; FLOAT: left; WIDTH: 10em; COLOR: #ffffff; =
PADDING-TOP: 6em; TEXT-ALIGN: left
}
.peu P A {
	COLOR: #ffffff; TEXT-DECORATION: none
}
.peu P A:visited {
	COLOR: #ffffff
}
.peu P A:hover {
	COLOR: #ffffff
}
.corpo {
	FLOAT: right; MARGIN-LEFT: 7em; WIDTH: 600px; PADDING-TOP: 0.5em
}
.corpo UL {
	MARGIN-TOP: 0em; DISPLAY: inline; LIST-STYLE-TYPE: none
}
.corpo UL LI {
	DISPLAY: inline; COLOR: #fff; MARGIN-RIGHT: 0.3em; LIST-STYLE-TYPE: =
none
}
corpo UL LI A:hover {
	COLOR: #fff
}
.corpo UL LI A:hover {
	COLOR: #fff
}
.corpo UL LI A:visited {
	COLOR: #fff
}
.corpo UL LI.blau {
	FONT-WEIGHT: bold; COLOR: #303e59
}
.corpo UL LI A {
	COLOR: #fff; TEXT-DECORATION: none
}
.corpo UL LI A:visited {
	COLOR: #fff; TEXT-DECORATION: none
}
.corpo UL LI A:hover {
	COLOR: #fff; TEXT-DECORATION: none
}
.corpo UL LI.blau A {
	COLOR: #303e59; TEXT-DECORATION: none
}
.corpo UL LI.blau A:visited {
	COLOR: #303e59; TEXT-DECORATION: none
}
.corpo UL LI.blau A:hover {
	COLOR: #303e59; TEXT-DECORATION: none
}
.logos {
	FLOAT: right; WIDTH: 20em
}
.logos IMG {
	FLOAT: left
}
.logos IMG.fcri {
	MARGIN-TOP: 0.5em
}
.caixa_video {
	MARGIN-TOP: 0em; FLOAT: left; MARGIN-LEFT: 0.5em
}
.caixa_video H2 {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 2.3em; BACKGROUND: =
url(../imgs/barracurtatext.jpg) no-repeat; PADDING-BOTTOM: 0.5em; COLOR: =
#be3602; PADDING-TOP: 0.5em
}
.caixa_video_perfils H2 {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 2.3em; BACKGROUND: =
url(../imgs/barracurtatext.jpg) no-repeat; PADDING-BOTTOM: 0.5em; COLOR: =
#be3602; PADDING-TOP: 0.5em
}

------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ca.globaltalentfcri.com/WebResource.axd?d=naAtxYPlf8S0dZi3OkYgXQ2&t=633363364222850001

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");
        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 (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 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 && !(event.srcElement && =
(event.srcElement.tagName.toLowerCase() =3D=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_AppendToClassName(element, className) {
    var current =3D element.className;
    if (current) {
        if (current.charAt(current.length - 1) !=3D ' ') {
            current +=3D ' ';
        }
        current +=3D className;
    }
    else {
        current =3D className;
    }
    element.className =3D current;
}
function WebForm_RemoveClassName(element, className) {
    var current =3D element.className;
    if (current) {
        if (current.substring(current.length - className.length - 1, =
current.length) =3D=3D ' ' + className) {
            element.className =3D current.substring(0, current.length - =
className.length - 1);
            return;
        }
        if (current =3D=3D className) {
            element.className =3D "";
            return;
        }
        var index =3D current.indexOf(' ' + className + ' ');
        if (index !=3D -1) {
            element.className =3D current.substring(0, index) + =
current.substring(index + className.length + 2, current.length);
            return;
        }
        if (current.substring(0, className.length) =3D=3D className + ' =
') {
            element.className =3D current.substring(className.length + =
1, current.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_0000_01CAA5BA.54114B00
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ca.globaltalentfcri.com/ScriptResource.axd?d=O2RIBNEnP422Pa7HU8B_NPmUNGU00LUtnGDMO00PUmMih27ySno8Bon1Nq5_tZKG5fLxC6h0MdfZFubDvv4UWA2&t=633363364222850001

=EF=BB=BFvar __wpm =3D null;
function Point(x, y) {
    this.x =3D x;
    this.y =3D y;
}
function __wpTranslateOffset(x, y, offsetElement, relativeToElement, =
includeScroll) {
    while ((typeof(offsetElement) !=3D "undefined") && (offsetElement =
!=3D null) && (offsetElement !=3D relativeToElement)) {
        x +=3D offsetElement.offsetLeft;
        y +=3D offsetElement.offsetTop;
        var tagName =3D offsetElement.tagName;
        if ((tagName !=3D "TABLE") && (tagName !=3D "BODY")) {
            x +=3D offsetElement.clientLeft;
            y +=3D offsetElement.clientTop;
        }
        if (includeScroll && (tagName !=3D "BODY")) {
            x -=3D offsetElement.scrollLeft;
            y -=3D offsetElement.scrollTop;
        }
        offsetElement =3D offsetElement.offsetParent;
    }
    return new Point(x, y);
}
function __wpGetPageEventLocation(event, includeScroll) {
    if ((typeof(event) =3D=3D "undefined") || (event =3D=3D null)) {
        event =3D window.event;
    }
    return __wpTranslateOffset(event.offsetX, event.offsetY, =
event.srcElement, null, includeScroll);
}
function __wpClearSelection() {
    document.selection.empty();
}
function WebPart(webPartElement, webPartTitleElement, zone, zoneIndex, =
allowZoneChange) {
    this.webPartElement =3D webPartElement;
    this.allowZoneChange =3D allowZoneChange;
    this.zone =3D zone;
    this.zoneIndex =3D zoneIndex;
    this.title =3D ((typeof(webPartTitleElement) !=3D "undefined") && =
(webPartTitleElement !=3D null)) ?
        webPartTitleElement.innerText : "";
    webPartElement.__webPart =3D this;
    if ((typeof(webPartTitleElement) !=3D "undefined") && =
(webPartTitleElement !=3D null)) {
        webPartTitleElement.style.cursor =3D "move";
        webPartTitleElement.attachEvent("onmousedown", =
WebPart_OnMouseDown);
        webPartElement.attachEvent("ondragstart", WebPart_OnDragStart);
        webPartElement.attachEvent("ondrag", WebPart_OnDrag);
        webPartElement.attachEvent("ondragend", WebPart_OnDragEnd);
    }
    this.UpdatePosition =3D WebPart_UpdatePosition;
    this.Dispose =3D WebPart_Dispose;
}
function WebPart_Dispose() {
    this.webPartElement.__webPart =3D null   =20
}
function WebPart_OnMouseDown() {
    var currentEvent =3D window.event;
    var draggedWebPart =3D =
WebPart_GetParentWebPartElement(currentEvent.srcElement);
    if ((typeof(draggedWebPart) =3D=3D "undefined") || (draggedWebPart =
=3D=3D null)) {
        return;
    }
    document.selection.empty();
    try {
        __wpm.draggedWebPart =3D draggedWebPart;
        __wpm.DragDrop();
    }
    catch (e) {
        __wpm.draggedWebPart =3D draggedWebPart;
        window.setTimeout("__wpm.DragDrop()", 0);
    }
    currentEvent.returnValue =3D false;
    currentEvent.cancelBubble =3D true;
}
function WebPart_OnDragStart() {
    var currentEvent =3D window.event;
    var webPartElement =3D currentEvent.srcElement;
    if ((typeof(webPartElement.__webPart) =3D=3D "undefined") || =
(webPartElement.__webPart =3D=3D null)) {
        currentEvent.returnValue =3D false;
        currentEvent.cancelBubble =3D true;
        return;
    }
    var dataObject =3D currentEvent.dataTransfer;
    dataObject.effectAllowed =3D =
__wpm.InitiateWebPartDragDrop(webPartElement);
}
function WebPart_OnDrag() {
    __wpm.ContinueWebPartDragDrop();
}
function WebPart_OnDragEnd() {
    __wpm.CompleteWebPartDragDrop();
}
function WebPart_GetParentWebPartElement(containedElement) {
    var elem =3D containedElement;
    while ((typeof(elem.__webPart) =3D=3D "undefined") || =
(elem.__webPart =3D=3D null)) {
        elem =3D elem.parentElement;
        if ((typeof(elem) =3D=3D "undefined") || (elem =3D=3D null)) {
            break;
        }
    }
    return elem;
}
function WebPart_UpdatePosition() {
    var location =3D __wpTranslateOffset(0, 0, this.webPartElement, =
null, false);
    this.middleX =3D location.x + this.webPartElement.offsetWidth / 2;
    this.middleY =3D location.y + this.webPartElement.offsetHeight / 2;
}
function Zone(zoneElement, zoneIndex, uniqueID, isVertical, =
allowLayoutChange, highlightColor) {
    var webPartTable =3D null;
    if (zoneElement.rows.length =3D=3D 1) {
        webPartTableContainer =3D zoneElement.rows[0].cells[0];
    }
    else {
        webPartTableContainer =3D zoneElement.rows[1].cells[0];
    }
    var i;
    for (i =3D 0; i < webPartTableContainer.childNodes.length; i++) {
        var node =3D webPartTableContainer.childNodes[i];
        if (node.tagName =3D=3D "TABLE") {
            webPartTable =3D node;
            break;
        }
    }
    this.zoneElement =3D zoneElement;
    this.zoneIndex =3D zoneIndex;
    this.webParts =3D new Array();
    this.uniqueID =3D uniqueID;
    this.isVertical =3D isVertical;
    this.allowLayoutChange =3D allowLayoutChange;
    this.allowDrop =3D false;
    this.webPartTable =3D webPartTable;
    this.highlightColor =3D highlightColor;
    this.savedBorderColor =3D (webPartTable !=3D null) ? =
webPartTable.style.borderColor : null;
    this.dropCueElements =3D new Array();
    if (webPartTable !=3D null) {
        if (isVertical) {
            for (i =3D 0; i < webPartTable.rows.length; i +=3D 2) {
                this.dropCueElements[i / 2] =3D =
webPartTable.rows[i].cells[0].childNodes[0];
            }
        }
        else {
            for (i =3D 0; i < webPartTable.rows[0].cells.length; i +=3D =
2) {
                this.dropCueElements[i / 2] =3D =
webPartTable.rows[0].cells[i].childNodes[0];
            }
        }
    }
    this.AddWebPart =3D Zone_AddWebPart;
    this.GetWebPartIndex =3D Zone_GetWebPartIndex;
    this.ToggleDropCues =3D Zone_ToggleDropCues;
    this.UpdatePosition =3D Zone_UpdatePosition;
    this.Dispose =3D Zone_Dispose;
    webPartTable.__zone =3D this;
    webPartTable.attachEvent("ondragenter", Zone_OnDragEnter);
    webPartTable.attachEvent("ondrop", Zone_OnDrop);
}
function Zone_Dispose() {
    for (var i =3D 0; i < this.webParts.length; i++) {
        this.webParts[i].Dispose();
    }
    this.webPartTable.__zone =3D null;
}
function Zone_OnDragEnter() {
    var handled =3D __wpm.ProcessWebPartDragEnter();
    var currentEvent =3D window.event;
    if (handled) {
        currentEvent.returnValue =3D false;
        currentEvent.cancelBubble =3D true;
    }
}
function Zone_OnDragOver() {
    var handled =3D __wpm.ProcessWebPartDragOver();
    var currentEvent =3D window.event;
    if (handled) {
        currentEvent.returnValue =3D false;
        currentEvent.cancelBubble =3D true;
    }
}
function Zone_OnDrop() {
    var handled =3D __wpm.ProcessWebPartDrop();
    var currentEvent =3D window.event;
    if (handled) {
        currentEvent.returnValue =3D false;
        currentEvent.cancelBubble =3D true;
    }
}
function Zone_GetParentZoneElement(containedElement) {
    var elem =3D containedElement;
    while ((typeof(elem.__zone) =3D=3D "undefined") || (elem.__zone =
=3D=3D null)) {
        elem =3D elem.parentElement;
        if ((typeof(elem) =3D=3D "undefined") || (elem =3D=3D null)) {
            break;
        }
    }
    return elem;
}
function Zone_AddWebPart(webPartElement, webPartTitleElement, =
allowZoneChange) {
    var webPart =3D null;
    var zoneIndex =3D this.webParts.length;
    if (this.allowLayoutChange && __wpm.IsDragDropEnabled()) {
        webPart =3D new WebPart(webPartElement, webPartTitleElement, =
this, zoneIndex, allowZoneChange);
    }
    else {
        webPart =3D new WebPart(webPartElement, null, this, zoneIndex, =
allowZoneChange);
    }
    this.webParts[zoneIndex] =3D webPart;
    return webPart;
}
function Zone_ToggleDropCues(show, index, ignoreOutline) {
    if (ignoreOutline =3D=3D false) {
        this.webPartTable.style.borderColor =3D (show ? =
this.highlightColor : this.savedBorderColor);
    }
    if (index =3D=3D -1) {
        return;
    }
    var dropCue =3D this.dropCueElements[index];
    if (dropCue && dropCue.style) {
        if (dropCue.style.height =3D=3D "100%" && =
!dropCue.webPartZoneHorizontalCueResized) {
            var oldParentHeight =3D dropCue.parentElement.clientHeight;
            var realHeight =3D oldParentHeight - 10;
            dropCue.style.height =3D realHeight + "px";
            var dropCueVerticalBar =3D =
dropCue.getElementsByTagName("DIV")[0];
            if (dropCueVerticalBar && dropCueVerticalBar.style) {
                dropCueVerticalBar.style.height =3D =
dropCue.style.height;
                var heightDiff =3D (dropCue.parentElement.clientHeight - =
oldParentHeight);
                if (heightDiff) {
                    dropCue.style.height =3D (realHeight - heightDiff) + =
"px";
                    dropCueVerticalBar.style.height =3D =
dropCue.style.height;
                }
            }
            dropCue.webPartZoneHorizontalCueResized =3D true;
        }
        dropCue.style.visibility =3D (show ? "visible" : "hidden");
    }
}
function Zone_GetWebPartIndex(location) {
    var x =3D location.x;
    var y =3D location.y;
    if ((x < this.webPartTableLeft) || (x > this.webPartTableRight) ||
        (y < this.webPartTableTop) || (y > this.webPartTableBottom)) {
        return -1;
    }
    var vertical =3D this.isVertical;
    var webParts =3D this.webParts;
    var webPartsCount =3D webParts.length;
    for (var i =3D 0; i < webPartsCount; i++) {
        var webPart =3D webParts[i];
        if (vertical) {
            if (y < webPart.middleY) {
                return i;
            }
        }
        else {
            if (x < webPart.middleX) {
                return i;
            }
        }
    }
    return webPartsCount;
}
function Zone_UpdatePosition() {
    var topLeft =3D __wpTranslateOffset(0, 0, this.webPartTable, null, =
false);
    this.webPartTableLeft =3D topLeft.x;
    this.webPartTableTop =3D topLeft.y;
    this.webPartTableRight =3D (this.webPartTable !=3D null) ? topLeft.x =
+ this.webPartTable.offsetWidth : topLeft.x;
    this.webPartTableBottom =3D (this.webPartTable !=3D null) ? =
topLeft.y + this.webPartTable.offsetHeight : topLeft.y;
    for (var i =3D 0; i < this.webParts.length; i++) {
        this.webParts[i].UpdatePosition();
    }
}
function WebPartDragState(webPartElement, effect) {
    this.webPartElement =3D webPartElement;
    this.dropZoneElement =3D null;
    this.dropIndex =3D -1;
    this.effect =3D effect;
    this.dropped =3D false;
}
function WebPartMenu(menuLabelElement, menuDropDownElement, menuElement) =
{
    this.menuLabelElement =3D menuLabelElement;
    this.menuDropDownElement =3D menuDropDownElement;
    this.menuElement =3D menuElement;
    this.menuLabelElement.__menu =3D this;
    this.menuLabelElement.attachEvent('onclick', WebPartMenu_OnClick);
    this.menuLabelElement.attachEvent('onkeypress', =
WebPartMenu_OnKeyPress);
    this.menuLabelElement.attachEvent('onmouseenter', =
WebPartMenu_OnMouseEnter);
    this.menuLabelElement.attachEvent('onmouseleave', =
WebPartMenu_OnMouseLeave);
    if ((typeof(this.menuDropDownElement) !=3D "undefined") && =
(this.menuDropDownElement !=3D null)) {
        this.menuDropDownElement.__menu =3D this;
    }
    this.menuItemStyle =3D "";
    this.menuItemHoverStyle =3D "";
    this.popup =3D null;
    this.hoverClassName =3D "";
    this.hoverColor =3D "";
    this.oldColor =3D this.menuLabelElement.style.color;
    this.oldTextDecoration =3D =
this.menuLabelElement.style.textDecoration;
    this.oldClassName =3D this.menuLabelElement.className;
    this.Show =3D WebPartMenu_Show;
    this.Hide =3D WebPartMenu_Hide;
    this.Hover =3D WebPartMenu_Hover;
    this.Unhover =3D WebPartMenu_Unhover;
    this.Dispose =3D WebPartMenu_Dispose;
    var menu =3D this;
    this.disposeDelegate =3D function() { menu.Dispose(); };
    window.attachEvent('onunload', this.disposeDelegate);
}
function WebPartMenu_Dispose() {
    this.menuLabelElement.__menu =3D null;
    this.menuDropDownElement.__menu =3D null;
    window.detachEvent('onunload', this.disposeDelegate);
}
function WebPartMenu_Show() {
    if ((typeof(__wpm.menu) !=3D "undefined") && (__wpm.menu !=3D null)) =
{
        __wpm.menu.Hide();
    }
    var menuHTML =3D
        "<html><head><style>" +
        "a.menuItem, a.menuItem:Link { display: block; padding: 1px; =
text-decoration: none; " + this.itemStyle + " }" +
        "a.menuItem:Hover { " + this.itemHoverStyle + " }" +
        "</style><body scroll=3D\"no\" style=3D\"border: none; margin: =
0; padding: 0;\" ondragstart=3D\"window.event.returnValue=3Dfalse;\" =
onclick=3D\"popup.hide()\">" +
        this.menuElement.innerHTML +
        "</body></html>";
    var width =3D 16;
    var height =3D 16;
    this.popup =3D window.createPopup();
    __wpm.menu =3D this;
    var popupDocument =3D this.popup.document;
    popupDocument.write(menuHTML);
    this.popup.show(0, 0, width, height);
    var popupBody =3D popupDocument.body;
    width =3D popupBody.scrollWidth;
    height =3D popupBody.scrollHeight;
    if (width < this.menuLabelElement.offsetWidth) {
        width =3D this.menuLabelElement.offsetWidth + 16;
    }
    if =
(this.menuElement.innerHTML.indexOf("progid:DXImageTransform.Microsoft.Sh=
adow") !=3D -1) {
        popupBody.style.paddingRight =3D "4px";
    }
    popupBody.__wpm =3D __wpm;
    popupBody.__wpmDeleteWarning =3D __wpmDeleteWarning;
    popupBody.__wpmCloseProviderWarning =3D __wpmCloseProviderWarning;
    popupBody.popup =3D this.popup;
    this.popup.hide();
    this.popup.show(0, this.menuLabelElement.offsetHeight, width, =
height, this.menuLabelElement);
}
function WebPartMenu_Hide() {
    if (__wpm.menu =3D=3D this) {
        __wpm.menu =3D null;
        if ((typeof(this.popup) !=3D "undefined") && (this.popup !=3D =
null)) {
            this.popup.hide();
            this.popup =3D null;
        }
    }
}
function WebPartMenu_Hover() {
    if (this.labelHoverClassName !=3D "") {
        this.menuLabelElement.className =3D =
this.menuLabelElement.className + " " + this.labelHoverClassName;
    }
    if (this.labelHoverColor !=3D "") {
        this.menuLabelElement.style.color =3D this.labelHoverColor;
    }
}
function WebPartMenu_Unhover() {
    if (this.labelHoverClassName !=3D "") {
        this.menuLabelElement.style.textDecoration =3D =
this.oldTextDecoration;
        this.menuLabelElement.className =3D this.oldClassName;
    }
    if (this.labelHoverColor !=3D "") {
        this.menuLabelElement.style.color =3D this.oldColor;
    }
}
function WebPartMenu_OnClick() {
    var menu =3D window.event.srcElement.__menu;
    if ((typeof(menu) !=3D "undefined") && (menu !=3D null)) {
        window.event.returnValue =3D false;
        window.event.cancelBubble =3D true;
        menu.Show();
    }
}
function WebPartMenu_OnKeyPress() {
    if (window.event.keyCode =3D=3D 13) {
        var menu =3D window.event.srcElement.__menu;
        if ((typeof(menu) !=3D "undefined") && (menu !=3D null)) {
            window.event.returnValue =3D false;
            window.event.cancelBubble =3D true;
            menu.Show();
        }
    }
}
function WebPartMenu_OnMouseEnter() {
    var menu =3D window.event.srcElement.__menu;
    if ((typeof(menu) !=3D "undefined") && (menu !=3D null)) {
        menu.Hover();
    }
}
function WebPartMenu_OnMouseLeave() {
    var menu =3D window.event.srcElement.__menu;
    if ((typeof(menu) !=3D "undefined") && (menu !=3D null)) {
        menu.Unhover();
    }
}
function WebPartManager() {
    this.overlayContainerElement =3D null;
    this.zones =3D new Array();
    this.dragState =3D null;
    this.menu =3D null;
    this.draggedWebPart =3D null;
    this.AddZone =3D WebPartManager_AddZone;
    this.IsDragDropEnabled =3D WebPartManager_IsDragDropEnabled;
    this.DragDrop =3D WebPartManager_DragDrop;
    this.InitiateWebPartDragDrop =3D =
WebPartManager_InitiateWebPartDragDrop;
    this.CompleteWebPartDragDrop =3D =
WebPartManager_CompleteWebPartDragDrop;
    this.ContinueWebPartDragDrop =3D =
WebPartManager_ContinueWebPartDragDrop;
    this.ProcessWebPartDragEnter =3D =
WebPartManager_ProcessWebPartDragEnter;
    this.ProcessWebPartDragOver =3D =
WebPartManager_ProcessWebPartDragOver;
    this.ProcessWebPartDrop =3D WebPartManager_ProcessWebPartDrop;
    this.ShowHelp =3D WebPartManager_ShowHelp;
    this.ExportWebPart =3D WebPartManager_ExportWebPart;
    this.Execute =3D WebPartManager_Execute;
    this.SubmitPage =3D WebPartManager_SubmitPage;
    this.UpdatePositions =3D WebPartManager_UpdatePositions;
    window.attachEvent("onunload", WebPartManager_Dispose);
}
function WebPartManager_Dispose() {
    for (var i =3D 0; i < __wpm.zones.length; i++) {
        __wpm.zones[i].Dispose();
    }
    window.detachEvent("onunload", WebPartManager_Dispose);
}
function WebPartManager_AddZone(zoneElement, uniqueID, isVertical, =
allowLayoutChange, highlightColor) {
    var zoneIndex =3D this.zones.length;
    var zone =3D new Zone(zoneElement, zoneIndex, uniqueID, isVertical, =
allowLayoutChange, highlightColor);
    this.zones[zoneIndex] =3D zone;
    return zone;
}
function WebPartManager_IsDragDropEnabled() {
    return ((typeof(this.overlayContainerElement) !=3D "undefined") && =
(this.overlayContainerElement !=3D null));
}
function WebPartManager_DragDrop() {
    if ((typeof(this.draggedWebPart) !=3D "undefined") && =
(this.draggedWebPart !=3D null)) {
        var tempWebPart =3D this.draggedWebPart;
        this.draggedWebPart =3D null;
        tempWebPart.dragDrop();
        window.setTimeout("__wpClearSelection()", 0);
    }
}
function WebPartManager_InitiateWebPartDragDrop(webPartElement) {
    var webPart =3D webPartElement.__webPart;
    this.UpdatePositions();
    this.dragState =3D new WebPartDragState(webPartElement, "move");
    var location =3D __wpGetPageEventLocation(window.event, true);
    var overlayContainerElement =3D this.overlayContainerElement;
    overlayContainerElement.style.left =3D location.x - =
webPartElement.offsetWidth / 2;
    overlayContainerElement.style.top =3D location.y + 4 + =
(webPartElement.clientTop ? webPartElement.clientTop : 0);
    overlayContainerElement.style.display =3D "block";
    overlayContainerElement.style.width =3D webPartElement.offsetWidth;
    overlayContainerElement.style.height =3D =
webPartElement.offsetHeight;
    overlayContainerElement.appendChild(webPartElement.cloneNode(true));
    if (webPart.allowZoneChange =3D=3D false) {
        webPart.zone.allowDrop =3D true;
    }
    else {
        for (var i =3D 0; i < __wpm.zones.length; i++) {
            var zone =3D __wpm.zones[i];
            if (zone.allowLayoutChange) {
                zone.allowDrop =3D true;
            }
        }
    }
    document.body.attachEvent("ondragover", Zone_OnDragOver);
    return "move";
}
function WebPartManager_CompleteWebPartDragDrop() {
    var dragState =3D this.dragState;
    this.dragState =3D null;
    if ((typeof(dragState.dropZoneElement) !=3D "undefined") && =
(dragState.dropZoneElement !=3D null)) {
        dragState.dropZoneElement.__zone.ToggleDropCues(false, =
dragState.dropIndex, false);
    }
    document.body.detachEvent("ondragover", Zone_OnDragOver);
    for (var i =3D 0; i < __wpm.zones.length; i++) {
        __wpm.zones[i].allowDrop =3D false;
    }
    =
this.overlayContainerElement.removeChild(this.overlayContainerElement.fir=
stChild);
    this.overlayContainerElement.style.display =3D "none";
    if ((typeof(dragState) !=3D "undefined") && (dragState !=3D null) && =
(dragState.dropped =3D=3D true)) {
        var currentZone =3D dragState.webPartElement.__webPart.zone;
        var currentZoneIndex =3D =
dragState.webPartElement.__webPart.zoneIndex;
        if ((currentZone !=3D dragState.dropZoneElement.__zone) ||
            ((currentZoneIndex !=3D dragState.dropIndex) &&
             (currentZoneIndex !=3D (dragState.dropIndex - 1)))) {
            var eventTarget =3D =
dragState.dropZoneElement.__zone.uniqueID;
            var eventArgument =3D "Drag:" + dragState.webPartElement.id =
+ ":" + dragState.dropIndex;
            this.SubmitPage(eventTarget, eventArgument);
        }
    }
}
function WebPartManager_ContinueWebPartDragDrop() {
    var dragState =3D this.dragState;
    if ((typeof(dragState) !=3D "undefined") && (dragState !=3D null)) {
        var style =3D this.overlayContainerElement.style;
        var location =3D __wpGetPageEventLocation(window.event, true);
        style.left =3D location.x - dragState.webPartElement.offsetWidth =
/ 2;
        style.top =3D location.y + 4 + =
(dragState.webPartElement.clientTop ? dragState.webPartElement.clientTop =
: 0);
    }
}
function WebPartManager_Execute(script) {
    if (this.menu) {
        this.menu.Hide();
    }
    var scriptReference =3D new Function(script);
    return (scriptReference() !=3D false);
}
function WebPartManager_ProcessWebPartDragEnter() {
    var dragState =3D __wpm.dragState;
    if ((typeof(dragState) !=3D "undefined") && (dragState !=3D null)) {
        var currentEvent =3D window.event;
        var newDropZoneElement =3D =
Zone_GetParentZoneElement(currentEvent.srcElement);
        if ((typeof(newDropZoneElement.__zone) =3D=3D "undefined") || =
(newDropZoneElement.__zone =3D=3D null) ||
            (newDropZoneElement.__zone.allowDrop =3D=3D false)) {
            newDropZoneElement =3D null;
        }
        var newDropIndex =3D -1;
        if ((typeof(newDropZoneElement) !=3D "undefined") && =
(newDropZoneElement !=3D null)) {
            newDropIndex =3D =
newDropZoneElement.__zone.GetWebPartIndex(__wpGetPageEventLocation(curren=
tEvent, false));
            if (newDropIndex =3D=3D -1) {
                newDropZoneElement =3D null;
            }
        }
        if (dragState.dropZoneElement !=3D newDropZoneElement) {
            if ((typeof(dragState.dropZoneElement) !=3D "undefined") && =
(dragState.dropZoneElement !=3D null)) {
                dragState.dropZoneElement.__zone.ToggleDropCues(false, =
dragState.dropIndex, false);
            }
            dragState.dropZoneElement =3D newDropZoneElement;
            dragState.dropIndex =3D newDropIndex;
            if ((typeof(newDropZoneElement) !=3D "undefined") && =
(newDropZoneElement !=3D null)) {
                newDropZoneElement.__zone.ToggleDropCues(true, =
newDropIndex, false);
            }
        }
        else if (dragState.dropIndex !=3D newDropIndex) {
            if (dragState.dropIndex !=3D -1) {
                dragState.dropZoneElement.__zone.ToggleDropCues(false, =
dragState.dropIndex, false);
            }
            dragState.dropIndex =3D newDropIndex;
            if ((typeof(newDropZoneElement) !=3D "undefined") && =
(newDropZoneElement !=3D null)) {
                newDropZoneElement.__zone.ToggleDropCues(true, =
newDropIndex, false);
            }
        }
        if ((typeof(dragState.dropZoneElement) !=3D "undefined") && =
(dragState.dropZoneElement !=3D null)) {
            currentEvent.dataTransfer.effectAllowed =3D =
dragState.effect;
        }
        return true;
    }
    return false;
}
function WebPartManager_ProcessWebPartDragOver() {
    var dragState =3D __wpm.dragState;
    var currentEvent =3D window.event;
    var handled =3D false;
    if ((typeof(dragState) !=3D "undefined") && (dragState !=3D null) &&
        (typeof(dragState.dropZoneElement) !=3D "undefined") && =
(dragState.dropZoneElement !=3D null)) {
        var dropZoneElement =3D =
Zone_GetParentZoneElement(currentEvent.srcElement);
        if ((typeof(dropZoneElement) !=3D "undefined") && =
(dropZoneElement !=3D null) && (dropZoneElement.__zone.allowDrop =3D=3D =
false)) {
            dropZoneElement =3D null;
        }
        if (((typeof(dropZoneElement) =3D=3D "undefined") || =
(dropZoneElement =3D=3D null)) &&
            (typeof(dragState.dropZoneElement) !=3D "undefined") && =
(dragState.dropZoneElement !=3D null)) {
            dragState.dropZoneElement.__zone.ToggleDropCues(false, =
__wpm.dragState.dropIndex, false);
            dragState.dropZoneElement =3D null;
            dragState.dropIndex =3D -1;
        }
        else if ((typeof(dropZoneElement) !=3D "undefined") && =
(dropZoneElement !=3D null)) {
            var location =3D __wpGetPageEventLocation(currentEvent, =
false);
            var newDropIndex =3D =
dropZoneElement.__zone.GetWebPartIndex(location);
            if (newDropIndex =3D=3D -1) {
                dropZoneElement =3D null;
            }
            if (dragState.dropZoneElement !=3D dropZoneElement) {
                if ((dragState.dropIndex !=3D -1) || =
(typeof(dropZoneElement) =3D=3D "undefined") || (dropZoneElement =3D=3D =
null)) {
                    =
dragState.dropZoneElement.__zone.ToggleDropCues(false, =
__wpm.dragState.dropIndex, false);
                }
                dragState.dropZoneElement =3D dropZoneElement;
            }
            else {
                dragState.dropZoneElement.__zone.ToggleDropCues(false, =
dragState.dropIndex, true);
            }
            dragState.dropIndex =3D newDropIndex;
            if ((typeof(dropZoneElement) !=3D "undefined") && =
(dropZoneElement !=3D null)) {
                dropZoneElement.__zone.ToggleDropCues(true, =
newDropIndex, false);
            }
        }
        handled =3D true;
    }
    if ((typeof(dragState) =3D=3D "undefined") || (dragState =3D=3D =
null) ||
        (typeof(dragState.dropZoneElement) =3D=3D "undefined") || =
(dragState.dropZoneElement =3D=3D null)) {
        currentEvent.dataTransfer.effectAllowed =3D "none";
    }
    return handled;
}
function WebPartManager_ProcessWebPartDrop() {
    var dragState =3D this.dragState;
    if ((typeof(dragState) !=3D "undefined") && (dragState !=3D null)) {
        var currentEvent =3D window.event;
        var dropZoneElement =3D =
Zone_GetParentZoneElement(currentEvent.srcElement);
        if ((typeof(dropZoneElement) !=3D "undefined") && =
(dropZoneElement !=3D null) && (dropZoneElement.__zone.allowDrop =3D=3D =
false)) {
            dropZoneElement =3D null;
        }
        if ((typeof(dropZoneElement) !=3D "undefined") && =
(dropZoneElement !=3D null) && (dragState.dropZoneElement =3D=3D =
dropZoneElement)) {
            dragState.dropped =3D true;
        }
        return true;
    }
    return false;
}
function WebPartManager_ShowHelp(helpUrl, helpMode) {
    if ((typeof(this.menu) !=3D "undefined") && (this.menu !=3D null)) {
        this.menu.Hide();
    }
    if (helpMode =3D=3D 0 || helpMode =3D=3D 1) {
        if (helpMode =3D=3D 0) {
            var dialogInfo =3D "edge: Sunken; center: yes; help: no; =
resizable: yes; status: no";
            window.showModalDialog(helpUrl, null, dialogInfo);
        }
        else {
            window.open(helpUrl, null, =
"scrollbars=3Dyes,resizable=3Dyes,status=3Dno,toolbar=3Dno,menubar=3Dno,l=
ocation=3Dno");
        }
    }
    else if (helpMode =3D=3D 2) {
        window.location =3D helpUrl;
    }
}
function WebPartManager_ExportWebPart(exportUrl, warn, confirmOnly) {
    if (warn =3D=3D true && __wpmExportWarning.length > 0 && =
this.personalizationScopeShared !=3D true) {
        if (confirm(__wpmExportWarning) =3D=3D false) {
            return false;
        }
    }
    if (confirmOnly =3D=3D false) {
        window.location =3D exportUrl;
    }
    return true;
}
function WebPartManager_UpdatePositions() {
    for (var i =3D 0; i < this.zones.length; i++) {
        this.zones[i].UpdatePosition();
    }
}
function WebPartManager_SubmitPage(eventTarget, eventArgument) {
    if ((typeof(this.menu) !=3D "undefined") && (this.menu !=3D null)) {
        this.menu.Hide();
    }
    __doPostBack(eventTarget, eventArgument);
}

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ca.globaltalentfcri.com/ScriptResource.axd?d=O2RIBNEnP422Pa7HU8B_NPmUNGU00LUtnGDMO00PUmNBNIARPaAK6enlDaiqq__ubNCiWih1A95dHHZhYcmmcw2&t=633363364222850001

=EF=BB=BFvar Page_ValidationVer =3D "125";
var Page_IsValid =3D true;
var Page_BlockSubmit =3D false;
var Page_InvalidControlToBeFocused =3D null;
function ValidatorUpdateDisplay(val) {
    if (typeof(val.display) =3D=3D "string") {
        if (val.display =3D=3D "None") {
            return;
        }
        if (val.display =3D=3D "Dynamic") {
            val.style.display =3D val.isvalid ? "none" : "inline";
            return;
        }
    }
    if ((navigator.userAgent.indexOf("Mac") > -1) &&
        (navigator.userAgent.indexOf("MSIE") > -1)) {
        val.style.display =3D "inline";
    }
    val.style.visibility =3D val.isvalid ? "hidden" : "visible";
}
function ValidatorUpdateIsValid() {
    Page_IsValid =3D AllValidatorsValid(Page_Validators);
}
function AllValidatorsValid(validators) {
    if ((typeof(validators) !=3D "undefined") && (validators !=3D null)) =
{
        var i;
        for (i =3D 0; i < validators.length; i++) {
            if (!validators[i].isvalid) {
                return false;
            }
        }
    }
    return true;
}
function ValidatorHookupControlID(controlID, val) {
    if (typeof(controlID) !=3D "string") {
        return;
    }
    var ctrl =3D document.getElementById(controlID);
    if ((typeof(ctrl) !=3D "undefined") && (ctrl !=3D null)) {
        ValidatorHookupControl(ctrl, val);
    }
    else {
        val.isvalid =3D true;
        val.enabled =3D false;
    }
}
function ValidatorHookupControl(control, val) {
    if (typeof(control.tagName) !=3D "string") {
        return; =20
    }
    if (control.tagName !=3D "INPUT" && control.tagName !=3D "TEXTAREA" =
&& control.tagName !=3D "SELECT") {
        var i;
        for (i =3D 0; i < control.childNodes.length; i++) {
            ValidatorHookupControl(control.childNodes[i], val);
        }
        return;
    }
    else {
        if (typeof(control.Validators) =3D=3D "undefined") {
            control.Validators =3D new Array;
            var eventType;
            if (control.type =3D=3D "radio") {
                eventType =3D "onclick";
            } else {
                eventType =3D "onchange";
                if (typeof(val.focusOnError) =3D=3D "string" && =
val.focusOnError =3D=3D "t") {
                    ValidatorHookupEvent(control, "onblur", =
"ValidatedControlOnBlur(event); ");
                }
            }
            ValidatorHookupEvent(control, eventType, =
"ValidatorOnChange(event); ");
            if (control.type =3D=3D "text" ||
                control.type =3D=3D "password" ||
                control.type =3D=3D "file") {
                ValidatorHookupEvent(control, "onkeypress",=20
                    "if (!ValidatedTextBoxOnKeyPress(event)) { =
event.cancelBubble =3D true; if (event.stopPropagation) =
event.stopPropagation(); return false; } ");
            }
        }
        control.Validators[control.Validators.length] =3D val;
    }
}
function ValidatorHookupEvent(control, eventType, functionPrefix) {
    var ev;
    eval("ev =3D control." + eventType + ";");
    if (typeof(ev) =3D=3D "function") {
        ev =3D ev.toString();
        ev =3D ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}"));
    }
    else {
        ev =3D "";
    }
    var func;
    if (navigator.appName.toLowerCase().indexOf('explorer') > -1) {
        func =3D new Function(functionPrefix + " " + ev);
    }
    else {
        func =3D new Function("event", functionPrefix + " " + ev);
    }
    eval("control." + eventType + " =3D func;");
}
function ValidatorGetValue(id) {
    var control;
    control =3D document.getElementById(id);
    if (typeof(control.value) =3D=3D "string") {
        return control.value;
    }
    return ValidatorGetValueRecursive(control);
}
function ValidatorGetValueRecursive(control)
{
    if (typeof(control.value) =3D=3D "string" && (control.type !=3D =
"radio" || control.checked =3D=3D true)) {
        return control.value;
    }
    var i, val;
    for (i =3D 0; i<control.childNodes.length; i++) {
        val =3D ValidatorGetValueRecursive(control.childNodes[i]);
        if (val !=3D "") return val;
    }
    return "";
}
function Page_ClientValidate(validationGroup) {
    Page_InvalidControlToBeFocused =3D null;
    if (typeof(Page_Validators) =3D=3D "undefined") {
        return true;
    }
    var i;
    for (i =3D 0; i < Page_Validators.length; i++) {
        ValidatorValidate(Page_Validators[i], validationGroup, null);
    }
    ValidatorUpdateIsValid();
    ValidationSummaryOnSubmit(validationGroup);
    Page_BlockSubmit =3D !Page_IsValid;
    return Page_IsValid;
}
function ValidatorCommonOnSubmit() {
    Page_InvalidControlToBeFocused =3D null;
    var result =3D !Page_BlockSubmit;
    if ((typeof(window.event) !=3D "undefined") && (window.event !=3D =
null)) {
        window.event.returnValue =3D result;
    }
    Page_BlockSubmit =3D false;
    return result;
}
function ValidatorEnable(val, enable) {
    val.enabled =3D (enable !=3D false);
    ValidatorValidate(val);
    ValidatorUpdateIsValid();
}
function ValidatorOnChange(event) {
    if (!event) {
        event =3D window.event;
    }
    Page_InvalidControlToBeFocused =3D null;
    var targetedControl;
    if ((typeof(event.srcElement) !=3D "undefined") && (event.srcElement =
!=3D null)) {
        targetedControl =3D event.srcElement;
    }
    else {
        targetedControl =3D event.target;
    }
    var vals;
    if (typeof(targetedControl.Validators) !=3D "undefined") {
        vals =3D targetedControl.Validators;
    }
    else {
        if (targetedControl.tagName.toLowerCase() =3D=3D "label") {
            targetedControl =3D =
document.getElementById(targetedControl.htmlFor);
            vals =3D targetedControl.Validators;
        }
    }
    var i;
    for (i =3D 0; i < vals.length; i++) {
        ValidatorValidate(vals[i], null, event);
    }
    ValidatorUpdateIsValid();
}
function ValidatedTextBoxOnKeyPress(event) {
    if (event.keyCode =3D=3D 13) {
        ValidatorOnChange(event);
        var vals;
        if ((typeof(event.srcElement) !=3D "undefined") && =
(event.srcElement !=3D null)) {
            vals =3D event.srcElement.Validators;
        }
        else {
            vals =3D event.target.Validators;
        }
        return AllValidatorsValid(vals);
    }
    return true;
}
function ValidatedControlOnBlur(event) {
    var control;
    if ((typeof(event.srcElement) !=3D "undefined") && (event.srcElement =
!=3D null)) {
        control =3D event.srcElement;
    }
    else {
        control =3D event.target;
    }
    if ((typeof(control) !=3D "undefined") && (control !=3D null) && =
(Page_InvalidControlToBeFocused =3D=3D control)) {
        control.focus();
        Page_InvalidControlToBeFocused =3D null;
    }
}
function ValidatorValidate(val, validationGroup, event) {
    val.isvalid =3D true;
    if ((typeof(val.enabled) =3D=3D "undefined" || val.enabled !=3D =
false) && IsValidationGroupMatch(val, validationGroup)) {
        if (typeof(val.evaluationfunction) =3D=3D "function") {
            val.isvalid =3D val.evaluationfunction(val);
            if (!val.isvalid && Page_InvalidControlToBeFocused =3D=3D =
null &&
                typeof(val.focusOnError) =3D=3D "string" && =
val.focusOnError =3D=3D "t") {
                ValidatorSetFocus(val, event);
            }
        }
    }
    ValidatorUpdateDisplay(val);
}
function ValidatorSetFocus(val, event) {
    var ctrl;
    if (typeof(val.controlhookup) =3D=3D "string") {
        var eventCtrl;
        if ((typeof(event) !=3D "undefined") && (event !=3D null)) {
            if ((typeof(event.srcElement) !=3D "undefined") && =
(event.srcElement !=3D null)) {
                eventCtrl =3D event.srcElement;
            }
            else {
                eventCtrl =3D event.target;
            }
        }
        if ((typeof(eventCtrl) !=3D "undefined") && (eventCtrl !=3D =
null) &&
            (typeof(eventCtrl.id) =3D=3D "string") &&
            (eventCtrl.id =3D=3D val.controlhookup)) {
            ctrl =3D eventCtrl;
        }
    }
    if ((typeof(ctrl) =3D=3D "undefined") || (ctrl =3D=3D null)) {
        ctrl =3D document.getElementById(val.controltovalidate);
    }
    if ((typeof(ctrl) !=3D "undefined") && (ctrl !=3D null) &&
        (ctrl.tagName.toLowerCase() !=3D "table" || (typeof(event) =
=3D=3D "undefined") || (event =3D=3D null)) &&=20
        ((ctrl.tagName.toLowerCase() !=3D "input") || =
(ctrl.type.toLowerCase() !=3D "hidden")) &&
        (typeof(ctrl.disabled) =3D=3D "undefined" || ctrl.disabled =
=3D=3D null || ctrl.disabled =3D=3D false) &&
        (typeof(ctrl.visible) =3D=3D "undefined" || ctrl.visible =3D=3D =
null || ctrl.visible !=3D false) &&
        (IsInVisibleContainer(ctrl))) {
        if (ctrl.tagName.toLowerCase() =3D=3D "table" &&
            (typeof(__nonMSDOMBrowser) =3D=3D "undefined" || =
__nonMSDOMBrowser)) {
            var inputElements =3D ctrl.getElementsByTagName("input");
            var lastInputElement  =3D inputElements[inputElements.length =
-1];
            if (lastInputElement !=3D null) {
                ctrl =3D lastInputElement;
            }
        }
        if (typeof(ctrl.focus) !=3D "undefined" && ctrl.focus !=3D null) =
{
            ctrl.focus();
            Page_InvalidControlToBeFocused =3D ctrl;
        }
    }
}
function IsInVisibleContainer(ctrl) {
    if (typeof(ctrl.style) !=3D "undefined" &&
        ( ( typeof(ctrl.style.display) !=3D "undefined" &&
            ctrl.style.display =3D=3D "none") ||
          ( typeof(ctrl.style.visibility) !=3D "undefined" &&
            ctrl.style.visibility =3D=3D "hidden") ) ) {
        return false;
    }
    else if (typeof(ctrl.parentNode) !=3D "undefined" &&
             ctrl.parentNode !=3D null &&
             ctrl.parentNode !=3D ctrl) {
        return IsInVisibleContainer(ctrl.parentNode);
    }
    return true;
}
function IsValidationGroupMatch(control, validationGroup) {
    if ((typeof(validationGroup) =3D=3D "undefined") || (validationGroup =
=3D=3D null)) {
        return true;
    }
    var controlGroup =3D "";
    if (typeof(control.validationGroup) =3D=3D "string") {
        controlGroup =3D control.validationGroup;
    }
    return (controlGroup =3D=3D validationGroup);
}
function ValidatorOnLoad() {
    if (typeof(Page_Validators) =3D=3D "undefined")
        return;
    var i, val;
    for (i =3D 0; i < Page_Validators.length; i++) {
        val =3D Page_Validators[i];
        if (typeof(val.evaluationfunction) =3D=3D "string") {
            eval("val.evaluationfunction =3D " + val.evaluationfunction =
+ ";");
        }
        if (typeof(val.isvalid) =3D=3D "string") {
            if (val.isvalid =3D=3D "False") {
                val.isvalid =3D false;
                Page_IsValid =3D false;
            }
            else {
                val.isvalid =3D true;
            }
        } else {
            val.isvalid =3D true;
        }
        if (typeof(val.enabled) =3D=3D "string") {
            val.enabled =3D (val.enabled !=3D "False");
        }
        if (typeof(val.controltovalidate) =3D=3D "string") {
            ValidatorHookupControlID(val.controltovalidate, val);
        }
        if (typeof(val.controlhookup) =3D=3D "string") {
            ValidatorHookupControlID(val.controlhookup, val);
        }
    }
    Page_ValidationActive =3D true;
}
function ValidatorConvert(op, dataType, val) {
    function GetFullYear(year) {
        var twoDigitCutoffYear =3D val.cutoffyear % 100;
        var cutoffYearCentury =3D val.cutoffyear - twoDigitCutoffYear;
        return ((year > twoDigitCutoffYear) ? (cutoffYearCentury - 100 + =
year) : (cutoffYearCentury + year));
    }
    var num, cleanInput, m, exp;
    if (dataType =3D=3D "Integer") {
        exp =3D /^\s*[-\+]?\d+\s*$/;
        if (op.match(exp) =3D=3D null)
            return null;
        num =3D parseInt(op, 10);
        return (isNaN(num) ? null : num);
    }
    else if(dataType =3D=3D "Double") {
        exp =3D new RegExp("^\\s*([-\\+])?(\\d*)\\" + val.decimalchar + =
"?(\\d*)\\s*$");
        m =3D op.match(exp);
        if (m =3D=3D null)
            return null;
        if (m[2].length =3D=3D 0 && m[3].length =3D=3D 0)
            return null;
        cleanInput =3D (m[1] !=3D null ? m[1] : "") + (m[2].length>0 ? =
m[2] : "0") + (m[3].length>0 ? "." + m[3] : "");
        num =3D parseFloat(cleanInput);
        return (isNaN(num) ? null : num);
    }
    else if (dataType =3D=3D "Currency") {
        var hasDigits =3D (val.digits > 0);
        var beginGroupSize, subsequentGroupSize;
        var groupSizeNum =3D parseInt(val.groupsize, 10);
        if (!isNaN(groupSizeNum) && groupSizeNum > 0) {
            beginGroupSize =3D "{1," + groupSizeNum + "}";
            subsequentGroupSize =3D "{" + groupSizeNum + "}";
        }
        else {
            beginGroupSize =3D subsequentGroupSize =3D "+";
        }
        exp =3D new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + =
"(\\" + val.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)"
                        + (hasDigits ? "\\" + val.decimalchar + =
"?(\\d{0," + val.digits + "})" : "")
                        + "\\s*$");
        m =3D op.match(exp);
        if (m =3D=3D null)
            return null;
        if (m[2].length =3D=3D 0 && hasDigits && m[5].length =3D=3D 0)
            return null;
        cleanInput =3D (m[1] !=3D null ? m[1] : "") + m[2].replace(new =
RegExp("(\\" + val.groupchar + ")", "g"), "") + ((hasDigits && =
m[5].length > 0) ? "." + m[5] : "");
        num =3D parseFloat(cleanInput);
        return (isNaN(num) ? null : num);
    }
    else if (dataType =3D=3D "Date") {
        var yearFirstExp =3D new =
RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. =
?)(\\d{1,2})\\4(\\d{1,2})\\s*$");
        m =3D op.match(yearFirstExp);
        var day, month, year;
        if (m !=3D null && (m[2].length =3D=3D 4 || val.dateorder =3D=3D =
"ymd")) {
            day =3D m[6];
            month =3D m[5];
            year =3D (m[2].length =3D=3D 4) ? m[2] : =
GetFullYear(parseInt(m[3], 10))
        }
        else {
            if (val.dateorder =3D=3D "ymd"){
                return null;
            }
            var yearLastExp =3D new RegExp("^\\s*(\\d{1,2})([-/]|\\. =
?)(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$");
            m =3D op.match(yearLastExp);
            if (m =3D=3D null) {
                return null;
            }
            if (val.dateorder =3D=3D "mdy") {
                day =3D m[3];
                month =3D m[1];
            }
            else {
                day =3D m[1];
                month =3D m[3];
            }
            year =3D (m[5].length =3D=3D 4) ? m[5] : =
GetFullYear(parseInt(m[6], 10))
        }
        month -=3D 1;
        var date =3D new Date(year, month, day);
        if (year < 100) {
            date.setFullYear(year);
        }
        return (typeof(date) =3D=3D "object" && year =3D=3D =
date.getFullYear() && month =3D=3D date.getMonth() && day =3D=3D =
date.getDate()) ? date.valueOf() : null;
    }
    else {
        return op.toString();
    }
}
function ValidatorCompare(operand1, operand2, operator, val) {
    var dataType =3D val.type;
    var op1, op2;
    if ((op1 =3D ValidatorConvert(operand1, dataType, val)) =3D=3D null)
        return false;
    if (operator =3D=3D "DataTypeCheck")
        return true;
    if ((op2 =3D ValidatorConvert(operand2, dataType, val)) =3D=3D null)
        return true;
    switch (operator) {
        case "NotEqual":
            return (op1 !=3D op2);
        case "GreaterThan":
            return (op1 > op2);
        case "GreaterThanEqual":
            return (op1 >=3D op2);
        case "LessThan":
            return (op1 < op2);
        case "LessThanEqual":
            return (op1 <=3D op2);
        default:
            return (op1 =3D=3D op2);
    }
}
function CompareValidatorEvaluateIsValid(val) {
    var value =3D ValidatorGetValue(val.controltovalidate);
    if (ValidatorTrim(value).length =3D=3D 0)
        return true;
    var compareTo =3D "";
    if ((typeof(val.controltocompare) !=3D "string") ||
        (typeof(document.getElementById(val.controltocompare)) =3D=3D =
"undefined") ||
        (null =3D=3D document.getElementById(val.controltocompare))) {
        if (typeof(val.valuetocompare) =3D=3D "string") {
            compareTo =3D val.valuetocompare;
        }
    }
    else {
        compareTo =3D ValidatorGetValue(val.controltocompare);
    }
    var operator =3D "Equal";
    if (typeof(val.operator) =3D=3D "string") {
        operator =3D val.operator;
    }
    return ValidatorCompare(value, compareTo, operator, val);
}
function CustomValidatorEvaluateIsValid(val) {
    var value =3D "";
    if (typeof(val.controltovalidate) =3D=3D "string") {
        value =3D ValidatorGetValue(val.controltovalidate);
        if ((ValidatorTrim(value).length =3D=3D 0) &&
            ((typeof(val.validateemptytext) !=3D "string") || =
(val.validateemptytext !=3D "true"))) {
            return true;
        }
    }
    var args =3D { Value:value, IsValid:true };
    if (typeof(val.clientvalidationfunction) =3D=3D "string") {
        eval(val.clientvalidationfunction + "(val, args) ;");
    }
    return args.IsValid;
}
function RegularExpressionValidatorEvaluateIsValid(val) {
    var value =3D ValidatorGetValue(val.controltovalidate);
    if (ValidatorTrim(value).length =3D=3D 0)
        return true;
    var rx =3D new RegExp(val.validationexpression);
    var matches =3D rx.exec(value);
    return (matches !=3D null && value =3D=3D matches[0]);
}
function ValidatorTrim(s) {
    var m =3D s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m =3D=3D null) ? "" : m[1];
}
function RequiredFieldValidatorEvaluateIsValid(val) {
    return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) !=3D =
ValidatorTrim(val.initialvalue))
}
function RangeValidatorEvaluateIsValid(val) {
    var value =3D ValidatorGetValue(val.controltovalidate);
    if (ValidatorTrim(value).length =3D=3D 0)
        return true;
    return (ValidatorCompare(value, val.minimumvalue, =
"GreaterThanEqual", val) &&
            ValidatorCompare(value, val.maximumvalue, "LessThanEqual", =
val));
}
function ValidationSummaryOnSubmit(validationGroup) {
    if (typeof(Page_ValidationSummaries) =3D=3D "undefined")
        return;
    var summary, sums, s;
    for (sums =3D 0; sums < Page_ValidationSummaries.length; sums++) {
        summary =3D Page_ValidationSummaries[sums];
        summary.style.display =3D "none";
        if (!Page_IsValid && IsValidationGroupMatch(summary, =
validationGroup)) {
            var i;
            if (summary.showsummary !=3D "False") {
                summary.style.display =3D "";
                if (typeof(summary.displaymode) !=3D "string") {
                    summary.displaymode =3D "BulletList";
                }
                switch (summary.displaymode) {
                    case "List":
                        headerSep =3D "<br>";
                        first =3D "";
                        pre =3D "";
                        post =3D "<br>";
                        end =3D "";
                        break;
                    case "BulletList":
                    default:
                        headerSep =3D "";
                        first =3D "<ul>";
                        pre =3D "<li>";
                        post =3D "</li>";
                        end =3D "</ul>";
                        break;
                    case "SingleParagraph":
                        headerSep =3D " ";
                        first =3D "";
                        pre =3D "";
                        post =3D " ";
                        end =3D "<br>";
                        break;
                }
                s =3D "";
                if (typeof(summary.headertext) =3D=3D "string") {
                    s +=3D summary.headertext + headerSep;
                }
                s +=3D first;
                for (i=3D0; i<Page_Validators.length; i++) {
                    if (!Page_Validators[i].isvalid && =
typeof(Page_Validators[i].errormessage) =3D=3D "string") {
                        s +=3D pre + Page_Validators[i].errormessage + =
post;
                    }
                }
                s +=3D end;
                summary.innerHTML =3D s;
                window.scrollTo(0,0);
            }
            if (summary.showmessagebox =3D=3D "True") {
                s =3D "";
                if (typeof(summary.headertext) =3D=3D "string") {
                    s +=3D summary.headertext + "\r\n";
                }
                var lastValIndex =3D Page_Validators.length - 1;
                for (i=3D0; i<=3DlastValIndex; i++) {
                    if (!Page_Validators[i].isvalid && =
typeof(Page_Validators[i].errormessage) =3D=3D "string") {
                        switch (summary.displaymode) {
                            case "List":
                                s +=3D Page_Validators[i].errormessage;
                                if (i < lastValIndex) {
                                    s +=3D "\r\n";
                                }
                                break;
                            case "BulletList":
                            default:
                                s +=3D "- " + =
Page_Validators[i].errormessage;
                                if (i < lastValIndex) {
                                    s +=3D "\r\n";
                                }
                                break;
                            case "SingleParagraph":
                                s +=3D Page_Validators[i].errormessage + =
" ";
                                break;
                        }
                    }
                }
                alert(s);
            }
        }
    }
}

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CAA5BA.54114B00
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ca.globaltalentfcri.com/ScriptResource.axd?d=hdInAlzDABHw00Bzlv6YXwf2Fj-obYy8_KwQvLZjSpkjmxeGyDunZXEpxXCrMPDtycIQD_TZZvpF7iXrXSpHaFxDuIWjJ0y3RgtLoCmjNGs1&t=633880924179270475

=EF=BB=BF// Name:        MicrosoftAjax.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.21022.8
//!----------------------------------------------------------------------=
-
//! Copyright (C) Microsoft Corporation. All rights reserved.
//!----------------------------------------------------------------------=
-
//! MicrosoftAjax.js
//! Microsoft AJAX Framework.

// JavaScript Extensions and Type System

=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;

    // The method still makes sense for null context, but not if the =
context is omitted altogether
    // (omitted context makes the callback equivalent to the method =
itself, with one more level of indirection).

    return function() {
        var l =3D arguments.length;
        if (l > 0) {
            // arguments is not a real array, need to build a real one =
from it so we can add
            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;

    // The method still makes some sense with a null instance, in the =
same way that createCallback still
    // makes sense with a null context.

    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) {
    // *DO NOT* triple-slash comment those. The double-slashes here are =
on purpose.
    // We don't need to document private functions and those will induce =
infinite loops
    // if the preprocessor generates validation code for these.
    // <summary>
    //     Validates the parameters to a method.
    // </summary>
    // <example>
    //     function foo(anyParam, stringParam, anyArrayParam, =
stringArrayParam,
    //                  interfaceParam, optionalStringParam) {
    //         #if DEBUG
    //         var e =3D Function._validateParams(arguments, [
    //             { name: "anyParam" },
    //             { name: "mayBeNullParam", mayBeNull: true },
    //             { name: "stringParam", type: String },
    //             { name: "floatParam", type: Number },
    //             { name: "intParam", type: Number, integer: true },
    //             { name: "domParam", domElement: true },
    //             { name: "anyArrayParam", type: Array },
    //             { name: "mayBeNullArrayParam", type: Array, =
elementMayBeNull: true },
    //             { name: "stringArrayParam", type: Array, elementType: =
String },
    //             { name: "intArrayParam", type: Array, elementType: =
Number, elementInteger: true },
    //             { name: "domElementArrayParam", type: Array, =
elementDomElement: true },
    //             { name: "interfaceParam", type: Sys.IFoo }
    //             { name: "optionalStringParam", type: String, =
optional: true }
    //             { name: "stringParamArray", type: String, =
parameterArray: true }
    //             { name: "mayBeNullParamArray", parameterArray: true, =
mayBeNull: true }
    //         ]);
    //         if (e) throw e;
    //         #endif
    //     }
    // </example>
    // <param name=3D"params" type=3D"Array">Array of parameter values =
passed to the method.</param>
    // <param name=3D"expectedParams" type=3D"Array" =
optional=3D"true">Array of JSON objects describing the expected =
parameters.</param>

    var e;

    e =3D Function._validateParameterCount(params, expectedParams);
    if (e) {
        e.popStackFrame();
        return e;
    }

    for (var i=3D0; i < params.length; i++) {
        // If there are more params than expectedParams, then the last =
expectedParam
        // must be a paramArray.  Use the last expectedParam to validate =
the remaining
        // params.
        var expectedParam =3D expectedParams[Math.min(i, =
expectedParams.length - 1)];

        var paramName =3D expectedParam.name;
        if (expectedParam.parameterArray) {
            // Append index of parameter in 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;
    }

    // If parameter is an array, and not undefined or null, validate the =
type of its elements
    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;
    }

    // Using nodeType to check this is a DOM element for lack of a =
better test on IE and Safari.
    // This is not entirely foolproof ({nodeType: 1} would seem to be of =
type Sys.UI.DomElement)
    // but we need something that works cross-browser.
    // Opera and Firefox both have an HTMLElement type of which DOM =
elements are instances but
    // we're not using it here for consistency.
    // Text nodes are not considered elements.
    if (expectedDomElement) {
        var val;
        if (typeof(param.nodeType) !=3D=3D 'number') {
            // Windows and documents are considered elements even though =
they are not strictly speaking.
            // No node type may still be window or document.
            // Try to get the document for the element, revert to param =
if not found:
            var doc =3D param.ownerDocument || param.document || param;
            if (doc !=3D param) {
                // The parameter is not the document, but it may be =
window.
                // Try to get the window for the document:
                var w =3D doc.defaultView || doc.parentWindow;
                // On Safari 2, defaultView is not the same object as =
window but they have the same document.
                val =3D (w !=3D param) && !(w.document && param.document =
&& (w.document =3D=3D=3D param.document));
            }
            else {
                // doc is equal to param, but we still need to check =
that it's really a document.
                // Using the body property for lack of a better =
cross-browser test.
                val =3D (typeof(doc.body) =3D=3D=3D 'undefined');
            }
        }
        else {
            // Text nodes have a node type but are not considered DOM =
elements here.
            val =3D (param.nodeType =3D=3D=3D 3);
        }
        if (val) {
            e =3D Error.argument(paramName, Sys.Res.argumentDomElement);
            e.popStackFrame();
            return e;
        }
    }

    // If there is no expected type, any type is allowed.
    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) {
        // Modulo operator is 5x faster than Math.round().
        // Modulo returns Number.NaN for Number.NaN, =
Number.POSITIVE_INFINITY, and Number.NEGATIVE_INFINITY.
        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;

    // If message string can be converted to a number, IE sets e.message =
to the number, not the string.
    // Workaround this issue by explicitly setting e.message to the =
string.
    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;
}

// The ArgumentException ctor in .NET has the message *before* =
paramName.  This
// is inconsistent with all the other Argument*Exception ctors in .NET.
// We feel the paramName is more important than the message, and we want =
all our
// argument errors to be consistent, so our Error.argument() takes the =
paramName
// before the message.  This is inconsistent with .NET, but overall we =
feel
// it is the better design.
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);
    }

    // .NET implementation of ArgumentOutOfRangeException does not =
display actualValue if it is null.
    // For parity with .NET, we do not display if actualValue is null or =
undefined.  This is OK,
    // since more specific exceptions exist for null and undefined.
    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();

    // Example stack frame
    // =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
    // Error("test error")@:0
    // createError()@http://localhost/app/Error.js:2
    // throwError()@http://localhost/app/Error.js:6
    // callThrowError()@http://localhost/app/Error.js:10
    // @http://localhost/app/Error:js:14

    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");

    // Find current stack frame.  It may not be the first stack frame, =
since the very
    // first frame when the Error is constructed does not correspond to =
any actual file
    // or line number.  See example stack frame above.
    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];

    // Special-case last stack frame, to stop shifting frames off the =
stack.
    if (typeof(nextFrame) =3D=3D=3D "undefined" || nextFrame =3D=3D=3D =
null) {
        return;
    }

    // Update fields to correspond with next stack frame
    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 should always succeed, since the regex matches "\d+"
    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;;) {
        // Find the next opening or closing brace
        var open =3D format.indexOf('{', i);
        var close =3D format.indexOf('}', i);
        if ((open < 0) && (close < 0)) {
            // Not found: copy the end of the string and break
            result +=3D format.slice(i);
            break;
        }
        if ((close > 0) && ((close < open) || (open < 0))) {
            // Closing brace before opening is an error
            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;
        }

        // Copy the string before the brace
        result +=3D format.slice(i, open);
        i =3D open + 1;

        // Check for double braces (which display as one and are not =
arguments)
        if (format.charAt(i) =3D=3D=3D '{') {
            result +=3D '{';
            i++;
            continue;
        }

        // at this point we have a valid opening brace, which should be =
matched by a closing brace.
        if (close < 0) throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);

        // Find the closing brace

        // Get the string between the braces, and split it around the =
':' (if any)
        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 it has a toFormattedString method, call it.  Otherwise, =
call toString()
        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) {
    // appends pre- and post- token match strings while removing escaped =
characters.
    // Returns a single quote count which is used to determine if the =
token occurs
    // in a string literal.
    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) {
    // expands unspecified or single character date formats into the =
full pattern.
    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) {
    // expands 2-digit year into 4 digits.
    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) {
    // converts a format string into a regular expression with groups =
that
    // can be used to extract date fields from a date string.
    // check for a cached parse regex.
    if (!dtf._parseRegExp) {
        dtf._parseRegExp =3D {};
    }
    else if (dtf._parseRegExp[format]) {
        return dtf._parseRegExp[format];
    }

    // expand single digit formats, then escape regular expression =
characters.
    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;

    // iterate through each date token found.
    while ((match =3D tokenRegExp.exec(expFormat)) !=3D=3D null) {
        var preMatch =3D expFormat.slice(index, match.index);
        index =3D tokenRegExp.lastIndex;

        // don't replace any matches that occur inside a string literal.
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, regexp);
        if ((quoteCount%2) =3D=3D=3D 1) {
            regexp.append(match[0]);
            continue;
        }

        // add a regex group for the token.
        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("$");
    // allow whitespace to differ when matching formats.
    var regexpStr =3D regexp.toString().replace(/\s+/g, "\\s+");
    var parseRegExp =3D {'regExp': regexpStr, 'groups': groups};
    // cache the regex for this format.
    dtf._parseRegExp[format] =3D parseRegExp;
    return parseRegExp;
}

Date._getTokenRegExp =3D function Date$_getTokenRegExp() {
    // regular expression for matching dateTime tokens in format =
strings.
    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) {
    // args is a params array with value as the first item, followed by =
custom formats.
    // try parse with custom formats.
    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;
        }
    }
    // try parse with culture formats.
    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) {
    // try to parse the date string value by matching against the format =
string
    // while using the specified culture for date field names.
    value =3D value.trim();
    var dtf =3D cultureInfo.dateTimeFormat;

    // convert date formats into regular expressions with groupings.
    // use the regexp to determine the input format and extract the date =
fields.
    var parseInfo =3D Date._getParseRegExp(dtf, format);
    var match =3D new RegExp(parseInfo.regExp).exec(value);
    // DevDiv 124696: Return null to avoid Firefox warning "does not =
always return a value"
    if (match =3D=3D=3D null) return null;
   =20
    // found a date format that matches the input.
    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;
    // iterate the format groups to extract and set the date fields.
    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':
                    // Day of month.
                    date =3D parseInt(matchGroup, 10);
                    // check that date is generally in valid range, also =
checking overflow below.
                    if ((date < 1) || (date > 31)) return null;
                    break;
                case 'MMMM':
                    // Month, long name.
                    month =3D cultureInfo._getMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'MMM':
                    // Month, short name.
                    month =3D =
cultureInfo._getAbbrMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'M': case 'MM':
                    // Month.
                    var month =3D parseInt(matchGroup, 10) - 1;
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'y': case 'yy':
                    // 2-Digit Year.
                    year =3D Date._expandYear(dtf,parseInt(matchGroup, =
10));
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'yyyy':
                    // 4-Digit Year.
                    year =3D parseInt(matchGroup, 10);
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'h': case 'hh':
                    // Hours (12-hour clock).
                    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':
                    // Hours (24-hour clock).
                    hour =3D parseInt(matchGroup, 10);
                    if ((hour < 0) || (hour > 23)) return null;
                    break;
                case 'm': case 'mm':
                    // Minutes.
                    min =3D parseInt(matchGroup, 10);
                    if ((min < 0) || (min > 59)) return null;
                    break;
                case 's': case 'ss':
                    // Seconds.
                    sec =3D parseInt(matchGroup, 10);
                    if ((sec < 0) || (sec > 59)) return null;
                    break;
                case 'tt': case 't':
                    // AM/PM designator.
                    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':
                    // Deciseconds.
                    msec =3D parseInt(matchGroup, 10) * 100;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'ff':
                    // Centiseconds.
                    msec =3D parseInt(matchGroup, 10) * 10;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'fff':
                    // Milliseconds.
                    msec =3D parseInt(matchGroup, 10);
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'dddd':
                    // Day of week.
                    weekDay =3D cultureInfo._getDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'ddd':
                    // Day of week.
                    weekDay =3D =
cultureInfo._getAbbrDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'zzz':
                    // Time zone offset in +/- hours:min.
                    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':
                    // Time zone offset in +/- hours.
                    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();
    }
    // have to set year, month and date together to avoid overflow based =
on current date.
    result.setFullYear(year, month, date);
    // check to see if date overflowed for specified month (only checked =
1-31 above).
    if (result.getDate() !=3D=3D date) return null;
    // invalid day of week.
    if ((weekDay !=3D=3D null) && (result.getDay() !=3D=3D weekDay)) {
        return null;
    }
    // if pm designator token was found make sure the hours fit the =
24-hour clock.
    if (pmHour && (hour < 12)) {
        hour +=3D 12;
    }
    result.setHours(hour, min, sec, msec);
    if (tzMinOffset !=3D=3D null) {
        // adjust timezone to utc before applying local offset.
        var adjustedMin =3D result.getMinutes() - (tzMinOffset + =
result.getTimezoneOffset());
        // Safari limits hours and minutes to the range of -127 to 127.  =
We need to use setHours
        // to ensure both these fields will not exceed this range.  =
adjustedMin will range
        // somewhere between -1440 and 1500, so we only need to split =
this into hours.
        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);

    // Start with an empty string
    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 (;;) {

        // Save the current index
        var index =3D tokenRegExp.lastIndex;

        // Look for the next pattern
        var ar =3D tokenRegExp.exec(format);

        // Append the text before the pattern (or the end of the string =
if not found)
        var preMatch =3D format.slice(index, ar ? ar.index : =
format.length);
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, ret);

        if (!ar) break;

        // do not replace any matches that occur inside a string =
literal.
        if ((quoteCount%2) =3D=3D=3D 1) {
            ret.append(ar[0]);
            continue;
        }

        switch (ar[0]) {
        case "dddd":
            // Day of the week, using the full name
            ret.append(dtf.DayNames[this.getDay()]);
            break;
        case "ddd":
            //Day of the week, as a three-letter abbreviation
            ret.append(dtf.AbbreviatedDayNames[this.getDay()]);
            break;
        case "dd":
            // Day of month, with leading zero for single-digit days
            ret.append(addLeadingZero(this.getDate()));
            break;
        case "d":
            // Day of month, without leading zero for single-digit days
            ret.append(this.getDate());
            break;
        case "MMMM":
            // Month, using the full name
            ret.append(dtf.MonthNames[this.getMonth()]);
            break;
        case "MMM":
            // Month, as a three-letter abbreviation
            ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]);
            break;
        case "MM":
            // Month, as digits, with leading zero for single-digit =
months
            ret.append(addLeadingZero(this.getMonth() + 1));
            break;
        case "M":
            // Month, as digits, with no leading zero for single-digit =
months
            ret.append(this.getMonth() + 1);
            break;
        case "yyyy":
            // Year represented by four full digits
            ret.append(this.getFullYear());
            break;
        case "yy":
            // Year, as two digits, with leading zero for years less =
than 10
            ret.append(addLeadingZero(this.getFullYear() % 100));
            break;
        case "y":
            // Year, as two digits, but with no leading zero for years =
less than 10
            ret.append(this.getFullYear() % 100);
            break;
        case "hh":
            // Hours with leading zero for single-digit hours, using =
12-hour clock
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(addLeadingZero(hour));
            break;
        case "h":
            // Hours with no leading zero for single-digit hours, using =
12-hour clock
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(hour);
            break;
        case "HH":
            // Hours with leading zero for single-digit hours, using =
24-hour clock
            ret.append(addLeadingZero(this.getHours()));
            break;
        case "H":
            // Hours with no leading zero for single-digit hours, using =
24-hour clock
            ret.append(this.getHours());
            break;
        case "mm":
            // Minutes with leading zero  for single-digit minutes
            ret.append(addLeadingZero(this.getMinutes()));
            break;
        case "m":
            // Minutes with no leading zero  for single-digit minutes
            ret.append(this.getMinutes());
            break;
        case "ss":
            // Seconds with leading zero for single-digit seconds
            ret.append(addLeadingZero(this.getSeconds()));
            break;
        case "s":
            // Seconds with no leading zero for single-digit seconds
            ret.append(this.getSeconds());
            break;
        case "tt":
            // Multicharacter am/pm indicator
            ret.append((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator);
            break;
        case "t":
            // One character am/pm indicator ("a" or "p")
            ret.append(((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator).charAt(0));
            break;
        case "f":
            // Deciseconds
            =
ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
            break;
        case "ff":
            // Centiseconds
            ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, =
2));
            break;
        case "fff":
            // Milliseconds
            ret.append(addLeadingZeros(this.getMilliseconds()));
            break;
        case "z":
            // Time zone offset, no leading zero
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
Math.floor(Math.abs(hour)));
            break;
        case "zz":
            // Time zone offset with leading zero
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
addLeadingZero(Math.floor(Math.abs(hour))));
            break;
        case "zzz":
            // Time zone offset with leading zero
            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) {
    // <param name=3D"value" type=3D"String">A string that can parse to =
a number.</param>
    // <param name=3D"cultureInfo" type=3D"Sys.CultureInfo">Culture =
information.</param>
    // <returns type=3D"Number">Parsed number or Number.NaN if parsing =
failed.</returns>
    value =3D value.trim();
   =20
    // allow infinity or hexidecimal for javascript compatability.
    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
    // support leading sign without space in addition to culture =
negative format for .NET compatability
    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
    // strip group separators from the integer portion
    integer =3D integer.split(numFormat.NumberGroupSeparator).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];
    }

    // don't allow multiple decimals separators, group separators after =
decimal or trailing strings.
    if (p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)) {
        return parseFloat(p);
    }
    return Number.NaN;
}
Number._parseNumberNegativePattern =3D function =
Number$_parseNumberNegativePattern(value, numFormat, =
numberNegativePattern) {
    // <summary>
    //     Extracts the sign and number from a numeric input string =
using the culture-specific number format
    //     information and number negative pattern.
    // </summary>
    // <param name=3D"value" type=3D"String">Numerical string =
value.</param>
    // <param name=3D"numFormat" type=3D"Object">Culture-specific number =
formatting information.</param>
    // <param name=3D"numberNegativePattern" =
type=3D"Number">Culture-specific specifier for the negative number =
format.
    // </param>
    // <returns type=3D"Array">Sign and number for the input value.  The =
sign is the invariant symbol or an empty
    //     string if the number was unsigned.
    // </returns>
    var neg =3D numFormat.NegativeSign;
    var pos =3D numFormat.PositiveSign;   =20
    switch (numberNegativePattern) {
        case 4: // trailing sign with space
            neg =3D ' ' + neg;
            pos =3D ' ' + pos;
        case 3: // trailing sign no space
            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: // leading sign with space
            neg +=3D ' ';
            pos +=3D ' ';
        case 1: // leading sign no space
            if (value.startsWith(neg)) {
                return ['-', value.substr(neg.length)];
            }
            else if (value.startsWith(pos)) {
                return ['+', value.substr(pos.length)];
            }
            break;
        case 0: // parenthesis
            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();
        }
    }

    // All the enum patterns for the various NumberFormats
    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 $)"];

    // Handles expanding numbers into some specified grouping i.e. [2, =
3, 5] would be ...,XXXXX,XXXXX,XXX,XX,
    function expandNumber(number, precision, groupSizes, sep, =
decimalChar) {
       =20
        var curSize =3D groupSizes[0];
        var curGroupIndex =3D 1;

        // Make the number a string
        var numberString =3D number.toString();
        var right =3D "";
        var exponent =3D "";
        // Split: left is integer, right is decimal and exponent.
        var decimalSplit =3D numberString.split('.');
        if (decimalSplit.length > 1) {
            numberString =3D decimalSplit[0];
            right =3D decimalSplit[1];
            // Split: left is decimal, right is exponent.
            var exponentSplit =3D right.split(/e/i);
            if (exponentSplit.length > 1) {
                right =3D exponentSplit[0];
                exponent =3D "e" + exponentSplit[1];
            }
        }

        // now check precision, if its 0, drop right, otherwise =
reassemble it
        if (precision > 0) {
            // trim right down to precision size
            var rightDifference =3D right.length - precision;
            if (rightDifference > 0) {
                right =3D right.slice(0, precision);
            } else if (rightDifference < 0) {
                for (var i=3D0; i<Math.abs(rightDifference); i++) {
                    right +=3D '0';
                }
            }

            // finally add the separator
            right =3D decimalChar + right;
        }
        else { // No precision wanted, so drop the right
            right =3D "";
        }
        right +=3D exponent;

        var stringIndex =3D numberString.length-1;
        var ret =3D "";
        while (stringIndex >=3D 0) {

            // group size of 0 or larger than the rest of the string =
means take the rest of the string
            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;

    // Number is always positive for printing purposes (negative treated =
separately)
    var number =3D Math.abs(this);

    // Default to number format
    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';

        // precision for decimal is padding
        if (precision !=3D=3D -1) {
            var numberStr =3D ""+number;
            var zerosToAdd =3D precision - numberStr.length;
            if (zerosToAdd > 0) {
                for (var i=3D0; i<zerosToAdd; i++) {
                    numberStr =3D '0'+numberStr;
                }
            }
            number =3D numberStr;
        }

        // We do want the negative for this scenario only
        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), precision, =
nf.PercentGroupSizes, nf.PercentGroupSeparator, =
nf.PercentDecimalSeparator);
        break;
    default:
        throw Error.format(Sys.Res.formatBadFormatSpecifier);
    }

    var regex =3D /n|\$|-|%/g;

    // Start with an empty string
    var ret =3D "";

    for (;;) {

        // Save the current index
        var index =3D regex.lastIndex;

        // Look for the next pattern
        var ar =3D regex.exec(pattern);

        // Append the text before the pattern (or the end of the string =
if not found)
        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;

    // Setting Array[Array.length] is faster than Array.push() for a =
single element.
    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() for multiple elements is faster than setting =
Array[Array.length] in a loop.
    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 {
        // When the Array ctor is called with 0 or 2 or more arguments, =
it creates a new
        // Array with the elements from the argument list.
        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) {
        // Coerce into number ("1a" will become NaN, which is consistent =
with the built-in behavior of similar Array methods)
        start =3D start - 0;
        // NaN becomes zero
        if (isNaN(start)) {
            start =3D 0;
        }
        else {
            // If start is positive or negative infinity, don't try to =
truncate it.
            // The infinite values will be handled correctly by the =
subsequent code.
            if (isFinite(start)) {
                // This is faster than doing Math.floor or Math.ceil
                start =3D start - (start % 1);
            }
            // Negative start indices start from the end
            if (start < 0) {
                start =3D Math.max(0, length + start);
            }
        }

        // A do/while loop seems to have equal performance to a for loop =
in this scenario
        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
// Define the root object (for non-browser hosts)
if (!window) this.window =3D this;

// Alias Function as Type
window.Type =3D Function;

// This has undistinguishable perf from compiled a RegExp.
// The regexps here are kept a little too wide to allow for Unicode =
characters but still
// capture the most obvious developer errors. The JavaScript parser, as =
well as the checks for
// eval('name') =3D=3D=3D name will take care of the other errors.
// =
*************************************************************************=
*******************
// NOTE: update ScriptComponentDescriptor.cs with any change to this =
expression
// so server and client-side are in sync.
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);
    // Check if the type name parses to an existing object that matches =
this.
    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);
    // Check for double registrations
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));

    // We never accept undefined for this parameter because this is the =
only way we can catch
    // registerClass("Sys.Foo", Sys.BArWithATypo, Sys.ISomeInterface).
    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;
    }
    // Saving a case-insensitive index of the registered types on each =
namespace
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;

    // It is more performant to check "if (interfaceTypes)" than "if =
(arguments.length > 2)".
    // Accessing the arguments array is relatively expensive, so we only =
want to do so if there
    // are actually interface parameters.
    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);
    // Check if the type name parses to an existing object that matches =
this.
    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);
    // Check for double registrations
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    // Saving a case-insensitive index of the registered types on each =
namespace
    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;
    }
}

// Bootstrapping the Sys namespace. Can't use registerNamespace here as =
its code uses some of the private
// variables that moved from the global namespace onto Sys.
// Changes to registerNamespace should be checked against this =
bootstrapping code to keep them in sync.
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') {
            // Need to remove empty elements before joining in the =
separator case
            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,
    // separator may be null, to match behavior of ECMA =
Array.join(separator) and
    // .NET String.Join(separator, value)
    toString: Sys$StringBuilder$toString
}
Sys.StringBuilder.registerClass('Sys.StringBuilder');
=20
if (!window.XMLHttpRequest) {
    window.XMLHttpRequest =3D function window$XMLHttpRequest() {
        // DevDiv Bugs 150054: Msxml2.XMLHTTP (version independent =
ProgID) required for mobile IE
        var progIDs =3D [ 'Mxsml2.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;
    }
}

// Compat
=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);

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]);
    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(' Safari/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Safari;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ =
Safari\/(\d+(\.\d+)?)/)[1]);
    Sys.Browser.name =3D 'Safari';
}
else if (navigator.userAgent.indexOf('Opera/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Opera;
}

// Base Class Library

Type.registerNamespace('Sys.UI');

=20
Sys._Debug =3D function Sys$_Debug() {
    /// <summary locid=3D"M:J#Sys._Debug.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}


    function Sys$_Debug$_appendConsole(text) {
        // VS script debugger output window.
        if ((typeof(Debug) !=3D=3D 'undefined') && Debug.writeln) {
            Debug.writeln(text);
        }
        // FF firebug and Safari console.
        if (window.console && window.console.log) {
            window.console.log(text);
        }
        // Opera console.
        if (window.opera) {
            window.opera.postError(text);
        }
        // WebDevHelper console.
        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() {
        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);

        // Cannot execute eval('debugger') in browsers that don't have a =
debugger statement, since it causes a parse error.
        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);

                // don't recurse into dom elements.
                // trace dump has to use '=3D=3D' for window when it's =
passed as event arg in IE.
                // i.e., body onLoad=3D"Sys.Debug.traceDump(window)"
                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 + =
'}');
                }
                // objects and arrays
                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;
    // Need to do the type check manually instead of using parameter =
validation to be able to return
    // an error message that mentions the actual enum type that's =
expected instead of Number.
    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);
    // Check if the type name parses to an existing object that matches =
this.
    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') {
            // No getter, looking for an existing field.
            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') {
                // The setter exists, using it in all cases.
                setter.apply(target, [val]);
            }
            else if (val instanceof Array) {
                // There is a getter but no setter and the value to set =
is an array. Adding to the existing 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)) {
                // There is a getter but no setter and the value to set =
is a plain object. Adding to the existing 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 {
                // No setter, and the value is not an array or object, =
throwing.
                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) {
        // DevDiv 81690: Do not add to createdComponent list unless we =
are in 2 pass mode,
        // which is during the first GET and on partial updates.=20
        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;
    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 (e.type =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 ((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;
    this.type =3D e.type;
}

    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() {
            // window.event can be denied access in some rare =
circumstances (DevDiv 68929)
            var e =3D {};
            // We want to use the window for the event element, not the =
window for this script (DevDiv 63167)
            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) {
    // DevDiv Bugs 100697: Accessing element.document causes dynamic =
script nodes to load prematurely.
    // DevDiv Bugs 124696: Firefox warns on undefined property =
element.tagName, added first part of IF
    if (element.tagName && (element.tagName =3D=3D=3D "SCRIPT")) return;
   =20
    var doc =3D element.ownerDocument || element.document || element;
    // Can't use _getWindow here and compare to the element to check if =
it's a window
    // because the object Safari exposes as document.defaultView is not =
the window (DevDiv 100229)
    // Looking at the document property instead to include window in DOM =
nodes, then comparing to the
    // document for this element and finally look for the nodeType =
property.
    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);

    // Implementation for browsers that don't have getElementById on =
elements:
    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;
            // For a document element, return zero.
            if (element.self || element.nodeType =3D=3D=3D 9) return new =
Sys.UI.Point(0,0);
            // Here there is a small inconsistency with what other =
browsers would give for wrapping elements:
            // the bounding rect can be different from the first =
rectangle. getBoundingRect is used here
            // because it's more consistent and because clientRects need =
to be offset by the coordinates
            // of the frame in the parent window, which is not always =
accessible to script (if it's in a different
            // domain in particular).
            var clientRect =3D element.getBoundingClientRect();
            if (!clientRect) {
                return new Sys.UI.Point(0,0);
            }
            var documentElement =3D =
element.ownerDocument.documentElement;
            // Substracting 2px for the border of the viewport. This can =
be changed in IE6 by applyting a border
            // to the HTML element but this is not supported by Atlas. =
It cannot be changed in IE7.
            var offsetX =3D clientRect.left - 2 + =
documentElement.scrollLeft,
                offsetY =3D clientRect.top - 2 + =
documentElement.scrollTop;
           =20
            // When the window is an iframe, the frameborder needs to be =
added. This is only available from
            // script when the parent window is in the same domain as =
the frame, hence the try/catch.
            try {
                var f =3D =
element.ownerDocument.parentWindow.frameElement || null;
                if (f) {
                    // frameBorder has a default of "1" so undefined =
must map to 0, and "0" and "no" to 2.
                    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;
            // For a document element, return zero.
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);

            // Note (to document): in IE, if the elements are not =
explicitly dimensioned to contain
            // relatively positioned elements they contain, there are =
bugs in the measured dimensions of elements
            // that can't be worked around and which break this =
function.
            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;

                // Safari has a bug that double-counts the body offset =
for absolutely positioned elements
                // that are direct children of body.
                // Firefox has its own quirk, which is that =
non-absolutely positioned elements that are
                // direct children of body get the body offset counted =
twice.
                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 an element is absolutely positioned, its parent's =
scroll should not be subtracted
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                // In Firefox and Safari, all parent's scroll values =
must be taken into account.
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    tagName =3D parent.tagName;

                    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 an element is absolutely positioned, its =
parent's scroll should not be subtracted
                    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;
            // For a document element, return zero.
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);

            // Note (to document): in IE, if the elements are not =
explicitly dimensioned to contain
            // relatively positioned elements they contain, there are =
bugs in the measured dimensions of elements
            // that can't be worked around and which break this =
function.
            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;
            }

            // Opera already includes the scrolling into the offsets =
except for positioned contents.
            var elementPosition =3D element.style.position;
            var elementPositioned =3D elementPosition && =
(elementPosition !=3D=3D "static");

            // If an element is absolutely positioned, its parent's =
scroll should not be subtracted, except on Opera.
            for (var parent =3D element.parentNode; parent; parent =3D =
parent.parentNode) {
                tagName =3D parent.tagName;

                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"))))) {
                    // Opera has scroll values on elements that are not =
scrolled, like table rows so we
                    // need to explicitly check for overflow mode.

                    offsetX -=3D (parent.scrollLeft || 0);
                    offsetY -=3D (parent.scrollTop || 0);
                }
                var parentPosition =3D (parent && parent.style) ? =
parent.style.position : null;

                // Opera already includes the scrolling into the offsets =
except for positioned contents.
                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;
            // For a document element, return zero.
            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;
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);

                // Firefox has its own quirk, which is that =
non-absolutely positioned elements that are
                // direct children of body get the body offset counted =
twice.
                if ((parent.offsetLeft || parent.offsetTop) &&
                    !((tagName =3D=3D=3D "BODY") &&
                    (!previousStyle || previousStyle.position !=3D=3D =
"absolute"))) {

                    offsetX +=3D parent.offsetLeft;
                    offsetY +=3D parent.offsetTop;
                }

                // This code works around a difference in behavior in =
Opera and Safari which includes
                // clientLeft and clientTop in the computedstyle offset.
                if (previous !=3D=3D null && currentStyle) {
                    // This is to workaround a known bug in IE and =
Firefox:
                    // <table> and <td> have strange behavior with =
offsetLeft/offsetTop and clientLeft/clientTop.
                    // Say you have the following html: <table =
style=3D"border-width:25px"><tr><td></table>
                    // The offsetLeft and offsetTop for the <td> will be =
25, but the client/borderLeft and
                    // client/borderTop for the <table> will also be 25. =
 So if you count the client/borderLeft and
                    // client/borderTop for the <table>, you will be =
double-counting the table border.
                    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 an element is absolutely positioned, its parent's =
scroll should not be subtracted, except on Opera.
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                // In Firefox and Safari, all parent's scroll values =
must be taken into account.
                // In IE, only the offset parent's because positioned =
elements are offset-parented to BODY and
                // don't need scroll substraction. Non-positioned =
elements are offset-parented to their parent,
                // which may be scrolled.
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    // In IE quirks mode, the <body> element has bogus =
values for scrollLeft and scrollTop.
                    // So we do not use the scrollLeft and scrollTop for =
the <body> element.  This does not
                    // break the standards mode behavior. (VSWhidbey =
426176)
                    tagName =3D parent.tagName;

                    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') {
            // Default is different depending on the tag name (omitting =
deprecated and non-standard tags)
            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) {
        // Safari has an interesting bug (fixed in WebKit) where an =
element with display:none will have a null computed 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;
        // Need a clone as the display property may be wrong and can't =
be fixed on the original object.
        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
// This ScriptLoader works by injecting script tags into the DOM =
sequentially, waiting for each script
// to finish loading before proceeding to the next one.
// It supports a timeout which applies to ALL scripts.
// A call to Sys.Application.notifyScriptLoaded() must be at the bottom =
of each script, as that is=20
// the only reliable way to know when the script has finished loading in =
all browsers.
// It does however attach to the loaded, readystatechange, and error =
events on the script element, and it uses
// these event handlers to know when the script has loaded but the call =
to notifyScriptLoaded may not have been
// executed, which is treated as an error.

Sys._ScriptLoader =3D function Sys$_ScriptLoader() {
    this._scriptsToLoad =3D null;
    this._scriptLoadedDelegate =3D Function.createDelegate(this, =
this._scriptLoadedHandler);
}

    function Sys$_ScriptLoader$dispose() {
        this._stopLoading();
        if(this._events) {
            delete this._events;
        }
        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;
        if(this._loading) {
            throw =
Error.invalidOperation(Sys.Res.scriptLoaderAlreadyLoading);
        }
        this._loading =3D true;
        this._allScriptsLoadedCallback =3D allScriptsLoadedCallback;
        this._scriptLoadFailedCallback =3D scriptLoadFailedCallback;
        this._scriptLoadTimeoutCallback =3D scriptLoadTimeoutCallback;
       =20
        this._loadScriptsInternal();
    }

    function Sys$_ScriptLoader$notifyScriptLoaded() {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.notifyScriptLoaded" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
       =20
        // called at the bottom of scripts that have been loaded. This =
is how we know the script is finished
        // mainly for Safari which doesn't support the load event.
        if(!this._loading) {
            // this can happen if someone disposes() the Script Loader =
while it is loading scripts
            // OR if someone includes a reference inline -- which should =
be a no-op
            return;
        }

        this._currentTask._notified++;
       =20
        if(Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) {          =20
            if(this._currentTask._notified =3D=3D=3D 1) {
                // the loaded event is never going to happen in Safari. =
But once we know that script within the loaded script
                // is executing, we can know when it is finished by =
setting a 0 timeout, it will run after the loaded script
                // is finished.
                // On the first (and only the first) notification for =
this script, set a timeout that processes the script
                // as if its loaded event fired. Only the first =
notification because if we did it for all we'd get one loaded event
                // for each call.
                window.setTimeout(Function.createDelegate(this, =
function() {
                    =
this._scriptLoadedHandler(this._currentTask.get_scriptElement(), true);
                }), 0);
            }
        }

        // in other browsers, the loaded handler will be called natively =
by the loaded/readystatechange event.
        // Waiting rather than processing the next script immediately =
means we can detect scripts that incorrectly contain
        // multiple notifyScriptLoaded() callbacks.
    }

    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');

        // Initialize default script type to JavaScript - but it might =
get overwritten
        // if a custom script tag has a different type attribute.
        scriptElement.type =3D 'text/javascript';

        // Apply script element attributes
        for (var attr in queuedScript) {
            scriptElement[attr] =3D queuedScript[attr];
        }
       =20
        return scriptElement;
    }

    function Sys$_ScriptLoader$_loadScriptsInternal() {
        // Load up the next script in the list
        if (this._scriptsToLoad && this._scriptsToLoad.length > 0) {
            var nextScript =3D Array.dequeue(this._scriptsToLoad);
            // Inject a script element into the DOM
            var scriptElement =3D this._createScriptElement(nextScript);
           =20
            if (scriptElement.text && Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) {
                // Safari requires the inline script to be in the =
innerHTML attribute
                scriptElement.innerHTML =3D scriptElement.text;
                delete scriptElement.text;
            }           =20

            // AtlasWhidbey 36149: If they queue an empty script block =
"", we can't tell the difference between
            //                     a script block queue entry and a src =
entry with just if(!element.text).
            // dont use scriptElement.src --> FF resolves that to the =
current directory, IE leaves it blank.
            // nextScript.src is always a string if it's a non block =
script.
            if (typeof(nextScript.src) =3D=3D=3D "string") {
                // We only need to worry about timing out and loading if =
the script tag has a 'src'.
                this._currentTask =3D new =
Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate);
                // note: task is responsible for disposing of _itself_. =
This is necessary so that the ScriptLoader can continue
                //       with script loading after a script notifies it =
has loaded. The task sticks around until the dom element finishes
                //       completely, and disposes itself automatically.
                // note: its possible for notify to occur before this =
method even returns in IE! So it should remain the last possible =
statement.
                this._currentTask.execute();
            }
            else {
                // script is literal script, so just load the script by =
adding the new element to the DOM
                =
document.getElementsByTagName('HEAD')[0].appendChild(scriptElement);
               =20
                // DevDiv 74151: Do not assume the script executes =
synchronously. Use a setTimeout to delay
                // proceeding, which ensures the script executes before =
we continue. This was first introduced
                // as a workaround for a Firefox bug, but we do it for =
all browsers in order to avoid making
                // an assumption that may be wrong in the future. =
Executing the script synchronously is not
                // in any spec or recommendation.
                var scriptLoader =3D this; // used in the setTimeout =
closure
                window.setTimeout(function() {
                    // cleanup (removes the script element in release =
mode).
                    Sys._ScriptLoader._clearScript(scriptElement);
                    // Resume script loading progress.
                    scriptLoader._loadScriptsInternal();
                }, 0);
            }
        }
        else {
            // When there are no more scripts to load, call the final =
event
            var callback =3D this._allScriptsLoadedCallback;
            this._stopLoading();
            if(callback) {
                callback(this);
            }
        }
    }

    function Sys$_ScriptLoader$_raiseError(multipleCallbacks) {
        // Abort script loading and raise an error.
        var callback =3D this._scriptLoadFailedCallback;
        var scriptElement =3D this._currentTask.get_scriptElement();
        this._stopLoading();
       =20
        if(callback) {
            callback(this, scriptElement, multipleCallbacks);
        }
        else {
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src, =
multipleCallbacks);
        }
    }

    function Sys$_ScriptLoader$_scriptLoadedHandler(scriptElement, =
loaded) {
        // called by the ScriptLoaderTask when the script element has =
finished loading, which could be because it loaded or
        // errored out (for browsers that support the error event).
        // In Safari this is called indirectly via a setTimeout in the =
notifyScriptLoaded method.
        if(loaded && this._currentTask._notified) {
            if(this._currentTask._notified > 1) {
                // the script contained more than one notify callback
                this._raiseError(true);
            }
            else {
                // script loaded and contained a single notify callback, =
move on to next script
                // DevDiv Bugs 123213: Note that scriptElement.src is =
read as un-htmlencoded, even if it was html encoded originally
                Array.add(Sys._ScriptLoader._getLoadedScripts(), =
scriptElement.src);
                this._currentTask.dispose();
                this._currentTask =3D null;
                this._loadScriptsInternal();
            }
        }
        else {
            // script loaded with an error or it did not contain a =
notify callback.
            this._raiseError(false);
        }
    }

    function Sys$_ScriptLoader$_scriptLoadTimeoutHandler() {
        var callback =3D this._scriptLoadTimeoutCallback;
        this._stopLoading();

        if(callback) {
            callback(this);
        }
    }

    function Sys$_ScriptLoader$_stopLoading() {
        if(this._timeoutCookie) {
            window.clearTimeout(this._timeoutCookie);
            this._timeoutCookie =3D null;
        }

        if(this._currentTask) {
            this._currentTask.dispose();
            this._currentTask =3D null;
        }

        this._scriptsToLoad =3D null;
        this._loading =3D null;
       =20
        this._allScriptsLoadedCallback =3D null;
        this._scriptLoadFailedCallback =3D null;
        this._scriptLoadTimeoutCallback =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,  =20
    _loadScriptsInternal: Sys$_ScriptLoader$_loadScriptsInternal,
    _raiseError: Sys$_ScriptLoader$_raiseError,
    _scriptLoadedHandler: Sys$_ScriptLoader$_scriptLoadedHandler,
    _scriptLoadTimeoutHandler: =
Sys$_ScriptLoader$_scriptLoadTimeoutHandler,
    _stopLoading: Sys$_ScriptLoader$_stopLoading   =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) {
    // For Firefox we need to resolve the script src attribute
    // since the script elements already in the DOM are always
    // resolved. To do this we create a dummy element to see
    // what it would resolve to.
    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() {
    // enumerates the SCRIPT elements in the DOM and ensures we have =
their SRC's in the referencedScripts array.
    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) {
        // In release mode we clear out the script elements that we add
        // so that they don't clutter up the DOM.
        scriptElement.parentNode.removeChild(scriptElement);
    }
}

Sys._ScriptLoader._errorScriptLoadFailed =3D function =
Sys$_ScriptLoader$_errorScriptLoadFailed(scriptUrl, multipleCallbacks) {
    var errorMessage;
    if(multipleCallbacks) {
        errorMessage =3D Sys.Res.scriptLoadMultipleCallbacks;
    }
    else {
        // a much more detailed message is displayed in debug mode
        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
// ScriptLoaderTask loads a single script by injecting a dynamic script =
tag into the DOM.
// It calls the completed callback when the script element's =
load/readystatechange or error event occus.
// The ScriptLoader itself increments the _notified field each time =
notifyScriptLoaded is called from
// within the script (it should only be once). When the completed =
callback is called, ScriptLoader ensures
// the script was successfully loaded and contained exactly 1 =
notifyScriptLoaded callback.
// The task should be disposed of after use, as it contains references =
to the script element.

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() {
        // disposes of the task by removing the load handlers, aborting =
the window timeout, and releasing the ref to the dom element
        if(this._disposed) {
            // already disposed
            return;
        }
        this._disposed =3D true;
        this._removeScriptElementHandlers();
        // remove script element from DOM
        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();
        =
document.getElementsByTagName('HEAD')[0].appendChild(this._scriptElement)=
;
    }

    function Sys$_ScriptLoaderTask$_addScriptElementHandlers() {
        // adds the necessary event handlers to the script node to know =
when it is finished loading
        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
        // FF throws onerror if the script doesn't exist, not loaded.
        // DevDev Bugs 86101 -- cant use DomElement.addHandler because =
it throws for 'error' events.
        if (this._scriptElement.addEventListener) {
            this._scriptErrorDelegate =3D Function.createDelegate(this, =
this._scriptErrorHandler);
            this._scriptElement.addEventListener('error', =
this._scriptErrorDelegate, false);
        }
    }

    function Sys$_ScriptLoaderTask$_removeScriptElementHandlers() {
        // removes the load and error handlers from the script element
        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) {
                // DevDev Bugs 86101 -- cant use =
DomElement.removeHandler because addHandler throws for 'error' events.
                this._scriptElement.removeEventListener('error', =
this._scriptErrorDelegate, false);
                this._scriptErrorDelegate =3D null;
            }
            this._scriptLoadDelegate =3D null;
        }
    }

    function Sys$_ScriptLoaderTask$_scriptErrorHandler() {
        // handler for when the script element's error event occurs
        if(this._disposed) {
            return;
        }
       =20
        // false =3D=3D did not load successfully (404, etc)
        this._completedCallback(this.get_scriptElement(), false);
    }

    function Sys$_ScriptLoaderTask$_scriptLoadHandler() {
        // handler for when the script element's load/readystatechange =
event occurs
        if(this._disposed) {
            return;
        }

        var scriptElement =3D this.get_scriptElement();
        if ((scriptElement.readyState !=3D=3D 'loaded') &&
            (scriptElement.readyState !=3D=3D 'complete')) {
            return;
        }
       =20
        // process the loaded event on a timeout so it is queued behind =
the task that executes the referenced script.
        // Without this, if there is an alert open, the loaded event can =
occur BEFORE the script itself executes, leading
        // us to believe the script did not contain the notify callback =
when really it just hasn't executed yet.
        // The timeout ensures we don't run that logic until after the =
script has a chance to execute.
        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);
=20
Sys._Application =3D function Sys$_Application() {
    Sys._Application.initializeBase(this);

    this._disposableObjects =3D [];
    this._components =3D {};
    this._createdComponents =3D [];
    this._secondPassComponents =3D [];

    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$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_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_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$beginCreateComponents() {
        this._creatingComponents =3D true;
    }
    function Sys$_Application$dispose() {
        if (!this._disposing) {
            this._disposing =3D true;
            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() {
        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;
        // Need to reference the application singleton directly beause =
the $find alias
        // points to the instance function without context. The 'this' =
pointer won't work here.
        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() {
        if(!this._initialized && !this._initializing) {
            this._initializing =3D true;
            // Raise the init events on a timeout so it is queued. This =
delays the component creation until after the body is
            // is ready for use. Without this, if a component adds a dom =
element to body it will be modifying the body before
            // window.onload, which causes an "operation aborted" error =
in IE. We use this trick for all browsers for consistency.
            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() {
        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$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$_doInitialize() {
        Sys._Application.callBaseMethod(this, 'initialize');

        var handler =3D this.get_events().getHandler("init");
        if (handler) {
            this.beginCreateComponents();
            handler(this, Sys.EventArgs.Empty);
            this.endCreateComponents();
        }
        this.raiseLoad();
        this._initializing =3D false;
    }
    function Sys$_Application$_loadHandler() {
        // Called from window.onload. Note that the app may already be =
initialized because SM inlines a call to app.initialize.
        // Who ever calls it first, wins.
        if(this._loadHandlerDelegate) {
            Sys.UI.DomEvent.removeHandler(window, "load", =
this._loadHandlerDelegate);
            this._loadHandlerDelegate =3D null;
        }
        this.initialize();
    }
    function Sys$_Application$_unloadHandler(event) {
        this.dispose();
    }
Sys._Application.prototype =3D {
    _creatingComponents: false,
    _disposing: false,
    get_isCreatingComponents: Sys$_Application$get_isCreatingComponents,
    add_load: Sys$_Application$add_load,
    remove_load: Sys$_Application$remove_load,
    add_init: Sys$_Application$add_init,
    remove_init: Sys$_Application$remove_init,
    add_unload: Sys$_Application$add_unload,
    remove_unload: Sys$_Application$remove_unload,
    addComponent: Sys$_Application$addComponent,
    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,
    unregisterDisposableObject: =
Sys$_Application$unregisterDisposableObject,
    _addComponentToSecondPass: =
Sys$_Application$_addComponentToSecondPass,
    _doInitialize: Sys$_Application$_doInitialize,   =20
    _loadHandler: Sys$_Application$_loadHandler,
    _unloadHandler: Sys$_Application$_unloadHandler
}
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,
    // properties
    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,
    // methods
    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) {
    if (!window.DOMParser) {
        // DevDiv Bugs 150054: Msxml2.DOMDocument (version independent =
ProgID) required for mobile IE
        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 {
        // Mozilla browsers have a DOMParser
        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 this$_onReadyStateChange() {
        /*
            readyState values:
            0 =3D uninitialized
            1 =3D loading
            2 =3D loaded
            3 =3D interactive
            4 =3D complete
        */
        if (_this._xmlHttpRequest.readyState =3D=3D=3D 4 /*complete*/) {
            // DevDiv 58581:
            // When a request is pending when the page is closed =
(navigated away, postback, etc)
            // in FF and Safari, the request is aborted just as if =
abort() was called on the=20
            // xmlhttprequest object.
            // However, even aborted requests have a readyState of 4, =
which we treat as successful.
            // This happened for example if a regular postback occurred =
during a partial update request.
            // In FF if you access the 'status' field on an aborted =
request, an error is thrown,
            // so the error console displayed an error when this =
happened.
            // On Safari it isn't an error, but status is undefined. =
That caused PRM to get the completed
            // event, and since the status is not 200, it raises an =
error.
            // IE and Opera ignore pending requests, or their readyState =
isn't 4.
            try {
                if (typeof(_this._xmlHttpRequest.status) =3D=3D=3D =
"undefined") {
                    // its an aborted request in Safari, ignore it
                    return;
                }
            }
            catch(ex) {
                // its an aborted request in Firefox, ignore it
                return;
            }
           =20
            _this._clearTimer();
            _this._responseAvailable =3D true;
            _this._webRequest.completed(Sys.EventArgs.Empty);
            if (_this._xmlHttpRequest !=3D null) {
                _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
                _this._xmlHttpRequest =3D null;
            }
        }
    }

    this._clearTimer =3D function this$_clearTimer() {
        if (_this._timer !=3D null) {
            window.clearTimeout(_this._timer);
            _this._timer =3D null;
        }
    }

    this._onTimeout =3D function this$_onTimeout() {
        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#this._onTimeout" />
        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 /*async*/);
        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 it's a POST but no Content-Type was specified, default =
to application/x-www-form-urlencoded; charset=3Dutf-8
            if ((headers =3D=3D=3D null) || !headers['Content-Type']) {
                // DevDiv 109456: Include charset=3Dutf-8. Javascript =
encoding methods always use utf-8, server may be set to assume other =
encoding.
                this._xmlHttpRequest.setRequestHeader('Content-Type', =
'application/x-www-form-urlencoded; charset=3Dutf-8');
            }

            // DevDiv 15893: If POST with no body, default to ""(FireFox =
needs this)
            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#this._onTimeout" />
        /// <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#this._onTimeout" />
        /// <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) {

            // This happens if the server doesn't set the content type =
to text/xml.
            xml =3D Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);

            // If we still couldn't get an XML DOM, the data is probably =
not XML
            if (!xml || !xml.documentElement)
                return null;
        }
        // REVIEW: todo this used to use Sys.Runtime get_hostType
        else if (navigator.userAgent.indexOf('MSIE') !=3D=3D -1) {
            xml.setProperty('SelectionLanguage', 'XPath');
        }

        // For Firefox parser errors have document elements of parser =
error
        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
        // For Safari, parser errors are always the first child of the =
root
        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#this._onTimeout" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._started) {
            throw =
Error.invalidOperation(Sys.Res.cannotAbortBeforeStart);
        }

        // aborts are no ops if we are done, timedout, or aborted =
already
        if (this._aborted || this._responseAvailable || this._timedOut)
            return;

        this._aborted =3D true;

        this._clearTimer();

        if (this._xmlHttpRequest && !this._responseAvailable) {

            // Remove the onreadystatechange first otherwise abort would =
trigger readyState to become 4
            this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
            this._xmlHttpRequest.abort();
           =20
            this._xmlHttpRequest =3D null;           =20

            // DevDiv 59229: Call completed on the request instead of =
raising the event directly
            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() {
    this._this =3D this;
    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 the request didn't set an executor, use the request =
manager default executor
        if (!executor) {
            // TODO: Optimize this by caching the type

            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);
        }

        // skip the request if it has been aborted;
        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');

// Create a single instance of the class
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;
}

// Properties about the request data

    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();
        // Default is GET if no body, and POST otherwise
        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
}

// Given a url and an optional base url, return an absolute url =
combining the url and base url
Sys.Net.WebRequest._resolveUrl =3D function =
Sys$Net$WebRequest$_resolveUrl(url, baseUrl) {
    // If the url contains a host, we are done
    if (url && url.indexOf('://') !=3D=3D -1) {
        return url;
    }

    // If a base url isn't passed in, we use either the base element if =
specified or the URL from the browser
    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;
        }
    }

    // strip off any querystrings
    var qsStart =3D baseUrl.indexOf('?');
    if (qsStart !=3D=3D -1) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    baseUrl =3D baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);

    // If a url wasn't specified, we just use the base
    if (!url || url.length =3D=3D=3D 0) {
        return baseUrl;
    }

    // For absolute path url, we need to rebase it against the base url, =
stripping off everything after the http://host
    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;
    }
    // Otherwise for relative urls we just combine with the base url =
stripping off the last path component (filename typically)
    // Note the app path always contains a trailing slash so when =
resolving app paths, we never strip off anything important
    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) {
    // By default, use URI encoding
    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;

        // Resolve against the defaults callbacks/context
        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;

    // Create a web request to make the method call
    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 using POST, or we don't have any paramaters, start with a =
blank dictionary
    if (!useGet || !urlParams) urlParams =3D {};
    =
request.set_url(Sys.Net.WebRequest._createUrl(servicePath+"/"+encodeURICo=
mponent(methodName), urlParams));

    var body =3D null;
    // No body when using GET
    if (!useGet) {
        body =3D =
Sys.Serialization.JavaScriptSerializer.serialize(params);

        // If there are no parameters, send an empty body (though it =
will still be a POST)
        if (body =3D=3D=3D "{}") body =3D "";
    }

    // Put together the body as a JSON string
    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();
                }
                // Default to the response text
                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")) {
                //DevDiv 88409: Change JSON wire format to prevent CSRF =
attack
                //The return value is wrapped inside an object with , =
'd' field set to return value=20
                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 =
/*timedout*/, String.format(Sys.Res.webServiceFailedNoMsg, methodName), =
"", "");
                    }
                    result._statusCode =3D statusCode;
                    onFailure(result, userContext, methodName);
                }
                else {
                    // In debug mode, if no error was registered, =
display some trace information
                    var error;
                    if (result && errorObj) {
                        // If we got a result, we're likely dealing with =
an error in the method itself
                        error =3D result.get_exceptionType() + "-- " + =
result.get_message();
                    }
                    else {
                        // Otherwise, it's probably a 'top-level' error, =
in which case we dump the
                        // whole response in the trace
                        error =3D response.get_responseData();
                    }
                    // DevDiv 89485: throw, not alert()
                    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 {
                // In debug mode, if no error was registered, display =
some trace information
                // DevDiv 89485: throw, don't alert()
                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));
}

// Generate a constructor that knows how to build objects of a =
particular server type,
// and then initialize it from the fields of an arbitrary object.
Sys.Net.WebServiceProxy._generateTypedConstructor =3D function =
Sys$Net$WebServiceProxy$_generateTypedConstructor(type) {
    return function(properties) {
        // If an object was passed in, copy all its fields
        if (properties) {
            for (var name in properties) {
                this[name] =3D properties[name];
            }
        }
        this.__type =3D type;
    }
}
=20
// Class returned to client if server throws an exception during =
ProcessRequest
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() =
{
    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();
        // override from base to ensure returned value is '' even if =
usercode sets to null.
        // also refactored from v1 to ensure empty string on getter =
instead of setter.
        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(/*string[]*/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;
            // is it a property group?
            if(Sys.Services.ProfileGroup.isInstanceOfType(val)) {
                var obj =3D this._flattenProperties(propertyNames, val, =
key);
                var groupProperties =3D obj.value;
                count +=3D obj.count; // count all the group's =
properties we're about to merge in
                // merge in group's properties
                // NOTE: We don't use Array.addRange because =
flattenedProperties is not an Array.
                //       It can't be an array because it polutes the =
associative array and we need it to be purely properties.
                //       Array.prototype.addRange.apply() doesn't work =
either.
                // NOTE: In the case where a group exists but has no =
inner properties of its own, the for loop will short out
                //       and there will be no keys added to the =
collection, as expected.
                for(var subKey in groupProperties) {
                    var subVal =3D groupProperties[subKey];
                    flattenedProperties[subKey] =3D subVal;
                }
            }
            else {
                // is this a specified property (or use all properties)?
                if(!propertyNames || Array.indexOf(propertyNames, key) =
!=3D=3D -1) {
                    flattenedProperties[key] =3D val;
                    count++; // keep track of how many properties are in =
the flattened dictionary
                }
            }
        }
        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) {
        // context[3] is the number of properties we sent to the server.
        var count =3D context[3];
        if (result !=3D=3D null) { // dont use if(result), might be =
number 0
            if (result instanceof Array) {
                // result is a list of properties that failed. Subtract =
the count to get the # succeeded
                count -=3D result.length;
            }
            else if (typeof(result) =3D=3D=3D 'number') {
                // legacy server API -- the number of successful =
properties is returned directly
                count =3D result;
            }
            else {
                // no other types allowed
                throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Array"));
            }
        }
        // else: if result is null, treat as an empty array (no =
failures)
       =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,
    // DevDiv 31283: calling load with two of the same property names =
throws an error, so we strip dups
    _clonePropertyNames: =
Sys$Services$_ProfileService$_clonePropertyNames,   =20
    // convert properties like properties.ProfileGroup.ProfileSetting to =
properties["ProfileGroup.ProfileSetting"].
    // propertyNames: list of properties that should be included in the =
flattened list (others are excluded)
    // properties: object containing properties to flatten
    // groupName: current group name used for recursion
    _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.defaultLoginCompletedCal=
lback"></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.defaultLogoutCompletedCa=
llback"></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();
        // override from base to ensure returned value is '' even if =
usercode sets to null.
        // also refactored from v1 to ensure empty string on getter =
instead of setter.
        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;
        // note: use of internal type here, but theres no other way
        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;
        // note: use of internal type here, but theres no other way
        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, /*login =
param list*/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) {
                // url may be empty which is a valid link
                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
        // always redirect when logging out
        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() {
    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"></va=
lue>
        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();
        // override from base to ensure returned value is '' even if =
usercode sets to null, consistent with other appservices in v1.
        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>
        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,
                    {} /* no params*/,
                    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();
    // DevDiv #62350: Considered making all methods static and removing =
this constructor,
    // but this would have been a breaking change from Atlas 1.0 to =
Atlas Orcas so was rejected.
}
Sys.Serialization.JavaScriptSerializer.registerClass('Sys.Serialization.J=
avaScriptSerializer');

Sys.Serialization.JavaScriptSerializer._serverTypeFieldName =3D =
'__type';

// DevDiv Bugs 139383:
// Escape the backslashes so to _stringRegEx so we pass an escape =
sequence to the RegExp,
// not the literal character. Safari does not support the literal =
characters, and it fails on iPhone 1.01.
Sys.Serialization.JavaScriptSerializer._stringRegEx =3D new =
RegExp('["\\b\\f\\n\\r\\t\\\\\\x00-\\x1F]', 'i');
Sys.Serialization.JavaScriptSerializer._dateRegEx =3D new =
RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4}=
)?\\)\\\\/\\"', '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._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(object=
, stringBuilder) {
    stringBuilder.append('"');

    // DevDiv 139383: Removed Safari check here.
    // Safari 2 supports \x## escapes in regular expressions as long as =
they are escaped in the regex pattern
    if =
(Sys.Serialization.JavaScriptSerializer._stringRegEx.test(object)) {
        var length =3D object.length;
        for (i =3D 0; i < length; ++i) {
            var curChar =3D object.charAt(i);
            // currently '/u001f' or below are escaped
            if (curChar >=3D ' ') {
                // Handle backslashes and quotes by escaping
                if (curChar =3D=3D=3D '\\' || curChar =3D=3D=3D '"') {
                    stringBuilder.append('\\');
                }
                stringBuilder.append(curChar);
            }
            else {
                switch (curChar) {
                    case '\b':
                        stringBuilder.append('\\b');
                        break;
                    case '\f':
                        stringBuilder.append('\\f');
                        break;
                    case '\n':
                        stringBuilder.append('\\n');
                        break;
                    case '\r':
                        stringBuilder.append('\\r');
                        break;
                    case '\t':
                        stringBuilder.append('\\t');
                        break;
                    default:
                        // Add the escaped code
                        stringBuilder.append('\\u00');
                        if (curChar.charCodeAt() < 16) =
stringBuilder.append('0');
                        =
stringBuilder.append(curChar.charCodeAt().toString(16));
                }
            }
        }
    } else {
        stringBuilder.append(object);
    }
    stringBuilder.append('"');   =20
}

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){
                // The loop below makes serilzation O(n^2) worst case =
for linked list like struture
                // where in depth of graph is in linear proportion to =
number of elements.
                // However the depth of graph is limited by call stack =
size(less than 1000 in IE7) hence=20
                // the performance hit is within reasonable bounds for =
debug mode
                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
                // Arrays
                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 {
                    // DivDev 41125: Do not confuse atlas serialized =
strings with dates
                    // Currently it always serialize as =
\/Date({milliseconds from 1970/1/1})\/
                    // For example \/Date(123)\/
                    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) {
                        // skip internal properties that should not be =
serialized.
                        if (name.startsWith('$')) {
                            continue;
                        }
                        //DevDiv 74427 : Need to make sure that _type is =
first item on JSON serialization
                        if (name =3D=3D=3D =
Sys.Serialization.JavaScriptSerializer._serverTypeFieldName && =
propertyCount !=3D=3D 0){
                            // if current propery Name is __type, swap =
it with the first element on property array.
                            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
                            // Serialize the name of the object =
property, then the value
                            =
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);
    // DevDiv 41127: Never confuse atlas serialized strings with dates.
    // DevDiv 74430: JavasciptSerializer will need to handle date time =
offset - following WCF design
    // serilzed dates might look like "\/Date(123)\/" or "\/Date(123A)" =
or "Date(123+4567)" or Date(123-4567)"
    // the regex escaped version of this pattern is =
\"\\/Date\(123(?:[a-zA-Z]|(?:\+|-)[0-9]{4})?\)\\/\"
    // but we must also do js escaping to put it in the string. Escape =
all \ with \\
    // Result: =
\\"\\\\/Date\\(123(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\\/\\"
    // The 123 can really be any number with an optional -, and we want =
to capture it.
    // Regex for that is: (-?[0-9]+)
    // Result: =
\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\\/\\"
    // We want to avoid replacing serialized strings that happen to =
contain this string as a substring.
    // We can do that by excluding matches that start with a slash \ =
since that means the first quote is escaped.
    // The first quote of a real date string will never be escaped and =
so will never be preceeded with \
    // So we want to add regex pattern (^|[^\\]) to the beginning, which =
means "beginning of string or anything but slash".
    // JS Escaped version: (^|[^\\\\])
    // Result: =
(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\=
\/\\"
    // Finally, the replace string is $1new Date($2). We must include $1 =
so we put back the potentially matched character we captured.

    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);
    }
}

// CultureInfo must go after JavaScriptSerializer since it deserializes =
the __cultureInfo object inline.
=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) {
        // 'he-IL' has non-breaking space (\u00A0) in weekday names.  In =
this case replace
        // didn't work using the space escape code ('\s'), so must match =
the exact character.
        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');

// Make sure the invariant and 'en-US' cultureInfos contained in this =
file contain unicode in
// place of the non-ascii characters so it matches the encoding of the =
MicrosoftAjax.js script.
// This is especially required when jsCrunch builds the release script, =
because it will not
// convert non-ascii characters to unicode correctly for the current =
MicrosoftAjax.js encoding.
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{
"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.",
"boolTrueOrFalse":"Value must be \u0027true\u0027 or =
\u0027false\u0027.",
"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.",
"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.",
"scriptLoaderAlreadyLoading":"ScriptLoader.loadScripts cannot be called =
while the ScriptLoader is already loading scripts.",
"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.",
"appDuplicateComponent":"Two components with the same id \u0027{0}\u0027 =
can\u0027t be added to the application.",
"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.",
"cantSetId":"The id property can\u0027t be set on this object.",
"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_0000_01CAA5BA.54114B00
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ca.globaltalentfcri.com/ScriptResource.axd?d=hdInAlzDABHw00Bzlv6YXwf2Fj-obYy8_KwQvLZjSpkjmxeGyDunZXEpxXCrMPDtT0JxoipOtnSdNZOjgtF7Ytc9vCQIdFMYfsPgUShCK7EMw4_2BOi-YpDVF24ic4u60&t=633880924179270475

=EF=BB=BF// Name:        MicrosoftAjaxWebForms.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.21022.8
//!----------------------------------------------------------------------=
-
//! Copyright (C) Microsoft Corporation. All rights reserved.
//!----------------------------------------------------------------------=
-
//! MicrosoftAjaxWebForms.js
//! Microsoft AJAX ASP.NET WebForms Framework.

// Partial Rendering

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;
    // Need to use "new Object()" instead of "{}", since the latter =
breaks code coverage.
    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;
    // Need to use "new Object()" instead of "{}", since the latter =
breaks code coverage.
    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;
    // Need to use "new Object()" instead of "{}", since the latter =
breaks code coverage.
    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._oldUpdatePanelIDs =3D null;
    this._childUpdatePanelIDs =3D null;
    this._panelsToRefreshIDs =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._dataItems =3D null;
    this._updateContext =3D null;
    this._processingRequest =3D false;
    this._scriptDisposes =3D {};
}



    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() {
        // DevDiv Bugs 125825: To avoid EVENTVALIDATION corruption we =
must cancel pending callbacks when an async postback begins
        // to cancel callbacks, we run logic similar to =
WebForm_CallbackComplete,
        // except we do not run WebForm_ExecuteCallback for them. This =
code is exactly
        // WebForm_CallbackComplete except without the call to =
WebForm_ExecuteCallback.
        // We are basically treating each callback as completed, =
ignoring the response if any.
        for (var i =3D 0, l =3D window.__pendingCallbacks.length; i < l; =
i++) {
            var callback =3D window.__pendingCallbacks[i];
            if (callback) {
                if (!callback.async) {
                    // we just cancelled the single allowed instance of =
a synchronous callback
                    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$_createPageRequestManagerTimeoutError() =
{
        // Creates a PageRequestManagerTimeoutException representing a =
request that timed out.
        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) {
        // Creates a PageRequestManagerServerErrorException representing =
an error that occurred on the server.
        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) {
        // Creates a PageRequestManagerParserErrorException representing =
a parser error that occurred while processing a response from the =
server.
        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; i < source.length; i++) {
                Array.add(destinationIDs, source[i]);
                Array.add(destinationClientIDs, =
this._uniqueIDToClientID(source[i]));
            }
        }
    }

    function Sys$WebForms$PageRequestManager$_destroyTree(element) {
        // We only need to walk into children collections if this node =
is an element
        if (element.nodeType =3D=3D=3D 1) {
            // We can't just set innerHTML to "" because we have to walk =
through
            // all children in order to dispose script that may be =
associated with them.
            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._oldUpdatePanelIDs =3D null;
        this._childUpdatePanelIDs =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;
        this._dataItems =3D null;
    }

    function Sys$WebForms$PageRequestManager$_doCallback(eventTarget, =
eventArgument, eventCallback, context, errorCallback, useAsync) {
        // DevDiv Bugs 125825: Do not allow callbacks to begin while an =
async postback is in progress to prevent EVENTVALIDATION corruption
        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)) {
            // Allow the default form submit to take place. Since it's a =
cross-page postback.
            // DevDiv 80942: we should fall to a full postback if event =
target is null or undefined
            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
            // set to false so subsequent posts that don't go through =
DPWO aren't considered cross post
            this._isCrossPost =3D false;
        }
        else {
            // If it's not a cross-page post, see if we can find the DOM =
element that caused the postback
            var clientID =3D this._uniqueIDToClientID(eventTarget);
            var postBackElement =3D document.getElementById(clientID);
            if (!postBackElement) {
                // If the control has no matching DOM element we look =
for an exact
                // match from RegisterAsyncPostBackControl or =
RegisterPostBackControl.
                // If we can't find anything about it then we do a =
search based on
                // naming containers to still try and find a match.
                if (Array.contains(this._asyncPostBackControlIDs, =
eventTarget)) {
                    // Exact match for async postback
                    this._postBackSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
eventTarget, null);
                }
                else {
                    if (Array.contains(this._postBackControlIDs, =
eventTarget)) {
                        // Exact match for regular postback
                        this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                    }
                    else {
                        // Find nearest element based on UniqueID in =
case the element calling
                        // __doPostBack doesn't have an ID. GridView =
does this for its Update
                        // button and without this we can't do async =
postbacks.
                        var nearestUniqueIDMatch =3D =
this._findNearestElement(eventTarget);
                        if (nearestUniqueIDMatch) {
                            // We found a related parent element, so =
walk up the DOM to find out what kind
                            // of postback we should do.
                            this._postBackSettings =3D =
this._getPostBackSettings(nearestUniqueIDMatch, eventTarget);
                        }
                        else {
                            // Can't find any DOM element at all related =
to the eventTarget,
                            // so we just give up and do a regular =
postback.
                            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                        }
                    }
                }
            }
            else {
                // The element was found, so walk up the DOM to find out =
what kind
                // of postback we should do.
                this._postBackSettings =3D =
this._getPostBackSettings(postBackElement, eventTarget);
            }
        }

        if (!this._postBackSettings.async) {
            // Temporarily restore the form's onsubmit handler expando =
while calling
            // the original ASP.NET 2.0 __doPostBack() function.
            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;
        // note that when DoPostBackWithOptions is used, _doPostBack or =
_onFormSubmit, one of the two,
        // are guaranteed to be called next.
        // In both of those methods it is important to clear the =
isCrossPost flag so subsequent posts that
        // don't use DoPostBackWithOptions are not considered cross page =
posts.
        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, =
response) {
        // DevDiv Bugs 130268: There could have been a 2nd request that =
started while this one was being
        // processed. Detect this by comparing the request for the =
current response to the _request field,
        // which stores the latest request that has begun. If they are =
different, do not clear the state
        // data that will be required by the 2nd request's response.
        if (this._request =3D=3D=3D response.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, this._dataItems, response);
            handler(this, eventArgs);
            errorHandled =3D eventArgs.get_errorHandled();
        }
        // DevDiv Bugs 130268: See above
        if (!this._processingRequest) {
            this._dataItems =3D null;
        }
        if (error && !errorHandled) {
            // DevDiv 89485: throw, don't alert()
            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) {
        // This is a copy of the function WebForm_FireDefaultButton as =
defined in WebForms.js.
        // The purpose is to hook into the WebForm_FireDefaultButton =
call with the code commented in the middle.
        // Other than that, there have been a few minor changes to the =
code but the logic is the same.
        if ((event.keyCode =3D=3D=3D 13) && !(event.srcElement && =
(event.srcElement.tagName.toLowerCase() =3D=3D=3D "textarea"))) {
            var defaultButton =3D document.getElementById(target);

            if (defaultButton && (typeof(defaultButton.click) !=3D=3D =
"undefined")) {
               =20
                // Beginning of new code...
               =20
                // In all but FF this causes the form.onclick event to =
fire with the button as the event target.
                // In FF the the form.onclick event has the current =
focus control as the target, which prevents the
                // default button's server-side click event from firing. =
So we ensure the correct control is determined
                // to have caused the postback by saving the default =
button before clicking on it. The code in
                // onFormSubmit looks for this field and ensures the =
postback target is the button.
                this._activeDefaultButton =3D defaultButton;
                this._activeDefaultButtonClicked =3D false;
                try {
                    // click is synchronous -- it will immediately cause =
a form onclick event and then a form onsubmit event
                    // assuming nothing uses preventDefault() to cancel =
the event.
                    defaultButton.click();
                }
                finally {
                    // form submission may or may not be occuring after =
this point
                    this._activeDefaultButton =3D null;
                }
               =20
                // ...End of new code
               =20
                // cancel submission caused by hitting enter in the =
input control
                event.cancelBubble =3D true;
                if (typeof(event.stopPropagation) =3D=3D=3D "function") =
{
                    event.stopPropagation();
                }
                return false;
            }
        }
        return true;
    }

    function =
Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs(initialLoad) {
        // =
-------------+------------------------------------+----------------------=
-
        // Situation    | In ID collections                  | In =
eventArg property
        // =
-------------+------------------------------------+----------------------=
-
        // Update (exp) | in panelsToRefresh                 | updated
        // Update (imp) | in new, in old, in childUP         | created
        // Create (exp) | in new, not in old, not in childUP | created
        // Create (imp) | in new, not in old, in childUP     | created
        // Delete (exp) | not in new, in old, not in childUP | ---
        // Delete (imp) | not in new, in old, in childUP     | ---
        // =
-------------+------------------------------------+----------------------=
-
        // (exp) =3D explicit
        // (imp) =3D implicit (happened as result of parent UpdatePanel =
updating)
        // =
-------------------------------------------------------------------------=
-
        // in panelsToRefresh =3D updated
        // not updated, in new =3D created
        // else =3D don't care
        // =
-------------------------------------------------------------------------=
-

        var updated =3D [];
        var created =3D [];

        // Default to empty array, else short circuit OR will take care =
of value
        var oldIDs =3D this._oldUpdatePanelIDs || []; // All panels =
before update
        var newIDs =3D this._updatePanelIDs; // All panels after update
        var childIDs =3D this._childUpdatePanelIDs || []; // Child =
panels created after update
        var refreshedIDs =3D this._panelsToRefreshIDs || []; // Parent =
panels created after update

        // in panelsToRefresh =3D updated
        for (var i =3D 0; i < refreshedIDs.length; i++) {
            Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
        }

        // If the panel is in the new list and it is either the initial =
load
        // of the page a refreshed child, it is 'created'.
        for (var i =3D 0; i < newIDs.length; 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, =
this._dataItems);
    }

    function Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs() =
{
        // =
-------------+------------------------------------+----------------------=
-
        // Situation    | In ID collections                  | In =
eventArg property
        // =
-------------+------------------------------------+----------------------=
-
        // Update (exp) | in panelsToRefresh                 | updated
        // Update (imp) | in old, in new, in childUP         | deleted
        // Create (exp) | not in old, in new, not in childUP | ---
        // Create (imp) | not in old, in new, in childUP     | ---
        // Delete (exp) | in old, not in new, not in childUP | deleted
        // Delete (imp) | in old, not in new, in childUP     | deleted
        // =
-------------+------------------------------------+----------------------=
-
        // (exp) =3D explicit
        // (imp) =3D implicit (happened as result of parent UpdatePanel =
updating)
        // =
-------------------------------------------------------------------------=
-
        // in panelsToRefresh =3D updated
        // not updated, (not in new or in childUP) =3D deleted
        // else =3D don't care
        // =
-------------------------------------------------------------------------=
-

        var updated =3D [];
        var deleted =3D [];

        var oldIDs =3D this._oldUpdatePanelIDs;
        var newIDs =3D this._updatePanelIDs;
        var childIDs =3D this._childUpdatePanelIDs;
        var refreshedIDs =3D this._panelsToRefreshIDs;

        // in panelsToRefresh =3D updated
        for (var i =3D 0; i < refreshedIDs.length; i++) {
            Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
        }

        // not in new or in childUP =3D deleted
        for (var i =3D 0; i < oldIDs.length; 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, =
this._dataItems);
    }

    function =
Sys$WebForms$PageRequestManager$_getPostBackSettings(element, =
elementUniqueID) {


        var originalElement =3D element;

        // Keep track of whether we have an AsyncPostBackControl but =
still
        // want to see if we're inside an UpdatePanel anyway.
        var proposedSettings =3D null;

        // Walk up DOM hierarchy to find out the nearest container of
        // the element that caused the postback.
        while (element) {
            if (element.id) {
                // First try an exact match for async postback, regular =
postback, or UpdatePanel
                if (!proposedSettings && =
Array.contains(this._asyncPostBackControlClientIDs, element.id)) {
                    // The element explicitly causes an async postback
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
Array.contains(this._postBackControlClientIDs, element.id)) {
                        // The element explicitly doesn't cause an async =
postback
                        return this._createPostBackSettings(false, null, =
null);
                    }
                    else {
                        var indexOfPanel =3D =
Array.indexOf(this._updatePanelClientIDs, element.id);
                        if (indexOfPanel !=3D=3D -1) {
                            // The element causes an async postback =
because it is inside an UpdatePanel
                            if =
(this._updatePanelHasChildrenAsTriggers[indexOfPanel]) {
                                // If it was in an UpdatePanel and the =
panel has ChildrenAsTriggers=3Dtrue, then
                                // we do an async postback and refresh =
the given panel

                                // Although we do the search by looking =
at ClientIDs, we end
                                // up sending a UniqueID back to the =
server so that we can
                                // call FindControl() with it.
                                return =
this._createPostBackSettings(true, this._updatePanelIDs[indexOfPanel] + =
'|' + elementUniqueID, originalElement);
                            }
                            else {
                                // The element was inside an UpdatePanel =
so we do an async postback,
                                // but because it has =
ChildrenAsTriggers=3Dfalse we don't update this panel.
                                return =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                            }
                        }
                    }
                }

                // Then try near matches
                if (!proposedSettings && =
this._matchesParentIDInList(element.id, =
this._asyncPostBackControlClientIDs)) {
                    // The element explicitly causes an async postback
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
this._matchesParentIDInList(element.id, this._postBackControlClientIDs)) =
{
                        // The element explicitly doesn't cause an async =
postback
                        return this._createPostBackSettings(false, null, =
null);
                    }
                }
            }

            element =3D element.parentNode;
        }

        // If we have proposed settings that means we found a match for =
an
        // AsyncPostBackControl but were still searching for an =
UpdatePanel.
        // If we got here that means we didn't find the UpdatePanel so =
we
        // just fall back to the original AsyncPostBackControl settings =
that
        // we created.
        if (!proposedSettings) {
            // The element doesn't cause an async postback
            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;

        // TODO: Check that we found the form

        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; i < parentIDList.length; i++) {
            if (clientID.startsWith(parentIDList[i] + "_")) {
                return true;
            }
        }
        return false;
    }

    function =
Sys$WebForms$PageRequestManager$_onFormElementActive(element, offsetX, =
offsetY) {
        // element: the form element that is active
        // offsetX/Y: if the element is an image button, the coordinates =
of the click
        if (element.disabled) {
            return;
        }

        // Check if the element that was clicked on should cause an =
async postback
        this._postBackSettings =3D this._getPostBackSettings(element, =
element.name);

        if (element.name) {
            if (element.tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if (type =3D=3D=3D 'submit') {
                    // DevDiv Bugs 109456: Encode the name as well as =
the value
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
                }
                else if (type =3D=3D=3D 'image') {
                    // DevDiv Bugs 109456: Encode the name as well as =
the value
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '.x=3D' + offsetX + '&' + =
encodeURIComponent(element.name) + '.y=3D' + offsetY;
                }
            }
            else if ((element.tagName =3D=3D=3D 'BUTTON') && =
(element.name.length !=3D=3D 0) && (element.type =3D=3D=3D 'submit')) {
                // DevDiv Bugs 109456: Encode the name as well as the =
value
                this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
            }
        }
    }

    function Sys$WebForms$PageRequestManager$_onFormElementClick(evt) {
        // flag used by fireDefaultButton to know whether calling =
click() on the default button raised this event.
        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;
        // set to false so subsequent posts that don't go through DPWO =
aren't considered cross post
        this._isCrossPost =3D false;

        // Call the statically declared form onsubmit statement if there =
was one
        if (this._onsubmit) {
            continueSubmit =3D this._onsubmit();
        }

        // If necessary, call dynamically added form onsubmit statements
        if (continueSubmit) {
            for (var i =3D 0; i < this._onSubmitStatements.length; i++) =
{
                if (!this._onSubmitStatements[i]()) {
                    continueSubmit =3D false;
                    break;
                }
            }
        }

        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }

        var form =3D this._form;
        if (isCrossPost) {
            // Allow the default form submit to take place. Since it's a =
cross-page postback.
            return;
        }

        // DevDiv Bugs 123782
        if (this._activeDefaultButton && =
!this._activeDefaultButtonClicked) {
            // we are submitting because a default button's click method =
was called by _fireDefaultButton
            // but calling click() explicitly did not cause a click =
event or raised it for a different element,
            // so we must manually create the correct postback options.
            // The button was clicked programmatically, so there are no =
offsetX or offsetY coordinates.
            this._onFormElementActive(this._activeDefaultButton, 0, 0);
        }

        // If the postback happened from outside an update panel, fall =
back
        // and do a normal postback.
        if (!this._postBackSettings.async) {
            return;
        }

        // Construct the form body
        var formBody =3D new Sys.StringBuilder();
        // DevDiv Bugs 109456: ScriptManager and UpdatePanel IDs should =
be encoded as well
        formBody.append(encodeURIComponent(this._scriptManagerID) + =
'=3D' + encodeURIComponent(this._postBackSettings.panelID) + '&');

        var count =3D form.elements.length;
        for (var 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)) {
                continue;
            }

            var tagName =3D element.tagName;

            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)) {
                    // DevDiv Bugs 109456: Encode the name as well as =
the value
                    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) {
                        // DevDiv Bugs 109456: Encode the name as well =
as the value
                        formBody.append(encodeURIComponent(name));
                        formBody.append('=3D');
                        =
formBody.append(encodeURIComponent(option.value));
                        formBody.append('&');
                    }
                }
            }
            else if (tagName =3D=3D=3D 'TEXTAREA') {
                // DevDiv Bugs 109456: Encode the name as well as the =
value
                formBody.append(encodeURIComponent(name));
                formBody.append('=3D');
                formBody.append(encodeURIComponent(element.value));
                formBody.append('&');
            }
        }

        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) {
            // DevDiv Bugs 85367: In IE we must encode the path portion =
of the request because XHR doesn't do it for us.
            // We only want to encode the path fragment, not the =
querystring.
            var queryIndex =3D action.indexOf('?');
            if (queryIndex !=3D=3D -1) {
                var path =3D action.substr(0, queryIndex);
                if (path.indexOf("%") =3D=3D=3D -1) {
                    // only encode if the path portion is not already =
encoded
                    // tear off the query, encode, then put the query =
back
                    action =3D encodeURI(path) + =
action.substr(queryIndex);
                }
            }
            else if (action.indexOf("%") =3D=3D=3D -1) {
                // only encode if the path portion is not already =
encoded
                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 handler =3D =
this._get_eventHandlerList().getHandler("initializeRequest");
        if (handler) {
            var 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;
        }

        // Save the scroll position
        this._scrollPosition =3D this._getScrollPosition();


        // If we're going on to make a new request (i.e. the user didn't =
cancel), and
        // there's still an ongoing request, we have to abort it. If we =
don't then it
        // will exhaust the browser's two connections per server limit =
very quickly.
        this.abortPostBack();

        handler =3D =
this._get_eventHandlerList().getHandler("beginRequest");
        if (handler) {
            var eventArgs =3D new =
Sys.WebForms.BeginRequestEventArgs(request, =
this._postBackSettings.sourceElement);
            handler(this, eventArgs);
        }
       =20
        // DevDiv Bugs 125825: Cancel any pending callbacks when an =
async postback begins
        if (this._originalDoCallback) {
            this._cancelPendingCallbacks();
        }

        this._request =3D request;
        request.invoke();

        // Suppress the default form submit functionality
        if (evt) {
            evt.preventDefault();
        }
    }

    function =
Sys$WebForms$PageRequestManager$_onFormSubmitCompleted(sender, =
eventArgs) {
        this._processingRequest =3D true;

        var delimitByLengthDelimiter =3D '|';
        // sender is the executor object

        if (sender.get_timedOut()) {
            =
this._endPostBack(this._createPageRequestManagerTimeoutError(), sender);
            return;
        }

        if (sender.get_aborted()) {
            this._endPostBack(null, sender);
            return;
        }

        // If the response isn't the response to the latest request, =
ignore it (last one wins)
        if (!this._request || sender.get_webRequest() !=3D=3D =
this._request) {
            return;
        }

        var errorMessage;
        var delta =3D [];

        // If we have an invalid status code, go into error mode
        if (sender.get_statusCode() !=3D=3D 200) {
            =
this._endPostBack(this._createPageRequestManagerServerError(sender.get_st=
atusCode()), sender);
            return;
        }

        // Parse the message format
        // General format: length|type|id|content|
        var reply =3D sender.get_responseData();
        var delimiterIndex, len, type, id, content;
        var replyIndex =3D 0;
        var parserErrorDetails =3D null;

        while (replyIndex < reply.length) {
            // length| - from index to next delimiter
            delimiterIndex =3D reply.indexOf(delimitByLengthDelimiter, =
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;

            // type| - from index to next delimiter
            delimiterIndex =3D reply.indexOf(delimitByLengthDelimiter, =
replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            type =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;

            // id| - from index to next delimiter
            delimiterIndex =3D reply.indexOf(delimitByLengthDelimiter, =
replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            id =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;

            // content - the next 'len' characters after index
            if ((replyIndex + len) >=3D reply.length) {
                parserErrorDetails =3D this._findText(reply, =
reply.length);
                break;
            }
            // DevDiv 75383: We no longer encode null characters in the =
response content, so we no longer decode them either.
            // See comment in server side PageRequestManager for why.
            content =3D reply.substr(replyIndex, len);
            replyIndex +=3D len;

            // terminating delimiter
            if (reply.charAt(replyIndex) !=3D=3D =
delimitByLengthDelimiter) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }

            replyIndex++;

            Array.add(delta, {type: type, id: id, content: content});
        }

        // If there was a parser error, go into error mode
        if (parserErrorDetails) {
            =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_ParserErrorDetails, parserErrorDetails)), sender);
            return;
        }


        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;

        // Sort delta by type
        for (var i =3D 0; i < delta.length; 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":
                    // DevDiv Bugs 100201: IE does not set referrer =
header on redirect if you set window.location, inject anchor node =
instead
                    // dynamic anchor technique only works on IE
                    if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                        var anchor =3D document.createElement("a");
                        anchor.style.display =3D 'none';
                        // cancel bubble so body.onclick is not raised
                        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":
                    // The id contains the HTTP status code and the =
content contains the message
                    =
this._endPostBack(this._createPageRequestManagerServerError(Number.parseI=
nvariant(deltaNode.id), deltaNode.content), sender);
                    return;
                case "pageTitle":
                    document.title =3D deltaNode.content;
                    break;
                case "focus":
                    this._controlIDToFocus =3D deltaNode.content;
                    break;
                default:
                    // If there was an unknown message, go into error =
mode
                    =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_UnknownToken, deltaNode.type)), sender);
                    return;
            }
        }

        var i;

        // Update the list of UpdatePanels and async postback controls
        if (asyncPostBackControlIDsNode && postBackControlIDsNode &&
            updatePanelIDsNode && panelsToRefreshNode &&
            asyncPostBackTimeoutNode && childUpdatePanelIDsNode) {

            this._oldUpdatePanelIDs =3D this._updatePanelIDs;
            var childUpdatePanelIDsString =3D =
childUpdatePanelIDsNode.content;
            this._childUpdatePanelIDs =3D =
childUpdatePanelIDsString.length ? childUpdatePanelIDsString.split(',') =
: [];

            var asyncPostBackControlIDsArray =3D =
this._splitNodeIntoArray(asyncPostBackControlIDsNode);
            var postBackControlIDsArray =3D =
this._splitNodeIntoArray(postBackControlIDsNode);
            var updatePanelIDsArray =3D =
this._splitNodeIntoArray(updatePanelIDsNode);
            this._panelsToRefreshIDs =3D =
this._splitNodeIntoArray(panelsToRefreshNode);

            // Validate that all the top level UpdatePanels that we plan =
to update exist
            // in the active document. We do this early so that we can =
later assume that
            // all referenced UpdatePanels exist.
            for (i =3D 0; i < this._panelsToRefreshIDs.length; i++) {
                var panelClientID =3D =
this._uniqueIDToClientID(this._panelsToRefreshIDs[i]);
                if (!document.getElementById(panelClientID)) {
                    =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, panelClientID)), sender);
                    return;
                }
            }

            var asyncPostBackTimeout =3D =
asyncPostBackTimeoutNode.content;
            this._updateControls(updatePanelIDsArray, =
asyncPostBackControlIDsArray, postBackControlIDsArray, =
asyncPostBackTimeout);
        }

        // Process data items
        this._dataItems =3D {};
        for (i =3D 0; i < dataItemNodes.length; i++) {
            var dataItemNode =3D dataItemNodes[i];
            this._dataItems[dataItemNode.id] =3D dataItemNode.content;
        }
        for (i =3D 0; i < dataItemJsonNodes.length; i++) {
            var dataItemJsonNode =3D dataItemJsonNodes[i];
            this._dataItems[dataItemJsonNode.id] =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(dataItemJsonNode.conte=
nt);
        }


        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoading");
        if (handler) {
            handler(this, this._getPageLoadingEventArgs());
        }


        // Update the form action (it may have changed due to cookieless =
session, etc.)
        if (formActionNode) {
            this._form.action =3D formActionNode.content;
        }
       =20
        // DevDiv Bugs 127756: Load script includes before updating the =
HTML.
        // After updating the HTML, load script blocks, startup scripts, =
hidden fields, arrays, expandos, and onsubmit statements
        // Includes must be loaded first because the new DOM may have =
inline event handlers declared that depend on new
        // resources in the include files. They may also depend on =
resources in client script blocks.
        // However, script blocks can still load after updating the HTML =
because they load synchronously,
        // and therefore will still be loaded before any event handlers =
could fire. They can't be loaded before updating the HTML,
        // because dispose scripts must be executed first in case they =
dispose of resources declared by the script blocks.
        // Neither can the HTML be disposed of, then scripts loaded, and =
then the HTML updated, because that would cause a flicker.
        // This means ClientScriptIncludes and ClientScriptBlocks will =
load disjunct from one another during async updates,
        // but script includes should not depend on script blocks. This =
mechanism allows inline event handlers, a likely scenario,
        // whereas complex dependencies between script includes and =
script blocks is uncommon and not recommended.
        // Finally -- startup scripts could contain more script =
includes, so there are two calls to the script loader, which breaks the
        // completion handling of an async update into 3 separate =
functions: _onFormSubmitCompleted, _scriptIncludesLoadComplete, =
_scriptsLoadComplete.
       =20
        // Read existing script elements (user code may have manually =
inserted a script element, this will ensure we know about those).
        // This is used to detect duplicates so we don't reload scripts =
that have already loaded.
        Sys._ScriptLoader.readLoadedScripts();

        // Starting batch mode for component creation to allow for
        // two-pass creation and components that reference each other.
        // endCreateComponents called from _scriptsLoadComplete.
        Sys.Application.beginCreateComponents();

        // First load ClientScriptIncludes
        var scriptLoader =3D Sys._ScriptLoader.getInstance();
        this._queueScripts(scriptLoader, scriptBlockNodes, true, false);
       =20
        // Save context into a member so that we can later get it from =
the completion callback
        this._updateContext =3D {
            response: sender,
            updatePanelNodes: updatePanelNodes,
            scriptBlockNodes: scriptBlockNodes,
            scriptDisposeNodes: scriptDisposeNodes,
            hiddenFieldNodes: hiddenFieldNodes,
            arrayDeclarationNodes: arrayDeclarationNodes,
            expandoNodes: expandoNodes,
            scriptStartupNodes: scriptStartupNodes,
            onSubmitNodes: onSubmitNodes
        };

        // PRM does not support load timeout
        //                      timeout, completeCallback, =
failedCallback, timeoutCallback
        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
this._scriptIncludesLoadComplete),
            Function.createDelegate(this, =
this._scriptIncludesLoadFailed),
            null);
    }

    function Sys$WebForms$PageRequestManager$_onWindowUnload(evt) {
        this.dispose();
    }

    function Sys$WebForms$PageRequestManager$_pageLoaded(initialLoad) {
        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoaded");
        if (handler) {
            handler(this, this._getPageLoadedEventArgs(initialLoad));
        }
        if (!initialLoad) {
            // If this isn't the first page load (i.e. we are doing an =
async postback), we
            // need to re-raise the Application's load event.
            Sys.Application.raiseLoad();
        }
    }

    function Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad(evt) =
{
        this._pageLoaded(true);
    }

    function Sys$WebForms$PageRequestManager$_queueScripts(scriptLoader, =
scriptBlockNodes, queueIncludes, queueBlocks) {
       =20
        for (i =3D 0; i < scriptBlockNodes.length; i++) {
            var scriptBlockType =3D scriptBlockNodes[i].id;
            switch (scriptBlockType) {
                case "ScriptContentNoTags":
                    if (!queueBlocks) {
                        continue;
                    }
                    // The content contains raw JavaScript
                    =
scriptLoader.queueScriptBlock(scriptBlockNodes[i].content);
                    break;
                case "ScriptContentWithTags":
                    // The content contains serialized attributes for =
the script tag
                    var scriptTagAttributes;
                    eval("scriptTagAttributes =3D " + =
scriptBlockNodes[i].content);

                    if (scriptTagAttributes.src) {
                        // Don't reload a script that's already in the =
DOM
                        // or if not queuing includes
                        if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptTagAttributes.src)) {
                            continue;
                        }
                    }
                    else if (!queueBlocks) {
                        // its a script block
                        continue;
                    }

                    =
scriptLoader.queueCustomScriptTag(scriptTagAttributes);
                    break;
                case "ScriptPath":
                    // Don't reload a script that's already in the DOM
                    // only if we aren't loading includes
                    if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptBlockNodes[i].content)) {
                        continue;
                    }

                    // The content contains the URL reference of the =
script to load
                    =
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() {
        var ctx =3D this._updateContext;

        // Update the rendering for each delta panel and dispose all the =
contents.
        // The dispose can happen either through DOM elements that have =
dispose
        // support or through direct dispose registrations done on the =
server.
        for (i =3D 0; i < ctx.updatePanelNodes.length; i++) {
            var deltaUpdatePanel =3D ctx.updatePanelNodes[i];

            var deltaPanelID =3D deltaUpdatePanel.id;
            var deltaPanelRendering =3D deltaUpdatePanel.content;

            var updatePanelElement =3D =
document.getElementById(deltaPanelID);

            if (!updatePanelElement) {
                =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, deltaPanelID)), ctx.response);
                return;
            }

            this._updatePanel(updatePanelElement, deltaPanelRendering);
        }

        // Update the dispose entries
        // We have to do this after we disposed all the panels since =
otherwise
        // we would run the dispose scripts on the brand new markup.
        for (i =3D 0; i < ctx.scriptDisposeNodes.length; i++) {
            var disposePanelId =3D ctx.scriptDisposeNodes[i].id;
            var disposeScript =3D ctx.scriptDisposeNodes[i].content;
            this._registerDisposeScript(disposePanelId, disposeScript);
        }

        // Update the hidden fields
        var viewStateEncrypted =3D false;
        for (i =3D 0; i < ctx.hiddenFieldNodes.length; i++) {
            var id =3D ctx.hiddenFieldNodes[i].id;
            var value =3D ctx.hiddenFieldNodes[i].content;
           =20
            // DevDiv Bugs 138251: Must remove this hidden field if it =
is not contained in the update
            if (id =3D=3D=3D "__VIEWSTATEENCRYPTED") {
                viewStateEncrypted =3D true;
            }

            var hiddenFieldElement =3D document.getElementById(id);
            if (!hiddenFieldElement) {
                // If the hidden field doesn't exist, create it
                hiddenFieldElement =3D document.createElement('input');
                hiddenFieldElement.id =3D id;
                hiddenFieldElement.name =3D id;
                hiddenFieldElement.type =3D 'hidden';
                this._form.appendChild(hiddenFieldElement);
            }
            hiddenFieldElement.value =3D value;
        }
       =20
        if (!viewStateEncrypted) {
            // DevDiv Bugs 138251
            // The __VIEWSTATEENCRYPTED field was not registered, so =
viewstate is not encrypted.
            // Remove the __VIEWSTATEENCRYPTED hidden field if it =
exists. ASP.NET uses the existence of
            // this field to indicate that viewstate is encrypted.
            var viewStateEncryptedField =3D =
document.getElementById("__VIEWSTATEENCRYPTED");
            if (viewStateEncryptedField) {
                =
viewStateEncryptedField.parentNode.removeChild(viewStateEncryptedField);
            }
        }

        if (ctx.scriptsFailed) {
            // the script includes in the first step failed to load. =
Raise the error now that the DOM is updated.
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(ctx.scriptsFailed.src, =
ctx.scriptsFailed.multipleCallbacks);
        }
       =20
        // continue on to loading literal client script blocks, arrays, =
expandos, startup scripts, and onSubmitStatements (in that order)

        var scriptLoader =3D Sys._ScriptLoader.getInstance();
       =20
        // Load literal script blocks
        this._queueScripts(scriptLoader, ctx.scriptBlockNodes, false, =
true);

        // Update array declarations
        var arrayScript =3D '';
        for (i =3D 0; i < ctx.arrayDeclarationNodes.length; i++) {
            arrayScript +=3D =
"Sys.WebForms.PageRequestManager._addArrayElement('" + =
ctx.arrayDeclarationNodes[i].id + "', " + =
ctx.arrayDeclarationNodes[i].content + ");\r\n";
        }

        // Update expandos
        var expandoScript =3D '';
        for (i =3D 0; i < ctx.expandoNodes.length; i++) {
            var propertyReference =3D ctx.expandoNodes[i].id;
            var propertyValue =3D ctx.expandoNodes[i].content;
            expandoScript +=3D propertyReference + " =3D " + =
propertyValue + "\r\n";
        }

        // Execute these dynamically created scripts through the =
ScriptLoader so that
        // they get executed in the global window context. If we execute =
them through
        // calls to eval() then they will evaluate in this function's =
context, which
        // is incorrect.
        if (arrayScript.length) {
            scriptLoader.queueScriptBlock(arrayScript);
        }
        if (expandoScript.length) {
            scriptLoader.queueScriptBlock(expandoScript);
        }
       =20
        this._queueScripts(scriptLoader, ctx.scriptStartupNodes, true, =
true);

        // Update onsubmit statements
        // Create a function that calls the submit statement and =
otherwise returns true;
        var onSubmitStatementScript =3D '';
        for (var i =3D 0; i < ctx.onSubmitNodes.length; i++) {
            if (i =3D=3D=3D 0) {
                onSubmitStatementScript =3D =
'Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStateme=
nts, function() {\r\n';
            }

            onSubmitStatementScript +=3D ctx.onSubmitNodes[i].content + =
"\r\n";
        }
        if (onSubmitStatementScript.length) {
            onSubmitStatementScript +=3D "\r\nreturn true;\r\n});\r\n";
            scriptLoader.queueScriptBlock(onSubmitStatementScript);
        }

        // PRM does not support load timeout
        //                      timeout, completeCallback, =
failedCallback, timeoutCallback
        // no failed callback -- if there is a failure ScriptLoader will =
throw.
        scriptLoader.loadScripts(0, Function.createDelegate(this, =
this._scriptsLoadComplete), null, null);

        // Do not add code after the call to loadScripts(). If you need =
to do extra
        // processing after scripts are loaded, do it in =
_scriptsLoadComplete.
    }

    function =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadFailed(scriptLoader, =
scriptElement, multipleCallbacks) {
        // called when script includes fail to load from =
_onFormSubmitComplete
        // save error details so we can raise the error later
        this._updateContext.scriptsFailed =3D { src: scriptElement.src, =
multipleCallbacks: multipleCallbacks };
        this._scriptIncludesLoadComplete();
    }

    function Sys$WebForms$PageRequestManager$_scriptsLoadComplete() {
        // This function gets called after all scripts have been loaded =
by the PRM.
        // It might also get called directly if there aren't any scripts =
to load.
        // Its purpose is to finish off the processing of a postback.
        var response =3D this._updateContext.response;
        this._updateContext =3D null;

        // These two variables are used by ASP.net callbacks.
        // Because of how callbacks work, we have to re-initialize the
        // variables to an empty state so that their values don't keep
        // growing on every async postback. Then we have to =
re-initialize
        // the callback process.
        if (window.__theFormPostData) {
            window.__theFormPostData =3D "";
        }
        if (window.__theFormPostCollection) {
            window.__theFormPostCollection =3D [];
        }
        if (window.WebForm_InitCallback) {
            window.WebForm_InitCallback();
        }

        // Restore scroll position
        if (this._scrollPosition) {
            // window.scrollTo() is supported by IE and Firefox (and =
possibly Safari)
            if (window.scrollTo) {
                window.scrollTo(this._scrollPosition.x, =
this._scrollPosition.y);
            }
            this._scrollPosition =3D null;
        }

        Sys.Application.endCreateComponents();

        // Raise completion events
        this._pageLoaded(false);

        this._endPostBack(null, response);

        // Set focus
        if (this._controlIDToFocus) {
            var focusTarget;
            var oldContentEditableSetting;
            if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                // IE6 and IE7 have a bug where you can't focus certain =
elements
                // if they've been changed in the DOM. To work around =
this they
                // suggested turning off contentEditable temporarily =
while focusing
                // the target element.
                var targetControl =3D $get(this._controlIDToFocus);

                focusTarget =3D targetControl;
                // If the focus control isn't focusable, default to the =
first focusable child
                if (targetControl && (!WebForm_CanFocus(targetControl))) =
{
                    focusTarget =3D =
WebForm_FindFirstFocusableChild(targetControl);
                }
                // If we found the focus target and it supports =
contentEditable then
                // turn it off. Otherwise forget we ever tried to =
disable content editing.
                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) {
                // If we did the contentEditable hack, reset the value
                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) {
        // Convert unique IDs to client IDs by replacing all '$' with =
'_'
        return uniqueID.replace(/\$/g, '_');
    }

    function =
Sys$WebForms$PageRequestManager$_updateControls(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout) {
        if (updatePanelIDs) {
            // Parse the array that has the UniqueIDs and split the data =
out.
            // The array contains UniqueIDs with either a 't' or 'f' =
prefix
            // indicating whether the panel has ChildrenAsTriggers =
enabled.
            this._updatePanelIDs =3D new Array(updatePanelIDs.length);
            this._updatePanelClientIDs =3D new =
Array(updatePanelIDs.length);
            this._updatePanelHasChildrenAsTriggers =3D new =
Array(updatePanelIDs.length);
            for (var i =3D 0; i < updatePanelIDs.length; i++) {
                var realPanelID =3D updatePanelIDs[i].substr(1);
                var childrenAsTriggers =3D (updatePanelIDs[i].charAt(0) =
=3D=3D=3D 't');

                // The three arrays are kept in sync by index
                this._updatePanelHasChildrenAsTriggers[i] =3D =
childrenAsTriggers;
                this._updatePanelIDs[i] =3D realPanelID;
                this._updatePanelClientIDs[i] =3D =
this._uniqueIDToClientID(realPanelID);
            }
            this._asyncPostBackTimeout =3D asyncPostBackTimeout * 1000;
        }
        else {
            this._updatePanelIDs =3D [];
            this._updatePanelClientIDs =3D [];
            this._updatePanelHasChildrenAsTriggers =3D [];
            this._asyncPostBackTimeout =3D 0;
        }

        this._asyncPostBackControlIDs =3D [];
        this._asyncPostBackControlClientIDs =3D [];
        this._convertToClientIDs(asyncPostBackControlIDs, =
this._asyncPostBackControlIDs, this._asyncPostBackControlClientIDs);

        this._postBackControlIDs =3D [];
        this._postBackControlClientIDs =3D [];
        this._convertToClientIDs(postBackControlIDs, =
this._postBackControlIDs, this._postBackControlClientIDs);
    }

    function =
Sys$WebForms$PageRequestManager$_updatePanel(updatePanelElement, =
rendering) {

        for (var updatePanelID in this._scriptDisposes) {
            if (this._elementContains(updatePanelElement, =
document.getElementById(updatePanelID))) {
                // Run all the dispose scripts for this panel
                var disposeScripts =3D =
this._scriptDisposes[updatePanelID];
                for (var i =3D 0; i < disposeScripts.length; i++) {
                    eval(disposeScripts[i]);
                }

                // Remove the dispose entries for this panel
                delete this._scriptDisposes[updatePanelID];
            }
        }

        this._destroyTree(updatePanelElement);

        // Update the region with the new UpdatePanel content
        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,
    // Events
    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,
    _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,
    // New implementation of __doPostBack
    _doPostBack: Sys$WebForms$PageRequestManager$_doPostBack,
    _doPostBackWithOptions: =
Sys$WebForms$PageRequestManager$_doPostBackWithOptions,
    _elementContains: Sys$WebForms$PageRequestManager$_elementContains,
    _endPostBack: Sys$WebForms$PageRequestManager$_endPostBack,
    // Finds the nearest element to the given UniqueID. If an element is =
not
    // found for the exact UniqueID, it walks up the parent chain to =
look for it.
    _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,
    _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]) {
        // Create array if doesn't already exist
        window[arrayName] =3D new Array();
    }

    // add the argument list, not counting arrayName
    // note: cannot use Array.addRange or Array.dequeue
    // because 'arguments' is not actually an instance of an 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$_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';
        if (this._timerCookie) {
            window.clearTimeout(this._timerCookie);
            this._timerCookie =3D null;
        }
    }
    function Sys$UI$_UpdateProgress$dispose() {
       if (this._pageRequestManager !=3D=3D null) {
           =
this._pageRequestManager.remove_beginRequest(this._beginRequestHandlerDel=
egate);
           =
this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegat=
e);
       }
       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 ) {
           // Review: should we throw if there's no pageRequestManager
    	    =
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,
    _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_0000_01CAA5BA.54114B00
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ca.globaltalentfcri.com/WebResource.axd?d=2jD60Y-FqtrcRVEN3at3Cg2&t=633363364222850001

function WebForm_FindFirstFocusableChild(control) {
    if (!control || !(control.tagName)) {
        return null;
    }
    var tagName =3D control.tagName.toLowerCase();
    if (tagName =3D=3D "undefined") {
        return null;
    }
    var children =3D control.childNodes;
    if (children) {
        for (var i =3D 0; i < children.length; i++) {
            try {
                if (WebForm_CanFocus(children[i])) {
                    return children[i];
                }
                else {
                    var focused =3D =
WebForm_FindFirstFocusableChild(children[i]);
                    if (WebForm_CanFocus(focused)) {
                        return focused;
                    }
                }
            } catch (e) {
            }
        }
    }
    return null;
}
function WebForm_AutoFocus(focusId) {
    var targetControl;
    if (__nonMSDOMBrowser) {
        targetControl =3D document.getElementById(focusId);
    }
    else {
        targetControl =3D document.all[focusId];
    }
    var focused =3D targetControl;
    if (targetControl && (!WebForm_CanFocus(targetControl)) ) {
        focused =3D WebForm_FindFirstFocusableChild(targetControl);
    }
    if (focused) {
        try {
            focused.focus();
            if (__nonMSDOMBrowser) {
                focused.scrollIntoView(false);
            }
            if (window.__smartNav) {
                window.__smartNav.ae =3D focused.id;
            }
        }
        catch (e) {
        }
    }
}
function WebForm_CanFocus(element) {
    if (!element || !(element.tagName)) return false;
    var tagName =3D element.tagName.toLowerCase();
    return (!(element.disabled) &&
            (!(element.type) || element.type.toLowerCase() !=3D =
"hidden") &&
            WebForm_IsFocusableTag(tagName) &&
            WebForm_IsInVisibleContainer(element)
            );
}
function WebForm_IsFocusableTag(tagName) {
    return (tagName =3D=3D "input" ||
            tagName =3D=3D "textarea" ||
            tagName =3D=3D "select" ||
            tagName =3D=3D "button" ||
            tagName =3D=3D "a");
}
function WebForm_IsInVisibleContainer(ctrl) {
    var current =3D ctrl;
    while((typeof(current) !=3D "undefined") && (current !=3D null)) {
        if (current.disabled ||
            ( typeof(current.style) !=3D "undefined" &&
            ( ( typeof(current.style.display) !=3D "undefined" &&
                current.style.display =3D=3D "none") ||
                ( typeof(current.style.visibility) !=3D "undefined" &&
                current.style.visibility =3D=3D "hidden") ) ) ) {
            return false;
        }
        if (typeof(current.parentNode) !=3D "undefined" &&
                current.parentNode !=3D null &&
                current.parentNode !=3D current &&
                current.parentNode.tagName.toLowerCase() !=3D "body") {
            current =3D current.parentNode;
        }
        else {
            return true;
        }
    }
    return true;
}

------=_NextPart_000_0000_01CAA5BA.54114B00--

