$arItemsUpdated = array();
 if (StrLen($errorMessage) <= 0) {
     if (isset($arStepUpdateInfo["DATA"]["#"]["ITEM"])) {
         for ($i = 0, $cnt = count($arStepUpdateInfo["DATA"]["#"]["ITEM"]); $i < $cnt; $i++) {
             $arItemsUpdated[$arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["NAME"]] = $arStepUpdateInfo["DATA"]["#"]["ITEM"][$i]["@"]["VALUE"];
         }
     }
 }
 if (StrLen($errorMessage) <= 0) {
     if (isset($arStepUpdateInfo["DATA"]["#"]["NOUPDATES"])) {
         CUpdateClient::ClearUpdateFolder($_SERVER["DOCUMENT_ROOT"] . "/bitrix/updates/" . $temporaryUpdatesDir);
         CUpdateClient::AddMessage2Log("Finish - NOUPDATES", "STEP");
         echo "FIN";
     } else {
         if (strlen($errorMessage) <= 0) {
             if (!CUpdateClient::UpdateStepModules($temporaryUpdatesDir, $errorMessage)) {
                 $errorMessage .= "[CL04] " . GetMessage("SUPA_ASE_UPD") . ". ";
                 CUpdateClient::AddMessage2Log(GetMessage("SUPA_ASE_UPD"), "CL04");
             }
         }
         if (StrLen($errorMessage) > 0) {
             CUpdateClient::AddMessage2Log("Error: " . $errorMessage, "UPD_ERROR");
             echo "ERR" . $errorMessage;
         } else {
             echo "STP";
             echo count($arItemsUpdated) . "|";
             $bFirst = True;
             foreach ($arItemsUpdated as $key => $value) {
                 CUpdateClient::AddMessage2Log("Full loaded: " . $key . (StrLen($value) > 0 ? "(" . $value . ")" : ""), "UPD_SUCCESS");
                 echo ($bFirst ? "" : ", ") . $key . (StrLen($value) > 0 ? "(" . $value . ")" : "");
                 $bFirst = False;
 }
 if (strlen($errorMessage) <= 0) {
     $temporaryUpdatesDir = "";
     if (!CUpdateClient::UnGzipArchive($temporaryUpdatesDir, $errorMessage, true)) {
         $errorMessage .= "[CL02] " . GetMessage("SUPC_ME_PACK") . ". ";
         CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_PACK"), "CL02");
     }
 }
 if (strlen($errorMessage) <= 0) {
     if (!CUpdateClient::CheckUpdatability($temporaryUpdatesDir, $errorMessage)) {
         $errorMessage .= "[CL03] " . GetMessage("SUPC_ME_CHECK") . ". ";
         CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_CHECK"), "CL03");
     }
 }
 if (strlen($errorMessage) <= 0) {
     if (!CUpdateClient::UpdateStepModules($temporaryUpdatesDir, $errorMessage, defined("US_BITRIX24_MODE") && US_BITRIX24_MODE)) {
         $errorMessage .= "[CL04] " . GetMessage("SUPC_ME_UPDATE") . ". ";
         CUpdateClient::AddMessage2Log(GetMessage("SUPC_ME_UPDATE"), "CL04");
     }
 }
 if (strlen($errorMessage) > 0) {
     CUpdateClient::AddMessage2Log("Error: " . $errorMessage, "UPD_ERROR");
     echo "ERR" . $errorMessage;
 } else {
     if (defined("US_BITRIX24_MODE") && US_BITRIX24_MODE) {
         COption::SetOptionString("main", "BITRIX24_VERSIONS", "");
         @unlink($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/versions.php");
     }
     echo "STP";
     echo count($arUpdateDescription["DATA"]["#"]["ITEM"]) . "|";
     $bFirst = True;