﻿<?xml version="1.0" encoding="utf-8"?><Root><Survey VersionNumber="2" VersionName="1.31.0"><SurveyID>9a3a4ff1-63f7-4eee-a8ca-4b26a855c9b1</SurveyID><OrgId>195c7575-c240-4707-8796-3ddc5e27e57a</OrgId><SurveyName>Test TOC (Table Of Contents)</SurveyName><Description /><Sealed>True</Sealed><Creator>Amited</Creator><TimeCreated>636201430791500000</TimeCreated><TimeModified>636201434017330000</TimeModified><TimeSealed>3155378903999970000</TimeSealed><Randomed>True</Randomed><HalfRandomed>False</HalfRandomed><NextQuestionID>10</NextQuestionID><ReadOnly>False</ReadOnly><Deleted>0</Deleted><ULAssembly /><ULClassName>SurveyToGo.UserLogic.Creator.SurveyLogicTempl</ULClassName><ULSource>&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;UserLogicContents xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
  &lt;Items /&gt;
  &lt;Source&gt;// Question symbols
var Q_1 = null;var Q_2 = null;var Q_3 = null;var Q_4 = null;var Q_5 = null;var Q_6 = null;var Q_7 = null;var Q_8 = null;

	function StartSurvey()
	{
		/*_@_SS_START_@*/

		/*_@_SS_END_@*/
	}

	/*_@_USERCODE_START_@*/
function GetMainVersion (inVersion)
{
	var retVal = "";
	var versionSplit = inVersion.split(".");
	if (versionSplit.length &amp;gt;= 3)
	{
		var retVal = versionSplit[2]; 
	}
	
	return retVal;
}

function isDeviceVersionUpdated (inUpdatedVersion)
{
	var retVal = false;
	var deviceVersion = GetMainVersion(DeviceVersion);
	var mainVersion = GetMainVersion(inUpdatedVersion);
	if (parseInt(mainVersion) &amp;lt;= parseInt(deviceVersion))
	{
		retVal = true;
	}
	
	return retVal
}

function GetChapterIdxFromName (inChapterName) 
{
	var retVal = -1;
	var chapterInfos = GetAllChapters();
	for(var i=0;i&amp;lt;chapterInfos.length;i++) {
	if (chapterInfos[i].Name == inChapterName) {
			retVal = chapterInfos[i].Idx;
			break;
		}
	}
return retVal;
}
function dblSetDCBRRelationship(inQStatements,inQSubStatements){
	var outText = "";
	
	outText+= AnswerText(inQStatements,9) + "|" + AnswerText(inQSubStatements,9) + "|" + "9" + ";";
	outText+= AnswerText(inQStatements,7) + "|" + AnswerText(inQSubStatements,7) + "|" + "7" + ";";
	outText+= AnswerText(inQStatements,5) + "|" + AnswerText(inQSubStatements,5) + "|" + "5" + ";";
	outText+= AnswerText(inQStatements,8) + "|" + AnswerText(inQSubStatements,8) + "|" + "8" + ";";
	outText+= AnswerText(inQStatements,3) + "|" + AnswerText(inQSubStatements,3) + "|" + "3" + ";";
	outText+= AnswerText(inQStatements,6) + "|" + AnswerText(inQSubStatements,6) + "|" + "6" + ";";
	outText+= AnswerText(inQStatements,1) + "|" + AnswerText(inQSubStatements,1) + "|" + "1" + ";";
	outText+= AnswerText(inQStatements,2) + "|" + AnswerText(inQSubStatements,2) + "|" + "2" + ";";
	outText+= AnswerText(inQStatements,4) + "|" + AnswerText(inQSubStatements,4) + "|" + "4" + ";";
	
	return outText;


}

function dblSetDCBRBrands(inQBrands,inQBrandsImages,intOrderArray){
	var outText = "";
	var i=1;
	for(i=0;i&amp;lt;intOrderArray.length;i++){
		if(Contains(inQBrands,intOrderArray[i])){
			outText+= AnswerText(inQBrands,intOrderArray[i]) + "|" +  AnswerText(inQBrandsImages,intOrderArray[i]) + "|" + intOrderArray[i] + ";"
		}
	}
	return outText;

}

function dblSetDCBRTexts(inQInfoText,inQFinishText,inQFinishedInfo,inQQuestionText){
	var outText = "";
	
	outText = GetText(inQInfoText) + "|" + GetText(inQFinishText) + "|" + GetText(inQFinishedInfo) + "|" + GetText(inQQuestionText);
	return outText;

}


function dblSetDCBRAnswers(inQ,inQVars){
	//reading inQVars and setting up inQ (which is a grid)
	var i=0;
	var j=0;
	var result;
	var answerDCBR = new Array();
	answerDCBR = stringSplit(inQVars,";")
	var tmpAnswer = new Array();
	for(i=0;i&amp;lt;answerDCBR.length;i++){
		if(answerDCBR[i]!=""){
			tmpAnswer = stringSplit(answerDCBR[i],"|")
			result = SetAnswerChoice(inQ,intParse(tmpAnswer[1]),intParse(tmpAnswer[0]));
			
		}
		
	}
	
}

function dblValidateDCBR(inQ,inQVars){
	//check no. of brands qualified for DCBR are all answered
	var retVal = false;
	var brandCount = NumOfSelectedChoices(inQ);
	var answerDCBR = stringSplit(inQVars,";")
	if(brandCount !=answerDCBR.length){
		retVal = true;
	}
	return retVal;
}

function setAnswerByParentAnswers(inQTarget, inQidsParent)
{
	var numOfQues = inQidsParent.length;
	var numOfAnswers = Parent.GetAnswerCount(inQidsParent[0]);
	var contained;
	var i;
	var j;
	for (i=1;i&amp;lt;= numOfAnswers;i++) {
		contained = false;
		for (j=0; j&amp;lt;numOfQues;j++) {
			contained = Parent.Contains(inQidsParent[j],i);
			if (contained) {
				break;
			}
		}
		if (contained) {
			dblSetSpecificAnswer(inQTarget, i,true);
		}
	}
}


function dblSelectConXBrands(inQ,BrandArray){
//This function setup 3 brands to inQ randomly or based on BrandArray
	var BrandsToSet = new Array();
	var BrandPosArray = CreateRandomArray(BrandArray.length);
	var i=0;
	if(BrandArray.length &amp;gt;0){
	//Setup using brand array
		for(i=0;i&amp;lt;BrandArray.length;i++){
			BrandsToSet[i] = BrandArray[BrandPosArray[i]-1];
			if(i&amp;gt;2){
				break;
			}
			
		}
	}
	SetAnswer(inQ,BrandsToSet);
}


function dblSetConXXP1Brands(inQBrands,BrandOrder,BrandOrderQ){
	var outText = "";
	var i=1;
	var brandArray = new Array();
	var selectedBrandOrder = ""
	brandArray = stringSplit(BrandOrder,",");
	for(i=1;i&amp;lt;GetAnswerCount(inQBrands);i++){
		if(Contains(inQBrands,intParse(brandArray[i-1]))){
			selectedBrandOrder = selectedBrandOrder + brandArray[i-1] + ",";
			outText+= "&amp;lt;span class='mrGridQuestionText'&amp;gt;" + AnswerText(inQBrands,intParse(brandArray[i-1])) + "&amp;lt;/span&amp;gt;";
		}
	}
	outText+= "&amp;lt;span class='mrGridQuestionText'&amp;gt;" + AnswerText(inQBrands,GetAnswerCount(inQBrands)) + "&amp;lt;/span&amp;gt;";
	
	SetAnswer(BrandOrderQ,selectedBrandOrder);
	return outText;

}

