//////////////////////////////////////////////////////////////////////////////
//
// Copyright © 2002-2003, Microsoft Corporation.  All rights reserved.
//
// File: Cvobjs.js
//
// Description: Global utility functions
//
//////////////////////////////////////////////////////////////////////////////

//--------------------------------------------------------------------
// Function: ArrayPop
//
// Purpose: Removes the last element from an array. This function is
//	    provided for JScript versions that do not support this
//	    functionality (i.e. IE 5.01).
//
// Parameters: None
//
// Returns:
//	Object - The removed item
//--------------------------------------------------------------------
function ArrayPop()
{
	var oLast = this[this.length-1];
	this.length = Math.max(this.length-1,0);
	return oLast;
}

//--------------------------------------------------------------------
// Function: ArrayShift
//
// Purpose: Removes the first element from an array. This function is
//	    provided for JScript versions that do not support this
//	    functionality (i.e. IE 5.01).
//
// Parameters: None
//
// Returns: Object - The removed item
//--------------------------------------------------------------------
function ArrayShift() 
{
       	var oFirst = this[0];
       	this.reverse();
       	this.length = Math.max(this.length-1,0);
       	this.reverse();
       	return oFirst;
}

//--------------------------------------------------------------------
// Function: GetItemFromURL
//
// Purpose: Gets the value of the specified query string item.
//
// Parameters:
//	String sItem [in] - Query string item
//
// Returns: String
//--------------------------------------------------------------------
function GetItemFromURL(sItem)
{
	var sValue = "";
	var nItemLen = sItem.length;
	var aQuery = window.location.href.split("?");
	var oRegEx = new RegExp();

	oRegEx.compile(sItem,"gi");

	for (var i = 0; i < aQuery.length; i++)
	{
		if (oRegEx.test(aQuery[i]))
		{
			sValue = unescape(aQuery[i].substring(nItemLen+1,aQuery[i].length));
			break;
		}
	}

	return sValue;
}

//--------------------------------------------------------------------
// Function: AppendSlash
//
// Purpose: Appends a forward slash to the end of the supplied string,
//	    if one is not already present.
//
// Parameters:
//	String s [in] - String to update
//
// Returns: String
//--------------------------------------------------------------------
function AppendSlash(s)
{
	var sSlashes = "\\/";
	return (sSlashes.indexOf(s.charAt(s.length-1)) == -1) ? s + "/" : s;
}

//--------------------------------------------------------------------
// Function: IsBidiLang
//
// Purpose: Determines if the language code represents a bi-directional
//	    language.
//
// Parameters:
//	String sID [in] - Language code
//
// Returns: Boolean
//--------------------------------------------------------------------
function IsBidiLang(sID)
{
	var bRes = false;

	// Test for Urdu, Persian, Hebrew, Yiddish and Arabic
	if (sID == "ur" || sID == "fa" || sID == "he" || sID == "ji" || (sID.length > 3 && sID.substring(0,3) == "ar-"))
		bRes = true;

	return bRes;
}

//--------------------------------------------------------------------
// Method: GetBaseURL
//
// Purpose: Gets the viewer's URL minus the filename "viewer.htm".
//
// Parameters: None
//
// Returns: String
//--------------------------------------------------------------------
function GetBaseURL()
{
	var sBaseURL = "";

	try
	{
		var sURL = unescape(window.location.href.toLowerCase());
		
		var nPos = sURL.indexOf("viewer.htm");
		if (nPos != -1)	sBaseURL = sURL.substring(0,nPos);
	}
	catch(e)
	{	
	}

	return sBaseURL;
}

//--------------------------------------------------------------------
// Method: UnderlineHotkey
//
// Purpose: Underlines the mnemonic key within a string.
//
// Parameters: 
//	String sLabel [in] - String to modify
//	String sChar [in] - Character to underline
//
// Returns: String (HTML)
//--------------------------------------------------------------------
function UnderlineHotkey(sLabel,sChar)
{
	var sTmpLabel = sLabel.toLowerCase();
	var nPos = sTmpLabel.indexOf(sChar.toLowerCase());
	return (nPos == -1) ? sLabel : sLabel.substring(0,nPos) + "<u style='font-size: 100%' onclick='this.parentElement.click();'>" + sLabel.substring(nPos,nPos+1) + "</u>" + sLabel.substring(nPos+1,sLabel.length);
}

