Malicious PDF — malware analysis report

Static analysis result for SHA-256 95e892b3b2593d64…

MALICIOUS

PDF

461.5 KB Created: Çâ©b'Aê>Ëá?hy]h&iÏ Authoring application: -Q]„¡ö=Bx ûZ¾{*;G< First seen: 2026-05-11
MD5: b1d0b1d122681b67f6e8273cd105bc6e SHA-1: bcdbe79363ccaee0284c83a4f0e3c4dd386a9e0f SHA-256: 95e892b3b2593d64f41d28cc2f655e6ab86f69e508b2a873f762e0c4fc299863
126 Risk Score

🔏 Digital signature Signed

A signature covers the whole signed byte range — PDF JavaScript is never signed on its own — and does not by itself mean the document is safe.

Malware Insights

MITRE ATT&CK
T1059.001 PowerShell T1566.001 Spearphishing Attachment T1027 Obfuscated Files or Information

The PDF contains embedded JavaScript and is encrypted, with the JavaScript referencing the encryption details. This suggests the JavaScript is used to obfuscate or hide the malicious payload from static analysis. The presence of numerous streams and an AcroForm button with an action trigger further indicates a complex, potentially malicious document structure. The primary attack pattern involves leveraging PDF features to conceal and deliver a malicious payload.

Machine Learning

  • Nyx PDF Classifier malicious score 0.7254

Heuristics 8

  • Encrypted PDF carries /JavaScript — payload hidden from static analysis high PDF_ENCRYPTED_WITH_JS
    PDF declares /Encrypt and also references an executable trigger (/JavaScript). Document encryption hides the JavaScript body and stream contents from static scanners — combined with auto-execution indicators this is a known evasion pattern used to deliver weaponised JavaScript that the analyst cannot inspect without the decryption key.
  • Unusually high stream count medium PDF_MANY_STREAMS
    PDF contains 501+ stream objects — may indicate heap spray or heavy obfuscation
  • JavaScript action low 1 related finding PDF_JAVASCRIPT
    PDF contains a /JavaScript action. Generic JavaScript is common in benign forms; specific dangerous APIs are scored by separate rules.
  • Embedded JS stream low PDF_JS
    PDF references a /JS stream. Generic JavaScript is common in benign forms; specific dangerous APIs are scored by separate rules.
  • Additional-actions dictionary low PDF_AA
    PDF defines /AA (Additional Actions) that references an executable action (JS/JavaScript/Launch/SubmitForm) — can auto-trigger on document or widget events. Form-field calc/format/validate/keystroke handlers in legitimate interactive forms commonly fire this, so it is reported as a low-weight signal; weaponised auto-execution is flagged by stronger rules (PDF_OPENACTION, encrypted-with-JS, etc.)
  • AcroForm button with action trigger low PDF_ACROFORM_BUTTON
    PDF contains a /Btn form field together with a SubmitForm/URI/Launch/JS trigger — this is the building block of fake 'Download' or 'Open' button overlays used in PDF phishing lures
  • Suspicious extracted artifact info EXTRACTED_FILE_STATIC_TRIAGE
    One or more files extracted from inside this sample matched static suspicious-content checks such as script obfuscation, encoded payload blobs, packed data, or execution/download terms.
  • Embedded URL info EMBEDDED_URL
    One or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.
    URL http://pajhome.org.uk/crypt/md5 Referenced by PDF JavaScript
    • http://www.unicode.org/reports/tr35/tr35-11.html#Number_Format_PatternsReferenced by PDF JavaScript
    • http://www.unicode.org/reports/tr35/tr35-11.html#Lenient_ParsingReferenced by PDF JavaScript
    • http://unicode.org/reports/tr18/Referenced by PDF JavaScript
    • http://www.microsoft.com/truetype/fonts/wingdings/http://www.microsoft.com/truetype/designers/bandh/In PDF document text
    • https://www.verisign.com/repository/CPS��In PDF document text
    • https://www.verisign.comIn PDF document text
    • https://www.verisign.com/repository/verisignlogo.gif0��In PDF document text
    • https://www.verisign.com/CPS0bIn PDF document text
    • http://www.microsoft.com/typographyIn PDF document text

Extracted artifacts 24

Files carved from inside the sample during analysis.

FilenameKindSourceSize
javascript_obj0185_004.js pdf-javascript-stream PDF /JS object 185 at offset 0x1DF28 213 bytes
SHA-256: 88cf83eacfa4ab997462d207c0c2ed6b53626fc3794ce976e7bdf29d2c84f5d4
Preview script
First 1,000 lines of the extracted script
if (this.getField("swissformsSaveUrl").valueAsString != ""){
	if (app.viewerVersion >= 7.0){
		app.launchURL(this.getField("swissformsSaveUrl").valueAsString, true);this.getField("swissformsSaveUrl").value = "";}}
javascript_obj0187_005.js pdf-javascript-stream PDF /JS object 187 at offset 0x1E0FB 107 bytes
SHA-256: f24f44ca9d60dd42a63432989aaa4b625b3f58ca8efbcc9b7f760bb4a53d1e2a
Preview script
First 1,000 lines of the extracted script
if(event.source != undefined && event.source.type == "checkbox") checkboxChanged(event);handleEvent(event);
javascript_obj0704_006.js pdf-javascript-stream PDF /JS object 704 at offset 0x4B247 4191 bytes
SHA-256: 4bdff062d715f97bab44111abbbdab766166fac1324f08e7abbeff9488b3363f
Preview script
First 1,000 lines of the extracted script
var cldr={
"supplemental_plurals":{
"zero":function(n) { return false; },
"one":function(n) { return n == 1; },
"two":function(n) { return false; },
"few":function(n) { return false; },
"many":function(n) { return false; }
},
"numbers_symbols":{
"decimal":".",
"group":",",
"list":";",
"nativeZeroDigit":"0",
"plusSign":"+",
"minusSign":"-",
"numberPattern":"#,##0.###",
"nan":"NaN",
"infinity":"\u221E"
},
"calendar_gregorian":{
"months_format":{
"abbreviated":{
"_1":"Jan","_2":"Feb","_3":"Mar","_4":"Apr","_5":"May","_6":"Jun","_7":"Jul","_8":"Aug","_9":"Sep","_10":"Oct","_11":"Nov","_12":"Dec"
},
"wide":{
"_1":"January","_2":"February","_3":"March","_4":"April","_5":"May","_6":"June","_7":"July","_8":"August","_9":"September","_10":"October","_11":"November","_12":"December"
},
"narrow":{
"_1":"J","_2":"F","_3":"M","_4":"A","_5":"M","_6":"J","_7":"J","_8":"A","_9":"S","_10":"O","_11":"N","_12":"D"
}
},
"months_stand_alone":{
"abbreviated":{
"_1":"Jan","_2":"Feb","_3":"Mar","_4":"Apr","_5":"May","_6":"Jun","_7":"Jul","_8":"Aug","_9":"Sep","_10":"Oct","_11":"Nov","_12":"Dec"
},
"wide":{
"_1":"January","_2":"February","_3":"March","_4":"April","_5":"May","_6":"June","_7":"July","_8":"August","_9":"September","_10":"October","_11":"November","_12":"December"
},
"narrow":{
"_1":"J","_2":"F","_3":"M","_4":"A","_5":"M","_6":"J","_7":"J","_8":"A","_9":"S","_10":"O","_11":"N","_12":"D"
}
},
"days_format":{
"abbreviated":{
"sun":"Sun","mon":"Mon","tue":"Tue","wed":"Wed","thu":"Thu","fri":"Fri","sat":"Sat"
},
"wide":{
"sun":"Sunday","mon":"Monday","tue":"Tuesday","wed":"Wednesday","thu":"Thursday","fri":"Friday","sat":"Saturday"
},
"narrow":{
"sun":"S","mon":"M","tue":"T","wed":"W","thu":"T","fri":"F","sat":"S"
}
},
"days_stand_alone":{
"abbreviated":{
"sun":"Sun","mon":"Mon","tue":"Tue","wed":"Wed","thu":"Thu","fri":"Fri","sat":"Sat"
},
"wide":{
"sun":"Sunday","mon":"Monday","tue":"Tuesday","wed":"Wednesday","thu":"Thursday","fri":"Friday","sat":"Saturday"
},
"narrow":{
"sun":"S","mon":"M","tue":"T","wed":"W","thu":"T","fri":"F","sat":"S"
}
},
"quarters_format":{
"abbreviated":{
"_1":"Q1","_2":"Q2","_3":"Q3","_4":"Q4"
},
"wide":{
"_1":"1st quarter","_2":"2nd quarter","_3":"3rd quarter","_4":"4th quarter"
},
"narrow":{
"_1":"1","_2":"2","_3":"3","_4":"4"
}
},
"quarters_stand_alone":{
"abbreviated":{
"_1":"Q1","_2":"Q2","_3":"Q3","_4":"Q4"
},
"wide":{
"_1":"1st quarter","_2":"2nd quarter","_3":"3rd quarter","_4":"4th quarter"
},
"narrow":{
"_1":"1","_2":"2","_3":"3","_4":"4"
}
},
"am":"AM",
"pm":"PM",
"eraNames":{"beforeChrist":"Before Christ","afterChrist":"Anno Domini"},
"eraAbbr":{"beforeChrist":"BC","afterChrist":"AD"},
"eraNarrow":{"beforeChrist":"B","afterChrist":"A"},
"relative_days":{
"_0":"Today","_1":"Tomorrow","_-1":"Yesterday"
},
"months_all":{
"_1":["January","Ionawr"],"_2":["February","Chwefror"],"_3":["March","Mawrth"],"_4":["April","Ebrill"],"_5":["May","Mai"],"_6":["June","Mehefin"],"_7":["July","Gorffenaf"],"_8":["August","Awst"],"_9":["September","Medi"],"_10":["October","Hydref"],"_11":["November","Tachwedd"],"_12":["December","Rhagfyr"]
},
"days_all":{
"sun":["Sunday","Dydd Sul"],"mon":["Monday","Dydd Llun"],"tue":["Tuesday","Dydd Mawrth"],"wed":["Wednesday","Dydd Mercher"],"thu":["Thursday","Dydd Iau"],"fri":["Friday","Dydd Gwener"],"sat":["Saturday","Dydd Sadwrn"]
},
"timeFormats":{
"short":"HH:mm",
"medium":"HH:mm:ss",
},
"dateFormats":{
"short":"dd/MM/yyyy",
"medium":"d MMM yyyy",
"long":"d MMMM yyyy",
"full":"EEEE, d MMMM yyyy",
},
},
"timeZoneNames":{
"hourFormat":"+HH:mm;-HH:mm",
"gmtFormat":"GMT{0}",
},
"numbers_currencyFormats":{
"currencySpacing":{
"beforeCurrency":{
"currencyMatch":"[:letter:]",
"surroundingMatch":"[:digit:]",
"insertBetween":"\u00A0"
},
"afterCurrency":{
"currencyMatch":"[:letter:]",
"surroundingMatch":"[:digit:]",
"insertBetween":"\u00A0"
}
},
"unitPatterns":{
"one":"{0} {1}"
,"other":"{0} {1}"

},
"currencyPattern":"\u00A4#,##0.00"
},
"numbers_currencies":{
},
"supplemental_currencyData_fractions":{"DEFAULT":{"digits":2,"rounding":0},
}
}
javascript_obj0705_007.js pdf-javascript-stream PDF /JS object 705 at offset 0x4B750 616 bytes
SHA-256: 60a3974c181298c6dc7fe0ba27e058af511f307dffb5979c522f3172d75b631f
Preview script
First 1,000 lines of the extracted script
function action_setFieldVisibility(fieldId, visibility)
{
	var field = getFieldById(fieldId);
	
	if(field != undefined)
	{
		if(visibility > -1 && visibility < 4)
		{
			field.display = visibility;
			generateBlurEvent(field);
		}
	}
}function action_setFieldValue(fieldId, expression)
{
	var field = getFieldById(fieldId);
	
	if(field != undefined)
	{
          if (field == event.source)
          {
              console.println("Tried to set field value which has caused the whole calculation tree");
              return;
          }
	    field.value = expression();
          generateValidateEvent(field);
	}
}
javascript_obj0706_008.js pdf-javascript-stream PDF /JS object 706 at offset 0x4B8BB 16779 bytes
SHA-256: 1d97686a04ecd6bfbda408e20d6f5848534868941918fc00690a5cb06af7527c
Preview script
First 1,000 lines of the extracted script
var formProperties = new Array();
var CANCEL_EVENT = false;
var EMPTY = 0;
var VALID = 1;
var INVALID = 2;
var REQUIRED = 3;

var INVALIDITY_REASON_INPUT = 0;
var INVALIDITY_REASON_OTHER = 1;

var commitWithTab = false;
var tabTarget = "";
var nextFieldState = 0;
var tabOn = true;
var eventLevel = 0;
var backward = false;
var prevAcroField = null;
var possibleBackJump = false;
//var nextAcroField = null;
var submitForm_formatingBack = false;
var ignoreAllEvents = false;
var ignoreAllRules = false;
var fieldIdCached = new Array();
var CANCEL_CALCULATION = false;
var CALCULATE_RULES = false;
var CALCULATION_ONE_FILLED = false;
var CALCULATION_ALL_FILLED = false;
var CALCULATION_WITH_FIELD = false;

var IN_INIT = false;

var IGNORE_FORMAT_EVENT = false;

var CACHED_CB_GROUPS = new Array();

var printHiddenFieldOriginalDisplay = undefined;

var calculateCounter = 0;

if(app.runtimeHighlight)
{
	app.runtimeHighlight = false;
}

/// events

var eventRegister = new Object();

function registerEvent(eventName, fieldName, source)
{
	if(eventRegister[eventName] == undefined) eventRegister[eventName] = new Object();
	if(eventRegister[eventName][fieldName] == undefined) eventRegister[eventName][fieldName] = new Array();
	eventRegister[eventName][fieldName].push(source);
}

function handleEvent(event, withRules)
{
	if (ignoreAllEvents)
		return;
	
	var eventName = event.name;
	if (eventName == "Format" && IGNORE_FORMAT_EVENT)
		return;
	
	// optimization: don't blur or format hidden fields
	if ((eventName == "Format" || eventName == "Blur") && event.target != undefined)
	{
		if (event.target.hidden)
			return;
	}
	
	eventLevel++;
	
	/*if (eventName == "Calculate")
		console.println("Enter Event: " + eventName + ", " + event.source.name + ", " + eventLevel);
	else
		console.println("Enter Event: " + eventName + ", " + event.target.name + ", " + eventLevel);*/
	
	if(eventName == "Keystroke" && event.target != null && event.commitKey == 3 && eventLevel == 1)
	{
		//this.console.println("tab commit: " + event.target.name);

		// look up prev active field
		prevAcroField = tabOrderB[event.target.name];
		var pField = this.getField(prevAcroField);
		while(pField != null && (pField.display == 1 || pField.display == 3 || pField.readonly))
		{
			prevAcroField = tabOrderB[prevAcroField];
			pField = this.getField(prevAcroField);
		}

		/*// look up prev active field
		nextAcroField = tabOrder[event.target.name];
		var nField = this.getField(nextAcroField);
		while(nField != null && (nField.display == 1 || nField.display == 3 || nField.readonly))
		{
			nextAcroField = tabOrder[nextAcroField];
			nField = this.getField(nextAcroField);
		}*/

		commitWithTab = true;
		tabTarget = event.target.name;
		nextFieldState = event.target.display;
	}


	if(eventRegister[eventName] == undefined)
	{
		if(eventName == "Calculate")
		{
			calculateFields(event);
		}
		
		/*if (eventName == "Calculate")
			console.println("Leave Event: " + eventName + ", " + event.source.name + ", " + eventLevel);
		else
			console.println("Leave Event: " + eventName + ", " + event.target.name + ", " + eventLevel);*/
			
		eventLevel--;
		return;
	}
	var registeredEvent = eventRegister[eventName];
	if(registeredEvent[event.target.name] == undefined)
	{
		/*if (eventName == "Calculate")
			console.println("Leave Event: " + eventName + ", " + event.source.name + ", " + eventLevel);
		else
			console.println("Leave Event: " + eventName + ", " + event.target.name + ", " + eventLevel);*/
			
		eventLevel--;
		return;
	}
	var fieldName = event.target.name;
	CANCEL_EVENT = false;
	for(var i = 0; i < registeredEvent[fieldName].length; i++)
	{
		if(!CANCEL_EVENT)
		{
			registeredEvent[fieldName][i](event);
		}
		else break;
	}

	//if(withRules != 1) doRules(event);

	if(eventName == "Calculate")
	{
		calculateFields(event);
	}

	//////////////// ACHTUNG
	
	if(possibleBackJump && eventName == "Focus" && eventLevel == 1)
	{
		if(event.target.name == prevAcroField)
		{
			var nextFieldName = tabOrderB[tabTarget];

			var name = nextFieldName;
			var field2 = this.getField(name);

			while(field2 != null && (field2.display == 1 || field2.display == 3 || field2.readonly))
			{
				name = tabOrderB[name];
				field2 = this.getField(name);
			}

			field2.setFocus();
		}
	}
	else if(possibleBackJump && eventName == "Blur" && tabTarget == event.target.name && eventLevel == 1)
	{
		;
		// do nothing
	}
	else if(possibleBackJump && eventLevel == 1)
	{
		possibleBackJump = false;
	}

	/*if (eventName == "Calculate")
		console.println("Leave Event: " + eventName + ", " + event.source.name + ", " + eventLevel);
	else
		console.println("Leave Event: " + eventName + ", " + event.target.name + ", " + eventLevel);*/
	
	eventLevel--;
}

function getFieldById(id)
{
	if (fieldIdCached[id] != undefined)
	{
		return fieldIdCached[id];
	}
	else
	{
		var name = fieldIdNameMapping[""+id];
		if (name == undefined) return undefined;
		var field = this.getField(name);
		if (field == undefined) return undefined;
		fieldIdCached[id] = field;
		return field;
		return undefined;
	}
}

function doRules(rulesArr)
{
	if(rules != undefined)
	{
		if (!ignoreAllRules)
		{
			rulesArr.sort();
			for(var i = 0; i < rulesArr.length; i ++)
			{
				var rule = rules[rulesArr[i]];
				CALCULATE_RULES = true;
				var complied = Boolean(rule["condition"]());
				if(complied)
				{
					if(rule["trueActions"] != undefined)
					{
						for(var j = 0; j < rule["trueActions"].length; j++)
						{
							tabOn = false;
							rule["trueActions"][j]();
							tabOn = true;
						}
					}
				}
				else
				{
					if(rule["falseActions"] != undefined)
					{
						for(var j = 0; j < rule["falseActions"].length; j++)
						{
							tabOn = false;
							rule["falseActions"][j]();
							tabOn = true;
						}
					}
				}
			}
		}
		//this.console.println("setFocus: " + event.target.name + " level: " + eventLevel);

		if(commitWithTab && tabOn && eventLevel == 1)
		{
			var nextFieldName = tabOrder[tabTarget];
			var name = nextFieldName;
			var field2 = this.getField(name);

			while(field2 != null && (field2.display == 1 || field2.display == 3 || field2.readonly))
			{
				name = tabOrder[name];
				field2 = this.getField(name);
			}

			field2.setFocus();
			possibleBackJump = true;
			commitWithTab = false;
		}
	}
}

function customValidateAllFieldsWithBlur(fieldName)
{
	if(fields[fieldName] != undefined && fields[fieldName]["validations"] != undefined)
	{
		for(var i = 0; i < fields[fieldName]["validations"].length; i++)
		{
			var fName = fields[fieldName]["validations"][i];
			var field = this.getField(fName);

			if(field != undefined)
			{
				generateOnlyValidateEvent(field);
				var dummyEvent = new Object();
				dummyEvent.target = field;
				dummyEvent.name = "Blur";
				handleEvent(dummyEvent);
			}
		}
	}
}

function customValidateAllFields(fieldName)
{
	if(fields[fieldName] != undefined && fields[fieldName]["validations"] != undefined)
	{
		for(var i = 0; i < fields[fieldName]["validations"].length; i++)
		{
			var fName = fields[fieldName]["validations"][i];
			var field = this.getField(fName);

			if(field != undefined)
			{
				generateOnlyValidateEvent(field);
			}
		}
	}
}

function calculateFields(event)
{
	if (event.source == undefined) return;
	var currFieldName = event.source.name;
	
	customValidateAllFieldsWithBlur(currFieldName);
	if (fields[currFieldName] == undefined) return;
	
	var fieldId = fields[currFieldName]["id"];
	var currIndex = calcTreeEntryMapping[fieldId+""];
	
	var rulesArr = new Array();
	if (currIndex != -1 && currIndex != undefined)
	{
		var first = true;
	
		while (currIndex != -1 && currIndex != undefined)
		{
			if (flatCalcTree[currIndex] == undefined) break;
			var field = getFieldById(flatCalcTree[currIndex].fieldId);
			if(field != undefined && first == false)
			{
				var changed = calculateField(field);
				if (changed)
					customValidateAllFieldsWithBlur(field.name);
			}
			
			for(var i = 0; i < fields[field.name]["rules"].length; i++)
			{
				var rule = fields[field.name]["rules"][i];
				rulesArr.push(rule);
			}
			
			currIndex = flatCalcTree[currIndex].next;
			first = false;
		}
	}
	else
	{
		for(var i = 0; i < fields[event.source.name]["rules"].length; i++)
		{
			var rule = fields[event.source.name]["rules"][i];
			rulesArr.push(rule);
		}
	}
	
	
	// execute rules sorted in next event for that the rules can change the actual edited value
	doRules(rulesArr);
}

function calculateField(field)
{
	var changedValue = false;
	if(fields[field.name]["expression"] != undefined)
	{	
		CANCEL_CALCULATION = false;
		CALCULATE_RULES = false;
		CALCULATION_ONE_FILLED = false;
		CALCULATION_ALL_FILLED = true;
		CALCULATION_WITH_FIELD = false;
		
		var evaluated = fields[field.name]["expression"]();
		if (CANCEL_CALCULATION)
		{
			if (field.value != "")
			{
				field.value = "";
				changedValue = true;
			}
		}
		
		else if (CALCULATION_WITH_FIELD == true &&
				((fields[field.name]["expressionBehavior"] == 0 && CALCULATION_ALL_FILLED == false) || (fields[field.name]["expressionBehavior"] == 1 && CALCULATION_ONE_FILLED == false)))
		{
			// handle behavior if empty fields
			if (field.value != "")
			{
				field.value = "";
				changedValue = true;
			}
		}
		else
		{
			var newValue;
			if (typeof(evaluated) == 'number')
				newValue = formatNumber(evaluated, "0.#########");
			else
				newValue = evaluated;
				
			if (newValue != field.value)
			{
				field.value = newValue;
				changedValue = true;
			}
		}
	}
	return changedValue;
}

function generateDoRules(field)
{
	var rulesArr = new Array();
	for(var i = 0; i < fields[field.name]["rules"].length; i++)
	{
		var rule = fields[field.name]["rules"][i];
		rulesArr.push(rule);
	}
	doRules(rulesArr);
}

function arrayContains(arr, val)
{
	for(var i = 0; i < arr.length; i++)
	{
		if(arr[i] == val) return true;
	}

	return false;
}

function generateBlurEvent(field)
{
	var dummyEvent = new Object();
	var fieldValue = field.value;
	dummyEvent.target = field;
	dummyEvent.name = "Blur";
	handleEvent(dummyEvent);
}

function generateValidateEvent(field)
{
	var dummyEvent = new Object();
	var fieldValue = field.value;
	
	generateOnlyValidateEvent(field);
	dummyEvent.target = field;
	dummyEvent.name = "Calculate";
	dummyEvent.source = field;
	handleEvent(dummyEvent)
	calculateField(field);
	dummyEvent.name = "Blur";
	handleEvent(dummyEvent);
}

function generateOnlyValidateEvent(field)
{
	var dummyEvent = new Object();
	var fieldValue = field.value;
	// take the display value for combobox fields
	if (field.type == "combobox")
	{
		var index = field.currentValueIndices;
		
		if (index != -1)
		{
			var name = field.getItemAt(index, false);
			if (name != undefined)
				fieldValue = name;
		}
	}
	
	dummyEvent.name = "Validate";
	dummyEvent.target = field;
	dummyEvent.value = fieldValue;
	handleEvent(dummyEvent);
	
	// set field value if validate has changed value
	if (dummyEvent.value+"" != fieldValue+"")
	{
		ignoreAllEvents = true;
		field.value = dummyEvent.value;
		ignoreAllEvents = false;
	}
	else if (field.type != "combobox")
	{
		ignoreAllEvents = true;
		field.value = field.value;
		ignoreAllEvents = false;
	}
}

function initForm()
{
	//this.delay = true;
	this.calculate = false;
	IN_INIT = true;
	
	for(var k in fields)
	{
		var field = this.getField(k);

		if(field != undefined)
		{
			if (field.type != "checkbox")
			{
				generateOnlyValidateEvent(field);
			}
			else
			{
				// only validate check box group one time
				if (fields[field.name] != undefined && fields[field.name]["cbGroup"] != undefined && fields[field.name]["cbGroup"] != "")
				{
					var cbGroup = fields[field.name]["cbGroup"];
					if (CACHED_CB_GROUPS[cbGroup] == undefined)
						CACHED_CB_GROUPS[cbGroup] = new Array();
					
					CACHED_CB_GROUPS[cbGroup].push(field);
				}
				else
					generateOnlyValidateEvent(field);
			}
		}
	}
	
	// validate check box groups
	for (var group in CACHED_CB_GROUPS)
	{
		if (validateCbGroup != undefined)
		{
			validateCbGroup(CACHED_CB_GROUPS[group], undefined);
		}
	}
	
	for (var i = 0; i < openCalcOrderList.length; i ++)
	{
		var fieldId = openCalcOrderList[i];
		var field = getFieldById(fieldId);
		if (field == undefined) continue;
		
		ignoreAllEvents = true;
		var changed = calculateField(field);
		ignoreAllEvents = false;
		if (changed)
		{
			generateOnlyValidateEvent(field);
			customValidateAllFields(field.name);
		}
	}
	
	for(var k in fields)
	{
		var field = this.getField(k);

		if(field != undefined)
		{
			generateDoRules(field);
			if (field.type != "checkbox")
				generateBlurEvent(field);
			else
			{
				if (!(fields[field.name] != undefined && fields[field.name]["cbGroup"] != undefined && fields[field.name]["cbGroup"] != ""))
					generateBlurEvent(field);
			}
		}
	}
	
	IN_INIT = false;
	
	focusFirstField();
	
	this.calculate = true;
	//this.delay = false;
}

function focusFirstField()
{
	var firstFieldName = formProperties["firstField"];

	if(fields[firstFieldName] != undefined)
	{
		var field = this.getField(firstFieldName);

		if(field != undefined)
		{
			field.setFocus();
		}
	}
}

function willPrint()
{
	ignoreAllEvents = true;
	for(var k in fields)
	{
		var field = this.getField(k);
		
		if (fields[k]["_empty"] == true && fields[k]["nullText"] != undefined && fields[k]["nullText"] != "")
		{
			field.value = "";
		}
	}
	ignoreAllEvents = false;
	
	for(var k in fields)
	{
		var field = this.getField(k);
		field.fillColor = fields[field.name]["backgroundColor"];
	}
	
	var formEmpty = isFormEmpty();
	
	var generateDm = false;
	if (!formEmpty)
	{
		generateDm = true;
		
		var result = checkForm();
		if(result != undefined)
		{
			if (!formProperties.alwaysAllowPrint)
			{
				if (formProperties.printShowMessage)
				{
					app.alert(formProperties.printShowMessageText);
				}
				if (formProperties.printShowHiddenField && formProperties.printHiddenField != undefined && formProperties.printHiddenField != "")
				{
					var field = getField(formProperties.printHiddenField);
					if (field != undefined)
					{
						printHiddenFieldOriginalDisplay = field.display;
						field.display = display.noView;
					}
				}
			}
			result.setFocus();
			
			generateDm = formProperties.printGenerateDataMatrix;
		}
	}
	
	if(dmArray.length > 0)
	{
		if (generateDm == true)
			calcBarcode(dmArray);
		else
			clearBarcode(dmArray);
	}
	
	ignoreAllEvents = true;
}

function didPrint()
{
	ignoreAllEvents = false;
	
	var dummyEvent = new Object();

	// null text
	for(var k in fields)
	{
		var field = this.getField(k);
		if (fields[k]["_empty"] == true && fields[k]["nullText"] != undefined && fields[k]["nullText"] != "")
		{
			field.value = "";
		}
	}

	for(var k in fields)
	{
		var field = this.getField(k);

		if(field != undefined)
		{
			dummyEvent.target = field;
			dummyEvent.value = field.value;
			dummyEvent.name = "Blur";
			handleEvent(dummyEvent);
		}
	}
	
	if (!formProperties.alwaysAllowPrint)
	{
		if (formProperties.printShowHiddenField && formProperties.printHiddenField != undefined && formProperties.printHiddenField != "" && printHiddenFieldOriginalDisplay != undefined)
		{
			var field = getField(formProperties.printHiddenField);
			if (field != undefined)
			{
				field.display = printHiddenFieldOriginalDisplay;
			}
		}
	}
	
	printHiddenFieldOriginalDisplay = undefined;
}

function checkForm()
{
	for(var k in fields)
	{
		if(fields[k]["validity"] == INVALID)
		{
			var field = this.getField(k);

			if(field.display == display.visible || field.display == display.noPrint)
			{
				return field;
			}
		}

		if(fields[k]["_empty"] == true && fields[k]["required"])
		{
			var field = this.getField(k);

			if(field.display == display.visible || field.display == display.noPrint)
			{
				return field;
			}
		}

	}

	return undefined;
}

function isFormEmpty()
{
	for(var k in fields)
	{
		var field = this.getField(k);
		if (field.valueAsString != field.defaultValue && !field.readonly)
		{
			return false;
		}
	}
	
	return true;
}
javascript_obj0707_009.js pdf-javascript-stream PDF /JS object 707 at offset 0x4C6AC 10822 bytes
SHA-256: 6bf6a9f966c7e84faccf5e1acbfdf2980a18334f7c940bcfc5fb9e40ee1ba433
Preview script
First 1,000 lines of the extracted script
var locales = new Array();

locales["root"] = new Array();

locales["root"]["percent"] = "%";
locales["root"]["perMill"] = "\u2030";
locales["root"]["exponential"] = "E";
locales["root"]["infinity"] = "\u221e";
locales["root"]["NaN"] = "\ufffd";
locales["root"]["minusSign"] = "-";
locales["root"]["zeroDigit"] = "0";
locales["root"]["decimalSeparator"] = ".";
locales["root"]["groupingSeparator"] = ",";
locales["root"]["digit"] = "#";
locales["root"]["percentFormat"] = "#,##0%";
locales["root"]["shortMonths"] = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", ""];
locales["root"]["months"] = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", ""];
locales["root"]["shortWeekdays"] = ["1", "2", "3", "4", "5", "6", "7"];
locales["root"]["weekdays"] = ["1", "2", "3", "4", "5", "6", "7"];
locales["root"]["minNumberOfDaysInFirstWeek"] = 1;
locales["root"]["firstDayOfWeek"] = "sun";
locales["root"]["eras"] = ["BC", "CE"];
locales["root"]["ampms"] = ["AM", "PM"];
locales["root"]["shortDateFormat"] = "yy/MM/dd";
locales["root"]["mediumDateFormat"] = "yyyy MMM d";
locales["root"]["longDateFormat"] = "yyyy MMMM d";
locales["root"]["fullDateFormat"] = "EEEE, yyyy MMMM dd";
locales["root"]["shortTimeFormat"] = "HH:mm";
locales["root"]["mediumTimeFormat"] = "HH:mm:ss";
locales["root"]["longTimeFormat"] = "HH:mm:ss z";
locales["root"]["fullTimeFormat"] = "HH:mm:ss z";

locales["de"] = new Array();

locales["de"]["decimalSeparator"] = ",";
locales["de"]["groupingSeparator"] = ".";
locales["de"]["shortMonths"] = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez", ""];
locales["de"]["months"] = ["Januar", "Februar", "M\u00e4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember", ""];
locales["de"]["shortWeekdays"] = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
locales["de"]["weekdays"] = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
locales["de"]["minNumberOfDaysInFirstWeek"] = 4;
locales["de"]["firstDayOfWeek"] = "mon";
locales["de"]["eras"] = ["v. Chr.", "n. Chr."];
locales["de"]["ampms"] = ["vorm.", "nachm."];
locales["de"]["shortDateFormat"] = "dd.MM.yy";
locales["de"]["mediumDateFormat"] = "dd.MM.yyyy";
locales["de"]["longDateFormat"] = "d. MMMM yyyy";
locales["de"]["fullDateFormat"] = "EEEE, d. MMMM yyyy";
locales["de"]["fullTimeFormat"] = "H:mm' Uhr 'z";

locales["de-at"] = new Array();

locales["de-at"]["shortMonths"] = ["J\u00e4n", "", "M\u00e4r", "", "", "", "", "", "", "", "", "", ""];
locales["de-at"]["months"] = ["J\u00e4nner", "", "", "", "", "", "", "", "", "", "", "", ""];
locales["de-at"]["longDateFormat"] = "dd. MMMM yyyy";
locales["de-at"]["fullDateFormat"] = "EEEE, dd. MMMM yyyy";
locales["de-at"]["fullTimeFormat"] = "HH:mm' Uhr 'z";

locales["de-ch"] = new Array();

locales["de-ch"]["decimalSeparator"] = ".";
locales["de-ch"]["groupingSeparator"] = "'";

locales["de-li"] = new Array();

locales["de-li"]["decimalSeparator"] = ".";
locales["de-li"]["groupingSeparator"] = "'";

locales["de-de"] = new Array();


locales["de-de"]["shortMonths"] = ["", "", "M\u00e4r", "", "", "", "", "", "", "", "", "", ""];
locales["de-de"]["shortWeekdays"] = ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"];
locales["de-de"]["shortDateFormat"] = "d/MM/yy";
locales["de-de"]["mediumDateFormat"] = "d-MMM-yy";
locales["de-de"]["longDateFormat"] = "d MMMM yyyy";
locales["de-de"]["fullDateFormat"] = "EEEE d MMMM yyyy";
locales["de-de"]["fullTimeFormat"] = "HH 'h' mm 'min' ss 's' z";

locales["en"] = new Array();

locales["en"]["shortMonths"] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ""];
locales["en"]["months"] = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ""];
locales["en"]["shortWeekdays"] = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
locales["en"]["weekdays"] = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
locales["en"]["eras"] = ["BC", "AD"];
locales["en"]["shortDateFormat"] = "M/d/yy";
locales["en"]["mediumDateFormat"] = "MMM d, yyyy";
locales["en"]["longDateFormat"] = "MMMM d, yyyy";
locales["en"]["fullDateFormat"] = "EEEE, MMMM d, yyyy";
locales["en"]["shortTimeFormat"] = "h:mm a";
locales["en"]["mediumTimeFormat"] = "h:mm:ss a";
locales["en"]["longTimeFormat"] = "h:mm:ss a z";
locales["en"]["fullTimeFormat"] = "h:mm:ss a z";

locales["en-be"] = new Array();

locales["en-be"]["decimalSeparator"] = ",";
locales["en-be"]["groupingSeparator"] = ".";
locales["en-be"]["minNumberOfDaysInFirstWeek"] = 4
locales["en-be"]["firstDayOfWeek"] = "mon";
locales["en-be"]["shortDateFormat"] = "dd/MM/yy";
locales["en-be"]["mediumDateFormat"] = "dd MMM yyyy";
locales["en-be"]["longDateFormat"] = "EEE d MMM yyyy";
locales["en-be"]["fullDateFormat"] = "EEEE d MMMM yyyy";
locales["en-be"]["shortTimeFormat"] = "HH:mm";
locales["en-be"]["mediumTimeFormat"] = "HH:mm:ss";
locales["en-be"]["longTimeFormat"] = "HH:mm:ss z";
locales["en-be"]["fullTimeFormat"] = "HH' h 'mm' min 'ss' s 'z";

locales["en-ca"] = new Array();

locales["en-ca"]["minNumberOfDaysInFirstWeek"] = 4;
locales["en-ca"]["shortDateFormat"] = "dd/MM/yy";
locales["en-ca"]["mediumDateFormat"] = "d-MMM-yy";

locales["en-gb"] = new Array();

locales["en-gb"]["firstDayOfWeek"] = "mon";
locales["en-gb"]["shortDateFormat"] = "dd/MM/yyyy";
locales["en-gb"]["mediumDateFormat"] = "d MMM yyyy";
locales["en-gb"]["longDateFormat"] = "d MMMM yyyy";
locales["en-gb"]["fullDateFormat"] = "EEEE, d MMMM yyyy";
locales["en-gb"]["shortTimeFormat"] = "HH:mm";
locales["en-gb"]["mediumTimeFormat"] = "HH:mm:ss";
locales["en-gb"]["longTimeFormat"] = "HH:mm:ss z";
locales["en-gb"]["fullTimeFormat"] = "HH:mm:ss z";

locales["en-ie"] = new Array();

locales["en-ie"]["ampms"] = ["a.m.", "p.m."];
locales["en-ie"]["shortDateFormat"] = "dd/MM/yyyy";
locales["en-ie"]["mediumDateFormat"] = "d MMM yyyy";
locales["en-ie"]["longDateFormat"] = "d MMMM yyyy";
locales["en-ie"]["fullDateFormat"] = "EEEE d MMMM yyyy";
locales["en-ie"]["shortTimeFormat"] = "HH:mm";
locales["en-ie"]["mediumTimeFormat"] = "HH:mm:ss";
locales["en-ie"]["longTimeFormat"] = "HH:mm:ss z";
locales["en-ie"]["fullTimeFormat"] = "HH:mm:ss z";


locales["es"] = new Array();

locales["es"]["decimalSeparator"] = ",";
locales["es"]["groupingSeparator"] = ".";
locales["es"]["shortMonths"] = ["ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic", ""];
locales["es"]["months"] = ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre", ""];
locales["es"]["shortWeekdays"] = ["dom", "lun", "mar", "mi\u00e9", "jue", "vie", "s\u00e1b"];
locales["es"]["weekdays"] = ["domingo", "lunes", "martes", "mi\u00e9rcoles", "jueves", "viernes", "s\u00e1bado"];
locales["es"]["firstDayOfWeek"] = "mon";
locales["es"]["eras"] = ["a.C.", "d.C."];
locales["es"]["shortDateFormat"] = "d/MM/yy";
locales["es"]["mediumDateFormat"] = "dd-MMM-yy";
locales["es"]["longDateFormat"] = "d' de 'MMMM' de 'yyyy";
locales["es"]["fullDateFormat"] = "EEEE d' de 'MMMM' de 'yyyy";
locales["es"]["fullTimeFormat"] = "HH'H'mm''ss\" z";

locales["es-es"] = new Array();

locales["es-es"]["shortDateFormat"] = "dd/MM/yy";
locales["es-es"]["mediumDateFormat"] = "dd/MM/yyyy";
locales["es-es"]["shortTimeFormat"] = "H:mm";
locales["es-es"]["mediumTimeFormat"] = "H:mm:ss";

locales["fr"] = new Array();

locales["fr"]["decimalSeparator"] = ",";
locales["fr"]["groupingSeparator"] = "\u00a0";
locales["fr"]["shortMonths"] = ["janv.", "f\u00e9vr.", "mars", "avr.", "mai", "juin", "juil.", "ao\u00fbt", "sept.", "oct.", "nov.", "d\u00e9c.", ""];
locales["fr"]["months"] = ["janvier", "f\u00e9vrier", "mars", "avril", "mai", "juin", "juillet", "ao\u00fbt", "septembre", "octobre", "novembre", "d\u00e9cembre", ""];
locales["fr"]["shortWeekdays"] = ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."];
locales["fr"]["weekdays"] = ["dimanche","lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"];
locales["fr"]["minNumberOfDaysInFirstWeek"] = 4;
locales["fr"]["firstDayOfWeek"] = "mon";
locales["fr"]["eras"] = ["av. J.-C.", "apr. J.-C."];
locales["fr"]["shortDateFormat"] = "dd/MM/yy";
locales["fr"]["mediumDateFormat"] = "d MMM yy";
locales["fr"]["longDateFormat"] = "d MMMM yyyy";
locales["fr"]["fullDateFormat"] = "EEEE d MMMM yyyy";
locales["fr"]["fullTimeFormat"] = "HH' h 'mm z";

locales["fr-lu"] = new Array();

locales["fr-lu"]["groupingSeparator"] = ".";

locales["fr-be"] = new Array();

locales["fr-be"]["groupingSeparator"] = ".";
locales["fr-be"]["shortDateFormat"] = "d/MM/yy";
locales["fr-be"]["mediumDateFormat"] = "dd-MMM-yy";
locales["fr-be"]["fullTimeFormat"] = "H' h 'mm' min 'ss' s 'z";

locales["fr-ca"] = new Array();

locales["fr-ca"]["firstDayOfWeek"] = "sun";
locales["fr-ca"]["shortDateFormat"] = "yy-MM-dd";
locales["fr-ca"]["mediumDateFormat"] = "yy-MM-dd";
locales["fr-ca"]["fullTimeFormat"] = "HH' h 'mm' min 'ss' s 'z";

locales["fr-ch"] = new Array();

locales["fr-ch"]["decimalSeparator"] = ".";
locales["fr-ch"]["groupingSeparator"] = "'";
locales["fr-ch"]["shortDateFormat"] = "dd.MM.yy";
locales["fr-ch"]["fullDateFormat"] = "EEEE, d MMMM yyyy";
locales["fr-ch"]["fullTimeFormat"] = "HH.mm:ss' h' z";

locales["it"] = new Array();

locales["it"]["decimalSeparator"] = ",";
locales["it"]["groupingSeparator"] = ".";
locales["it"]["shortMonths"] = ["gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "ott", "nov", "dic", ""];
locales["it"]["months"] = ["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre", ""];
locales["it"]["shortWeekdays"] = ["dom", "lun", "mar", "mer", "gio", "ven", "sab"];
locales["it"]["weekdays"] = ["domenica", "luned\u00ec", "marted\u00ec", "mercoled\u00ec", "gioved\u00ec", "venerd\u00ec", "sabato"];
locales["it"]["minNumberOfDaysInFirstWeek"] = 4;
locales["it"]["firstDayOfWeek"] = "mon";
locales["it"]["eras"] = ["aC", "dC"];
locales["it"]["ampms"] = ["m.", "p."];
locales["it"]["shortDateFormat"] = "dd/MM/yy";
locales["it"]["mediumDateFormat"] = "dd/MMM/yy";
locales["it"]["longDateFormat"] = "dd MMMM yyyy";
locales["it"]["fullDateFormat"] = "EEEE d MMMM yyyy";

locales["it-it"] = new Array();

locales["it-it"]["longTimeFormat"] = "H:mm:ss z";

locales["it-ch"] = new Array();

locales["it-ch"]["decimalSeparator"] = ".";
locales["it-ch"]["groupingSeparator"] = "'";
locales["it-ch"]["shortDateFormat"] = "dd.MM.yy";
locales["it-ch"]["mediumDateFormat"] = "d-MMM-yy";
locales["it-ch"]["longDateFormat"] = "d MMMM yyyy";
locales["it-ch"]["fullDateFormat"] = "EEEE, d MMMM yyyy";
locales["it-ch"]["fullTimeFormat"] = "HH.mm:ss' h' z";
javascript_obj0708_010.js pdf-javascript-stream PDF /JS object 708 at offset 0x4CEC3 14883 bytes
SHA-256: ed993b061e42f0d90c264d4106c5e16d2bd0ecb1561661c8ebe322aaec26e8fd
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
var inValidate = false;
var validateEvent = undefined;

function fieldValue(id)
{
	var f = getFieldById(id);

	if (f != undefined)
	{
		// check for validity
		var readOnly = false;
		var field = getField(f.name);
		if (field != undefined)
			readOnly = field.readonly;
			
		if (fields[f.name]["fieldType"] == "checkbox")
		{
			return f.value;
		}
		
		var rValue;
		if (fields[f.name]["_value"] != undefined && fields[f.name]["_value"]["type"] != undefined)
		{
			rValue = fields[f.name]["_value"].getValue();
		}
		else if(inValidate && id == fields[validateEvent.target.name]["id"])
		{
			rValue = validateEvent.value;
		}
		else if (fields[f.name]["fieldType"] == "combobox")
		{
			rValue = f.valueAsString;
			if (rValue == COMBOBOX_EMPTY_VALUE)
				rValue = "";
		}
		else
		{
			rValue = f.valueAsString;
		}
		
		if (fields[f.name]["validity"] == INVALID && readOnly == false)
		{
			var invalidityReason = INVALIDITY_REASON_OTHER;
			if (fields[f.name]["_invalidityReason"] != undefined && fields[f.name]["_invalidityReason"] == INVALIDITY_REASON_INPUT)
				invalidityReason = INVALIDITY_REASON_INPUT;

			if (!CALCULATE_RULES && invalidityReason == INVALIDITY_REASON_INPUT)
			{
				CANCEL_CALCULATION = true;
				return "";
			}
			else if (CALCULATE_RULES)
			{
				return rValue;
			}
		}
		
		if (fields[f.name]["_empty"] == true)
		{
			CALCULATION_WITH_FIELD = true;
			CALCULATION_ALL_FILLED = false;
		}
		else
		{
			CALCULATION_WITH_FIELD = true;
			CALCULATION_ONE_FILLED = true;
		}
		
		return rValue;
	}
	else
	{
		return "";
	}
}

function getNumber(n)
{
	if (typeof(n) == 'number')
		return n;
	else
	{
		var number = parseNumber(n);
		if (number == undefined)
			return 0;
		else
			return number;
	}
}

function getDate(date)
{
	if (date instanceof Date)
		return date;
	else
	{
		var d = parseDate(date);
		if (d == undefined)
			return new Date(1970, 0, 1);
		else
			return d.date;
	}	
}

function getTime(time)
{
	if (time instanceof Date)
		return time;
	else
	{
		var d = parseTime(time);
		if (d == undefined)
			return new Date(2008, 0, 1, 0, 0, 0);
		else
			return d;
	}
}

function formatMediumDate(date)
{
	return formatDate(date, cldr["calendar_gregorian"]["dateFormats"]["medium"]);
}

function formatMediumTime(time)
{
	return formatDate(time, cldr["calendar_gregorian"]["timeFormats"]["medium"]);
}

function _format_number(n, pattern)
{
	var s = getNumber(n);
	return formatNumber(s, pattern);
}

function _format_currency(n, currency, formatType, numberPattern, currencyPattern)
{
	var s = getNumber(n);
	return currencyCldr_formatGeneral(s, currency, true, numberPattern, currencyPattern, formatType);
}

function isString(variable)
{
	return typeof(variable) == 'string';
}


function __add(p1, p2)
{
	var isString1 = isString(p1);
	var isString2 = isString(p2);
	if (isString1 && p1 == "") return p2;
	if (isString2 && p2 == "") return p1;
	if (isString1 || isString2) return "" + p1 + p2;
	
	var s1 = getNumber(p1);
	var s2 = getNumber(p2);

	if(isNaN(s1) || isNaN(s2)) return NaN;

	return s1 + s2;
}

function __subtract(p1, p2)
{	
	var s1 = getNumber(p1);
	var s2 = getNumber(p2);

	if(isNaN(s1) || isNaN(s2)) return NaN;

	return s1 - s2;
}

function __multiply(p1, p2)
{
	var s1 = getNumber(p1);
	var s2 = getNumber(p2);

	if(isNaN(s1) || isNaN(s2)) return NaN;

	return s1 * s2;
}

function __divide(p1, p2)
{
	var s1 = getNumber(p1);
	var s2 = getNumber(p2);

	if(isNaN(s1) || isNaN(s2)) return NaN;

	if (s2 == 0) return NaN;
	
	return s1 / s2;
}

function _abs(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;

	return Math.abs(s1);
}

function _acos(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;

	return Math.acos(s1);
}

function _asin(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;

	return Math.asin(s1);
}

function _atan(p1)
{	
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;

	return Math.atan(s1);
}

function _ceil(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
	if(s1 == Number.NEGATIVE_INFINITY) return Number.NEGATIVE_INFINITY;

	return Math.ceil(s1);
}

function _cos(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY) return NaN;
	if(s1 == Number.NEGATIVE_INFINITY) return NaN;

	return Math.cos(s1);
}

function _exp(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
	if(s1 == Number.NEGATIVE_INFINITY) return 0;

	return Math.exp(s1);
}

function _floor(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
	if(s1 == Number.NEGATIVE_INFINITY) return Number.NEGATIVE_INFINITY;

	return Math.floor(s1);
}

function _log(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
	if(s1 == Number.NEGATIVE_INFINITY) return NaN;

	return Math.log(s1);
}

function _max()
{
	/*var p1Empty = isString(p1) && p1 == "";
	var p2Empty = isString(p2) && p2 == "";
	if (p1Empty && !p2Empty) return p2;
	if (p2Empty && !p1Empty) return p1;
	if (p1Empty && p2Empty) return "";
	
	var s1 = getNumber(p1);
	var s2 = getNumber(p2);

	if(isNaN(s1) || isNaN(s2)) return NaN;
	if(s1 == Number.NEGATIVE_INFINITY && s2 != Number.NEGATIVE_INFINITY) return s2;
	if(s2 == Number.NEGATIVE_INFINITY && s1 != Number.NEGATIVE_INFINITY) return s1;
	if(s2 == Number.NEGATIVE_INFINITY && s1 == Number.NEGATIVE_INFINITY) return Number.NEGATIVE_INFINITY;
	if(s1 == Number.POSITIVE_INFINITY || s2 == Number.POSITVE_INFINITY) return Number.POSITIVE_INFINITY;

	return Math.max(s1, s2);*/
	
	var rValue;
	for (var i = 0; i < arguments.length; i ++)
	{
		var pn = arguments[i];
		var isEmpty = isString(pn) && pn == "";
		if (isEmpty)
			continue;
		else
		{
			var number = getNumber(pn);
			if (rValue == undefined || number > rValue)
				rValue = number;
		}
	}
	
	if (rValue == undefined)
		return 0;
	else
		return rValue;
}

function _min()
{
	/*var p1Empty = isString(p1) && p1 == "";
	var p2Empty = isString(p2) && p2 == "";
	if (p1Empty && !p2Empty) return p2;
	if (p2Empty && !p1Empty) return p1;
	if (p1Empty && p2Empty) return "";
	
	var s1 = getNumber(p1);
	var s2 = getNumber(p2);

	if(isNaN(s1) || isNaN(s2)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY && s2 != Number.POSITIVE_INFINITY) return s2;
	if(s2 == Number.POSITIVE_INFINITY && s1 != Number.POSITIVE_INFINITY) return s1;
	if(s2 == Number.POSITIVE_INFINITY && s1 == Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
	if(s1 == Number.NEGATIVE_INFINITY || s2 == Number.NEGATIVE_INFINITY) return Number.NEGATIVE_INFINITY;

	return Math.min(s1, s2);*/
	
	var rValue;
	for (var i = 0; i < arguments.length; i ++)
	{
		var pn = arguments[i];
		var isEmpty = isString(pn) && pn == "";
		if (isEmpty)
			continue;
		else
		{
			var number = getNumber(pn);
			if (rValue == undefined || number < rValue)
				rValue = number;
		}
	}
	
	if (rValue == undefined)
		return 0;
	else
		return rValue;
}

function _average()
{
	var numArguments = 0;
	var sum = 0;
	for (var i = 0; i < arguments.length; i ++)
	{
		var pn = arguments[i];
		if (isString(pn) && pn == "")
			continue;
		else
		{
			numArguments ++;
			sum += getNumber(pn);
		}
	}
	
	if (numArguments > 0)
		return sum / numArguments;
	else
		return 0;
}

function _power(p1, p2)
{
	var s1 = getNumber(p1);
	var s2 = getNumber(p2);

	if(isNaN(s1) || isNaN(s2)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY || s2 == Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
	if(s1 == Number.NEGATIVE_INFINITY) return Number.NEGATIVE_INFINITY;

	return Math.pow(s1, s2);
}

function _random()
{
	return Math.random();
}

function _round(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY) return s1;
	if(s1 == Number.NEGATIVE_INFINITY) return s1;

	return Math.round(s1);
}

function _sin(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY) return NaN;
	if(s1 == Number.NEGATIVE_INFINITY) return NaN;

	return Math.sin(s1);
}

function _sqrt(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY) return Number.POSITIVE_INFINITY;
	if(s1 == Number.NEGATIVE_INFINITY || s1 < 0) return NaN;

	return Math.sqrt(s1);
}

function _tan(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return NaN;
	if(s1 == Number.POSITIVE_INFINITY) return NaN;
	if(s1 == Number.NEGATIVE_INFINITY) return NaN;

	return Math.tan(s1);
}

function _char_at(p1, p2)
{
	var s1 = String(p1);
	var s2 = getNumber(p2);

	if(isNaN(s2)) return "";
	if(s2 == Number.POSITIVE_INFINITY) return "";
	if(s2 == Number.NEGATIVE_INFINITY) return "";

	return s1.charAt(s2);
}

function _charcode_at(p1, p2)
{
	var s1 = String(p1);
	var s2 = getNumber(p2);

	if(isNaN(s2)) return NaN;
	if(s2 == Number.POSITIVE_INFINITY) return NaN;
	if(s2 == Number.NEGATIVE_INFINITY) return NaN;

	return s1.charCodeAt(s2);
}

function _concat()
{
	var numArguments = 0;
	var sum = "";
	for (var i = 0; i < arguments.length; i ++)
	{
		var pn = arguments[i];
		var addStr = String(pn);
		sum += addStr;
	}
	
	return sum;
}

function _from_charcode(p1)
{
	var s1 = getNumber(p1);

	if(isNaN(s1)) return "";
	if(s1 == Number.POSITIVE_INFINITY) return "";
	if(s1 == Number.NEGATIVE_INFINITY) return "";

	return String.fromCharCode(s1);
}

function _index_of(p1, p2, p3)
{
	var s1 = String(p1);
	var s2 = String(p2);
	var s3 = getNumber(p3);

	return s1.indexOf(s2, s3);
}

function _last_index_of(p1, p2)
{
	var s1 = String(p1);
	var s2 = String(p2);

	return s1.lastIndexOf(s2);
}

function _substr(p1, p2, p3)
{
	var s1 = String(p1);
	var s2 = getNumber(p2);
	var s3 = getNumber(p3);

	if(isNaN(s3) || isNaN(s2)) return "";
	if(s3 == Number.POSITIVE_INFINITY || s2 == Number.POSITIVE_INFINITY) return "";
	if(s3 == Number.NEGATIVE_INFINITY || s2 == Number.NEGATIVE_INFINITY) return "";

	return s1.substr(s2, s3);
}

function _substring(p1, p2, p3)
{
	var s1 = String(p1);
	var s2 = getNumber(p2);
	var s3 = getNumber(p3);

	if(isNaN(s3) || isNaN(s2)) return "";
	if(s3 == Number.POSITIVE_INFINITY || s2 == Number.POSITIVE_INFINITY) return "";
	if(s3 == Number.NEGATIVE_INFINITY || s2 == Number.NEGATIVE_INFINITY) return "";

	return s1.substring(s2, s3);
}

function _to_lowercase(p1)
{
	var s1 = String(p1);

	return s1.toLowerCase();
}

function _to_uppercase(p1)
{
	var s1 = String(p1);

	return s1.toUpperCase();
}

function _to_number(p1)
{
	return getNumber(p1);
}

function _length(p1)
{
	var s1 = String(p1);
	
	return s1.length;
}

function _replace(p1, p2, p3)
{
	var s1 = String(p1);
	var s2 = String(p2);
	var s3 = String(p3);
	
	var regExp = new RegExp(s2, "g");
	return s1.replace(regExp, s3);
}

function _if(p1, p2, p3)
{
	var s1 = Boolean(p1);

	if(s1) return p2;
	return p3;
}

function __or(p1, p2)	
{
	return p1 || p2;
}

function __andWithStr(p1, p2)
{
	return p1 && p2;
}

function __equals(p1, p2)
{
	if (p1 == "" && p2 == 0 && typeof(p1) == "string" && typeof(p2) == "number") return false;
	if (p2 == "" && p1 == 0 && typeof(p2) == "string" && typeof(p1) == "number") return false;
	return p1 == p2;
}

function __greaterOrEquals(p1, p2)
{
	return p1 >= p2;
}

function __lessOrEquals(p1, p2)
{
	return p1 <= p2;
}

function __greater(p1, p2)
{
	return p1 > p2;
}

function __less(p1, p2)
{
	return p1 < p2;
}

function __notequals(p1, p2)
{
	return !__equals(p1, p2);
}

function __not(p1)
{
	return !p1;
}

function _format_date(dateStr, pattern)
{
	var date = getDate(dateStr);
	return formatDate(date, pattern);
}

function _format_date_by_type(dateStr, type)
{
	type = getNumber(type);
	
	var pattern;
	switch (type)
	{
		case 0:
			pattern = cldr["calendar_gregorian"]["dateFormats"]["short"];
			break;
		case 1:
			pattern = cldr["calendar_gregorian"]["dateFormats"]["medium"];
			break;
		case 2:
			pattern = cldr["calendar_gregorian"]["dateFormats"]["long"];
			break;
		case 3:
			pattern = cldr["calendar_gregorian"]["dateFormats"]["full"];
			break;
		default:
			pattern = cldr["calendar_gregorian"]["dateFormats"]["medium"];
			break;
	}
	
	var date = getDate(dateStr);
	return formatDate(date, pattern);
}

function _date(p1, p2, p3)
{
	var s1 = getNumber(p1);
	var s2 = getNumber(p2);
	var s3 = getNumber(p3);

	return formatMediumDate(new Date(s1, s2 - 1, s3));
}

function _today()
{
	return formatMediumDate(new Date());
}

function _date2days(dateStr)
{
	var date = getDate(dateStr);
	var time = date.getTime();
	time -= date.getTimezoneOffset() * 60 * 1000;
	return time / (24 * 3600 * 1000);
}

function _days2date(days)
{
	var n = getNumber(days);
	var date = new Date();
	date.setTime(n * 3600 * 24 * 1000);
	return formatMediumDate(date);
}

function _weekday(dateStr)
{
	var date = getDate(dateStr);
	return date.getDay();
}

function _day(dateStr)
{
	var date = getDate(dateStr);
	return date.getDate();
}

function _month(dateStr)
{
	var date = getDate(dateStr);
	return date.getMonth()+1;
}

function _year(dateStr)
{
	var date = getDate(dateStr);
	return date.getFullYear();
}

function _is_leap_year(year)
{
	var n = getNumber(year);
	if (n % 400 == 0) return true;
	else if (n % 100 == 0) return false;
	else if (n % 4 == 0) return true;
	else return false;
}

function _format_time(dateStr, pattern)
{
	var date = getTime(dateStr);
	return formatDate(date, pattern);
}

function _format_time_by_type(dateStr, type)
{
	type = getNumber(type);
	var pattern;
	switch (type)
	{
		case 0:
			pattern = cldr["calendar_gregorian"]["timeFormats"]["short"];
			break
		case 1:
			pattern = cldr["calendar_gregorian"]["timeFormats"]["medium"];
			break;
		default:
			pattern = cldr["calendar_gregorian"]["timeFormats"]["medium"];
			break;
	}
	
	var date = getTime(dateStr);
	return formatDate(date, pattern);
}

function _time(hour, minute, second)
{
	return formatMediumTime(new Date(2000, 0, 1, hour, minute, second));
}

function _time2seconds(timeStr)
{
	var t = getTime(timeStr);
	return (t.getHours() * 60 * 60) + (t.getMinutes() * 60) + t.getSeconds();
}

function _seconds2time(seconds)
{
	seconds = getNumber(seconds);
	var hour = Math.floor(seconds / (60 * 60));
	var minute = Math.floor((seconds - (hour * 60 * 60)) / 60);
	var second = seconds - (hour * 60 * 60) - (minute * 60);
	hour = hour % 24;
	return _time(hour, minute, second);
}

function _now()
{
	var date = new Date();
	var hour = date.getHours();
	var minute = date.getMinutes();
	var second = date.getSeconds();

	return _time(hour, minute, second);
}

function _hour(timeStr)
{
	var t = getTime(timeStr);

	return t.getHours();
}

function _minute(timeStr)
{
	var t = getTime(timeStr);

	return t.getMinutes();
}

function _second(timeStr)
{
	var t = getTime(timeStr);

	return t.getSeconds();
}
javascript_obj0709_011.js pdf-javascript-stream PDF /JS object 709 at offset 0x4D9B5 14156 bytes
SHA-256: 171aac8e2208b35087228e919d8c6b105689701aebd7f411e407cdb6ab3fbd35
Preview script
First 1,000 lines of the extracted script
function GregorianCalendar(year, month, day)
{
	this.set(year, month, day);
}

GregorianCalendar.prototype.gregorianCutover = -12219292800000;
GregorianCalendar.prototype.fields = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
GregorianCalendar.prototype.isSet = [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false];
GregorianCalendar.prototype.isTimeSet = false;
GregorianCalendar.prototype.areFieldsSet = false;
GregorianCalendar.prototype.isLenient = true;
GregorianCalendar.prototype.time = 0;

function _set(year, month, date)
{
	this.isTimeSet = false;
	this.fields[1] = year;
	this.fields[2] = month;
	this.fields[5] = date;
	this.isSet[1] = true;
	this.isSet[2] = true;;
	this.isSet[5] = true;
	this.isSet[3] = false;
	this.isSet[6] = false;
	this.isSet[4] = false;
	this.isSet[7] = false;
	this.isSet[8] = false;
	this.isSet[0] = false;
}
GregorianCalendar.prototype.set = _set;

function _complete()
{
	if(!this.isTimeSet) this.computeTime();
	if(!this.areFieldsSet) this.computeFields();
}
GregorianCalendar.prototype.complete = _complete;

function _get(field)
{
	if(!this.isSet[field]) this.areFieldsSet = false;
	this.complete();
	return this.fields[field];
}
GregorianCalendar.prototype.get = _get;

function _setGregorianChange(date)
{
	this.gregorianCutover = date.getTime();
}
GregorianCalendar.prototype.setGregorianChange = _setGregorianChange;

function _getGregorianChange()
{
	return new Date(this.gregorianCutover);
}
GregorianCalendar.prototype.getGregorianChange = _getGregorianChange;

function _isLeapYear(year)
{
	if((year & 3) != 0) return false;
	if(!_isGregorian(year, 59)) return true;
	return ((year % 100) != 0 || (year % 400) == 0);
}
GregorianCalendar.prototype.isLeapYear = _isLeapYear;

function _getWeekDay(year, dayOfYear)
{
	var greg = _isGregorian(year, dayOfYear);
	var day = (this.getLinearDay(year, dayOfYear, greg)) | 0;
	var weekday = ((day + 5) % 7) | 0;
	if(weekday <= 0) weekday += 7;
	return weekday;
}
GregorianCalendar.prototype.getWeekDay = _getWeekDay;

function _getFirstDayOfMonth(year, month)
{
	var dayCount = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];

	if(month > 11)
	{
		year += (month / 12) | 0;
		month = (month % 12) | 0;
	}

	if(month < 0)
	{
		year += (month / 12) | 0;
		month = (month % 12) | 0;
		
		if(month < 0)
		{
			month += 12;
			year--;
		}
	}

	var dayOfYear = dayCount[month] + 1;
	if(month > 1) if(this.isLeapYear(year)) dayOfYear++;
	var greg = this.isGregorian(year, dayOfYear);
	var day = (this.getLinearDay(year, dayOfYear, greg)) | 0;
	var weekday = ((day + 5) % 7) | 0;
	if(weekday <= 0) weekday += 7;
	return weekday;
}
GregorianCalendar.prototype.getFirstDayOfMonth = _getFirstDayOfMonth;

function _isGregorian(year, dayOfYear)
{
	var relativeDay = (year - 1) * 365 + ((year - 1) >> 2) + dayOfYear - 719162;
	var gregFactor = Math.floor((year - 1) / 400.0) - Math.floor((year - 1) / 100.0);
	return ((relativeDay + gregFactor) * 60 * 60 * 24 * 1000 >= GregorianCalendar.prototype.gregorianCutover);
}
GregorianCalendar.prototype.isGregorian = _isGregorian;

function _nonLeniencyCheck()
{
	var month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	var year = this.fields[1];
	var month = this.fields[2];
	var leap = this.isLeapYear(year) ? 1 : 0;

	if(this.isSet[0] && this.fields[0] != 1 && this.fields[0] != 0) throw "Illegal ERA.";
	if(this.isSet[1] && this.fields[1] < 1) throw "Illegal YEAR.";
	if(this.isSet[2] && (month < 0 || month > 11)) throw "Illegal MONTH.";
	
	if(this.isSet[3])
	{
		var daysInYear = 365 + leap;
		daysInYear += (this.getFirstDayOfMonth(year, 0) - 1);
		var last = this.getFirstDayOfMonth(year, 11) + 4;
		if(last > 7) last -= 7;
		daysInYear += 7 - last;
		var weeks = daysInYear / 7;
		if (this.fields[3] < 1 || this.fields[3] > weeks) throw "Illegal WEEK_OF_YEAR.";
	}

	if(this.isSet[4])
	{
		var weeks = (month == 1 && leap == 0) ? 4 : 5;
		if (this.fields[4] < 1 || this.fields[4] > weeks) throw "Illegal WEEK_OF_MONTH.";
	}

	if(this.isSet[5]) if(this.fields[5] < 1 || this.fields[5] > month_days[month] + ((month == 1) ? leap : 0)) throw "Illegal DAY_OF_MONTH.";
	if(this.isSet[6] && (this.fields[6] < 1 || this.fields[6] > 365 + leap)) throw "Illegal DAY_OF_YEAR.";
	if(this.isSet[7] && (this.fields[7] < 1 || this.fields[7] > 7)) throw "Illegal DAY_OF_WEEK.";

	if(this.isSet[8])
	{
		var weeks = (month == 1 && leap == 0) ? 4 : 5;
		if(this.fields[8] < -weeks || this.fields[8] > weeks) throw "Illegal DAY_OF_WEEK_IN_MONTH.";
	}

	if(this.isSet[9] && this.fields[9] != 0 && this.fields[9] != 1) throw "Illegal AM_PM.";
	if(this.isSet[10] && (this.fields[10] < 0 || this.fields[10] > 11)) throw "Illegal HOUR.";
	if(this.isSet[11] && (this.fields[11] < 0 || this.fields[11] > 23)) throw "Illegal HOUR_OF_DAY.";
	if(this.isSet[12] && (this.fields[12] < 0 || this.fields[12] > 59)) throw "Illegal MINUTE.";
	if(this.isSet[13] && (this.fields[13] < 0 || this.fields[13] > 59)) throw "Illegal SECOND.";
	if(this.isSet[14] && (this.fields[14] < 0 || this.fields[14] > 999)) throw "Illegal MILLISECOND.";
	if(this.isSet[15] && (this.fields[15] < -43200000 || this.fields[15] > 43200000)) throw "Illegal ZONE_OFFSET.";
	if(this.isSet[16] && (this.fields[16] < -43200000 || this.fields[16] > 43200000)) throw "Illegal DST_OFFSET.";
}
GregorianCalendar.prototype.nonLeniencyCheck = _nonLeniencyCheck;

function _computeTime()
{
	var millisInDay = 0; 
	var era = this.fields[0];
	var year = this.fields[1];
	var month = this.fields[2];
	var day = this.fields[5];

	var minute = this.fields[12];
	var second = this.fields[13];
	var millis = this.fields[14];
	var month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	var dayCount = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
	var hour = 0;

	if(!this.isLenient) this.nonLeniencyCheck();

	if(!this.isSet[2] && (!this.isSet[7] || this.isSet[3]))
	{
		// 5: YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
		if(this.isSet[3])
		{
			var first = this.getFirstDayOfMonth(year, 0);
			var offs = 1;
			var daysInFirstWeek = this.getFirstDayOfWeek() - first;
			if(daysInFirstWeek <= 0) daysInFirstWeek += 7;
	
			if (daysInFirstWeek < this.getMinimalDaysInFirstWeek()) offs += daysInFirstWeek;
		  else offs -= 7 - daysInFirstWeek;
		    
			month = 0;
			day = offs + 7 * (this.fields[3] - 1);
			offs = this.fields[7] - this.getFirstDayOfWeek();
	
			if(offs < 0) offs += 7;
			day += offs;
		}
		else
		{
			// 4:  YEAR + DAY_OF_YEAR
			month = 0;
			day = this.fields[6];
		}
	}
	else
	{
		if(this.isSet[7])
		{
			var first = this.getFirstDayOfMonth(year, month);

			// 3: YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
			if (this.isSet[8])
			{
				if(this.fields[8] < 0)
				{
					month++;
					first = this.getFirstDayOfMonth(year, month);
					day = 1 + 7 * (this.fields[8]);
				}
				else day = 1 + 7 * (this.fields[8] - 1);

				var offs = this.fields[7] - first;
				if(offs < 0) offs += 7;
				day += offs;
			}
			else
			{ // 2: YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
				var offs = 1;
				var daysInFirstWeek = this.getFirstDayOfWeek() - first;
				if(daysInFirstWeek <= 0) daysInFirstWeek += 7;

				if(daysInFirstWeek < this.getMinimalDaysInFirstWeek()) offs += daysInFirstWeek;
				else offs -= 7 - daysInFirstWeek;

				day = offs + 7 * (this.fields[4] - 1);
				offs = this.fields[7] - this.getFirstDayOfWeek();
				if(offs <= 0) offs += 7;
				day += offs;
			}
		}

		// 1:  YEAR + MONTH + DAY_OF_MONTH
	}
	if(era == 0 && year > 0) year = 1 - year;

    // rest of code assumes day/month/year set
    // should negative BC years be AD?
    // get the hour (but no check for validity)
	if(this.isSet[10])
	{
		hour = this.fields[10];
		if(this.fields[9] == 1) hour += 12;
	}
	else hour = this.fields[11];

    // Read the era,year,month,day fields and convert as appropriate.
    // Calculate number of milliseconds into the day
    // This takes care of both h, m, s, ms over/underflows.
	var allMillis = (((hour * 60) + minute) * 60 + second) * 1000 + millis;
	day += (allMillis / (24 * 60 * 60 * 1000)) | 0;
	millisInDay = ((allMillis % (24 * 60 * 60 * 1000))) | 0;

	if(month < 0)
	{
		year += (month / 12) | 0;
		month = (month % 12) | 0;
		if(month < 0)
	  {
			month += 12;
			year--;
		}
	}
	if(month > 11)
	{
		year += (month / 12) | 0;
		month = (month % 12) | 0;
	}

	month_days[1] = this.isLeapYear(year) ? 29 : 28;

	while(day <= 0)
	{
		if(month == 0)
		{
			year--;
			month_days[1] = this.isLeapYear(year) ? 29 : 28;
		}
		month = ((month + 11) % 12) | 0;
		day += month_days[month];
	}
	while(day > month_days[month])
	{
		day -= (month_days[month]);
		month = ((month + 1) % 12) | 0;
		if(month == 0)
		{
			year++;
			month_days[1] = this.isLeapYear(year) ? 29 : 28;
		}
	}

    // ok, by here we have valid day,month,year,era and millisinday
	var dayOfYear = dayCount[month] + day - 1; // (day starts on 1)
	if(this.isLeapYear(year) && month > 1) dayOfYear++;

	var relativeDay = (year - 1) * 365 + ((year - 1) >> 2) + dayOfYear - 719162;
	var gregFactor = Math.floor((year - 1) / 400.0) - Math.floor((year - 1) / 100.0);

	if((relativeDay + gregFactor) * 60 * 60 * 24 * 1000 >= this.gregorianCutover) relativeDay += gregFactor;
	else relativeDay -= 2;

	this.time = relativeDay * (24 * 60 * 60 * 1000) + millisInDay;

    // the epoch was a Thursday.
	var weekday = ((relativeDay + 5) % 7) | 0;
	if (weekday <= 0) weekday += 7;
	this.fields[7] = weekday;

    // Time zone corrections.
	//var zone = getTimeZone();
	//var rawOffset = this.isSet[15] ? this.fields[15] : zone.getRawOffset();

	//var dstOffset = this.isSet[16] ? this.fields[16] : (zone.getOffset((year < 0) ? 0 : 1, (year < 0) ? 1 - year : year, month, day, weekday, millisInDay) - zone.getRawOffset());

	//time -= rawOffset + dstOffset;

	this.isTimeSet = true;
}
GregorianCalendar.prototype.computeTime = _computeTime;

function _getLinearDay(year, dayOfYear, gregorian)
{    
	var julianDay = (year - 1) * 365 + ((year - 1) >> 2) + (dayOfYear - 1) - 719162;

	if(gregorian)
	{
		var gregOffset = Math.floor((year - 1) / 400.0) - Math.floor((year - 1) / 100.0);
		return julianDay + gregOffset;
	}
	else julianDay -= 2;
	return julianDay;
}
GregorianCalendar.prototype.getLinearDay = _getLinearDay;

function _calculateDay(fields, day, gregorian)
{
	var weekday = ((day + 5) % 7) | 0;
	if(weekday <= 0) weekday += 7;
	fields[7] = weekday;

    // get a first approximation of the year.  This may be one
    // year too big.
	var year = 1970 + (gregorian ? (((day - 100) * 400) / (365 * 400 + 100 - 4 + 1)) | 0 : (((day - 100) * 4) / (365 * 4 + 1)) | 0);
	if(day >= 0) year++;

	var firstDayOfYear = _getLinearDay(year, 1, gregorian);

    // Now look in which year day really lies.
	if(day < firstDayOfYear)
	{
		year--;
		firstDayOfYear = _getLinearDay(year, 1, gregorian);
	}

	day -= firstDayOfYear - 1; // day of year,  one based.

	fields[6] = (day) | 0;
	if(year <= 0)
	{
		fields[0] = 0;
		fields[1] = 1 - year;
	}
	else
	{
		fields[0] = 1;
		fields[1] = year;
	}

	var leapday = _isLeapYear(year) ? 1 : 0;
	if(day <= 31 + 28 + leapday)
	{
		fields[2] = (day / 32) | 0; // 31->JANUARY, 32->FEBRUARY
		fields[5] = (day - 31 * fields[2]) | 0;
	}
	else
	{
		// A few more magic formulas
		var scaledDay = (((day - leapday) | 0) * 5 + 8) | 0;
		fields[2] = (scaledDay / (31 + 30 + 31 + 30 + 31)) | 0;
		fields[5] = ((scaledDay % (31 + 30 + 31 + 30 + 31)) / 5 + 1) | 0;
	}
}
GregorianCalendar.prototype.calculateDay = _calculateDay;

function _computeFields()
{
	var gregorian = (this.time >= this.gregorianCutover);

	//var zone = getTimeZone();
	this.fields[15] = 0; //zone.getRawOffset();
	var localTime = this.time + this.fields[15];

	var day = (localTime / (24 * 60 * 60 * 1000)) | 0;
	var millisInDay = (localTime % (24 * 60 * 60 * 1000)) | 0;

	if(millisInDay < 0)
	{
		millisInDay += (24 * 60 * 60 * 1000);
		day--;
	}

	this.calculateDay(this.fields, day, gregorian);
	this.fields[16] = 0; //zone.getOffset(this.fields[0], this.fields[1], this.fields[2], this.fields[5], this.fields[7], millisInDay) - this.fields[15];

	millisInDay += this.fields[16];
	if(millisInDay >= 24 * 60 * 60 * 1000)
	{
		millisInDay -= 24 * 60 * 60 * 1000;
		this.calculateDay(this.fields, ++day, gregorian);
 	}

	this.fields[8] = ((this.fields[5] + 6) / 7) | 0;

    // which day of the week are we (0..6), relative to getFirstDayOfWeek
	var relativeWeekday = ((7 + this.fields[7] - this.getFirstDayOfWeek()) % 7) | 0;

	this.fields[4] = ((this.fields[5] - relativeWeekday + 12) / 7) | 0;

	var weekOfYear = ((this.fields[6] - relativeWeekday + 6) / 7) | 0;

    // Do the Correction: getMinimalDaysInFirstWeek() is always in the
    // first week.
	var minDays = this.getMinimalDaysInFirstWeek();
	var firstWeekday = ((7 + this.getWeekDay(this.fields[1], minDays)
                       - this.getFirstDayOfWeek()) % 7) | 0;
	if(minDays - firstWeekday < 1) weekOfYear++;
	this.fields[3] = weekOfYear;

	var hourOfDay = (millisInDay / (60 * 60 * 1000)) | 0;
	this.fields[9] = (hourOfDay < 12) ? 0 : 1;
	var hour = (hourOfDay % 12) | 0;
	this.fields[10] = hour;
	this.fields[11] = hourOfDay;
	millisInDay = (millisInDay % (60 * 60 * 1000)) | 0;
	this.fields[12] = millisInDay / (60 * 1000);
	millisInDay = (millisInDay % (60 * 1000)) | 0;
	this.fields[13] = (millisInDay / (1000)) | 0;
	this.fields[14] = (millisInDay % 1000) | 0;

	this.areFieldsSet = true;
	this.isSet[0] = true;
	this.isSet[1] = true;
	this.isSet[2] = true;
	this.isSet[3] = true;
	this.isSet[4] = true;
	this.isSet[5] = true;
	this.isSet[6] = true;
	this.isSet[7] = true;
	this.isSet[8] = true;
	this.isSet[9] = true;
	this.isSet[10] = true;
	this.isSet[11] = true;
	this.isSet[12] = true;
	this.isSet[13] = true;
	this.isSet[14] = true;
	this.isSet[15] = true;
	this.isSet[16] = true;
}
GregorianCalendar.prototype.computeFields = _computeFields;

function _getFirstDayOfWeek()
{
	return 2;
}
GregorianCalendar.prototype.getFirstDayOfWeek = _getFirstDayOfWeek;

function _getMinimalDaysInFirstWeek()
{
	return 4;
}
GregorianCalendar.prototype.getMinimalDaysInFirstWeek = _getMinimalDaysInFirstWeek;
javascript_obj0710_012.js pdf-javascript-stream PDF /JS object 710 at offset 0x4E755 24495 bytes
SHA-256: 77e9c10fb447358a51ffbd4ef95adfd467377e45937cfea787c5d2848f5d4601
Preview script
First 1,000 lines of the extracted script
String.prototype.leftTrim = function () {
	return (this.replace(/^\s+/,""));
};
String.prototype.rightTrim = function () {
	return (this.replace(/\s+$/,""));
};
//kombiniert "leftTrim" und "rightTrim";
String.prototype.trim = function () {
	return (this.replace(/\s+$/,"").replace(/^\s+/,""));
};
  
// help function for language plural rules, number has to be an integer for that the function returns true
function isIn(number, a, b)
{
	return isWith(number, a, b) && isInteger(number);
}

// help function for language plural rules, all numbers accepted
function isWith(number, a, b)
{
	return number >= a && number <= b;
}

function isInteger(number)
{
	return number % 1 == 0;
}

function getPaddingStr(toPad, numPadding)
{
    if (numPadding <= 0)
        return "";

    var paddingStr = "";

    for (var i = 0; i < numPadding; i ++)
    {
        paddingStr += toPad;
    }
    
    return paddingStr;
}

function padAfter(str, toPad, numPadding)
{
    return str.concat(getPaddingStr(toPad, numPadding));
}

function padBefore(str, toPad, numPadding)
{
    return getPaddingStr(toPad, numPadding).concat(str);
}

/*
formatCurrency

formats a number to a string

params:
    number: the number
          
    pattern: http://www.unicode.org/reports/tr35/tr35-11.html#Number_Format_Patterns
    
    overrideAfterDecimal: (optional) overrides the count of fractional beeing shown

returns:
	the formatted number string
*/

function formatNumber(number, pattern, overrideAfterDecimal)
{
	var parts = splitDateParts(pattern);
	var negativeSubpatternPos = -1;
	for (var i = 0; i < parts.length; i ++)
	{
		if (parts[i].isPattern)
		{
			var index = parts[i].content.indexOf(";")
			if (index != -1)
			{
				var before = parts[i].content.substr(0, index);
				var after = parts[i].content.substr(index+1);
				parts.splice(i, 1, { isPattern: true, content: before}, { isPattern: true, content: after});
				negativeSubpatternPos = i + 1;
				break;
			}
		}
	}
	
	if (negativeSubpatternPos != -1)
	{
		if (number < 0)
		{
			number = -number;
			parts.splice(0, negativeSubpatternPos);
		}
		else
		{
			parts.splice(negativeSubpatternPos, parts.length - negativeSubpatternPos);
		}
	}
	
	var totalStr = "";
	for (var i = 0; i < parts.length; i ++)
	{	
		if (parts[i].isPattern)
		{
			parts[i].content = replaceMinus(parts[i].content)
			if (parts[i].content.indexOf(".") != -1 || parts[i].content.indexOf("0") != -1)
			{
				totalStr += formatNumberIntern(number, parts[i].content, overrideAfterDecimal);
			}
			else
			{
				totalStr += parts[i].content;
			}
		}
		else
		{
			totalStr += parts[i].content;
		}
	}

	return totalStr;
}

function formatNumberIntern(number, pattern, overrideAfterDecimal)
{
    // pattern parsing
    var decimalPointPos = pattern.indexOf(".");
    var hasDecimalPoint = true;
    if (decimalPointPos == -1)
    {
        decimalPointPos = pattern.indexOf("0")+1;
        if (decimalPointPos == -1)
			return n.toString();
        hasDecimalPoint = false;
    }

    var beforeDecimal = "";
    var afterDecimal = "";
    var inNumber = true;
    var i = decimalPointPos - 1;
    var decimalStart = 0;
    var decimalEnd = pattern.length;
    while (inNumber && i >= 0)
    {
        var ch = pattern.charAt(i);
        if (ch != '#' && ch != '0' && ch != ',')
        {
            inNumber = false;
            decimalStart = i+1;
            break;
        }
        beforeDecimal = ch + beforeDecimal;
        i--;
    }
    inNumber = true;
    i = decimalPointPos + 1;
    if (hasDecimalPoint)
    {
        while (inNumber && i < pattern.length)
        {
            var ch = pattern.charAt(i);
            if (ch != '#' && ch != '0')
            {
                inNumber = false;
                decimalEnd = i;
                break;
            }
            afterDecimal += ch;
            i++;
        }
    }
    else
    {
        decimalEnd = decimalPointPos;
        afterDecimal = "";
    }
    var minIntegerLength = 0;
    for (var i = 0; i < beforeDecimal.length; i ++)
    {
        if (beforeDecimal.charAt(i) == '0')
            minIntegerLength ++;
    }
    var firstGroupingLength = 0;
    var secondGroupingLength = 0;
    var first = true;
    var currCounter = 0;
    for (var i = beforeDecimal.length-1; i >= 0; i --)
    {
        if (beforeDecimal.charAt(i) == ',')
        {
            if (first)
            {
                firstGroupingLength = currCounter;
                first = false;
            }
            else
            {
                secondGroupingLength = currCounter - firstGroupingLength;
                break;
            }
        }
        else
            currCounter ++;
    }
    var minFractionalLength = 0;
    var maxFractionalLength = 0;
    for (var i = 0; i < afterDecimal.length; i ++)
    {
        if (afterDecimal.charAt(i) == '0')
            minFractionalLength ++;
        else if (afterDecimal.charAt(i) == '#')
            maxFractionalLength ++;
    }
    
    maxFractionalLength = maxFractionalLength + minFractionalLength;

	if (overrideAfterDecimal != null)
		minFractionalLength = maxFractionalLength = overrideAfterDecimal;
		
	// formatting
    var output = "";
    output += pattern.substr(0, decimalStart);
    var outputAfterNumber = pattern.substr(decimalEnd);

    var outputBeforeDecimal = "";
    var numberBeforeDecimal = number.toFixed(maxFractionalLength)*1;
    var doGroup = true;
    
	// handle NaN
	if (number == NaN)
	{
		doGroup = false;
		numberBeforeDecimal = cldr.numbers_symbols.nan;
	}
	else if (number == Number.POSITIVE_INFINITY || number == Number.NEGATIVE_INFINITY)
	{
		doGroup = false;
		numberBeforeDecimal = cldr.numbers_symbols.infinity;
	}
	
    var negative = false;
    if (numberBeforeDecimal < 0)
    {
        numberBeforeDecimal = -numberBeforeDecimal;
        negative = true;
    }
	
    outputBeforeDecimal = numberBeforeDecimal.toString();
    var dotIndexBefore = outputBeforeDecimal.indexOf(".");
    if (dotIndexBefore != -1)
		outputBeforeDecimal = outputBeforeDecimal.substr(0, dotIndexBefore);
			
    outputBeforeDecimal = padBefore(outputBeforeDecimal, "0", minIntegerLength - outputBeforeDecimal.length);

    if (firstGroupingLength != 0 && doGroup)
    {
        if (secondGroupingLength != 0)
        {
            var added = 0;
            var groupingLength = firstGroupingLength;
            for (var i = 0; i < outputBeforeDecimal.length; i ++)
            {
                if ((i - added) % groupingLength == 0 && i != 0)
                {
                    outputBeforeDecimal = stringInsert(outputBeforeDecimal, cldr.numbers_symbols.group, outputBeforeDecimal.length - i);
                    i ++;
                    added ++;
                    groupingLength = secondGroupingLength;
                }
            } 
        }
        else
        {
            var added = 0;
            for (var i = 0; i < outputBeforeDecimal.length; i ++)
            {
                if ((i - added) % firstGroupingLength == 0 && i != 0)
                {
                    outputBeforeDecimal = stringInsert(outputBeforeDecimal, cldr.numbers_symbols.group, outputBeforeDecimal.length - i);
                    i ++;
                    added ++;
                }
            }
        }
    }
    if (negative)
        outputBeforeDecimal = cldr.numbers_symbols.minusSign.concat(outputBeforeDecimal);

    var outputAfterDecimal = "";
    if ((hasDecimalPoint && number.toString().indexOf(".") != -1) || (minFractionalLength > 0 && number != Number.NaN && number != Number.POSITIVE_INFINITY && number != Number.NEGATIVE_INFINITY))
    {
        outputAfterDecimal += cldr.numbers_symbols.decimal;
        var fractional = numberBeforeDecimal.toString();
        var dotIndex = fractional.indexOf(".");
        if (dotIndex == -1)
			fractional = "";
        else
			fractional = fractional.substr(dotIndex + 1);
        
        var nullIndex = -1;
        do
        {
			if (nullIndex != -1)
				fractional = stringRemove(fractional, nullIndex);
			
			nullIndex = fractional.indexOf("0");
			if (nullIndex != -1)
			{
				var doRemove = true;
				for (var i = fractional.length-1; i > nullIndex; i --)
				{
					if (fractional.charAt(i) != "0")
						doRemove = false;
				}
				
				if (!doRemove)
					nullIndex = -1;
			}
        }
        while (nullIndex != -1)
			
        var padding = padAfter(fractional, "0", minFractionalLength - fractional.length);
        fractional = padding;
        if (fractional == "")
			outputAfterDecimal = "";
		else
			outputAfterDecimal += fractional;
    }

    output = removeQuotes(output);
    outputAfterNumber = removeQuotes(outputAfterNumber);

    return output.concat(outputBeforeDecimal).concat(outputAfterDecimal).concat(outputAfterNumber);
}

function stringInsert(str, toInsert, pos)
{
    return str.substr(0, pos).concat(toInsert).concat(str.substr(pos));
}

function stringRemove(str, pos)
{
	return str.substr(0, pos).concat(str.substr(pos+1));
}

function replaceMinus(str)
{
    var splitted = str.split("-");
    if (splitted.length == 0) return str;
    if (splitted.length == 1) return str;

    var totalStr = "";
    for (var i = 0; i < splitted.length; i ++)
    {
        if (i == 0)
            totalStr = totalStr.concat(splitted[i]);
        else
            totalStr = totalStr.concat(cldr.numbers_symbols.minusSign).concat(splitted[i]);
    }

    return totalStr;
}

function removeQuotes(str)
{
    var arr = str.split("'");
    if (arr.length == 0)
        return str;
    var beforeDoubleQuoted = false;
    var totalStr = "";
    for (var i = 0; i < arr.length; i ++)
    {
        // if double quoted, the result is a quote
        if (arr[i] == "" && !beforeDoubleQuoted && i != arr.length -1)
        {
            arr[i] = "'";
            beforeDoubleQuoted = true;
        }
        else
            beforeDoubleQuoted = false;

        totalStr = totalStr.concat(arr[i]);
    }

    return totalStr;
}

var parsingInitialized = false;
var regExpDots = null;
var regExpDotsReplace = "$2$4$5$7$8$10$11$12$14$15$16$17";
var spaceClass = /\s/;
var spaceDotClass = null;
var wordClass = /[\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u01ba\u01bc-\u01bf\u01c4\u01c6\u01c7\u01c9\u01ca\u01cc-\u01f1\u01f3-\u021f\u0222-\u0233\u0250-\u02ad\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03ce\u03d0-\u03d7\u03da-\u03f3\u0400-\u0481\u048c-\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0-\u04f5\u04f8\u04f9\u0531-\u0556\u0561-\u0587\u10a0-\u10c5\u1e00-\u1e9b\u1ea0-\u1ef9\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fbb\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcb\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffb\u207f\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2131\u2133\u2134\u2139\ufb00-\ufb06\ufb13-\ufb17\uff21-\uff3a\uff41-\uff5a]/;
var numberClass = null;
var numberClassDate = null;
var minusClass = /[-\u2212]/;
var digitClass = /[\d\u221e]/;
var decimalClass = null;
var cachedCldr = new Array();
cachedCldr["currencies"] = new Array();
cachedCldr["calendar"] = new Array();
var currencySymbolClass = /[\u0024\u00a3\u00a5\u20b4\u0e3f]/;

cachedCldr["calendar"]["months_format"] = new Array();
cachedCldr["calendar"]["months_stand_alone"] = new Array();
cachedCldr["calendar"]["months_format"]["wide"]= new Array();
cachedCldr["calendar"]["months_format"]["abbreviated"]= new Array();
cachedCldr["calendar"]["months_format"]["narrow"]= new Array();
cachedCldr["calendar"]["months_stand_alone"]["wide"]= new Array();
cachedCldr["calendar"]["months_stand_alone"]["abbreviated"]= new Array();
cachedCldr["calendar"]["months_stand_alone"]["narrow"]= new Array();

cachedCldr["calendar"]["days_format"] = new Array();
cachedCldr["calendar"]["days_stand_alone"] = new Array();
cachedCldr["calendar"]["days_format"]["wide"]= new Array();
cachedCldr["calendar"]["days_format"]["abbreviated"]= new Array();
cachedCldr["calendar"]["days_format"]["narrow"]= new Array();
cachedCldr["calendar"]["days_stand_alone"]["wide"]= new Array();
cachedCldr["calendar"]["days_stand_alone"]["abbreviated"]= new Array();
cachedCldr["calendar"]["days_stand_alone"]["narrow"]= new Array();

cachedCldr["calendar"]["relative_days"] = new Array();
cachedCldr["calendar"]["months_all"] = new Array();
cachedCldr["calendar"]["months_all"]["_1"] = new Array();
cachedCldr["calendar"]["months_all"]["_2"] = new Array();
cachedCldr["calendar"]["months_all"]["_3"] = new Array();
cachedCldr["calendar"]["months_all"]["_4"] = new Array();
cachedCldr["calendar"]["months_all"]["_5"] = new Array();
cachedCldr["calendar"]["months_all"]["_6"] = new Array();
cachedCldr["calendar"]["months_all"]["_7"] = new Array();
cachedCldr["calendar"]["months_all"]["_8"] = new Array();
cachedCldr["calendar"]["months_all"]["_9"] = new Array();
cachedCldr["calendar"]["months_all"]["_10"] = new Array();
cachedCldr["calendar"]["months_all"]["_11"] = new Array();
cachedCldr["calendar"]["months_all"]["_12"] = new Array();
cachedCldr["calendar"]["days_all"] = new Array();
cachedCldr["calendar"]["days_all"]["sun"] = new Array();
cachedCldr["calendar"]["days_all"]["mon"] = new Array();
cachedCldr["calendar"]["days_all"]["tue"] = new Array();
cachedCldr["calendar"]["days_all"]["wed"] = new Array();
cachedCldr["calendar"]["days_all"]["thu"] = new Array();
cachedCldr["calendar"]["days_all"]["fri"] = new Array();
cachedCldr["calendar"]["days_all"]["sat"] = new Array();

for (var currencyName in cldr["numbers_currencies"])
{
	cachedCldr["currencies"][currencyName]= new Array();
	cachedCldr["currencies"][currencyName]["symbols"] = new Array();
}

function getCached(cacheObj, originalObj)
{
	if (cacheObj == null)
	{
		cacheObj = splitChoicePattern(originalObj);
		for (var i = 0; i < cacheObj.length; i ++)
		{
			cacheObj[i] = splitString(cacheObj[i], currencySymbolClass);
			for (var j = 0; j < cacheObj[i].length; j ++)
			{
				if (cacheObj[i][j].content == "")
					cacheObj[i][j] = null;
				else
				{
					var regExpFull = new RegExp(escapeRegexpString(cacheObj[i][j].content));
					var regExpPartly = buildPartlyRegexp(cacheObj[i][j].content);
					cacheObj[i][j] = { full : regExpFull, partly : regExpPartly };
				}
			}
		}
	}
	
	return cacheObj;
}

function buildPartlyRegexp(str)
{
	var regExpString = "";
	for (var i = 0; i < str.length; i ++)
	{
		regExpString += escapeRegexpString(str.substr(0, str.length - i));
		if (i != str.length - 1)
			regExpString += "|";
	}
	
	return new RegExp(regExpString);
}

function escapeRegexpString(str)
{
	str = str.replace(/\[/, "\\[");
	str = str.replace(/\\/, "\\\\");
	str = str.replace(/\^/, "\\^");
	str = str.replace(/\$/, "\\$");
	str = str.replace(/\./, "\\.");
	str = str.replace(/\|/, "\\|");
	str = str.replace(/\?/, "\\?");
	str = str.replace(/\*/, "\\*");
	str = str.replace(/\+/, "\\+");
	str = str.replace(/\(/, "\\(");
	str = str.replace(/\)/, "\\)");
	return str;
}

function splitChoicePattern(choicePattern)
{
	if (choicePattern == null)
		return new Array("");
		
	// look for a choice pattern
	if (choicePattern.indexOf("|") != -1)
	{
		var resultArray = new Array();
		var choices = choicePattern.split('|');
		
		// match from right to left
		for (var i = choices.length-1; i >= 0; i --)
		{
			var relationPos = choices[i].search(/[\u2264<]/);
			var resultString; 
			if (relationPos == -1) resultString = choices[i];
			else resultString = choices[i].substr(relationPos+1);
			
			resultArray.push(resultString);
		}
		
		return resultArray;
	}
	else
	{
		return new Array(choicePattern);
	}
}

function initializeParsing()
{
	if (parsingInitialized) return;
	
	// decimal set
	var decimalSetFull = new Array(",", ".");
	var decimalSet = new Array();
	
	// remove seperator from decimal set list
	for (var i = 0; i < decimalSetFull.length; i ++)
	{
		if (decimalSetFull[i] != cldr.numbers_symbols.group)
			decimalSet.push(decimalSetFull[i]);
	}
	
	
	// remove all dots except the decimal dot
	var decimalSetStr = "";
	for (var i = 0; i < decimalSet.length; i ++)
	{
		var charCode = decimalSet[i].charAt();
		decimalSetStr += charCode;
	}
	decimalClass = new RegExp("[" + decimalSetStr + "]");
	spaceDotClass = new RegExp("[" + decimalSetStr + "\\s]");
	
	var regExpString = "(([^\\d.])([" + decimalSetStr + "]+)([^\\d.])|([\\d])([" + decimalSetStr + "]+)([^\\d.])|([^.\\d])([" + decimalSetStr + "]+)([\\d])|(\\d)([" + decimalSetStr + "])([" + decimalSetStr + "]{1,})(\\d)|^(.)[" + decimalSetStr + "]+(\\d)|^[" + decimalSetStr + "]+(\\D)|[" + decimalSetStr + "]+$)";
	var regExp = new RegExp(regExpString, "g");
	regExpDots = regExp;
	
	// number class (digit, dot, sign)
	var minusSetStr = "-\u2212";
	
	numberClass = new RegExp("[" + minusSetStr + decimalSetStr + "\\d\u221e]");
	numberClassDate = new RegExp("[\\d]");
	parsingInitialized = true;
}

// repeates a replacement unless no more matches
function replaceRepeat(str, regExp, regExpReplace)
{
	var i = 0;
	while (str.match(regExp))
	{
		if (i >= 100) break;
		str = str.replace(regExpDots, regExpReplace);
		i ++;
	}
	
	return str;
}

/*
normalizeString

normalizes a string as specified in http://www.unicode.org/reports/tr35/tr35-11.html#Lenient_Parsing -> O.2 Loose Matching

params:
    str: string to normalize

returns:
	normalized string
*/
function normalizeString(str)
{
	initializeParsing();
	
	// remove control chars
	str = str.replace(/\n|\t|\0|\f|\r|\v/g, "");
	
	// remove dots
	//str = replaceRepeat(str, regExpDots, regExpDotsReplace);

	// case folding
	str = str.toLowerCase();
	
	// do mapping
	var resultString = "";
	for (var i = 0; i < str.length; i ++)
	{	
		var ch = str.charAt(i);
		var map = charMapping[ch];
		if (map != null)
			resultString += map;
		else
			resultString += ch
	}
	
	resultString = resultString.toLowerCase();
	
	return resultString;
}

function removeChar(str, pos)
{
	return str.substr(0, pos).concat(str.substr(pos+1));
}

function splitString(str, currencySymbolsClass, isDate)
{
	str = normalizeString(str);
	
	var resultArray = new Array();
	
	var myNumberClass = isDate ? numberClassDate : numberClass;
	
	// state
	// 0: none
	// 1: in number
	// 2: in word
	var state = 0;
	
	var currentPart;
	for (var i = 0; i < str.length; i ++)
	{
		var currentChar = str.charAt(i);
		var exiting = false;
		var exitPart;
		var exitState = state;
		
		switch (state)
		{
			case 0: // none
				if (currentChar.match(myNumberClass))
				{
					currentPart = "" + currentChar;
					state = 1;
				}
				else if (matchWord(currentChar, currencySymbolsClass))
				{
					currentPart = "" + currentChar;
					state = 2;
				}
				
				break;
			
			case 1: // number
				if (currentChar.match(myNumberClass))
				{
					currentPart += "" + currentChar;
				}
				else if (currentChar.match(spaceClass) && isDate == true)
				{
					exiting = true;
					exitPart = currentPart;
					state = 0;
				}
				else if (matchWord(currentChar, currencySymbolsClass))
				{
					exiting = true;
					exitPart = currentPart;
					currentPart = "" + currentChar;
					state = 2;
				}
				else
				{
					if (isDate)
					{
						exiting = true;
						exitPart = currentPart;
						state = 0;
					}
				}
				break;
				
			case 2: // word
				if (matchWord(currentChar, currencySymbolsClass))
				{
					currentPart += "" + currentChar;
				}
				else if (currentChar.match(spaceClass))
				{
					exiting = true;
					exitPart = currentPart;
					state = 0;
				}
				else if (currentChar.match(myNumberClass))
				{
					exiting = true;
					exitPart = currentPart;
					currentPart = "" + currentChar;
					state = 1;
				}
				else
				{
					if (isDate)
					{
						exiting = true;
						exitPart = currentPart;
						state = 0;
					}
				}
				break;
			
			default: break;
		}
		
		if (exiting)
		{
			addToArr(resultArray, exitState, exitPart);
		}
	}
	
	if (state != 0)
	{
		addToArr(resultArray, state, currentPart);
	}
	
	return resultArray;
}

function matchWord(ch, currencySymbolsClass)
{
	if (ch.match(wordClass)) return true;
	if (currencySymbolsClass != null)
		return ch.match(currencySymbolsClass);
}

function addToArr(arr, state, part)
{
	if (state == 1)
	{
		if (!part.match(digitClass)) return;
	}
	
	arr.push({ type : state, content : part });
}
/*
parseNumber

parses a number as specified in http://www.unicode.org/reports/tr35/tr35-11.html#Lenient_Parsing -> O.3 Parsing numbers

params:
    str: string to parse

returns:
	number
*/
function parseNumber(str)
{
	// convert always to string
	str = str + "";
	
	// split in all parts
	var parts = splitString(str, null, false);
	
	return toNumber(parts);
}

function toNumber(parts)
{
	// take the first number of all parts
	var numberStr = null;
	for (var i = 0; i < parts.length; i ++)
	{
		if (parts[i].type == 1)
		{
			numberStr = parts[i].content;
			break;
		}
	}
	
	if (numberStr == null)
	{
		return null;
	}
	
	if (numberStr.match(/[\u221e]/))
	{
		return Number.POSITIVE_INFINITY;
	}
	
	// determine if negative
	var negative = false;
	if (numberStr.match(minusClass))
		negative = true;
	
	// take the last decimal point
	var afterDecimal = "";
	var beforeDecimal = "";
	var isAfterDecimal = true;
	for (var i = numberStr.length-1; i >= 0; i --)
	{
		var currentChar = numberStr.charAt(i);
		
		// take the last decimal sign
		if (isAfterDecimal && afterDecimal != "")
			if (currentChar.match(decimalClass))
				isAfterDecimal = false;
		
		if (currentChar.match(digitClass))
		{
			if (isAfterDecimal)
				afterDecimal = currentChar + afterDecimal;
			else
				beforeDecimal = currentChar + beforeDecimal;
		}
	}
	
	var resultNumber;
	if (beforeDecimal == "" && isAfterDecimal == true)
		resultNumber = parseInt(afterDecimal, 10);
	else if (beforeDecimal == "" && isAfterDecimal == false)
		resultNumber = parseFloat("0." + afterDecimal, 10);
	else
		resultNumber = parseFloat(beforeDecimal + "." + afterDecimal, 10);
	
	return negative ? -resultNumber : resultNumber;
}

function matchWithNames(parts, currency, nameArr, matchFull, matchAllParts, doRemoveFoundParts, whereFound)
{
	for (var j = 0; j < nameArr.length; j ++)
	{
		if (matchArrOnParts(nameArr[j], parts, matchFull, matchAllParts, doRemoveFoundParts, whereFound))
		{
			return currency;
		}
	}
	
	return null;
}

function matchArrOnParts(arr, parts, matchFull, matchAllParts, doRemoveFoundParts, whereFound)
{
	if (doRemoveFoundParts == null)
		doRemoveFoundParts = false;
		
	var foundArr = new Array();
	var removeArr = new Array();
	for (var i = 0; i < arr.length; i ++)
	{
		var found = false;
		var regExp = matchFull ? arr[i].full : arr[i].partly;
		for (var j = 0; j < parts.length; j ++)
		{
			if (parts[j].type == 2)
			{
				if (regExp != null)
				{
					if (parts[j].content.match(regExp) == parts[j].content)
					{
						found = true;
						
						// remove found parts if necessary
						if (doRemoveFoundParts)
						{
							parts.splice(j, 1);
						}
						
						if (whereFound != null)
						{
							if (whereFound.value == -1)
							{
								whereFound.value = j;
							}
						}
						break;
					}
				}
			}
		}
		
		if (found)
			foundArr[i] = true;
		else
			foundArr[i] = false;
	}
	
	if (arr.length == 0) return false;
	
	if (matchAllParts)
	{
		for (var i = 0; i < foundArr.length; i ++)
		{
			if (foundArr[i] == false)
				return false;
		}
	
		return true;
	}
	else
	{
		for (var i = 0; i < foundArr.length; i ++)
		{
			if (foundArr[i] == true)
				return true;
		}
		
		return false;
	}
}
javascript_obj0711_013.js pdf-javascript-stream PDF /JS object 711 at offset 0x4FD6C 2847 bytes
SHA-256: 188a908fa79d1ccbba0b7fd097a9dd6d806a0b6a12816b4d6f1fa830305aed24
Preview script
First 1,000 lines of the extracted script
var charMapping = {"\u00A0":" ","\u00AD":"-","\u00B5":"\u03BC","\u00E6":"ae","\u017F":"s","\u0219":"s","\u021B":"t","\u05BE":"-","\u066B":",","\u066C":"'","\u037E":";","\u2010":"-","\u2013":"-","\u2014":"-","\u2015":"-","\u2018":"'","\u2019":"'","\u201C":"\u0022","\u201D":"\u0022","\u2024":".","\u2044":"/","\u20A4":"\u00A3","\u20A6":"NGN","\u20A7":"Pts","\u20A8":"Rs","\u20A9":"KRW","\u20AA":"ILS","\u20AB":"VND","\u20AC":"EUR","\u20AE":"MNT","\u20B1":"PHP","\u20B2":"PYG","\u20B5":"GHS","\u2170":"i","\u2174":"v","\u2179":"x","\u217C":"l","\u217D":"c","\u217E":"d","\u217F":"m","\u2212":"-","\u2215":"/","\u2223":"|","\uFF01":"!","\uFF02":"\u0022","\uFF04":"$","\uFF05":"%","\uFF06":"&","\uFF07":"'","\uFF08":"(","\uFF09":")","\uFF0B":"+","\uFF0C":",","\uFF0D":"-","\uFF0E":".","\uFF0F":"/","\uFF10":"0","\uFF11":"1","\uFF12":"2","\uFF13":"3","\uFF14":"4","\uFF15":"5","\uFF16":"6","\uFF17":"7","\uFF18":"8","\uFF19":"9","\uFF1A":":","\uFF1B":";","\uFF1C":"<","\uFF1D":"=","\uFF3B":"[","\uFF3D":"]","\uFF3F":"_","\uFF41":"a","\uFF42":"b","\uFF43":"c","\uFF44":"d","\uFF45":"e","\uFF46":"f","\uFF47":"g","\uFF48":"h","\uFF49":"i","\uFF4A":"j","\uFF4B":"k","\uFF4C":"l","\uFF4D":"m","\uFF4E":"n","\uFF4F":"o","\uFF50":"p","\uFF51":"q","\uFF52":"r","\uFF53":"s","\uFF54":"t","\uFF55":"u","\uFF56":"v","\uFF57":"w","\uFF58":"x","\uFF59":"y","\uFF5A":"z","\uFF5B":"{","\uFF5C":"|","\uFF5D":"}","\uFFE0":"c","\uFFE1":"\u00A3","\uFFE5":"\u00A5","\uFFE6":"\u20A9","\u20A1":"C","\u058A":"-","\u1806":"-","\u2011":"-","\u2012":"-","\u301C":"-","\u3030":"-","\uFE31":"-","\uFE32":"-","\uFE58":"-","\uFE63":"-","\u00E7":"c","\u015F":"s","\u0259":"e","\u0131":"i","\u00FC":"u","\u04B1":"\u04AF","\u011F":"g","\u00F6":"o","\u0439":"\u0438","\u04B9":"\u0447","\u045E":"\u0443","\u03AE":"\u03B7","\u03AF":"\u03B9","\u04A3":"\u043D","\u0142":"l","\u010D":"c","\u0107":"c","\u017E":"z","\u00F3":"o","\u00E0":"a","\u00ED":"i","\u00F2":"o","\u00FA":"u","\u00F1":"n","\u00E8":"e","\u00E9":"e","\u00EF":"i","\u00E1":"a","\u0159":"r","\u011B":"e","\u00FD":"y","\u0161":"s","\u016F":"u","\u0148":"n","\u00EE":"i","\u00F8":"o","\u00E4":"a","\u00A2":"c","\u03CA":"\u03B9","\u0390":"\u03B9","\u03CD":"\u03C5","\u03AC":"\u03B1","\u03AD":"\u03B5","\u03CE":"\u03C9","\u03CC":"\u03BF","\u03CB":"\u03C5","\u00EB":"e","\u0111":"d","\u00BA":"o","\u00F5":"o","\u00E3":"a","\u00FB":"u","\u00EA":"e","\u00F4":"o","\u0151":"o","\u00F0":"d","\u00EC":"i","\u049B":"\u043A","\u0117":"e","\u016B":"u","\u0173":"u","\u0105":"a","\u0101":"a","\u012B":"i","\u0113":"e","\u0137":"k","\u0123":"g","\u0146":"n","\u0451":"\u0435","\u0121":"g","\u010B":"c","\u0127":"h","\u00E5":"a","\u017A":"z","\u015B":"s","\u0144":"n","\u017C":"z","\u0119":"e","\u00E2":"a","\u0103":"a","\u0167":"t","\u013E":"l","\u0165":"t","\u010F":"d","\u0457":"\u0456","\u0491":"\u0433","\u04B3":"\u0445","\u0163":"t"};
javascript_obj0712_014.js pdf-javascript-stream PDF /JS object 712 at offset 0x5013A 10040 bytes
SHA-256: a862c3ff0be4b6e8e1a4ed20ca59fdded0cb583d2442c945783e90d4e1f7a7af
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 4 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
// JScript source code

function splitDateParts(pattern)
{
	var partArr = new Array();
	var state = 0; // 0: init, 1: str, 2: possible finish, 3: pattern
	var curr = "";
	for (var i = 0; i < pattern.length; i ++)
	{
		var ch = pattern.charAt(i);
		var isQuote = (ch == "'");
		
		switch (state)
		{
			case 0:
				if (isQuote)
				{
					state = 1;
					curr = "";
				}
				else
				{
					state = 3;
					curr = ch;
				}
				break;
			case 1:
				if (isQuote)
				{
					state = 2;
				}
				else
				{
					curr += ch;
				}
				break;
			case 2:
				if (isQuote)
				{
					state = 1;
					curr += ch;
				}
				else
				{
					state = 3;
					//app.alert(curr);
					partArr.push({ isPattern : false, content : curr});
					curr = ch;
				}
				break;
			case 3: 
				if (isQuote)
				{
					state = 1;
					//app.alert(curr);
					partArr.push({ isPattern : true, content : curr});
					curr = "";
				}
				else
				{
					curr += ch;
				}
				break;
			default: break;
		}
	}
	if (curr != "")
	{	
		partArr.push({ isPattern : (state == 3), content : curr});
	}
	return partArr;
}

function formatDate(dateObject, pattern)
{
	var partArr = splitDateParts(pattern);
	
	var fullStr = "";
	for (var i = 0; i < partArr.length; i ++)
	{
		if (partArr[i].isPattern)
		{
			fullStr += partArr[i].content.replace(/([a-z])\1*/ig, function(match)
															{
															var s, pad;
															var c = match.charAt(0);
															var l = match.length;
															var widthList = ["abbreviated", "wide", "narrow"];
															var gregorian = cldr.calendar_gregorian;
															
															switch(c){
																case 'G':
																	var era = null;
																	if (l < 4)
																		era = gregorian.eraNames;
																	else if (l == 4)
																		era = gregorian.eraAbbr;
																	else
																		era = gregorian.eraNarrow;
																		
																	s = dateObject.getFullYear() < 0 ? era.beforeChrist : era.afterChrist;
																	break;
																case 'y':
																	s = "" + dateObject.getFullYear();
																	if (l == 2)
																	{
																		s = s.substr(s.length - 2);
																	}
																	pad = true;
																	break;
																case 'Q':
																case 'q':
																	var quarterContainer = null;
																	if (c == 'q')
																		quarterContainer = cldr.calendar_gregorian.quarters_format;
																	else
																		quarterContainer = cldr.calendar_gregorian.quarters_stand_alone;
																	if (l == 1)
																		quarterContainer = quarterContainer.narrow;
																	else if (l == 2)
																	{
																		quarterContainer = quarterContainer.narrow;
																		pad = true;
																	}
																	else if (l == 3)
																	{
																		quarterContainer = quarterContainer.abbreviated;
																	}
																	else
																	{
																		quarterContainer = quarterContainer.wide;
																	}
																	var quarter = Math.floor((dateObject.getMonth() / 3) + 1);
																	
																	
																	var quarterString = eval("quarterContainer._" + quarter);
																	s = quarterString;
																	
																	break;
																case 'M':
																case 'L':
																	var m = dateObject.getMonth();
																	var monthContainer;
																	switch(l){
																		case 1: case 2:
																			s = (m+1).toString();
																			pad = true;
																			break;
																		case 3:
																			if (c == 'M')
																				monthContainer = cldr.calendar_gregorian.months_format.abbreviated;
																			else if (c == 'L')
																				monthContainer = cldr.calendar_gregorian.months_stand_alone.abbreviated;
																			break;
																		case 4:
																			if (c == 'M')
																				monthContainer = cldr.calendar_gregorian.months_format.wide;
																			else if (c == 'L')
																				monthContainer = cldr.calendar_gregorian.months_stand_alone.wide;
																			break;
																		case 5:
																			if (c == 'M')
																				monthContainer = cldr.calendar_gregorian.months_format.narrow;
																			else if (c == 'L')
																				monthContainer = cldr.calendar_gregorian.months_stand_alone.narrow;
																		default:
																			break;
																	}
																	if(monthContainer)
																	{
																		m ++;
																		s = eval("monthContainer._" + m);
																	}
																	break;
																case 'w':
																	s = getWeekOfYear(dateObject).toString(); pad = true;
																	break;
																	
																case 'd':
																	s = dateObject.getDate().toString(); pad = true;
																	break;
																case 'D':
																	s = getDayOfYear(dateObject).toString(); pad = true;
																	break;
																case 'E':
																case 'e':
																case 'c':
																	var d = dateObject.getDay();
																	var widthD;
																	switch(l){
																		case 1: case 2:
																			s = d.toString();
																			pad = true;
																			break;
																			// else fallthrough...
																		case 3: case 4: case 5:
																			widthD = widthList[l-3];
																			break;
																	}
																	if(widthD){
																		var typeD = (c == 'c') ? "stand_alone" : "format";
																		var source = "cldr.calendar_gregorian.days_" + typeD + "." + widthD + "." + getDayName(d);
																		s = eval(source);
																	}
																	break;
																case 'a':
																	var timePeriod = (dateObject.getHours() < 12) ? 'am' : 'pm';
																	s = eval("cldr.calendar_gregorian." + timePeriod);
																	break;
																case 'h':
																case 'H':
																case 'K':
																case 'k':
																	var h = dateObject.getHours();
																	// strange choices in the date format make it impossible to write this succinctly
																	switch (c){
																		case 'h': // 1-12
																			s = ((h % 12) || 12).toString();
																			break;
																		case 'H': // 0-23
																			s = h.toString();
																			break;
																		case 'K': // 0-11
																			s = (h % 12).toString();
																			break;
																		case 'k': // 1-24
																			s = (h || 24).toString();
																			break;
																	}
																	pad = true;
																	break;
																case 'm':
																	s = dateObject.getMinutes().toString(); pad = true;
																	break;
																case 's':
																	s = dateObject.getSeconds().toString(); pad = true;
																	break;
																case 'S':
																	s = Math.round(dateObject.getMilliseconds() * Math.pow(10, l-3)).toString(); pad = true;
																	break;
																case 'A':
																	s = (dateObject.getTime() - new Date(dateObject.getFullYear(), dateObject.getMonth(), dateObject.getDate()).getTime()).toString();
																	break;
																case 'z':
																case 'Z':
																case 'v':
																case 'V':
																	var splitted = cldr.timeZoneNames.hourFormat.split(";");
																	if (splitted.length != 2)
																	{
																		s = "";
																		break;
																	}
																	
																	var offsetMinutes = -dateObject.getTimezoneOffset();
																	var negative = offsetMinutes < 0;
																	if (offsetMinutes < 0) offsetMinutes = -offsetMinutes;
																	
																	var hours = offsetMinutes / 60;
																	var minutes = offsetMinutes % 60;
																	var dummyDate = new Date(0, 0, 1, hours, minutes, 0);
																	var timezoneString = formatDate(dummyDate, negative ? splitted[1] : splitted[0]);
																	var gmtString = new String(cldr.timeZoneNames.gmtFormat);
																	s = gmtString.replace(/\{0}/, timezoneString);
																	break;
														//				case 'Y': case 'u': case 'W': case 'F': case 'g': case 'A':
														//					console.debug(match+" modifier unimplemented");*/
																default:
																	throw new Error("invalid pattern char: " + pattern);
															}
															if(pad)
															{
																s = padBefore(s, "0", l - s.length);
															}
															
															return s;
														});
		}
		else
			fullStr += partArr[i].content;
	}
	
	return fullStr;
}

function subtractDate(b, a)
{
	var miliA = a.getTime();
	var miliB = b.getTime();
	
	return (miliA - miliB) / 1000 / 3600 / 24;
}

function getDayOfYear(dateObject)
{
	return Math.floor(subtractDate(new Date(dateObject.getFullYear(), 0, 1), dateObject) + 1); // Number
}

function getDayName(day)
{
	switch (day)
	{
		case 0:
			return "sun";
		case 1:
			return "mon";
		case 2:
			return "tue";
		case 3:
			return "wed";
		case 4:
			return "thu";
		case 5:
			return "fri";
		case 6:
			return "sat";
		default:
			return "";
	}
}

function getWeekOfYear(dateObject)
{
	var firstDayOfYear = new Date(dateObject.getFullYear(), 0, 1).getDay();
	var week = Math.floor((getDayOfYear(dateObject) + firstDayOfYear - 1) / 7) + 1;

	return week; // Number
}
javascript_obj0713_015.js pdf-javascript-stream PDF /JS object 713 at offset 0x509D0 4291 bytes
SHA-256: e66c83b43272af17b0ed43ded35819c9f2825ef88d352cce828881d135b64e16
Preview script
First 1,000 lines of the extracted script
function getTypeFromArr(type, typeArr, parts)
{
	for (var i = 0; i < typeArr.length; i ++)
	{
		if (type == typeArr[i])
			return parts[i].content;
	}
	
	return null;
}

function evalTypes(typeArr, orderArr, initResultArray)
{
	var resultArr = new Array();
	var origOrderArr = orderArr.concat(new Array());
	
	while (!resultArrFull(typeArr))
	{
		removeIdentical(typeArr);
		while (hasUniqueElements(typeArr))
		{
			// match unique elements
			for (var i = 0; i < typeArr.length; i ++)
			{
				if (typeArr[i].length == 1)
				{
					resultArr[i] = typeArr[i][0];
					typeArr[i] = new Array();
					cleanUp(typeArr, resultArr[i], orderArr);
				}
			}
	
			removeIdentical(typeArr);
		}
		
		// no more unique elements, have a look at the desired order
		for (var i = 0; i < typeArr.length; i ++)
		{
			if (typeArr[i].length > 0)
			{
				var elemOrderArr = orderArr;//buildOrderArr(resultArr, orderArr, i, origOrderArr);
				for (var j = 0; j < elemOrderArr.length; j ++)
				{
					var brk = false;
					for (var k = 0; k < typeArr[i].length; k ++)
					{
						if (elemOrderArr[j] == typeArr[i][k])
						{
							resultArr[i] = typeArr[i][k];
							typeArr[i] = new Array();
							cleanUp(typeArr, resultArr[i], orderArr);
							
							brk = true;
							break;
						}
					}
					
					if (brk) break;
				}
			}
		}
		
		if (orderArr.length == 0)
			return resultArr;
	}
	
	return resultArr;
}

function removeIdentical(typeArr)
{
	// match two with same content
	for (var i = 0; i < typeArr.length; i ++)
	{
		for (var j = i+1; j < typeArr.length; j ++)
		{
			if (identicalTypes(typeArr[i], typeArr[j]))
			{
				for (var m = 0; m < typeArr[i].length; m ++)
				{
					for (var k = 0; k < typeArr.length; k ++)
					{
						if (k == i || k == j)
							continue;
							
						for (var l = typeArr[k].length-1; l >= 0 ; l --)
						{
							if (typeArr[k][l] == typeArr[i][m])
								typeArr[k].splice(l, 1);
						}
					}
				}
			}
		}
	}
}

function identicalTypes(arr1, arr2)
{
	if (arr1.length != arr2.length || arr1.length != 2)
		return false;
	else
	{
		for (var i = 0; i < arr1.length; i ++)
		{
			var matched = false;
			for (var j = 0; j < arr2.length; j ++)
			{
				if (arr1[i] == arr2[j])
				{
					matched = true;
					break;
				}
			}
			
			if (!matched)
				return false;
		}
		
		return true;
	}
}

/*function buildOrderArr(resultArr, orderArr, index, origOrderArr)
{
	var beforeMatchedIndex = index;
	while (resultArr[beforeMatchedIndex] == null && beforeMatchedIndex > -1)
		beforeMatchedIndex --;
	
	if (beforeMatchedIndex == -1)
		return orderArr;
	else
	{	
		var matchedType = resultArr[beforeMatchedIndex];
		var posOriginal = 0;
		while (posOriginal < origOrderArr.length && origOrderArr[posOriginal] != matchedType)
		{
			posOriginal ++;
		}
		if (posOriginal >= origOrderArr.length)
			return orderArr;
		else
		{
			var arr1 = origOrderArr.slice(posOriginal);
			var arr2 = origOrderArr.slice(0, posOriginal);
			
			var newArr = arr1.concat(arr2);
			for (var i = newArr.length-1; i >= 0 ; i --)
			{
				var found = false;
				for (var j = 0; j < orderArr.length; j ++)
				{
					if (orderArr[j] == newArr[i])
					{
						found = true;
						break;
					}
				}
				
				if (!found)
					newArr.splice(i, 1);
			}
			
			return newArr;
		}
	}
}*/

function removeFromOrderArr(type, orderArr)
{
	for (var i = orderArr.length-1; i >= 0; i --)
	{
		if ((type & orderArr[i]) != 0)
		{
			orderArr.splice(i, 1);
		}
	}
}

function resultArrFull(typeArr)
{
	for (var i = 0; i < typeArr.length; i ++)
	{
		if (typeArr[i].length != 0)
			return false;
	}
	
	return true;
}

function hasUniqueElements(typeArr)
{
	for (var i = 0; i < typeArr.length; i ++)
	{
		if (typeArr[i].length == 1)
			return true;
	}
	
	return false;
}

function cleanUp(typeArr, remove, orderArr)
{
	// remove all possibilities from old array
	for (var j = 0; j < typeArr.length; j ++)
	{
		for (var k = 0; k < typeArr[j].length; k ++)
		{
			if (remove == typeArr[j][k])
				typeArr[j].splice(k, 1);
		}
	}
	
	removeFromOrderArr(remove, orderArr);
}
javascript_obj0714_016.js pdf-javascript-stream PDF /JS object 714 at offset 0x50EAC 10623 bytes
SHA-256: c5e060de3828d2ebc55a4d65297f52268d11031c3d0aa1f6061a46f872a33bc1
Preview script
First 1,000 lines of the extracted script
var typeWeekday = 1;
var typeDay = 2;
var typeMonth = 4;
var typeYear = 8;
	
// parses a date (1th of avril)
function parseDate(str)
{
	// convert always to string
	str = str + "";
	
	// split in all parts
	var parts = splitString(str, null, true);
	
	var orderArr = getPatternOrder();
	completeOrderArray(orderArr);
	
	var matchedMonth;
	var matchedWeekday;
	
	var testedMonths = new Array();
	var testedWeekdays = new Array();
	
	var whereMonthFound = { value : -1 };
	var partsToMatch = parts.concat(new Array());
	
	if (weekIsBeforeMonth(orderArr))
	{
		matchedWeekday = matchWeekday(partsToMatch, testedWeekdays, false);
		matchedMonth = matchMonth(partsToMatch, testedMonths, whereMonthFound, false);
		
		if (matchedWeekday == null)
			matchedWeekday = matchWeekday(partsToMatch, testedWeekdays, true);
		if (matchedMonth == null)
			matchedMonth = matchMonth(partsToMatch, testedMonths, whereMonthFound, true);
	}
	else
	{
		matchedMonth = matchMonth(partsToMatch, testedMonths, whereMonthFound, false);
		matchedWeekday = matchWeekday(partsToMatch, testedWeekdays, false);
		
		if (matchedMonth == null)
			matchedMonth = matchMonth(partsToMatch, testedMonths, whereMonthFound, true);
		if (matchedWeekday == null)
			matchedWeekday = matchWeekday(partsToMatch, testedWeekdays, true);
	}
	
	var possibilities = new Array();
	for (var i = 0; i < parts.length; i ++)
	{
		possibilities[i] = new Array();
		if (i == whereMonthFound.value)
		{
			possibilities[i].push(typeMonth);
		}
		else if (parts[i].type == 1)
		{
			if (isMonth(parts[i].content) && matchedMonth == null)
				possibilities[i].push(typeMonth);
			if (isDay(parts[i].content))
				possibilities[i].push(typeDay);
			if (isYear(parts[i].content))
				possibilities[i].push(typeYear);
		}
	}
	
	var resultArr = evalTypes(possibilities, orderArr);
	
	var resDay = getTypeFromArr(typeDay, resultArr, parts);
	var resMonth = matchedMonth == null ? getTypeFromArr(typeMonth, resultArr, parts) : matchedMonth;
	var resYear = getTypeFromArr(typeYear, resultArr, parts);
	
	var resultDate = completeDate(resYear, resMonth, resDay, matchedWeekday, parts);
	
	return resultDate;
}

function completeDate(resYear, resMonth, resDay, matchedWeekday, parts)
{
	var day;
	var month;
	var year;
	
	var currDate = new Date();
	var relative = false;
	if (resYear != null)
	{
		if (resYear.length == 2)
		{
			var minYear = currDate.getFullYear() - 79;
			var maxYear = currDate.getFullYear() + 20;
			var currDecade = Math.floor(currDate.getFullYear() / 100);
			for (var i = -1; i <= 1; i ++)
			{
				var resultYear = resYear*1 + (currDecade+i) * 100;
				if (resultYear <= maxYear && resultYear >= minYear)
				{
					resYear = resultYear;
					break;
				}
			}
		}
	
		if (resMonth != null)
		{
			if (resDay != null)
			{
				year = resYear;
				month = resMonth;
				day = resDay;
			}
			else
			{
				year = resYear;
				month = resMonth;
				day = findFirstWeekdayAfter(new Date(year*1, month*1-1, 1), matchedWeekday).getDate();
			}
		}
		else
		{
			if (resDay != null)
			{
				year = resYear;
				month = currDate.getMonth()+1;
				day = resDay;
				relative = true;
			}
			else
			{
				year = resYear;
				month = 1;
				day = findFirstWeekdayAfter(new Date(year*1, month*1-1, 1), matchedWeekday).getDate();
			}
		}
	}
	else
	{
		if (resMonth != null)
		{
			if (resDay != null)
			{
				year = currDate.getFullYear().toString();
				month = resMonth;
				day = resDay;
			}
			else
			{
				year = currDate.getFullYear().toString();
				month = resMonth;
				day = findFirstWeekdayAfter(new Date(year*1, month*1-1, 1), matchedWeekday).getDate();
			}
		}
		else
		{
			if (resDay != null)
			{
				year = currDate.getFullYear().toString();
				month = currDate.getMonth()+1;
				day = resDay;
			}
			else
			{
				if (matchedWeekday != null)
				{
					var date = findFirstWeekdayAfter(currDate, matchedWeekday);
					year = date.getFullYear().toString();
					month = date.getMonth()+1;
					day = date.getDate();
				}
				else
				{
					var found = false;
					for (var matchPrecision = 0; matchPrecision < 3; matchPrecision ++)
					{
						for (var i = 3; i >= -3; i --)
						{
							var matchArr = getCached(cachedCldr["calendar"]["relative_days"]["_"+i], cldr["calendar_gregorian"]["relative_days"]["_"+i]);
							if (matchWithNames(parts, "", matchArr, matchPrecision < 1, matchPrecision < 2) != null)
							{
								var today = new Date();
								var newDate = new Date();
								newDate.setTime(today.getTime() + i*24*3600*1000);
								
								year = newDate.getFullYear();
								month = newDate.getMonth() + 1;
								day = newDate.getDate();
								found = true;
								break;
							}
						}
						
						if (found) break;
					}
					
					// no valid date specified
					if (!found)
					{
						return null;
					}
				}
			}
		}
		
		relative = true;
	}
	
	var resultDate = new Date(year*1, month*1 - 1, day*1, 0, 0, 0, 0);
	if (resultDate.getMonth() != (month*1 - 1) || resultDate.getDate() != day*1 || resultDate.getFullYear() != year*1)
		return null;
	else
		return { relative : relative, date : resultDate };
}

function findFirstWeekdayAfter(date, matchedWeekday)
{
	if (matchedWeekday == null)
		return date;
	else
	{
		if (date.getDay() > matchedWeekday)
			matchedWeekday += 7;
		
		var diff = matchedWeekday - date.getDay();
		var newDate = new Date();
		newDate.setTime(date.getTime() + diff * 24 * 3600 * 1000);
		return newDate;
	}
}

function completeOrderArray(orderArr)
{
	var hasDay = false;
	var hasMonth = false;
	var hasYear = false;
	
	for (var i = 0; i < orderArr.length; i ++)
	{
		switch (orderArr[i])
		{
			case typeDay:
				hasDay = true;
				break;
			case typeMonth:
				hasMonth = true;
				break;
			case typeYear:
				hasYear = true;
				break;
			default: break;
		}
	}
	
	if (!hasDay)
		orderArr.push(typeDay);
	if (!hasMonth)
		orderArr.push(typeMonth);
	if (!hasYear)
		orderArr.push(typeYear);
}

function weekIsBeforeMonth(orderArr)
{
	for (var i = 0; i < orderArr.length; i ++)
	{
		if (orderArr[i] == typeMonth)
			return false;
		else if (orderArr[i] == typeWeekday)
			return true;
	}
}

function matchMonth(parts, tested, whereFound, matchAll)
{
	var monthArr = new Array("_1", "_2", "_3", "_4", "_5", "_6", "_7", "_8", "_9", "_10", "_11", "_12");
	var matched = !matchAll ? matchMonthOrWeekday(parts, "months", monthArr, tested, whereFound) : matchMonthOrWeekdayAll(parts, "months_all", monthArr, tested, whereFound);
	if (matched != null)
		return matched + 1;
	else
		return null;
}

function matchWeekday(parts, tested, matchAll)
{
	var dayArr = new Array("sun", "mon", "tue", "wed", "thu", "fri", "sat");
	return !matchAll ? matchMonthOrWeekday(parts, "days", dayArr, tested) : matchMonthOrWeekdayAll(parts, "days_all", dayArr, tested);
}

function matchMonthOrWeekdayAll(parts, prefix, typeArr, tested, whereFound)
{
	if (!partsHasWord(parts)) return null;

	for (var matchPrecision = 2; matchPrecision < 3; matchPrecision ++)
	{
		for (var k = 0; k < typeArr.length; k ++)
		{
			var testArr = cldr["calendar_gregorian"][prefix][typeArr[k]];
			for (var j = 0; j < testArr.length; j ++)
			{
				var cldrString = testArr[j];
				if (tested[cldrString] != null) continue;
				
				var partArr = getCached(cachedCldr["calendar"][prefix][typeArr[k]][j], testArr[j]);
				//app.alert("" + partArr[0][0].full + (matchPrecision < 1) + (matchPrecision < 2));
				if (matchWithNames(parts, "", partArr, matchPrecision < 1, matchPrecision < 2, true, whereFound) != null)
					return k;
			}
		}
	}
}

function matchMonthOrWeekday(parts, prefix, typeArr, tested, whereFound)
{
	if (!partsHasWord(parts)) return null;

	for (var i = 0; i < 2; i ++)
	{
		for (var matchPrecision = 0; matchPrecision < 3; matchPrecision ++)
		{
			for (var j = 0; j < 2; j ++)
			{
				var formatCont;
				switch (j)
				{
					case 1: formatCont = "abbreviated"; break;
					case 0: formatCont = "wide"; break;
				}
				var currContainer = cldr["calendar_gregorian"][prefix + (i == 0 ? "_format" : "_stand_alone")][formatCont];
				var cachedContainer = cachedCldr["calendar"][prefix + (i == 0 ? "_format" : "_stand_alone")][formatCont];
				
				
				for (var k = 0; k < typeArr.length; k ++)
				{
					var cldrString = currContainer[typeArr[k]];
					if (tested[cldrString] != null) continue;
					
					var matchArr = getCached(cachedContainer[typeArr[k]], currContainer[typeArr[k]]);
					if (matchWithNames(parts, "", matchArr, matchPrecision < 1, matchPrecision < 2, true, whereFound) != null)
						return k;
				}
			}
		}
		
		/*for (var k = 0; k < typeArr.length; k ++)
		{
			var cldrString = currContainer[typeArr[k]];
			tested[cldrString] = cldrString;
		}*/
	}

	return null;
}

function partsHasWord(parts)
{
	// test if it can has a month
	var hasWord = false;
	for (var i = 0; i < parts.length; i ++)
	{
		if (parts[i].type == 2)
			hasWord = true;
	}
	if (!hasWord)
		return false;
	else
		return true;
}

function isDay(numberStr)
{
	var number = numberStr * 1;
	return number >= 1 && number <= 31;
}

function isMonth(numberStr)
{
	var number = numberStr * 1;
	return number >= 1 && number <= 12;
}

function isYear(numberStr)
{
	return numberStr.length == 2 || numberStr.length == 4;
}

function getPatternOrder()
{
	var parts = splitDateParts(cldr["calendar_gregorian"]["dateFormats"]["long"]);
	
	var typeWeekdaySet = false;
	var typeDaySet = false;
	var typeMonthSet = false;
	var typeYearSet = false;
	
	var orderArr = new Array();
	for (var i = 0; i < parts.length; i ++)
	{
		if (parts[i].isPattern)
		{
			for (var j = 0; j < parts[i].content.length; j ++)
			{
				var ch = parts[i].content.charAt(j);
				
				if ((ch == "d" || ch == "D") && !typeDaySet)
				{
					orderArr.push(typeDay);
					typeDaySet = true;
				}
				else if ((ch == "e" || ch == "E") && !typeWeekdaySet)
				{
					orderArr.push(typeWeekday);
					typeWeekdaySet = true;
				}
				else if ((ch == "m" || ch == "M") && !typeMonthSet)
				{
					orderArr.push(typeMonth);
					typeMonthSet = true;
				}
				else if ((ch == "y" || ch == "Y") && !typeYearSet)
				{
					orderArr.push(typeYear);
					typeYearSet = true;
				}
			}
		}
	}
	
	return orderArr;
}
javascript_obj0715_017.js pdf-javascript-stream PDF /JS object 715 at offset 0x51898 3240 bytes
SHA-256: e1eb1ae9a28ca6809e490ab94557d9217f0ed671a55379737b41e00e159fd8d3
Preview script
First 1,000 lines of the extracted script
// parses a time (12:34:12)
function parseTime(str)
{
	// convert always to string
	str = str + "";
	
	// split in all parts
	var parts = splitString(str, null, true);
	
	// look for am or pm
	var amPm = matchAmPm(parts);
	var hourMax = 24;
	var minuteMax = 59;
	var secondMax = 59;
	
	var possibilityHour = 1;
	var possibilityMinute = 2;
	var possibilitySecond = 4;
	var possibilities = new Array();
	for (var i = 0; i < parts.length; i ++)
	{
		possibilities[i] = new Array();
		if (parts[i].type == 1)
		{
			if (isTime(parts[i].content, hourMax))
				possibilities[i].push(possibilityHour);
			if (isTime(parts[i].content, minuteMax))
				possibilities[i].push(possibilityMinute);
			if (isTime(parts[i].content, secondMax))
				possibilities[i].push(possibilitySecond);
			if (isHourAndMinute(parts[i].content))
				possibilities[i].push(possibilityHour | possibilityMinute);
		}
	}
	
	var resultArr = evalTypes(possibilities, new Array(possibilityHour | possibilityMinute, possibilityHour, possibilityMinute, possibilitySecond));
	var hour = null;
	var minute = null;
	var second = null;
	
	var resHourMinute = getTypeFromArr(possibilityHour | possibilityMinute, resultArr, parts);
	var resHour = getTypeFromArr(possibilityHour, resultArr, parts);
	var resMinute = getTypeFromArr(possibilityMinute, resultArr, parts);
	var resSecond = getTypeFromArr(possibilitySecond, resultArr, parts);
	
	if (resHourMinute != null)
	{
		var number = resHourMinute*1;
		hour = Math.floor(number / 100);
		minute = number % 100;
	}
	else
	{
		if (resHour != null)
			hour = resHour * 1;
			
		if (resMinute != null)
			minute = resMinute * 1;
	}
	
	if (resSecond != null)
	{
		second = resSecond*1;
	}
	
	if (hour == null) hour = 0;
	if (minute == null) minute = 0;
	if (second == null) second = 0;
	
	// look for am/pm
	if (amPm == "am" && hour <= 12)
	{
		hour = hour % 12;
	}
	else if (amPm == "pm" && hour <= 12)
	{
		hour = (hour % 12) + 12;
	}
	
	var resultDate = new Date(2008, 0, 1, hour, minute, second);
	return resultDate;
}

function isHourAndMinute(str)
{
	if (str.length <= 2) return false;
	
	var number = str*1;
	if (number <= 2400 && number % 100 < 60) return true;
	else return false;
}

function isTime(str, maxValue)
{
	return str*1 <= maxValue;
}

function matchAmPm(parts)
{
	var amArr = getCached(cachedCldr["calendar"]["am"], cldr["calendar_gregorian"]["am"]);
	var pmArr = getCached(cachedCldr["calendar"]["pm"], cldr["calendar_gregorian"]["pm"]);
	
	if (matchWithNames(parts, "", amArr, true, true) != null)
		return "am";
	else if (matchWithNames(parts, "", pmArr, true, true) != null)
		return "pm";
	else if (matchWithNames(parts, "", amArr, false, true) != null)
		return "am";
	else if (matchWithNames(parts, "", pmArr, false, true) != null)
		return "pm";
	else if (matchWithNames(parts, "", amArr, true, false) != null)
		return "am";
	else if (matchWithNames(parts, "", pmArr, true, false) != null)
		return "pm";
	else if (matchWithNames(parts, "", amArr, false, false) != null)
		return "am";
	else if (matchWithNames(parts, "", pmArr, false, false) != null)
		return "pm";
	else
		return "";
}
javascript_obj0716_018.js pdf-javascript-stream PDF /JS object 716 at offset 0x51C54 8292 bytes
SHA-256: 0b9849dc0cf43ac939e8d98ffd40f59468cc4c6b0c24d0816a9a7d564f653079
Preview script
First 1,000 lines of the extracted script
function currencyCldr_formatGeneral(number, currency, showZero, numberPatternOrig, currencyPatternOrig, currencyFormatType, overrideRounding)
{
	// don't show if number is zero
	if(number == 0 && showZero == false)
	{
		return "";
	}
	
	// number pattern
	var numberPattern;
	if (numberPatternOrig != "")
	{
		numberPattern = numberPatternOrig;
	}
	else
	{
		// get from cldr
		numberPattern = cldr.numbers_currencyFormats.currencyPattern;
		numberPattern = numberPattern.replace(/\u00A4/g, "");
		numberPattern = numberPattern.replace(/\ /g, "");
		numberPattern = numberPattern.replace(/\u00A0/g, "");
	}

	// currency pattern
	var currencyPattern;
	var currencyNamePattern;
	if (currencyPatternOrig != "")
	{
		if (currencyFormatType == 2)
		{
			currencyNamePattern = currencyPatternOrig;
			currencyNamePattern = currencyNamePattern.replace(/(([^\\])#|^#)/, "$2{0}");
			currencyNamePattern = currencyNamePattern.replace(/(([^\\])\$|^\$)/, "$2{1}");
			currencyPattern = numberPattern;
		}
		else
		{
			currencyPattern = currencyPatternOrig;
			currencyPattern = currencyPattern.replace(/\\\\/,"\\");
			currencyPattern = currencyPattern.replace(/(([^\\])#|^#)/, "$2" + numberPattern);
			currencyPattern = currencyPattern.replace(/(([^\\])\$|^\$)/, "$2\u00a4");
		}
	}
	else if (currencyFormatType != 2)
	{
		currencyPattern = cldr.numbers_currencyFormats.currencyPattern;
	}
	else
	{
		currencyPattern = numberPattern;
	}
	
	return formatCurrency(number, currencyFormatType, currencyPattern, currency, currencyNamePattern, overrideRounding);
}

/*
formatCurrency

formats a number to a currency

params:
    number: the amount of currency
    
    type: 0 - symbol
          1 - 3-letter currencycode
          2 - full name
          
    pattern: for type=0,1 the currencyFormat/pattern, for type=2 the unitPattern in currencies

returns:
	the formatted currency string
*/
function formatCurrency(number, type, pattern, currency, currencyPattern, overrideRounding)
{
	// check if currency available
	if (cldr.numbers_currencies[currency] == undefined)
	{
		console.println("currency '" + currency + "' not available when formatting currency");
		console.println("please place a hidden currency field with this currency in to the form");
		return "";
	}
	
	// round the value
	var struct = roundCurrency(number, currency, overrideRounding);
	number = struct.number;
	
    switch (type)
    {
		// use the pattern as a "currencyFormat/pattern" pattern
        case 0:
        case 1:
			var symbol = "";
			if (type == 0)
			{
				symbol = currency;
			}
			else if (type == 1)
			{
				var evaluated;
				if (cldr.numbers_currencies[currency] != null)
					evaluated = cldr.numbers_currencies[currency].symbol;
				
				// fallback if no currency available
				if (!evaluated || evaluated == "")
				{
					symbol = currency;
				}
				else
				{
					// look for a choice pattern
					if (evaluated.indexOf("|") != -1)
					{
						var choices = evaluated.split('|');
						
						// match from right to left
						for (var i = choices.length-1; i >= 0; i --)
						{
							var relationPos = choices[i].search(/\u2264|</);
							if (relationPos == -1) continue;
							var constant = choices[i].substr(0, relationPos) * 1;
							var resultString = choices[i].substr(relationPos+1);
							var relationStr = choices[i].substr(relationPos, 1);
							
							// eval relation or always take the last element
							if ((relationStr == "\u2264" ? constant <= number : constant < number) || i == 0)
							{
								symbol = resultString;
								break;
							}
						}
					}
					else
					{
						symbol = evaluated;
					}
				}
			}
			
			// format it
			var formatted = formatNumber(number, pattern, struct.numDigits);
			var replacement = insertCurrencySpacing(formatted, symbol);
			return formatted.replace(/\u00a4/, replacement);
			
        case 2:
        
            // determine the count
            var count = "";
            if (cldr.supplemental_plurals.zero(number))
				count = "zero";
			else if (cldr.supplemental_plurals.one(number))
				count = "one";
			else if (cldr.supplemental_plurals.two(number))
				count = "two";
			else if (cldr.supplemental_plurals.few(number))
				count = "few";
			else if (cldr.supplemental_plurals.many(number))
				count = "many";
			else
				count = "other";
			
			var patternEval;
            if (currencyPattern == null)
            {
				// get unitPattern
				patternEval = cldr.numbers_currencyFormats.unitPatterns[count];
				if (patternEval == null)
				{
					patternEval = cldr.numbers_currencyFormats.unitPatterns.other;
				}
			}
			else
			{
				patternEval = currencyPattern;
			}
			
			var dispNameEval = cldr.numbers_currencies[currency]["displayName_" + count];
			if (dispNameEval == null)
				dispNameEval = cldr.numbers_currencies[currency].displayName_other;
			if (dispNameEval == null)
				dispNameEval = cldr.numbers_currencies[currency].displayName_;
			if (dispNameEval == null)
				dispNameEval = currency;
			
			var formattedNumber = formatNumber(number, pattern, struct.numDigits);
			patternEval = patternEval.replace(/\{0}/, formattedNumber);
			patternEval = patternEval.replace(/\{1}/, dispNameEval);
			
			return patternEval;
		
		default:
			throw new Error("invalid type for format currency");
    }
}

function roundCurrency(number, currency, overrideRounding)
{
	var digits;
	if (cldr.supplemental_currencyData_fractions[currency] != null)
		digits = cldr.supplemental_currencyData_fractions[currency].digits;
	if (digits == null)
	{
		digits = cldr.supplemental_currencyData_fractions.DEFAULT.digits;
		if (digits == null)
		{
			digits = 0;
		}
	}
	
	var rounding;
	if (cldr.supplemental_currencyData_fractions[currency] != null)
		rounding = cldr.supplemental_currencyData_fractions[currency].rounding;
	if (rounding == null)
	{
		rounding = cldr.supplemental_currencyData_fractions.DEFAULT.rounding;
		if (rounding == null)
		{
			rounding = 0;
		}
	}
	
	if (rounding != 0 && (overrideRounding == undefined || overrideRounding == false))
	{
		var factor = 1;
		for (var i = 0; i < digits; i ++)
			factor /= 10;

		var roundValue = rounding * factor;
		
		number = number / roundValue;
		number = Math.round(number);
		number = number * roundValue;
	}
	return { number : number, numDigits : digits };
}

function insertCurrencySpacing(str, symbol)
{
	// find pos of currency symbol
	var symbolIndex = str.indexOf("\u00a4");
	if (symbolIndex == -1) return "";
	
	// before and after currency
	var beforeCurrency = "";
	var afterCurrency = "";
	for (var i = 0; i < 2; i ++)
	{
		if ((i == 0 && symbolIndex == 0) || (i == 1 && symbolIndex == str.length-1))
			continue;

		var currencyContainer = i == 0 ? cldr.numbers_currencyFormats.currencySpacing.beforeCurrency : cldr.numbers_currencyFormats.currencySpacing.afterCurrency;
		var currencyMatch = currencyContainer.currencyMatch;
		var surroundingMatch = currencyContainer.surroundingMatch;
		var insertBetween = currencyContainer.insertBetween;
	
		var surroundingChar = str.charCodeAt(i == 0 ? symbolIndex-1 : symbolIndex+1);
		var currencyChar = symbol.charCodeAt(i == 0 ? 0 : symbol.length-1);
		
		var surroundTrue = matchRegexp(surroundingChar, surroundingMatch);
		var currencyTrue = matchRegexp(currencyChar, currencyMatch);
		
		if (surroundTrue && currencyTrue)
		{
			if (i == 0)
				beforeCurrency = insertBetween;
			else
				afterCurrency = insertBetween;
		}
	}
	
	return beforeCurrency.concat(symbol).concat(afterCurrency);
}

function matchRegexp(charCode, exp)
{
	// dummy implementation uf UTS #18 http://unicode.org/reports/tr18/
	var minChar;
	var maxChar;
	if (exp == "[:letter:]")
	{
		minChar = ("A").charCodeAt(0);
		maxChar = ("z").charCodeAt(0);
	}
	else if (exp == "[:digit:]")
	{
		minChar = ("0").charCodeAt(0);
		maxChar = ("9").charCodeAt(0);
	}
	else
		throw new Error("regexp " + exp + " not implemented");
		
	if (charCode >= minChar && charCode <= maxChar)
		return true;
	else
		return false;
}
javascript_obj0717_019.js pdf-javascript-stream PDF /JS object 717 at offset 0x52568 21193 bytes
SHA-256: 157d94c4373fc7674528b2b92bd73c7fb605ba41abc50f521589bd013af87b68
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
/* Rijndael (AES) Encryption
 * Copyright 2005 Herbert Hanewinkel, www.haneWIN.de
 * version 1.0, check www.haneWIN.de for the latest version

 * This software is provided as-is, without express or implied warranty.  
 * Permission to use, copy, modify, distribute or sell this software, with or
 * without fee, for any purpose and by any individual or organization, is hereby
 * granted, provided that the above copyright notice and this paragraph appear 
 * in all copies. Distribution as a part of an application or binary must
 * include the above copyright notice in the documentation and/or other materials
 * provided with the application or distribution.
 */

function AES_init(){}

var blockSizeInBits = 128;
var keySizeInBits = 128;

// The round constants used in subkey expansion
var Rcon = [ 
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 
0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 
0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91 ];

// Precomputed lookup table for the SBox
var S = [
 99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254, 215, 171, 
118, 202, 130, 201, 125, 250,  89,  71, 240, 173, 212, 162, 175, 156, 164, 
114, 192, 183, 253, 147,  38,  54,  63, 247, 204,  52, 165, 229, 241, 113, 
216,  49,  21,   4, 199,  35, 195,  24, 150,   5, 154,   7,  18, 128, 226, 
235,  39, 178, 117,   9, 131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 
179,  41, 227,  47, 132,  83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 
190,  57,  74,  76,  88, 207, 208, 239, 170, 251,  67,  77,  51, 133,  69, 
249,   2, 127,  80,  60, 159, 168,  81, 163,  64, 143, 146, 157,  56, 245, 
188, 182, 218,  33,  16, 255, 243, 210, 205,  12,  19, 236,  95, 151,  68,  
23,  196, 167, 126,  61, 100,  93,  25, 115,  96, 129,  79, 220,  34,  42, 
144, 136,  70, 238, 184,  20, 222,  94,  11, 219, 224,  50,  58,  10,  73,
  6,  36,  92, 194, 211, 172,  98, 145, 149, 228, 121, 231, 200,  55, 109, 
141, 213,  78, 169, 108,  86, 244, 234, 101, 122, 174,   8, 186, 120,  37,  
 46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138, 112,  62, 
181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134, 193,  29, 158, 225,
248, 152,  17, 105, 217, 142, 148, 155,  30, 135, 233, 206,  85,  40, 223,
140, 161, 137,  13, 191, 230,  66, 104,  65, 153,  45,  15, 176,  84, 187,  
 22 ];

var T1 = [
0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6,
0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,
0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56,
0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,
0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa,
0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,
0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45,
0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,
0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c,
0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,
0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9,
0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,
0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d,
0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,
0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df,
0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,
0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34,
0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,
0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d,
0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,
0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1,
0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,
0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972,
0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,
0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed,
0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,
0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe,
0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,
0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05,
0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,
0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142,
0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,
0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3,
0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,
0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a,
0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,
0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3,
0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,
0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428,
0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,
0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14,
0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,
0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4,
0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,
0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda,
0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,
0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf,
0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,
0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c,
0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,
0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e,
0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,
0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc,
0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,
0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969,
0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,
0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122,
0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,
0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9,
0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,
0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a,
0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,
0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e,
0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c ];

var T2 = [
0x6363c6a5, 0x7c7cf884, 0x7777ee99, 0x7b7bf68d,
0xf2f2ff0d, 0x6b6bd6bd, 0x6f6fdeb1, 0xc5c59154,
0x30306050, 0x01010203, 0x6767cea9, 0x2b2b567d,
0xfefee719, 0xd7d7b562, 0xabab4de6, 0x7676ec9a,
0xcaca8f45, 0x82821f9d, 0xc9c98940, 0x7d7dfa87,
0xfafaef15, 0x5959b2eb, 0x47478ec9, 0xf0f0fb0b,
0xadad41ec, 0xd4d4b367, 0xa2a25ffd, 0xafaf45ea,
0x9c9c23bf, 0xa4a453f7, 0x7272e496, 0xc0c09b5b,
0xb7b775c2, 0xfdfde11c, 0x93933dae, 0x26264c6a,
0x36366c5a, 0x3f3f7e41, 0xf7f7f502, 0xcccc834f,
0x3434685c, 0xa5a551f4, 0xe5e5d134, 0xf1f1f908,
0x7171e293, 0xd8d8ab73, 0x31316253, 0x15152a3f,
0x0404080c, 0xc7c79552, 0x23234665, 0xc3c39d5e,
0x18183028, 0x969637a1, 0x05050a0f, 0x9a9a2fb5,
0x07070e09, 0x12122436, 0x80801b9b, 0xe2e2df3d,
0xebebcd26, 0x27274e69, 0xb2b27fcd, 0x7575ea9f,
0x0909121b, 0x83831d9e, 0x2c2c5874, 0x1a1a342e,
0x1b1b362d, 0x6e6edcb2, 0x5a5ab4ee, 0xa0a05bfb,
0x5252a4f6, 0x3b3b764d, 0xd6d6b761, 0xb3b37dce,
0x2929527b, 0xe3e3dd3e, 0x2f2f5e71, 0x84841397,
0x5353a6f5, 0xd1d1b968, 0x00000000, 0xededc12c,
0x20204060, 0xfcfce31f, 0xb1b179c8, 0x5b5bb6ed,
0x6a6ad4be, 0xcbcb8d46, 0xbebe67d9, 0x3939724b,
0x4a4a94de, 0x4c4c98d4, 0x5858b0e8, 0xcfcf854a,
0xd0d0bb6b, 0xefefc52a, 0xaaaa4fe5, 0xfbfbed16,
0x434386c5, 0x4d4d9ad7, 0x33336655, 0x85851194,
0x45458acf, 0xf9f9e910, 0x02020406, 0x7f7ffe81,
0x5050a0f0, 0x3c3c7844, 0x9f9f25ba, 0xa8a84be3,
0x5151a2f3, 0xa3a35dfe, 0x404080c0, 0x8f8f058a,
0x92923fad, 0x9d9d21bc, 0x38387048, 0xf5f5f104,
0xbcbc63df, 0xb6b677c1, 0xdadaaf75, 0x21214263,
0x10102030, 0xffffe51a, 0xf3f3fd0e, 0xd2d2bf6d,
0xcdcd814c, 0x0c0c1814, 0x13132635, 0xececc32f,
0x5f5fbee1, 0x979735a2, 0x444488cc, 0x17172e39,
0xc4c49357, 0xa7a755f2, 0x7e7efc82, 0x3d3d7a47,
0x6464c8ac, 0x5d5dbae7, 0x1919322b, 0x7373e695,
0x6060c0a0, 0x81811998, 0x4f4f9ed1, 0xdcdca37f,
0x22224466, 0x2a2a547e, 0x90903bab, 0x88880b83,
0x46468cca, 0xeeeec729, 0xb8b86bd3, 0x1414283c,
0xdedea779, 0x5e5ebce2, 0x0b0b161d, 0xdbdbad76,
0xe0e0db3b, 0x32326456, 0x3a3a744e, 0x0a0a141e,
0x494992db, 0x06060c0a, 0x2424486c, 0x5c5cb8e4,
0xc2c29f5d, 0xd3d3bd6e, 0xacac43ef, 0x6262c4a6,
0x919139a8, 0x959531a4, 0xe4e4d337, 0x7979f28b,
0xe7e7d532, 0xc8c88b43, 0x37376e59, 0x6d6ddab7,
0x8d8d018c, 0xd5d5b164, 0x4e4e9cd2, 0xa9a949e0,
0x6c6cd8b4, 0x5656acfa, 0xf4f4f307, 0xeaeacf25,
0x6565caaf, 0x7a7af48e, 0xaeae47e9, 0x08081018,
0xbaba6fd5, 0x7878f088, 0x25254a6f, 0x2e2e5c72,
0x1c1c3824, 0xa6a657f1, 0xb4b473c7, 0xc6c69751,
0xe8e8cb23, 0xdddda17c, 0x7474e89c, 0x1f1f3e21,
0x4b4b96dd, 0xbdbd61dc, 0x8b8b0d86, 0x8a8a0f85,
0x7070e090, 0x3e3e7c42, 0xb5b571c4, 0x6666ccaa,
0x484890d8, 0x03030605, 0xf6f6f701, 0x0e0e1c12,
0x6161c2a3, 0x35356a5f, 0x5757aef9, 0xb9b969d0,
0x86861791, 0xc1c19958, 0x1d1d3a27, 0x9e9e27b9,
0xe1e1d938, 0xf8f8eb13, 0x98982bb3, 0x11112233,
0x6969d2bb, 0xd9d9a970, 0x8e8e0789, 0x949433a7,
0x9b9b2db6, 0x1e1e3c22, 0x87871592, 0xe9e9c920,
0xcece8749, 0x5555aaff, 0x28285078, 0xdfdfa57a,
0x8c8c038f, 0xa1a159f8, 0x89890980, 0x0d0d1a17,
0xbfbf65da, 0xe6e6d731, 0x424284c6, 0x6868d0b8,
0x414182c3, 0x999929b0, 0x2d2d5a77, 0x0f0f1e11,
0xb0b07bcb, 0x5454a8fc, 0xbbbb6dd6, 0x16162c3a ];

var T3 = [
0x63c6a563, 0x7cf8847c, 0x77ee9977, 0x7bf68d7b,
0xf2ff0df2, 0x6bd6bd6b, 0x6fdeb16f, 0xc59154c5,
0x30605030, 0x01020301, 0x67cea967, 0x2b567d2b,
0xfee719fe, 0xd7b562d7, 0xab4de6ab, 0x76ec9a76,
0xca8f45ca, 0x821f9d82, 0xc98940c9, 0x7dfa877d,
0xfaef15fa, 0x59b2eb59, 0x478ec947, 0xf0fb0bf0,
0xad41ecad, 0xd4b367d4, 0xa25ffda2, 0xaf45eaaf,
0x9c23bf9c, 0xa453f7a4, 0x72e49672, 0xc09b5bc0,
0xb775c2b7, 0xfde11cfd, 0x933dae93, 0x264c6a26,
0x366c5a36, 0x3f7e413f, 0xf7f502f7, 0xcc834fcc,
0x34685c34, 0xa551f4a5, 0xe5d134e5, 0xf1f908f1,
0x71e29371, 0xd8ab73d8, 0x31625331, 0x152a3f15,
0x04080c04, 0xc79552c7, 0x23466523, 0xc39d5ec3,
0x18302818, 0x9637a196, 0x050a0f05, 0x9a2fb59a,
0x070e0907, 0x12243612, 0x801b9b80, 0xe2df3de2,
0xebcd26eb, 0x274e6927, 0xb27fcdb2, 0x75ea9f75,
0x09121b09, 0x831d9e83, 0x2c58742c, 0x1a342e1a,
0x1b362d1b, 0x6edcb26e, 0x5ab4ee5a, 0xa05bfba0,
0x52a4f652, 0x3b764d3b, 0xd6b761d6, 0xb37dceb3,
0x29527b29, 0xe3dd3ee3, 0x2f5e712f, 0x84139784,
0x53a6f553, 0xd1b968d1, 0x00000000, 0xedc12ced,
0x20406020, 0xfce31ffc, 0xb179c8b1, 0x5bb6ed5b,
0x6ad4be6a, 0xcb8d46cb, 0xbe67d9be, 0x39724b39,
0x4a94de4a, 0x4c98d44c, 0x58b0e858, 0xcf854acf,
0xd0bb6bd0, 0xefc52aef, 0xaa4fe5aa, 0xfbed16fb,
0x4386c543, 0x4d9ad74d, 0x33665533, 0x85119485,
0x458acf45, 0xf9e910f9, 0x02040602, 0x7ffe817f,
0x50a0f050, 0x3c78443c, 0x9f25ba9f, 0xa84be3a8,
0x51a2f351, 0xa35dfea3, 0x4080c040, 0x8f058a8f,
0x923fad92, 0x9d21bc9d, 0x38704838, 0xf5f104f5,
0xbc63dfbc, 0xb677c1b6, 0xdaaf75da, 0x21426321,
0x10203010, 0xffe51aff, 0xf3fd0ef3, 0xd2bf6dd2,
0xcd814ccd, 0x0c18140c, 0x13263513, 0xecc32fec,
0x5fbee15f, 0x9735a297, 0x4488cc44, 0x172e3917,
0xc49357c4, 0xa755f2a7, 0x7efc827e, 0x3d7a473d,
0x64c8ac64, 0x5dbae75d, 0x19322b19, 0x73e69573,
0x60c0a060, 0x81199881, 0x4f9ed14f, 0xdca37fdc,
0x22446622, 0x2a547e2a, 0x903bab90, 0x880b8388,
0x468cca46, 0xeec729ee, 0xb86bd3b8, 0x14283c14,
0xdea779de, 0x5ebce25e, 0x0b161d0b, 0xdbad76db,
0xe0db3be0, 0x32645632, 0x3a744e3a, 0x0a141e0a,
0x4992db49, 0x060c0a06, 0x24486c24, 0x5cb8e45c,
0xc29f5dc2, 0xd3bd6ed3, 0xac43efac, 0x62c4a662,
0x9139a891, 0x9531a495, 0xe4d337e4, 0x79f28b79,
0xe7d532e7, 0xc88b43c8, 0x376e5937, 0x6ddab76d,
0x8d018c8d, 0xd5b164d5, 0x4e9cd24e, 0xa949e0a9,
0x6cd8b46c, 0x56acfa56, 0xf4f307f4, 0xeacf25ea,
0x65caaf65, 0x7af48e7a, 0xae47e9ae, 0x08101808,
0xba6fd5ba, 0x78f08878, 0x254a6f25, 0x2e5c722e,
0x1c38241c, 0xa657f1a6, 0xb473c7b4, 0xc69751c6,
0xe8cb23e8, 0xdda17cdd, 0x74e89c74, 0x1f3e211f,
0x4b96dd4b, 0xbd61dcbd, 0x8b0d868b, 0x8a0f858a,
0x70e09070, 0x3e7c423e, 0xb571c4b5, 0x66ccaa66,
0x4890d848, 0x03060503, 0xf6f701f6, 0x0e1c120e,
0x61c2a361, 0x356a5f35, 0x57aef957, 0xb969d0b9,
0x86179186, 0xc19958c1, 0x1d3a271d, 0x9e27b99e,
0xe1d938e1, 0xf8eb13f8, 0x982bb398, 0x11223311,
0x69d2bb69, 0xd9a970d9, 0x8e07898e, 0x9433a794,
0x9b2db69b, 0x1e3c221e, 0x87159287, 0xe9c920e9,
0xce8749ce, 0x55aaff55, 0x28507828, 0xdfa57adf,
0x8c038f8c, 0xa159f8a1, 0x89098089, 0x0d1a170d,
0xbf65dabf, 0xe6d731e6, 0x4284c642, 0x68d0b868,
0x4182c341, 0x9929b099, 0x2d5a772d, 0x0f1e110f,
0xb07bcbb0, 0x54a8fc54, 0xbb6dd6bb, 0x162c3a16 ];

var T4 = [
0xc6a56363, 0xf8847c7c, 0xee997777, 0xf68d7b7b,
0xff0df2f2, 0xd6bd6b6b, 0xdeb16f6f, 0x9154c5c5,
0x60503030, 0x02030101, 0xcea96767, 0x567d2b2b,
0xe719fefe, 0xb562d7d7, 0x4de6abab, 0xec9a7676,
0x8f45caca, 0x1f9d8282, 0x8940c9c9, 0xfa877d7d,
0xef15fafa, 0xb2eb5959, 0x8ec94747, 0xfb0bf0f0,
0x41ecadad, 0xb367d4d4, 0x5ffda2a2, 0x45eaafaf,
0x23bf9c9c, 0x53f7a4a4, 0xe4967272, 0x9b5bc0c0,
0x75c2b7b7, 0xe11cfdfd, 0x3dae9393, 0x4c6a2626,
0x6c5a3636, 0x7e413f3f, 0xf502f7f7, 0x834fcccc,
0x685c3434, 0x51f4a5a5, 0xd134e5e5, 0xf908f1f1,
0xe2937171, 0xab73d8d8, 0x62533131, 0x2a3f1515,
0x080c0404, 0x9552c7c7, 0x46652323, 0x9d5ec3c3,
0x30281818, 0x37a19696, 0x0a0f0505, 0x2fb59a9a,
0x0e090707, 0x24361212, 0x1b9b8080, 0xdf3de2e2,
0xcd26ebeb, 0x4e692727, 0x7fcdb2b2, 0xea9f7575,
0x121b0909, 0x1d9e8383, 0x58742c2c, 0x342e1a1a,
0x362d1b1b, 0xdcb26e6e, 0xb4ee5a5a, 0x5bfba0a0,
0xa4f65252, 0x764d3b3b, 0xb761d6d6, 0x7dceb3b3,
0x527b2929, 0xdd3ee3e3, 0x5e712f2f, 0x13978484,
0xa6f55353, 0xb968d1d1, 0x00000000, 0xc12ceded,
0x40602020, 0xe31ffcfc, 0x79c8b1b1, 0xb6ed5b5b,
0xd4be6a6a, 0x8d46cbcb, 0x67d9bebe, 0x724b3939,
0x94de4a4a, 0x98d44c4c, 0xb0e85858, 0x854acfcf,
0xbb6bd0d0, 0xc52aefef, 0x4fe5aaaa, 0xed16fbfb,
0x86c54343, 0x9ad74d4d, 0x66553333, 0x11948585,
0x8acf4545, 0xe910f9f9, 0x04060202, 0xfe817f7f,
0xa0f05050, 0x78443c3c, 0x25ba9f9f, 0x4be3a8a8,
0xa2f35151, 0x5dfea3a3, 0x80c04040, 0x058a8f8f,
0x3fad9292, 0x21bc9d9d, 0x70483838, 0xf104f5f5,
0x63dfbcbc, 0x77c1b6b6, 0xaf75dada, 0x42632121,
0x20301010, 0xe51affff, 0xfd0ef3f3, 0xbf6dd2d2,
0x814ccdcd, 0x18140c0c, 0x26351313, 0xc32fecec,
0xbee15f5f, 0x35a29797, 0x88cc4444, 0x2e391717,
0x9357c4c4, 0x55f2a7a7, 0xfc827e7e, 0x7a473d3d,
0xc8ac6464, 0xbae75d5d, 0x322b1919, 0xe6957373,
0xc0a06060, 0x19988181, 0x9ed14f4f, 0xa37fdcdc,
0x44662222, 0x547e2a2a, 0x3bab9090, 0x0b838888,
0x8cca4646, 0xc729eeee, 0x6bd3b8b8, 0x283c1414,
0xa779dede, 0xbce25e5e, 0x161d0b0b, 0xad76dbdb,
0xdb3be0e0, 0x64563232, 0x744e3a3a, 0x141e0a0a,
0x92db4949, 0x0c0a0606, 0x486c2424, 0xb8e45c5c,
0x9f5dc2c2, 0xbd6ed3d3, 0x43efacac, 0xc4a66262,
0x39a89191, 0x31a49595, 0xd337e4e4, 0xf28b7979,
0xd532e7e7, 0x8b43c8c8, 0x6e593737, 0xdab76d6d,
0x018c8d8d, 0xb164d5d5, 0x9cd24e4e, 0x49e0a9a9,
0xd8b46c6c, 0xacfa5656, 0xf307f4f4, 0xcf25eaea,
0xcaaf6565, 0xf48e7a7a, 0x47e9aeae, 0x10180808,
0x6fd5baba, 0xf0887878, 0x4a6f2525, 0x5c722e2e,
0x38241c1c, 0x57f1a6a6, 0x73c7b4b4, 0x9751c6c6,
0xcb23e8e8, 0xa17cdddd, 0xe89c7474, 0x3e211f1f,
0x96dd4b4b, 0x61dcbdbd, 0x0d868b8b, 0x0f858a8a,
0xe0907070, 0x7c423e3e, 0x71c4b5b5, 0xccaa6666,
0x90d84848, 0x06050303, 0xf701f6f6, 0x1c120e0e,
0xc2a36161, 0x6a5f3535, 0xaef95757, 0x69d0b9b9,
0x17918686, 0x9958c1c1, 0x3a271d1d, 0x27b99e9e,
0xd938e1e1, 0xeb13f8f8, 0x2bb39898, 0x22331111,
0xd2bb6969, 0xa970d9d9, 0x07898e8e, 0x33a79494,
0x2db69b9b, 0x3c221e1e, 0x15928787, 0xc920e9e9,
0x8749cece, 0xaaff5555, 0x50782828, 0xa57adfdf,
0x038f8c8c, 0x59f8a1a1, 0x09808989, 0x1a170d0d,
0x65dabfbf, 0xd731e6e6, 0x84c64242, 0xd0b86868,
0x82c34141, 0x29b09999, 0x5a772d2d, 0x1e110f0f,
0x7bcbb0b0, 0xa8fc5454, 0x6dd6bbbb, 0x2c3a1616 ];

function B0(x) { return (x&255); }
function B1(x) { return ((x>>8)&255); }
function B2(x) { return ((x>>16)&255); }
function B3(x) { return ((x>>24)&255); }

function packBytes(octets)
{
  var i, j;
  var len=octets.length;
  var b=new Array(len/4);

  if (!octets || len % 4) return;

  for (i=0, j=0; j<len; j+= 4)
     b[i++] = octets[j] | (octets[j+1]<<8) | (octets[j+2]<<16) | (octets[j+3]<<24);

  return b;  
}

function unpackBytes(packed)
{
  var j;
  var i=0, l = packed.length;
  var r = new Array(l*4);

  for (j=0; j<l; j++)
  {
    r[i++] = B0(packed[j]);
    r[i++] = B1(packed[j]);
    r[i++] = B2(packed[j]);
    r[i++] = B3(packed[j]);
  }
  return r;
}

// ------------------------------------------------

var maxkc=8;
var maxrk=14;

function keyExpansion(key)
{
  var kc, i, j, r, t;
  var rounds;
  var keySched=new Array(maxrk+1);
  var keylen=key.length;
  var k=new Array(maxkc);
  var tk=new Array(maxkc);
  var rconpointer=0;

  if(keylen==16)
  {
   rounds=10;
   kc=4;
  }
  else if(keylen==24)
  {
   rounds=12;
   kc=6
  }
  else if(keylen==32)
  {
   rounds=14;
   kc=8
  }
  else
  {
   alert('Invalid key length '+keylen);
   return;
  }

  for(i=0; i<maxrk+1; i++) keySched[i]=new Array(4);

  for(i=0,j=0; j<keylen; j++,i+=4)
    k[j] = key[i] | (key[i+1]<<8)
                     | (key[i+2]<<16) | (key[i+3]<<24);

  for(j=kc-1; j>=0; j--) tk[j] = k[j];

  r=0;
  t=0;
  for(j=0; (j<kc)&&(r<rounds+1); )
  {
    for(; (j<kc)&&(t<4); j++,t++)
    {
      keySched[r][t]=tk[j];
    }
    if(t==4)
    {
      r++;
      t=0;
    }
  }

  while(r<rounds+1)
  {
    var temp = tk[kc-1];

    tk[0] ^= S[B1(temp)] | (S[B2(temp)]<<8) | (S[B3(temp)]<<16) | (S[B0(temp)]<<24);
    tk[0] ^= Rcon[rconpointer++];

    if(kc != 8)
    {
      for(j=1; j<kc; j++) tk[j] ^= tk[j-1];
    }
    else
    {
      for(j=1; j<kc/2; j++) tk[j] ^= tk[j-1];
 
      temp = tk[kc/2-1];
      tk[kc/2] ^= S[B0(temp)] | (S[B1(temp)]<<8) | (S[B2(temp)]<<16) | (S[B3(temp)]<<24);

      for(j=kc/2+1; j<kc; j++) tk[j] ^= tk[j-1];
    }

    for(j=0; (j<kc)&&(r<rounds+1); )
    {
      for(; (j<kc)&&(t<4); j++,t++)
      {
        keySched[r][t]=tk[j];
      }
      if(t==4)
      {
        r++;
        t=0;
      }
    }
  }
  this.rounds = rounds;
  this.rk = keySched;
  return this;
}

function AESencrypt(block, ctx)
{
  var r;
  var temp=new Array(4);

  var b = packBytes(block);
  var rounds = ctx.rounds;

  for(r=0; r<rounds-1; r++)
  {
    temp[0] = b[0] ^ ctx.rk[r][0];
    temp[1] = b[1] ^ ctx.rk[r][1];
    temp[2] = b[2] ^ ctx.rk[r][2];
    temp[3] = b[3] ^ ctx.rk[r][3];

    b[0] = T1[B0(temp[0])] ^ T2[B1(temp[1])] ^ T3[B2(temp[2])] ^ T4[B3(temp[3])];
    b[1] = T1[B0(temp[1])] ^ T2[B1(temp[2])] ^ T3[B2(temp[3])] ^ T4[B3(temp[0])];
    b[2] = T1[B0(temp[2])] ^ T2[B1(temp[3])] ^ T3[B2(temp[0])] ^ T4[B3(temp[1])];
    b[3] = T1[B0(temp[3])] ^ T2[B1(temp[0])] ^ T3[B2(temp[1])] ^ T4[B3(temp[2])];
  }

  // last round is special
  r = rounds-1;

  temp[0] = b[0] ^ ctx.rk[r][0];
  temp[1] = b[1] ^ ctx.rk[r][1];
  temp[2] = b[2] ^ ctx.rk[r][2];
  temp[3] = b[3] ^ ctx.rk[r][3];

  b[0] = B1(T1[B0(temp[0])]) | (B1(T1[B1(temp[1])])<<8) | (B1(T1[B2(temp[2])])<<16) | (B1(T1[B3(temp[3])])<<24);
  b[1] = B1(T1[B0(temp[1])]) | (B1(T1[B1(temp[2])])<<8) | (B1(T1[B2(temp[3])])<<16) | (B1(T1[B3(temp[0])])<<24);
  b[2] = B1(T1[B0(temp[2])]) | (B1(T1[B1(temp[3])])<<8) | (B1(T1[B2(temp[0])])<<16) | (B1(T1[B3(temp[1])])<<24);
  b[3] = B1(T1[B0(temp[3])]) | (B1(T1[B1(temp[0])])<<8) | (B1(T1[B2(temp[1])])<<16) | (B1(T1[B3(temp[2])])<<24);
  
  b[0] ^= ctx.rk[rounds][0];
  b[1] ^= ctx.rk[rounds][1];
  b[2] ^= ctx.rk[rounds][2];
  b[3] ^= ctx.rk[rounds][3];

  return unpackBytes(b);
}

// This function takes a prospective plaintext (string or array of bytes)
// and pads it with zero bytes if its length is not a multiple of the block 
// size. If plaintext is a string, it is converted to an array of bytes
// in the process. The type checking can be made much nicer using the 
// instanceof operator, but this operator is not available until IE5.0 so I 
// chose to use the heuristic below. 

function formatPlaintext(plaintext) {
  var bpb = blockSizeInBits / 8;               // bytes per block
  var i;

  // if primitive string or String instance
  if (typeof plaintext == "string" || plaintext.indexOf) {
	plaintext = unescape(encodeURIComponent(plaintext));
    plaintext = plaintext.split("");
    // Unicode issues here (ignoring high byte)
    for (i=0; i<plaintext.length; i++)
    {
		plaintext[i] = plaintext[i].charCodeAt(0) & 0xFF;
    }
  } 

  for (i = bpb - (plaintext.length % bpb); i > 0 && i < bpb; i--) 
    plaintext[plaintext.length] = 0;
  
  return plaintext;
}


// rijndaelEncrypt(plaintext, key, mode)
// Encrypts the plaintext using the given key and in the given mode. 
// The parameter "plaintext" can either be a string or an array of bytes. 
// The parameter "key" must be an array of key bytes. If you have a hex 
// string representing the key, invoke hexToByteArray() on it to convert it 
// to an array of bytes. The third parameter "mode" is a string indicating
// the encryption mode to use, either "ECB" or "CBC". If the parameter is
// omitted, ECB is assumed.
// 
// An array of bytes representing the cihpertext is returned. To convert 
// this array to hex, invoke byteArrayToHex() on it. If you are using this 
// "for real" it is a good idea to change the function getRandomBytes() to 
// something that returns truly random bits.

function rijndaelEncrypt(plaintext, key, mode, iv, thermometer, start, factor) {
  var i, aBlock;
  var bpb = blockSizeInBits / 8;          // bytes per block
  var ct;                                 // ciphertext

  if (!plaintext || !key)
    return;
  if (key.length*8 != keySizeInBits)
    return; 
  if (mode == "CBC")
    ct = iv;             // get IV
  else {
    mode = "ECB";
    ct = new Array();
  }

  // convert plaintext to byte array and pad with zeros if necessary. 
  plaintext = formatPlaintext(plaintext);

  var expandedKey = new keyExpansion(key);
  var numBlocks = plaintext.length / bpb;
  
  for (var block=0; block < numBlocks; block++) {
    aBlock = plaintext.slice(block*bpb, (block+1)*bpb);
    if (mode == "CBC")
      for (var i=0; i<bpb; i++) 
        aBlock[i] ^= ct[block*bpb + i];
    ct = ct.concat(AESencrypt(aBlock, expandedKey));
    
    if (thermometer != undefined)
    	thermometer.value = block / numBlocks * factor + start;
  }

  return ct;
}
javascript_obj0718_020.js pdf-javascript-stream PDF /JS object 718 at offset 0x54724 33138 bytes
SHA-256: e6148b768af5b12460cf3e62fbab899b427b7493847763e208cddbfbe94685cd
Preview script
First 1,000 lines of the extracted script
// Copyright (c) 2005  Tom Wu
// All Rights Reserved.
// See "LICENSE" for details.

// Basic JavaScript BN library - subset useful for RSA encryption.
function BigInt_init(){}
// Bits per digit
var dbits;

// JavaScript engine analysis
var canary = 0xdeadbeefcafe;
var j_lm = ((canary&0xffffff)==0xefcafe);

// (public) Constructor
function BigInteger(a,b,c) {
  if(a != null)
    if("number" == typeof a) this.fromNumber(a,b,c);
    else if(b == null && "string" != typeof a) this.fromString(a,256);
    else this.fromString(a,b);
}

// return new, unset BigInteger
function nbi() { return new BigInteger(null); }

// am: Compute w_j += (x*this_i), propagate carries,
// c is initial carry, returns final carry.
// c < 3*dvalue, x < 2*dvalue, this_i < dvalue
// We need to select the fastest one that works in this environment.

// am1: use a single mult and divide to get the high bits,
// max digit bits should be 26 because
// max internal value = 2*dvalue^2-2*dvalue (< 2^53)
function am1(i,x,w,j,c,n) {
  while(--n >= 0) {
    var v = x*this[i++]+w[j]+c;
    c = Math.floor(v/0x4000000);
    w[j++] = v&0x3ffffff;
  }
  return c;
}
// am2 avoids a big mult-and-extract completely.
// Max digit bits should be <= 30 because we do bitwise ops
// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
function am2(i,x,w,j,c,n) {
  var xl = x&0x7fff, xh = x>>15;
  while(--n >= 0) {
    var l = this[i]&0x7fff;
    var h = this[i++]>>15;
    var m = xh*l+h*xl;
    l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
    c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
    w[j++] = l&0x3fffffff;
  }
  return c;
}
// Alternately, set max digit bits to 28 since some
// browsers slow down when dealing with 32-bit numbers.
function am3(i,x,w,j,c,n) {
  var xl = x&0x3fff, xh = x>>14;
  while(--n >= 0) {
    var l = this[i]&0x3fff;
    var h = this[i++]>>14;
    var m = xh*l+h*xl;
    l = xl*l+((m&0x3fff)<<14)+w[j]+c;
    c = (l>>28)+(m>>14)+xh*h;
    w[j++] = l&0xfffffff;
  }
  return c;
}
//if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
  //BigInteger.prototype.am = am2;
  //dbits = 30;
//}
//Else if(j_lm && (navigator.appName != "Netscape")) {
  //BigInteger.prototype.am = am1;
  //dbits = 26;
//}
//Else { // Mozilla/Netscape seems to prefer am3
  BigInteger.prototype.am = am3;
  dbits = 28;
//}

BigInteger.prototype.DB = dbits;
BigInteger.prototype.DM = ((1<<dbits)-1);
BigInteger.prototype.DV = (1<<dbits);

var BI_FP = 52;
BigInteger.prototype.FV = Math.pow(2,BI_FP);
BigInteger.prototype.F1 = BI_FP-dbits;
BigInteger.prototype.F2 = 2*dbits-BI_FP;

// Digit conversions
var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
var BI_RC = new Array();
var rr,vv;
rr = "0".charCodeAt(0);
for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
rr = "a".charCodeAt(0);
for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
rr = "A".charCodeAt(0);
for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;

function int2char(n) { return BI_RM.charAt(n); }
function intAt(s,i) {
  var c = BI_RC[s.charCodeAt(i)];
  return (c==null)?-1:c;
}

// (protected) copy this to r
function bnpCopyTo(r) {
  for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
  r.t = this.t;
  r.s = this.s;
}

// (protected) set from integer value x, -DV <= x < DV
function bnpFromInt(x) {
  this.t = 1;
  this.s = (x<0)?-1:0;
  if(x > 0) this[0] = x;
  else if(x < -1) this[0] = x+DV;
  else this.t = 0;
}

// return bigint initialized to value
function nbv(i) { var r = nbi(); r.fromInt(i); return r; }

// (protected) set from string and radix
function bnpFromString(s,b) {
  var k;
  if(b == 16) k = 4;
  else if(b == 8) k = 3;
  else if(b == 256) k = 8; // byte array
  else if(b == 2) k = 1;
  else if(b == 32) k = 5;
  else if(b == 4) k = 2;
  else { this.fromRadix(s,b); return; }
  this.t = 0;
  this.s = 0;
  var i = s.length, mi = false, sh = 0;
  while(--i >= 0) {
    var x = (k==8)?s[i]&0xff:intAt(s,i);
    if(x < 0) {
      if(s.charAt(i) == "-") mi = true;
      continue;
    }
    mi = false;
    if(sh == 0)
      this[this.t++] = x;
    else if(sh+k > this.DB) {
      this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
      this[this.t++] = (x>>(this.DB-sh));
    }
    else
      this[this.t-1] |= x<<sh;
    sh += k;
    if(sh >= this.DB) sh -= this.DB;
  }
  /*if(k == 8 && (s[0]&0x80) != 0) {
    this.s = -1;
    if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
  }*/
  this.clamp();
  if(mi) BigInteger.ZERO.subTo(this,this);
}

// (protected) clamp off excess high words
function bnpClamp() {
  var c = this.s&this.DM;
  while(this.t > 0 && this[this.t-1] == c) --this.t;
}

// (public) return string representation in given radix
function bnToString(b) {
  if(this.s < 0) return "-"+this.negate().toString(b);
  var k;
  if(b == 16) k = 4;
  else if(b == 8) k = 3;
  else if(b == 2) k = 1;
  else if(b == 32) k = 5;
  else if(b == 4) k = 2;
  else return this.toRadix(b);
  var km = (1<<k)-1, d, m = false, r = "", i = this.t;
  var p = this.DB-(i*this.DB)%k;
  if(i-- > 0) {
    if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
    while(i >= 0) {
      if(p < k) {
        d = (this[i]&((1<<p)-1))<<(k-p);
        d |= this[--i]>>(p+=this.DB-k);
      }
      else {
        d = (this[i]>>(p-=k))&km;
        if(p <= 0) { p += this.DB; --i; }
      }
      if(d > 0) m = true;
      if(m) r += int2char(d);
    }
  }
  return m?r:"0";
}

// (public) -this
function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }

// (public) |this|
function bnAbs() { return (this.s<0)?this.negate():this; }

// (public) return + if this > a, - if this < a, 0 if equal
function bnCompareTo(a) {
  var r = this.s-a.s;
  if(r != 0) return r;
  var i = this.t;
  r = i-a.t;
  if(r != 0) return r;
  while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
  return 0;
}

// returns bit length of the integer x
function nbits(x) {
  var r = 1, t;
  if((t=x>>>16) != 0) { x = t; r += 16; }
  if((t=x>>8) != 0) { x = t; r += 8; }
  if((t=x>>4) != 0) { x = t; r += 4; }
  if((t=x>>2) != 0) { x = t; r += 2; }
  if((t=x>>1) != 0) { x = t; r += 1; }
  return r;
}

// (public) return the number of bits in "this"
function bnBitLength() {
  if(this.t <= 0) return 0;
  return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
}

// (protected) r = this << n*DB
function bnpDLShiftTo(n,r) {
  var i;
  for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
  for(i = n-1; i >= 0; --i) r[i] = 0;
  r.t = this.t+n;
  r.s = this.s;
}

// (protected) r = this >> n*DB
function bnpDRShiftTo(n,r) {
  for(var i = n; i < this.t; ++i) r[i-n] = this[i];
  r.t = Math.max(this.t-n,0);
  r.s = this.s;
}

// (protected) r = this << n
function bnpLShiftTo(n,r) {
  var bs = n%this.DB;
  var cbs = this.DB-bs;
  var bm = (1<<cbs)-1;
  var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
  for(i = this.t-1; i >= 0; --i) {
    r[i+ds+1] = (this[i]>>cbs)|c;
    c = (this[i]&bm)<<bs;
  }
  for(i = ds-1; i >= 0; --i) r[i] = 0;
  r[ds] = c;
  r.t = this.t+ds+1;
  r.s = this.s;
  r.clamp();
}

// (protected) r = this >> n
function bnpRShiftTo(n,r) {
  r.s = this.s;
  var ds = Math.floor(n/this.DB);
  if(ds >= this.t) { r.t = 0; return; }
  var bs = n%this.DB;
  var cbs = this.DB-bs;
  var bm = (1<<bs)-1;
  r[0] = this[ds]>>bs;
  for(var i = ds+1; i < this.t; ++i) {
    r[i-ds-1] |= (this[i]&bm)<<cbs;
    r[i-ds] = this[i]>>bs;
  }
  if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
  r.t = this.t-ds;
  r.clamp();
}

// (protected) r = this - a
function bnpSubTo(a,r) {
  var i = 0, c = 0, m = Math.min(a.t,this.t);
  while(i < m) {
    c += this[i]-a[i];
    r[i++] = c&this.DM;
    c >>= this.DB;
  }
  if(a.t < this.t) {
    c -= a.s;
    while(i < this.t) {
      c += this[i];
      r[i++] = c&this.DM;
      c >>= this.DB;
    }
    c += this.s;
  }
  else {
    c += this.s;
    while(i < a.t) {
      c -= a[i];
      r[i++] = c&this.DM;
      c >>= this.DB;
    }
    c -= a.s;
  }
  r.s = (c<0)?-1:0;
  if(c < -1) r[i++] = this.DV+c;
  else if(c > 0) r[i++] = c;
  r.t = i;
  r.clamp();
}

// (protected) r = this * a, r != this,a (HAC 14.12)
// "this" should be the larger one if appropriate.
function bnpMultiplyTo(a,r) {
  var x = this.abs(), y = a.abs();
  var i = x.t;
  r.t = i+y.t;
  while(--i >= 0) r[i] = 0;
  for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
  r.s = 0;
  r.clamp();
  if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
}

// (protected) r = this^2, r != this (HAC 14.16)
function bnpSquareTo(r) {
  var x = this.abs();
  var i = r.t = 2*x.t;
  while(--i >= 0) r[i] = 0;
  for(i = 0; i < x.t-1; ++i) {
    var c = x.am(i,x[i],r,2*i,0,1);
    if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
      r[i+x.t] -= x.DV;
      r[i+x.t+1] = 1;
    }
  }
  if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
  r.s = 0;
  r.clamp();
}

// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
// r != q, this != m.  q or r may be null.
function bnpDivRemTo(m,q,r) {
  var pm = m.abs();
  if(pm.t <= 0) return;
  var pt = this.abs();
  if(pt.t < pm.t) {
    if(q != null) q.fromInt(0);
    if(r != null) this.copyTo(r);
    return;
  }
  if(r == null) r = nbi();
  var y = nbi(), ts = this.s, ms = m.s;
  var nsh = this.DB-nbits(pm[pm.t-1]);	// normalize modulus
  if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
  else { pm.copyTo(y); pt.copyTo(r); }
  var ys = y.t;
  var y0 = y[ys-1];
  if(y0 == 0) return;
  var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
  var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
  var i = r.t, j = i-ys, t = (q==null)?nbi():q;
  y.dlShiftTo(j,t);
  if(r.compareTo(t) >= 0) {
    r[r.t++] = 1;
    r.subTo(t,r);
  }
  BigInteger.ONE.dlShiftTo(ys,t);
  t.subTo(y,y);	// "negative" y so we can replace sub with am later
  while(y.t < ys) y[y.t++] = 0;
  while(--j >= 0) {
    // Estimate quotient digit
    var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
    if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) {	// Try it out
      y.dlShiftTo(j,t);
      r.subTo(t,r);
      while(r[i] < --qd) r.subTo(t,r);
    }
  }
  if(q != null) {
    r.drShiftTo(ys,q);
    if(ts != ms) BigInteger.ZERO.subTo(q,q);
  }
  r.t = ys;
  r.clamp();
  if(nsh > 0) r.rShiftTo(nsh,r);	// Denormalize remainder
  if(ts < 0) BigInteger.ZERO.subTo(r,r);
}

// (public) this mod a
function bnMod(a) {
  var r = nbi();
  this.abs().divRemTo(a,null,r);
  if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
  return r;
}

// Modular reduction using "classic" algorithm
function Classic(m) { this.m = m; }
function cConvert(x) {
  if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
  else return x;
}
function cRevert(x) { return x; }
function cReduce(x) { x.divRemTo(this.m,null,x); }
function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }

Classic.prototype.convert = cConvert;
Classic.prototype.revert = cRevert;
Classic.prototype.reduce = cReduce;
Classic.prototype.mulTo = cMulTo;
Classic.prototype.sqrTo = cSqrTo;

// (protected) return "-1/this % 2^DB"; useful for Mont. reduction
// justification:
//         xy == 1 (mod m)
//         xy =  1+km
//   xy(2-xy) = (1+km)(1-km)
// x[y(2-xy)] = 1-k^2m^2
// x[y(2-xy)] == 1 (mod m^2)
// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
// JS multiply "overflows" differently from C/C++, so care is needed here.
function bnpInvDigit() {
  if(this.t < 1) return 0;
  var x = this[0];
  if((x&1) == 0) return 0;
  var y = x&3;		// y == 1/x mod 2^2
  y = (y*(2-(x&0xf)*y))&0xf;	// y == 1/x mod 2^4
  y = (y*(2-(x&0xff)*y))&0xff;	// y == 1/x mod 2^8
  y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;	// y == 1/x mod 2^16
  // last step - calculate inverse mod DV directly;
  // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
  y = (y*(2-x*y%this.DV))%this.DV;		// y == 1/x mod 2^dbits
  // we really want the negative inverse, and -DV < y < DV
  return (y>0)?this.DV-y:-y;
}

// Montgomery reduction
function Montgomery(m) {
  this.m = m;
  this.mp = m.invDigit();
  this.mpl = this.mp&0x7fff;
  this.mph = this.mp>>15;
  this.um = (1<<(m.DB-15))-1;
  this.mt2 = 2*m.t;
}

// xR mod m
function montConvert(x) {
  var r = nbi();
  x.abs().dlShiftTo(this.m.t,r);
  r.divRemTo(this.m,null,r);
  if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
  return r;
}

// x/R mod m
function montRevert(x) {
  var r = nbi();
  x.copyTo(r);
  this.reduce(r);
  return r;
}

// x = x/R mod m (HAC 14.32)
function montReduce(x) {
  while(x.t <= this.mt2)	// pad x so am has enough room later
    x[x.t++] = 0;
  for(var i = 0; i < this.m.t; ++i) {
    // faster way of calculating u0 = x[i]*mp mod DV
    var j = x[i]&0x7fff;
    var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
    // use am to combine the multiply-shift-add into one call
    j = i+this.m.t;
    x[j] += this.m.am(0,u0,x,i,0,this.m.t);
    // propagate carry
    while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
  }
  x.clamp();
  x.drShiftTo(this.m.t,x);
  if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
}

// r = "x^2/R mod m"; x != r
function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }

// r = "xy/R mod m"; x,y != r
function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }

Montgomery.prototype.convert = montConvert;
Montgomery.prototype.revert = montRevert;
Montgomery.prototype.reduce = montReduce;
Montgomery.prototype.mulTo = montMulTo;
Montgomery.prototype.sqrTo = montSqrTo;

// (protected) true iff this is even
function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }

// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
function bnpExp(e,z) {
  if(e > 0xffffffff || e < 1) return BigInteger.ONE;
  var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
  g.copyTo(r);
  while(--i >= 0) {
    z.sqrTo(r,r2);
    if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
    else { var t = r; r = r2; r2 = t; }
  }
  return z.revert(r);
}

// (public) this^e % m, 0 <= e < 2^32
function bnModPowInt(e,m) {
  var z;
  if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
  return this.exp(e,z);
}

// protected
BigInteger.prototype.copyTo = bnpCopyTo;
BigInteger.prototype.fromInt = bnpFromInt;
BigInteger.prototype.fromString = bnpFromString;
BigInteger.prototype.clamp = bnpClamp;
BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
BigInteger.prototype.drShiftTo = bnpDRShiftTo;
BigInteger.prototype.lShiftTo = bnpLShiftTo;
BigInteger.prototype.rShiftTo = bnpRShiftTo;
BigInteger.prototype.subTo = bnpSubTo;
BigInteger.prototype.multiplyTo = bnpMultiplyTo;
BigInteger.prototype.squareTo = bnpSquareTo;
BigInteger.prototype.divRemTo = bnpDivRemTo;
BigInteger.prototype.invDigit = bnpInvDigit;
BigInteger.prototype.isEven = bnpIsEven;
BigInteger.prototype.exp = bnpExp;

// public
BigInteger.prototype.toString = bnToString;
BigInteger.prototype.negate = bnNegate;
BigInteger.prototype.abs = bnAbs;
BigInteger.prototype.compareTo = bnCompareTo;
BigInteger.prototype.bitLength = bnBitLength;
BigInteger.prototype.mod = bnMod;
BigInteger.prototype.modPowInt = bnModPowInt;

// "constants"
BigInteger.ZERO = nbv(0);
BigInteger.ONE = nbv(1);





// Copyright (c) 2005  Tom Wu
// All Rights Reserved.
// See "LICENSE" for details.

// Extended JavaScript BN functions, required for RSA private ops.

// (public)
function bnClone() { var r = nbi(); this.copyTo(r); return r; }

// (public) return value as integer
function bnIntValue() {
  if(this.s < 0) {
    if(this.t == 1) return this[0]-this.DV;
    else if(this.t == 0) return -1;
  }
  else if(this.t == 1) return this[0];
  else if(this.t == 0) return 0;
  // assumes 16 < DB < 32
  return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];
}

// (public) return value as byte
function bnByteValue() { return (this.t==0)?this.s:(this[0]<<24)>>24; }

// (public) return value as short (assumes DB>=16)
function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; }

// (protected) return x s.t. r^x < DV
function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }

// (public) 0 if this == 0, 1 if this > 0
function bnSigNum() {
  if(this.s < 0) return -1;
  else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
  else return 1;
}

// (protected) convert to radix string
function bnpToRadix(b) {
  if(b == null) b = 10;
  if(this.signum() == 0 || b < 2 || b > 36) return "0";
  var cs = this.chunkSize(b);
  var a = Math.pow(b,cs);
  var d = nbv(a), y = nbi(), z = nbi(), r = "";
  this.divRemTo(d,y,z);
  while(y.signum() > 0) {
    r = (a+z.intValue()).toString(b).substr(1) + r;
    y.divRemTo(d,y,z);
  }
  return z.intValue().toString(b) + r;
}

// (protected) convert from radix string
function bnpFromRadix(s,b) {
  this.fromInt(0);
  if(b == null) b = 10;
  var cs = this.chunkSize(b);
  var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
  for(var i = 0; i < s.length; ++i) {
    var x = intAt(s,i);
    if(x < 0) {
      if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
      continue;
    }
    w = b*w+x;
    if(++j >= cs) {
      this.dMultiply(d);
      this.dAddOffset(w,0);
      j = 0;
      w = 0;
    }
  }
  if(j > 0) {
    this.dMultiply(Math.pow(b,j));
    this.dAddOffset(w,0);
  }
  if(mi) BigInteger.ZERO.subTo(this,this);
}

// (protected) alternate constructor
function bnpFromNumber(a,b,c) {
  if("number" == typeof b) {
    // new BigInteger(int,int,RNG)
    if(a < 2) this.fromInt(1);
    else {
      this.fromNumber(a,c);
      if(!this.testBit(a-1))	// force MSB set
        this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);
      if(this.isEven()) this.dAddOffset(1,0); // force odd
      while(!this.isProbablePrime(b)) {
        this.dAddOffset(2,0);
        if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);
      }
    }
  }
  else {
    // new BigInteger(int,RNG)
    var x = new Array(), t = a&7;
    x.length = (a>>3)+1;
    b.nextBytes(x);
    if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;
    this.fromString(x,256);
  }
}

// (public) convert to bigendian byte array
function bnToByteArray() {
  var i = this.t, r = new Array();
  r[0] = this.s;
  var p = this.DB-(i*this.DB)%8, d, k = 0;
  if(i-- > 0) {
    if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p)
      r[k++] = d|(this.s<<(this.DB-p));
    while(i >= 0) {
      if(p < 8) {
        d = (this[i]&((1<<p)-1))<<(8-p);
        d |= this[--i]>>(p+=this.DB-8);
      }
      else {
        d = (this[i]>>(p-=8))&0xff;
        if(p <= 0) { p += this.DB; --i; }
      }
      if((d&0x80) != 0) d |= -256;
      if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
      if(k > 0 || d != this.s) r[k++] = d;
    }
  }
  return r;
}

function bnEquals(a) { return(this.compareTo(a)==0); }
function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
function bnMax(a) { return(this.compareTo(a)>0)?this:a; }

// (protected) r = this op a (bitwise)
function bnpBitwiseTo(a,op,r) {
  var i, f, m = Math.min(a.t,this.t);
  for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]);
  if(a.t < this.t) {
    f = a.s&this.DM;
    for(i = m; i < this.t; ++i) r[i] = op(this[i],f);
    r.t = this.t;
  }
  else {
    f = this.s&this.DM;
    for(i = m; i < a.t; ++i) r[i] = op(f,a[i]);
    r.t = a.t;
  }
  r.s = op(this.s,a.s);
  r.clamp();
}

// (public) this & a
function op_and(x,y) { return x&y; }
function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }

// (public) this | a
function op_or(x,y) { return x|y; }
function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }

// (public) this ^ a
function op_xor(x,y) { return x^y; }
function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }

// (public) this & ~a
function op_andnot(x,y) { return x&~y; }
function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }

// (public) ~this
function bnNot() {
  var r = nbi();
  for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i];
  r.t = this.t;
  r.s = ~this.s;
  return r;
}

// (public) this << n
function bnShiftLeft(n) {
  var r = nbi();
  if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
  return r;
}

// (public) this >> n
function bnShiftRight(n) {
  var r = nbi();
  if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
  return r;
}

// return index of lowest 1-bit in x, x < 2^31
function lbit(x) {
  if(x == 0) return -1;
  var r = 0;
  if((x&0xffff) == 0) { x >>= 16; r += 16; }
  if((x&0xff) == 0) { x >>= 8; r += 8; }
  if((x&0xf) == 0) { x >>= 4; r += 4; }
  if((x&3) == 0) { x >>= 2; r += 2; }
  if((x&1) == 0) ++r;
  return r;
}

// (public) returns index of lowest 1-bit (or -1 if none)
function bnGetLowestSetBit() {
  for(var i = 0; i < this.t; ++i)
    if(this[i] != 0) return i*this.DB+lbit(this[i]);
  if(this.s < 0) return this.t*this.DB;
  return -1;
}

// return number of 1 bits in x
function cbit(x) {
  var r = 0;
  while(x != 0) { x &= x-1; ++r; }
  return r;
}

// (public) return number of set bits
function bnBitCount() {
  var r = 0, x = this.s&this.DM;
  for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x);
  return r;
}

// (public) true iff nth bit is set
function bnTestBit(n) {
  var j = Math.floor(n/this.DB);
  if(j >= this.t) return(this.s!=0);
  return((this[j]&(1<<(n%this.DB)))!=0);
}

// (protected) this op (1<<n)
function bnpChangeBit(n,op) {
  var r = BigInteger.ONE.shiftLeft(n);
  this.bitwiseTo(r,op,r);
  return r;
}

// (public) this | (1<<n)
function bnSetBit(n) { return this.changeBit(n,op_or); }

// (public) this & ~(1<<n)
function bnClearBit(n) { return this.changeBit(n,op_andnot); }

// (public) this ^ (1<<n)
function bnFlipBit(n) { return this.changeBit(n,op_xor); }

// (protected) r = this + a
function bnpAddTo(a,r) {
  var i = 0, c = 0, m = Math.min(a.t,this.t);
  while(i < m) {
    c += this[i]+a[i];
    r[i++] = c&this.DM;
    c >>= this.DB;
  }
  if(a.t < this.t) {
    c += a.s;
    while(i < this.t) {
      c += this[i];
      r[i++] = c&this.DM;
      c >>= this.DB;
    }
    c += this.s;
  }
  else {
    c += this.s;
    while(i < a.t) {
      c += a[i];
      r[i++] = c&this.DM;
      c >>= this.DB;
    }
    c += a.s;
  }
  r.s = (c<0)?-1:0;
  if(c > 0) r[i++] = c;
  else if(c < -1) r[i++] = this.DV+c;
  r.t = i;
  r.clamp();
}

// (public) this + a
function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }

// (public) this - a
function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }

// (public) this * a
function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }

// (public) this / a
function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }

// (public) this % a
function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }

// (public) [this/a,this%a]
function bnDivideAndRemainder(a) {
  var q = nbi(), r = nbi();
  this.divRemTo(a,q,r);
  return new Array(q,r);
}

// (protected) this *= n, this >= 0, 1 < n < DV
function bnpDMultiply(n) {
  this[this.t] = this.am(0,n-1,this,0,0,this.t);
  ++this.t;
  this.clamp();
}

// (protected) this += n << w words, this >= 0
function bnpDAddOffset(n,w) {
  while(this.t <= w) this[this.t++] = 0;
  this[w] += n;
  while(this[w] >= this.DV) {
    this[w] -= this.DV;
    if(++w >= this.t) this[this.t++] = 0;
    ++this[w];
  }
}

// A "null" reducer
function NullExp() {}
function nNop(x) { return x; }
function nMulTo(x,y,r) { x.multiplyTo(y,r); }
function nSqrTo(x,r) { x.squareTo(r); }

NullExp.prototype.convert = nNop;
NullExp.prototype.revert = nNop;
NullExp.prototype.mulTo = nMulTo;
NullExp.prototype.sqrTo = nSqrTo;

// (public) this^e
function bnPow(e) { return this.exp(e,new NullExp()); }

// (protected) r = lower n words of "this * a", a.t <= n
// "this" should be the larger one if appropriate.
function bnpMultiplyLowerTo(a,n,r) {
  var i = Math.min(this.t+a.t,n);
  r.s = 0; // assumes a,this >= 0
  r.t = i;
  while(i > 0) r[--i] = 0;
  var j;
  for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t);
  for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i);
  r.clamp();
}

// (protected) r = "this * a" without lower n words, n > 0
// "this" should be the larger one if appropriate.
function bnpMultiplyUpperTo(a,n,r) {
  --n;
  var i = r.t = this.t+a.t-n;
  r.s = 0; // assumes a,this >= 0
  while(--i >= 0) r[i] = 0;
  for(i = Math.max(n-this.t,0); i < a.t; ++i)
    r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n);
  r.clamp();
  r.drShiftTo(1,r);
}

// Barrett modular reduction
function Barrett(m) {
  // setup Barrett
  this.r2 = nbi();
  this.q3 = nbi();
  BigInteger.ONE.dlShiftTo(2*m.t,this.r2);
  this.mu = this.r2.divide(m);
  this.m = m;
}

function barrettConvert(x) {
  if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);
  else if(x.compareTo(this.m) < 0) return x;
  else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }
}

function barrettRevert(x) { return x; }

// x = x mod m (HAC 14.42)
function barrettReduce(x) {
  x.drShiftTo(this.m.t-1,this.r2);
  if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }
  this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);
  this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);
  while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);
  x.subTo(this.r2,x);
  while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
}

// r = x^2 mod m; x != r
function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }

// r = x*y mod m; x,y != r
function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }

Barrett.prototype.convert = barrettConvert;
Barrett.prototype.revert = barrettRevert;
Barrett.prototype.reduce = barrettReduce;
Barrett.prototype.mulTo = barrettMulTo;
Barrett.prototype.sqrTo = barrettSqrTo;

// (public) this^e % m (HAC 14.85)
function bnModPow(e,m) {
  var i = e.bitLength(), k, r = nbv(1), z;
  if(i <= 0) return r;
  else if(i < 18) k = 1;
  else if(i < 48) k = 3;
  else if(i < 144) k = 4;
  else if(i < 768) k = 5;
  else k = 6;
  if(i < 8)
    z = new Classic(m);
  else if(m.isEven())
    z = new Barrett(m);
  else
    z = new Montgomery(m);

  // precomputation
  var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;
  g[1] = z.convert(this);
  if(k > 1) {
    var g2 = nbi();
    z.sqrTo(g[1],g2);
    while(n <= km) {
      g[n] = nbi();
      z.mulTo(g2,g[n-2],g[n]);
      n += 2;
    }
  }

  var j = e.t-1, w, is1 = true, r2 = nbi(), t;
  i = nbits(e[j])-1;
  while(j >= 0) {
    if(i >= k1) w = (e[j]>>(i-k1))&km;
    else {
…
javascript_obj0719_021.js pdf-javascript-stream PDF /JS object 719 at offset 0x56D46 144013 bytes
SHA-256: 7a0d61602467a3ebb51eeb3dc0b4e5557e5cf228aa7352a5e4c4de5b6ad1e63e
Preview script
First 1,000 lines of the extracted script
function DataMatrix_init(){}


var globalarr = undefined;

var gfIndex = new Array(1,2,4,8,16,32,64,128,45,90,180,69,138,57,114,228,229,231,227,235,251,219,155,27,54,108,216,157,23,46,92,184,93,186,89,178,73,146,9,18,36,72,144,13,26,52,104,208,141,55,110,220,149,7,14,28,56,112,224,237,247,195,171,123,246,193,175,115,230,225,239,243,203,187,91,182,65,130,41,82,164,101,202,185,95,190,81,162,105,210,137,63,126,252,213,135,35,70,140,53,106,212,133,39,78,156,21,42,84,168,125,250,217,159,19,38,76,152,29,58,116,232,253,215,131,43,86,172,117,234,249,223,147,11,22,44,88,176,77,154,25,50,100,200,189,87,174,113,226,233,255,211,139,59,118,236,245,199,163,107,214,129,47,94,188,85,170,121,242,201,191,83,166,97,194,169,127,254,209,143,51,102,204,181,71,142,49,98,196,165,103,206,177,79,158,17,34,68,136,61,122,244,197,167,99,198,161,111,222,145,15,30,60,120,240,205,183,67,134,33,66,132,37,74,148,5,10,20,40,80,160,109,218,153,31,62,124,248,221,151,3,6,12,24,48,96,192,173,119,238,241,207,179,75,150);

var gfAlpha = new Array(0,0,1,240,2,225,241,53,3,38,226,133,242,43,54,210,4,195,39,114,227,106,134,28,243,140,44,23,55,118,211,234,5,219,196,96,40,222,115,103,228,78,107,125,135,8,29,162,244,186,141,180,45,99,24,49,56,13,119,153,212,199,235,91,6,76,220,217,197,11,97,184,41,36,223,253,116,138,104,193,229,86,79,171,108,165,126,145,136,34,9,74,30,32,163,84,245,173,187,204,142,81,181,190,46,88,100,159,25,231,50,207,57,147,14,67,120,128,154,248,213,167,200,63,236,110,92,176,7,161,77,124,221,102,218,95,198,90,12,152,98,48,185,179,42,209,37,132,224,52,254,239,117,233,139,22,105,27,194,113,230,206,87,158,80,189,172,203,109,175,166,62,127,247,146,66,137,192,35,252,10,183,75,216,31,83,33,73,164,144,85,170,246,65,174,61,188,202,205,157,143,169,82,72,182,215,191,251,47,178,89,151,101,94,160,123,26,112,232,21,51,238,208,131,58,69,148,18,15,16,68,17,121,149,129,19,155,59,249,70,214,250,168,71,201,156,64,60,237,130,111,20,93,122,177,150);

var yyy = new Array(256);
yyy[0  ]=new Array(1); yyy[0] = 0;
yyy[1  ]=new Array(0,1  );
yyy[2  ]=new Array(0,2  ,4);
yyy[3  ]=new Array(0,3  ,6,5);
yyy[4  ]=new Array(0,4  ,8,12,16);
yyy[5  ]=new Array(0,5  ,10,15,20,17);
yyy[6  ]=new Array(0,6  ,12,10,24,30,20);
yyy[7  ]=new Array(0,7  ,14,9,28,27,18,21);
yyy[8  ]=new Array(0,8  ,16,24,32,40,48,56,64);
yyy[9  ]=new Array(0,9  ,18,27,36,45,54,63,72,65);
yyy[10 ]=new Array(0,10 ,20,30,40,34,60,54,80,90,68);
yyy[11 ]=new Array(0,11 ,22,29,44,39,58,49,88,83,78,69);
yyy[12 ]=new Array(0,12 ,24,20,48,60,40,36,96,108,120,116,80);
yyy[13 ]=new Array(0,13 ,26,23,52,57,46,35,104,101,114,127,92,81);
yyy[14 ]=new Array(0,14 ,28,18,56,54,36,42,112,126,108,98,72,70,84);
yyy[15 ]=new Array(0,15 ,30,17,60,51,34,45,120,119,102,105,68,75,90,85);
yyy[16 ]=new Array(0,16 ,32,48,64,80,96,112,128,144,160,176,192,208,224,240,45);
yyy[17 ]=new Array(0,17 ,34,51,68,85,102,119,136,153,170,187,204,221,238,255,61,44);
yyy[18 ]=new Array(0,18 ,36,54,72,90,108,126,144,130,180,166,216,202,252,238,13,31,41);
yyy[19 ]=new Array(0,19 ,38,53,76,95,106,121,152,139,190,173,212,199,242,225,29,14,59,40);
yyy[20 ]=new Array(0,20 ,40,60,80,68,120,108,160,180,136,156,240,228,216,204,109,121,69,81,61);
yyy[21 ]=new Array(0,21 ,42,63,84,65,126,107,168,189,130,151,252,233,214,195,125,104,87,66,41,60);
yyy[22 ]=new Array(0,22 ,44,58,88,78,116,98,176,166,156,138,232,254,196,210,77,91,97,119,21,3,57);
yyy[23 ]=new Array(0,23 ,46,57,92,75,114,101,184,175,150,129,228,243,202,221,93,74,115,100,1,22,47,56);
yyy[24 ]=new Array(0,24 ,48,40,96,120,80,72,192,216,240,232,160,184,144,136,173,181,157,133,205,213,253,229,109);
yyy[25 ]=new Array(0,25 ,50,43,100,125,86,79,200,209,250,227,172,181,158,135,189,164,143,150,217,192,235,242,117,108);
yyy[26 ]=new Array(0,26 ,52,46,104,114,92,70,208,202,228,254,184,162,140,150,141,151,185,163,229,255,209,203,93,71,105);
yyy[27 ]=new Array(0,27 ,54,45,108,119,90,65,216,195,238,245,180,175,130,153,157,134,171,176,241,234,199,220,69,94,115,104);
yyy[28 ]=new Array(0,28 ,56,36,112,108,72,84,224,252,216,196,144,140,168,180,237,241,213,201,157,129,165,185,13,17,53,41,125);
yyy[29 ]=new Array(0,29 ,58,39,116,105,78,83,232,245,210,207,156,129,166,187,253,224,199,218,137,148,179,174,21,8,47,50,97,124);
yyy[30 ]=new Array(0,30 ,60,34,120,102,68,90,240,238,204,210,136,150,180,170,205,211,241,239,181,171,137,151,61,35,1,31,69,91,121);
yyy[31 ]=new Array(0,31 ,62,33,124,99,66,93,248,231,198,217,132,155,186,165,221,194,227,252,161,190,159,128,37,58,27,4,89,70,103,120);
yyy[32 ]=new Array(0,32 ,64,96,128,160,192,224,45,13,109,77,173,141,237,205,90,122,26,58,218,250,154,186,119,87,55,23,247,215,183,151,180);
yyy[33 ]=new Array(0,33 ,66,99,132,165,198,231,37,4,103,70,161,128,227,194,74,107,8,41,206,239,140,173,111,78,45,12,235,202,169,136,148,181);
yyy[34 ]=new Array(0,34 ,68,102,136,170,204,238,61,31,121,91,181,151,241,211,122,88,62,28,242,208,182,148,71,101,3,33,207,237,139,169,244,214,176);
yyy[35 ]=new Array(0,35 ,70,101,140,175,202,233,53,22,115,80,185,154,255,220,106,73,44,15,230,197,160,131,95,124,25,58,211,240,149,182,212,247,146,177);
yyy[36 ]=new Array(0,36 ,72,108,144,180,216,252,13,41,69,97,157,185,213,241,26,62,82,118,138,174,194,230,23,51,95,123,135,163,207,235,52,16,124,88,164);
yyy[37 ]=new Array(0,37 ,74,111,148,177,222,251,5,32,79,106,145,180,219,254,10,47,64,101,158,187,212,241,15,42,69,96,155,190,209,244,20,49,94,123,128,165);
yyy[38 ]=new Array(0,38 ,76,106,152,190,212,242,29,59,81,119,133,163,201,239,58,28,118,80,162,132,238,200,39,1,107,77,191,153,243,213,116,82,56,30,236,202,160);
yyy[39 ]=new Array(0,39 ,78,105,156,187,210,245,21,50,91,124,137,174,199,224,42,13,100,67,182,145,248,223,63,24,113,86,163,132,237,202,84,115,26,61,200,239,134,161);
yyy[40 ]=new Array(0,40 ,80,120,160,136,240,216,109,69,61,21,205,229,157,181,218,242,138,162,122,82,42,2,183,159,231,207,23,63,71,111,153,177,201,225,57,17,105,65,244);
yyy[41 ]=new Array(0,41 ,82,123,164,141,246,223,101,76,55,30,193,232,147,186,202,227,152,177,110,71,60,21,175,134,253,212,11,34,89,112,185,144,235,194,29,52,79,102,220,245);
yyy[42 ]=new Array(0,42 ,84,126,168,130,252,214,125,87,41,3,213,255,129,171,250,208,174,132,82,120,6,44,135,173,211,249,47,5,123,81,217,243,141,167,113,91,37,15,164,142,240);
yyy[43 ]=new Array(0,43 ,86,125,172,135,250,209,117,94,35,8,217,242,143,164,234,193,188,151,70,109,16,59,159,180,201,226,51,24,101,78,249,210,175,132,85,126,3,40,140,167,218,241);
yyy[44 ]=new Array(0,44 ,88,116,176,156,232,196,77,97,21,57,253,209,165,137,154,182,194,238,42,6,114,94,215,251,143,163,103,75,63,19,25,53,65,109,169,133,241,221,84,120,12,32,228);
yyy[45 ]=new Array(0,45 ,90,119,180,153,238,195,69,104,31,50,241,220,171,134,138,167,208,253,62,19,100,73,207,226,149,184,123,86,33,12,57,20,99,78,141,160,215,250,124,81,38,11,200,229);
yyy[46 ]=new Array(0,46 ,92,114,184,150,228,202,93,115,1,47,229,203,185,151,186,148,230,200,2,44,94,112,231,201,187,149,95,113,3,45,89,119,5,43,225,207,189,147,4,42,88,118,188,146,224);
yyy[47 ]=new Array(0,47 ,94,113,188,147,226,205,85,122,11,36,233,198,183,152,170,133,244,219,22,57,72,103,255,208,161,142,67,108,29,50,121,86,39,8,197,234,155,180,44,3,114,93,144,191,206,225);
yyy[48 ]=new Array(0,48 ,96,80,192,240,160,144,173,157,205,253,109,93,13,61,119,71,23,39,183,135,215,231,218,234,186,138,26,42,122,74,238,222,142,190,46,30,78,126,67,115,35,19,131,179,227,211,153);
yyy[49 ]=new Array(0,49 ,98,83,196,245,166,151,165,148,199,246,97,80,3,50,103,86,5,52,163,146,193,240,194,243,160,145,6,55,100,85,206,255,172,157,10,59,104,89,107,90,9,56,175,158,205,252,169,152);
yyy[50 ]=new Array(0,50 ,100,86,200,250,172,158,189,143,217,235,117,71,17,35,87,101,51,1,159,173,251,201,234,216,142,188,34,16,70,116,174,156,202,248,102,84,2,48,19,33,119,69,219,233,191,141,249,203,157);
yyy[51 ]=new Array(0,51 ,102,85,204,255,170,153,181,134,211,224,121,74,31,44,71,116,33,18,139,184,237,222,242,193,148,167,62,13,88,107,142,189,232,219,66,113,36,23,59,8,93,110,247,196,145,162,201,250,175,156);
yyy[52 ]=new Array(0,52 ,104,92,208,228,184,140,141,185,229,209,93,105,53,1,55,3,95,107,231,211,143,187,186,142,210,230,106,94,2,54,110,90,6,50,190,138,214,226,227,215,139,191,51,7,91,111,89,109,49,5,137);
yyy[53 ]=new Array(0,53 ,106,95,212,225,190,139,133,176,239,218,81,100,59,14,39,18,77,120,243,198,153,172,162,151,200,253,118,67,28,41,78,123,36,17,154,175,240,197,203,254,161,148,31,42,117,64,105,92,3,54,189,136);
yyy[54 ]=new Array(0,54 ,108,90,216,238,180,130,157,171,241,199,69,115,41,31,23,33,123,77,207,249,163,149,138,188,230,208,82,100,62,8,46,24,66,116,246,192,154,172,179,133,223,233,107,93,7,49,57,15,85,99,225,215,141);
yyy[55 ]=new Array(0,55 ,110,89,220,235,178,133,149,162,251,204,73,126,39,16,7,48,105,94,219,236,181,130,146,165,252,203,78,121,32,23,14,57,96,87,210,229,188,139,155,172,245,194,71,112,41,30,9,62,103,80,213,226,187,140);
yyy[56 ]=new Array(0,56 ,112,72,224,216,144,168,237,213,157,165,13,53,125,69,247,207,135,191,23,47,103,95,26,34,106,82,250,194,138,178,195,251,179,139,35,27,83,107,46,22,94,102,206,246,190,134,52,12,68,124,212,236,164,156,217);
yyy[57 ]=new Array(0,57 ,114,75,228,221,150,175,229,220,151,174,1,56,115,74,231,222,149,172,3,58,113,72,2,59,112,73,230,223,148,173,227,218,145,168,7,62,117,76,6,63,116,77,226,219,144,169,4,61,118,79,224,217,146,171,225,216);
yyy[58 ]=new Array(0,58 ,116,78,232,210,156,166,253,199,137,179,21,47,97,91,215,237,163,153,63,5,75,113,42,16,94,100,194,248,182,140,131,185,247,205,107,81,31,37,126,68,10,48,150,172,226,216,84,110,32,26,188,134,200,242,169,147,221);
yyy[59 ]=new Array(0,59 ,118,77,236,215,154,161,245,206,131,184,25,34,111,84,199,252,177,138,43,16,93,102,50,9,68,127,222,229,168,147,163,152,213,238,79,116,57,2,86,109,32,27,186,129,204,247,100,95,18,41,136,179,254,197,145,170,231,220);
yyy[60 ]=new Array(0,60 ,120,68,240,204,136,180,205,241,181,137,61,1,69,121,183,139,207,243,71,123,63,3,122,70,2,62,138,182,242,206,67,127,59,7,179,143,203,247,142,178,246,202,126,66,6,58,244,200,140,176,4,56,124,64,57,5,65,125,201);
yyy[61 ]=new Array(0,61 ,122,71,244,201,142,179,197,248,191,130,49,12,75,118,167,154,221,224,83,110,41,20,98,95,24,37,150,171,236,209,99,94,25,36,151,170,237,208,166,155,220,225,82,111,40,21,196,249,190,131,48,13,74,119,1,60,123,70,245,200);
yyy[62 ]=new Array(0,62 ,124,66,248,198,132,186,221,227,161,159,37,27,89,103,151,169,235,213,111,81,19,45,74,116,54,8,178,140,206,240,3,61,127,65,251,197,135,185,222,224,162,156,38,24,90,100,148,170,232,214,108,82,16,46,73,119,53,11,177,143,205);
yyy[63 ]=new Array(0,63 ,126,65,252,195,130,189,213,234,171,148,41,22,87,104,135,184,249,198,123,68,5,58,82,109,44,19,174,145,208,239,35,28,93,98,223,224,161,158,246,201,136,183,10,53,116,75,164,155,218,229,88,103,38,25,113,78,15,48,141,178,243,204);
yyy[64 ]=new Array(0,64 ,128,192,45,109,173,237,90,26,218,154,119,55,247,183,180,244,52,116,153,217,25,89,238,174,110,46,195,131,67,3,69,5,197,133,104,40,232,168,31,95,159,223,50,114,178,242,241,177,113,49,220,156,92,28,171,235,43,107,134,198,6,70,138);
yyy[65 ]=new Array(0,65 ,130,195,41,104,171,234,82,19,208,145,123,58,249,184,164,229,38,103,141,204,15,78,246,183,116,53,223,158,93,28,101,36,231,166,76,13,206,143,55,118,181,244,30,95,156,221,193,128,67,2,232,169,106,43,147,210,17,80,186,251,56,121,202,139);
yyy[66 ]=new Array(0,66 ,132,198,37,103,161,227,74,8,206,140,111,45,235,169,148,214,16,82,177,243,53,119,222,156,90,24,251,185,127,61,5,71,129,195,32,98,164,230,79,13,203,137,106,40,238,172,145,211,21,87,180,246,48,114,219,153,95,29,254,188,122,56,10,72,142);
yyy[67 ]=new Array(0,67 ,134,197,33,98,167,228,66,1,196,135,99,32,229,166,132,199,2,65,165,230,35,96,198,133,64,3,231,164,97,34,37,102,163,224,4,71,130,193,103,36,225,162,70,5,192,131,161,226,39,100,128,195,6,69,227,160,101,38,194,129,68,7,74,9,204,143);
yyy[68 ]=new Array(0,68 ,136,204,61,121,181,241,122,62,242,182,71,3,207,139,244,176,124,56,201,141,65,5,142,202,6,66,179,247,59,127,197,129,77,9,248,188,112,52,191,251,55,115,130,198,10,78,49,117,185,253,12,72,132,192,75,15,195,135,118,50,254,186,167,227,47,107,154);
yyy[69 ]=new Array(0,69 ,138,207,57,124,179,246,114,55,248,189,75,14,193,132,228,161,110,43,221,152,87,18,150,211,28,89,175,234,37,96,229,160,111,42,220,153,86,19,151,210,29,88,174,235,36,97,1,68,139,206,56,125,178,247,115,54,249,188,74,15,192,133,231,162,109,40,222,155);
yyy[70 ]=new Array(0,70 ,140,202,53,115,185,255,106,44,230,160,95,25,211,149,212,146,88,30,225,167,109,43,190,248,50,116,139,205,7,65,133,195,9,79,176,246,60,122,239,169,99,37,218,156,86,16,81,23,221,155,100,34,232,174,59,125,183,241,14,72,130,196,39,97,171,237,18,84,158);
yyy[71 ]=new Array(0,71 ,142,201,49,118,191,248,98,37,236,171,83,20,221,154,196,131,74,13,245,178,123,60,166,225,40,111,151,208,25,94,165,226,43,108,148,211,26,93,199,128,73,14,246,177,120,63,97,38,239,168,80,23,222,153,3,68,141,202,50,117,188,251,103,32,233,174,86,17,216,159);
yyy[72 ]=new Array(0,72 ,144,216,13,69,157,213,26,82,138,194,23,95,135,207,52,124,164,236,57,113,169,225,46,102,190,246,35,107,179,251,104,32,248,176,101,45,245,189,114,58,226,170,127,55,239,167,92,20,204,132,81,25,193,137,70,14,214,158,75,3,219,147,208,152,64,8,221,149,77,5,202);
yyy[73 ]=new Array(0,73 ,146,219,9,64,155,210,18,91,128,201,27,82,137,192,36,109,182,255,45,100,191,246,54,127,164,237,63,118,173,228,72,1,218,147,65,8,211,154,90,19,200,129,83,26,193,136,108,37,254,183,101,44,247,190,126,55,236,165,119,62,229,172,144,217,2,75,153,208,11,66,130,203);
yyy[74 ]=new Array(0,74 ,148,222,5,79,145,219,10,64,158,212,15,69,155,209,20,94,128,202,17,91,133,207,30,84,138,192,27,81,143,197,40,98,188,246,45,103,185,243,34,104,182,252,39,109,179,249,60,118,168,226,57,115,173,231,54,124,162,232,51,121,167,237,80,26,196,142,85,31,193,139,90,16,206);
yyy[75 ]=new Array(0,75 ,150,221,1,74,151,220,2,73,148,223,3,72,149,222,4,79,146,217,5,78,147,216,6,77,144,219,7,76,145,218,8,67,158,213,9,66,159,212,10,65,156,215,11,64,157,214,12,71,154,209,13,70,155,208,14,69,152,211,15,68,153,210,16,91,134,205,17,90,135,204,18,89,132,207);
yyy[76 ]=new Array(0,76 ,152,212,29,81,133,201,58,118,162,238,39,107,191,243,116,56,236,160,105,37,241,189,78,2,214,154,83,31,203,135,232,164,112,60,245,185,109,33,210,158,74,6,207,131,87,27,156,208,4,72,129,205,25,85,166,234,62,114,187,247,35,111,253,177,101,41,224,172,120,52,199,139,95,19,218);
yyy[77 ]=new Array(0,77 ,154,215,25,84,131,206,50,127,168,229,43,102,177,252,100,41,254,179,125,48,231,170,86,27,204,129,79,2,213,152,200,133,82,31,209,156,75,6,250,183,96,45,227,174,121,52,172,225,54,123,181,248,47,98,158,211,4,73,135,202,29,80,189,240,39,106,164,233,62,115,143,194,21,88,150,219);
yyy[78 ]=new Array(0,78 ,156,210,21,91,137,199,42,100,182,248,63,113,163,237,84,26,200,134,65,15,221,147,126,48,226,172,107,37,247,185,168,230,52,122,189,243,33,111,130,204,30,80,151,217,11,69,252,178,96,46,233,167,117,59,214,152,74,4,195,141,95,17,125,51,225,175,104,38,244,186,87,25,203,133,66,12,222);
yyy[79 ]=new Array(0,79 ,158,209,17,94,143,192,34,109,188,243,51,124,173,226,68,11,218,149,85,26,203,132,102,41,248,183,119,56,233,166,136,199,22,89,153,214,7,72,170,229,52,123,187,244,37,106,204,131,82,29,221,146,67,12,238,161,112,63,255,176,97,46,61,114,163,236,44,99,178,253,31,80,129,206,14,65,144,223);
yyy[80 ]=new Array(0,80 ,160,240,109,61,205,157,218,138,122,42,183,231,23,71,153,201,57,105,244,164,84,4,67,19,227,179,46,126,142,222,31,79,191,239,114,34,210,130,197,149,101,53,168,248,8,88,134,214,38,118,235,187,75,27,92,12,252,172,49,97,145,193,62,110,158,206,83,3,243,163,228,180,68,20,137,217,41,121,167);
yyy[81 ]=new Array(0,81 ,162,243,105,56,203,154,210,131,112,33,187,234,25,72,137,216,43,122,224,177,66,19,91,10,249,168,50,99,144,193,63,110,157,204,86,7,244,165,237,188,79,30,132,213,38,119,182,231,20,69,223,142,125,44,100,53,198,151,13,92,175,254,126,47,220,141,23,70,181,228,172,253,14,95,197,148,103,54,247,166);
yyy[82 ]=new Array(0,82 ,164,246,101,55,193,147,202,152,110,60,175,253,11,89,185,235,29,79,220,142,120,42,115,33,215,133,22,68,178,224,95,13,251,169,58,104,158,204,149,199,49,99,240,162,84,6,230,180,66,16,131,209,39,117,44,126,136,218,73,27,237,191,190,236,26,72,219,137,127,45,116,38,208,130,17,67,181,231,7,85,163);
yyy[83 ]=new Array(0,83 ,166,245,97,50,199,148,194,145,100,55,163,240,5,86,169,250,15,92,200,155,110,61,107,56,205,158,10,89,172,255,127,44,217,138,30,77,184,235,189,238,27,72,220,143,122,41,214,133,112,35,183,228,17,66,20,71,178,225,117,38,211,128,254,173,88,11,159,204,57,106,60,111,154,201,93,14,251,168,87,4,241,162);
yyy[84 ]=new Array(0,84 ,168,252,125,41,213,129,250,174,82,6,135,211,47,123,217,141,113,37,164,240,12,88,35,119,139,223,94,10,246,162,159,203,55,99,226,182,74,30,101,49,205,153,24,76,176,228,70,18,238,186,59,111,147,199,188,232,20,64,193,149,105,61,19,71,187,239,110,58,198,146,233,189,65,21,148,192,60,104,202,158,98,54,183);
yyy[85 ]=new Array(0,85 ,170,255,121,44,211,134,242,167,88,13,139,222,33,116,201,156,99,54,176,229,26,79,59,110,145,196,66,23,232,189,191,234,21,64,198,147,108,57,77,24,231,178,52,97,158,203,118,35,220,137,15,90,165,240,132,209,46,123,253,168,87,2,83,6,249,172,42,127,128,213,161,244,11,94,216,141,114,39,154,207,48,101,227,182);
yyy[86 ]=new Array(0,86 ,172,250,117,35,217,143,234,188,70,16,159,201,51,101,249,175,85,3,140,218,32,118,19,69,191,233,102,48,202,156,223,137,115,37,170,252,6,80,53,99,153,207,64,22,236,186,38,112,138,220,83,5,255,169,204,154,96,54,185,239,21,67,147,197,63,105,230,176,74,28,121,47,213,131,12,90,160,246,106,60,198,144,31,73,179);
yyy[87 ]=new Array(0,87 ,174,249,113,38,223,136,226,181,76,27,147,196,61,106,233,190,71,16,152,207,54,97,11,92,165,242,122,45,212,131,255,168,81,6,142,217,32,119,29,74,179,228,108,59,194,149,22,65,184,239,103,48,201,158,244,163,90,13,133,210,43,124,211,132,125,42,162,245,12,91,49,102,159,200,64,23,238,185,58,109,148,195,75,28,229,178);
yyy[88 ]=new Array(0,88 ,176,232,77,21,253,165,154,194,42,114,215,143,103,63,25,65,169,241,84,12,228,188,131,219,51,107,206,150,126,38,50,106,130,218,127,39,207,151,168,240,24,64,229,189,85,13,43,115,155,195,102,62,214,142,177,233,1,89,252,164,76,20,100,60,212,140,41,113,153,193,254,166,78,22,179,235,3,91,125,37,205,149,48,104,128,216,231);
yyy[89 ]=new Array(0,89 ,178,235,73,16,251,162,146,203,32,121,219,130,105,48,9,80,187,226,64,25,242,171,155,194,41,112,210,139,96,57,18,75,160,249,91,2,233,176,128,217,50,107,201,144,123,34,27,66,169,240,82,11,224,185,137,208,59,98,192,153,114,43,36,125,150,207,109,52,223,134,182,239,4,93,255,166,77,20,45,116,159,198,100,61,214,143,191,230);
yyy[90 ]=new Array(0,90 ,180,238,69,31,241,171,138,208,62,100,207,149,123,33,57,99,141,215,124,38,200,146,179,233,7,93,246,172,66,24,114,40,198,156,55,109,131,217,248,162,76,22,189,231,9,83,75,17,255,165,14,84,186,224,193,155,117,47,132,222,48,106,228,190,80,10,161,251,21,79,110,52,218,128,43,113,159,197,221,135,105,51,152,194,44,118,87,13,227);
yyy[91 ]=new Array(0,91 ,182,237,65,26,247,172,130,217,52,111,195,152,117,46,41,114,159,196,104,51,222,133,171,240,29,70,234,177,92,7,82,9,228,191,19,72,165,254,208,139,102,61,145,202,39,124,123,32,205,150,58,97,140,215,249,162,79,20,184,227,14,85,164,255,18,73,229,190,83,8,38,125,144,203,103,60,209,138,141,214,59,96,204,151,122,33,15,84,185,226);
yyy[92 ]=new Array(0,92 ,184,228,93,1,229,185,186,230,2,94,231,187,95,3,89,5,225,189,4,88,188,224,227,191,91,7,190,226,6,90,178,238,10,86,239,179,87,11,8,84,176,236,85,9,237,177,235,183,83,15,182,234,14,82,81,13,233,181,12,80,180,232,73,21,241,173,20,72,172,240,243,175,75,23,174,242,22,74,16,76,168,244,77,17,245,169,170,246,18,78,247);
yyy[93 ]=new Array(0,93 ,186,231,89,4,227,190,178,239,8,85,235,182,81,12,73,20,243,174,16,77,170,247,251,166,65,28,162,255,24,69,146,207,40,117,203,150,113,44,32,125,154,199,121,36,195,158,219,134,97,60,130,223,56,101,105,52,211,142,48,109,138,215,9,84,179,238,80,13,234,183,187,230,1,92,226,191,88,5,64,29,250,167,25,68,163,254,242,175,72,21,171,246);
yyy[94 ]=new Array(0,94 ,188,226,85,11,233,183,170,244,22,72,255,161,67,29,121,39,197,155,44,114,144,206,211,141,111,49,134,216,58,100,242,172,78,16,167,249,27,69,88,6,228,186,13,83,177,239,139,213,55,105,222,128,98,60,33,127,157,195,116,42,200,150,201,151,117,43,156,194,32,126,99,61,223,129,54,104,138,212,176,238,12,82,229,187,89,7,26,68,166,248,79,17,243);
yyy[95 ]=new Array(0,95 ,190,225,81,14,239,176,162,253,28,67,243,172,77,18,105,54,215,136,56,103,134,217,203,148,117,42,154,197,36,123,210,141,108,51,131,220,61,98,112,47,206,145,33,126,159,192,187,228,5,90,234,181,84,11,25,70,167,248,72,23,246,169,137,214,55,104,216,135,102,57,43,116,149,202,122,37,196,155,224,191,94,1,177,238,15,80,66,29,252,163,19,76,173,242);
yyy[96 ]=new Array(0,96 ,192,160,173,205,109,13,119,23,183,215,218,186,26,122,238,142,46,78,67,35,131,227,153,249,89,57,52,84,244,148,241,145,49,81,92,60,156,252,134,230,70,38,43,75,235,139,31,127,223,191,178,210,114,18,104,8,168,200,197,165,5,101,207,175,15,111,98,2,162,194,184,216,120,24,21,117,213,181,33,65,225,129,140,236,76,44,86,54,150,246,251,155,59,91,62);
yyy[97 ]=new Array(0,97 ,194,163,169,200,107,10,127,30,189,220,214,183,20,117,254,159,60,93,87,54,149,244,129,224,67,34,40,73,234,139,209,176,19,114,120,25,186,219,174,207,108,13,7,102,197,164,47,78,237,140,134,231,68,37,80,49,146,243,249,152,59,90,143,238,77,44,38,71,228,133,240,145,50,83,89,56,155,250,113,16,179,210,216,185,26,123,14,111,204,173,167,198,101,4,94,63);
yyy[98 ]=new Array(0,98 ,196,166,165,199,97,3,103,5,163,193,194,160,6,100,206,172,10,104,107,9,175,205,169,203,109,15,12,110,200,170,177,211,117,23,20,118,208,178,214,180,18,112,115,17,183,213,127,29,187,217,218,184,30,124,24,122,220,190,189,223,121,27,79,45,139,233,234,136,46,76,40,74,236,142,141,239,73,43,129,227,69,39,36,70,224,130,230,132,34,64,67,33,135,229,254,156,58);
yyy[99 ]=new Array(0,99 ,198,165,161,194,103,4,111,12,169,202,206,173,8,107,222,189,24,123,127,28,185,218,177,210,119,20,16,115,214,181,145,242,87,52,48,83,246,149,254,157,56,91,95,60,153,250,79,44,137,234,238,141,40,75,32,67,230,133,129,226,71,36,15,108,201,170,174,205,104,11,96,3,166,197,193,162,7,100,209,178,23,116,112,19,182,213,190,221,120,27,31,124,217,186,158,253,88,59);
yyy[100]=new Array(0,100,200,172,189,217,117,17,87,51,159,251,234,142,34,70,174,202,102,2,19,119,219,191,249,157,49,85,68,32,140,232,113,21,185,221,204,168,4,96,38,66,238,138,155,255,83,55,223,187,23,115,98,6,170,206,136,236,64,36,53,81,253,153,226,134,42,78,95,59,151,243,181,209,125,25,8,108,192,164,76,40,132,224,241,149,57,93,27,127,211,183,166,194,110,10,147,247,91,63,46);
yyy[101]=new Array(0,101,202,175,185,220,115,22,95,58,149,240,230,131,44,73,190,219,116,17,7,98,205,168,225,132,43,78,88,61,146,247,81,52,155,254,232,141,34,71,14,107,196,161,183,210,125,24,239,138,37,64,86,51,156,249,176,213,122,31,9,108,195,166,162,199,104,13,27,126,209,180,253,152,55,82,68,33,142,235,28,121,214,179,165,192,111,10,67,38,137,236,250,159,48,85,243,150,57,92,74,47);
yyy[102]=new Array(0,102,204,170,181,211,121,31,71,33,139,237,242,148,62,88,142,232,66,36,59,93,247,145,201,175,5,99,124,26,176,214,49,87,253,155,132,226,72,46,118,16,186,220,195,165,15,105,191,217,115,21,10,108,198,160,248,158,52,82,77,43,129,231,98,4,174,200,215,177,27,125,37,67,233,143,144,246,92,58,236,138,32,70,89,63,149,243,171,205,103,1,30,120,210,180,83,53,159,249,230,128,42);
yyy[103]=new Array(0,103,206,169,177,214,127,24,79,40,129,230,254,153,48,87,158,249,80,55,47,72,225,134,209,182,31,120,96,7,174,201,17,118,223,184,160,199,110,9,94,57,144,247,239,136,33,70,143,232,65,38,62,89,240,151,192,167,14,105,113,22,191,216,34,69,236,139,147,244,93,58,109,10,163,196,220,187,18,117,188,219,114,21,13,106,195,164,243,148,61,90,66,37,140,235,51,84,253,154,130,229,76,43);
yyy[104]=new Array(0,104,208,184,141,229,93,53,55,95,231,143,186,210,106,2,110,6,190,214,227,139,51,91,89,49,137,225,212,188,4,108,220,180,12,100,81,57,129,233,235,131,59,83,102,14,182,222,178,218,98,10,63,87,239,135,133,237,85,61,8,96,216,176,149,253,69,45,24,112,200,160,162,202,114,26,47,71,255,151,251,147,43,67,118,30,166,206,204,164,28,116,65,41,145,249,73,33,153,241,196,172,20,124,126);
yyy[105]=new Array(0,105,210,187,137,224,91,50,63,86,237,132,182,223,100,13,126,23,172,197,247,158,37,76,65,40,147,250,200,161,26,115,252,149,46,71,117,28,167,206,195,170,17,120,74,35,152,241,130,235,80,57,11,98,217,176,189,212,111,6,52,93,230,143,213,188,7,110,92,53,142,231,234,131,56,81,99,10,177,216,171,194,121,16,34,75,240,153,148,253,70,47,29,116,207,166,41,64,251,146,160,201,114,27,22,127);
yyy[106]=new Array(0,106,212,190,133,239,81,59,39,77,243,153,162,200,118,28,78,36,154,240,203,161,31,117,105,3,189,215,236,134,56,82,156,246,72,34,25,115,205,167,187,209,111,5,62,84,234,128,210,184,6,108,87,61,131,233,245,159,33,75,112,26,164,206,21,127,193,171,144,250,68,46,50,88,230,140,183,221,99,9,91,49,143,229,222,180,10,96,124,22,168,194,249,147,45,71,137,227,93,55,12,102,216,178,174,196,122);
yyy[107]=new Array(0,107,214,189,129,234,87,60,47,68,249,146,174,197,120,19,94,53,136,227,223,180,9,98,113,26,167,204,240,155,38,77,188,215,106,1,61,86,235,128,147,248,69,46,18,121,196,175,226,137,52,95,99,8,181,222,205,166,27,112,76,39,154,241,85,62,131,232,212,191,2,105,122,17,172,199,251,144,45,70,11,96,221,182,138,225,92,55,36,79,242,153,165,206,115,24,233,130,63,84,104,3,190,213,198,173,16,123);
yyy[108]=new Array(0,108,216,180,157,241,69,41,23,123,207,163,138,230,82,62,46,66,246,154,179,223,107,7,57,85,225,141,164,200,124,16,92,48,132,232,193,173,25,117,75,39,147,255,214,186,14,98,114,30,170,198,239,131,55,91,101,9,189,209,248,148,32,76,184,212,96,12,37,73,253,145,175,195,119,27,50,94,234,134,150,250,78,34,11,103,211,191,129,237,89,53,28,112,196,168,228,136,60,80,121,21,161,205,243,159,43,71,110);
yyy[109]=new Array(0,109,218,183,153,244,67,46,31,114,197,168,134,235,92,49,62,83,228,137,167,202,125,16,33,76,251,150,184,213,98,15,124,17,166,203,229,136,63,82,99,14,185,212,250,151,32,77,66,47,152,245,219,182,1,108,93,48,135,234,196,169,30,115,248,149,34,79,97,12,187,214,231,138,61,80,126,19,164,201,198,171,28,113,95,50,133,232,217,180,3,110,64,45,154,247,132,233,94,51,29,112,199,170,155,246,65,44,2,111);
yyy[110]=new Array(0,110,220,178,149,251,73,39,7,105,219,181,146,252,78,32,14,96,210,188,155,245,71,41,9,103,213,187,156,242,64,46,28,114,192,174,137,231,85,59,27,117,199,169,142,224,82,60,18,124,206,160,135,233,91,53,21,123,201,167,128,238,92,50,56,86,228,138,173,195,113,31,63,81,227,141,170,196,118,24,54,88,234,132,163,205,127,17,49,95,237,131,164,202,120,22,36,74,248,150,177,223,109,3,35,77,255,145,182,216,106);
yyy[111]=new Array(0,111,222,177,145,254,79,32,15,96,209,190,158,241,64,47,30,113,192,175,143,224,81,62,17,126,207,160,128,239,94,49,60,83,226,141,173,194,115,28,51,92,237,130,162,205,124,19,34,77,252,147,179,220,109,2,45,66,243,156,188,211,98,13,120,23,166,201,233,134,55,88,119,24,169,198,230,137,56,87,102,9,184,215,247,152,41,70,105,6,183,216,248,151,38,73,68,43,154,245,213,186,11,100,75,36,149,250,218,181,4,107);
yyy[112]=new Array(0,112,224,144,237,157,13,125,247,135,23,103,26,106,250,138,195,179,35,83,46,94,206,190,52,68,212,164,217,169,57,73,171,219,75,59,70,54,166,214,92,44,188,204,177,193,81,33,104,24,136,248,133,245,101,21,159,239,127,15,114,2,146,226,123,11,155,235,150,230,118,6,140,252,108,28,97,17,129,241,184,200,88,40,85,37,181,197,79,63,175,223,162,210,66,50,208,160,48,64,61,77,221,173,39,87,199,183,202,186,42,90,19);
yyy[113]=new Array(0,113,226,147,233,152,11,122,255,142,29,108,22,103,244,133,211,162,49,64,58,75,216,169,44,93,206,191,197,180,39,86,139,250,105,24,98,19,128,241,116,5,150,231,157,236,127,14,88,41,186,203,177,192,83,34,167,214,69,52,78,63,172,221,59,74,217,168,210,163,48,65,196,181,38,87,45,92,207,190,232,153,10,123,1,112,227,146,23,102,245,132,254,143,28,109,176,193,82,35,89,40,187,202,79,62,173,220,166,215,68,53,99,18);
yyy[114]=new Array(0,114,228,150,229,151,1,115,231,149,3,113,2,112,230,148,227,145,7,117,6,116,226,144,4,118,224,146,225,147,5,119,235,153,15,125,14,124,234,152,12,126,232,154,233,155,13,127,8,122,236,158,237,159,9,123,239,157,11,121,10,120,238,156,251,137,31,109,30,108,250,136,28,110,248,138,249,139,29,111,24,106,252,142,253,143,25,107,255,141,27,105,26,104,254,140,16,98,244,134,245,135,17,99,247,133,19,97,18,96,246,132,243,129,23);
yyy[115]=new Array(0,115,230,149,225,146,7,116,239,156,9,122,14,125,232,155,243,128,21,102,18,97,244,135,28,111,250,137,253,142,27,104,203,184,45,94,42,89,204,191,36,87,194,177,197,182,35,80,56,75,222,173,217,170,63,76,215,164,49,66,54,69,208,163,187,200,93,46,90,41,188,207,84,39,178,193,181,198,83,32,72,59,174,221,169,218,79,60,167,212,65,50,70,53,160,211,112,3,150,229,145,226,119,4,159,236,121,10,126,13,152,235,131,240,101,22);
yyy[116]=new Array(0,116,232,156,253,137,21,97,215,163,63,75,42,94,194,182,131,247,107,31,126,10,150,226,84,32,188,200,169,221,65,53,43,95,195,183,214,162,62,74,252,136,20,96,1,117,233,157,168,220,64,52,85,33,189,201,127,11,151,227,130,246,106,30,86,34,190,202,171,223,67,55,129,245,105,29,124,8,148,224,213,161,61,73,40,92,192,180,2,118,234,158,255,139,23,99,125,9,149,225,128,244,104,28,170,222,66,54,87,35,191,203,254,138,22,98,3);
yyy[117]=new Array(0,117,234,159,249,140,19,102,223,170,53,64,38,83,204,185,147,230,121,12,106,31,128,245,76,57,166,211,181,192,95,42,11,126,225,148,242,135,24,109,212,161,62,75,45,88,199,178,152,237,114,7,97,20,139,254,71,50,173,216,190,203,84,33,22,99,252,137,239,154,5,112,201,188,35,86,48,69,218,175,133,240,111,26,124,9,150,227,90,47,176,197,163,214,73,60,29,104,247,130,228,145,14,123,194,183,40,93,59,78,209,164,142,251,100,17,119,2);
yyy[118]=new Array(0,118,236,154,245,131,25,111,199,177,43,93,50,68,222,168,163,213,79,57,86,32,186,204,100,18,136,254,145,231,125,11,107,29,135,241,158,232,114,4,172,218,64,54,89,47,181,195,200,190,36,82,61,75,209,167,15,121,227,149,250,140,22,96,214,160,58,76,35,85,207,185,17,103,253,139,228,146,8,126,117,3,153,239,128,246,108,26,178,196,94,40,71,49,171,221,189,203,81,39,72,62,164,210,122,12,150,224,143,249,99,21,30,104,242,132,235,157,7);
yyy[119]=new Array(0,119,238,153,241,134,31,104,207,184,33,86,62,73,208,167,179,196,93,42,66,53,172,219,124,11,146,229,141,250,99,20,75,60,165,210,186,205,84,35,132,243,106,29,117,2,155,236,248,143,22,97,9,126,231,144,55,64,217,174,198,177,40,95,150,225,120,15,103,16,137,254,89,46,183,192,168,223,70,49,37,82,203,188,212,163,58,77,234,157,4,115,27,108,245,130,221,170,51,68,44,91,194,181,18,101,252,139,227,148,13,122,110,25,128,247,159,232,113,6);
yyy[120]=new Array(0,120,240,136,205,181,61,69,183,207,71,63,122,2,138,242,67,59,179,203,142,246,126,6,244,140,4,124,57,65,201,177,134,254,118,14,75,51,187,195,49,73,193,185,252,132,12,116,197,189,53,77,8,112,248,128,114,10,130,250,191,199,79,55,33,89,209,169,236,148,28,100,150,238,102,30,91,35,171,211,98,26,146,234,175,215,95,39,213,173,37,93,24,96,232,144,167,223,87,47,106,18,154,226,16,104,224,152,221,165,45,85,228,156,20,108,41,81,217,161,83);
yyy[121]=new Array(0,121,242,139,201,176,59,66,191,198,77,52,118,15,132,253,83,42,161,216,154,227,104,17,236,149,30,103,37,92,215,174,166,223,84,45,111,22,157,228,25,96,235,146,208,169,34,91,245,140,7,126,60,69,206,183,74,51,184,193,131,250,113,8,97,24,147,234,168,209,90,35,222,167,44,85,23,110,229,156,50,75,192,185,251,130,9,112,141,244,127,6,68,61,182,207,199,190,53,76,14,119,252,133,120,1,138,243,177,200,67,58,148,237,102,31,93,36,175,214,43,82);
yyy[122]=new Array(0,122,244,142,197,191,49,75,167,221,83,41,98,24,150,236,99,25,151,237,166,220,82,40,196,190,48,74,1,123,245,143,198,188,50,72,3,121,247,141,97,27,149,239,164,222,80,42,165,223,81,43,96,26,148,238,2,120,246,140,199,189,51,73,161,219,85,47,100,30,144,234,6,124,242,136,195,185,55,77,194,184,54,76,7,125,243,137,101,31,145,235,160,218,84,46,103,29,147,233,162,216,86,44,192,186,52,78,5,127,241,139,4,126,240,138,193,187,53,79,163,217,87);
yyy[123]=new Array(0,123,246,141,193,186,55,76,175,212,89,34,110,21,152,227,115,8,133,254,178,201,68,63,220,167,42,81,29,102,235,144,230,157,16,107,39,92,209,170,73,50,191,196,136,243,126,5,149,238,99,24,84,47,162,217,58,65,204,183,251,128,13,118,225,154,23,108,32,91,214,173,78,53,184,195,143,244,121,2,146,233,100,31,83,40,165,222,61,70,203,176,252,135,10,113,7,124,241,138,198,189,48,75,168,211,94,37,105,18,159,228,116,15,130,249,181,206,67,56,219,160,45,86);
yyy[124]=new Array(0,124,248,132,221,161,37,89,151,235,111,19,74,54,178,206,3,127,251,135,222,162,38,90,148,232,108,16,73,53,177,205,6,122,254,130,219,167,35,95,145,237,105,21,76,48,180,200,5,121,253,129,216,164,32,92,146,238,106,22,79,51,183,203,12,112,244,136,209,173,41,85,155,231,99,31,70,58,190,194,15,115,247,139,210,174,42,86,152,228,96,28,69,57,189,193,10,118,242,142,215,171,47,83,157,225,101,25,64,60,184,196,9,117,241,141,212,168,44,80,158,226,102,26,67);
yyy[125]=new Array(0,125,250,135,217,164,35,94,159,226,101,24,70,59,188,193,19,110,233,148,202,183,48,77,140,241,118,11,85,40,175,210,38,91,220,161,255,130,5,120,185,196,67,62,96,29,154,231,53,72,207,178,236,145,22,107,170,215,80,45,115,14,137,244,76,49,182,203,149,232,111,18,211,174,41,84,10,119,240,141,95,34,165,216,134,251,124,1,192,189,58,71,25,100,227,158,106,23,144,237,179,206,73,52,245,136,15,114,44,81,214,171,121,4,131,254,160,221,90,39,230,155,28,97,63,66);
yyy[126]=new Array(0,126,252,130,213,171,41,87,135,249,123,5,82,44,174,208,35,93,223,161,246,136,10,116,164,218,88,38,113,15,141,243,70,56,186,196,147,237,111,17,193,191,61,67,20,106,232,150,101,27,153,231,176,206,76,50,226,156,30,96,55,73,203,181,140,242,112,14,89,39,165,219,11,117,247,137,222,160,34,92,175,209,83,45,122,4,134,248,40,86,212,170,253,131,1,127,202,180,54,72,31,97,227,157,77,51,177,207,152,230,100,26,233,151,21,107,60,66,192,190,110,16,146,236,187,197,71);
yyy[127]=new Array(0,127,254,129,209,174,47,80,143,240,113,14,94,33,160,223,51,76,205,178,226,157,28,99,188,195,66,61,109,18,147,236,102,25,152,231,183,200,73,54,233,150,23,104,56,71,198,185,85,42,171,212,132,251,122,5,218,165,36,91,11,116,245,138,204,179,50,77,29,98,227,156,67,60,189,194,146,237,108,19,255,128,1,126,46,81,208,175,112,15,142,241,161,222,95,32,170,213,84,43,123,4,133,250,37,90,219,164,244,139,10,117,153,230,103,24,72,55,182,201,22,105,232,151,199,184,57,70);
yyy[128]=new Array(0,128,45,173,90,218,119,247,180,52,153,25,238,110,195,67,69,197,104,232,31,159,50,178,241,113,220,92,171,43,134,6,138,10,167,39,208,80,253,125,62,190,19,147,100,228,73,201,207,79,226,98,149,21,184,56,123,251,86,214,33,161,12,140,57,185,20,148,99,227,78,206,141,13,160,32,215,87,250,122,124,252,81,209,38,166,11,139,200,72,229,101,146,18,191,63,179,51,158,30,233,105,196,68,7,135,42,170,93,221,112,240,246,118,219,91,172,44,129,1,66,194,111,239,24,152,53,181,114);
yyy[129]=new Array(0,129,47,174,94,223,113,240,188,61,147,18,226,99,205,76,85,212,122,251,11,138,36,165,233,104,198,71,183,54,152,25,170,43,133,4,244,117,219,90,22,151,57,184,72,201,103,230,255,126,208,81,161,32,142,15,67,194,108,237,29,156,50,179,121,248,86,215,39,166,8,137,197,68,234,107,155,26,180,53,44,173,3,130,114,243,93,220,144,17,191,62,206,79,225,96,211,82,252,125,141,12,162,35,111,238,64,193,49,176,30,159,134,7,169,40,216,89,247,118,58,187,21,148,100,229,75,202,242,115);
yyy[130]=new Array(0,130,41,171,82,208,123,249,164,38,141,15,246,116,223,93,101,231,76,206,55,181,30,156,193,67,232,106,147,17,186,56,202,72,227,97,152,26,177,51,110,236,71,197,60,190,21,151,175,45,134,4,253,127,212,86,11,137,34,160,89,219,112,242,185,59,144,18,235,105,194,64,29,159,52,182,79,205,102,228,220,94,245,119,142,12,167,37,120,250,81,211,42,168,3,129,115,241,90,216,33,163,8,138,215,85,254,124,133,7,172,46,22,148,63,189,68,198,109,239,178,48,155,25,224,98,201,75,95,221,118);
yyy[131]=new Array(0,131,43,168,86,213,125,254,172,47,135,4,250,121,209,82,117,246,94,221,35,160,8,139,217,90,242,113,143,12,164,39,234,105,193,66,188,63,151,20,70,197,109,238,16,147,59,184,159,28,180,55,201,74,226,97,51,176,24,155,101,230,78,205,249,122,210,81,175,44,132,7,85,214,126,253,3,128,40,171,140,15,167,36,218,89,241,114,32,163,11,136,118,245,93,222,19,144,56,187,69,198,110,237,191,60,148,23,233,106,194,65,102,229,77,206,48,179,27,152,202,73,225,98,156,31,183,52,223,92,244,119);
yyy[132]=new Array(0,132,37,161,74,206,111,235,148,16,177,53,222,90,251,127,5,129,32,164,79,203,106,238,145,21,180,48,219,95,254,122,10,142,47,171,64,196,101,225,158,26,187,63,212,80,241,117,15,139,42,174,69,193,96,228,155,31,190,58,209,85,244,112,20,144,49,181,94,218,123,255,128,4,165,33,202,78,239,107,17,149,52,176,91,223,126,250,133,1,160,36,207,75,234,110,30,154,59,191,84,208,113,245,138,14,175,43,192,68,229,97,27,159,62,186,81,213,116,240,143,11,170,46,197,65,224,100,40,172,13,137,98);
yyy[133]=new Array(0,133,39,162,78,203,105,236,156,25,187,62,210,87,245,112,21,144,50,183,91,222,124,249,137,12,174,43,199,66,224,101,42,175,13,136,100,225,67,198,182,51,145,20,248,125,223,90,63,186,24,157,113,244,86,211,163,38,132,1,237,104,202,79,84,209,115,246,26,159,61,184,200,77,239,106,134,3,161,36,65,196,102,227,15,138,40,173,221,88,250,127,147,22,180,49,126,251,89,220,48,181,23,146,226,103,197,64,172,41,139,14,107,238,76,201,37,160,2,135,247,114,208,85,185,60,158,27,168,45,143,10,230,99);
yyy[134]=new Array(0,134,33,167,66,196,99,229,132,2,165,35,198,64,231,97,37,163,4,130,103,225,70,192,161,39,128,6,227,101,194,68,74,204,107,237,8,142,41,175,206,72,239,105,140,10,173,43,111,233,78,200,45,171,12,138,235,109,202,76,169,47,136,14,148,18,181,51,214,80,247,113,16,150,49,183,82,212,115,245,177,55,144,22,243,117,210,84,53,179,20,146,119,241,86,208,222,88,255,121,156,26,189,59,90,220,123,253,24,158,57,191,251,125,218,92,185,63,152,30,127,249,94,216,61,187,28,154,5,131,36,162,71,193,102);
yyy[135]=new Array(0,135,35,164,70,193,101,226,140,11,175,40,202,77,233,110,53,178,22,145,115,244,80,215,185,62,154,29,255,120,220,91,106,237,73,206,44,171,15,136,230,97,197,66,160,39,131,4,95,216,124,251,25,158,58,189,211,84,240,119,149,18,182,49,212,83,247,112,146,21,177,54,88,223,123,252,30,153,61,186,225,102,194,69,167,32,132,3,109,234,78,201,43,172,8,143,190,57,157,26,248,127,219,92,50,181,17,150,116,243,87,208,139,12,168,47,205,74,238,105,7,128,36,163,65,198,98,229,133,2,166,33,195,68,224,103);
yyy[136]=new Array(0,136,61,181,122,242,71,207,244,124,201,65,142,6,179,59,197,77,248,112,191,55,130,10,49,185,12,132,75,195,118,254,167,47,154,18,221,85,224,104,83,219,110,230,41,161,20,156,98,234,95,215,24,144,37,173,150,30,171,35,236,100,209,89,99,235,94,214,25,145,36,172,151,31,170,34,237,101,208,88,166,46,155,19,220,84,225,105,82,218,111,231,40,160,21,157,196,76,249,113,190,54,131,11,48,184,13,133,74,194,119,255,1,137,60,180,123,243,70,206,245,125,200,64,143,7,178,58,198,78,251,115,188,52,129,9,50);
yyy[137]=new Array(0,137,63,182,126,247,65,200,252,117,195,74,130,11,189,52,213,92,234,99,171,34,148,29,41,160,22,159,87,222,104,225,135,14,184,49,249,112,198,79,123,242,68,205,5,140,58,179,82,219,109,228,44,165,19,154,174,39,145,24,208,89,239,102,35,170,28,149,93,212,98,235,223,86,224,105,161,40,158,23,246,127,201,64,136,1,183,62,10,131,53,188,116,253,75,194,164,45,155,18,218,83,229,108,88,209,103,238,38,175,25,144,113,248,78,199,15,134,48,185,141,4,178,59,243,122,204,69,70,207,121,240,56,177,7,142,186,51);
yyy[138]=new Array(0,138,57,179,114,248,75,193,228,110,221,87,150,28,175,37,229,111,220,86,151,29,174,36,1,139,56,178,115,249,74,192,231,109,222,84,149,31,172,38,3,137,58,176,113,251,72,194,2,136,59,177,112,250,73,195,230,108,223,85,148,30,173,39,227,105,218,80,145,27,168,34,7,141,62,180,117,255,76,198,6,140,63,181,116,254,77,199,226,104,219,81,144,26,169,35,4,142,61,183,118,252,79,197,224,106,217,83,146,24,171,33,225,107,216,82,147,25,170,32,5,143,60,182,119,253,78,196,235,97,210,88,153,19,160,42,15,133,54);
yyy[139]=new Array(0,139,59,176,118,253,77,198,236,103,215,92,154,17,161,42,245,126,206,69,131,8,184,51,25,146,34,169,111,228,84,223,199,76,252,119,177,58,138,1,43,160,16,155,93,214,102,237,50,185,9,130,68,207,127,244,222,85,229,110,168,35,147,24,163,40,152,19,213,94,238,101,79,196,116,255,57,178,2,137,86,221,109,230,32,171,27,144,186,49,129,10,204,71,247,124,100,239,95,212,18,153,41,162,136,3,179,56,254,117,197,78,145,26,170,33,231,108,220,87,125,246,70,205,11,128,48,187,107,224,80,219,29,150,38,173,135,12,188,55);
yyy[140]=new Array(0,140,53,185,106,230,95,211,212,88,225,109,190,50,139,7,133,9,176,60,239,99,218,86,81,221,100,232,59,183,14,130,39,171,18,158,77,193,120,244,243,127,198,74,153,21,172,32,162,46,151,27,200,68,253,113,118,250,67,207,28,144,41,165,78,194,123,247,36,168,17,157,154,22,175,35,240,124,197,73,203,71,254,114,161,45,148,24,31,147,42,166,117,249,64,204,105,229,92,208,3,143,54,186,189,49,136,4,215,91,226,110,236,96,217,85,134,10,179,63,56,180,13,129,82,222,103,235,156,16,169,37,246,122,195,79,72,196,125,241,34);
yyy[141]=new Array(0,141,55,186,110,227,89,212,220,81,235,102,178,63,133,8,149,24,162,47,251,118,204,65,73,196,126,243,39,170,16,157,7,138,48,189,105,228,94,211,219,86,236,97,181,56,130,15,146,31,165,40,252,113,203,70,78,195,121,244,32,173,23,154,14,131,57,180,96,237,87,218,210,95,229,104,188,49,139,6,155,22,172,33,245,120,194,79,71,202,112,253,41,164,30,147,9,132,62,179,103,234,80,221,213,88,226,111,187,54,140,1,156,17,171,38,242,127,197,72,64,205,119,250,46,163,25,148,28,145,43,166,114,255,69,200,192,77,247,122,174,35);
yyy[142]=new Array(0,142,49,191,98,236,83,221,196,74,245,123,166,40,151,25,165,43,148,26,199,73,246,120,97,239,80,222,3,141,50,188,103,233,86,216,5,139,52,186,163,45,146,28,193,79,240,126,194,76,243,125,160,46,145,31,6,136,55,185,100,234,85,219,206,64,255,113,172,34,157,19,10,132,59,181,104,230,89,215,107,229,90,212,9,135,56,182,175,33,158,16,205,67,252,114,169,39,152,22,203,69,250,116,109,227,92,210,15,129,62,176,12,130,61,179,110,224,95,209,200,70,249,119,170,36,155,21,177,63,128,14,211,93,226,108,117,251,68,202,23,153,38);
yyy[143]=new Array(0,143,51,188,102,233,85,218,204,67,255,112,170,37,153,22,181,58,134,9,211,92,224,111,121,246,74,197,31,144,44,163,71,200,116,251,33,174,18,157,139,4,184,55,237,98,222,81,242,125,193,78,148,27,167,40,62,177,13,130,88,215,107,228,142,1,189,50,232,103,219,84,66,205,113,254,36,171,23,152,59,180,8,135,93,210,110,225,247,120,196,75,145,30,162,45,201,70,250,117,175,32,156,19,5,138,54,185,99,236,80,223,124,243,79,192,26,149,41,166,176,63,131,12,214,89,229,106,49,190,2,141,87,216,100,235,253,114,206,65,155,20,168,39);
yyy[144]=new Array(0,144,13,157,26,138,23,135,52,164,57,169,46,190,35,179,104,248,101,245,114,226,127,239,92,204,81,193,70,214,75,219,208,64,221,77,202,90,199,87,228,116,233,121,254,110,243,99,184,40,181,37,162,50,175,63,140,28,129,17,150,6,155,11,141,29,128,16,151,7,154,10,185,41,180,36,163,51,174,62,229,117,232,120,255,111,242,98,209,65,220,76,203,91,198,86,93,205,80,192,71,215,74,218,105,249,100,244,115,227,126,238,53,165,56,168,47,191,34,178,1,145,12,156,27,139,22,134,55,167,58,170,45,189,32,176,3,147,14,158,25,137,20,132,95);
yyy[145]=new Array(0,145,15,158,30,143,17,128,60,173,51,162,34,179,45,188,120,233,119,230,102,247,105,248,68,213,75,218,90,203,85,196,240,97,255,110,238,127,225,112,204,93,195,82,210,67,221,76,136,25,135,22,150,7,153,8,180,37,187,42,170,59,165,52,205,92,194,83,211,66,220,77,241,96,254,111,239,126,224,113,181,36,186,43,171,58,164,53,137,24,134,23,151,6,152,9,61,172,50,163,35,178,44,189,1,144,14,159,31,142,16,129,69,212,74,219,91,202,84,197,121,232,118,231,103,246,104,249,183,38,184,41,169,56,166,55,139,26,132,21,149,4,154,11,207,94);
yyy[146]=new Array(0,146,9,155,18,128,27,137,36,182,45,191,54,164,63,173,72,218,65,211,90,200,83,193,108,254,101,247,126,236,119,229,144,2,153,11,130,16,139,25,180,38,189,47,166,52,175,61,216,74,209,67,202,88,195,81,252,110,245,103,238,124,231,117,13,159,4,150,31,141,22,132,41,187,32,178,59,169,50,160,69,215,76,222,87,197,94,204,97,243,104,250,115,225,122,232,157,15,148,6,143,29,134,20,185,43,176,34,171,57,162,48,213,71,220,78,199,85,206,92,241,99,248,106,227,113,234,120,26,136,19,129,8,154,1,147,62,172,55,165,44,190,37,183,82,192,91);
yyy[147]=new Array(0,147,11,152,22,133,29,142,44,191,39,180,58,169,49,162,88,203,83,192,78,221,69,214,116,231,127,236,98,241,105,250,176,35,187,40,166,53,173,62,156,15,151,4,138,25,129,18,232,123,227,112,254,109,245,102,196,87,207,92,210,65,217,74,77,222,70,213,91,200,80,195,97,242,106,249,119,228,124,239,21,134,30,141,3,144,8,155,57,170,50,161,47,188,36,183,253,110,246,101,235,120,224,115,209,66,218,73,199,84,204,95,165,54,174,61,179,32,184,43,137,26,130,17,159,12,148,7,154,9,145,2,140,31,135,20,182,37,189,46,160,51,171,56,194,81,201,90);
yyy[148]=new Array(0,148,5,145,10,158,15,155,20,128,17,133,30,138,27,143,40,188,45,185,34,182,39,179,60,168,57,173,54,162,51,167,80,196,85,193,90,206,95,203,68,208,65,213,78,218,75,223,120,236,125,233,114,230,119,227,108,248,105,253,102,242,99,247,160,52,165,49,170,62,175,59,180,32,177,37,190,42,187,47,136,28,141,25,130,22,135,19,156,8,153,13,150,2,147,7,240,100,245,97,250,110,255,107,228,112,225,117,238,122,235,127,216,76,221,73,210,70,215,67,204,88,201,93,198,82,195,87,109,249,104,252,103,243,98,246,121,237,124,232,115,231,118,226,69,209,64,212,79);
yyy[149]=new Array(0,149,7,146,14,155,9,156,28,137,27,142,18,135,21,128,56,173,63,170,54,163,49,164,36,177,35,182,42,191,45,184,112,229,119,226,126,235,121,236,108,249,107,254,98,247,101,240,72,221,79,218,70,211,65,212,84,193,83,198,90,207,93,200,224,117,231,114,238,123,233,124,252,105,251,110,242,103,245,96,216,77,223,74,214,67,209,68,196,81,195,86,202,95,205,88,144,5,151,2,158,11,153,12,140,25,139,30,130,23,133,16,168,61,175,58,166,51,161,52,180,33,179,38,186,47,189,40,237,120,234,127,227,118,228,113,241,100,246,99,255,106,248,109,213,64,210,71,219,78);
yyy[150]=new Array(0,150,1,151,2,148,3,149,4,146,5,147,6,144,7,145,8,158,9,159,10,156,11,157,12,154,13,155,14,152,15,153,16,134,17,135,18,132,19,133,20,130,21,131,22,128,23,129,24,142,25,143,26,140,27,141,28,138,29,139,30,136,31,137,32,182,33,183,34,180,35,181,36,178,37,179,38,176,39,177,40,190,41,191,42,188,43,189,44,186,45,187,46,184,47,185,48,166,49,167,50,164,51,165,52,162,53,163,54,160,55,161,56,174,57,175,58,172,59,173,60,170,61,171,62,168,63,169,64,214,65,215,66,212,67,213,68,210,69,211,70,208,71,209,72,222,73,223,74,220,75);
yyy[151]=new Array(0,151,3,148,6,145,5,146,12,155,15,152,10,157,9,158,24,143,27,140,30,137,29,138,20,131,23,128,18,133,17,134,48,167,51,164,54,161,53,162,60,171,63,168,58,173,57,174,40,191,43,188,46,185,45,186,36,179,39,176,34,181,33,182,96,247,99,244,102,241,101,242,108,251,111,248,106,253,105,254,120,239,123,236,126,233,125,234,116,227,119,224,114,229,113,230,80,199,83,196,86,193,85,194,92,203,95,200,90,205,89,206,72,223,75,220,78,217,77,218,68,211,71,208,66,213,65,214,192,87,195,84,198,81,197,82,204,91,207,88,202,93,201,94,216,79,219,76,222,73,221,74);
yyy[152]=new Array(0,152,29,133,58,162,39,191,116,236,105,241,78,214,83,203,232,112,245,109,210,74,207,87,156,4,129,25,166,62,187,35,253,101,224,120,199,95,218,66,137,17,148,12,179,43,174,54,21,141,8,144,47,183,50,170,97,249,124,228,91,195,70,222,215,79,202,82,237,117,240,104,163,59,190,38,153,1,132,28,63,167,34,186,5,157,24,128,75,211,86,206,113,233,108,244,42,178,55,175,16,136,13,149,94,198,67,219,100,252,121,225,194,90,223,71,248,96,229,125,182,46,171,51,140,20,145,9,131,27,158,6,185,33,164,60,247,111,234,114,205,85,208,72,107,243,118,238,81,201,76,212,31);
yyy[153]=new Array(0,153,31,134,62,167,33,184,124,229,99,250,66,219,93,196,248,97,231,126,198,95,217,64,132,29,155,2,186,35,165,60,221,68,194,91,227,122,252,101,161,56,190,39,159,6,128,25,37,188,58,163,27,130,4,157,89,192,70,223,103,254,120,225,151,14,136,17,169,48,182,47,235,114,244,109,213,76,202,83,111,246,112,233,81,200,78,215,19,138,12,149,45,180,50,171,74,211,85,204,116,237,107,242,54,175,41,176,8,145,23,142,178,43,173,52,140,21,147,10,206,87,209,72,240,105,239,118,3,154,28,133,61,164,34,187,127,230,96,249,65,216,94,199,251,98,228,125,197,92,218,67,135,30);
yyy[154]=new Array(0,154,25,131,50,168,43,177,100,254,125,231,86,204,79,213,200,82,209,75,250,96,227,121,172,54,181,47,158,4,135,29,189,39,164,62,143,21,150,12,217,67,192,90,235,113,242,104,117,239,108,246,71,221,94,196,17,139,8,146,35,185,58,160,87,205,78,212,101,255,124,230,51,169,42,176,1,155,24,130,159,5,134,28,173,55,180,46,251,97,226,120,201,83,208,74,234,112,243,105,216,66,193,91,142,20,151,13,188,38,165,63,34,184,59,161,16,138,9,147,70,220,95,197,116,238,109,247,174,52,183,45,156,6,133,31,202,80,211,73,248,98,225,123,102,252,127,229,84,206,77,215,2,152,27);
yyy[155]=new Array(0,155,27,128,54,173,45,182,108,247,119,236,90,193,65,218,216,67,195,88,238,117,245,110,180,47,175,52,130,25,153,2,157,6,134,29,171,48,176,43,241,106,234,113,199,92,220,71,69,222,94,197,115,232,104,243,41,178,50,169,31,132,4,159,23,140,12,151,33,186,58,161,123,224,96,251,77,214,86,205,207,84,212,79,249,98,226,121,163,56,184,35,149,14,142,21,138,17,145,10,188,39,167,60,230,125,253,102,208,75,203,80,82,201,73,210,100,255,127,228,62,165,37,190,8,147,19,136,46,181,53,174,24,131,3,152,66,217,89,194,116,239,111,244,246,109,237,118,192,91,219,64,154,1,129,26);
yyy[156]=new Array(0,156,21,137,42,182,63,163,84,200,65,221,126,226,107,247,168,52,189,33,130,30,151,11,252,96,233,117,214,74,195,95,125,225,104,244,87,203,66,222,41,181,60,160,3,159,22,138,213,73,192,92,255,99,234,118,129,29,148,8,171,55,190,34,250,102,239,115,208,76,197,89,174,50,187,39,132,24,145,13,82,206,71,219,120,228,109,241,6,154,19,143,44,176,57,165,135,27,146,14,173,49,184,36,211,79,198,90,249,101,236,112,47,179,58,166,5,153,16,140,123,231,110,242,81,205,68,216,217,69,204,80,243,111,230,122,141,17,152,4,167,59,178,46,113,237,100,248,91,199,78,210,37,185,48,172,15);
yyy[157]=new Array(0,157,23,138,46,179,57,164,92,193,75,214,114,239,101,248,184,37,175,50,150,11,129,28,228,121,243,110,202,87,221,64,93,192,74,215,115,238,100,249,1,156,22,139,47,178,56,165,229,120,242,111,203,86,220,65,185,36,174,51,151,10,128,29,186,39,173,48,148,9,131,30,230,123,241,108,200,85,223,66,2,159,21,136,44,177,59,166,94,195,73,212,112,237,103,250,231,122,240,109,201,84,222,67,187,38,172,49,149,8,130,31,95,194,72,213,113,236,102,251,3,158,20,137,45,176,58,167,89,196,78,211,119,234,96,253,5,152,18,143,43,182,60,161,225,124,246,107,207,82,216,69,189,32,170,55,147,14);
yyy[158]=new Array(0,158,17,143,34,188,51,173,68,218,85,203,102,248,119,233,136,22,153,7,170,52,187,37,204,82,221,67,238,112,255,97,61,163,44,178,31,129,14,144,121,231,104,246,91,197,74,212,181,43,164,58,151,9,134,24,241,111,224,126,211,77,194,92,122,228,107,245,88,198,73,215,62,160,47,177,28,130,13,147,242,108,227,125,208,78,193,95,182,40,167,57,148,10,133,27,71,217,86,200,101,251,116,234,3,157,18,140,33,191,48,174,207,81,222,64,237,115,252,98,139,21,154,4,169,55,184,38,244,106,229,123,214,72,199,89,176,46,161,63,146,12,131,29,124,226,109,243,94,192,79,209,56,166,41,183,26,132,11);
yyy[159]=new Array(0,159,19,140,38,185,53,170,76,211,95,192,106,245,121,230,152,7,139,20,190,33,173,50,212,75,199,88,242,109,225,126,29,130,14,145,59,164,40,183,81,206,66,221,119,232,100,251,133,26,150,9,163,60,176,47,201,86,218,69,239,112,252,99,58,165,41,182,28,131,15,144,118,233,101,250,80,207,67,220,162,61,177,46,132,27,151,8,238,113,253,98,200,87,219,68,39,184,52,171,1,158,18,141,107,244,120,231,77,210,94,193,191,32,172,51,153,6,138,21,243,108,224,127,213,74,198,89,116,235,103,248,82,205,65,222,56,167,43,180,30,129,13,146,236,115,255,96,202,85,217,70,160,63,179,44,134,25,149,10);
yyy[160]=new Array(0,160,109,205,218,122,183,23,153,57,244,84,67,227,46,142,31,191,114,210,197,101,168,8,134,38,235,75,92,252,49,145,62,158,83,243,228,68,137,41,167,7,202,106,125,221,16,176,33,129,76,236,251,91,150,54,184,24,213,117,98,194,15,175,124,220,17,177,166,6,203,107,229,69,136,40,63,159,82,242,99,195,14,174,185,25,212,116,250,90,151,55,32,128,77,237,66,226,47,143,152,56,245,85,219,123,182,22,1,161,108,204,93,253,48,144,135,39,234,74,196,100,169,9,30,190,115,211,248,88,149,53,34,130,79,239,97,193,12,172,187,27,214,118,231,71,138,42,61,157,80,240,126,222,19,179,164,4,201,105,198);
yyy[161]=new Array(0,161,111,206,222,127,177,16,145,48,254,95,79,238,32,129,15,174,96,193,209,112,190,31,158,63,241,80,64,225,47,142,30,191,113,208,192,97,175,14,143,46,224,65,81,240,62,159,17,176,126,223,207,110,160,1,128,33,239,78,94,255,49,144,60,157,83,242,226,67,141,44,173,12,194,99,115,210,28,189,51,146,92,253,237,76,130,35,162,3,205,108,124,221,19,178,34,131,77,236,252,93,147,50,179,18,220,125,109,204,2,163,45,140,66,227,243,82,156,61,188,29,211,114,98,195,13,172,120,217,23,182,166,7,201,104,233,72,134,39,55,150,88,249,119,214,24,185,169,8,198,103,230,71,137,40,56,153,87,246,102,199);
yyy[162]=new Array(0,162,105,203,210,112,187,25,137,43,224,66,91,249,50,144,63,157,86,244,237,79,132,38,182,20,223,125,100,198,13,175,126,220,23,181,172,14,197,103,247,85,158,60,37,135,76,238,65,227,40,138,147,49,250,88,200,106,161,3,26,184,115,209,252,94,149,55,46,140,71,229,117,215,28,190,167,5,206,108,195,97,170,8,17,179,120,218,74,232,35,129,152,58,241,83,130,32,235,73,80,242,57,155,11,169,98,192,217,123,176,18,189,31,212,118,111,205,6,164,52,150,93,255,230,68,143,45,213,119,188,30,7,165,110,204,92,254,53,151,142,44,231,69,234,72,131,33,56,154,81,243,99,193,10,168,177,19,216,122,171,9,194);
yyy[163]=new Array(0,163,107,200,214,117,189,30,129,34,234,73,87,244,60,159,47,140,68,231,249,90,146,49,174,13,197,102,120,219,19,176,94,253,53,150,136,43,227,64,223,124,180,23,9,170,98,193,113,210,26,185,167,4,204,111,240,83,155,56,38,133,77,238,188,31,215,116,106,201,1,162,61,158,86,245,235,72,128,35,147,48,248,91,69,230,46,141,18,177,121,218,196,103,175,12,226,65,137,42,52,151,95,252,99,192,8,171,181,22,222,125,205,110,166,5,27,184,112,211,76,239,39,132,154,57,241,82,85,246,62,157,131,32,232,75,212,119,191,28,2,161,105,202,122,217,17,178,172,15,199,100,251,88,144,51,45,142,70,229,11,168,96,195);
yyy[164]=new Array(0,164,101,193,202,110,175,11,185,29,220,120,115,215,22,178,95,251,58,158,149,49,240,84,230,66,131,39,44,136,73,237,190,26,219,127,116,208,17,181,7,163,98,198,205,105,168,12,225,69,132,32,43,143,78,234,88,252,61,153,146,54,247,83,81,245,52,144,155,63,254,90,232,76,141,41,34,134,71,227,14,170,107,207,196,96,161,5,183,19,210,118,125,217,24,188,239,75,138,46,37,129,64,228,86,242,51,151,156,56,249,93,176,20,213,113,122,222,31,187,9,173,108,200,195,103,166,2,162,6,199,99,104,204,13,169,27,191,126,218,209,117,180,16,253,89,152,60,55,147,82,246,68,224,33,133,142,42,235,79,28,184,121,221,214);
yyy[165]=new Array(0,165,103,194,206,107,169,12,177,20,214,115,127,218,24,189,79,234,40,141,129,36,230,67,254,91,153,60,48,149,87,242,158,59,249,92,80,245,55,146,47,138,72,237,225,68,134,35,209,116,182,19,31,186,120,221,96,197,7,162,174,11,201,108,17,180,118,211,223,122,184,29,160,5,199,98,110,203,9,172,94,251,57,156,144,53,247,82,239,74,136,45,33,132,70,227,143,42,232,77,65,228,38,131,62,155,89,252,240,85,151,50,192,101,167,2,14,171,105,204,113,212,22,179,191,26,216,125,34,135,69,224,236,73,139,46,147,54,244,81,93,248,58,159,109,200,10,175,163,6,196,97,220,121,187,30,18,183,117,208,188,25,219,126,114,215);
yyy[166]=new Array(0,166,97,199,194,100,163,5,169,15,200,110,107,205,10,172,127,217,30,184,189,27,220,122,214,112,183,17,20,178,117,211,254,88,159,57,60,154,93,251,87,241,54,144,149,51,244,82,129,39,224,70,67,229,34,132,40,142,73,239,234,76,139,45,209,119,176,22,19,181,114,212,120,222,25,191,186,28,219,125,174,8,207,105,108,202,13,171,7,161,102,192,197,99,164,2,47,137,78,232,237,75,140,42,134,32,231,65,68,226,37,131,80,246,49,151,146,52,243,85,249,95,152,62,59,157,90,252,143,41,238,72,77,235,44,138,38,128,71,225,228,66,133,35,240,86,145,55,50,148,83,245,89,255,56,158,155,61,250,92,113,215,16,182,179,21,210);
yyy[167]=new Array(0,167,99,196,198,97,165,2,161,6,194,101,103,192,4,163,111,200,12,171,169,14,202,109,206,105,173,10,8,175,107,204,222,121,189,26,24,191,123,220,127,216,28,187,185,30,218,125,177,22,210,117,119,208,20,179,16,183,115,212,214,113,181,18,145,54,242,85,87,240,52,147,48,151,83,244,246,81,149,50,254,89,157,58,56,159,91,252,95,248,60,155,153,62,250,93,79,232,44,139,137,46,234,77,238,73,141,42,40,143,75,236,32,135,67,228,230,65,133,34,129,38,226,69,71,224,36,131,15,168,108,203,201,110,170,13,174,9,205,106,104,207,11,172,96,199,3,164,166,1,197,98,193,102,162,5,7,160,100,195,209,118,178,21,23,176,116,211);
yyy[168]=new Array(0,168,125,213,250,82,135,47,217,113,164,12,35,139,94,246,159,55,226,74,101,205,24,176,70,238,59,147,188,20,193,105,19,187,110,198,233,65,148,60,202,98,183,31,48,152,77,229,140,36,241,89,118,222,11,163,85,253,40,128,175,7,210,122,38,142,91,243,220,116,161,9,255,87,130,42,5,173,120,208,185,17,196,108,67,235,62,150,96,200,29,181,154,50,231,79,53,157,72,224,207,103,178,26,236,68,145,57,22,190,107,195,170,2,215,127,80,248,45,133,115,219,14,166,137,33,244,92,76,228,49,153,182,30,203,99,149,61,232,64,111,199,18,186,211,123,174,6,41,129,84,252,10,162,119,223,240,88,141,37,95,247,34,138,165,13,216,112,134);
yyy[169]=new Array(0,169,127,214,254,87,129,40,209,120,174,7,47,134,80,249,143,38,240,89,113,216,14,167,94,247,33,136,160,9,223,118,51,154,76,229,205,100,178,27,226,75,157,52,28,181,99,202,188,21,195,106,66,235,61,148,109,196,18,187,147,58,236,69,102,207,25,176,152,49,231,78,183,30,200,97,73,224,54,159,233,64,150,63,23,190,104,193,56,145,71,238,198,111,185,16,85,252,42,131,171,2,212,125,132,45,251,82,122,211,5,172,218,115,165,12,36,141,91,242,11,162,116,221,245,92,138,35,204,101,179,26,50,155,77,228,29,180,98,203,227,74,156,53,67,234,60,149,189,20,194,107,146,59,237,68,108,197,19,186,255,86,128,41,1,168,126,215,46,135);
yyy[170]=new Array(0,170,121,211,242,88,139,33,201,99,176,26,59,145,66,232,191,21,198,108,77,231,52,158,118,220,15,165,132,46,253,87,83,249,42,128,161,11,216,114,154,48,227,73,104,194,17,187,236,70,149,63,30,180,103,205,37,143,92,246,215,125,174,4,166,12,223,117,84,254,45,135,111,197,22,188,157,55,228,78,25,179,96,202,235,65,146,56,208,122,169,3,34,136,91,241,245,95,140,38,7,173,126,212,60,150,69,239,206,100,183,29,74,224,51,153,184,18,193,107,131,41,250,80,113,219,8,162,97,203,24,178,147,57,234,64,168,2,209,123,90,240,35,137,222,116,167,13,44,134,85,255,23,189,110,196,229,79,156,54,50,152,75,225,192,106,185,19,251,81,130);
yyy[171]=new Array(0,171,123,208,246,93,141,38,193,106,186,17,55,156,76,231,175,4,212,127,89,242,34,137,110,197,21,190,152,51,227,72,115,216,8,163,133,46,254,85,178,25,201,98,68,239,63,148,220,119,167,12,42,129,81,250,29,182,102,205,235,64,144,59,230,77,157,54,16,187,107,192,39,140,92,247,209,122,170,1,73,226,50,153,191,20,196,111,136,35,243,88,126,213,5,174,149,62,238,69,99,200,24,179,84,255,47,132,162,9,217,114,58,145,65,234,204,103,183,28,251,80,128,43,13,166,118,221,225,74,154,49,23,188,108,199,32,139,91,240,214,125,173,6,78,229,53,158,184,19,195,104,143,36,244,95,121,210,2,169,146,57,233,66,100,207,31,180,83,248,40,131);
yyy[172]=new Array(0,172,117,217,234,70,159,51,249,85,140,32,19,191,102,202,223,115,170,6,53,153,64,236,38,138,83,255,204,96,185,21,147,63,230,74,121,213,12,160,106,198,31,179,128,44,245,89,76,224,57,149,166,10,211,127,181,25,192,108,95,243,42,134,11,167,126,210,225,77,148,56,242,94,135,43,24,180,109,193,212,120,161,13,62,146,75,231,45,129,88,244,199,107,178,30,152,52,237,65,114,222,7,171,97,205,20,184,139,39,254,82,71,235,50,158,173,1,216,116,190,18,203,103,84,248,33,141,22,186,99,207,252,80,137,37,239,67,154,54,5,169,112,220,201,101,188,16,35,143,86,250,48,156,69,233,218,118,175,3,133,41,240,92,111,195,26,182,124,208,9,165,150);
yyy[173]=new Array(0,173,119,218,238,67,153,52,241,92,134,43,31,178,104,197,207,98,184,21,33,140,86,251,62,147,73,228,208,125,167,10,179,30,196,105,93,240,42,135,66,239,53,152,172,1,219,118,124,209,11,166,146,63,229,72,141,32,250,87,99,206,20,185,75,230,60,145,165,8,210,127,186,23,205,96,84,249,35,142,132,41,243,94,106,199,29,176,117,216,2,175,155,54,236,65,248,85,143,34,22,187,97,204,9,164,126,211,231,74,144,61,55,154,64,237,217,116,174,3,198,107,177,28,40,133,95,242,150,59,225,76,120,213,15,162,103,202,16,189,137,36,254,83,89,244,46,131,183,26,192,109,168,5,223,114,70,235,49,156,37,136,82,255,203,102,188,17,212,121,163,14,58,151);
yyy[174]=new Array(0,174,113,223,226,76,147,61,233,71,152,54,11,165,122,212,255,81,142,32,29,179,108,194,22,184,103,201,244,90,133,43,211,125,162,12,49,159,64,238,58,148,75,229,216,118,169,7,44,130,93,243,206,96,191,17,197,107,180,26,39,137,86,248,139,37,250,84,105,199,24,182,98,204,19,189,128,46,241,95,116,218,5,171,150,56,231,73,157,51,236,66,127,209,14,160,88,246,41,135,186,20,203,101,177,31,192,110,83,253,34,140,167,9,214,120,69,235,52,154,78,224,63,145,172,2,221,115,59,149,74,228,217,119,168,6,210,124,163,13,48,158,65,239,196,106,181,27,38,136,87,249,45,131,92,242,207,97,190,16,232,70,153,55,10,164,123,213,1,175,112,222,227,77,146);
yyy[175]=new Array(0,175,115,220,230,73,149,58,225,78,146,61,7,168,116,219,239,64,156,51,9,166,122,213,14,161,125,210,232,71,155,52,243,92,128,47,21,186,102,201,18,189,97,206,244,91,135,40,28,179,111,192,250,85,137,38,253,82,142,33,27,180,104,199,203,100,184,23,45,130,94,241,42,133,89,246,204,99,191,16,36,139,87,248,194,109,177,30,197,106,182,25,35,140,80,255,56,151,75,228,222,113,173,2,217,118,170,5,63,144,76,227,215,120,164,11,49,158,66,237,54,153,69,234,208,127,163,12,187,20,200,103,93,242,46,129,90,245,41,134,188,19,207,96,84,251,39,136,178,29,193,110,181,26,198,105,83,252,32,143,72,231,59,148,174,1,221,114,169,6,218,117,79,224,60,147);
yyy[176]=new Array(0,176,77,253,154,42,215,103,25,169,84,228,131,51,206,126,50,130,127,207,168,24,229,85,43,155,102,214,177,1,252,76,100,212,41,153,254,78,179,3,125,205,48,128,231,87,170,26,86,230,27,171,204,124,129,49,79,255,2,178,213,101,152,40,200,120,133,53,82,226,31,175,209,97,156,44,75,251,6,182,250,74,183,7,96,208,45,157,227,83,174,30,121,201,52,132,172,28,225,81,54,134,123,203,181,5,248,72,47,159,98,210,158,46,211,99,4,180,73,249,135,55,202,122,29,173,80,224,189,13,240,64,39,151,106,218,164,20,233,89,62,142,115,195,143,63,194,114,21,165,88,232,150,38,219,107,12,188,65,241,217,105,148,36,67,243,14,190,192,112,141,61,90,234,23,167,235);
yyy[177]=new Array(0,177,79,254,158,47,209,96,17,160,94,239,143,62,192,113,34,147,109,220,188,13,243,66,51,130,124,205,173,28,226,83,68,245,11,186,218,107,149,36,85,228,26,171,203,122,132,53,102,215,41,152,248,73,183,6,119,198,56,137,233,88,166,23,136,57,199,118,22,167,89,232,153,40,214,103,7,182,72,249,170,27,229,84,52,133,123,202,187,10,244,69,37,148,106,219,204,125,131,50,82,227,29,172,221,108,146,35,67,242,12,189,238,95,161,16,112,193,63,142,255,78,176,1,97,208,46,159,61,140,114,195,163,18,236,93,44,157,99,210,178,3,253,76,31,174,80,225,129,48,206,127,14,191,65,240,144,33,223,110,121,200,54,135,231,86,168,25,104,217,39,150,246,71,185,8,91,234);
yyy[178]=new Array(0,178,73,251,146,32,219,105,9,187,64,242,155,41,210,96,18,160,91,233,128,50,201,123,27,169,82,224,137,59,192,114,36,150,109,223,182,4,255,77,45,159,100,214,191,13,246,68,54,132,127,205,164,22,237,95,63,141,118,196,173,31,228,86,72,250,1,179,218,104,147,33,65,243,8,186,211,97,154,40,90,232,19,161,200,122,129,51,83,225,26,168,193,115,136,58,108,222,37,151,254,76,183,5,101,215,44,158,247,69,190,12,126,204,55,133,236,94,165,23,119,197,62,140,229,87,172,30,144,34,217,107,2,176,75,249,153,43,208,98,11,185,66,240,130,48,203,121,16,162,89,235,139,57,194,112,25,171,80,226,180,6,253,79,38,148,111,221,189,15,244,70,47,157,102,212,166,20,239);
yyy[179]=new Array(0,179,75,248,150,37,221,110,1,178,74,249,151,36,220,111,2,177,73,250,148,39,223,108,3,176,72,251,149,38,222,109,4,183,79,252,146,33,217,106,5,182,78,253,147,32,216,107,6,181,77,254,144,35,219,104,7,180,76,255,145,34,218,105,8,187,67,240,158,45,213,102,9,186,66,241,159,44,212,103,10,185,65,242,156,47,215,100,11,184,64,243,157,46,214,101,12,191,71,244,154,41,209,98,13,190,70,245,155,40,208,99,14,189,69,246,152,43,211,96,15,188,68,247,153,42,210,97,16,163,91,232,134,53,205,126,17,162,90,233,135,52,204,127,18,161,89,234,132,55,207,124,19,160,88,235,133,54,206,125,20,167,95,236,130,49,201,122,21,166,94,237,131,48,200,123,22,165,93,238);
yyy[180]=new Array(0,180,69,241,138,62,207,123,57,141,124,200,179,7,246,66,114,198,55,131,248,76,189,9,75,255,14,186,193,117,132,48,228,80,161,21,110,218,43,159,221,105,152,44,87,227,18,166,150,34,211,103,28,168,89,237,175,27,234,94,37,145,96,212,229,81,160,20,111,219,42,158,220,104,153,45,86,226,19,167,151,35,210,102,29,169,88,236,174,26,235,95,36,144,97,213,1,181,68,240,139,63,206,122,56,140,125,201,178,6,247,67,115,199,54,130,249,77,188,8,74,254,15,187,192,116,133,49,231,83,162,22,109,217,40,156,222,106,155,47,84,224,17,165,149,33,208,100,31,171,90,238,172,24,233,93,38,146,99,215,3,183,70,242,137,61,204,120,58,142,127,203,176,4,245,65,113,197,52,128,251);
yyy[181]=new Array(0,181,71,242,142,59,201,124,49,132,118,195,191,10,248,77,98,215,37,144,236,89,171,30,83,230,20,161,221,104,154,47,196,113,131,54,74,255,13,184,245,64,178,7,123,206,60,137,166,19,225,84,40,157,111,218,151,34,208,101,25,172,94,235,165,16,226,87,43,158,108,217,148,33,211,102,26,175,93,232,199,114,128,53,73,252,14,187,246,67,177,4,120,205,63,138,97,212,38,147,239,90,168,29,80,229,23,162,222,107,153,44,3,182,68,241,141,56,202,127,50,135,117,192,188,9,251,78,103,210,32,149,233,92,174,27,86,227,17,164,216,109,159,42,5,176,66,247,139,62,204,121,52,129,115,198,186,15,253,72,163,22,228,81,45,152,106,223,146,39,213,96,28,169,91,238,193,116,134,51,79,250);
yyy[182]=new Array(0,182,65,247,130,52,195,117,41,159,104,222,171,29,234,92,82,228,19,165,208,102,145,39,123,205,58,140,249,79,184,14,164,18,229,83,38,144,103,209,141,59,2
... (truncated)
javascript_obj0720_022.js pdf-javascript-stream PDF /JS object 720 at offset 0x63A0B 8595 bytes
SHA-256: 5076026448694df07d81995a6f52f2135c18b2bd6d0340fdaeebe7c5d9c2e63d
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
function MD5_init(){}
/*
 * A JavaScript implementation of the RSA Data security, Inc. MD5 Message
 * Digest Algorithm, as defined in RFC 1321.
 * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for more info.
 */

/*
 * Configurable variables. You may need to tweak these to be compatible with
 * the server-side, but the defaults work in most cases.
 */
var hexcase = 0;  /* hex output format. 0 - lowercase; 1 - uppercase        */
var b64pad  = ""; /* base-64 pad character. "=" for strict RFC compliance   */
var chrsz   = 8;  /* bits per input character. 8 - ASCII; 16 - Unicode      */

/*
 * These are the functions you'll usually want to call
 * They take string arguments and return either hex or base-64 encoded strings
 */
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }

/*
 * Perform a simple self-test to see if the VM is working
 */
function md5_vm_test()
{
  return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}

/*
 * Calculate the MD5 of an array of little-endian words, and a bit length
 */
function core_md5(x, len)
{
  /* append padding */
  x[len >> 5] |= 0x80 << ((len) % 32);
  x[(((len + 64) >>> 9) << 4) + 14] = len;

  var a =  1732584193;
  var b = -271733879;
  var c = -1732584194;
  var d =  271733878;

  for(var i = 0; i < x.length; i += 16)
  {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;

    a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
    d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
    c = md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
    b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
    a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
    d = md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
    c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
    b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
    a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
    d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
    c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
    b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
    a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
    d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
    c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
    b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);

    a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
    d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
    c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);
    b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
    a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
    d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
    c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
    b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
    a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
    d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
    c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
    b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
    a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
    d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
    c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
    b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);

    a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
    d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
    c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
    b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
    a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
    d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
    c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
    b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
    a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
    d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
    c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
    b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
    a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
    d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
    c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);
    b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);

    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
    d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
    b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
    a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
    d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
    c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
    b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
    a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
    d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
    c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
    b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
    a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
    d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
    c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
    b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);

    a = safe_add(a, olda);
    b = safe_add(b, oldb);
    c = safe_add(c, oldc);
    d = safe_add(d, oldd);
  }
  return Array(a, b, c, d);

}

/*
 * These functions implement the four basic operations the algorithm uses.
 */
function md5_cmn(q, a, b, x, s, t)
{
  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
  return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}

/*
 * Calculate the HMAC-MD5, of a key and some data
 */
function core_hmac_md5(key, data)
{
  var bkey = str2binl(key);
  if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);

  var ipad = Array(16), opad = Array(16);
  for(var i = 0; i < 16; i++)
  {
    ipad[i] = bkey[i] ^ 0x36363636;
    opad[i] = bkey[i] ^ 0x5C5C5C5C;
  }

  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
  return core_md5(opad.concat(hash), 512 + 128);
}

/*
 * Add integers, wrapping at 2^32. This uses 16-bit operations internally
 * to work around bugs in some JS interpreters.
 */
function safe_add(x, y)
{
  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF);
}

/*
 * Bitwise rotate a 32-bit number to the left.
 */
function bit_rol(num, cnt)
{
  return (num << cnt) | (num >>> (32 - cnt));
}

/*
 * Convert a string to an array of little-endian words
 * If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
 */
function str2binl(str)
{
  var bin = Array();
  var mask = (1 << chrsz) - 1;
  for(var i = 0; i < str.length * chrsz; i += chrsz)
    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
  return bin;
}

/*
 * Convert an array of little-endian words to a string
 */
function binl2str(bin)
{
  var str = "";
  var mask = (1 << chrsz) - 1;
  for(var i = 0; i < bin.length * 32; i += chrsz)
    str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
  return str;
}

/*
 * Convert an array of little-endian words to a hex string.
 */
function binl2hex(binarray)
{
  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i++)
  {
    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
  }
  return str;
}

/*
 * Convert an array of little-endian words to a base-64 string
 */
function binl2b64(binarray)
{
  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  var str = "";
  for(var i = 0; i < binarray.length * 4; i += 3)
  {
    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)
                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
    for(var j = 0; j < 4; j++)
    {
      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
    }
  }
  return str;
}
javascript_obj0721_023.js pdf-javascript-stream PDF /JS object 721 at offset 0x645C2 1049 bytes
SHA-256: f667de1ba2f5689c2db6ca8efec22f4cae905543c7e55765301e47c9d3e39d66
Preview script
First 1,000 lines of the extracted script
function RSA_init(){}


// RSA, a suite of routines for performing RSA public-key computations in
// JavaScript.
//
// Requires BigInt.js and Barrett.js.
//
// Copyright 1998-2005 David Shapiro.
//
// You may use, re-use, abuse, copy, and modify this code to your liking, but
// please keep this header.
//
// Thanks!
//
// Dave Shapiro
// dave@ohdave.com


function encryptRSA16Bytes(a)
	// Altered by Rob Saunders (rob@robsaunders.net). New routine pads the
	// string after it has been converted to an array. This fixes an
	// incompatibility with Flash MX's ActionScript.
{
	var block = new BigInteger(a);
	var exponent = new BigInteger(formProperties.rsaKeyEncryptionExponent, 16);
	var modulus = new BigInteger(formProperties.rsaKeyModulus, 16);
	var crypt = block.modPowInt(exponent, modulus);
	var result = crypt.toByteArray();

	while (result.length > 128)
		result.shift();
	
	while (result.length < 128)
		result.unshift(0);
	for (var i = 0; i < result.length; i ++)
		if (result[i] < 0)
			result[i] = result[i] + 256;

	return result;
}
javascript_obj0722_024.js pdf-javascript-stream PDF /JS object 722 at offset 0x64851 4865 bytes
SHA-256: 832c043f762123bcb0cec6af23dfbf59bdb25780b23b8288cdc6042c690fd7d2
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 2 eval/decoder/string-building token(s).
Preview script
First 1,000 lines of the extracted script
var serverOfflineMsg = undefined;
var transferMsg = undefined;
var submitting = false;
var timeOutPeriod = 30;
var submitThermometer;
var submitTimeoutObj;
var submitIntervalObj;
var submitSeconds;
var submitWebsave;

function submit(doWebsave, serverOfflineSubmit, transferSubmit, connectingSubmit)
{
	if (submitting) return;
	
	serverOfflineMsg = serverOfflineSubmit;
	transferMsg = transferSubmit;
	submitting = true;
	submitWebsave = doWebsave;
	
	// if version 9 or later or running in a web browser, ping isn't required
	if (app.viewerVersion >= 9 || event.target.doc.external == true)
	{
		submitting = true;
		var dummyEvent = new Object();
		dummyEvent.value = "success";
		submitThermometer = app.thermometer;
		submitForm_pingValidate(dummyEvent);
	}
	else
	{
		// ping it
		event.target.doc.submitForm({
			cURL: "https://" + formProperties.serverHost + ":" + formProperties.serverPort + formProperties.pingServlet,
			aFields: new Array(),
			cSubmitAs: "XFDF"
		});
		
		var t = app.thermometer;
		t.begin();
		t.duration = timeOutPeriod;
		t.text = connectingSubmit;
		t.value = 0;
		submitThermometer = t;
		
		submitSeconds = 0;
		submitTimeoutObj = app.setTimeOut("submitForm_timeOut();", timeOutPeriod * 1000);
		submitIntervalObj = app.setInterval("submitForm_interval();", 1000);
	}
}

function submitForm_interval()
{
	submitThermometer.value = submitSeconds++;
}

function submitForm_timeOut()
{
	app.alert(serverOfflineMsg);
	submitThermometer.end();
	submitting = false;
	app.clearInterval(submitIntervalObj);
	submitTimeoutObj = undefined;
	submitIntervalObj = undefined;
	submitThermometer.end();
}

function submitForm_pingValidate(event)
{
	if (submitting == false) return;
	
	if (submitTimeoutObj != undefined) app.clearTimeOut(submitTimeoutObj);
	if (submitIntervalObj != undefined) app.clearInterval(submitIntervalObj);
	submitTimeoutObj = undefined;
	submitIntervalObj = undefined;
	if (submitThermometer != undefined)
		submitThermometer.end();
	
	if (event.value == "success")
	{
		var fieldNames = new Array();

		for (var k in fields)
		{
			fieldNames.push(k);
		}
		fieldNames.push("swissformsFormId");
		fieldNames.push("swissformsFormVersion");
		fieldNames.push("swissformsServerId");
		fieldNames.push("clientInfo");
		
		submitThermometer.begin();
		submitThermometer.duration = fieldNames.length*2;
		submitThermometer.text = transferMsg;
		submitThermometer.value = 0;
		
		this.delay = true;
		
		if (!submitWebsave)
		{
			// format to export values
			submitForm_formatOutput();
			
			// set client info
			submitForm_setClientInfo();
		}
		
		var servlet;
		if (submitWebsave)
			servlet = formProperties.websaveServlet;
		else
			servlet = formProperties.submitServlet;
		// submit
		this.submitForm({
			cURL: "https://" + formProperties.serverHost + ":" + formProperties.serverPort + servlet,
			bEmpty: true,
			aFields: fieldNames,
			cSubmitAs: "XFDF"
		});
		
		if (!submitWebsave)
		{
			// format back
			submitForm_formatBack();
		}
		
		submitThermometer.end();
		
		this.delay = false;
		
		submitting = false;
		event.value = "";
	}
	else
	{
		app.alert(serverOfflineMsg);
		submitThermometer.end();
		submitting = false;
	}
}

function submitForm_setClientInfo()
{
	var field = getField("clientInfo");
	var fieldStr = app.language + ";" + app.platform + ";" + app.viewerType + ";" + app.viewerVariation + ";" + app.viewerVersion + ";" + app.formsVersion + ";" + app.openInPlace;
	field.value = fieldStr;
}

var submitForm_tempBuffer = new Array();
var submitForm_tempBufferMaxChars = new Array();

function submitForm_formatOutput()
{
	ignoreAllEvents = true;
	submitForm_tempBuffer = new Array();
	var counter = 0;
	for (var fieldName in fields)
	{
		submitThermometer.value = counter ++;
		
		var outputValue = fields[fieldName]["_formattedSubmit"];
		if (outputValue == null)
			outputValue = fields[fieldName]["_formatted"];
			
		if (outputValue != null)
		{
			var field = getField(fieldName);
			submitForm_tempBuffer[fieldName] = field.value;
			
			if (field.charLimit != 0)
			{
				submitForm_tempBufferMaxChars[fieldName] = field.charLimit;
				field.charLimit = 1000000000;
			}
			field.value = outputValue + String.fromCharCode(65530) + submitForm_tempBuffer[fieldName];
		}
	}
}

function submitForm_formatBack()
{
	ignoreAllEvents = false;
	
	submitForm_formatingBack = true;
	var counter = submitThermometer.duration / 2;
	
	for (var fieldName in fields)
	{
		submitThermometer.value = counter ++;
		
		var outputValue = submitForm_tempBuffer[fieldName];
		if (outputValue != null)
		{
			var field = getField(fieldName);
			field.value = outputValue;
		}
		
		var charLimitBefore = submitForm_tempBufferMaxChars[fieldName];
		if (charLimitBefore != undefined)
		{
			var field = getField(fieldName);
			field.charLimit = charLimitBefore;
		}
	}
	submitForm_formatingBack = false;
}
javascript_obj0723_025.js pdf-javascript-stream PDF /JS object 723 at offset 0x64DDC 22042 bytes
SHA-256: b39a5e4aae45094c4abd6572ec3bcff8772b19e8e2e78a0c08ee425f994a0017
Preview script
First 1,000 lines of the extracted script
function numberCldr_validate(event)
{
	var field = event.target;
	var fieldName = field.name;
	
	root_validate(event);
	if (CANCEL_VALIDATE_CHAIN) return;
	
	// if empty
	var numberStr = event.value + "";
	numberStr = numberStr.trim();
	if (numberStr == "")
	{
		fields[fieldName]["_value"] = undefined;
		fields[fieldName]["_formattedSubmit"] = undefined;
		textField_validate(event);
		return;
	}
	
	var number = parseNumber(numberStr);
	if (number == null)
	{
		fields[fieldName]["_invalidityReason"] = INVALIDITY_REASON_INPUT;
		fields[fieldName]["validity"] = INVALID;
		fields[fieldName]["_empty"] = false;
		return;
	}
	
		// rounding
	if (fields[fieldName]["numberRoundingCldr"] != 0)
	{
		var roundValue = fields[fieldName]["numberRoundingCldr"];
		
		number = number / roundValue;
		number = Math.round(number);
		number = number * roundValue;
	}
	
	numberStr = number.toString();
	numberStr = numberStr.replace(/[.]/, cldr.numbers_symbols.decimal);
	fields[field.name]["validity"] = VALID;
	fields[fieldName]["_value"] = { type : "number", getValue : function(){return this.value;}, value : number};
		
	fields[fieldName]["_formattedSubmit"] = number.toString();
	event.value = numberStr;
	
	if (field.readonly)
	{
		event.value = numberCldr_formatGeneral(number, fields[fieldName]["numberPattern"], fields[fieldName]["showZero"]);
		if (number < 0)
		{
			// negative number color
			field.textColor = fields[fieldName]["negativeNumberColor"];
		}
		else
		{
			// positive number color
			field.textColor = fields[fieldName]["fontColor"];
		}
	}	
	textField_validate(event);
}

function numberCldr_formatGeneral(number, numberPatternOrig, showZero)
{
	// don't show if number is zero
	if(number == 0 && showZero == false)
	{
		return "";
	}
	
	// number pattern
	var numberPattern;
	if (numberPatternOrig != "")
	{
		numberPattern = numberPatternOrig;
	}
	else
	{
		// get from cldr
		numberPattern = cldr.numbers_symbols.numberPattern;
	}
	
	return formatNumber(number, numberPattern);
}

function numberCldr_format(event)
{
	textField_format(event);
	if (CANCEL_FORMAT_CHAIN) return;
	
	var field = event.target;
	var fieldName = field.name;
	
	if (fields[fieldName]["_empty"] == true || (fields[fieldName]["validity"] == INVALID && fields[field.name]["_invalidityReason"] == INVALIDITY_REASON_INPUT))
	{
		return;
	}
		
	var number = fields[fieldName]["_value"];
	if (number == null)
	{
		return;
	}
	number = number.getValue();
	
	if(number < 0)
	{
		// negative number color
		field.textColor = fields[fieldName]["negativeNumberColor"];
	}
	else
	{
		// positive number color
		field.textColor = fields[fieldName]["fontColor"];
	}

	var formatted = numberCldr_formatGeneral(number, fields[fieldName]["numberPattern"], fields[fieldName]["showZero"]);
	fields[fieldName]["_cached"] = formatted;
	event.value = formatted;
}function resetForm_reset(event)
{
	var field = event.target;
	var fieldName = field.name;
	if (fields[fieldName]["resetBehavior"] != undefined && fields[fieldName]["resetBehaviorMessage"] != undefined && fields[fieldName]["resetBehaviorTitle"] != undefined)
	{
		if (app.alert(fields[fieldName]["resetBehaviorMessage"], 2, 2, fields[fieldName]["resetBehaviorTitle"]) == 3)
			return;
	}
	
	event.target.doc.resetForm();

	initForm();

	var icon = createIcon("", 1, 1);
	for(var j = 0; j < dmArray.length; j++)
	{
		event.target.doc.getField(dmArray[j]).buttonSetIcon(icon);
	}
}var checkbox_groupValidating = new Array();

function checkboxChanged(event)
{	
	if(event.source != null)
	{
		var field = event.source;
		var fieldName = field.name;
		var mode = fields[fieldName]["cbMode"];

		var group = fields[fieldName]["cbGroup"];
		
		if (checkbox_groupValidating[group] != undefined && checkbox_groupValidating[group] == true)
			return;
		checkbox_groupValidating[group] = true;
		
		if(mode == 0) // 0 or 1
		{
			var cbGroupFields = getCbGroupFields(fields[fieldName]["cbGroup"], field);
		
			if(field.value != "Off")
			{
				for(var i = 0; i < cbGroupFields.length; i++)
				{
					if(cbGroupFields[i] != field && cbGroupFields[i].value != "Off")
					{	
						cbGroupFields[i].value = "Off";
						checkbox_generateCalculateEvent(cbGroupFields[i]);
					}
				}
			}
		
			validateCbGroup(cbGroupFields, field);
		}
		else if(mode == 1) // 0 or N
		{
			var cbGroupFields = getCbGroupFields(fields[fieldName]["cbGroup"], field);
			validateCbGroup(cbGroupFields, field);
		}
		else if(mode == 2) // 1
		{
			var cbGroupFields = getCbGroupFields(fields[fieldName]["cbGroup"], field);
		
			if(field.value != "Off")
			{
				for(var i = 0; i < cbGroupFields.length; i++)
				{
					if(cbGroupFields[i] != field && cbGroupFields[i].value != "Off")
					{
						cbGroupFields[i].value = "Off";
						checkbox_generateCalculateEvent(cbGroupFields[i]);
					}
				}
			}
			else
			{
				//event.rc = false;
				//return;
			}
		
			validateCbGroup(cbGroupFields, field);
		}
		else if(mode == 3) // 1 or N
		{
			var cbGroupFields = getCbGroupFields(fields[fieldName]["cbGroup"], field);
		
			validateCbGroup(cbGroupFields, field);
		}
		
		checkbox_groupValidating[group] = false;
	}
}

function checkbox_generateCalculateEvent(field)
{
	var newEvent = { name : "Calculate", source : field, target : getField("swissformsFormId")};
	handleEvent(newEvent);
}

function validateCbGroup(checkboxes, currField)
{
	var mode = fields[checkboxes[0].name]["cbMode"];
	
	if(mode == 2)
	{
		var oneIsChecked = false;
		
		for(var i = 0; i < checkboxes.length; i++)
		{
			if(checkboxes[i].value != "Off") oneIsChecked = true;
		}
		
		for(var i = 0; i < checkboxes.length; i++)
		{			
			if(oneIsChecked)
			{
				fields[checkboxes[i].name]["validity"] = VALID;
			}
			else
			{
				fields[checkboxes[i].name]["_invalidityReason"] = INVALIDITY_REASON_OTHER;
				fields[checkboxes[i].name]["validity"] = INVALID;
			}
		}
	}
	else if(mode == 3)
	{
		var oneIsChecked = false;
		
		for(var i = 0; i < checkboxes.length; i++)
		{
			if(checkboxes[i].value != "Off") oneIsChecked = true;
		}
		
		for(var i = 0; i < checkboxes.length; i++)	
		{
			if(!oneIsChecked)
			{
				fields[checkboxes[i].name]["validity"] = INVALID;
				fields[checkboxes[i].name]["_invalidityReason"] = INVALIDITY_REASON_OTHER;
			}
			else
			{
				fields[checkboxes[i].name]["validity"] = VALID;
			}
		}
	}
	else
	{
		for(var i = 0; i < checkboxes.length; i++)
		{
			fields[checkboxes[i].name]["validity"] = VALID;
		}
	}
	
	ignoreAllEvents = true;
	for(var i = 0; i < checkboxes.length; i++)
	{
		// validate checkbox
		var dummyEvent = new Object();
		dummyEvent.target = checkboxes[i];
		dummyEvent.value = checkboxes[i].value;
		if (fields[checkboxes[i].name]["validity"] == VALID)
		{	
			dummyEvent.name = "Validate";
			dummyEvent.target = checkboxes[i];
			dummyEvent.value = checkboxes[i].value;
			validation_validate(dummyEvent);
		}
		
		if (checkboxes[i] != currField)
		{
			dummyEvent.name = "Blur";
			checkbox_deactivate(dummyEvent);
		}
		/*else
		{
			dummyEvent.name = "Blur";
			handleEvent(dummyEvent);
		}*/
	}
	ignoreAllEvents = false;
}

function getCbGroupFields(groupName, field)
{
	// ignore grouping if no group
	if (groupName == "" || groupName == undefined)
	{
		var arr = new Array();
		arr.push(field)
		return arr;
	}

	return CACHED_CB_GROUPS[groupName];
}

function checkbox_deactivate(event)
{
	var field = event.target;

	if (checkbox_groupValidating[fields[field.name]["cbGroup"]] != undefined && checkbox_groupValidating[fields[field.name]["cbGroup"]] == true && eventLevel == 2)
		return;
	
	deactivateField(event);
	
	checkbox_updateColor(field);		
}

function checkbox_updateColor(field)
{
	if(field.readonly != true)
	{
		if(fields[field.name]["validity"] != undefined)
		{
			var validity = fields[field.name]["validity"];
			
			if(fields[field.name]["_empty"] == true) field.fillColor = fields[field.name]["emptyColor"];
			else if(validity == VALID) field.fillColor = fields[field.name]["okColor"];
			else if(validity == INVALID) field.fillColor = fields[field.name]["invalidColor"];
		}
		else
		{
			field.fillColor = fields[field.name]["backgroundColor"];
		}
	}
	else
	{
		field.fillColor = fields[field.name]["backgroundColor"];
	}
}

function checkbox_validate(event)
{
	event.source = event.target;
	checkboxChanged(event);
}var CANCEL_VALIDATE_CHAIN = false;
var CANCEL_FORMAT_CHAIN = false;

var helpField_currentFields = new Array();

function activateField(event)
{
	var field = event.target;

	// dont handle if this field is calculated
	if (field.readonly)
		return;

	IGNORE_FORMAT_EVENT = true;
	event.target.fillColor = fields[field.name]["focusColor"];
	IGNORE_FORMAT_EVENT = false;
	
	if(fields[field.name]["helpText"] != undefined && fields[field.name]["helpText"] != "")
	{
		showHelp(field);
	}
}

function showHelp(field)
{
	var helpField = this.getField("help" + (field.page+1));
	helpField.value = fields[field.name]["helpText"];
	helpField_currentFields[field.page+1] = field;
	
	if(fields[field.name]["helpWidth"] == undefined)
	{
		fields[field.name]["helpWidth"] = 170;
	}
	
	if(fields[field.name]["helpHeight"] == undefined)
	{
		fields[field.name]["helpHeight"] = 13;
	}
	
	if (fields[field.name]["helpAutoSize"] != undefined)
	{
		var pos = 0;
		if (fields[field.name]["helpPosition"] != undefined)
		{
			pos = fields[field.name]["helpPosition"];
		}
		
		if (fields[field.name]["helpAutoSize"] == true)
		{
			if (pos == 0 || pos == 3)
			{
				fields[field.name]["helpWidth"] = fields[field.name]["width"];
			}
			else
			{
				fields[field.name]["helpHeight"] = fields[field.name]["height"];
			}
		}
	}
	
	if(fields[field.name]["helpPosition"] != undefined)
	{
		var pos = fields[field.name]["helpPosition"];
		
		if(pos == 0)
		{
			showHelpBottom(field, helpField);
			return;
		}
		
		if(pos == 1)
		{
			showHelpRight(field, helpField);
			return;
		}
		
		if(pos == 2)
		{
			showHelpLeft(field, helpField);
			return;
		}
		
		if(pos == 3)
		{
			showHelpTop(field, helpField);
			return;
		}
	}
	else
	{
		showHelpBottom(field, helpField);
	}		
}

function showHelpRight(field, helpField)
{
	ignoreAllEvents = true;
	helpField.rect = [field.rect[2], field.rect[1], field.rect[2] + (fields[field.name]["helpWidth"]), field.rect[1] - (fields[field.name]["helpHeight"])];
	helpField.display = display.noPrint;
	ignoreAllEvents = false;
}

function showHelpLeft(field, helpField)
{
	ignoreAllEvents = true;
	helpField.rect = [field.rect[0] - (fields[field.name]["helpWidth"]), field.rect[1], field.rect[0], field.rect[1] - (fields[field.name]["helpHeight"])];
	helpField.display = display.noPrint;
	ignoreAllEvents = false;
}

function showHelpTop(field, helpField)
{
	ignoreAllEvents = true;
	helpField.rect = [field.rect[0], field.rect[1] + (fields[field.name]["helpHeight"]), field.rect[0] + (fields[field.name]["helpWidth"]), field.rect[1]];
	helpField.display = display.noPrint;
	ignoreAllEvents = false;
}

function showHelpBottom(field, helpField)
{
	ignoreAllEvents = true;
	helpField.rect = [field.rect[0], field.rect[3], field.rect[0] + (fields[field.name]["helpWidth"]), field.rect[3] - (fields[field.name]["helpHeight"])];
	helpField.display = display.noPrint;
	ignoreAllEvents = false;
}

function deactivateField(event)
{
	var field = event.target;

	// dont handle if this field is calculated
	if (field.readonly)
		return;
	
	field.fillColor = fields[field.name]["backgroundColor"];
	
	var helpField = this.getField("help" + (field.page+1));
	if(helpField != undefined && (helpField_currentFields[field.page+1] == field || IN_INIT))
	{
		helpField_currentFields[field.page+1] = undefined;
		helpField.display = display.hidden;
	}
}

function root_format(event)
{
	var field = event.target;
	var fieldName = field.name;
	
	if (submitForm_formatingBack == true && fields[fieldName]["_cached"] != undefined)
	{
		event.value = fields[fieldName]["_cached"];
		CANCEL_FORMAT_CHAIN = true;
	}
	else
		CANCEL_FORMAT_CHAIN = false;
}

function root_validate(event)
{
	if (submitForm_formatingBack == true && fields[event.target.name]["_cached"] != undefined)
	{
		CANCEL_VALIDATE_CHAIN = true;
	}
	else
	{
		root_cut(event);
		CANCEL_VALIDATE_CHAIN = false;
	}
}

function root_cut(event)
{
	if (event.target.readonly)
	{
		if (event.alreadyCutted == true || submitForm_formatingBack == true) return;
		
		var value = "" + event.value;
		if (fields[event.target.name]["maxChars"] != undefined && fields[event.target.name]["maxChars"] != 0)
		{
			if (value.length > fields[event.target.name]["maxChars"])
			{
				value = value.substr(0, fields[event.target.name]["maxChars"]);
				event.value = value;
			}
		}
		
		event.alreadyCutted = true;
	}
}function printForm_print(event)
{
	app.execMenuItem("Print");
}

function textField_validate(event, overrideValue, overrideIsEmpty)
{
	root_validate(event);
	if (CANCEL_VALIDATE_CHAIN) return;
		
	var field = event.target;
	var fieldName = field.name;
	var value = "" + event.value;
	
	if (overrideValue != undefined)
		value = overrideValue;
	
	var isEmpty = value.trim() == "";
	if (overrideIsEmpty)
		isEmpty = overrideIsEmpty;
		
	if(isEmpty)
	{
		fields[field.name]["validity"] = VALID;
		fields[field.name]["_empty"] = true;
		validation_validate(event);
	}
	else
	{
		fields[field.name]["_empty"] = false;
		if(fields[field.name]["validatePattern"] != undefined)
		{
			var regexp = new RegExp();
			regexp.compile(fields[field.name]["validatePattern"]);
			var valid = regexp.test(value);
			if(valid) fields[field.name]["validity"] = VALID;
			else
			{
				fields[fieldName]["_invalidityReason"] = INVALIDITY_REASON_INPUT;
				fields[field.name]["validity"] = INVALID;
				return;	
			}
		}
		else
		{
			fields[field.name]["validity"] = VALID;
		}
		
		validation_validate(event);
	}
	
	if (field.readonly)
	{
		if (fields[fieldName]["validatePattern"] != undefined && fields[fieldName]["validatePattern"] != "" && fields[fieldName]["formatPattern"] != undefined && fields[fieldName]["formatPattern"] != "")
		{
			var val = value;
			var regExp = new RegExp(fields[fieldName]["validatePattern"], "");
			event.value = ("" + val).replace(regExp, fields[fieldName]["formatPattern"]);
		}
	}
}

function textField_keystroke(event)
{
	var field = event.target;
	var fieldName = field.name;
	
	if(event.willCommit == false && fields[fieldName]["keystrokePattern"] != undefined)
	{
		var valid = false;
		var regexp = new RegExp();
		regexp.compile(fields[fieldName]["keystrokePattern"]);
		valid = regexp.test(mergeChange(event));

		if(!valid)
		{
			app.beep();
			event.rc = false;
		}
	}
	else if(event.willCommit == true && fields[fieldName]["keystrokeCommitPattern"] != undefined)
	{
		var valid = false;
		var regexp = new RegExp();
		regexp.compile(fields[fieldName]["keystrokeCommitPattern"]);
		valid = regexp.test(mergeChange(event));

		if(!valid)
		{
			app.beep();
			event.rc = false;
		}
	}
}

function textField_focus(event)
{
	activateField(event);

	var field = event.target;
	var fieldName = field.name;

	if (fields[fieldName]["nullText"] != undefined && fields[fieldName]["nullTextFont"] != undefined && fields[fieldName]["nullTextFontColor"] != undefined && fields[fieldName]["nullTextFontSize"] != undefined && fields[fieldName]["nullTextAlignment"] != undefined)
	{
		if (fields[fieldName]["nullText"] != "")
		{
			var font = fields[fieldName]["font"];
			var fontSize = fields[fieldName]["fontSize"];
			var fontColor = fields[fieldName]["fontColor"];
			var alignment = fields[fieldName]["alignment"];
			IGNORE_FORMAT_EVENT = true;
			textField_setNewFont(field, font, fontSize, fontColor, alignment);
			IGNORE_FORMAT_EVENT = false;
		}
	}
}

function textField_deactivateField(event)
{
	IGNORE_FORMAT_EVENT = true;
	deactivateField(event);
	IGNORE_FORMAT_EVENT = false;
	
	var field = event.target;
	
	if(field.readonly == false)
	{
		if(fields[field.name]["validity"] != undefined)
		{
			var validity = fields[field.name]["validity"];
			
			if(fields[field.name]["_empty"] == true && (fields[field.name]["validateBehaviorIfEmpty"] == undefined || fields[field.name]["validateBehaviorIfEmpty"] == false))
			{
				if(fields[field.name]["required"] == true)
				{
					field.fillColor = fields[field.name]["requiredColor"];
				}
				else
				{
					field.fillColor = fields[field.name]["emptyColor"];
				}
			}
			else if(validity == VALID) field.fillColor = fields[field.name]["okColor"];
			else if(validity == INVALID) field.fillColor = fields[field.name]["invalidColor"];
		}
		else
		{
			field.fillColor = fields[field.name]["backgroundColor"];
		}
	}
}

function textField_format(event)
{
	root_format(event);
	if (CANCEL_FORMAT_CHAIN) return;
	
	var field = event.target;
	var fieldName = field.name;
		
	if (field.readonly || (fields[fieldName]["validity"] == INVALID && fields[field.name]["_invalidityReason"] == INVALIDITY_REASON_INPUT))
	{
		CANCEL_FORMAT_CHAIN = true;
		return;
	}
		
	// handle null text
	if (textField_handleNulltext(field, fieldName) == true) return;
	
	if (fields[fieldName]["validatePattern"] != undefined && fields[fieldName]["validatePattern"] != "" && fields[fieldName]["formatPattern"] != undefined && fields[fieldName]["formatPattern"] != "")
	{
		var val = event.target.value;
		var regExp = new RegExp(fields[fieldName]["validatePattern"], "");
		event.value = ("" + val).replace(regExp, fields[fieldName]["formatPattern"]);
	}
}

function textField_handleNulltext(field, fieldName)
{
	if (fields[fieldName]["nullText"] != undefined && fields[fieldName]["nullTextFont"] != undefined && fields[fieldName]["nullTextFontColor"] != undefined && fields[fieldName]["nullTextFontSize"] != undefined && fields[fieldName]["nullTextAlignment"] != undefined)
	{	
		if (fields[fieldName]["_empty"] == true && fields[fieldName]["nullText"] != "")
		{
			var font = fields[fieldName]["nullTextFont"];
			var fontSize = fields[fieldName]["nullTextFontSize"];
			var fontColor = fields[fieldName]["nullTextFontColor"];
			var alignment = fields[fieldName]["nullTextAlignment"];
			if (alignment == "auto") alignment = fields[fieldName]["alignment"];
			
			IGNORE_FORMAT_EVENT = true;
			textField_setNewFont(field, font, fontSize, fontColor, alignment);
			IGNORE_FORMAT_EVENT = false;
			
			event.value = fields[fieldName]["nullText"];
			CANCEL_FORMAT_CHAIN = true;
			return true;
		}
		else if (fields[fieldName]["nullText"] != "")
		{
			var font = fields[fieldName]["font"];
			var fontSize = fields[fieldName]["fontSize"];
			var fontColor = fields[fieldName]["fontColor"];
			var alignment = fields[fieldName]["alignment"];
			
			IGNORE_FORMAT_EVENT = true;
			textField_setNewFont(field, font, fontSize, fontColor, alignment);
			IGNORE_FORMAT_EVENT = false;
		}
	}
	
	return false;
}

function textField_setNewFont(field, font, fontSize, fontColor, alignment)
{
	field.textFont = font;
	field.textSize = fontSize;
	field.textColor = fontColor;
	if (field.type == "text")
		field.alignment = alignment;
	
}

/*function textField_convertFontName(name)
{
	switch (name)
	{
		case "Times-Roman":
			return "font.Times";
		case "Times-Bold":
			return "font.TimesB";
		case "Times-Italic":
			return "font.TimesI";
		case "Times-BoldItalic":
			return "font.TimesBI";
		case "Helvetica":
			return "font.Helv";
		case "Helvetica-Bold":
			return "font.HelvB";
		case "Helvetica-Oblique":
			return "font.HelvI";
		case "Helvetica-BoldOblique":
			return "font.HelvBI";
		case "Courier":
			return "font.Cour";
		case "Courier-Bold":
			return "font.CourB";
		case "Courier-Oblique":
			return "font.CourI";
		case "Courier-BoldOblique":
			return "font.CourBI";
		case "Symbol":
			return "font.Symbol";
		case "ZapfDingbats":
			return "font.ZapfD";
		default:
			return name;
	}
}*/

function mergeChange(event)
{
	var prefix, postfix;
	var value = event.value;

	if(event.willCommit) return event.value;
	if(event.selStart >= 0) prefix = value.substring(0, event.selStart);
	else prefix = "";

	if(event.selEnd >= 0 && event.selEnd <= value.length) postfix = value.substring(event.selEnd, value.length);
	else postfix = "";

	return prefix + event.change + postfix;
}function validation_validate(event)
{
	root_validate(event);
	if (CANCEL_VALIDATE_CHAIN) return;
	
	var field = event.target;
	var fieldName = field.name;
	
	if (fields[fieldName]["_empty"] == true && (fields[fieldName]["validateBehaviorIfEmpty"] == undefined || fields[fieldName]["validateBehaviorIfEmpty"] == false))
	{
		return;
	}
	
	if(fields[field.name]["validation"] != undefined && fields[field.name]["validation"] != "")
	{
		inValidate = true;
		validateEvent = event;
		var expression = fields[field.name]["validation"];
		
		CANCEL_CALCULATION = false;
		CALCULATE_RULES = false;
		CALCULATION_ONE_FILLED = false;
		CALCULATION_ALL_FILLED = true;
		CALCULATION_WITH_FIELD = false;
	
		var valid = Boolean(expression());
		
		inValidate = false;
		validateEvent = undefined;
		
		if (CANCEL_CALCULATION && fields[field.name]["validateBehaviorStandard"] != undefined)
			valid = fields[field.name]["validateBehaviorStandard"];
		else if (CALCULATION_WITH_FIELD)
		{
			// handle behavior if empty fields
			if (fields[field.name]["validateBehavior"] == 0)
			{
				if (CALCULATION_ALL_FILLED == false)
				{
					valid = fields[field.name]["validateBehaviorStandard"];
				}
			}
			else if (fields[field.name]["validateBehavior"] == 1)
			{
				if (CALCULATION_ONE_FILLED == false)
				{
					valid = fields[field.name]["validateBehaviorStandard"];
				}
			}
		}
		
		if(valid)
		{
			fields[field.name]["validity"] = VALID;
		}
		else
		{
			fields[field.name]["_invalidityReason"] = INVALIDITY_REASON_OTHER;
			fields[field.name]["validity"] = INVALID;
		}
	}
}
javascript_obj0724_026.js pdf-javascript-stream PDF /JS object 724 at offset 0x65E39 276986 bytes
SHA-256: 71f5a5c2f276ac35ed818a742253328ba7f7a44c02996cb7c49619e3cfacfb41
Detection
ClamAV: No threats found
Obfuscation or payload: likely
Carved artifact contains 1 long base64-like blob(s).
Preview script
First 1,000 lines of the extracted script
var dmArray = new Array();var f;var fields = new Array();
var rules=[{condition:function(){return __notequals(fieldValue(191), "Off");},trueActions:[function(){action_setFieldVisibility(184,2);},function(){action_setFieldVisibility(185,2);},function(){action_setFieldVisibility(186,2);},function(){action_setFieldVisibility(188,2);},function(){action_setFieldVisibility(189,2);},function(){action_setFieldVisibility(191,1);},function(){action_setFieldVisibility(190,1);}],falseActions:[function(){action_setFieldVisibility(184,1);},function(){action_setFieldVisibility(185,1);},function(){action_setFieldVisibility(186,1);},function(){action_setFieldVisibility(188,1);},function(){action_setFieldVisibility(189,1);},function(){action_setFieldVisibility(191,2);},function(){action_setFieldVisibility(190,2);}]},{condition:function(){return __notequals(fieldValue(22), "Off");},trueActions:[function(){action_setFieldVisibility(23,0);}],falseActions:[function(){action_setFieldVisibility(23,1);}]},{condition:function(){return __notequals(fieldValue(222), "Off");},trueActions:[function(){action_setFieldVisibility(37,0);}],falseActions:[function(){action_setFieldVisibility(37,1);}]},{condition:function(){return __notequals(fieldValue(119), "Off");},trueActions:[function(){action_setFieldVisibility(122,0);},function(){action_setFieldVisibility(223,0);},function(){action_setFieldVisibility(224,0);}],falseActions:[function(){action_setFieldVisibility(122,1);},function(){action_setFieldVisibility(223,1);},function(){action_setFieldVisibility(224,1);}]},{condition:function(){return __notequals(fieldValue(162), "Off");},trueActions:[function(){action_setFieldVisibility(163,0);},function(){action_setFieldVisibility(225,0);},function(){action_setFieldVisibility(226,0);}],falseActions:[function(){action_setFieldVisibility(163,1);},function(){action_setFieldVisibility(225,1);},function(){action_setFieldVisibility(226,1);}]},{condition:function(){return __notequals(fieldValue(168), "Off");},trueActions:[function(){action_setFieldVisibility(170,0);}],falseActions:[function(){action_setFieldVisibility(170,1);}]},{condition:function(){return __notequals(fieldValue(173), "Off");},trueActions:[function(){action_setFieldVisibility(174,0);}],falseActions:[function(){action_setFieldVisibility(174,1);}]},{condition:function(){return __notequals(fieldValue(227), "Off");},trueActions:[function(){action_setFieldVisibility(183,1);},function(){action_setFieldVisibility(176,0);},function(){action_setFieldVisibility(177,0);}],falseActions:[function(){action_setFieldVisibility(183,0);},function(){action_setFieldVisibility(176,1);},function(){action_setFieldVisibility(177,1);}]},{condition:function(){return __notequals(fieldValue(176), "Off");},trueActions:[function(){action_setFieldVisibility(178,0);}],falseActions:[function(){action_setFieldVisibility(178,1);}]},{condition:function(){return __notequals(fieldValue(179), "Off");},trueActions:[function(){action_setFieldVisibility(181,0);}],falseActions:[function(){action_setFieldVisibility(181,1);}]},{condition:function(){return __notequals(fieldValue(142), "Off");},trueActions:[function(){action_setFieldVisibility(145,0);},function(){action_setFieldVisibility(146,0);},function(){action_setFieldVisibility(147,0);},function(){action_setFieldVisibility(148,0);},function(){action_setFieldVisibility(149,0);},function(){action_setFieldVisibility(150,0);},function(){action_setFieldVisibility(151,0);},function(){action_setFieldVisibility(152,0);},function(){action_setFieldVisibility(153,0);},function(){action_setFieldVisibility(154,0);},function(){action_setFieldVisibility(155,0);},function(){action_setFieldVisibility(156,0);},function(){action_setFieldVisibility(157,0);},function(){action_setFieldVisibility(158,0);},function(){action_setFieldVisibility(159,0);},function(){action_setFieldVisibility(160,0);},function(){action_setFieldVisibility(161,0);},function(){action_setFieldVisibility(162,0);},function(){action_setFieldVisibility(164,0);},function(){action_setFieldVisibility(165,0);},function(){action_setFieldVisibility(166,0);},function(){action_setFieldVisibility(167,0);},function(){action_setFieldValue(162,function(){ return "Off"});},function(){action_setFieldValue(168,function(){ return "Off"});},function(){action_setFieldVisibility(168,0);}],falseActions:[function(){action_setFieldVisibility(145,1);},function(){action_setFieldVisibility(146,1);},function(){action_setFieldVisibility(147,1);},function(){action_setFieldVisibility(148,1);},function(){action_setFieldVisibility(149,1);},function(){action_setFieldVisibility(150,1);},function(){action_setFieldVisibility(151,1);},function(){action_setFieldVisibility(152,1);},function(){action_setFieldVisibility(153,1);},function(){action_setFieldVisibility(154,1);},function(){action_setFieldVisibility(155,1);},function(){action_setFieldVisibility(156,1);},function(){action_setFieldVisibility(157,1);},function(){action_setFieldVisibility(158,1);},function(){action_setFieldVisibility(159,1);},function(){action_setFieldVisibility(160,1);},function(){action_setFieldVisibility(161,1);},function(){action_setFieldVisibility(162,1);},function(){action_setFieldVisibility(164,1);},function(){action_setFieldVisibility(165,1);},function(){action_setFieldVisibility(166,1);},function(){action_setFieldVisibility(167,1);},function(){action_setFieldVisibility(168,1);}]}];f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:250.84067,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:302.00717,helpAutoSize:true,x:153.84074,id:1,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Company_name.edit"] = f;
registerEvent("Blur", "swissforms.Company_name.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Company_name.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Company_name.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Company_name.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Company_name.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:312.00812,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:325.4784,helpAutoSize:true,x:92.67329,id:2,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Adresse.edit"] = f;
registerEvent("Blur", "swissforms.Adresse.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Adresse.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Adresse.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Adresse.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Adresse.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:270.04443,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:348.94962,helpAutoSize:true,x:134.63698,id:3,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Person.edit"] = f;
registerEvent("Blur", "swissforms.Person.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Person.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Person.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Person.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Person.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:60,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:312.00812,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"^[^@]+[@]{1}[^@]+[.]{1}[a-zA-Z]{2,4}$",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:372.42078,helpAutoSize:true,x:92.6733,id:4,fieldSchemaId:"customerEmail",rules:[],validations:[]};fields["swissforms.email1.edit"] = f;
registerEvent("Blur", "swissforms.email1.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.email1.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.email1.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.email1.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.email1.edit", function(event){textField_keystroke(event);});
f={autoScroll:true,backgroundColor:[ "T" ],maxChars:20,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:312.00812,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"^[+]{0,1}[0-9 ]{12,20}$|^$",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"^[0-9+]{1,1}[0-9]{2,2}[0-9 ]{0,17}$|^$",fieldCaption:"",y:395.9995,helpAutoSize:true,x:92.6733,id:182,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Phone.edit"] = f;
registerEvent("Blur", "swissforms.Phone.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Phone.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Phone.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Phone.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Phone.edit", function(event){textField_keystroke(event);});
f={autoScroll:true,backgroundColor:[ "RGB", 1.0, 0.7529412, 0.5019608 ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:101.235214,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:155.62817,display:2,fontSize:9.0,helpHeight:13.0,multiline:true,borderWidth:1,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"center",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:2,borderColor:[ "RGB", 0.7529412, 0.2509804, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:true,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:293.0208,helpAutoSize:true,x:248.7354,id:186,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Help_Background.edit"] = f;
registerEvent("Blur", "swissforms.Help_Background.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Help_Background.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Help_Background.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Help_Background.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Help_Background.edit", function(event){textField_keystroke(event);});
f={autoScroll:true,backgroundColor:[ "RGB", 1.0, 0.7529412, 0.5019608 ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:61.983643,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"RED FIELDS are mandatory fields or input values are incorrect.",font:"Helvetica",width:134.36691,display:2,fontSize:9.0,helpHeight:13.0,multiline:true,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"center",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:true,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:301.01114,helpAutoSize:true,x:259.1789,id:184,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Help_Message_1.edit"] = f;
registerEvent("Blur", "swissforms.Help_Message_1.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Help_Message_1.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Help_Message_1.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Help_Message_1.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Help_Message_1.edit", function(event){textField_keystroke(event);});
f={autoScroll:true,backgroundColor:[ "RGB", 1.0, 0.7529412, 0.5019608 ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:29.273996,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"Please ensure there are no red fields left.",font:"Helvetica",width:134.36691,display:2,fontSize:9.0,helpHeight:13.0,multiline:true,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"center",fontColor:[ "RGB", 0.7529412, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:true,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:333.09027,helpAutoSize:true,x:259.36594,id:185,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Help_Message_2.edit"] = f;
registerEvent("Blur", "swissforms.Help_Message_2.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Help_Message_2.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Help_Message_2.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Help_Message_2.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Help_Message_2.edit", function(event){textField_keystroke(event);});
f={autoScroll:true,backgroundColor:[ "RGB", 0.5019608, 0.5019608, 1.0 ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"Close",font:"Helvetica-Bold",width:113.385826,display:2,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:1,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"center",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:2,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.5019608, 0.5019608, 1.0 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:366.43042,helpAutoSize:true,x:269.80957,id:188,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Help_Button_Close.edit"] = f;
registerEvent("Blur", "swissforms.Help_Button_Close.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Help_Button_Close.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Help_Button_Close.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Help_Button_Close.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Help_Button_Close.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:255.56563,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:149.7287,helpAutoSize:true,x:164.84555,id:6,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Name_ital.edit"] = f;
registerEvent("Blur", "swissforms.Name_ital.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Name_ital.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Name_ital.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Name_ital.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Name_ital.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:255.56563,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:179.28368,helpAutoSize:true,x:164.84555,id:7,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Name_Wissenschaftl1.edit"] = f;
registerEvent("Blur", "swissforms.Name_Wissenschaftl1.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Name_Wissenschaftl1.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Name_Wissenschaftl1.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Name_Wissenschaftl1.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Name_Wissenschaftl1.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:255.56563,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:214.23872,helpAutoSize:true,x:164.84555,id:8,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Name_Wissenschaftl2.edit"] = f;
registerEvent("Blur", "swissforms.Name_Wissenschaftl2.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Name_Wissenschaftl2.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Name_Wissenschaftl2.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Name_Wissenschaftl2.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Name_Wissenschaftl2.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:255.56563,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:249.79378,helpAutoSize:true,x:164.84555,id:9,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Name_Wissenschaftl3.edit"] = f;
registerEvent("Blur", "swissforms.Name_Wissenschaftl3.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Name_Wissenschaftl3.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Name_Wissenschaftl3.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Name_Wissenschaftl3.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Name_Wissenschaftl3.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:255.56563,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:284.74884,helpAutoSize:true,x:164.84555,id:10,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Name_Wissenschaftl4.edit"] = f;
registerEvent("Blur", "swissforms.Name_Wissenschaftl4.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Name_Wissenschaftl4.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Name_Wissenschaftl4.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Name_Wissenschaftl4.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Name_Wissenschaftl4.edit", function(event){textField_keystroke(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:2,height:6.194697,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"Spezies",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:159.6504,exportValue:"yes",helpAutoSize:true,x:431.7364,id:11,fieldSchemaId:"customerCheckbox",rules:[],validations:[]};fields["swissforms.CH_Spez_fish.edit"] = f;
registerEvent("Blur", "swissforms.CH_Spez_fish.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Spez_fish.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Spez_fish.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Spez_fish.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:2,height:6.241572,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"Spezies",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:190.94344,exportValue:"yes",helpAutoSize:true,x:431.73645,id:12,fieldSchemaId:"customerCheckbox",rules:[],validations:[]};fields["swissforms.CH_Spez_Crust.edit"] = f;
registerEvent("Blur", "swissforms.CH_Spez_Crust.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Spez_Crust.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Spez_Crust.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Spez_Crust.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:2,height:6.241572,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"Spezies",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:226.10974,exportValue:"yes",helpAutoSize:true,x:431.73645,id:13,fieldSchemaId:"customerCheckbox",rules:[],validations:[]};fields["swissforms.CH_Spez_cepha.edit"] = f;
registerEvent("Blur", "swissforms.CH_Spez_cepha.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Spez_cepha.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Spez_cepha.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Spez_cepha.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:2,height:6.241572,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"Spezies",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:261.42523,exportValue:"yes",helpAutoSize:true,x:431.73645,id:14,fieldSchemaId:"customerCheckbox",rules:[],validations:[]};fields["swissforms.CH_Spez_bivalv.edit"] = f;
registerEvent("Blur", "swissforms.CH_Spez_bivalv.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Spez_bivalv.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Spez_bivalv.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Spez_bivalv.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:2,height:6.241572,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"Spezies",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:296.59174,exportValue:"yes",helpAutoSize:true,x:431.73645,id:15,fieldSchemaId:"customerCheckbox",rules:[],validations:[]};fields["swissforms.CH_Spez_gastro.edit"] = f;
registerEvent("Blur", "swissforms.CH_Spez_gastro.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Spez_gastro.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Spez_gastro.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Spez_gastro.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:2,height:6.2181344,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"Spezies",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:325.7519,exportValue:"yes",helpAutoSize:true,x:431.73645,id:16,fieldSchemaId:"customerCheckbox",rules:[],validations:[]};fields["swissforms.CH_Spez_other.edit"] = f;
registerEvent("Blur", "swissforms.CH_Spez_other.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Spez_other.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Spez_other.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Spez_other.edit", function(event){ checkbox_validate(event);});
f={expression:function(){ return fieldValue(209)},autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:369.78046,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:1,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:true,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:406.45074,helpAutoSize:true,x:165.4875,id:17,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Reference_Code_2.edit"] = f;
registerEvent("Blur", "swissforms.Reference_Code_2.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Reference_Code_2.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Reference_Code_2.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Reference_Code_2.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Reference_Code_2.edit", function(event){textField_keystroke(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:3,height:6.2415724,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"CH_Typ_Business_",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:462.19577,exportValue:"yes",helpAutoSize:true,x:49.899063,id:18,fieldSchemaId:"customerCheckbox",rules:[1],validations:[]};fields["swissforms.CH_Typ_Business_.edit"] = f;
registerEvent("Blur", "swissforms.CH_Typ_Business_.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Typ_Business_.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Typ_Business_.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Typ_Business_.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:3,height:6.2181344,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"CH_Typ_Business_",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:462.2116,exportValue:"yes",helpAutoSize:true,x:216.15996,id:19,fieldSchemaId:"customerCheckbox",rules:[1],validations:[]};fields["swissforms.CH_Typ_Business_1.edit"] = f;
registerEvent("Blur", "swissforms.CH_Typ_Business_1.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Typ_Business_1.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Typ_Business_1.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Typ_Business_1.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:3,height:6.194697,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"CH_Typ_Business_",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:462.22748,exportValue:"yes",helpAutoSize:true,x:382.53473,id:20,fieldSchemaId:"customerCheckbox",rules:[1],validations:[]};fields["swissforms.CH_Typ_Business_2.edit"] = f;
registerEvent("Blur", "swissforms.CH_Typ_Business_2.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Typ_Business_2.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Typ_Business_2.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Typ_Business_2.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:3,height:6.2181344,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"CH_Typ_Business_",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:481.53192,exportValue:"yes",helpAutoSize:true,x:49.899063,id:21,fieldSchemaId:"customerCheckbox",rules:[1],validations:[]};fields["swissforms.CH_Typ_Business_3.edit"] = f;
registerEvent("Blur", "swissforms.CH_Typ_Business_3.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Typ_Business_3.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Typ_Business_3.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Typ_Business_3.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:3,height:6.2181344,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"CH_Typ_Business_",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.194697,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:481.53192,exportValue:"yes",helpAutoSize:true,x:216.18341,id:22,fieldSchemaId:"customerCheckbox",rules:[1],validations:[]};fields["swissforms.CH_Typ_Business_0ther.edit"] = f;
registerEvent("Blur", "swissforms.CH_Typ_Business_0ther.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Typ_Business_0ther.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Typ_Business_0ther.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Typ_Business_0ther.edit", function(event){ checkbox_validate(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:216.1305,display:1,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],keystrokePattern:"",fieldCaption:"",y:475.29294,helpAutoSize:true,x:319.13745,id:23,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Business_Typ.edit"] = f;
registerEvent("Blur", "swissforms.Business_Typ.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Business_Typ.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Business_Typ.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Business_Typ.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Business_Typ.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:119.81562,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.9137255, 0.9411765, 0.99215686 ],keystrokePattern:"",fieldCaption:"",y:126.74885,helpAutoSize:true,x:422.34555,id:38,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Capture_FAO.edit"] = f;
registerEvent("Blur", "swissforms.Capture_FAO.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Capture_FAO.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Capture_FAO.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Capture_FAO.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Capture_FAO.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:119.81562,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.9137255, 0.9411765, 0.99215686 ],keystrokePattern:"",fieldCaption:"",y:147.99884,helpAutoSize:true,x:422.34555,id:40,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Capture_ICES.edit"] = f;
registerEvent("Blur", "swissforms.Capture_ICES.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Capture_ICES.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Capture_ICES.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Capture_ICES.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Capture_ICES.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:140.81561,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.9137255, 0.9411765, 0.99215686 ],keystrokePattern:"",fieldCaption:"",y:185.74884,helpAutoSize:true,x:401.34552,id:41,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Capture_Areas.edit"] = f;
registerEvent("Blur", "swissforms.Capture_Areas.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Capture_Areas.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Capture_Areas.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Capture_Areas.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Capture_Areas.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:488.8156,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.9137255, 0.9411765, 0.99215686 ],keystrokePattern:"",fieldCaption:"",y:239.99884,helpAutoSize:true,x:53.34556,id:42,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Capture_Areas_more.edit"] = f;
registerEvent("Blur", "swissforms.Capture_Areas_more.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Capture_Areas_more.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Capture_Areas_more.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Capture_Areas_more.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Capture_Areas_more.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:true,defaultValue:"",font:"Helvetica",width:140.81561,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.9137255, 0.9411765, 0.99215686 ],keystrokePattern:"",fieldCaption:"",y:276.14883,helpAutoSize:true,x:401.34552,id:43,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Capture_Country_1.edit"] = f;
registerEvent("Blur", "swissforms.Capture_Country_1.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Capture_Country_1.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Capture_Country_1.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Capture_Country_1.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Capture_Country_1.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:140.81561,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.9137255, 0.9411765, 0.99215686 ],keystrokePattern:"",fieldCaption:"",y:303.77383,helpAutoSize:true,x:401.34552,id:44,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Capture_Country_2.edit"] = f;
registerEvent("Blur", "swissforms.Capture_Country_2.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Capture_Country_2.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Capture_Country_2.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Capture_Country_2.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Capture_Country_2.edit", function(event){textField_keystroke(event);});
f={autoScroll:false,backgroundColor:[ "T" ],maxChars:0,nullTextFontColor:[ "RGB", 0.0, 0.0, 0.0 ],keystrokeCommitPattern:"",spellCheck:false,height:17.007874,validateBehaviorIfEmpty:false,rotation:0,required:false,defaultValue:"",font:"Helvetica",width:140.81561,display:0,fontSize:9.0,helpHeight:13.0,multiline:false,borderWidth:0,helpPosition:0,nullTextFont:"Helvetica",nullText:"",alignment:"left",fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderStyle:0,borderColor:[ "RGB", 0.0, 0.0, 0.0 ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],formatPattern:"",nullTextAlignment:"auto",validation:function(){return true;},fieldType:"text",validateBehaviorStandard:false,helpText:"",comb:false,validateBehavior:0,expressionBehavior:0,validatePattern:"",nullTextFontSize:9.0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],formatOutputPattern:"",emptyColor:[ "RGB", 0.9137255, 0.9411765, 0.99215686 ],keystrokePattern:"",fieldCaption:"",y:331.99884,helpAutoSize:true,x:401.34552,id:45,fieldSchemaId:"customerTextfield",rules:[],validations:[]};fields["swissforms.Capture_Country_3.edit"] = f;
registerEvent("Blur", "swissforms.Capture_Country_3.edit", function(event){textField_deactivateField(event);});
registerEvent("Format", "swissforms.Capture_Country_3.edit", function(event){textField_format(event);});
registerEvent("Focus", "swissforms.Capture_Country_3.edit", function(event){textField_focus(event);});
registerEvent("Validate", "swissforms.Capture_Country_3.edit", function(event){ textField_validate(event);});
registerEvent("Keystroke", "swissforms.Capture_Country_3.edit", function(event){textField_keystroke(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:3,height:6.2181344,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"CH_Capture_",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:433.5293,exportValue:"yes",helpAutoSize:true,x:49.9063,id:39,fieldSchemaId:"customerCheckbox",rules:[3],validations:[]};fields["swissforms.CH_Capture_.edit"] = f;
registerEvent("Blur", "swissforms.CH_Capture_.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Capture_.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Capture_.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Capture_.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:3,height:6.2181344,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"CH_Capture_",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:452.85736,exportValue:"yes",helpAutoSize:true,x:49.9063,id:48,fieldSchemaId:"customerCheckbox",rules:[3],validations:[]};fields["swissforms.CH_Capture_3.edit"] = f;
registerEvent("Blur", "swissforms.CH_Capture_3.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Capture_3.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Capture_3.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Capture_3.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:3,height:6.2181344,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"CH_Capture_",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:472.18542,exportValue:"yes",helpAutoSize:true,x:49.9063,id:51,fieldSchemaId:"customerCheckbox",rules:[3],validations:[]};fields["swissforms.CH_Capture_6.edit"] = f;
registerEvent("Blur", "swissforms.CH_Capture_6.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Capture_6.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Capture_6.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Capture_6.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.0, 0.0, 0.0 ],borderColor:[ "RGB", 0.0, 0.0, 0.0 ],backgroundColor:[ "T" ],okColor:[ "RGB", 0.7490196, 1.0, 0.77254903 ],helpWidth:226.77165,invalidColor:[ "RGB", 1.0, 0.7490196, 0.8392157 ],cbMode:3,height:6.2181344,validateBehaviorIfEmpty:false,rotation:0,checkSymbol:1,required:false,cbGroup:"CH_Capture_",validation:function(){return true;},fieldType:"checkbox",font:"Helvetica",width:6.2181344,validateBehaviorStandard:false,display:0,helpText:"",fontSize:6.0,validateBehavior:0,expressionBehavior:0,requiredColor:[ "RGB", 1.0, 0.8117647, 0.7490196 ],helpHeight:13.0,readOnly:false,focusColor:[ "RGB", 1.0, 1.0, 0.0 ],borderWidth:0,emptyColor:[ "RGB", 0.7490196, 0.77254903, 1.0 ],fieldCaption:"",helpPosition:0,checked:false,y:510.81805,exportValue:"yes",helpAutoSize:true,x:49.9063,id:75,fieldSchemaId:"customerCheckbox",rules:[3],validations:[]};fields["swissforms.CH_Capture_1.edit"] = f;
registerEvent("Blur", "swissforms.CH_Capture_1.edit", function(event){checkbox_deactivate(event);});
registerEvent("Format", "swissforms.CH_Capture_1.edit", function(event){root_format(event);});
registerEvent("Focus", "swissforms.CH_Capture_1.edit", function(event){activateField(event);});
registerEvent("Validate", "swissforms.CH_Capture_1.edit", function(event){ checkbox_validate(event);});
f={borderStyle:0,fontColor:[ "RGB", 0.
... (truncated)
stream_199_off0006b862.bin decompressed-pdf-stream PDF FlateDecoded stream at offset 0x6B862 25600 bytes
SHA-256: f47e1a4e36ed1e63c3158de55072e62963a544171a330ade473714fe3cf11aae