function dblSetConXXPs(inQXPs,XP_Order){
	var outText = "";
	var i=1;
	var XPOrder = new Array();
	XPOrder = stringSplit(XP_Order,",");
	
	
	for(i=1;i&amp;lt;=GetAnswerCount(inQXPs);i++){
		if(Contains(inQXPs,XPOrder[i-1])){
			outText+= "&amp;lt;span class='mrGridCategoryText'&amp;gt;" + AnswerText(inQXPs,XPOrder[i-1]) + "&amp;lt;/span&amp;gt;";
					if(i&amp;gt;2){
						break;
					}
			}
	}
	return outText;
}

/*
dblSetConX_XP1Answers(inQ,inQVars,BrandOrder,XPOrder)
inQ = Question to setup based on the Global Vars setup by CQRP. inQ question is Multiple Response Grid

inQVars = Global Variable setup by CQRP. The format would be: 0|0;0|1;0|2;1|1;2|3
in 0|1; 0 is the Topic number and 1 is the answer number NOTE: This is not the topic index or the answer index. We'll have to match this with the BrandOrder and XPOrder

XPOrder=Stores the topic index in the order in which the topics are shown at CQRP
The format would be: 30,28,1

BrandOrder: Stores the brand index in the order in which brands (answers)are shown at CQRP
The format would be: 1,5,7

*/


function dblSetConX_XP1Answers(inQ,inQVars,BrandOrder,XPOrder){
	//reading inQVars and setting up inQ (which is a grid)
	var i=0;
	var j=0;
	var result;
	var BrandArray = new Array();
	//Split the brand array to get the array of brands shown
	BrandArray = stringSplit(BrandOrder,",");
	var XPArray = new Array();
	//Split the Topic array (XPOrder) to get the array of topics shown
	XPArray = stringSplit(XPOrder,",");
	var answerXP1 = new Array();
	//Split the answer Array to get answer given for each topic this will give answerXP1[0] = 0|1 answerXP1[1] = 0|2 etc. 
	answerXP1 = stringSplit(inQVars,";");
	var AnsArray = new Array();
	var k=0;
	var tmpXP=0;
	var tmpAnswer = new Array();
	
	//clear previous answers 
	ClearAnswer(inQ);
	
	for(i=0;i&amp;lt;answerXP1.length;i++){
		
		if(answerXP1[i]!=""){
			//Split the answer by | to get topic and answer (brand)
			tmpAnswer = stringSplit(answerXP1[i],"|")
			//If the topic is same for example 0|0;0|1 we'll keep on updating AnsArray. Once the Topic number is different, we'll set the answer of multi response grid
			// Set the value of j=Topic number
			if(j!=intParse(tmpAnswer[0]))
			{
				j=intParse(tmpAnswer[0]);
				//As the topics are shown in random order, we are using XPArray[TopicNumber] where XPArray contains the actual topic index at TopicNumber Location
				result = SetAnswerChoice(inQ,intParse(XPArray[tmpXP]),AnsArray);
				k=0;
				AnsArray = new Array();	
				
			}
		
			if(intParse(tmpAnswer[1])==3){
				//If the answer is none (which will always be the last answer. We'll set it here
				AnsArray[k] = GetAnswerCount(inQ);
				
			}
			
			else
			{
				//Else setup the answer array with Actual brand index from BrandArray
				AnsArray[k] = intParse(BrandArray[intParse(tmpAnswer[1])]);
			}
			k = k + 1;
			tmpXP = intParse(tmpAnswer[0]);
			
			
		}
		
	}
	// To handle the last iteration / topic 
	result = SetAnswerChoice(inQ,intParse(XPArray[tmpXP]),AnsArray);
	
}

function dblAskXP3(inQ){
	var retVal=0;
	var i=0;
	for(i=1;i&amp;lt;=GetTopicCount(inQ);i++){
		if(ContainsChoice(inQ,i,11)==false &amp;amp;&amp;amp; IsTopicVisible(inQ,i)){
			retVal=1;
			break;
		}
	}
	
	
	return retVal;

}


function dblSetConX_XP1_Selected(inQ,resultQ){
	var tempArray = new Array();
	var resultArray = new Array();
	var i=0;
	var j=0;
	var k=0;
	for(i=1;i&amp;lt;=GetTopicCount(inQ);i++){
		if(IsTopicVisible(inQ,i)){
			tempArray = GetAnswersChoice(inQ,i)
			
			for(j=0;j&amp;lt;tempArray.length;j++){
				resultArray[k]=tempArray[j];
				
				k++;
			}
		}
	}
	
	SetAnswer(resultQ,resultArray);

}


function dblGetXPs(inQ,resultQ,brandIndex){
	var i=0;
	var j=0;
	var resultArray = new Array();
	
	for(i=1;i&amp;lt;=GetTopicCount(inQ);i++){
		if(ContainsChoice(inQ,i,brandIndex) &amp;amp;&amp;amp; IsTopicVisible(inQ,i)){
			resultArray[j] = i;
			j++;
		}
	}
	SetAnswer(resultQ,resultArray);

}

function dblSetupGlobalVarsFromEmpty(inQ){
	return GetText(inQ);
};

function dblfnRenderConXDemo(inQArray,delimChar){
//This function generates global variable to be used to draw ConX demo
	
	var retVal="";
	
	var i=1;
	for(i=0;i&amp;lt;inQArray.length;i++){
		if(i==11){
			//setting up the vertical text
			retVal+=AnswerText(inQArray[i],1) + delimChar + AnswerText(inQArray[i],2) + delimChar + AnswerText(inQArray[i],3) + delimChar + AnswerText(inQArray[i],4) + delimChar;
		}
		else if (i==12){
			//setting up the horizontal text
			retVal+=AnswerText(inQArray[i],1) + delimChar + AnswerText(inQArray[i],2) + delimChar + AnswerText(inQArray[i],3) + delimChar + AnswerText(inQArray[i],4) + delimChar;
		
		}
		else{
			retVal+=GetText(inQArray[i]) + delimChar;	
		
		}
		
	}
	return retVal;
}


function dblSetRBXBrands(inQBrands,inQBrandsImages,intOrderArray){
	var outText = "";
	var i=0;
	for(i=0;i&amp;lt;intOrderArray.length;i++){
		if(Contains(inQBrands,intOrderArray[i])){
			outText+= AnswerText(inQBrandsImages,intOrderArray[i]) + "|";
		}
	}
	return outText;

}


function dblSetConXBrands(inQBrands,inQBrandsImages,intOrderArray){
	var outText = "";
	var i=0;
	
	for(i=0;i&amp;lt;intOrderArray.length;i++){
			if(Contains(inQBrands,intOrderArray[i])){
			outText+= AnswerText(inQBrands,intOrderArray[i]) + "|" +  AnswerText(inQBrandsImages,intOrderArray[i]) + "|" + intOrderArray[i] + ";"
		}
	}
	return outText;

}


function dblValidateAnswers(inQArray,minAnsCount)
{
	var retVal=false;
	var ansCount=0;
	var i=0;
	for(i=0;i&amp;lt;inQArray.length;i++){
		if(Answered(inQArray[i])){
			ansCount+=1;
		}
	}
	if(ansCount &amp;lt; minAnsCount){
		retVal = true;
	}
	
	return retVal;

}

