/game/generatePipelineScriptForChallenge :
challengeInfo:
{
	"challengeStage": "3",
	"challengeType":"1",
	"challengeProgramName":"Calculator.java",
	"trainingID": "1"
}

/game/generatePipelineScriptForGame :
gameInfo:
{
	"operationEnvironment": "Java",
	"challengePipelines":[
		{"challengeStage":"1","challengePipeline":"ICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGFnZSA9PSAxKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOe8luivkeeoi+W6jw0KICAgICAgICAgICAgICAgICAgICAgICAgc2ggc2NyaXB0OiAnZWNobyAiJChqYXZhYyBDYWxjdWxhdG9yLmphdmEgMj4mMSkiID4gY29tcGlsZV9yZXN1bHRfMS5vdXQnDQogICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUmVzdWx0ID0gcmVhZEZpbGUgKCdjb21waWxlX3Jlc3VsdF8xLm91dCcpDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOe8luivkemUmeivrw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBpbGVSZXN1bHQudHJpbSgpID09ICcnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0R2FtZUluc3RhbmNlUmVzdWx0VG9CRFdlYihjb21waWxlUmVzdWx0OiBjb21waWxlUmVzdWx0LCBvdXQ6ICcnLCBpbjppbiwgZXhwZWN0ZWRPdXQ6ZXhwZWN0ZWRPdXQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQoJCQkJCQlTdHJpbmdCdWlsZGVyIGluID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQ0KCQkJCQkJU3RyaW5nQnVpbGRlciBvdXQgPSBuZXcgU3RyaW5nQnVpbGRlcignWycpDQoJCQkJCQlTdHJpbmdCVWlsZGVyIGV4cGVjdGVkT3V0ID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQ0KDQoJCQkJCQlkZWYgZmlsZU51bXMgPSBzaCBzY3JpcHQ6ICdscyAtbCB8Z3JlcCAiXi0ifHdjIC1sJywgcmV0dXJuU3Rkb3V0OiB0cnVlDQoNCgkJCQkJCWZvciAoaW50IGkgPSAxOyBpIDw9IGZpbGVOdW1zLzI7IGkrKykgew0KCQkJCQkJCS8vIOivu+WPlui+k+WFpeWSjOmihOacn+i+k+WHug0KCQkJCQkJCWRlZiBpbkkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMS8ke2l9LmluJw0KCQkJCQkJCWRlZiBleHBlY3RlZE91dEkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMS8ke2l9Lm91dCcNCg0KCQkJCQkJCS8vIOS7jmluLnR4dOivu+WFpe+8jOeoi+W6j+i/kOihjOi+k+WHuumHjeWumuWQkeWIsG91dC50eHQNCgkJCQkJCQlzaCBzY3JpcHQ6ICdlY2hvICIkKGphdmEgQ2FsY3VsYXRvciA8IC4uL3Rlc3RDYXNlcy8xLzEvJyArIGkgKyAnLmluICAyPiYxKSIgPiBhY3R1YWxfcmVzdWx0XzFfaS5vdXQnDQoJCQkJCQkJZGVmIG91dEkgPSByZWFkRmlsZSAiYWN0dWFsX3Jlc3VsdF8xXyR7aX0ub3V0Ig0KDQoJCQkJCQkJLy8g5ou85o6l5oiQanNvbuagvOW8jw0KCQkJCQkJCWluLmFwcGVuZCgiXCIiICsgaW5JICsgIlwiLCIpOw0KCQkJCQkJCW91dC5hcHBlbmQoIlwiIiArIG91dEkgKyAiXCIsIik7DQoJCQkJCQkJZXhwZWN0ZWRPdXQuYXBwZW5kKCJcIiIgKyBleHBlY3RlZE91dEkgKyAiXCIsIik7DQoNCgkJCQkJCX0NCg0KCQkJCQkJaW4gPSBpbi5kZWxldGVDaGFyQXQoaW4ubGVuZ3RoKCkgLSAxKTsNCgkJCQkJCWluID0gaW4uYXBwZW5kKCJdIik7DQoNCgkJCQkJCW91dCA9IG91dC5kZWxldGVDaGFyQXQob3V0Lmxlbmd0aCgpIC0gMSk7DQoJCQkJCQlvdXQgPSBvdXQuYXBwZW5kKCJdIik7DQoNCgkJCQkJCWV4cGVjdGVkT3V0ID0gZXhwZWN0ZWRPdXQuZGVsZXRlQ2hhckF0KGV4cGVjdGVkT3V0Lmxlbmd0aCgpIC0gMSk7DQoJCQkJCQlleHBlY3RlZE91dCA9IGV4cGVjdGVkT3V0LmFwcGVuZCgiXSIpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAvLyDnlLHkuK3pl7TlsYLliKTmlq3nu5PmnpzkuYvlkI7lj5HpgIHnu5lCRFdlYg0KICAgICAgICAgICAgICAgICAgICAgICAgcG9zdEdhbWVJbnN0YW5jZVJlc3VsdFRvQkRXZWIoY29tcGlsZVJlc3VsdDogY29tcGlsZVJlc3VsdCwgb3V0OiBvdXQsIGluOmluLCBleHBlY3RlZE91dDpleHBlY3RlZE91dCkNCiAgICAgICAgICAgIH0="},
		{"challengeStage":"2","challengePipeline":"ICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGFnZSA9PSAyKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOe8luivkeeoi+W6jw0KICAgICAgICAgICAgICAgICAgICAgICAgc2ggc2NyaXB0OiAnZWNobyAiJChqYXZhYyBDYWxjdWxhdG9yLmphdmEgMj4mMSkiID4gY29tcGlsZV9yZXN1bHRfMi5vdXQnDQogICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUmVzdWx0ID0gcmVhZEZpbGUgKCdjb21waWxlX3Jlc3VsdF8yLm91dCcpDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOe8luivkemUmeivrw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBpbGVSZXN1bHQudHJpbSgpID09ICcnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0R2FtZUluc3RhbmNlUmVzdWx0VG9CRFdlYihjb21waWxlUmVzdWx0OiBjb21waWxlUmVzdWx0LCBvdXQ6ICcnLCBpbjppbiwgZXhwZWN0ZWRPdXQ6ZXhwZWN0ZWRPdXQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQoJCQkJCQlTdHJpbmdCdWlsZGVyIGluID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQ0KCQkJCQkJU3RyaW5nQnVpbGRlciBvdXQgPSBuZXcgU3RyaW5nQnVpbGRlcignWycpDQoJCQkJCQlTdHJpbmdCVWlsZGVyIGV4cGVjdGVkT3V0ID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQ0KDQoJCQkJCQlkZWYgZmlsZU51bXMgPSBzaCBzY3JpcHQ6ICdscyAtbCB8Z3JlcCAiXi0ifHdjIC1sJywgcmV0dXJuU3Rkb3V0OiB0cnVlDQoNCgkJCQkJCWZvciAoaW50IGkgPSAxOyBpIDw9IGZpbGVOdW1zLzI7IGkrKykgew0KCQkJCQkJCS8vIOivu+WPlui+k+WFpeWSjOmihOacn+i+k+WHug0KCQkJCQkJCWRlZiBpbkkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMi8ke2l9LmluJw0KCQkJCQkJCWRlZiBleHBlY3RlZE91dEkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMi8ke2l9Lm91dCcNCg0KCQkJCQkJCS8vIOS7jmluLnR4dOivu+WFpe+8jOeoi+W6j+i/kOihjOi+k+WHuumHjeWumuWQkeWIsG91dC50eHQNCgkJCQkJCQlzaCBzY3JpcHQ6ICdlY2hvICIkKGphdmEgQ2FsY3VsYXRvciA8IC4uL3Rlc3RDYXNlcy8xLzIvJyArIGkgKyAnLmluICAyPiYxKSIgPiBhY3R1YWxfcmVzdWx0XzJfaS5vdXQnDQoJCQkJCQkJZGVmIG91dEkgPSByZWFkRmlsZSAiYWN0dWFsX3Jlc3VsdF8yXyR7aX0ub3V0Ig0KDQoJCQkJCQkJLy8g5ou85o6l5oiQanNvbuagvOW8jw0KCQkJCQkJCWluLmFwcGVuZCgiXCIiICsgaW5JICsgIlwiLCIpOw0KCQkJCQkJCW91dC5hcHBlbmQoIlwiIiArIG91dEkgKyAiXCIsIik7DQoJCQkJCQkJZXhwZWN0ZWRPdXQuYXBwZW5kKCJcIiIgKyBleHBlY3RlZE91dEkgKyAiXCIsIik7DQoNCgkJCQkJCX0NCg0KCQkJCQkJaW4gPSBpbi5kZWxldGVDaGFyQXQoaW4ubGVuZ3RoKCkgLSAxKTsNCgkJCQkJCWluID0gaW4uYXBwZW5kKCJdIik7DQoNCgkJCQkJCW91dCA9IG91dC5kZWxldGVDaGFyQXQob3V0Lmxlbmd0aCgpIC0gMSk7DQoJCQkJCQlvdXQgPSBvdXQuYXBwZW5kKCJdIik7DQoNCgkJCQkJCWV4cGVjdGVkT3V0ID0gZXhwZWN0ZWRPdXQuZGVsZXRlQ2hhckF0KGV4cGVjdGVkT3V0Lmxlbmd0aCgpIC0gMSk7DQoJCQkJCQlleHBlY3RlZE91dCA9IGV4cGVjdGVkT3V0LmFwcGVuZCgiXSIpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAvLyDnlLHkuK3pl7TlsYLliKTmlq3nu5PmnpzkuYvlkI7lj5HpgIHnu5lCRFdlYg0KICAgICAgICAgICAgICAgICAgICAgICAgcG9zdEdhbWVJbnN0YW5jZVJlc3VsdFRvQkRXZWIoY29tcGlsZVJlc3VsdDogY29tcGlsZVJlc3VsdCwgb3V0OiBvdXQsIGluOmluLCBleHBlY3RlZE91dDpleHBlY3RlZE91dCkNCiAgICAgICAgICAgIH0="},
		{"challengeStage":"3","challengePipeline":"ICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGFnZSA9PSAzKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOe8luivkeeoi+W6jw0KICAgICAgICAgICAgICAgICAgICAgICAgc2ggc2NyaXB0OiAnZWNobyAiJChqYXZhYyBDYWxjdWxhdG9yLmphdmEgMj4mMSkiID4gY29tcGlsZV9yZXN1bHRfMy5vdXQnDQogICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUmVzdWx0ID0gcmVhZEZpbGUgKCdjb21waWxlX3Jlc3VsdF8zLm91dCcpDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOe8luivkemUmeivrw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBpbGVSZXN1bHQudHJpbSgpID09ICcnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0R2FtZUluc3RhbmNlUmVzdWx0VG9CRFdlYihjb21waWxlUmVzdWx0OiBjb21waWxlUmVzdWx0LCBvdXQ6ICcnLCBpbjppbiwgZXhwZWN0ZWRPdXQ6ZXhwZWN0ZWRPdXQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQoJCQkJCQlTdHJpbmdCdWlsZGVyIGluID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQ0KCQkJCQkJU3RyaW5nQnVpbGRlciBvdXQgPSBuZXcgU3RyaW5nQnVpbGRlcignWycpDQoJCQkJCQlTdHJpbmdCVWlsZGVyIGV4cGVjdGVkT3V0ID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQ0KDQoJCQkJCQlkZWYgZmlsZU51bXMgPSBzaCBzY3JpcHQ6ICdscyAtbCB8Z3JlcCAiXi0ifHdjIC1sJywgcmV0dXJuU3Rkb3V0OiB0cnVlDQoNCgkJCQkJCWZvciAoaW50IGkgPSAxOyBpIDw9IGZpbGVOdW1zLzI7IGkrKykgew0KCQkJCQkJCS8vIOivu+WPlui+k+WFpeWSjOmihOacn+i+k+WHug0KCQkJCQkJCWRlZiBpbkkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMy8ke2l9LmluJw0KCQkJCQkJCWRlZiBleHBlY3RlZE91dEkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMy8ke2l9Lm91dCcNCg0KCQkJCQkJCS8vIOS7jmluLnR4dOivu+WFpe+8jOeoi+W6j+i/kOihjOi+k+WHuumHjeWumuWQkeWIsG91dC50eHQNCgkJCQkJCQlzaCBzY3JpcHQ6ICdlY2hvICIkKGphdmEgQ2FsY3VsYXRvciA8IC4uL3Rlc3RDYXNlcy8xLzMvJyArIGkgKyAnLmluICAyPiYxKSIgPiBhY3R1YWxfcmVzdWx0XzNfaS5vdXQnDQoJCQkJCQkJZGVmIG91dEkgPSByZWFkRmlsZSAiYWN0dWFsX3Jlc3VsdF8zXyR7aX0ub3V0Ig0KDQoJCQkJCQkJLy8g5ou85o6l5oiQanNvbuagvOW8jw0KCQkJCQkJCWluLmFwcGVuZCgiXCIiICsgaW5JICsgIlwiLCIpOw0KCQkJCQkJCW91dC5hcHBlbmQoIlwiIiArIG91dEkgKyAiXCIsIik7DQoJCQkJCQkJZXhwZWN0ZWRPdXQuYXBwZW5kKCJcIiIgKyBleHBlY3RlZE91dEkgKyAiXCIsIik7DQoNCgkJCQkJCX0NCg0KCQkJCQkJaW4gPSBpbi5kZWxldGVDaGFyQXQoaW4ubGVuZ3RoKCkgLSAxKTsNCgkJCQkJCWluID0gaW4uYXBwZW5kKCJdIik7DQoNCgkJCQkJCW91dCA9IG91dC5kZWxldGVDaGFyQXQob3V0Lmxlbmd0aCgpIC0gMSk7DQoJCQkJCQlvdXQgPSBvdXQuYXBwZW5kKCJdIik7DQoNCgkJCQkJCWV4cGVjdGVkT3V0ID0gZXhwZWN0ZWRPdXQuZGVsZXRlQ2hhckF0KGV4cGVjdGVkT3V0Lmxlbmd0aCgpIC0gMSk7DQoJCQkJCQlleHBlY3RlZE91dCA9IGV4cGVjdGVkT3V0LmFwcGVuZCgiXSIpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAvLyDnlLHkuK3pl7TlsYLliKTmlq3nu5PmnpzkuYvlkI7lj5HpgIHnu5lCRFdlYg0KICAgICAgICAgICAgICAgICAgICAgICAgcG9zdEdhbWVJbnN0YW5jZVJlc3VsdFRvQkRXZWIoY29tcGlsZVJlc3VsdDogY29tcGlsZVJlc3VsdCwgb3V0OiBvdXQsIGluOmluLCBleHBlY3RlZE91dDpleHBlY3RlZE91dCkNCiAgICAgICAgICAgIH0="}
	]
}