//--------------------------------------------------------------------
// Method: TrimStr
//
// Purpose: Removes whitespace characters from both ends of the
//	    supplied string.
//
// Parameters: 
//	String s [in] - String to trim
//
// Returns: String (HTML)
//--------------------------------------------------------------------
function TrimStr(s)
{
	var oRegEx = new RegExp("^(\\s*)([\\W\\w]*)(\\b\\s*$)","gim");
   	return s.replace(oRegEx,"$2");
}

//--------------------------------------------------------------------
// Method: ConfirmDeletion
//
// Purpose:
//
// Parameters:
//	String sMsgTxt [in] - 
//	String sReplaceTxt [in] - 
//
// Returns: Boolean
//--------------------------------------------------------------------
function ConfirmDeletion(sMsgTxt, sReplaceTxt)
{
	sMsgTxt = TextReplace(sMsgTxt,"%s",sReplaceTxt);

	var bDelete = window.confirm(sMsgTxt);

	return bDelete;
}

//--------------------------------------------------------------------
// Method: TextReplace
//
// Purpose: Replaces placeholder text with the specified value(s)
//
// Parameters:
//	String sTxt [in] - Text to parse
//	String|Array oFindTxt [in] - Placeholder(s) to locate
//	String|Array oReplaceTxt [in] - Replacement value(s)
//
// Returns: String
//--------------------------------------------------------------------
function TextReplace(sTxt,oFindTxt,oReplaceTxt)
{
	var sTmp = sTxt;

	if (typeof(oFindTxt) == "string")
		sTmp = sTmp.replace(new RegExp(oFindTxt,"gi"),oReplaceTxt);
	else if (typeof(oFindTxt) == "object" && typeof(oReplaceTxt) == "object" && oFindTxt.length == oReplaceTxt.length)
	{
		for (i = 0; i < oFindTxt.length; i++)
			sTmp = sTmp.replace(new RegExp(oFindTxt[i],"gi"),oReplaceTxt[i]);
	}

	return sTmp;
}