function dblSetRBXAnswers(inQVars,inBrandVars,inTargetQues){
	//reading inQVars and setting up inQ (which is a grid)
	var numOfQues = inTargetQues.length;
	var i=0;
	var j=0;
	var answerRBX = stringSplit(inQVars,";");
	var brandArray = stringSplit(inBrandVars,";");
	var tmpAnswer = new Array();
	var tmpBrand = new Array();
	for(i=0;i&amp;lt;answerRBX.length;i++){
		if(answerRBX[i]!=""){
			tmpAnswer = stringSplit(answerRBX[i],"|")
			tmpBrand = stringSplit(brandArray[i],"|") 
			
			//Set pos X
			SetAnswerIter(inTargetQues[0], intParse(tmpBrand[2]),tmpAnswer[1]);
			//Set pos Y
			SetAnswerIter(inTargetQues[1],intParse(tmpBrand[2]),tmpAnswer[2]);
			//Set % X
			SetAnswerIter(inTargetQues[2],intParse(tmpBrand[2]),tmpAnswer[3]);
			//Set % Y
			SetAnswerIter(inTargetQues[3],intParse(tmpBrand[2]),tmpAnswer[4]);
		
		}
		
	}
	
}

function dblValidateRBX(inQVars,inQBrands){
	var retVal = false;
	var answerRBX = stringSplit(inQVars,";")
	var i=0;
	var numOfBrands=0;
	for(i=0;i&amp;lt;answerRBX.length;i++){
		if(answerRBX[i]!=""){ 
			numOfBrands++;
		}
	}
	if(numOfBrands!=NumOfSelectedChoices(inQBrands)){
		retVal = true;
	}
	return retVal;
}

function dblSetXPAsked(inQ){
//Used to set LST_XP 
	var i=0;
	
	var resultArray = new Array();
	
	for(i=1;i&amp;lt;=GetAnswerCount(inQ);i++){
			resultArray[i-1] = i;
		}
	SetAnswer(inQ,resultArray);


}

function dblsbPosReturn(GridQx,QGridy,QAsk,TypeAsk){

	var xMax = 0;
	var yMax = 0;
	var yArray = new Array(GetAnswerCount(QAsk));
	var xArray = new Array(GetAnswerCount(QAsk));
	var ansArray = new Array();
	var tempAnsArray1 = new Array();
	var tempAnsArray2 = new Array();
	var index;
	var k=0;
	var i=0;
	var j=0;
	var x=0;
	var y=0;
	var z=0;
	for(i=0;i&amp;lt;yArray.length;i++){
		yArray[i] = new Array(2);
		xArray[i] = new Array(2);
	}
	
	
	//Clears answers
	ClearAnswer(QAsk);
	
	if(TypeAsk==2){
		for(i=1;i&amp;lt;=GetAnswerCount(QAsk);i++){
			if(AnsweredIter(GridQx,i) &amp;amp;&amp;amp; AnsweredIter(QGridy,i) &amp;amp;&amp;amp; AnswerIter(GridQx,i)&amp;gt;69 &amp;amp;&amp;amp; AnswerIter(QGridy,i)&amp;gt;69){
				if(AnswerIter(QGridy,i)&amp;gt;yMax){
					yMax = AnswerIter(QGridy,i);
				}
				ansArray[k] = i;
				yArray[k][0] = i;
				yArray[k][1] = AnswerIter(QGridy,i);
				xArray[k][0] = i;
				xArray[k][1] = AnswerIter(GridQx,i);
				k++;
				
			}
		
		}
		
		
		//if more than 1 ans &amp;gt;69% i.e. k&amp;gt;1
		
		
		
		if(k&amp;gt;1){
			for(i=0;i&amp;lt;ansArray.length;i++){
				if(yArray[i][1]&amp;gt;=yMax){
					xMax = xArray[i][1];
					tempAnsArray1[j] = ansArray[i];
					j++;
				}
			
			}
			
			
			if(j&amp;gt;1){
				for(i=0;i&amp;lt;ansArray.length;i++){
					for(y=0;y&amp;lt;tempAnsArray1.length;y++){
						if(xArray[i][1]&amp;gt;=xMax &amp;amp;&amp;amp; tempAnsArray1[y]==ansArray[i]){
							tempAnsArray2[x] = tempAnsArray1[y];
							x++;
						}
					}
				}
				
				if(x&amp;gt;1){
				//more than 1 XP with highest rating
					var finalBrandArray = RandomizeArray(tempAnsArray2);
					SetAnswer(QAsk,finalBrandArray[0]);
					
				}
				else
				{
					
					SetAnswer(QAsk,tempAnsArray2[0]);
				}
				
			}
			else{
					
				SetAnswer(QAsk,tempAnsArray1);
			}
			
		}
		else{
		
			SetAnswer(QAsk,ansArray)
		
		}
	
	}
	else{
	
		for(i=1;i&amp;lt;=GetAnswerCount(QAsk);i++){
			if(AnsweredIter(GridQx,i) &amp;amp;&amp;amp; AnsweredIter(QGridy,i) &amp;amp;&amp;amp; AnswerIter(GridQx,i)&amp;gt;50 &amp;amp;&amp;amp; AnswerIter(QGridy,i)&amp;gt;50){
				ansArray[k] = i;
				k++;
			}
		}
		SetAnswer(QAsk,ansArray);
	
	}
	

}



function dblsbNegReturn(GridQx,QGridy,QAsk,TypeAsk){

	var xMin = 0;
	var yMax = 0;
	var yArray = new Array(GetAnswerCount(QAsk));
	var xArray = new Array(GetAnswerCount(QAsk));
	var ansArray = new Array();
	var tempAnsArray1 = new Array();
	var tempAnsArray2 = new Array();
	var index;
	var k=0;
	var i=0;
	var j=0;
	var x=0;
	var y=0;
	var z=0;
	for(i=0;i&amp;lt;yArray.length;i++){
		yArray[i] = new Array(2);
		xArray[i] = new Array(2);
	}
	
	
	//Clears answers
	ClearAnswer(QAsk);
	
	if(TypeAsk==2){
		for(i=1;i&amp;lt;=GetAnswerCount(QAsk);i++){
			if(AnsweredIter(GridQx,i) &amp;amp;&amp;amp; AnsweredIter(QGridy,i) &amp;amp;&amp;amp; AnswerIter(GridQx,i)&amp;lt;31 &amp;amp;&amp;amp; AnswerIter(QGridy,i)&amp;gt;69){
				if(AnswerIter(QGridy,i)&amp;gt;yMax){
					yMax = AnswerIter(QGridy,i);
				}
				ansArray[k] = i;
				yArray[k][0] = i;
				yArray[k][1] = AnswerIter(QGridy,i);
				xArray[k][0] = i;
				xArray[k][1] = AnswerIter(GridQx,i);
				k++;
				
			}
		
		}
	
		
		//if more than 1 ans &amp;gt;69% i.e. k&amp;gt;1
		
	
		
		if(k&amp;gt;1){
			for(i=0;i&amp;lt;ansArray.length;i++){
				if(yArray[i][1]&amp;gt;=yMax){
					xMin = xArray[i][1];
					tempAnsArray1[j] = ansArray[i];
					j++;
				}
			
			}
			
			
			if(j&amp;gt;1){
				for(i=0;i&amp;lt;ansArray.length;i++){
					for(y=0;y&amp;lt;tempAnsArray1.length;y++){
						if(xArray[i][1]&amp;lt;=xMin &amp;amp;&amp;amp; tempAnsArray1[y]==ansArray[i]){
							tempAnsArray2[x] = tempAnsArray1[y];
							x++;
						}
					}
				}
				
				if(x&amp;gt;1){
				//more than 1 XP with highest rating
					var finalBrandArray = RandomizeArray(tempAnsArray2);
					SetAnswer(QAsk,finalBrandArray[0]);
					
				}
				else
				{
					
					SetAnswer(QAsk,tempAnsArray2[0]);
				}
				
			}
			else{
					
				SetAnswer(QAsk,tempAnsArray1);
			}
			
		}
		else{
		
			SetAnswer(QAsk,ansArray)
		
		}
	
	}
	else{
	
		for(i=1;i&amp;lt;=GetAnswerCount(QAsk);i++){
			if(AnsweredIter(GridQx,i) &amp;amp;&amp;amp; AnsweredIter(QGridy,i) &amp;amp;&amp;amp; AnswerIter(GridQx,i)&amp;lt;50 &amp;amp;&amp;amp; AnswerIter(QGridy,i)&amp;gt;50){
				ansArray[k] = i;
				k++;
			}
		}
		SetAnswer(QAsk,ansArray);
	
	}
	

}


