ÿØÿà JFIF    ÿÛ „  ( %!1"%)+...383-7(-.+  -%%--------+------------/----------------------------ÿÀ  ¶" ÿÄ     ÿÄ @    !1AQaq‘¡"±ÁÑð2’BRráS‚ñ3b¢CT²Ò #cÿÄ    ÿÄ '   1!AQ2a"‘±#ÿÚ   ? ò(/p‘—–¢·,M|¯G»R£üešT. ôŸEoCFñ‡ 4ÔkåóxR|µÁ¨ÓDà!Ç´µ˜‡p ÍQ‹§!þž^õWsŒy  åÁ§$á«%ºq˜™JyyË0y«^Ϗ -3ÃÏËÈ£Æ\P’ä„s&•‹Üs üô'àWt¹pñCp$bÚF`·7.^)¾!)ÒÙ˜–ÅÏš^h¾ø³·ìe±ŒaeÖ—Í,e=B}Jéߦ$$½—šÙÜCC¯¶è8β–Åkèwx LÉngT±æ¹£Ócœ¿Í/©Éÿ ‰ÚCÒ­mq;Tt¶–}0"zÖPcd1š­¤tˆ„ÐÓâqú[™öUCŠ2޿د­É(¸ßúçšmW,Ò ºf‹Ån™ÄLêÁ8üÁkÁ€L¥ÍuJ1œôrÂSŒÓöt!7EUíïb)AËi¬â-ÙHk8òÁiXYwÅ)O^"ÇØriÛô{»wRUKÙÏÚlÓ¬€‚’שT ] ªb—ÊîKC^×M“xùäñz¬zJ× {4[¹M'IÆeH1LCWÕ]œûº WDæà°OÅ‚¹c²ÞuA–rL`HšpCez‡V’— Ž‚Ë„–ñ­'µR0ÕÖ=À:±G»C\nÆÉ5*¢ †3šhQ4ýÒi$Õ1"Ü]¢p-q3zcQ$ªö¨¥æf›‘»´ÝÚHá„e²JÇ–iÊ:·à¬Øc5Åk»Laª*wi [0Ówk ¦a¦0Õ²ÅÅ‚T¸’³q:Æ<¹ú Ò˜Æ}2VE•Ѐp¡Ô3Úº …h³^LJºçì¥Ánó|˜ÖˆÎˆ+« ¦dø‘Mº–d\ªDðÛ„Ì×LÝ——Ð9Ç|•FèçVm™¨€™3õS–9Äå¢<̉Ìm¢±`·º˜&Z²ž Ë®D«¶»6™‰©­HÈ Àá«h­i³04æ’hxœi3ï¨(ÓL·†‹¶ËpŒ ƒÜÒ? :õdsÀ –3æÓ·Üjâ¬9—]8n¼&]I F£¼…ì–—Œ0v°LǐÅfÛ2TÖ’aµ˜N@ÖBSÏ^à´4-±°b×nÈÈœÆD=KdŒø…ÄÈK,›ÖR§fjü$^ÔÎ!„6^ s:Üun\ôkCÞò÷<—Lúl Í›G¹ÀPá¼Nc¡šÒ…ÙWͳœ±vÊáЄ×9‹P‰cEØ‘™›µŸP<×g1 º©Ø¬wiÁ^l5× I/';Ë+´Z‡ÓÄFÕp[Èð’ HÄ ó 9¬Dl4“é±Ï”V=^Hð;žLädÉa‚°Ë,#/Ž~²BÔÛ QãñQtIeórVB,ÏÂf‹4#Μc‹É3ZIÖ Œ¢¥·üxa‡Ãçè„jŠ[5 Ä!U?,3žÎ×…ðdÓ÷háŠA‰ìÄ4÷ÃÜZÃE{‰®+W\ZÍE[‰»µk»MÝ­`¢©†˜ÃV‹-f¢¡†¢a«eŠ%«Y¨©q%jâd,Ôq`) ¤¦…šˆ ¦E>0Ùb²t–Ÿ  ÷jsςҒKÈcø(é›;k(’#ôŒQ ™C> õ³M9óºÆµ¤çâ;uÀ)5>RÔ¸fÓ~Ȧ—’-$fe«"FâUˆÊwµPÏu w+"åÉó¨6s™Û9(À¨ù©hE°½†n`m~“@©›p!Vkhµ Á1šbEqqÊ@ºèl›2 –Yã%‘‚hÛ{a¶‡ÅÞM²¬çL34®Çl]®‹ŽØŒm'RÜe35æöˆ­Á­ cP9šeÁköo´L³Ì=p8]”‡B¶,šº|ɏdzXˆØk*ÇÚ{#ñ‰pã(€¶‡9ý'šÜ³½¯kƒ†Â’ëSOƒ•Å®H6+a¢µˆ‹Y¨b˜b+XˆÖ!°u!¢"µˆˆn2ˆ Å0Ä`Å Ô®c(ÓÜGº•Ä»Œ âWî%q.áÐÄ÷î%umÍ£+ÜQ,Vn¦-GphU¸¢X­&,Gt ·K¢ÅÅ·¥RÄÊÉbKn N­R2g$VµÕó Qr#–ÓZUÏð0ÎtÙÀœz ëöo“Îk¯n„T°"SÞ+³/…€½"ižãO%Í%&Δâ‘ËØ´IˆÓ°Ë‰ÞM3.™yçÁzit›`4C`k¢¼á!álÄï sÂ[×!¤l¾æo"ƒIÔ'@ªu)3›ô®“@Z à¾] üœ'‡4¸PÞkÁ-qÄH‰ÓÍBd´ÿ —¹°ÄA&ÊUC„öz‚‚RæŠtf¬>˜ÑidšEçÑL÷áý¡V±h§­c¿¥¨ƒ@g¼…Ýö^ÞËc.ž„æ“I[ ª+·zÐÒÚ,½Ð»¶€C›7jk$๖€Ž¾ÅÙpp¶ÍþéΤ ½ØÎŒq ñpæžÅ¥#Øâ49ÃÂK^MYV“,¶Éz_òæ:…;Õ«¦I3âJ£¤û5$7Èxün\â]Êe¯(Ÿ&Ž‹¶2<6Ćf× æ¢ƱqWı[(ÙÂŽç‚T7¨@ÈÉÍß‚ïÙ"&3TYlGށ†)†#5ŠA©^T2ÆÁ†)©†©†¤yGXÁ†©"†)©¼ÅV WS†#©]R–r‹q5ÕbâWþBh¯u+ªÅÄ×ü„nÑ^êkªÁj‰jeœWˆÕÕ`µDµ2Ì+Ä µDµµ5Ô{¤Þ0RF’H÷AÛ<ÊÁ§ ƈæ0Ñ£ê4 öÚµ[¬/1²€â<-¬šö²r×0o×w ´xÐÒË„ g01¬„åEM蛇Ã\6µE›‘fÙO k÷CºnÓ1`iîÒ² áÂ!ÑLÄÿ ³¬\õ*:M=Ç»c‹2[‰ØsÕLò\ŒK L^™üÄN\¶#» Ç\……ßïIœÉ$¸ÎñÍ®ÔHÇ Ûí/´>Li”„†g^$ 7NÍÑÑ2M2ªNg=k½Ð}Ÿl6‡ —JWˆ”ÞéT·+µ¦üÂFè¢Vs6ýÆ4»2+2IÝ9ô9®ÇGÙÇ1+Ä8;*Õ§ž½D*îÑWÚçá3Ma¤·ˆ¥t}š²Ü…Q+Æüµ8HíS”üxGéÁˆ¦Ël„éÈ 5 µÄƒ6äÜ(kIš¯S†fÖ&¸®×v|Äyˆ*禌Éù@7-®Ä[]ÎÖ¿ê`º…=:…žJVnݳvðÖKE¼‚ »mà ÷f®:Ë ™–4rð¡4` ܹçž~‹C=œ…¾Ïj|VDtK.ƒ"9 Ï ­–éXá³6WÒïIL-Ї Ç cache_exception.php000064400000003445152266624530010417 0ustar00. namespace core_cache\exception; use core\exception\moodle_exception; /** * A cache exception class. Just allows people to catch cache exceptions. * * @package core_cache * @category cache * @copyright 2012 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class cache_exception extends moodle_exception { /** * Constructs a new exception * * @param string $errorcode * @param string $module * @param string $link * @param mixed $a * @param mixed $debuginfo */ public function __construct($errorcode, $module = 'cache', $link = '', $a = null, $debuginfo = null) { // This may appear like a useless override but you will notice that we have set a MUCH more useful default for $module. parent::__construct($errorcode, $module, $link, $a, $debuginfo); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(cache_exception::class, \cache_exception::class); invalid_parameter_exception.php000064400000003247152267210600013030 0ustar00. namespace core\exception; /** * Exception indicating malformed parameter problem. * This exception is not supposed to be thrown when processing * user submitted data in forms. It is more suitable * for WS and other low level stuff. * * @package core * @subpackage exception * @copyright 2009 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class invalid_parameter_exception extends moodle_exception { /** * Constructor. * * @param string $debuginfo some detailed information */ public function __construct($debuginfo = null) { parent::__construct('invalidparameter', 'debug', '', null, $debuginfo); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(invalid_parameter_exception::class, \invalid_parameter_exception::class); coding_exception.php000064400000003251152267210600010600 0ustar00. namespace core\exception; /** * Exception indicating programming error, must be fixed by a programer. For example * a core API might throw this type of exception if a plugin calls it incorrectly. * * @package core * @subpackage exception * @copyright 2008 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class coding_exception extends moodle_exception { /** * Constructor. * * @param string $hint short description of problem * @param string $debuginfo detailed information how to fix problem */ public function __construct($hint, $debuginfo = null) { parent::__construct('codingerror', 'debug', '', $hint, $debuginfo); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(coding_exception::class, \coding_exception::class); required_capability_exception.php000064400000004407152267210600013362 0ustar00. namespace core\exception; /** * Exceptions indicating user does not have permissions to do something * and the execution can not continue. * * @package core * @subpackage exception * @copyright 2009 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class required_capability_exception extends moodle_exception { /** * Constructor. * * @param \core\context $context The context used for the capability check * @param string $capability The required capability * @param string $errormessage The error message to show the user * @param string $stringfile */ public function __construct($context, $capability, $errormessage, $stringfile) { $capabilityname = get_capability_string($capability); if ($context->contextlevel == CONTEXT_MODULE && preg_match('/:view$/', $capability)) { // Cannot redirect to mod/xx/view.php because we most probably do not have cap to view it. // Redirect to the course instead. $parentcontext = $context->get_parent_context(); $link = $parentcontext->get_url(); } else { $link = $context->get_url(); } parent::__construct($errormessage, $stringfile, $link, $capabilityname); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(required_capability_exception::class, \required_capability_exception::class); not_found_exception.php000064400000003300152267210600011323 0ustar00. namespace core\exception; use core\router\response\not_found_response; /** * An exception to describe the case where a requested item was not found. * * @package core * @copyright 2024 Andrew Lyons * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class not_found_exception extends \moodle_exception implements response_aware_exception { /** * Constructor for a new not found exception. * * @param string $itemtype The type of item that was not found. * @param string $identifier The identifier of the item that was not found. */ public function __construct( string $itemtype, string $identifier, ) { parent::__construct( errorcode: 'itemnotfound', a: [ 'itemtype' => $itemtype, 'identifier' => $identifier, ], ); } #[\Override] public function get_response_classname(): string { return not_found_response::class; } } invalid_state_exception.php000064400000003640152267210600012165 0ustar00. namespace core\exception; /** * An exception that indicates something really weird happened. For example, * if you do switch ($context->contextlevel), and have one case for each * CONTEXT_... constant. You might throw an invalid_state_exception in the * default case, to just in case something really weird is going on, and * $context->contextlevel is invalid - rather than ignoring this possibility. * * @package core * @subpackage exception * @copyright 2009 onwards Martin Dougiamas {@link http://moodle.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class invalid_state_exception extends moodle_exception { /** * Constructor. * * @param string $hint short description of problem * @param string $debuginfo optional more detailed information */ public function __construct($hint, $debuginfo = null) { parent::__construct('invalidstatedetected', 'debug', '', $hint, $debuginfo); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(invalid_state_exception::class, \invalid_state_exception::class); webservice_parameter_exception.php000064400000003556152267210600013543 0ustar00. namespace core\exception; /** * Web service parameter exception class. * * @deprecated since Moodle 2.2 - use moodle exception instead * This exception must be thrown to the web service client when a web service parameter is invalid * The error string is gotten from webservice.php * @package core * @subpackage exception * @copyright Jerome Mouneyrac * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class webservice_parameter_exception extends moodle_exception { /** * Constructor. * * @param string $errorcode The name of the string from webservice.php to print * @param string $a The name of the parameter * @param string $debuginfo Optional information to aid debugging */ public function __construct($errorcode = null, $a = '', $debuginfo = null) { parent::__construct($errorcode, 'webservice', '', $a, $debuginfo); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(webservice_parameter_exception::class, \webservice_parameter_exception::class); invalid_response_exception.php000064400000003210152267210600012674 0ustar00. namespace core\exception; /** * Exception indicating malformed response problem. * This exception is not supposed to be thrown when processing * user submitted data in forms. It is more suitable * for WS and other low level stuff. * * @package core * @subpackage exception * @copyright Jerome Mouneyrac * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class invalid_response_exception extends moodle_exception { /** * Constructor. * * @param string $debuginfo some detailed information */ public function __construct($debuginfo = null) { parent::__construct('invalidresponse', 'debug', '', null, $debuginfo); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(invalid_response_exception::class, \invalid_response_exception::class); file_serving_exception.php000064400000003014152267210600012006 0ustar00. namespace core\exception; /** * An exception that indicates that file can not be served * * @package core * @subpackage exception * @copyright 2010 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class file_serving_exception extends moodle_exception { /** * Constructor. * * @param string $debuginfo optional more detailed information */ public function __construct($debuginfo = null) { parent::__construct('cannotservefile', 'error', '', null, $debuginfo); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(file_serving_exception::class, \file_serving_exception::class); invalid_dataroot_permissions.php000064400000003065152267210600013240 0ustar00. namespace core\exception; /** * An exception that indicates incorrect permissions in $CFG->dataroot * * @package core * @subpackage exception * @copyright 2010 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class invalid_dataroot_permissions extends moodle_exception { /** * Constructor. * * @param string $debuginfo optional more detailed information */ public function __construct($debuginfo = null) { parent::__construct('invaliddatarootpermissions', 'error', '', null, $debuginfo); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(invalid_dataroot_permissions::class, \invalid_dataroot_permissions::class); require_login_session_timeout_exception.php000064400000002765152267210600015523 0ustar00. namespace core\exception; /** * Session timeout exception. * * This exception is thrown from require_login() * * @package core * @subpackage exception * @copyright 2015 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class require_login_session_timeout_exception extends require_login_exception { /** * Constructor */ public function __construct() { moodle_exception::__construct('sessionerroruser', 'error'); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(require_login_session_timeout_exception::class, \require_login_session_timeout_exception::class); access_denied_exception.php000064400000002304152267210600012104 0ustar00. namespace core\exception; use core\router\response\access_denied_response; /** * An exception to describe the case where access has been denied to a resource. * * @package core * @copyright Andrew Lyons * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class access_denied_exception extends moodle_exception implements response_aware_exception { #[\Override] public function get_response_classname(): string { return access_denied_response::class; } } moodle_exception.php000064400000007730152267210600010622 0ustar00. namespace core\exception; /** * Base Moodle Exception class * * Although this class is defined here, you cannot throw a moodle_exception until * after moodlelib.php has been included (which will happen very soon). * * @package core * @subpackage exception * @copyright 2008 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class moodle_exception extends \Exception { /** @var string The name of the string from error.php to print */ public $errorcode; /** @var string The name of module */ public $module; /** @var mixed Extra words and phrases that might be required in the error string */ public $a; /** * The url where the user will be prompted to continue. If no url is provided the user will be directed to the site index page. * * @var string */ public $link; /** @var string Optional information to aid the debugging process */ public $debuginfo; /** * Constructor * @param string $errorcode The name of the string from error.php to print * @param string $module name of module * @param string $link The url where the user will be prompted to continue. * If no url is provided the user will be directed to the site index page. * @param mixed $a Extra words and phrases that might be required in the error string * @param string $debuginfo optional debugging information */ public function __construct($errorcode, $module = '', $link = '', $a = null, $debuginfo = null) { global $CFG; if (empty($module) || $module == 'moodle' || $module == 'core') { $module = 'error'; } $this->errorcode = $errorcode; $this->module = $module; $this->link = $link; $this->a = $a; $this->debuginfo = is_null($debuginfo) ? null : (string)$debuginfo; if (get_string_manager()->string_exists($errorcode, $module)) { $message = get_string($errorcode, $module, $a); $haserrorstring = true; } else { $message = $module . '/' . $errorcode; $haserrorstring = false; } $isinphpunittest = (defined('PHPUNIT_TEST') && PHPUNIT_TEST); $hasdebugdeveloper = ( isset($CFG->debugdisplay) && isset($CFG->debug) && $CFG->debugdisplay && $CFG->debug === DEBUG_DEVELOPER ); if ($debuginfo) { if ($isinphpunittest || $hasdebugdeveloper) { $message = "$message ($debuginfo)"; } } if (!$haserrorstring && $isinphpunittest) { // Append the contents of $a to $debuginfo so helpful information isn't lost. // This emulates what {@link get_exception_info()} does. Unfortunately that // function is not used by phpunit. $message .= PHP_EOL . '$a contents: ' . print_r($a, true); // phpcs:ignore moodle.PHP.ForbiddenFunctions.Found } parent::__construct($message, 0); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(moodle_exception::class, \moodle_exception::class); response_aware_exception.php000064400000002244152267210600012353 0ustar00. namespace core\exception; /** * An exception which is aware of the response class that should be used to handle it. * * @package core * @copyright 2024 Andrew Lyons * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ interface response_aware_exception { /** * Get the class name of the response that should be used to handle this exception. * * @return string */ public function get_response_classname(): string; } require_login_exception.php000064400000003057152267210600012205 0ustar00. namespace core\exception; /** * Course/activity access exception. * * This exception is thrown from require_login() * * @package core * @subpackage exception * @copyright 2010 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class require_login_exception extends moodle_exception { /** * Constructor. * * @param string $debuginfo Information to aid the debugging process */ public function __construct($debuginfo) { parent::__construct('requireloginerror', 'error', '', null, $debuginfo); } } // Alias this class to the old name. // This file will be autoloaded by the legacyclasses autoload system. // In future all uses of this class will be corrected and the legacy references will be removed. class_alias(require_login_exception::class, \require_login_exception::class);