// Maybe old errors have been fixed.
 $scannedpage->status = 'ok';
 $DB->set_field('offlinequiz_scanned_pages', 'status', 'ok', array('id' => $scannedpage->id));
 $scannedpage->error = '';
 $DB->set_field('offlinequiz_scanned_pages', 'error', '', array('id' => $scannedpage->id));
 $groupnumber = required_param('groupnumber', PARAM_TEXT);
 $groupnumber = intval($groupnumber);
 // Old code  if (!property_exists($scannedpage, 'groupnumber') || $scannedpage->groupnumber == 0) {.
 $scanner->set_group($groupnumber);
 $scannedpage->groupnumber = $groupnumber;
 // O=======================================================.
 // O Adjust the maxanswers of the scanner according to the offlinequiz group
 // O=======================================================.
 if ($newgroup = $DB->get_record('offlinequiz_groups', array('offlinequizid' => $offlinequiz->id, 'number' => $groupnumber))) {
     $maxanswers = offlinequiz_get_maxanswers($offlinequiz, array($newgroup));
     $scannedpage = $scanner->set_maxanswers($maxanswers, $scannedpage);
 }
 $usernumber = required_param('usernumber', PARAM_TEXT);
 $xes = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
 // If we have only X's then we ignore the input.
 $userkey = $offlinequizconfig->ID_prefix . $usernumber . $offlinequizconfig->ID_postfix;
 if ($usernumber == substr($xes, 0, $offlinequizconfig->ID_digits)) {
     $scannedpage->userkey = null;
     $DB->set_field('offlinequiz_scanned_pages', 'userkey', null, array('id' => $scannedpage->id));
 } else {
     $scannedpage->userkey = $userkey;
 }
 // Now we check the scanned page with potentially updated information.
 // Removed $scannedpage = offlinequiz_check_for_changed_groupnumber($offlinequiz, $scanner, $scannedpage,
 //   $coursecontext, $questionsperpage, $offlinequizconfig);.
 $oldresultid = $scannedpage->resultid;