function dblGetBrandText(inQ){
	var retVal="";
	var i=0;
	for(i=1;i&amp;lt;=GetAnswerCount(inQ);i++){
		if(Contains(inQ,i)){
			retVal = AnswerText(inQ,i);
		}
	}
	return retVal;
}

function dblSetMultipleAnswer(inQ,outQ){
	var i;
	var j=0;
	var AnswerArray = new Array();
	for(i=1;i&amp;lt;=GetAnswerCount(inQ);i++){
		if(Contains(inQ,i)){
			AnswerArray[j] = i;
			j++;
		}
	}
	SetAnswer(outQ,AnswerArray);
}

function RunOnAndroidOnly()  
{
	if (!IsPlatform(32))
	{
	 Prompt("The survey should only be run on Android devices");
	 ExecutionMgr.CancelSubject();
	}
}

function IsSetMultipleAnswers(IndiceQuestao, InAnswers, InCheck) {
	for (var j=0;j&amp;lt;InAnswers.length;j++) {
		dblSetSpecificAnswer(IndiceQuestao, InAnswers[j], InCheck);
	}
}

function dblCheckAudioAttachmentLength(inQ,lenToCheck){
	var retVal = true;
	var FileNameArray = new Array();
	var i=0;
	
	FileNameArray = GetAttachedFilesNames(inQ);
	for(i=0;i&amp;lt;FileNameArray.length;i++){
		Prompt(FileNameArray[i]);
		if(GetRecordingLengthInSeconds(FileNameArray[i]) &amp;lt; lenToCheck){
			retVal = false;
		}

	}
	

	return retVal;
}


//################################ Prince ######################################
function MultiSetVisible(curQues,Qsoc,tick,start,end,e)
{
	if(Contains(Qsoc,tick))
	{
		for(var i = start ; i&amp;lt;=end ;i++)
		{
			SetAnswerVisible(curQues,true,false,i)
		}
	}
}
function SetAnswerVisibleByCode(qIdx,inShow,code)
{
	if(inShow==true)
	{
		var l = arguments.length-1
		var i
			for( i=2 ; i&amp;lt;=l ; i++)
  				  SetAnswerVisible(qIdx,true,false,GetAnswerChoiceIdxByCode(qIdx,arguments[i]))
	}
	else 
	{
		var l = arguments.length-1
		var i
			for( i=2 ; i&amp;lt;=l ; i++)
  				  SetAnswerVisible(qIdx,false,false,GetAnswerChoiceIdxByCode(qIdx,arguments[i]))
	}
}
function CheckIDPSU()
{
      Vars["idInvRegEx"]="^......$";
      if (!dblIsRegEx(Vars["idInvRegEx"],Answer(CurrQues)))
      {
            return true;
      }
}
// ใช้สำหรับดึงอื่นๆที่พิมพ์ 5 บรรทัดมาไว้ในข้อปัจจุบัน
function SetOther(other,openEnd,start) 
{
SetAnswerVisible(CurrQues, false, false, start,start+1,start+2,start+3,start+4);
if (ContainsOneOf(QRef(other),start))
{
	var topic;
	var answer;
	for (topic = 1, answer = start; topic &amp;lt;= 5; answer++, topic++)
	{
		var text = AnswerChoice(QRef(openEnd), topic);
		if (text != "")
		{
			SetAnswerVisible(CurrQues, true, false, answer);
			SetAnswerTextFormat(CurrQues, answer, text);
		}
	}
}
}
function SetOtherV2(other,openEnd,start) 
{
SetAnswerVisible(CurrQues, false, false, start,start+1,start+2,start+3,start+4);
if (ContainsOneOf(QRef(other),start))
{
	var topic;
	var answer;
	for (topic = 1, answer = start+1; topic &amp;lt;= 5; answer++, topic++)
	{
		var text = AnswerChoice(QRef(openEnd), topic);
		if (text != "")
		{
			SetAnswerVisible(CurrQues, true, false, answer);
			SetAnswerTextFormat(CurrQues, answer, text);
		}
	}
}
}
function SetTopicOther(other,openEnd,start)
{
SetTopicVisible(CurrQues, false, false, start,start+1,start+2,start+3,start+4);
if (ContainsOneOf(QRef(other),start))
{
	var topic;
	var answer;
	for (topic = 1, answer = start; topic &amp;lt;= 5; answer++, topic++)
	{
		var text = AnswerChoice(QRef(openEnd), topic);
		if (text != "")
		{
			SetTopicVisible(CurrQues, true, false, answer);
			SetTopicTextFormat(CurrQues, answer, text);
		}
	}
}
}function SetTopicOther2(other,openEnd,start)
{
SetTopicVisible(CurrQues, false, false, start,start+1,start+2,start+3,start+4);
if (ContainsOneOf(QRef(other),start))
{
	var topic;
	var answer;
	for (topic = 1, answer = start+1; topic &amp;lt;= 5; answer++, topic++)
	{
		var text = AnswerChoice(QRef(openEnd), topic);
		if (text != "")
		{
			SetTopicVisible(CurrQues, true, false, answer);
			SetTopicTextFormat(CurrQues, answer, text);
		}
	}
}
}
// วิธีใช้ ถ้าหน้า 1 ตอบโค้ด 998 999  ContainsOneOfByCode(Qref(1),["998","999"])
function ContainsOneOfByCode(qIdx, codeArr)
{
    var retVal = false;

    for(var i=1; i &amp;lt;=codeArr.length; i++)
    {
        if(ContainsByCode(qIdx,codeArr[i-1]))
        {
            retVal = true;
            break;
        }
    }

    return retVal;
}