/game/openGameInstance :
jobNameForInstance:localtest
gamePipelineScript:bm9kZSAoKSB7IGdpdCB1cmw6aW5zdGFuY2VHaXRVUkx9
instanceGitURL:aHR0cHM6Ly9naXQub3NjaGluYS5uZXQvaHVnZW94L2dlbmtpbnMtZGVtbzEuZ2l0

/game/publishGame :
gameInfo：
{
	"trainingID": "1",
	"operationEnvironment": "Java",
	"challengePipelines":[
		{"challengeStage":"1","challengePipeline":"aWYgKGN1cnJlbnRDaGFsbGVuZ2UgPT0gMSkge30="},
		{"challengeStage":"2","challengePipeline":"aWYgKGN1cnJlbnRDaGFsbGVuZ2UgPT0gMikge30="}
	],
	"testCases":[
		{
			"challengeStage":"1",
			"challengeTestCases":[
				{"input":"1,2","output":"3"},{"input":"4,5","output":"9"}
			]
		},
		{
			"challengeStage":"2",
			"challengeTestCases":[
				{"input":"1,3","output":"4"},{"input":"4,4","output":"8"}
			]
		}
	]
}

/pipeline/postTrainingGameInstanceResultToBDWeb :
buildID:1
compileResult:dGhlcmUgYXJlIHRlc3QgZmFpbHVyZXM=
in:["1,2", "2,3", "4,5"]
out:["Mw==", "NQ==", "OQ=="]
expectedOut:["3", "5", "9"]

