1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
errorReporting = error_reporting(); } /** * Destructor * * stores errors in session */ public function __destruct() { if (! isset($_SESSION['errors'])) { $_SESSION['errors'] = []; } // remember only not displayed errors foreach ($this->errors as $key => $error) { /** * We don't want to store all errors here as it would * explode user session. */ if (count($_SESSION['errors']) >= 10) { $error = new Error( 0, __('Too many error messages, some are not displayed.'), __FILE__, __LINE__ ); $_SESSION['errors'][$error->getHash()] = $error; break; } if ((! ($error instanceof Error)) || $error->isDisplayed()) { continue; } $_SESSION['errors'][$key] = $error; } } /** * Toggles location hiding * * @param bool $hide Whether to hide */ public function setHideLocation(bool $hide): void { $this->hideLocation = $hide; } /** * returns array with all errors * * @param bool $check Whether to check for session errors * * @return Error[] */ public function getErrors(bool $check = true): array { if ($check) { $this->checkSavedErrors(); } return $this->errors; } /** * returns the errors occurred in the current run only. * Does not include the errors saved in the SESSION * * @return Error[] */ public function getCurrentErrors(): array { return $this->errors; } /** * Pops recent errors from the storage * * @param int $count Old error count (amount of errors to splice) * * @return Error[] The non spliced elements (total-$count) */ public function sliceErrors(int $count): array { // store the errors before any operation, example number of items: 10 $errors = $this->getErrors(false); // before array_splice $this->errors has 10 elements // cut out $count items out, let's say $count = 9 // $errors will now contain 10 - 9 = 1 elements // $this->errors will contain the 9 elements left $this->errors = array_splice($errors, 0, $count); return $errors; } /** * Error handler - called when errors are triggered/occurred * * This calls the addError() function, escaping the error string * Ignores the errors wherever Error Control Operator (@) is used. * * @param int $errno error number * @param string $errstr error string * @param string $errfile error file * @param int $errline error line * * @throws ErrorException */ public function handleError( int $errno, string $errstr, string $errfile, int $errline ): void { global $cfg; if (Util::isErrorReportingAvailable()) { /** * Check if Error Control Operator (@) was used, but still show * user errors even in this case. * See: https://github.com/phpmyadmin/phpmyadmin/issues/16729 */ $isSilenced = ! (error_reporting() & $errno); if (PHP_VERSION_ID < 80000) { $isSilenced = error_reporting() == 0; } if (isset($cfg['environment']) && $cfg['environment'] === 'development' && ! $isSilenced) { throw new ErrorException($errstr, 0, $errno, $errfile, $errline); } if ( $isSilenced && $this->errorReporting != 0 && ($errno & (E_USER_WARNING | E_USER_ERROR | E_USER_NOTICE | E_USER_DEPRECATED)) == 0 ) { return; } } else { if (($errno & (E_USER_WARNING | E_USER_ERROR | E_USER_NOTICE | E_USER_DEPRECATED)) == 0) { return; } } $this->addError($errstr, $errno, $errfile, $errline, true); } /** * Hides exception if it's not in the development environment. */ public function handleException(Throwable $exception): void { $config = $GLOBALS['config'] ?? null; $this->hideLocation = ! $config instanceof Config || $config->get('environment') !== 'development'; $this->addError( get_class($exception) . ': ' . $exception->getMessage(), (int) $exception->getCode(), $exception->getFile(), $exception->getLine() ); } /** * Add an error; can also be called directly (with or without escaping) * * The following error types cannot be handled with a user defined function: * E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, * E_COMPILE_WARNING, * and most of E_STRICT raised in the file where set_error_handler() is called. * * Do not use the context parameter as we want to avoid storing the * complete $GLOBALS inside $_SESSION['errors'] * * @param string $errstr error string * @param int $errno error number * @param string $errfile error file * @param int $errline error line * @param bool $escape whether to escape the error string */ public function addError( string $errstr, int $errno, string $errfile, int $errline, bool $escape = true ): void { if ($escape) { $errstr = htmlspecialchars($errstr); } // create error object $error = new Error($errno, $errstr, $errfile, $errline); $error->setHideLocation($this->hideLocation); // Deprecation errors will be shown in development environment, as they will have a different number. if ($error->getNumber() !== E_DEPRECATED) { // do not repeat errors $this->errors[$error->getHash()] = $error; } switch ($error->getNumber()) { case E_STRICT: case E_DEPRECATED: case E_NOTICE: case E_WARNING: case E_CORE_WARNING: case E_COMPILE_WARNING: case E_RECOVERABLE_ERROR: /* Avoid rendering BB code in PHP errors */ $error->setBBCode(false); break; case E_USER_NOTICE: case E_USER_WARNING: case E_USER_ERROR: case E_USER_DEPRECATED: // just collect the error // display is called from outside break; case E_ERROR: case E_PARSE: case E_CORE_ERROR: case E_COMPILE_ERROR: default: // FATAL error, display it and exit $this->dispFatalError($error); if (! defined('TESTSUITE')) { exit; } } } /** * trigger a custom error * * @param string $errorInfo error message * @param int $errorNumber error number * @psalm-param 256|512|1024|16384 $errorNumber */ public function triggerError(string $errorInfo, int $errorNumber = E_USER_NOTICE): void { // we could also extract file and line from backtrace // and call handleError() directly trigger_error($errorInfo, $errorNumber); } /** * display fatal error and exit * * @param Error $error the error */ protected function dispFatalError(Error $error): void { if (! headers_sent()) { $this->dispPageStart($error); } echo $error->getDisplay(); $this->dispPageEnd(); if (! defined('TESTSUITE')) { exit; } } /** * Displays user errors not displayed */ public function dispUserErrors(): void { echo $this->getDispUserErrors(); } /** * Renders user errors not displayed */ public function getDispUserErrors(): string { $retval = ''; foreach ($this->getErrors() as $error) { if (! $error->isUserError() || $error->isDisplayed()) { continue; } $retval .= $error->getDisplay(); } return $retval; } /** * display HTML header * * @param Error $error the error */ protected function dispPageStart(?Error $error = null): void { ResponseRenderer::getInstance()->disable(); echo ''; if ($error) { echo $error->getTitle(); } else { echo 'phpMyAdmin error reporting page'; } echo ''; } /** * display HTML footer */ protected function dispPageEnd(): void { echo ''; } /** * renders errors not displayed */ public function getDispErrors(): string { $retval = ''; // display errors if SendErrorReports is set to 'ask'. if ($GLOBALS['cfg']['SendErrorReports'] !== 'never') { foreach ($this->getErrors() as $error) { if ($error->isDisplayed()) { continue; } $retval .= $error->getDisplay(); } } else { $retval .= $this->getDispUserErrors(); } // if preference is not 'never' and // there are 'actual' errors to be reported if ($GLOBALS['cfg']['SendErrorReports'] !== 'never' && $this->countErrors() != $this->countUserErrors()) { // add report button. $retval .= '
'php', 'send_error_report' => '1', 'server' => $GLOBALS['server'], ]); $retval .= '' . '' . ''; if ($GLOBALS['cfg']['SendErrorReports'] === 'ask') { // add ignore buttons $retval .= ''; } $retval .= ''; $retval .= '
'; } return $retval; } /** * look in session for saved errors */ protected function checkSavedErrors(): void { if (! isset($_SESSION['errors'])) { return; } // restore saved errors foreach ($_SESSION['errors'] as $hash => $error) { if (! ($error instanceof Error) || isset($this->errors[$hash])) { continue; } $this->errors[$hash] = $error; } // delete stored errors $_SESSION['errors'] = []; unset($_SESSION['errors']); } /** * return count of errors * * @param bool $check Whether to check for session errors * * @return int number of errors occurred */ public function countErrors(bool $check = true): int { return count($this->getErrors($check)); } /** * return count of user errors * * @return int number of user errors occurred */ public function countUserErrors(): int { $count = 0; if ($this->countErrors()) { foreach ($this->getErrors() as $error) { if (! $error->isUserError()) { continue; } $count++; } } return $count; } /** * whether use errors occurred or not */ public function hasUserErrors(): bool { return (bool) $this->countUserErrors(); } /** * whether errors occurred or not */ public function hasErrors(): bool { return (bool) $this->countErrors(); } /** * number of errors to be displayed * * @return int number of errors to be displayed */ public function countDisplayErrors(): int { if ($GLOBALS['cfg']['SendErrorReports'] !== 'never') { return $this->countErrors(); } return $this->countUserErrors(); } /** * whether there are errors to display or not */ public function hasDisplayErrors(): bool { return (bool) $this->countDisplayErrors(); } /** * Deletes previously stored errors in SESSION. * Saves current errors in session as previous errors. * Required to save current errors in case 'ask' */ public function savePreviousErrors(): void { unset($_SESSION['prev_errors']); $_SESSION['prev_errors'] = $GLOBALS['errorHandler']->getCurrentErrors(); } /** * Function to check if there are any errors to be prompted. * Needed because user warnings raised are * also collected by global error handler. * This distinguishes between the actual errors * and user errors raised to warn user. */ public function hasErrorsForPrompt(): bool { return $GLOBALS['cfg']['SendErrorReports'] !== 'never' && $this->countErrors() != $this->countUserErrors(); } /** * Function to report all the collected php errors. * Must be called at the end of each script * by the $GLOBALS['errorHandler'] only. */ public function reportErrors(): void { // if there're no actual errors, if (! $this->hasErrors() || $this->countErrors() == $this->countUserErrors()) { // then simply return. return; } // Delete all the prev_errors in session & store new prev_errors in session $this->savePreviousErrors(); $response = ResponseRenderer::getInstance(); $jsCode = ''; if ($GLOBALS['cfg']['SendErrorReports'] === 'always') { if ($response->isAjax()) { // set flag for automatic report submission. $response->addJSON('sendErrorAlways', '1'); } else { // send the error reports asynchronously & without asking user $jsCode .= '$("#pma_report_errors_form").submit();' . 'Functions.ajaxShowMessage( Messages.phpErrorsBeingSubmitted, false );'; // js code to appropriate focusing, $jsCode .= '$("html, body").animate({ scrollTop:$(document).height() }, "slow");'; } } elseif ($GLOBALS['cfg']['SendErrorReports'] === 'ask') { //ask user whether to submit errors or not. if (! $response->isAjax()) { // js code to show appropriate msgs, event binding & focusing. $jsCode = 'Functions.ajaxShowMessage(Messages.phpErrorsFound);' . '$("#pma_ignore_errors_popup").on("click", function() { Functions.ignorePhpErrors() });' . '$("#pma_ignore_all_errors_popup").on("click", function() { Functions.ignorePhpErrors(false) });' . '$("#pma_ignore_errors_bottom").on("click", function(e) { e.preventDefault(); Functions.ignorePhpErrors() });' . '$("#pma_ignore_all_errors_bottom").on("click", function(e) { e.preventDefault(); Functions.ignorePhpErrors(false) });' . '$("html, body").animate({ scrollTop:$(document).height() }, "slow");'; } } // The errors are already sent from the response. // Just focus on errors division upon load event. $response->getFooter()->getScripts()->addCode($jsCode); } }