function ContainsByCode(qIdx, code)
{
    var retVal = Contains(qIdx,GetAnswerChoiceIdxByCode(qIdx,code));
    return retVal;
}
//เอ๋ยเอง ไป โชว์การ์ด MultiContainsOneOf([QRef(20),QRef(21)....],1)
function MultiContainsOneOf(QRefArr,Idx)
{
	var retVal = false;
	for(var i=1 ; i&amp;lt;=QRefArr.length ; i++)
	{
		if(Contains(QRefArr[i-1],Idx))
		{
			retVal = true
			return  retVal
		}
	}
	return retVal
}
// การดึงคำตอบโดยเรียงลำดับจากความถี่  ใช้ได้แค่กรณีที่ index ที่1 คือ ไปบ่อยสุด จนถึง ไม่ไปเลย
function FilterFrequency(curr,qref)
{
	for(var i = 1; i &amp;lt;= GetAnswerCount(CurrQues) ; i++)
	{
		if(ContainsOneOf(QRef(qref),i))
		{
		FilterAnswersByTopics(QRef(curr),QRef(qref),i)
		break
		}
	}
}
//Rotate answer ตามหมายเลขแบบสอบถาม EX AnswerRotateByNo(QRef(QnaNumber),[Other,noanswer])
function AnswerRotateByNo(Qne,cons)
{
	var countMod = GetAnswerCount(CurrQues) - cons.length
	var newAnswers=new Array();
	var t = Answer(Qne)%countMod
	var k 
	if(t == 0)
		{
			t = countMod;
		}	
	for(k = t ; k &amp;lt;= countMod ; k++ )
		{
				newAnswers.push(k)
		}
	if(newAnswers.length != countMod)
		{	
			for(var j = 1 ; j &amp;lt; t ; j++ )
			{
				newAnswers.push(j)
			}
				//newAnswers.push(1)
		}
	for(var i = 0 ; i+1 &amp;lt;= cons.length ; i++)
			newAnswers.push(cons[i])
			
	RandomizeAnswers(CurrQues,newAnswers);
}
function SortRotateByNo(Qin,cons)  // Rotate Answer By No
{ 
	var newAnswers=new Array();
	
	if(Answer(Qin) % 2 == 1)
	{
		for(var i = 1; i &amp;lt;= GetAnswerCount(CurrQues) ; i++) 
        { 
           newAnswers.push(i); 
     	}
		RandomizeAnswers(CurrQues,newAnswers); 
	}


    if(Answer(Qin) % 2 == 0)// sort descending 
    {
        		 for(var i = GetAnswerCount(CurrQues)-cons.length ; i &amp;gt;= 1 ; i--) 
        		 { 
              		newAnswers.push(i);  
       		 	 }
			  
				for(var i = 0 ; i+1 &amp;lt;= cons.length ; i++)
				newAnswers.push(cons[i])
		 RandomizeAnswers(CurrQues,newAnswers);
	} 

}
function ConvertToDp(a1,a2)
{

	for(var j = 0; j &amp;lt;=GetAnswerCount(QRef(a1));j++)
	{
		for (var i=0; i &amp;lt;=GetAnswerCount(QRef(a2)); i++)
		{
			if (ContainsOneOf(QRef(a1+i),j+1 ))
    		{
     		dblSetSpecificAnswer(QRef(a2+j),i+1,true);
   	   	    }
		}   
	}
}
function SetOsf(CurrQuee,QSouce,AnswerIndex)
{
var l = arguments.length-1
var i
for( i=2 ; i&amp;lt;=l ; i++)
SetAnswerText(CurrQuee,arguments[i],AdditionalAnswerText(QSouce,arguments[i]))

}
function SetOsfTopic(CurrQuee,QSouce,AnswerIndex)
{
var l = arguments.length-1
var i
for( i=2 ; i&amp;lt;=l ; i++)
SetTopicText(CurrQuee,arguments[i],AdditionalAnswerText(QSouce,arguments[i]))

}
function FilterAnswersByAnswersIncTopics(a)
{
	FilterAnswersByAnswers(CurrQues,QRef(a))
	var b = getNet()
	var Ans = GetAnswers(a)
	b[b.length] = GetAnswerCount(a)+1
	for(var j = 0 ; j&amp;lt;=Ans.length ; j++)
	for(var i = 0 ; i&amp;lt;=b.length-2 ; i++)
	{
		if(Ans[j]&amp;gt;b[i] &amp;amp;&amp;amp; Ans[j]&amp;lt;b[i+1])
			{
				SetAnswerVisible(CurrQues,true,false,b[i])
			}
	}

}
function getNet()
{
	var Net = []
	var q=0
	for(var i = 1 ; i &amp;lt;= GetAnswerCount(CurrQues) ; i++)
	{
		if(AnswerCode(CurrQues,i)=="0")
		{
			Net[q] = i
			q++
		} 
	}
	return Net
}
//################################ End Prince ######################################

















function dblToJSArray(inArray){
	var retVal = new Array();
		
	for(var i=0; i&amp;lt;inArray.length; i++){		
		retVal.push(inArray[i]);
	}	
	
	return retVal;
}

function dblColorFromRGB(red, green, blue){
	return (255&amp;lt;&amp;lt;24)+ (red&amp;lt;&amp;lt;16) + (green&amp;lt;&amp;lt;8) + blue;
}


function dblDistanceFromGPSFence (fenceLat, fenceLon)
{
	var pi = Math.PI;
	var fenceLatInRad=fenceLat* pi / 180;
	var fenceLonInRad=fenceLon* pi / 180;
	var targetLatInRad = GetGPSLocation().Latitude * pi / 180;
	var targetLonInRad = GetGPSLocation().Longitude * pi / 180;
	var dist = Math.acos(Math.sin(targetLatInRad) * Math.sin(fenceLatInRad) + Math.cos(targetLatInRad) * Math.cos(fenceLatInRad) * Math.cos(targetLonInRad - fenceLonInRad)) * 6371;
	
	return dist;
}

function dblIsInGPSFence (fenceLat, fenceLon, distInKM)
{
	var dist = dblDistanceFromGPSFence(fenceLat, fenceLon);
	var retVal = false;
	
	if(dist&amp;lt;distInKM){
	    retVal=true;}
	else{
	    retVal=false;
	}
	return retVal;
}

function dblDistanceBetweenTwoLocations (firstLat, firstLon, secondLat, secondLon)
{
	var pi = Math.PI;
	var firstLatInRad=firstLat* pi / 180;
	var firstLonInRad=firstLon* pi / 180;
	var targetLatInRad = secondLat * pi / 180;
	var targetLonInRad = secondLon * pi / 180;
	var dist = Math.acos(Math.sin(targetLatInRad) * Math.sin(firstLatInRad) + Math.cos(targetLatInRad) * Math.cos(firstLatInRad) * Math.cos(targetLonInRad - firstLonInRad)) * 6371;
	
	return dist;
}


function dblSumNumericGrid(inQ)
{
	var retVal=0;
	var numOfTopics=GetTopicCount(inQ);
	var i;
	
	for(i=1; i&amp;lt;=numOfTopics; i++)
	{
		if (IsTopicVisible(inQ,i)) {
			retVal+=AnswerChoice(inQ,i);
		}
	}
	
	return retVal;
}

function dblContainsOneOf(inQTarget,inAnswers)
{
	var retVal = false;
	var numOfAnswers = inAnswers.length;
	var i;
	for (i=0;i&amp;lt; numOfAnswers;i++) {
		if (Contains(inQTarget,inAnswers[i])) {
			retVal = true;
			break;
		}
	}
	return retVal;
}


//function dblContainsAll(inQTarget,inAnswers)
//{
//	var retVal = true;
//	var numOfAnswers = arguments.length-1;
//	var i;
//	for (i=0;i&amp;lt; numOfAnswers;i++) {
//		retVal = retVal &amp;amp;&amp;amp; Contains(inQTarget,arguments[i+1]);
//	}
//	return retVal;
//}

function dblContainsAllOf(inQTarget,inAnswers)
{
	var retVal = true;
	var numOfAnswers = inAnswers.length;
	var i;
	for (i=0;i&amp;lt; numOfAnswers;i++) {
		retVal = retVal &amp;amp;&amp;amp; Contains(inQTarget,inAnswers[i]);
	}
	return retVal;
}

function dblNumOfTopicsContains(inQ, inValueToCheck)
{
	var retVal = 0;
	var i=0;
	for (i=1; i&amp;lt;=GetTopicCount(inQ);i++){
		if (IsTopicVisible(inQ,i) &amp;amp;&amp;amp; AnswerChoice(inQ,i) == inValueToCheck) {
			retVal++;
		}
	}
	
	return retVal;
}

function dblNumOfTopicsContainsChoice(inQ, inValueToCheck)
{
	var retVal = 0;
	var i=0;
	for (i=1; i&amp;lt;=GetTopicCount(inQ);i++){
		if (IsTopicVisible(inQ,i) &amp;amp;&amp;amp; ContainsChoice(inQ,i,inValueToCheck)) {
			retVal++;
		}
	}
	
	return retVal;
}

function dblNumOfIterContains(inQ, inValueToCheck)
{
	var retVal = 0;
	var i=0;
	for (i=1; i&amp;lt;IterationIndex;i++){
		if (ContainsIter(inQ,inValueToCheck,i)) {
			retVal++;
		}
	}
	
	return retVal;
}