/api/createJobForInstance :
jobNameForInstance:for_api_build_job_test
gamePipelineScript:bm9kZSgpIHsKCWdpdCB1cmw6IGluc3RhbmNlR2l0VVJMCgoJLy93aXRoRG9ja2VyQ29udGFpbmVyKCdKYXZhJykgewoJCWRlZiBjdXJyZW50Q2hhbGxlbmdlID0gSW50ZWdlci5wYXJzZUludChpbnN0YW5jZUNoYWxsZW5nZSkKICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Q2hhbGxlbmdlID09IDEpIHsKCiAgICAgICAgICAgICAgICAgICAgLy8g57yW6K+R56iL5bqPCiAgICAgICAgICAgICAgICAgICAgc2ggc2NyaXB0OiAnZWNobyAiJChqYXZhYyBQbHVzLmphdmEgMj4mMSkiID4gY29tcGlsZV9yZXN1bHRfMS5vdXQnCiAgICAgICAgICAgICAgICAgICAgY29tcGlsZVJlc3VsdCA9IHJlYWRGaWxlICgnY29tcGlsZV9yZXN1bHRfMS5vdXQnKQoKICAgICAgICAgICAgICAgICAgICAvLyDlpoLmnpznvJbor5HpgJrov4cKICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGlsZVJlc3VsdC50cmltKCkgPT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUmVzdWx0ID0gJ2NvbXBpbGUgc3VjY2Vzc2Z1bGx5JwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBpbnB1dCA9IG5ldyBTdHJpbmdCdWlsZGVyKCdbJykKICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIG91dHB1dCA9IG5ldyBTdHJpbmdCdWlsZGVyKCdbJykKICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGV4cGVjdGVkT3V0ID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQoKICAgICAgICAgICAgICAgICAgICBkZWYgZmlsZU51bXNTdHIgPSBzaCBzY3JpcHQ6ICdjZCAuLi90ZXN0Q2FzZXMvMS8xICYmIGxzIC1sIHxncmVwICJeLSJ8d2MgLWwnLCByZXR1cm5TdGRvdXQ6IHRydWUKICAgICAgICAgICAgICAgICAgICBkZWYgZmlsZU51bXMgPSBJbnRlZ2VyLnBhcnNlSW50KGZpbGVOdW1zU3RyLnRyaW0oKSkKICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBmaWxlTnVtcy8yOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8g6K+75Y+W6L6T5YWl5ZKM6aKE5pyf6L6T5Ye6CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZiBpbkkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMS8nICsgaSArICcuaW4nCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZiBleHBlY3RlZE91dEkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMS8nICsgaSArICcub3V0JwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8g5LuOaW4udHh06K+75YWl77yM56iL5bqP6L+Q6KGM6L6T5Ye66YeN5a6a5ZCR5Yiwb3V0LnR4dAogICAgICAgICAgICAgICAgICAgICAgICBzaCBzY3JpcHQ6ICdlY2hvICIkKGphdmEgUGx1cyA8IC4uL3Rlc3RDYXNlcy8xLzEvJyArIGkgKyAnLmluICAyPiYxKSIgPiBhY3R1YWxfcmVzdWx0XzFfJyArIGkgKyAnLm91dCcKICAgICAgICAgICAgICAgICAgICAgICAgZGVmIG91dEkgPSByZWFkRmlsZSAnYWN0dWFsX3Jlc3VsdF8xXycgKyBpICsgJy5vdXQnCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVjaG/liLDmlofku7bkuK3kvJrlpJrkuIDkuKrmjaLooYznrKYKICAgICAgICAgICAgICAgICAgICAgICAgb3V0SSA9IG91dEkuc3Vic3RyaW5nKDAsIG91dEkubGVuZ3RoKCkgLSAxKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOaLvOaOpeaIkGpzb27moLzlvI8KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQuYXBwZW5kKCJcIiIgKyBpbkkgKyAiXCIsIik7CiAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoIlwiIiArIGJhc2U2NEVuY29kZShvdXRJKSArICJcIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRPdXQuYXBwZW5kKCJcIiIgKyBleHBlY3RlZE91dEkgKyAiXCIsIik7CgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5kZWxldGVDaGFyQXQoaW5wdXQubGVuZ3RoKCkgLSAxKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGlucHV0LmFwcGVuZCgiXSIpOwoKICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQuZGVsZXRlQ2hhckF0KG91dHB1dC5sZW5ndGgoKSAtIDEpOwogICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5hcHBlbmQoIl0iKTsKCiAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRPdXQgPSBleHBlY3RlZE91dC5kZWxldGVDaGFyQXQoZXhwZWN0ZWRPdXQubGVuZ3RoKCkgLSAxKTsKICAgICAgICAgICAgICAgICAgICBleHBlY3RlZE91dCA9IGV4cGVjdGVkT3V0LmFwcGVuZCgiXSIpOwoKICAgICAgICAgICAgICAgICAgICAvLyDnlLHkuK3pl7TlsYLliKTmlq3nu5PmnpzkuYvlkI7lj5HpgIHnu5lCRFdlYgogICAgICAgICAgICAgICAgICAgIHBvc3RHYW1lSW5zdGFuY2VSZXN1bHRUb0JEV2ViKGNvbXBpbGVSZXN1bHQ6IGJhc2U2NEVuY29kZShjb21waWxlUmVzdWx0KSwgb3V0OiBvdXRwdXQsIGluOmlucHV0LCBleHBlY3RlZE91dDpleHBlY3RlZE91dCkKICAgICAgICB9CgkJICAgICAgICBpZiAoY3VycmVudENoYWxsZW5nZSA9PSAyKSB7CgogICAgICAgICAgICAgICAgICAgIC8vIOe8luivkeeoi+W6jwogICAgICAgICAgICAgICAgICAgIHNoIHNjcmlwdDogJ2VjaG8gIiQoamF2YWMgTWludXMuamF2YSAyPiYxKSIgPiBjb21waWxlX3Jlc3VsdF8yLm91dCcKICAgICAgICAgICAgICAgICAgICBjb21waWxlUmVzdWx0ID0gcmVhZEZpbGUgKCdjb21waWxlX3Jlc3VsdF8yLm91dCcpCgogICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOe8luivkemAmui/hwogICAgICAgICAgICAgICAgICAgIGlmIChjb21waWxlUmVzdWx0LnRyaW0oKSA9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVSZXN1bHQgPSAnY29tcGlsZSBzdWNjZXNzZnVsbHknCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGlucHV0ID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQogICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgb3V0cHV0ID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQogICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgZXhwZWN0ZWRPdXQgPSBuZXcgU3RyaW5nQnVpbGRlcignWycpCgogICAgICAgICAgICAgICAgICAgIGRlZiBmaWxlTnVtc1N0ciA9IHNoIHNjcmlwdDogJ2NkIC4uL3Rlc3RDYXNlcy8xLzIgJiYgbHMgLWwgfGdyZXAgIl4tInx3YyAtbCcsIHJldHVyblN0ZG91dDogdHJ1ZQogICAgICAgICAgICAgICAgICAgIGRlZiBmaWxlTnVtcyA9IEludGVnZXIucGFyc2VJbnQoZmlsZU51bXNTdHIudHJpbSgpKQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGZpbGVOdW1zLzI7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAvLyDor7vlj5bovpPlhaXlkozpooTmnJ/ovpPlh7oKICAgICAgICAgICAgICAgICAgICAgICAgZGVmIGluSSA9IHJlYWRGaWxlICcuLi90ZXN0Q2FzZXMvMS8yLycgKyBpICsgJy5pbicKICAgICAgICAgICAgICAgICAgICAgICAgZGVmIGV4cGVjdGVkT3V0SSA9IHJlYWRGaWxlICcuLi90ZXN0Q2FzZXMvMS8yLycgKyBpICsgJy5vdXQnCgogICAgICAgICAgICAgICAgICAgICAgICAvLyDku45pbi50eHTor7vlhaXvvIznqIvluo/ov5DooYzovpPlh7rph43lrprlkJHliLBvdXQudHh0CiAgICAgICAgICAgICAgICAgICAgICAgIHNoIHNjcmlwdDogJ2VjaG8gIiQoamF2YSBNaW51cyA8IC4uL3Rlc3RDYXNlcy8xLzIvJyArIGkgKyAnLmluICAyPiYxKSIgPiBhY3R1YWxfcmVzdWx0XzJfJyArIGkgKyAnLm91dCcKICAgICAgICAgICAgICAgICAgICAgICAgZGVmIG91dEkgPSByZWFkRmlsZSAnYWN0dWFsX3Jlc3VsdF8yXycgKyBpICsgJy5vdXQnCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVjaG/liLDmlofku7bkuK3kvJrlpJrkuIDkuKrmjaLooYznrKYKICAgICAgICAgICAgICAgICAgICAgICAgb3V0SSA9IG91dEkuc3Vic3RyaW5nKDAsIG91dEkubGVuZ3RoKCkgLSAxKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOaLvOaOpeaIkGpzb27moLzlvI8KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQuYXBwZW5kKCJcIiIgKyBpbkkgKyAiXCIsIik7CiAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoIlwiIiArIGJhc2U2NEVuY29kZShvdXRJKSArICJcIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRPdXQuYXBwZW5kKCJcIiIgKyBleHBlY3RlZE91dEkgKyAiXCIsIik7CgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5kZWxldGVDaGFyQXQoaW5wdXQubGVuZ3RoKCkgLSAxKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGlucHV0LmFwcGVuZCgiXSIpOwoKICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQuZGVsZXRlQ2hhckF0KG91dHB1dC5sZW5ndGgoKSAtIDEpOwogICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5hcHBlbmQoIl0iKTsKCiAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRPdXQgPSBleHBlY3RlZE91dC5kZWxldGVDaGFyQXQoZXhwZWN0ZWRPdXQubGVuZ3RoKCkgLSAxKTsKICAgICAgICAgICAgICAgICAgICBleHBlY3RlZE91dCA9IGV4cGVjdGVkT3V0LmFwcGVuZCgiXSIpOwoKICAgICAgICAgICAgICAgICAgICAvLyDnlLHkuK3pl7TlsYLliKTmlq3nu5PmnpzkuYvlkI7lj5HpgIHnu5lCRFdlYgogICAgICAgICAgICAgICAgICAgIHBvc3RHYW1lSW5zdGFuY2VSZXN1bHRUb0JEV2ViKGNvbXBpbGVSZXN1bHQ6IGJhc2U2NEVuY29kZShjb21waWxlUmVzdWx0KSwgb3V0OiBvdXRwdXQsIGluOmlucHV0LCBleHBlY3RlZE91dDpleHBlY3RlZE91dCkKICAgICAgICB9CgkJICAgICAgICBpZiAoY3VycmVudENoYWxsZW5nZSA9PSAzKSB7CgogICAgICAgICAgICAgICAgICAgIC8vIOe8luivkeeoi+W6jwogICAgICAgICAgICAgICAgICAgIHNoIHNjcmlwdDogJ2VjaG8gIiQoamF2YWMgTXVsLmphdmEgMj4mMSkiID4gY29tcGlsZV9yZXN1bHRfMy5vdXQnCiAgICAgICAgICAgICAgICAgICAgY29tcGlsZVJlc3VsdCA9IHJlYWRGaWxlICgnY29tcGlsZV9yZXN1bHRfMy5vdXQnKQoKICAgICAgICAgICAgICAgICAgICAvLyDlpoLmnpznvJbor5HpgJrov4cKICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGlsZVJlc3VsdC50cmltKCkgPT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlUmVzdWx0ID0gJ2NvbXBpbGUgc3VjY2Vzc2Z1bGx5JwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBpbnB1dCA9IG5ldyBTdHJpbmdCdWlsZGVyKCdbJykKICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIG91dHB1dCA9IG5ldyBTdHJpbmdCdWlsZGVyKCdbJykKICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGV4cGVjdGVkT3V0ID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQoKICAgICAgICAgICAgICAgICAgICBkZWYgZmlsZU51bXNTdHIgPSBzaCBzY3JpcHQ6ICdjZCAuLi90ZXN0Q2FzZXMvMS8zICYmIGxzIC1sIHxncmVwICJeLSJ8d2MgLWwnLCByZXR1cm5TdGRvdXQ6IHRydWUKICAgICAgICAgICAgICAgICAgICBkZWYgZmlsZU51bXMgPSBJbnRlZ2VyLnBhcnNlSW50KGZpbGVOdW1zU3RyLnRyaW0oKSkKICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBmaWxlTnVtcy8yOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8g6K+75Y+W6L6T5YWl5ZKM6aKE5pyf6L6T5Ye6CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZiBpbkkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMy8nICsgaSArICcuaW4nCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZiBleHBlY3RlZE91dEkgPSByZWFkRmlsZSAnLi4vdGVzdENhc2VzLzEvMy8nICsgaSArICcub3V0JwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8g5LuOaW4udHh06K+75YWl77yM56iL5bqP6L+Q6KGM6L6T5Ye66YeN5a6a5ZCR5Yiwb3V0LnR4dAogICAgICAgICAgICAgICAgICAgICAgICBzaCBzY3JpcHQ6ICdlY2hvICIkKGphdmEgTXVsIDwgLi4vdGVzdENhc2VzLzEvMy8nICsgaSArICcuaW4gIDI+JjEpIiA+IGFjdHVhbF9yZXN1bHRfM18nICsgaSArICcub3V0JwogICAgICAgICAgICAgICAgICAgICAgICBkZWYgb3V0SSA9IHJlYWRGaWxlICdhY3R1YWxfcmVzdWx0XzNfJyArIGkgKyAnLm91dCcKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWNob+WIsOaWh+S7tuS4reS8muWkmuS4gOS4quaNouihjOespgogICAgICAgICAgICAgICAgICAgICAgICBvdXRJID0gb3V0SS5zdWJzdHJpbmcoMCwgb3V0SS5sZW5ndGgoKSAtIDEpOwoKICAgICAgICAgICAgICAgICAgICAgICAgLy8g5ou85o6l5oiQanNvbuagvOW8jwogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC5hcHBlbmQoIlwiIiArIGluSSArICJcIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgiXCIiICsgYmFzZTY0RW5jb2RlKG91dEkpICsgIlwiLCIpOwogICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZE91dC5hcHBlbmQoIlwiIiArIGV4cGVjdGVkT3V0SSArICJcIiwiKTsKCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGlucHV0LmRlbGV0ZUNoYXJBdChpbnB1dC5sZW5ndGgoKSAtIDEpOwogICAgICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQuYXBwZW5kKCJdIik7CgogICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5kZWxldGVDaGFyQXQob3V0cHV0Lmxlbmd0aCgpIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0LmFwcGVuZCgiXSIpOwoKICAgICAgICAgICAgICAgICAgICBleHBlY3RlZE91dCA9IGV4cGVjdGVkT3V0LmRlbGV0ZUNoYXJBdChleHBlY3RlZE91dC5sZW5ndGgoKSAtIDEpOwogICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkT3V0ID0gZXhwZWN0ZWRPdXQuYXBwZW5kKCJdIik7CgogICAgICAgICAgICAgICAgICAgIC8vIOeUseS4remXtOWxguWIpOaWree7k+aenOS5i+WQjuWPkemAgee7mUJEV2ViCiAgICAgICAgICAgICAgICAgICAgcG9zdEdhbWVJbnN0YW5jZVJlc3VsdFRvQkRXZWIoY29tcGlsZVJlc3VsdDogYmFzZTY0RW5jb2RlKGNvbXBpbGVSZXN1bHQpLCBvdXQ6IG91dHB1dCwgaW46aW5wdXQsIGV4cGVjdGVkT3V0OmV4cGVjdGVkT3V0KQogICAgICAgIH0KCQkgICAgICAgIGlmIChjdXJyZW50Q2hhbGxlbmdlID09IDQpIHsKCiAgICAgICAgICAgICAgICAgICAgLy8g57yW6K+R56iL5bqPCiAgICAgICAgICAgICAgICAgICAgc2ggc2NyaXB0OiAnZWNobyAiJChqYXZhYyBEaXYuamF2YSAyPiYxKSIgPiBjb21waWxlX3Jlc3VsdF80Lm91dCcKICAgICAgICAgICAgICAgICAgICBjb21waWxlUmVzdWx0ID0gcmVhZEZpbGUgKCdjb21waWxlX3Jlc3VsdF80Lm91dCcpCgogICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOe8luivkemAmui/hwogICAgICAgICAgICAgICAgICAgIGlmIChjb21waWxlUmVzdWx0LnRyaW0oKSA9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVSZXN1bHQgPSAnY29tcGlsZSBzdWNjZXNzZnVsbHknCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGlucHV0ID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQogICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgb3V0cHV0ID0gbmV3IFN0cmluZ0J1aWxkZXIoJ1snKQogICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgZXhwZWN0ZWRPdXQgPSBuZXcgU3RyaW5nQnVpbGRlcignWycpCgogICAgICAgICAgICAgICAgICAgIGRlZiBmaWxlTnVtc1N0ciA9IHNoIHNjcmlwdDogJ2NkIC4uL3Rlc3RDYXNlcy8xLzQgJiYgbHMgLWwgfGdyZXAgIl4tInx3YyAtbCcsIHJldHVyblN0ZG91dDogdHJ1ZQogICAgICAgICAgICAgICAgICAgIGRlZiBmaWxlTnVtcyA9IEludGVnZXIucGFyc2VJbnQoZmlsZU51bXNTdHIudHJpbSgpKQogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGZpbGVOdW1zLzI7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAvLyDor7vlj5bovpPlhaXlkozpooTmnJ/ovpPlh7oKICAgICAgICAgICAgICAgICAgICAgICAgZGVmIGluSSA9IHJlYWRGaWxlICcuLi90ZXN0Q2FzZXMvMS80LycgKyBpICsgJy5pbicKICAgICAgICAgICAgICAgICAgICAgICAgZGVmIGV4cGVjdGVkT3V0SSA9IHJlYWRGaWxlICcuLi90ZXN0Q2FzZXMvMS80LycgKyBpICsgJy5vdXQnCgogICAgICAgICAgICAgICAgICAgICAgICAvLyDku45pbi50eHTor7vlhaXvvIznqIvluo/ov5DooYzovpPlh7rph43lrprlkJHliLBvdXQudHh0CiAgICAgICAgICAgICAgICAgICAgICAgIHNoIHNjcmlwdDogJ2VjaG8gIiQoamF2YSBEaXYgPCAuLi90ZXN0Q2FzZXMvMS80LycgKyBpICsgJy5pbiAgMj4mMSkiID4gYWN0dWFsX3Jlc3VsdF80XycgKyBpICsgJy5vdXQnCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZiBvdXRJID0gcmVhZEZpbGUgJ2FjdHVhbF9yZXN1bHRfNF8nICsgaSArICcub3V0JwogICAgICAgICAgICAgICAgICAgICAgICAvLyBlY2hv5Yiw5paH5Lu25Lit5Lya5aSa5LiA5Liq5o2i6KGM56ymCiAgICAgICAgICAgICAgICAgICAgICAgIG91dEkgPSBvdXRJLnN1YnN0cmluZygwLCBvdXRJLmxlbmd0aCgpIC0gMSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyDmi7zmjqXmiJBqc29u5qC85byPCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmFwcGVuZCgiXCIiICsgaW5JICsgIlwiLCIpOwogICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCJcIiIgKyBiYXNlNjRFbmNvZGUob3V0SSkgKyAiXCIsIik7CiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkT3V0LmFwcGVuZCgiXCIiICsgZXhwZWN0ZWRPdXRJICsgIlwiLCIpOwoKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQuZGVsZXRlQ2hhckF0KGlucHV0Lmxlbmd0aCgpIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5hcHBlbmQoIl0iKTsKCiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0LmRlbGV0ZUNoYXJBdChvdXRwdXQubGVuZ3RoKCkgLSAxKTsKICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQuYXBwZW5kKCJdIik7CgogICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkT3V0ID0gZXhwZWN0ZWRPdXQuZGVsZXRlQ2hhckF0KGV4cGVjdGVkT3V0Lmxlbmd0aCgpIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRPdXQgPSBleHBlY3RlZE91dC5hcHBlbmQoIl0iKTsKCiAgICAgICAgICAgICAgICAgICAgLy8g55Sx5Lit6Ze05bGC5Yik5pat57uT5p6c5LmL5ZCO5Y+R6YCB57uZQkRXZWIKICAgICAgICAgICAgICAgICAgICBwb3N0R2FtZUluc3RhbmNlUmVzdWx0VG9CRFdlYihjb21waWxlUmVzdWx0OiBiYXNlNjRFbmNvZGUoY29tcGlsZVJlc3VsdCksIG91dDogb3V0cHV0LCBpbjppbnB1dCwgZXhwZWN0ZWRPdXQ6ZXhwZWN0ZWRPdXQpCiAgICAgICAgfQoJCQoJLy99Cn0KCi8vIOS8oOmAgei/kOihjOe7k+aenOWIsEJEV2ViCmRlZiBwb3N0R2FtZUluc3RhbmNlUmVzdWx0VG9CRFdlYihkZWYgYXJnKXsKICAgIGRlZiBzID0gJ2NvbXBpbGVSZXN1bHQ9JyArIGFyZy5jb21waWxlUmVzdWx0ICsgJyZvdXQ9JyArIGFyZy5vdXQgKwoJCScmaW49JyArIGFyZy5pbiArICcmZXhwZWN0ZWRPdXQ9JyArIGFyZy5leHBlY3RlZE91dAoJZGVmIHJlc3BvbnNlID0gaHR0cFJlcXVlc3QgYWNjZXB0VHlwZTogJ0FQUExJQ0FUSU9OX0pTT05fVVRGOCcsIGNvbnNvbGVMb2dSZXNwb25zZUJvZHk6IHRydWUsIGNvbnRlbnRUeXBlOiAnQVBQTElDQVRJT05fRk9STScsCgkJaHR0cE1vZGU6ICdQT1NUJywgcmVxdWVzdEJvZHk6IHMsIHVybDogImh0dHA6Ly8xMjMuNTkuMTM1Ljc0Ojk5OTkvamVua2lucy1leGVjL3BpcGVsaW5lL3Bvc3RUcmFpbmluZ0dhbWVJbnN0YW5jZVJlc3VsdFRvQkRXZWI/YnVpbGRJRD0ke2J1aWxkSUR9IgoKCWlmIChyZXNwb25zZS5zdGF0dXM9PTI5OSl7CgkgICAgZXJyb3IgcmVzcG9uc2UuY29udGVudAoJfQp9CgpkZWYgYmFzZTY0RW5jb2RlKGFyZykgewoJcmV0dXJuIGFyZy5ieXRlcy5lbmNvZGVCYXNlNjQoKS50b1N0cmluZygpCn0=

/api//buildJobForInstance :
jobNameForInstance:for_api_build_job_test
instanceGitURL:aHR0cHM6Ly9iZGdpdC50cnVzdGllLm5ldC93YW5nd2VpMTAwNjEvY2FsY3VsYXRvci5naXQ=
buildID:1
instanceChallenge:1