//--------------------------------------------------------------------
// Function: CancelEvent
//
// Purpose: Cancels the current event.
//
// Parameters: None
//
// Returns: None
//--------------------------------------------------------------------
function CancelEvent(oEvent)
{
	oEvent.cancelBubble = true;
	oEvent.returnValue = false;
}
// SIG // Begin signature block
// SIG // MIIXSwYJKoZIhvcNAQcCoIIXPDCCFzgCAQExCzAJBgUr
// SIG // DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
// SIG // gjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIBAAIB
// SIG // AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFPj/9HOSj1SV
// SIG // kuJTnbFAs5Zf1v3CoIISJDCCBGAwggNMoAMCAQICCi6r
// SIG // EdxQ/1ydy8AwCQYFKw4DAh0FADBwMSswKQYDVQQLEyJD
// SIG // b3B5cmlnaHQgKGMpIDE5OTcgTWljcm9zb2Z0IENvcnAu
// SIG // MR4wHAYDVQQLExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
// SIG // ITAfBgNVBAMTGE1pY3Jvc29mdCBSb290IEF1dGhvcml0
// SIG // eTAeFw0wNzA4MjIyMjMxMDJaFw0xMjA4MjUwNzAwMDBa
// SIG // MHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
// SIG // dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
// SIG // aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1p
// SIG // Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBMIIBIjANBgkq
// SIG // hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt3l91l2zRTmo
// SIG // NKwx2vklNUl3wPsfnsdFce/RRujUjMNrTFJi9JkCw03Y
// SIG // SWwvJD5lv84jtwtIt3913UW9qo8OUMUlK/Kg5w0jH9FB
// SIG // JPpimc8ZRaWTSh+ZzbMvIsNKLXxv2RUeO4w5EDndvSn0
// SIG // ZjstATL//idIprVsAYec+7qyY3+C+VyggYSFjrDyuJSj
// SIG // zzimUIUXJ4dO3TD2AD30xvk9gb6G7Ww5py409rQurwp9
// SIG // YpF4ZpyYcw2Gr/LE8yC5TxKNY8ss2TJFGe67SpY7UFMY
// SIG // zmZReaqth8hWPp+CUIhuBbE1wXskvVJmPZlOzCt+M26E
// SIG // RwbRntBKhgJuhgCkwIffUwIDAQABo4H6MIH3MBMGA1Ud
// SIG // JQQMMAoGCCsGAQUFBwMDMIGiBgNVHQEEgZowgZeAEFvQ
// SIG // cO9pcp4jUX4Usk2O/8uhcjBwMSswKQYDVQQLEyJDb3B5
// SIG // cmlnaHQgKGMpIDE5OTcgTWljcm9zb2Z0IENvcnAuMR4w
// SIG // HAYDVQQLExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf
// SIG // BgNVBAMTGE1pY3Jvc29mdCBSb290IEF1dGhvcml0eYIP
// SIG // AMEAizw8iBHRPvZj7N9AMA8GA1UdEwEB/wQFMAMBAf8w
// SIG // HQYDVR0OBBYEFMwdznYAcFuv8drETppRRC6jRGPwMAsG
// SIG // A1UdDwQEAwIBhjAJBgUrDgMCHQUAA4IBAQB7q65+Siby
// SIG // zrxOdKJYJ3QqdbOG/atMlHgATenK6xjcacUOonzzAkPG
// SIG // yofM+FPMwp+9Vm/wY0SpRADulsia1Ry4C58ZDZTX2h6t
// SIG // KX3v7aZzrI/eOY49mGq8OG3SiK8j/d/p1mkJkYi9/uEA
// SIG // uzTz93z5EBIuBesplpNCayhxtziP4AcNyV1ozb2AQWtm
// SIG // qLu3u440yvIDEHx69dLgQt97/uHhrP7239UNs3DWkuNP
// SIG // tjiifC3UPds0C2I3Ap+BaiOJ9lxjj7BauznXYIxVhBoz
// SIG // 9TuYoIIMol+Lsyy3oaXLq9ogtr8wGYUgFA0qvFL0QeBe
// SIG // MOOSKGmHwXDi86erzoBCcnYOMIIEejCCA2KgAwIBAgIK
// SIG // YQYngQAAAAAACDANBgkqhkiG9w0BAQUFADB5MQswCQYD
// SIG // VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
// SIG // A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
// SIG // IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQg
// SIG // Q29kZSBTaWduaW5nIFBDQTAeFw0wODEwMjIyMTI0NTVa
// SIG // Fw0xMDAxMjIyMTM0NTVaMIGDMQswCQYDVQQGEwJVUzET
// SIG // MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
// SIG // bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
// SIG // aW9uMQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNy
// SIG // b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEB
// SIG // AQUAA4IBDwAwggEKAoIBAQC9crSJ5xyfhcd0uGBcAzY9
// SIG // nP2ZepopRiKwp4dT7e5GOsdbBQtXqLfKBczTTHdHcIWz
// SIG // 5cvfZ+ej/XQnk2ef14oDRDDG98m6yTodCFZETxcIDfm0
// SIG // GWiqJBz7BVeF6cVOByE3p+vOLC+2Qs0hBafW5tMoV8cb
// SIG // es4pNgfNnlXMu/Ei66gjpA0pwvvQw1o+Yz3HLEkLe3mF
// SIG // 8Ijvcb1DWuOjsw3zVfsl4OIg0+eaXpSlMy0of1cbVWoM
// SIG // MkTvZmxv8Dic7wKtmqHdmAcQDjwYaeJ5TkYU4LmM0HVt
// SIG // nKwAnC1C9VG4WvR4RYPpLnwru13NGWEorZRDCsVqQv+1
// SIG // Mq6kKSLeFujTAgMBAAGjgfgwgfUwEwYDVR0lBAwwCgYI
// SIG // KwYBBQUHAwMwHQYDVR0OBBYEFCPRcypMvfvlIfpxHpkV
// SIG // 0Rf5xKaKMA4GA1UdDwEB/wQEAwIHgDAfBgNVHSMEGDAW
// SIG // gBTMHc52AHBbr/HaxE6aUUQuo0Rj8DBEBgNVHR8EPTA7
// SIG // MDmgN6A1hjNodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v
// SIG // cGtpL2NybC9wcm9kdWN0cy9DU1BDQS5jcmwwSAYIKwYB
// SIG // BQUHAQEEPDA6MDgGCCsGAQUFBzAChixodHRwOi8vd3d3
// SIG // Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL0NTUENBLmNy
// SIG // dDANBgkqhkiG9w0BAQUFAAOCAQEAQynPY71s43Ntw5nX
// SIG // bQyIO8ZIc3olziziN3udNJ+9I86+39hceRFrE1EgAWO5
// SIG // cvcI48Z9USoWKNTR55sqzxgN0hNxkSnsVr351sUNL69l
// SIG // LW1NRSlWcoRPP9JqHUFiqXlcjvDHd4rLAiguncecK+W5
// SIG // Kgnd7Jfi5XqNXhCIU6HdYE93mHFgqFs5kdOrEh8F6cNF
// SIG // qdPCUbmvuNz8BoQA9HSj2//MHaAjBQfkJzXCl5AZqoJg
// SIG // J+j7hCse0QTLjs+CDdeoTUNAddLe3XfvilxrD4dkj7S6
// SIG // t7qrZ1QhRapKaOdUXosUXGd47JBcAxCRCJ0kIJfo3wAR
// SIG // cKn5snJwt67iwp8WAjCCBJ0wggOFoAMCAQICCmFJfO0A
// SIG // AAAAAAUwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
// SIG // VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
// SIG // B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
// SIG // b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IFRpbWVz
// SIG // dGFtcGluZyBQQ0EwHhcNMDYwOTE2MDE1NTIyWhcNMTEw
// SIG // OTE2MDIwNTIyWjCBpjELMAkGA1UEBhMCVVMxEzARBgNV
// SIG // BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
// SIG // HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEn
// SIG // MCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjEwRDgtNTg0
// SIG // Ny1DQkY4MScwJQYDVQQDEx5NaWNyb3NvZnQgVGltZXN0
// SIG // YW1waW5nIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUA
// SIG // A4IBDwAwggEKAoIBAQDqugVjyNl5roREPqWzxO1MniTf
// SIG // OXYeCdYySlh40ivZpQeQ7+c9+70mfKP75X1+Ms/ZPYs5
// SIG // N/L42Ds0FtSSgvs07GiFchqP4LhM4LiF8zMKAsGidnM1
// SIG // TF3xt+FKfR24lHjb/x6FFUJGcc5/J1cS0YNPO8/63vaL
// SIG // 7T8A49XeYfkXjUukgTz1aUDq4Ym/B0+6dHvpDOVH6qts
// SIG // 8dVngQj4Fsp9E7tz4glM+mL77aA5mjr+6xHIYR5iWNgK
// SIG // VIPVO0tL4lW9L2AajpIFQ9pd64IKI5cJoAUxZYuTTh5B
// SIG // IaKSkP1FREVvNbFFN61pqWX5NEOxF8I7OeEQjPIah+NU
// SIG // UB87nTGtAgMBAAGjgfgwgfUwHQYDVR0OBBYEFH5y8C4/
// SIG // VingJfdouAH8S+F+z+M+MB8GA1UdIwQYMBaAFG/oTj+X
// SIG // uTSrS4aPvJzqrDtBQ8bQMEQGA1UdHwQ9MDswOaA3oDWG
// SIG // M2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3Js
// SIG // L3Byb2R1Y3RzL3RzcGNhLmNybDBIBggrBgEFBQcBAQQ8
// SIG // MDowOAYIKwYBBQUHMAKGLGh0dHA6Ly93d3cubWljcm9z
// SIG // b2Z0LmNvbS9wa2kvY2VydHMvdHNwY2EuY3J0MBMGA1Ud
// SIG // JQQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIGwDAN
// SIG // BgkqhkiG9w0BAQUFAAOCAQEAaXqCCQwW0d7PRokuv9E0
// SIG // eoF/JyhBKvPTIZIOl61fU14p+e3BVEqoffcT0AsU+U3y
// SIG // hhUAbuODHShFpyw5Mt1vmjda7iNSj1QDjT+nnGQ49jbI
// SIG // FEO2Oj6YyQ3DcYEo82anMeJcXY/5UlLhXOuTkJ1pCUyJ
// SIG // 0dF2TDQNauF8RKcrW4NUf0UkGSXEikbFJeMZgGkpFPYX
// SIG // xvAiLIFGXiv0+abGdz4jb/mmZIWOomINqS0eqOWQPn//
// SIG // sI78l+zx/QSvzUnOWnSs+vMTHxs5zqO01rz0tO7IrfJW
// SIG // Hvs88cjWKkS8v5w/fWYYzbIgYwrKQD1lMhl8srg9wSZI
// SIG // TiIZmW6MMMHxkTCCBJ0wggOFoAMCAQICEGoLmU/AACWr
// SIG // EdtFH1h6Z6IwDQYJKoZIhvcNAQEFBQAwcDErMCkGA1UE
// SIG // CxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jvc29mdCBD
// SIG // b3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0
// SIG // aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgUm9vdCBBdXRo
// SIG // b3JpdHkwHhcNMDYwOTE2MDEwNDQ3WhcNMTkwOTE1MDcw
// SIG // MDAwWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
// SIG // aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
// SIG // ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQD
// SIG // ExpNaWNyb3NvZnQgVGltZXN0YW1waW5nIFBDQTCCASIw
// SIG // DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANw3bvuv
// SIG // yEJKcRjIzkg+U8D6qxS6LDK7Ek9SyIPtPjPZSTGSKLaR
// SIG // ZOAfUIS6wkvRfwX473W+i8eo1a5pcGZ4J2botrfvhbnN
// SIG // 7qr9EqQLWSIpL89A2VYEG3a1bWRtSlTb3fHev5+Dx4Df
// SIG // f0wCN5T1wJ4IVh5oR83ZwHZcL322JQS0VltqHGP/gHw8
// SIG // 7tUEJU05d3QHXcJc2IY3LHXJDuoeOQl8dv6dbG564Ow+
// SIG // j5eecQ5fKk8YYmAyntKDTisiXGhFi94vhBBQsvm1Go1s
// SIG // 7iWbE/jLENeFDvSCdnM2xpV6osxgBuwFsIYzt/iUW4RB
// SIG // hFiFlG6wHyxIzG+cQ+Bq6H8mjmsCAwEAAaOCASgwggEk
// SIG // MBMGA1UdJQQMMAoGCCsGAQUFBwMIMIGiBgNVHQEEgZow
// SIG // gZeAEFvQcO9pcp4jUX4Usk2O/8uhcjBwMSswKQYDVQQL
// SIG // EyJDb3B5cmlnaHQgKGMpIDE5OTcgTWljcm9zb2Z0IENv
// SIG // cnAuMR4wHAYDVQQLExVNaWNyb3NvZnQgQ29ycG9yYXRp
// SIG // b24xITAfBgNVBAMTGE1pY3Jvc29mdCBSb290IEF1dGhv
// SIG // cml0eYIPAMEAizw8iBHRPvZj7N9AMBAGCSsGAQQBgjcV
// SIG // AQQDAgEAMB0GA1UdDgQWBBRv6E4/l7k0q0uGj7yc6qw7
// SIG // QUPG0DAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL
// SIG // BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkq
// SIG // hkiG9w0BAQUFAAOCAQEAlE0RMcJ8ULsRjqFhBwEOjHBF
// SIG // je9zVL0/CQUt/7hRU4Uc7TmRt6NWC96Mtjsb0fusp8m3
// SIG // sVEhG28IaX5rA6IiRu1stG18IrhG04TzjQ++B4o2wet+
// SIG // 6XBdRZ+S0szO3Y7A4b8qzXzsya4y1Ye5y2PENtEYIb92
// SIG // 3juasxtzniGI2LS0ElSM9JzCZUqaKCacYIoPO8cTZXhI
// SIG // u8+tgzpPsGJY3jDp6Tkd44ny2jmB+RMhjGSAYwYElvKa
// SIG // AkMve0aIuv8C2WX5St7aA3STswVuDMyd3ChhfEjxF5wR
// SIG // ITgCHIesBsWWMrjlQMZTPb2pid7oZjeN9CKWnMywd1RR
// SIG // OtZyRLIj9jGCBJMwggSPAgEBMIGHMHkxCzAJBgNVBAYT
// SIG // AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
// SIG // EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
// SIG // cG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl
// SIG // IFNpZ25pbmcgUENBAgphBieBAAAAAAAIMAkGBSsOAwIa
// SIG // BQCggb4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
// SIG // HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJ
// SIG // KoZIhvcNAQkEMRYEFEtpY+8+01ZKXD2LPZh3nqNT2kdH
// SIG // MF4GCisGAQQBgjcCAQwxUDBOoCaAJABNAGkAYwByAG8A
// SIG // cwBvAGYAdAAgAEwAZQBhAHIAbgBpAG4AZ6EkgCJodHRw
// SIG // Oi8vd3d3Lm1pY3Jvc29mdC5jb20vbGVhcm5pbmcgMA0G
// SIG // CSqGSIb3DQEBAQUABIIBAAfItU597u649FBbCVVoWdAW
// SIG // J9xI60riaAga2C58LX+9t2S6nV6a6luwkqHVNMSqCFu+
// SIG // j8tX2KRd72LPSupm1uXAlhVxHpHJRl0OkLP933jWFK7b
// SIG // vut6XdU6Mj9TWtWToI0iOVmaLzsu7PuH96b7wQKHMpIS
// SIG // 3B/ku8XtxLcFw62VKx8+gkntR9st/FSMErg2b+YDSc2M
// SIG // GYWAyBsxwnXTovYjs+l4iPoekIBK6oTYhR1PVK8dn90v
// SIG // cPi5z3W5VbIw+08dgEKuHPs7kg/NubCHK/jxv2R6NghW
// SIG // 3P7x3Bqpn+4vWn7/HQ2/w0iZa23qrr2LQqkqRBwBOZb/
// SIG // 143om2S9ReihggIfMIICGwYJKoZIhvcNAQkGMYICDDCC
// SIG // AggCAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgT
// SIG // Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
// SIG // BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEG
// SIG // A1UEAxMaTWljcm9zb2Z0IFRpbWVzdGFtcGluZyBQQ0EC
// SIG // CmFJfO0AAAAAAAUwBwYFKw4DAhqgXTAYBgkqhkiG9w0B
// SIG // CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0w
// SIG // OTA0MDkwMTE1MThaMCMGCSqGSIb3DQEJBDEWBBR92TKR
// SIG // EYPG7U0z+LFTTtkBVx4xjjANBgkqhkiG9w0BAQUFAASC
// SIG // AQAGa8KDSo2JDE173RfCk6vqcikLDOs68n5shrrpmCmb
// SIG // WtXLHE0EhOCoNbIsUXI0oVQs9/zPNlx/vwopaJTBQlzI
// SIG // wbqe8KeJFm48wfwOj251Isq7grqi5f2vxkKVvB5HP6G2
// SIG // zITI4cx4uKVHL23p0ZxHbIQV16/DxmBS/+YlKxNMFsWf
// SIG // ArvoP3Cil+mQ9NFo0UG5Yxucoi1HyDq5T12VrUOPLQpi
// SIG // y9m0PTNCA0PUs7h4+RbMNYS48AQwfnVNTi8Ad4YVT4Ly
// SIG // jN1tFJUVLjGZrhpB99AWiPLe2C2whjLQ61uj4tr0jzTB
// SIG // kDpUpUQkdjxJbRb0EDDhRMo2t74wDnQNMjAJ
// SIG // End signature block