function dblSetSpecificTopic(inQ, inTopicIndex, inValue)
{
	var curTopics = GetTopicCount(inQ);
	var newAnswers=new Array();
	var newArIdx=0;
	var i;
	for (i=0;i&amp;lt; curTopics;i++) {
		var actualTopic = i+1;
		if (actualTopic == inTopicIndex) {
			newAnswers[i] = inValue;
		}
		else {
			newAnswers[i] = AnswerChoice(inQ,actualTopic);
		}
	}
	SetAnswer(inQ,newAnswers);
}

function dblSetSpecificTopicChoice(inQ, inTopicIndex, inValue)
{
	var curTopics = GetTopicCount(inQ);
	var newAnswers=new Array();
	newAnswers.push(inValue);
	var i;
	var ansArr = GetAnswersChoice(inQ, inTopicIndex);
	for (i=0;i &amp;lt; ansArr.length;i++)
 	{
		newAnswers.push(ansArr[i]);
	}
	SetAnswerChoice(inQ, inTopicIndex, newAnswers);
}

function dblSetSpecificAnswer(inQ, inAnswerIdx, inChecked)
{
	var curAnswers = GetAnswers(inQ);
	var newAnswers=new Array();
	var newArIdx=0;
	var i;
	for (i=0;i&amp;lt; curAnswers.length;i++) {
		if (curAnswers[i] != inAnswerIdx) {
			newAnswers[newArIdx] = curAnswers[i];
			newArIdx++;
		}
	}
	if (inChecked) {
		newAnswers[newArIdx] = inAnswerIdx;
	}
	if (newAnswers.length &amp;gt; 0) {
	
		SetAnswer(inQ,newAnswers);
	}
	else {
		ClearAnswer(inQ);
	}
}

function dblSetAnswersByAnswers(inQTarget,inQids)
{
	var numOfQues = inQids.length;
	var numOfAnswers = GetAnswerCount(inQids[0]);
	var i;
	for (i=1;i&amp;lt;= numOfAnswers;i++) {
		var contained = false;
		var j;
		for (j=0; j&amp;lt;numOfQues;j++) {
			contained = Contains(inQids[j],i);
			if (contained) {
				break;
			}
		}
		if (contained) {
			dblSetSpecificAnswer(inQTarget, i,true);
		}
	}
}

function dblSetAnswersByAnswersEx (inQTarget,inQids,inExcludeHiddenTargetAnswers)
{
	var numOfQues = inQids.length;
	var numOfAnswers = GetAnswerCount(inQids[0]);
	var i;
	// go over all answers and for each check if it exists in the source questions
	for (i=1;i&amp;lt;= numOfAnswers;i++) {
		var contained = false;
		var j;
		// go over all source questions and check if the answer is checked
		for (j=0; j&amp;lt;numOfQues;j++) {
			contained = Contains(inQids[j],i);
			if (contained) {
				break;
			}
		}
		// in case it was contained check if need to add to target question
		if (contained) {
			var addAnswer = true;
			if ((inExcludeHiddenTargetAnswers) &amp;amp;&amp;amp; !IsAnswerVisible(inQTarget,i)) {
				addAnswer = false;
			}
			if (addAnswer) {
				dblSetSpecificAnswer(inQTarget, i,true);
			}
		}
	}
}


function dblSumOfTopics (inQuesIdx)
{
      var retVal = 0;
      var i;
      var numOfTopics = GetTopicCount(inQuesIdx);
      for (i=0;i&amp;lt;numOfTopics;i++) {
            var currTopic = i+1;
            if (IsTopicVisible (inQuesIdx, currTopic)) {
                  var currValue = AnswerChoice(inQuesIdx, currTopic);
                  if (currValue != -99999) {
	                  retVal += currValue;
                  }
            }
      }


      return retVal;
}

function dblFormatNumberToCurrency(num) {
	var retVal = "";
	var num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	var sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	var cents = num%100;
	num = Math.floor(num/100).toString();
	var addZero = "";
	if(cents&amp;lt;10) {
		addZero = "0";
	}
	for (var i = 0; i &amp;lt; Math.floor((num.length-(1+i))/3); i++) {
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	}
	retVal = (((sign)?'':'-') + '$' + num + '.' +addZero+ cents)
	return retVal;
}

function dblToFloat(inNumber)
{
	var retVal = parseFloat(inNumber.toString().replace(",", "."));
	return retVal;
}


function dblSetAnswerVisible(inQTarget,inValue,inReset,inAnswers)
{
	var retVal = false;
	var numOfAnswers = inAnswers.length;
	var i;
	if (inReset) {
		SetAnswerVisible(inQTarget,true);
	}
	for (i=0;i&amp;lt; numOfAnswers;i++) {
		SetAnswerVisible(inQTarget, inAnswers[i], inValue);
	}
	return retVal;
}


function dblContainsByText(inQIdx, inText)
{
	var retVal = false;
	var i=0;
	for (i=0; i&amp;lt;GetAnswerCount(inQIdx); i++){
		var idx = i+1;
		var text = AnswerText(inQIdx,idx);
		if (text == inText) {
			if (Contains(inQIdx,idx)) {
				retVal = true;
				break;
			}
		}
	}
	return retVal;
}


function dblFilterAnswersByAnswersByText (inTargetQ, inShow,inSourceQ)
{
	SetAnswerVisible(inTargetQ,!inShow);	
	var i =0;
	for (i=0; i&amp;lt;GetAnswerCount(inTargetQ);i++){
		var idx = i+1;
		var text = AnswerText(inTargetQ,idx);
		if (dblContainsByText(inSourceQ,text)) {
			SetAnswerVisible(inTargetQ,idx,inShow);	
		}
	}
	
	return true;
}

function dblFilterTopicsByAnswersByText (inTargetQ, inShow, inSourceQ)
{
	SetTopicVisible(inTargetQ,!inShow);	
	var i=0;
	for (i=0; i&amp;lt;GetTopicCount(inTargetQ); i++){
		var idx = i+1;
		var text = GetTopicOriginalText(inTargetQ,idx);
		if (dblContainsByText(inSourceQ,text)) {
			SetTopicVisible(inTargetQ,idx,inShow);	
		}
	}
	
	return true;
}

function dblGetSubjectStoreRow(inStoreName,inIDColumnName,inID)
{
	var retVal = null;
	try {
		var table = GetTableFromStore(inStoreName,"","@@"+inIDColumnName+"='"+inID+"'","");
		if (table != null &amp;amp;&amp;amp; table.RowCount &amp;gt;0) {
			var row = table[0];
			retVal = row;
		}
	}
	catch(err)
	{
		retVal = null;	
	}

	return retVal;
}

function dblIsRegEx (pattern,value) {
	var pattern = new RegExp(pattern);
	return pattern.test(value);
}

function dblDateToSQLDate(inDate)
{
	var retVal = "";
	retVal = inDate.Year+"-"+inDate.Month+"-"+inDate.Day;	
	return retVal;
}

function dblOrderArray(inOrderArray, inDataArray)
{
	var retVal = CreateRandomArray(inOrderArray.length);
	var i = 0;
	for (i = 0; i &amp;lt; inOrderArray.length; i++) {
		retVal[i] = inDataArray[inOrderArray[i]-1];
	}
	return retVal;
} 

function dblRespondentID ()
{
	var retVal = "".concat("D", SID, "-", DeviceIndex);
	return retVal;
}


	/*_@_USERCODE_END_@*/

	//_@_AddHandler_@{ Begin Add Handlers
	//_@_AddHandler_@} End Add Handlers

	//_@_HandlerZone_@{
	//_@_HandlerZone_@}


    function JSDBLInitAllScript()
    {
    }var eJumpQuestionResult = {ejqrNext:0, ejqrSubmit:1,ejqrCancel:2,ejqrFilter:3,ejqrNone:4,ejqrIndex:5,ejqrChapter:6};
var ePlatform = {None:0, Web:1, PC:2, PDA:4, MobileWeb:8, SmartPhone:16, Android:32, AllWindows:31, AllJSEnabled: 34, All:63};
var eAttachmentSource = {easDefault:0};
var eAskButtons = {OKCancel:0, YesNoCancel:1, YesNo:2};
var eAskResult = {None:0, OK:1, Yes:2, No:3, Cancel:4};
var eQuotaFilledResult = {Default:0,Filter:1,Cancel:2,Nothing:3};
var eExtraLabel = { MatrixLower:0, MatrixMiddle:1, MatrixUpper:2, MatrixIrrelevant:3, ScaleLower:4, ScaleMiddle:5, ScaleUpper:6, CountersTotal:7,CountersRemaining:8, NumericGridTotal:9, NumericGridRemaining:10 }; 

var eULQuestionType = {eqtYesNo: 0, 
eqtAmerican: 1, 
eqtNumeric: 2, 
eqtFreeText: 3, 
eqtMultiSelect: 4, 
eqtRating: 5, 
eqtScale: 6, 
eqtMatrix: 7, 
eqtMultiTopics: 8, 
eqtNoQuestion: 9, 
eqtDateTime: 10, 
eqtCounters: 11, 
eqtStopper: 12, 
eqtMassiveMultiSelect: 13, 
eqtExpression: 14, 
eqtMultiText: 15, 
eqtMultiNumeric: 16, 
eqtMultimedia: 17, 
eqtMultiTopicsSelect: 18, 
eqtGPSQuestion: 19, 
eqtListSource: 20, 
eqtPositionTopicsOnImage: 21, 
eqtNumOfTypes: 22};

var eRenderGridAlignment = {Top: 0, 
Center: 1, 
Bottom: 2};

var eInterviewExtraField = {AttemptsPerCompletedInterview: 0, 
AdherenceToMethodology: 1, 
CustomData1: 2, 
CustomData2: 3, 
CustomData3: 4, 
CustomData4: 5, 
CustomData5: 6, 
CustomData6: 7, 
CustomDataInt1: 8, 
CustomDataInt2: 9, 
CustomDataInt3: 10, 
CustomDataInt4: 11, 
CustomDataInt5: 12, 
CustomDataInt6: 13};
&lt;/Source&gt;
&lt;/UserLogicContents&gt;</ULSource><RestrictSPSS>False</RestrictSPSS><ExtraText1 /><ExtraBool1>False</ExtraBool1><ExtraBool2>False</ExtraBool2><ExtraInt1>-1</ExtraInt1><ExtraInt2>0</ExtraInt2><STGVersion>1.32.0.0</STGVersion><ULAssemblyData>AAEAAAD/////AQAAAAAAAAAMAgAAAEdVc2VyTG9naWNDcmVhdG9yLCBWZXJzaW9uPTEuMC4xLjMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAKVN1cnZleVRvR28uVXNlckxvZ2ljLkNyZWF0b3IuQXNzZW1ibHlEYXRhEAAAAAZtVGFibGUNbVN1cnZleUNvbnN0cw9tU3VydmV5U25pcHBldHMNbUNoYXB0ZXJUYWJsZQ1tTGFzdEJ1Y2tldElEEW1MYXN0TWV0YUJ1Y2tldElED21TdXJ2ZXlJbml0Q29kZRBtU3VydmV5QmxvY2tDb2RlEW1MYXN0TGlzdFNvdXJjZUlEE21MYXN0Q3VzdG9tQWN0aW9uSUQHbUZsYXZvcg5tVXNlR2xvYmFsQ29kZQttVXNlT3JnQ29kZQ5tU3RyaWN0SlNDaGVjaxdtTGFzdEF0dGFjaG1lbnRTb3VyY2VJRA5tU3VydmV5TmF2Q29kZQMDAwMAAAEBAAAEAAAAAAEeU3lzdGVtLkNvbGxlY3Rpb25zLkhhc2h0YWJsZVtdHFN5c3RlbS5Db2xsZWN0aW9ucy5IYXNodGFibGUeU3lzdGVtLkNvbGxlY3Rpb25zLkhhc2h0YWJsZVtdHlN5c3RlbS5Db2xsZWN0aW9ucy5IYXNodGFibGVbXQgICAgkU3VydmV5VG9Hby5Vc2VyTG9naWMuQ3JlYXRvci5lRmxhdm9yAgAAAAEBAQgCAAAACQMAAAAJBAAAAAkFAAAACQYAAAABAAAAAgAAAAYHAAAAAAkHAAAAAQAAAAEAAAAF+P///yRTdXJ2ZXlUb0dvLlVzZXJMb2dpYy5DcmVhdG9yLmVGbGF2b3IBAAAAB3ZhbHVlX18ACAIAAAACAAAAAQEBAQAAAAkHAAAABwMAAAAAAQAAAAYAAAADHFN5c3RlbS5Db2xsZWN0aW9ucy5IYXNodGFibGUJCQAAAAkKAAAACQsAAAAJDAAAAAkNAAAACQ4AAAAEBAAAABxTeXN0ZW0uQ29sbGVjdGlvbnMuSGFzaHRhYmxlBwAAAApMb2FkRmFjdG9yB1ZlcnNpb24IQ29tcGFyZXIQSGFzaENvZGVQcm92aWRlcghIYXNoU2l6ZQRLZXlzBlZhbHVlcwAAAwMABQULCBxTeXN0ZW0uQ29sbGVjdGlvbnMuSUNvbXBhcmVyJFN5c3RlbS5Db2xsZWN0aW9ucy5JSGFzaENvZGVQcm92aWRlcgjsUTg/AAAAAAoKCwAAAAkPAAAACRAAAAAHBQAAAAABAAAABQAAAAMcU3lzdGVtLkNvbGxlY3Rpb25zLkhhc2h0YWJsZQkRAAAACRIAAAAJEwAAAAkUAAAACRUAAAAHBgAAAAABAAAACAAAAAMcU3lzdGVtLkNvbGxlY3Rpb25zLkhhc2h0YWJsZQkWAAAACRcAAAAJGAAAAAkZAAAACRoAAAAJGwAAAAkcAAAACR0AAAABCQAAAAQAAADsUTg/AAAAAAoKCwAAAAkeAAAACR8AAAABCgAAAAQAAADsUTg/AAAAAAoKCwAAAAkgAAAACSEAAAABCwAAAAQAAADsUTg/AAAAAAoKCwAAAAkiAAAACSMAAAABDAAAAAQAAADsUTg/AAAAAAoKCwAAAAkkAAAACSUAAAABDQAAAAQAAADsUTg/AAAAAAoKCwAAAAkmAAAACScAAAABDgAAAAQAAADsUTg/AAAAAAoKCwAAAAkoAAAACSkAAAAQDwAAAAAAAAAQEAAAAAAAAAABEQAAAAQAAADsUTg/AAAAAAoKCwAAAAkqAAAACSsAAAABEgAAAAQAAADsUTg/AAAAAAoKCwAAAAksAAAACS0AAAABEwAAAAQAAADsUTg/AAAAAAoKCwAAAAkuAAAACS8AAAABFAAAAAQAAADsUTg/AAAAAAoKCwAAAAkwAAAACTEAAAABFQAAAAQAAADsUTg/AAAAAAoKCwAAAAkyAAAACTMAAAABFgAAAAQAAADsUTg/AAAAAAoKCwAAAAk0AAAACTUAAAABFwAAAAQAAADsUTg/AAAAAAoKCwAAAAk2AAAACTcAAAABGAAAAAQAAADsUTg/AAAAAAoKCwAAAAk4AAAACTkAAAABGQAAAAQAAADsUTg/AAAAAAoKCwAAAAk6AAAACTsAAAABGgAAAAQAAADsUTg/AAAAAAoKCwAAAAk8AAAACT0AAAABGwAAAAQAAADsUTg/AAAAAAoKCwAAAAk+AAAACT8AAAABHAAAAAQAAADsUTg/AAAAAAoKCwAAAAlAAAAACUEAAAABHQAAAAQAAADsUTg/AAAAAAoKCwAAAAlCAAAACUMAAAAQHgAAAAAAAAAQHwAAAAAAAAAQIAAAAAAAAAAQIQAAAAAAAAAQIgAAAAAAAAAQIwAAAAAAAAAQJAAAAAAAAAAQJQAAAAAAAAAQJgAAAAAAAAAQJwAAAAAAAAAQKAAAAAAAAAAQKQAAAAAAAAAQKgAAAAAAAAAQKwAAAAAAAAAQLAAAAAAAAAAQLQAAAAAAAAAQLgAAAAAAAAAQLwAAAAAAAAAQMAAAAAAAAAAQMQAAAAAAAAAQMgAAAAAAAAAQMwAAAAAAAAAQNAAAAAAAAAAQNQAAAAAAAAAQNgAAAAAAAAAQNwAAAAAAAAAQOAAAAAAAAAAQOQAAAAAAAAAQOgAAAAAAAAAQOwAAAAAAAAAQPAAAAAAAAAAQPQAAAAAAAAAQPgAAAAAAAAAQPwAAAAAAAAAQQAAAAAAAAAAQQQAAAAAAAAAQQgAAAAAAAAAQQwAAAAAAAAAL</ULAssemblyData><NumOfQuestionsInPage>-1</NumOfQuestionsInPage><Version>3</Version><NextChapterID>5</NextChapterID><DefaultChapterDesc /><Flags>272629900</Flags><NextAnswerID>1</NextAnswerID><ClientData /><DefaultFont /><Comment /><ExternalSystem>-1</ExternalSystem><NextScoreID>1</NextScoreID><LocationStoreID>9574</LocationStoreID><NextScaleID>1</NextScaleID><Mode>1</Mode><DefTextPanelHeight>-1</DefTextPanelHeight><DefAnswerPanelHeight>-1</DefAnswerPanelHeight><SurveyFlags2>65792</SurveyFlags2><NumOfQuestionsPDA>-1</NumOfQuestionsPDA><NumOfQuestionsPC>-1</NumOfQuestionsPC><NumOfQuestionsSmartPhone>-1</NumOfQuestionsSmartPhone><NextLangID>0</NextLangID><QuestionCounterResetText /><QuestionNumericResetText /><QuestionStopperResetText /><QuestionFormSurveyCanceled /><QuestionFormSurveyFiltered /><QuestionFormCanotExit /><QuestionFormSureToCancelNoSave /><QuestionFormSureToCancel /><QuestionFormSaved /><PromptOnSubmitText /><PromptOnCancelText /><PromptOnFilterText /><StartWithLangID>-1</StartWithLangID><ReportFlags>0</ReportFlags><SurveyFlags3>54820992</SurveyFlags3><ClientTypes>54</ClientTypes><MDDScript /><MDDScriptOps /><MDDScriptRouting /><FlagIfDuredLessThan>0</FlagIfDuredLessThan><FlagIfDuredMoreThan>0</FlagIfDuredMoreThan><PropertiesAsString /><SurveyFlags4>0</SurveyFlags4><InternalProps /><SurveyLogicVersion>1</SurveyLogicVersion></Survey><SQs><ElemStr>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</ElemStr></SQs><SANs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx6+MXTXr36P8B+qCcIzEAAAA=</ElemStr></SANs><STos><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx6zdVk949+n8AZjUmjDEAAAA=</ElemStr></STos><SCs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx65MG/xw9Pnt6tPP4Lv37+EW2yI++90VWLNOTebZq8/r7j+/yh49fr+vL/JoaPczuZfvn57vbn947f7C9n+f5dnYwzbb3J3ufZgf3708fTnYf37XNHz/Ny7zNZ+jC/Pr4ZVbny5a+3aam9o/Hz6uLYvqszC4atPb+evwqX87yWv7Yvff4rv839dBM62LV0miP3syLJqX/tfM8rauqTacyjrQ6T7Oy5M9/0Tpv0Li526wn29qA3lrytw1jPvqNk984+X2qdTrNlumS4NT5orrMqQUB11dGabacMVQH0UJbrJs2neTpGogGr4190AualfPrtGibdFVXq7xui7xJt5ZE81E6cwMbpW3+rk3zdjq+A0K6ET9+gy/uHj0+fdfW2ZOqKnePnmVlkz++633ivt07elOv/S/39MuzZbvLE+L+sl/sYULcH4/PZu+4KX4yAt9+88VzIHFSLRY0m/j1u3lxMW/xov72+PW0qnOwE75+la+quj3J2vyiqq97XNf5Wpu/KdqS3/4ie3dGDTMmATAJPnj8vGja19W6nuZnM/46+IAxfpkt8/LbghladD97/OrNM0PaVzTR1eLzulqvuK3/9+Oz5njaFpe50tX+GeDYvKlO32EEPWTdN49fWg44bl63NYkrOndysBeKBc3DXcivyvCuJ8NKx3T3Z1d8d75Z6cVof664eeebZGaP/D/i4/fl470IH+/9iI9vycddpXyU0vMLs8XqcDlpVofCH/zFh7P33o/Y+/3Z+16Eve/9iL1vyd57Pxtq+t6P+Pj9+Xjf4+PX5EdbYo5/lp2Oe///4eZ73yQ39ybhRzx9a56+i2D4/wHYHmJEOw8AAA==</ElemStr></SCs><SBNs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx6ycvmvTu0f8DVNIIpTEAAAA=</ElemStr></SBNs><SATs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx6+M3TXr36P8B2S/MCTEAAAA=</ElemStr></SATs><SSCOs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx69cnXzbp3aP/B1t6G+cyAAAA</ElemStr></SSCOs><SPs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx65dNevfo/wF1B76WMAAAAA==</ElemStr></SPs><RGs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jxq8+b9O7R/wNCnyKPMAAAAA==</ElemStr></RGs><CSs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jxyesmvXv0/wA+f8jSMAAAAA==</ElemStr></CSs><SSCs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx69cnTXr36P8B28cSlTEAAAA=</ElemStr></SSCs><QAs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jxTxw36d2j/wdMGPaGMAAAAA==</ElemStr></QAs><SLs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx6+dNevfo/wH2fa4zMAAAAA==</ElemStr></SLs><STes><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx6zd5k949+n8Axy2WxjEAAAA=</ElemStr></STes><SMBs><ElemStr>H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iv7Hv/cffPx7vFuU6WVeN0W1/Oyj3fHOR2m+nFazYnnx2Ufr9nz74KPf4+jx6y+eNPwv/bOuL/Prs6dHD7N72f75+e72p/fOH2zv53m+nR1Ms+39yd6n2cH9+9OHk93Hd23zx0/W07d5S7/tPL5rf9dPX2SLPL179Phpfp6ty/Yn1lWboV3w9+M316scn/LPxz+xzpuWsCYo29SR9+fjl1mdL1v9wv7x+KvlyTyn7mbHy+aKhvyE8EKvd2Vg38zoduOjO3qRX6Wv53nemu/509uM+N77jHjn9gO+y7P6/wDQtX9hBQIAAA==</ElemStr></SMBs></Root>