diff --git a/dev/charData.php b/dev/charData.php index 68d40980..519c85f3 100644 --- a/dev/charData.php +++ b/dev/charData.php @@ -1,4 +1,4 @@ - array( + 'class' => 'char-ws', 'codePoint' => '00A0', 'desc' => 'NBSP', 'replaceWith' => '\u{00a0}', + 'similarTo' => ' ', ), "\xE1\x9A\x80" => array( + 'class' => 'char-ws', 'codePoint' => '1680', 'desc' => 'Ogham Space Mark', 'replaceWith' => '\u{1680}', + 'similarTo' => ' ', ), "\xE1\xA0\x8E" => array( + 'class' => 'char-ws', 'codePoint' => '180E', - 'desc' => 'Mongolian Vowel Separator', + 'desc' => 'Mongolian Vowel Separator', // not included in Separator Category (Other, Format) 'replaceWith' => '\u{180e}', + 'similarTo' => '', ), "\xE2\x80\x80" => array( + 'class' => 'char-ws', 'codePoint' => '2000', 'desc' => 'En Quad', 'replaceWith' => '\u{2000}', + 'similarTo' => ' ', ), "\xE2\x80\x81" => array( + 'class' => 'char-ws', 'codePoint' => '2001', 'desc' => 'Em Quad', 'replaceWith' => '\u{2001}', + 'similarTo' => ' ', ), "\xE2\x80\x82" => array( + 'class' => 'char-ws', 'codePoint' => '2002', 'desc' => 'En Space', 'replaceWith' => '\u{2002}', + 'similarTo' => ' ', ), "\xE2\x80\x83" => array( + 'class' => 'char-ws', 'codePoint' => '2003', 'desc' => 'Em Space', 'replaceWith' => '\u{2003}', + 'similarTo' => ' ', ), "\xE2\x80\x84" => array( + 'class' => 'char-ws', 'codePoint' => '2004', - 'desc' => 'Three-Per-Em Space', + 'desc' => 'Three-Per-Em (thick) Space', 'replaceWith' => '\u{2004}', + 'similarTo' => ' ', ), "\xE2\x80\x85" => array( + 'class' => 'char-ws', 'codePoint' => '2005', - 'desc' => 'Four-Per-Em Space', + 'desc' => 'Four-Per-Em (mid) Space', 'replaceWith' => '\u{2005}', + 'similarTo' => ' ', ), "\xE2\x80\x86" => array( + 'class' => 'char-ws', 'codePoint' => '2006', 'desc' => 'Six-Per-Em Space', 'replaceWith' => '\u{2006}', + 'similarTo' => ' ', ), "\xE2\x80\x87" => array( + 'class' => 'char-ws', 'codePoint' => '2007', 'desc' => 'Figure Space', 'replaceWith' => '\u{2007}', + 'similarTo' => ' ', ), "\xE2\x80\x88" => array( + 'class' => 'char-ws', 'codePoint' => '2008', 'desc' => 'Punctuation Space', 'replaceWith' => '\u{2008}', + 'similarTo' => ' ', ), "\xE2\x80\x89" => array( + 'class' => 'char-ws', 'codePoint' => '2009', 'desc' => 'Thin Space', 'replaceWith' => '\u{2009}', + 'similarTo' => ' ', ), "\xE2\x80\x8A" => array( + 'class' => 'char-ws', 'codePoint' => '200A', 'desc' => 'Hair Space', 'replaceWith' => '\u{200a}', + 'similarTo' => ' ', ), "\xE2\x80\x8B" => array( + 'class' => 'char-ws', 'codePoint' => '200B', - 'desc' => 'Zero Width Space', // not included in Separator Category + 'desc' => 'Zero Width Space', // not included in Separator Category (Other, Format) 'replaceWith' => '\u{200b}', + 'similarTo' => '', + ), + "\xE2\x80\x8C" => array( + 'class' => 'char-ws', + 'codePoint' => '200C', + 'desc' => 'Zero Width Non-Joiner', // not included in Separator Category (Other, Format) + 'replaceWith' => '\u{200c}', + 'similarTo' => '', + ), + "\xE2\x80\x8D" => array( + 'class' => 'char-ws', + 'codePoint' => '200D', + 'desc' => 'Zero Width Joiner', // not included in Separator Category (Other, Format) + 'replaceWith' => '\u{200d}', + 'similarTo' => '', ), "\xE2\x80\xA8" => array( + 'class' => 'char-ws', 'codePoint' => '2028', 'desc' => 'Line Separator', 'replaceWith' => '\u{2028}', + 'similarTo' => "\n", ), "\xE2\x80\xA9" => array( + 'class' => 'char-ws', 'codePoint' => '2029', 'desc' => 'Paragraph Separator', 'replaceWith' => '\u{2029}', + 'similarTo' => "\n", ), "\xE2\x80\xAF" => array( + 'class' => 'char-ws', 'codePoint' => '202F', 'desc' => 'Narrow No-Break Space', 'replaceWith' => '\u{202f}', + 'similarTo' => ' ', ), "\xE2\x81\x9F" => array( + 'class' => 'char-ws', 'codePoint' => '202F', 'desc' => 'Medium Mathematical Space', 'replaceWith' => '\u{205f}', + 'similarTo' => ' ', + ), + "\xE2\x81\xA0" => array( + 'class' => 'char-ws', + 'codePoint' => '2060', + 'desc' => 'Word Joiner', // Not included in Separator Category (Other, Format) + 'replaceWith' => '\u{2060}', + 'similarTo' => '', ), "\xE3\x80\x80" => array( + 'class' => 'char-ws', 'codePoint' => '3000', 'desc' => 'Ideographic Space', 'replaceWith' => '\u{3000}', + 'similarTo' => ' ', ), "\xEF\xBB\xBF" => array( + 'class' => 'char-ws', 'codePoint' => 'FEFF', - 'desc' => 'BOM / Zero Width No-Break Space', // not included in Separator Category + 'desc' => 'BOM / Zero Width No-Break Space', // not included in Separator Category (Other, Format) 'replaceWith' => '\u{feff}', + 'similarTo' => '', ), + "\xEF\xBF\xBD" => array( 'codePoint' => 'FFFD', 'desc' => 'Replacement Character', diff --git a/src/Debug/Abstraction/Object/Methods.php b/src/Debug/Abstraction/Object/Methods.php index 9cacdf16..41bd0be6 100644 --- a/src/Debug/Abstraction/Object/Methods.php +++ b/src/Debug/Abstraction/Object/Methods.php @@ -145,9 +145,8 @@ public function toString(Abstraction $abs) } $val = null; try { - $val = $obj->__toString(); /** @var Abstraction|string */ - $val = $this->abstracter->crate($val, $abs['debugMethod'], $abs['hist']); + $val = $this->abstracter->crate($obj->__toString(), $abs['debugMethod'], $abs['hist']); } catch (Exception $e) { // yes, __toString can throw exception.. // example: SplFileObject->__toString will throw exception if file doesn't exist diff --git a/src/Debug/Dump/AbstractValue.php b/src/Debug/Dump/AbstractValue.php index 799e9f47..b8f048c1 100644 --- a/src/Debug/Dump/AbstractValue.php +++ b/src/Debug/Dump/AbstractValue.php @@ -68,6 +68,7 @@ public function __construct(Dumper $dumper) $this->optionStackPush(array( 'addQuotes' => true, 'charHighlight' => true, + 'charReplace' => true, )); } @@ -118,7 +119,7 @@ public function dump($val, $opts = array()) * * @param string $str String to search for chars * - * @return array + * @return list */ public function findChars($str) { @@ -338,7 +339,7 @@ abstract protected function dumpString($val, Abstraction $abs = null); /** * escape hex and unicode escape sequences - * this allows use to differentiate between '\u{03c5}' and a replaced "\u{03c5}" + * this allows us to differentiate between '\u{03c5}' and a replaced "\u{03c5}" * * @param string $val string value * diff --git a/src/Debug/Dump/Base/Value.php b/src/Debug/Dump/Base/Value.php index d4d72285..810b624a 100644 --- a/src/Debug/Dump/Base/Value.php +++ b/src/Debug/Dump/Base/Value.php @@ -281,6 +281,31 @@ protected function getObject() return $this->lazyObject; } + /** + * Get replacement for character + * + * @param string $char single multi-byte character + * @param bool $charReplace whether to replace char with code-point + * control chars are always replaced + * + * @return string \x##, \u{####}, or original char + */ + protected function charReplacement($char, $charReplace) + { + if (\ord($char) < 0x80) { + // always replace control chars + return '\\x' . \str_pad(\dechex(\ord($char)), 2, '0', STR_PAD_LEFT); + } + if (isset($this->charData[$char]['class']) && \strpos($this->charData[$char]['class'], 'char-ws') !== false) { + // always replace "whitespace" chars + $charReplace = true; + } + if ($charReplace) { + return '\\u{' . \str_pad(\dechex(Utf8::ord($char)), 4, '0', STR_PAD_LEFT) . '}'; + } + return $char; + } + /** * Highlight confusable and other characters * @@ -291,24 +316,11 @@ protected function getObject() protected function highlightChars($str) { $chars = $this->findChars($str); + $charReplace = $this->optionGet('charReplace'); foreach ($chars as $char) { - $replacement = $this->charReplacement($char); + $replacement = $this->charReplacement($char, $charReplace); $str = \str_replace($char, $replacement, $str); } return $str; } - - /** - * Get ordinal replacement for character - * - * @param string $char single multi-byte character - * - * @return string \x## or \u{####} - */ - protected function charReplacement($char) - { - return \ord($char) < 0x80 - ? '\\x' . \str_pad(\dechex(\ord($char)), 2, '0', STR_PAD_LEFT) - : '\\u{' . \str_pad(\dechex(Utf8::ord($char)), 4, '0', STR_PAD_LEFT) . '}'; - } } diff --git a/src/Debug/Dump/TextAnsi.php b/src/Debug/Dump/TextAnsi.php index 65187918..559982ac 100644 --- a/src/Debug/Dump/TextAnsi.php +++ b/src/Debug/Dump/TextAnsi.php @@ -29,7 +29,7 @@ class TextAnsi extends Text 'escapeCodes' => array( 'arrayKey' => "\e[38;5;83m", // yellow 'binary' => "\e[30;48;5;250m", // black foreground / grey background - 'char' => "\e[38;5;208m", // orange + 'char' => "\e[34;48;5;14m", // blue foreground / light-blue background 'excluded' => "\e[38;5;9m", // red 'false' => "\e[91m", // red 'keyword' => "\e[38;5;45m", // blue diff --git a/src/Debug/Dump/TextAnsi/Value.php b/src/Debug/Dump/TextAnsi/Value.php index 16bd145c..b8d0402d 100644 --- a/src/Debug/Dump/TextAnsi/Value.php +++ b/src/Debug/Dump/TextAnsi/Value.php @@ -16,6 +16,7 @@ use bdk\Debug\Abstraction\Object\Abstraction as ObjectAbstraction; use bdk\Debug\Abstraction\Type; use bdk\Debug\Dump\Text\Value as TextValue; +use bdk\Debug\Dump\TextAnsi as Dumper; use bdk\Debug\Dump\TextAnsi\TextAnsiObject; use bdk\Debug\Utility\Utf8; @@ -30,6 +31,19 @@ class Value extends TextValue /** @var TextAnsiObject */ protected $lazyObject; + /** + * Constructor + * + * @param Dumper $dumper "parent" dump class + */ + public function __construct(Dumper $dumper) + { + parent::__construct($dumper); // sets debug and dumper + $this->optionStackPush(array( + 'charReplace' => false, + )); + } + /** * Get escape reset sequence * @@ -356,9 +370,10 @@ protected function getObject() protected function highlightChars($str) { $chars = $this->findChars($str); + $charReplace = $this->optionGet('charReplace'); foreach ($chars as $char) { $replacement = $this->cfg['escapeCodes']['char'] - . $this->charReplacement($char) + . $this->charReplacement($char, $charReplace) . $this->escapeReset; $str = \str_replace($char, $replacement, $str); } diff --git a/src/Debug/Dump/charData.php b/src/Debug/Dump/charData.php index 9b8c9418..fdf28e73 100644 --- a/src/Debug/Dump/charData.php +++ b/src/Debug/Dump/charData.php @@ -161,9 +161,11 @@ 'replaceWith' => '␡', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '00A0', 'desc' => 'NBSP', 'replaceWith' => '\\u{00a0}', + 'similarTo' => ' ', ), '´' => array( 'codePoint' => 'B4', @@ -1486,9 +1488,11 @@ 'similarTo' => 'x', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '1680', 'desc' => 'Ogham Space Mark', 'replaceWith' => '\\u{1680}', + 'similarTo' => ' ', ), 'ᚲ' => array( 'codePoint' => '16B2', @@ -1546,9 +1550,11 @@ 'similarTo' => ':', ), '᠎' => array( + 'class' => 'char-ws', 'codePoint' => '180E', 'desc' => 'Mongolian Vowel Separator', 'replaceWith' => '\\u{180e}', + 'similarTo' => '', ), 'ᴄ' => array( 'codePoint' => '1D04', @@ -1646,64 +1652,102 @@ 'similarTo' => '\'', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2000', 'desc' => 'En Quad', 'replaceWith' => '\\u{2000}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2001', 'desc' => 'Em Quad', 'replaceWith' => '\\u{2001}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2002', 'desc' => 'En Space', 'replaceWith' => '\\u{2002}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2003', 'desc' => 'Em Space', 'replaceWith' => '\\u{2003}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2004', - 'desc' => 'Three-Per-Em Space', + 'desc' => 'Three-Per-Em (thick) Space', 'replaceWith' => '\\u{2004}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2005', - 'desc' => 'Four-Per-Em Space', + 'desc' => 'Four-Per-Em (mid) Space', 'replaceWith' => '\\u{2005}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2006', 'desc' => 'Six-Per-Em Space', 'replaceWith' => '\\u{2006}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2007', 'desc' => 'Figure Space', 'replaceWith' => '\\u{2007}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2008', 'desc' => 'Punctuation Space', 'replaceWith' => '\\u{2008}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '2009', 'desc' => 'Thin Space', 'replaceWith' => '\\u{2009}', + 'similarTo' => ' ', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '200A', 'desc' => 'Hair Space', 'replaceWith' => '\\u{200a}', + 'similarTo' => ' ', ), '​' => array( + 'class' => 'char-ws', 'codePoint' => '200B', 'desc' => 'Zero Width Space', 'replaceWith' => '\\u{200b}', + 'similarTo' => '', + ), + '‌' => array( + 'class' => 'char-ws', + 'codePoint' => '200C', + 'desc' => 'Zero Width Non-Joiner', + 'replaceWith' => '\\u{200c}', + 'similarTo' => '', + ), + '‍' => array( + 'class' => 'char-ws', + 'codePoint' => '200D', + 'desc' => 'Zero Width Joiner', + 'replaceWith' => '\\u{200d}', + 'similarTo' => '', ), '‐' => array( 'codePoint' => '2010', @@ -1751,19 +1795,27 @@ 'similarTo' => '.', ), '
' => array( + 'class' => 'char-ws', 'codePoint' => '2028', 'desc' => 'Line Separator', 'replaceWith' => '\\u{2028}', + 'similarTo' => ' +', ), '
' => array( + 'class' => 'char-ws', 'codePoint' => '2029', 'desc' => 'Paragraph Separator', 'replaceWith' => '\\u{2029}', + 'similarTo' => ' +', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '202F', 'desc' => 'Narrow No-Break Space', 'replaceWith' => '\\u{202f}', + 'similarTo' => ' ', ), '′' => array( 'codePoint' => '2032', @@ -1816,9 +1868,18 @@ 'similarTo' => ':', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '202F', 'desc' => 'Medium Mathematical Space', 'replaceWith' => '\\u{205f}', + 'similarTo' => ' ', + ), + '⁠' => array( + 'class' => 'char-ws', + 'codePoint' => '2060', + 'desc' => 'Word Joiner', + 'replaceWith' => '\\u{2060}', + 'similarTo' => '', ), 'ℂ' => array( 'codePoint' => '2102', @@ -2401,9 +2462,11 @@ 'similarTo' => '/', ), ' ' => array( + 'class' => 'char-ws', 'codePoint' => '3000', 'desc' => 'Ideographic Space', 'replaceWith' => '\\u{3000}', + 'similarTo' => ' ', ), '〇' => array( 'codePoint' => '3007', @@ -2891,9 +2954,11 @@ 'similarTo' => 'o', ), '' => array( + 'class' => 'char-ws', 'codePoint' => 'FEFF', 'desc' => 'BOM / Zero Width No-Break Space', 'replaceWith' => '\\u{feff}', + 'similarTo' => '', ), '!' => array( 'codePoint' => 'FF01', diff --git a/src/Debug/css/Debug.css b/src/Debug/css/Debug.css index 0ef65317..7f7803b9 100644 --- a/src/Debug/css/Debug.css +++ b/src/Debug/css/Debug.css @@ -1 +1 @@ -.debug{font-size:13px}.debug{position:relative;clear:both;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;line-height:normal;text-align:left;text-shadow:none;color:#111}.debug *{font-size:inherit;line-height:normal;text-indent:0;color:inherit;margin:0}.debug *:not(i[class^=fa]){font-family:inherit}.debug a{text-decoration:none;color:#00e}.debug a:visited{color:#551a8b}.debug a:focus,.debug a:hover{border-bottom:1px dotted blue}.debug a:active,.debug a:hover{outline:0;color:#e00}.debug a.file-link{color:inherit}.debug button{color:inherit;cursor:pointer;background-color:#f0f0f0;border-color:#afafaf;font-weight:inherit;height:auto;letter-spacing:initial;line-height:initial;outline:none;padding:1px 7px 2px;text-align:center;text-transform:none;vertical-align:baseline;white-space:initial}.debug button:hover{background-color:#dde6f0}.debug code{padding:2px 4px;background-color:transparent;font-family:Menlo, Monaco, Consolas, "Courier New", monospace !important}.debug pre code{display:block}.debug,.debug div{margin:0;width:auto;height:auto;padding:0;background-color:transparent;border-radius:0}.debug dl{margin-top:0;margin-bottom:0}.debug dl dt{font-weight:bold}.debug dl.dl-horizontal{display:grid;grid-template-columns:max-content auto}.debug dl.dl-horizontal>dt{grid-column:1;text-align:right;width:auto}.debug dl.dl-horizontal>dd{grid-column:2;margin-left:0.75em}.debug dl:not(.dl-horizontal)>dd{margin-left:20px;padding-left:10px;text-indent:-10px}.debug dl:not(.dl-horizontal)>dd>ul{margin-left:-10px}.debug li.no-indent{padding-left:0;text-indent:0}.debug h3{margin-top:0.66em;margin-bottom:0.5em;font-size:1.15em;font-weight:bold}.debug h3:first-child{margin-top:0}.debug hr{color:#111;background-color:#111;border:0;height:1px}.debug img{border:0}.debug input{border-width:1px}.debug input[type=checkbox]{margin:0 0.33em 0 0;cursor:pointer}.debug label{display:block;margin:0;cursor:pointer;font-weight:bold;max-width:none}.debug label.disabled{cursor:default;pointer-events:none}.debug legend{padding:0;float:left;margin-bottom:0.5em;border:0;width:100%;font-size:144%;font-weight:bold}.debug p{margin-top:0.25em;margin-bottom:0}.debug p:first-child{margin-top:0}.debug pre{padding:0;border:0;margin:0;white-space:pre;-moz-tab-size:3;-o-tag-size:3;-tab-size:3}.debug ul{margin-top:0;margin-bottom:0}.debug ul.list-unstyled{list-style:none outside none;padding-left:0}.debug ul.list-unstyled>li{text-indent:-1em;padding-left:1em}.debug ul.list-unstyled>ul{margin-left:10px}.debug ul.no-indent>li{padding-left:0;text-indent:0}.debug fieldset{padding:0.66em;margin:0 0 10px 0;min-width:0;border:1px solid black;border-radius:4px}.debug fieldset>ul{font-size:125%}.debug .close{opacity:1;float:none}.debug ul.debug-log-summary+hr{border-top:1px dotted;background-color:transparent;margin:.5em 0}.debug .tab-pane>*>.group-body,.debug .m_groupSummary>ul{list-style:none;margin-left:0;border-left:0;padding-left:0}.debug li.php-shutdown{display:block;border-bottom:#31708f solid 1px}.debug .fa{line-height:1}.debug .alert,.debug .m_alert{padding:0.66em;margin-bottom:10px;border-radius:4px;border:1px solid transparent}.debug .m_alert{font-size:125%}.debug .m_alert h3{margin-bottom:4px}.debug .m_alert h3:last-child{margin-bottom:0}.debug .m_alert.error-summary .filter-hidden+h3{margin-top:0}.debug .m_alert.alert-dismissible{padding-right:35px}.debug .m_alert.alert-dismissible .close{float:right;position:relative;top:-7px;right:-21px;border:0;padding:0;font-size:21px;font-weight:700;line-height:1;background:none;color:#000;text-shadow:0 1px 0 #fff;opacity:0.2;cursor:pointer}.debug .m_alert.alert-dismissible .close:hover{text-decoration:none;opacity:0.5}.debug .m_alert .alert-link{font-weight:bold}.debug .alert-error{background-color:#ffbaba;border-color:#d8000c;color:#d8000c}.debug .alert-error .alert-link{color:#843534}.debug .alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.debug .alert-info .alert-link{color:#245269}.debug .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.debug .alert-success .alert-link{color:#2b542c}.debug .alert-warn{background-color:#fefbe5;border-color:#faebcc;color:#8a6d3b}.debug .alert-warn .alert-link{color:#66512c}.debug nav[role=tablist]{display:inline-block;font-size:0;line-height:20px;vertical-align:top}.debug nav[role=tablist] .fa{margin-right:0.5em}.debug nav[role=tablist] a{display:inline-block;padding:0 13px;font-size:13px;line-height:20px;vertical-align:top;color:#111;cursor:pointer}.debug nav[role=tablist] a:hover{text-decoration:none}.debug nav[role=tablist] a:hover:not(.active){background:#e6e6e6}.debug nav[role=tablist] a.active{line-height:19px;border-bottom:#4071e1 solid 2px}.debug .tab-panes{overflow:auto}.debug .tab-panes .tab-pane{position:static;display:none}.debug .tab-panes .tab-pane.active{display:block}.debug .tab-panes .tab-pane .tab-body{padding:10px 12px 5px;background-color:#fff;overflow:auto}.debug .namespace{opacity:0.5}.debug .array-inner,.debug .object-inner{display:block;margin-left:1em}.debug .classname{font-weight:bold;color:color-mix(in lch, currentColor, #8d0c4c)}.debug .attribute .t_punct{color:inherit;font-weight:bold}.debug .t_parameter-name{color:#263}.debug .t_array>.t_array-collapse,.debug .t_array>.array-inner,.debug .t_array>.t_punct{display:none}.debug .t_array.expanded>.t_array-expand{display:none}.debug .t_array.expanded>.t_array-collapse,.debug .t_array.expanded>.t_punct{display:inline}.debug .t_array.expanded>.array-inner{display:block}.debug .t_array.array-file-tree .array-inner{margin-left:0.25em}.debug .t_array.array-file-tree .exclude-count{background:#d9edf7;color:#31708f}.debug .t_array.array-file-tree .t_key{color:#000040;font-weight:bold}.debug .t_array.array-file-tree .t_string::before,.debug .t_array.array-file-tree .t_string::after,.debug .t_array.array-file-tree .t_key::before,.debug .t_array.array-file-tree .t_key::after{display:none}.debug .array-inner>li>.t_operator{margin:0 0.25em}.debug li[class*=m_]>.t_array.array-file-tree>.array-inner{margin-left:-10px}.debug .t_object{display:inline}.debug .t_object h3{margin:0;font-size:inherit;font-style:italic;color:purple}.debug .t_object .t_modifier_public{color:inherit}.debug .t_object .t_modifier_protected{color:rgba(0,0,0,0.776471)}.debug .t_object .t_modifier_private{color:rgba(0,0,0,0.509804)}.debug .t_object .t_modifier_final{color:rgba(255,0,0,0.933333);font-weight:bold}.debug .t_object .t_modifier_static{font-style:italic;color:rgba(218,13,135,0.933333)}.debug .t_object .t_modifier_debug{color:rgba(0,11,155,0.933333)}.debug .t_object>.object-inner>.modifiers{display:none}.debug .t_object>.object-inner>dd[class*=t_modifier_]{display:inline-block;margin-left:0;margin-right:0.5em;border:solid 1px;border-radius:4px;padding:0 .75em;height:1.75em;text-indent:0;line-height:1.5;font-weight:bold}.debug .t_object>.object-inner>.t_modifier_readonly{color:#8a6d3b;background-color:#fefbe5;border-color:#8a6d3b}.debug .t_object>.object-inner>.t_modifier_readonly .fa-stack{font-size:0.8em;margin-right:0.33em}.debug .t_object>.object-inner>.t_modifier_readonly .fa-stack .fa-ban{opacity:0.75}.debug .t_object>.object-inner>.t_modifier_final{color:#d8000c;background-color:#ffeded;border-color:#d8000c}.debug .t_object>.object-inner .heading{color:#4f16b0;text-decoration:underline;font-weight:bold}.debug .t_object .vis-toggles *[data-toggle]{padding:0.15em 0.5em;display:inline-block}.debug .t_object dd+.vis-toggles{margin-top:.25em}.debug .t_object .method .parameter .t_parameter-name[title],.debug .t_object .t_identifier[title],.debug .t_object .t_type[title]{border-bottom:1px dashed blue}.debug .t_object .method ul{margin-left:15px}.debug .t_object .method.deprecated{opacity:0.66}.debug .t_object .method.deprecated i{opacity:0.66;color:#d8000c;border-bottom:0}.debug .t_object .method>.t_punct:not(.t_colon){opacity:1;font-weight:bold;color:inherit}.debug .t_object .method i.fa-clone{color:#999}.debug .t_object .private-ancestor:not(:hover)>*{opacity:0.5}.debug .t_object .private-ancestor:not(:hover)>.fa-lock,.debug .t_object .private-ancestor:not(:hover)>.t_modifier_private{opacity:1}.debug .t_object i.fa-flag,.debug .t_object i.fa-warning{color:red}.debug .t_object i.fa-eye{color:rgba(0,11,155,0.933333);font-size:1.1em;border-bottom:0}.debug .t_object i.fa-magic,.debug .t_object .t_modifier_magic,.debug .t_object .t_modifier_magic-read,.debug .t_object .t_modifier_magic-write{color:rgba(255,136,0,0.933333)}.debug .t_object .debugInfo-excluded>i.fa-eye-slash{color:#999}.debug .t_object .info{display:inline-block;background-color:#d9edf7;color:#31708f}.debug td.t_object{display:table-cell}.debug .m_assert,.debug .m_clear,.debug .m_count,.debug .m_error,.debug .m_groupEndValue,.debug .m_info,.debug .m_log,.debug .m_warn{position:relative;display:table;padding-left:10px;text-indent:-10px;padding-right:0.33em;word-break:break-word}.debug .m_table td,.debug .m_trace td{word-break:break-word}.debug .m_table td.t_string,.debug .m_trace td.t_string{padding-left:1em;text-indent:-0.75em}.debug .m_assert{background-color:rgba(255,204,204,0.75)}.debug .m_assert>i{margin-right:0.33em;margin-bottom:-0.2em;display:inline-block;line-height:0.6em;vertical-align:text-bottom}.debug .m_group .group-header{display:table;white-space:nowrap}.debug .m_group .group-header i.fa-warning{color:#cdcb06;margin-left:0.33em}.debug .m_group .group-header i.fa-times-circle{color:#d8000c;margin-left:0.33em}.debug .m_group .group-body{display:none}.debug .m_group>ul{list-style:none;margin-left:1em;border-left:1px solid rgba(0,0,0,0.25);padding-left:0.25rem}.debug .m_group.expanded>.group-body{display:block}.debug .m_error,.debug .m_group.level-error>.group-body,.debug .m_group.level-error:not(.expanded)>.group-header>.level-error{background-color:#ffbaba;color:#d8000c}.debug .m_info,.debug .m_group.level-info>.group-body,.debug .m_group.level-info:not(.expanded)>.group-header>.level-info{background-color:#d9edf7;color:#31708f}.debug .m_trace .classname{color:#146314}.debug .m_warn,.debug .m_group.level-warn>.group-body,.debug .m_group.level-warn:not(.expanded)>.group-header>.level-warn{background-color:#fefbe5;color:#8a6d3b}.debug li[data-channel="general.phpError"]>i+.t_string:nth-child(2){font-weight:bold}.debug li[data-channel="general.phpError"]>.t_string:nth-child(4){opacity:0.7}.debug li[data-channel="general.phpError"]>.t_string:nth-child(4)::before{content:"\A"}.debug li[data-channel="general.phpError"]>.t_string:nth-child(4)::after{content:none}.debug li[data-channel="general.phpError"].error-fatal{padding:10px 10px 10px 20px;border-left:solid 2px #d8000c}.debug li[data-channel="general.phpError"].error-fatal>.t_string:nth-child(2){display:inline-block;margin-bottom:5px;vertical-align:top;font-size:1.2em}.debug li[data-channel="general.phpError"].error-fatal>.t_string:nth-child(3)::before{content:"\A"}.debug table{width:auto;border-collapse:collapse}.debug table caption{caption-side:top;font-weight:bold;font-style:italic;padding-bottom:0;padding-top:2px;text-align:left}.debug table th,.debug table td{padding:0 0.25em;vertical-align:top}.debug table th.t_key{white-space:nowrap}.debug table th.t_key::before,.debug table th.t_key::after{content:none}.debug table td.classname{font-weight:bold}.debug table td.t_undefined{background-color:rgba(0,0,0,0.1)}.debug table td.t_undefined::after{content:none}.debug table th,.debug table tfoot td{font-weight:bold;background-color:rgba(0,0,0,0.1)}.debug table thead th{text-align:center}.debug table thead th .classname{opacity:0.5;font-style:italic}.debug table thead th .classname::before{content:"("}.debug table thead th .classname::after{content:")"}.debug table tr[data-toggle]{cursor:default}.debug table tr[data-toggle]:hover{color:#212529;background-color:rgba(0,0,0,0.075)}.debug table tbody th.t_int,.debug table td[data-type-more=numeric],.debug table td.timestamp,.debug table td.t_int{text-align:right;white-space:nowrap}.debug table.table-bordered th,.debug table.table-bordered td{border:1px solid #7f7f7f;padding:1px 0.25em}.debug table.table-hover tbody tr{cursor:default}.debug table.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,0.075)}.debug table.table-sort>thead th{cursor:default}.debug table.table-sort>thead th:hover{background-color:rgba(0,0,0,0.25)}.debug table.table-sort .sort-arrows{text-align:center;height:1.5em;width:1.2em;margin-left:0;margin-right:1px}.debug table.table-sort .sort-arrows .fa{position:absolute;opacity:0.33}.debug table.table-sort .sort-arrows .fa-caret-down{bottom:0}.debug table.table-sort .sort-arrows .fa-caret-up{top:-1px}.debug table.table-sort .sort-asc .fa-caret-down{opacity:1}.debug table.table-sort .sort-desc .fa-caret-up{opacity:1}.debug table.trace-context{width:100%}.debug table.trace-context tr.context{display:none}.debug table.trace-context tr.context td{color:#111;max-width:1px;background-color:#f5f2f0;padding:0.75em}.debug table.trace-context tr.context td hr{margin:1em 0}.debug .t_identifier{font-weight:bold;white-space:nowrap}.debug .t_type{color:#693}.debug .t_bool[data-type-more=true]{color:#993;text-shadow:1px 1px 2px rgba(153,153,51,0.5)}.debug .t_bool[data-type-more=false]{color:#c33;text-shadow:1px 1px 2px rgba(204,51,51,0.5)}.debug .t_callable{font-weight:bold}.debug .t_callable .t_type,.debug .t_callable .namespace{font-weight:normal}.debug .t_const{color:#039;font-family:monospace}.debug .t_const .t_identifier{color:inherit}.debug .t_int,.debug .t_float,.debug .t_string[data-type-more=numeric],.debug .t_string[data-type-more=timestamp]{font-family:Courier New,monospace,Ariel !important;color:#009;font-size:1.15em;line-height:1.15em}.debug .t_int::before,.debug .t_int::after,.debug .t_float::before,.debug .t_float::after,.debug .t_string[data-type-more=numeric]::before,.debug .t_string[data-type-more=numeric]::after,.debug .t_string[data-type-more=timestamp]::before,.debug .t_string[data-type-more=timestamp]::after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:0.8695em}.debug .t_key{opacity:0.75}.debug .t_key[data-file]{opacity:1}.debug .t_key::before,.debug .t_key::after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;color:#999}.debug .t_key::before{content:'[';margin-right:1px}.debug .t_key::after{content:']';margin-left:1px}.debug .t_key.t_int{white-space:nowrap}.debug .t_keyword{color:#07a}.debug .t_null{opacity:0.3}.debug .t_operator{color:#a67f59;white-space:nowrap !important}.debug .t_punct{color:#999}.debug .excluded,.debug .t_maxDepth,.debug .t_notInspected,.debug .t_recursion,.debug .t_unknown{font-weight:bold;color:red}.debug .t_resource{font-style:italic}.debug .t_string{white-space:pre-wrap;word-break:break-all}.debug .t_string::before,.debug .t_string::after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;opacity:0.33;color:#333}.debug .t_string::before{content:open-quote}.debug .t_string::after{content:close-quote}.debug .t_string.classname::before{content:none}.debug .t_string.classname::after{content:none}.debug .t_string>*{white-space:normal;word-break:break-word}.debug .t_string pre{white-space:pre}.debug .t_stringified{text-shadow:0 0 2px rgba(0,200,200,0.6)}.debug .t_undefined::after{content:"undefined";opacity:0.3}.debug.debug-drawer{position:fixed;bottom:0;left:0;width:100%;background-color:#fff;z-index:1049;height:100px;transform:translateY(100px);transition:all 0.5s}.debug.debug-drawer>*{box-sizing:border-box}.debug.debug-drawer .debug-pull-tab{display:inline-block;opacity:1;position:absolute;height:25px;top:-25px;margin-left:20px;border:1px solid #000;border-bottom-width:0;border-radius:5px 5px 0 0;padding:4px 14px;font-size:16px;background:#f3f3f3;cursor:pointer;transition:all 0.5s}.debug.debug-drawer .debug-pull-tab:hover{background:#dadada}.debug.debug-drawer .debug-pull-tab .debug-error-counts{margin-left:0.5em}.debug.debug-drawer .debug-pull-tab .badge{display:none}.debug.debug-drawer .debug-pull-tab .fa-spinner{display:none}.debug.debug-drawer .debug-resize-handle{display:block;position:absolute;top:-3px;height:4px;width:100%;opacity:0;border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0;background:#dadada;transition:all 0.25s ease-out}.debug.debug-drawer.debug-drawer-open{transform:translateY(0);height:auto}.debug.debug-drawer.debug-drawer-open .debug-pull-tab{opacity:0;transform:translateY(25px)}.debug.debug-drawer.debug-drawer-open .debug-pull-tab .fa-spinner{display:inline-block}.debug.debug-drawer.debug-drawer-open .debug-resize-handle{cursor:ns-resize}.debug.debug-drawer.debug-drawer-open .debug-resize-handle:hover{opacity:1}html.debug-resizing{cursor:ns-resize !important}html.debug-resizing .debug-drawer{transition:none}html.debug-resizing .debug-drawer .debug-resize-handle{opacity:1}.debug .debug-bar{position:relative;padding:5px;font-size:115%;background-color:rgba(0,0,0,0.2);margin-bottom:10px}.debug .debug-bar a{color:#6e6e6e}.debug .debug-bar button{border-radius:0;border-top-width:0;border-bottom-width:0}.debug .debug-bar button.close{font-size:21px;font-weight:300}.debug .debug-bar .float-right{position:absolute;top:0;right:6px;line-height:23px}.debug .debug-bar .float-right button{height:18px;border:0;padding:0;line-height:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.debug .debug-error-counts{position:relative;top:-2px;font-size:0.78em}.debug .debug-error-counts .badge{padding:0 0.4em 0 0.25em;color:inherit;background:inherit;font-size:inherit;vertical-align:unset}.debug .debug-bar{border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0;color:#6e6e6e;padding:0 34px 0 6px;background:#f3f3f3;font-size:16px;margin-bottom:0}.debug .debug-bar a:focus,.debug .debug-bar a:hover,.debug .debug-bar button:focus,.debug .debug-bar button:hover,.debug .debug-bar label:focus,.debug .debug-bar label:hover{color:#333;text-decoration:none}.debug .debug-bar nav{margin-left:20px;line-height:23px}.debug .debug-bar nav a{line-height:23px}.debug .debug-bar nav a.has-assert{line-height:22px;border-bottom:#da8585 solid 2px}.debug .debug-bar nav a.has-warn{line-height:22px;border-bottom:#e4cb0f solid 2px}.debug .debug-bar nav a.has-error{line-height:22px;border-bottom:red solid 2px}.debug .debug-bar nav a.active{line-height:22px;border-bottom:#4071e1 solid 2px}.debug .debug-bar>span{display:inline-block;line-height:23px}.debug .debug-options-toggle{position:relative;top:-1px}.debug .debug-options{position:absolute;top:100%;right:0;max-height:0;box-sizing:border-box;z-index:1000;float:right;min-width:12em;background:#f3f3f3;box-shadow:0 4px 8px rgba(0,0,0,0.25);transition:all 0.25s ease-out;overflow:hidden;font-size:13px}.debug .debug-options .debug-options-body{background-clip:padding-box;border:1px solid #d0d0d0;padding:0.5em 5px 0.5em 15px}.debug .debug-options.show{max-height:150px}.debug .debug-options label{font-weight:normal;padding:0.25em 0}.debug .debug-options label.disabled{color:#999}.debug .debug-options hr.dropdown-divider{margin:0.5em -5px 0.5em -15px;background:#d0d0d0;height:1px;border:none}.debug .debug-options .form-group{margin:0}.debug{transform:scale(1)}.debug .badge{display:inline-block;padding:0.25em 0.4em 0.16em;font-size:82%;font-weight:500;line-height:1;text-align:center;white-space:nowrap;vertical-align:bottom;border-radius:0.25rem;color:#fff;background-color:#666}.debug .debug-sidebar{position:absolute;box-sizing:border-box;width:126px;background:#f3f3f3;height:100%;transform:translateX(-119px);transition:transform .33s}.debug .debug-sidebar button{width:100%}.debug .debug-sidebar input[type=checkbox]{display:none}.debug .debug-sidebar label{font-weight:normal}.debug .debug-sidebar+.tab-body{margin-left:6px;padding-left:10px;transition:margin-left .33s}.debug .debug-sidebar.no-transition+.tab-body{transition:none}.debug .debug-sidebar .collapse{display:none}.debug .debug-sidebar .sidebar-content{padding:0 11px 0 4px;opacity:0;overflow:hidden}.debug .debug-sidebar.show{transform:translateX(0)}.debug .debug-sidebar.show .expand{display:none}.debug .debug-sidebar.show .collapse{display:block}.debug .debug-sidebar.show+.tab-body{margin-left:126px}.debug .debug-sidebar.show .sidebar-content{opacity:1;transition:opacity 0.33s}.debug .debug-sidebar .sidebar-toggle{position:absolute;box-sizing:border-box;right:0;top:0;height:100%;width:7px;background:#f3f3f3;border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0;cursor:pointer;display:flex;color:#d0d0d0;text-align:center;z-index:1}.debug .debug-sidebar .sidebar-toggle:hover{color:#6e6e6e;background:#dadada}.debug .debug-sidebar .sidebar-toggle>div{margin:auto;padding-left:1px}.debug .debug-sidebar .debug-filters{position:relative;margin:0 -4px 10px -4px}.debug .debug-sidebar .debug-filters ul{margin-left:0}.debug .debug-sidebar .debug-filters li{text-indent:0;padding-left:10px}.debug .debug-sidebar .debug-filters>li{padding-left:4px}.debug .debug-sidebar .debug-filters>li>*:first-child{padding-top:3px;padding-bottom:3px}.debug .debug-sidebar .debug-filters>li>ul{margin-left:-10px}.debug .debug-sidebar .debug-filters>li>ul>li{padding-left:32px}.debug .debug-sidebar .debug-filters label{padding:2px 0 2px 100%;white-space:nowrap}.debug .debug-sidebar .debug-filters label.disabled span{opacity:0.5}.debug .debug-sidebar .debug-filters label,.debug .debug-sidebar .debug-filters ul ul{margin-left:-100%;padding-left:100%}.debug .debug-sidebar .fa-times-circle{color:#d8000c}.debug .debug-sidebar .fa-warning{color:#8a6d3b}.debug .debug-sidebar .fa-info-circle{color:#31708f}.debug .debug-sidebar .toggle{cursor:pointer}.debug .debug-sidebar .toggle.active{background:#dadada}.debug .debug-sidebar .toggle.active:hover{background:#bacce0}.debug .debug-sidebar .toggle:hover,.debug .debug-sidebar .toggle:hover+ul{background:#dde6f0}.debug .debug-sidebar .toggle:hover .toggle.active,.debug .debug-sidebar .toggle:hover+ul .toggle.active{background:#bacce0}.debug i.fa{margin-right:0.33em}.debug i.fa-lg{font-size:1.33em}.debug i.fa-plus-circle{opacity:0.42}.debug i.fa-calendar{font-size:1.1em}.debug .filter-hidden{display:none}.debug .filter-hidden.m_group{display:list-item}.debug .filter-hidden.m_group>.group-header{display:none}.debug .filter-hidden.m_group>.group-body{display:block !important;margin-left:0;border-left:0;padding-left:0}.debug .filter-hidden.m_group.filter-hidden-body>.group-body{display:none !important}.debug .empty.hide-if-empty{display:none}.debug .empty.m_group .group-header{cursor:auto}.debug .vis-toggles span:hover,.debug [data-toggle=interface]:hover{background-color:rgba(0,0,0,0.1)}.debug .vis-toggles .toggle-off.toggle-off,.debug .interface.toggle-off{opacity:0.5}.debug ul.list-unstyled>li:has(.show-more-container){text-indent:0;padding-left:0}.debug .show-more-container{display:inline}.debug .show-more-wrapper{display:block;position:relative;height:70px;overflow:hidden}.debug .show-more-fade{position:absolute;bottom:-1px;width:100%;height:55px;background-image:linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.75));pointer-events:none}.debug .level-error .show-more-fade,.debug .m_error .show-more-fade{background-image:linear-gradient(to bottom, rgba(255,186,186,0), #ffbaba)}.debug .level-info .show-more-fade,.debug .m_info .show-more-fade{background-image:linear-gradient(to bottom, rgba(217,237,247,0), #d9edf7)}.debug .level-warn .show-more-fade,.debug .m_warn .show-more-fade{background-image:linear-gradient(to bottom, rgba(254,251,229,0), #fefbe5)}.debug [title]:hover .show-more-fade{background-image:linear-gradient(to bottom, rgba(201,201,201,0), #c9c9c9)}.debug .show-more,.debug .show-less{display:table;box-shadow:1px 1px 0 0 rgba(0,0,0,0.2);border:1px solid rgba(0,0,0,0.2);border-radius:2px;background-color:#eee}.debug-noti-wrap{position:fixed;display:none;top:0;width:100%;height:100%;pointer-events:none;z-index:1050}.debug-noti-wrap .debug-noti{display:table-cell;text-align:center;vertical-align:bottom;font-size:30px;transform-origin:50% 100%}.debug-noti-wrap .debug-noti.animate{animation-duration:1s;animation-name:expandAndFade;animation-timing-function:ease-in}.debug-noti-table{display:table;width:100%;height:100%}@keyframes expandAndFade{from{opacity:0.9;transform:scale(0.9, 0.94)}to{opacity:0;transform:scale(1, 1)}}.debug .expand-all{margin-bottom:0.5em}.debug .file-link.lpad{margin-left:0.33em}.debug .file-link i{margin-right:0;vertical-align:baseline}.debug .hasTooltip:not(a),.debug *[title]:not(a){cursor:help}.debug .hasTooltip:not(a):hover,.debug *[title]:not(a):hover{background-color:rgba(0,0,0,0.05)}.debug *[data-toggle]{cursor:pointer !important}.debug .string-encoded.tabs-container>i{line-height:20px;margin-right:0}.debug .string-encoded[data-type=base64]>.string-raw .t_string{font-family:monospace}.debug .prettified{color:rgba(0,11,155,0.933333)}.debug .timestamp{color:#009}.debug .binary,.debug .maxlen,.debug .unicode{padding:0 0.3em;cursor:pointer}.debug .binary:hover,.debug .maxlen:hover,.debug .unicode:hover{outline:0;color:#e00}.debug .binary,.debug .char-control{background-color:silver;color:#003;font-family:monospace !important;font-weight:bold}.debug .char-control{display:inline-block;vertical-align:baseline;clip-path:inset(30% 0);transform:scale(2);margin-left:0.33em}.debug .maxlen{background-color:#fc7}.debug .unicode{background-color:#c0c0ff;font-weight:normal}.debug ul[data-type-more=binary]>li.t_string{text-indent:0;padding:0}.debug ul[data-type-more=binary]>li.t_string::before{content:""}.debug ul[data-type-more=binary]>li.t_string::after{content:""}.debug ul[data-type-more=binary]>li.t_string>.binary{padding:0;margin:0;word-spacing:-0.25em;font-size:0.8em}.debug .ws_s,.debug .ws_t,.debug .ws_r,.debug .ws_n,.debug .ws_p{opacity:0.33}.debug .ws_t::before{display:inline-block;content:"\203A";width:1em}.debug .ws_r::before{content:"\\r"}.debug .ws_n::before{content:"\\n"}.debug .tippy-box{background-color:#fff;background-clip:padding-box;border:2px solid rgba(0,8,16,0.3);border-radius:4px;outline:0;transition-property:transform, visibility, opacity;color:#333;box-shadow:0 4px 14px -2px rgba(0,8,16,0.08)}.debug .tippy-box .tippy-content{padding:5px 9px;z-index:1}.debug .tippy-box>.tippy-backdrop{background-color:#fff}.debug .tippy-box>.tippy-arrow{width:16px;height:16px;color:#333}.debug .tippy-box>.tippy-arrow::before{content:"";position:absolute;border-color:transparent;border-style:solid}.debug .tippy-box>.tippy-arrow::after,.debug .tippy-box>.tippy-svg-arrow::after{content:'';position:absolute;z-index:-1}.debug .tippy-box>.tippy-arrow::after{border-color:transparent;border-style:solid}.debug .tippy-box[data-placement^='top']>.tippy-arrow{bottom:1px}.debug .tippy-box[data-placement^='top']>.tippy-arrow::before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:#fff;transform-origin:center top}.debug .tippy-box[data-placement^='top']>.tippy-arrow::after{border-top-color:rgba(0,8,16,0.5);border-width:7px 7px 0;top:17px;left:1px}.debug .tippy-box[data-placement^='top']>.tippy-svg-arrow>svg{top:16px}.debug .tippy-box[data-placement^='top']>.tippy-svg-arrow::after{top:17px}.debug .tippy-box[data-placement^='bottom']>.tippy-arrow{top:0}.debug .tippy-box[data-placement^='bottom']>.tippy-arrow::before{top:-6px;left:0;border-width:0 8px 8px;border-bottom-color:#fff;transform-origin:center bottom}.debug .tippy-box[data-placement^='bottom']>.tippy-arrow::after{border-bottom-color:rgba(0,8,16,0.5);border-width:0 7px 7px;bottom:17px;left:1px}.debug .tippy-box[data-placement^='bottom']>.tippy-svg-arrow>svg{bottom:16px}.debug .tippy-box[data-placement^='bottom']>.tippy-svg-arrow::after{bottom:17px}.debug .tippy-box[data-placement^='left']>.tippy-arrow::before{border-left-color:#fff}.debug .tippy-box[data-placement^='left']>.tippy-arrow::after{border-left-color:rgba(0,8,16,0.5);border-width:7px 0 7px 7px;left:17px;top:1px}.debug .tippy-box[data-placement^='left']>.tippy-svg-arrow>svg{left:11px}.debug .tippy-box[data-placement^='left']>.tippy-svg-arrow::after{left:12px}.debug .tippy-box[data-placement^='right']>.tippy-arrow::before{border-right-color:#fff;right:16px}.debug .tippy-box[data-placement^='right']>.tippy-arrow::after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:rgba(0,8,16,0.5)}.debug .tippy-box[data-placement^='right']>.tippy-svg-arrow>svg{right:11px}.debug .tippy-box[data-placement^='right']>.tippy-svg-arrow::after{right:12px}.debug .tippy-box>.tippy-svg-arrow{fill:white}.debug .tippy-box>.tippy-svg-arrow::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiIC8+PC9zdmc+);background-size:16px 6px;width:16px;height:6px}.debug .indent{padding-left:10px !important}.debug .p0{padding:0 !important}.debug .fa-inverse{color:#fff}.debug .fa-stack{line-height:2em}.debug .fa-stack-1x{line-height:inherit}.debug .fa-stack-2x{font-size:2em}.debug .float-left{float:left !important}.debug .float-right{float:right !important}.debug .font-weight-bold{font-weight:bold}.debug .no-quotes::before{content:none}.debug .no-quotes::after{content:none}.debug .text-center{text-align:center}.debug .text-muted{opacity:.5}.debug .text-left{text-align:left !important}.debug .text-right{text-align:right !important}.debug .text-error{color:#d8000c}.debug .text-info{color:#31708f}.debug .text-warn{color:#8a6d3b} +.debug{font-size:13px}.debug{position:relative;clear:both;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;line-height:normal;text-align:left;text-shadow:none;color:#111}.debug *{font-size:inherit;line-height:normal;text-indent:0;color:inherit;margin:0}.debug *:not(i[class^=fa]){font-family:inherit}.debug a{text-decoration:none;color:#00e}.debug a:visited{color:#551a8b}.debug a:focus,.debug a:hover{border-bottom:1px dotted blue}.debug a:active,.debug a:hover{outline:0;color:#e00}.debug a.file-link{color:inherit}.debug button{color:inherit;cursor:pointer;background-color:#f0f0f0;border-color:#afafaf;font-weight:inherit;height:auto;letter-spacing:initial;line-height:initial;outline:none;padding:1px 7px 2px;text-align:center;text-transform:none;vertical-align:baseline;white-space:initial}.debug button:hover{background-color:#dde6f0}.debug code{padding:2px 4px;background-color:transparent;font-family:Menlo, Monaco, Consolas, "Courier New", monospace !important}.debug pre code{display:block}.debug,.debug div{margin:0;width:auto;height:auto;padding:0;background-color:transparent;border-radius:0}.debug dl{margin-top:0;margin-bottom:0}.debug dl dt{font-weight:bold}.debug dl.dl-horizontal{display:grid;grid-template-columns:max-content auto}.debug dl.dl-horizontal>dt{grid-column:1;text-align:right;width:auto}.debug dl.dl-horizontal>dd{grid-column:2;margin-left:0.75em}.debug dl:not(.dl-horizontal)>dd{margin-left:20px;padding-left:10px;text-indent:-10px}.debug dl:not(.dl-horizontal)>dd>ul{margin-left:-10px}.debug li.no-indent{padding-left:0;text-indent:0}.debug h3{margin-top:0.66em;margin-bottom:0.5em;font-size:1.15em;font-weight:bold}.debug h3:first-child{margin-top:0}.debug hr{color:#111;background-color:#111;border:0;height:1px}.debug img{border:0}.debug input{border-width:1px}.debug input[type=checkbox]{margin:0 0.33em 0 0;cursor:pointer}.debug label{display:block;margin:0;cursor:pointer;font-weight:bold;max-width:none}.debug label.disabled{cursor:default;pointer-events:none}.debug legend{padding:0;float:left;margin-bottom:0.5em;border:0;width:100%;font-size:144%;font-weight:bold}.debug p{margin-top:0.25em;margin-bottom:0}.debug p:first-child{margin-top:0}.debug pre{padding:0;border:0;margin:0;white-space:pre;-moz-tab-size:3;-o-tag-size:3;-tab-size:3}.debug ul{margin-top:0;margin-bottom:0}.debug ul.list-unstyled{list-style:none outside none;padding-left:0}.debug ul.list-unstyled>li{text-indent:-1em;padding-left:1em}.debug ul.list-unstyled>ul{margin-left:10px}.debug ul.no-indent>li{padding-left:0;text-indent:0}.debug fieldset{padding:0.66em;margin:0 0 10px 0;min-width:0;border:1px solid black;border-radius:4px}.debug fieldset>ul{font-size:125%}.debug .close{opacity:1;float:none}.debug ul.debug-log-summary+hr{border-top:1px dotted;background-color:transparent;margin:.5em 0}.debug .tab-pane>*>.group-body,.debug .m_groupSummary>ul{list-style:none;margin-left:0;border-left:0;padding-left:0}.debug li.php-shutdown{display:block;border-bottom:#31708f solid 1px}.debug .fa{line-height:1}.debug .alert,.debug .m_alert{padding:0.66em;margin-bottom:10px;border-radius:4px;border:1px solid transparent}.debug .m_alert{font-size:125%}.debug .m_alert h3{margin-bottom:4px}.debug .m_alert h3:last-child{margin-bottom:0}.debug .m_alert.error-summary .filter-hidden+h3{margin-top:0}.debug .m_alert.alert-dismissible{padding-right:35px}.debug .m_alert.alert-dismissible .close{float:right;position:relative;top:-7px;right:-21px;border:0;padding:0;font-size:21px;font-weight:700;line-height:1;background:none;color:#000;text-shadow:0 1px 0 #fff;opacity:0.2;cursor:pointer}.debug .m_alert.alert-dismissible .close:hover{text-decoration:none;opacity:0.5}.debug .m_alert .alert-link{font-weight:bold}.debug .alert-error{background-color:#ffbaba;border-color:#d8000c;color:#d8000c}.debug .alert-error .alert-link{color:#843534}.debug .alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.debug .alert-info .alert-link{color:#245269}.debug .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.debug .alert-success .alert-link{color:#2b542c}.debug .alert-warn{background-color:#fefbe5;border-color:#faebcc;color:#8a6d3b}.debug .alert-warn .alert-link{color:#66512c}.debug nav[role=tablist]{display:inline-block;font-size:0;line-height:20px;vertical-align:top}.debug nav[role=tablist] .fa{margin-right:0.5em}.debug nav[role=tablist] a{display:inline-block;padding:0 13px;font-size:13px;line-height:20px;vertical-align:top;color:#111;cursor:pointer}.debug nav[role=tablist] a:hover{text-decoration:none}.debug nav[role=tablist] a:hover:not(.active){background:#e6e6e6}.debug nav[role=tablist] a.active{line-height:19px;border-bottom:#4071e1 solid 2px}.debug .tab-panes{overflow:auto}.debug .tab-panes .tab-pane{position:static;display:none}.debug .tab-panes .tab-pane.active{display:block}.debug .tab-panes .tab-pane .tab-body{padding:10px 12px 5px;background-color:#fff;overflow:auto}.debug .namespace{opacity:0.5}.debug .array-inner,.debug .object-inner{display:block;margin-left:1em}.debug .classname{font-weight:bold;color:color-mix(in lch, currentColor, #8d0c4c)}.debug .attribute .t_punct{color:inherit;font-weight:bold}.debug .t_parameter-name{color:#263}.debug .t_array>.t_array-collapse,.debug .t_array>.array-inner,.debug .t_array>.t_punct{display:none}.debug .t_array.expanded>.t_array-expand{display:none}.debug .t_array.expanded>.t_array-collapse,.debug .t_array.expanded>.t_punct{display:inline}.debug .t_array.expanded>.array-inner{display:block}.debug .t_array.array-file-tree .array-inner{margin-left:0.25em}.debug .t_array.array-file-tree .exclude-count{background:#d9edf7;color:#31708f}.debug .t_array.array-file-tree .t_key{color:#000040;font-weight:bold}.debug .t_array.array-file-tree .t_string::before,.debug .t_array.array-file-tree .t_string::after,.debug .t_array.array-file-tree .t_key::before,.debug .t_array.array-file-tree .t_key::after{display:none}.debug .array-inner>li>.t_operator{margin:0 0.25em}.debug li[class*=m_]>.t_array.array-file-tree>.array-inner{margin-left:-10px}.debug .t_object{display:inline}.debug .t_object h3{margin:0;font-size:inherit;font-style:italic;color:purple}.debug .t_object .t_modifier_public{color:inherit}.debug .t_object .t_modifier_protected{color:rgba(0,0,0,0.776471)}.debug .t_object .t_modifier_private{color:rgba(0,0,0,0.509804)}.debug .t_object .t_modifier_final{color:rgba(255,0,0,0.933333);font-weight:bold}.debug .t_object .t_modifier_static{font-style:italic;color:rgba(218,13,135,0.933333)}.debug .t_object .t_modifier_debug{color:rgba(0,11,155,0.933333)}.debug .t_object>.object-inner>.modifiers{display:none}.debug .t_object>.object-inner>dd[class*=t_modifier_]{display:inline-block;margin-left:0;margin-right:0.5em;border:solid 1px;border-radius:4px;padding:0 .75em;height:1.75em;text-indent:0;line-height:1.5;font-weight:bold}.debug .t_object>.object-inner>.t_modifier_readonly{color:#8a6d3b;background-color:#fefbe5;border-color:#8a6d3b}.debug .t_object>.object-inner>.t_modifier_readonly .fa-stack{font-size:0.8em;margin-right:0.33em}.debug .t_object>.object-inner>.t_modifier_readonly .fa-stack .fa-ban{opacity:0.75}.debug .t_object>.object-inner>.t_modifier_final{color:#d8000c;background-color:#ffeded;border-color:#d8000c}.debug .t_object>.object-inner .heading{color:#4f16b0;text-decoration:underline;font-weight:bold}.debug .t_object .vis-toggles *[data-toggle]{padding:0.15em 0.5em;display:inline-block}.debug .t_object dd+.vis-toggles{margin-top:.25em}.debug .t_object .method .parameter .t_parameter-name[title],.debug .t_object .t_identifier[title],.debug .t_object .t_type[title]{border-bottom:1px dashed blue}.debug .t_object .method ul{margin-left:15px}.debug .t_object .method.deprecated{opacity:0.66}.debug .t_object .method.deprecated i{opacity:0.66;color:#d8000c;border-bottom:0}.debug .t_object .method>.t_punct:not(.t_colon){opacity:1;font-weight:bold;color:inherit}.debug .t_object .method i.fa-clone{color:#999}.debug .t_object .private-ancestor:not(:hover)>*{opacity:0.5}.debug .t_object .private-ancestor:not(:hover)>.fa-lock,.debug .t_object .private-ancestor:not(:hover)>.t_modifier_private{opacity:1}.debug .t_object i.fa-flag,.debug .t_object i.fa-warning{color:red}.debug .t_object i.fa-eye{color:rgba(0,11,155,0.933333);font-size:1.1em;border-bottom:0}.debug .t_object i.fa-magic,.debug .t_object .t_modifier_magic,.debug .t_object .t_modifier_magic-read,.debug .t_object .t_modifier_magic-write{color:rgba(255,136,0,0.933333)}.debug .t_object .debugInfo-excluded>i.fa-eye-slash{color:#999}.debug .t_object .info{display:inline-block;background-color:#d9edf7;color:#31708f}.debug td.t_object{display:table-cell}.debug .m_assert,.debug .m_clear,.debug .m_count,.debug .m_error,.debug .m_groupEndValue,.debug .m_info,.debug .m_log,.debug .m_warn{position:relative;display:table;padding-left:10px;text-indent:-10px;padding-right:0.33em;word-break:break-word}.debug .m_table td,.debug .m_trace td{word-break:break-word}.debug .m_table td.t_string,.debug .m_trace td.t_string{padding-left:1em;text-indent:-0.75em}.debug .m_assert{background-color:rgba(255,204,204,0.75)}.debug .m_assert>i{margin-right:0.33em;margin-bottom:-0.2em;display:inline-block;line-height:0.6em;vertical-align:text-bottom}.debug .m_group .group-header{display:table;white-space:nowrap}.debug .m_group .group-header i.fa-warning{color:#cdcb06;margin-left:0.33em}.debug .m_group .group-header i.fa-times-circle{color:#d8000c;margin-left:0.33em}.debug .m_group .group-body{display:none}.debug .m_group>ul{list-style:none;margin-left:1em;border-left:1px solid rgba(0,0,0,0.25);padding-left:0.25rem}.debug .m_group.expanded>.group-body{display:block}.debug .m_error,.debug .m_group.level-error>.group-body,.debug .m_group.level-error:not(.expanded)>.group-header>.level-error{background-color:#ffbaba;color:#d8000c}.debug .m_info,.debug .m_group.level-info>.group-body,.debug .m_group.level-info:not(.expanded)>.group-header>.level-info{background-color:#d9edf7;color:#31708f}.debug .m_trace .classname{color:#146314}.debug .m_warn,.debug .m_group.level-warn>.group-body,.debug .m_group.level-warn:not(.expanded)>.group-header>.level-warn{background-color:#fefbe5;color:#8a6d3b}.debug li[data-channel="general.phpError"]>i+.t_string:nth-child(2){font-weight:bold}.debug li[data-channel="general.phpError"]>.t_string:nth-child(4){opacity:0.7}.debug li[data-channel="general.phpError"]>.t_string:nth-child(4)::before{content:"\A"}.debug li[data-channel="general.phpError"]>.t_string:nth-child(4)::after{content:none}.debug li[data-channel="general.phpError"].error-fatal{padding:10px 10px 10px 20px;border-left:solid 2px #d8000c}.debug li[data-channel="general.phpError"].error-fatal>.t_string:nth-child(2){display:inline-block;margin-bottom:5px;vertical-align:top;font-size:1.2em}.debug li[data-channel="general.phpError"].error-fatal>.t_string:nth-child(3)::before{content:"\A"}.debug table{width:auto;border-collapse:collapse}.debug table caption{caption-side:top;font-weight:bold;font-style:italic;padding-bottom:0;padding-top:2px;text-align:left}.debug table th,.debug table td{padding:0 0.25em;vertical-align:top}.debug table th.t_key{white-space:nowrap}.debug table th.t_key::before,.debug table th.t_key::after{content:none}.debug table td.classname{font-weight:bold}.debug table td.t_undefined{background-color:rgba(0,0,0,0.1)}.debug table td.t_undefined::after{content:none}.debug table th,.debug table tfoot td{font-weight:bold;background-color:rgba(0,0,0,0.1)}.debug table thead th{text-align:center}.debug table thead th .classname{opacity:0.5;font-style:italic}.debug table thead th .classname::before{content:"("}.debug table thead th .classname::after{content:")"}.debug table tr[data-toggle]{cursor:default}.debug table tr[data-toggle]:hover{color:#212529;background-color:rgba(0,0,0,0.075)}.debug table tbody th.t_int,.debug table td[data-type-more=numeric],.debug table td.timestamp,.debug table td.t_int{text-align:right;white-space:nowrap}.debug table.table-bordered th,.debug table.table-bordered td{border:1px solid #7f7f7f;padding:1px 0.25em}.debug table.table-hover tbody tr{cursor:default}.debug table.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,0.075)}.debug table.table-sort>thead th{cursor:default}.debug table.table-sort>thead th:hover{background-color:rgba(0,0,0,0.25)}.debug table.table-sort .sort-arrows{text-align:center;height:1.5em;width:1.2em;margin-left:0;margin-right:1px}.debug table.table-sort .sort-arrows .fa{position:absolute;opacity:0.33}.debug table.table-sort .sort-arrows .fa-caret-down{bottom:0}.debug table.table-sort .sort-arrows .fa-caret-up{top:-1px}.debug table.table-sort .sort-asc .fa-caret-down{opacity:1}.debug table.table-sort .sort-desc .fa-caret-up{opacity:1}.debug table.trace-context{width:100%}.debug table.trace-context tr.context{display:none}.debug table.trace-context tr.context td{color:#111;max-width:1px;background-color:#f5f2f0;padding:0.75em}.debug table.trace-context tr.context td hr{margin:1em 0}.debug .t_identifier{font-weight:bold;white-space:nowrap}.debug .t_type{color:#693}.debug .t_bool[data-type-more=true]{color:#993;text-shadow:1px 1px 2px rgba(153,153,51,0.5)}.debug .t_bool[data-type-more=false]{color:#c33;text-shadow:1px 1px 2px rgba(204,51,51,0.5)}.debug .t_callable{font-weight:bold}.debug .t_callable .t_type,.debug .t_callable .namespace{font-weight:normal}.debug .t_const{color:#039;font-family:monospace}.debug .t_const .t_identifier{color:inherit}.debug .t_int,.debug .t_float,.debug .t_string[data-type-more=numeric],.debug .t_string[data-type-more=timestamp]{font-family:Courier New,monospace,Ariel !important;color:#009;font-size:1.15em;line-height:1.15em}.debug .t_int::before,.debug .t_int::after,.debug .t_float::before,.debug .t_float::after,.debug .t_string[data-type-more=numeric]::before,.debug .t_string[data-type-more=numeric]::after,.debug .t_string[data-type-more=timestamp]::before,.debug .t_string[data-type-more=timestamp]::after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:0.8695em}.debug .t_key{opacity:0.75}.debug .t_key[data-file]{opacity:1}.debug .t_key::before,.debug .t_key::after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;color:#999}.debug .t_key::before{content:'[';margin-right:1px}.debug .t_key::after{content:']';margin-left:1px}.debug .t_key.t_int{white-space:nowrap}.debug .t_keyword{color:#07a}.debug .t_null{opacity:0.3}.debug .t_operator{color:#a67f59;white-space:nowrap !important}.debug .t_punct{color:#999}.debug .excluded,.debug .t_maxDepth,.debug .t_notInspected,.debug .t_recursion,.debug .t_unknown{font-weight:bold;color:red}.debug .t_resource{font-style:italic}.debug .t_string{white-space:pre-wrap;word-break:break-all}.debug .t_string::before,.debug .t_string::after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;opacity:0.33;color:#333}.debug .t_string::before{content:open-quote}.debug .t_string::after{content:close-quote}.debug .t_string.classname::before{content:none}.debug .t_string.classname::after{content:none}.debug .t_string>*{white-space:normal;word-break:break-word}.debug .t_string pre{white-space:pre}.debug .t_stringified{text-shadow:0 0 2px rgba(0,200,200,0.6)}.debug .t_undefined::after{content:"undefined";opacity:0.3}.debug.debug-drawer{position:fixed;bottom:0;left:0;width:100%;background-color:#fff;z-index:1049;height:100px;transform:translateY(100px);transition:all 0.5s}.debug.debug-drawer>*{box-sizing:border-box}.debug.debug-drawer .debug-pull-tab{display:inline-block;opacity:1;position:absolute;height:25px;top:-25px;margin-left:20px;border:1px solid #000;border-bottom-width:0;border-radius:5px 5px 0 0;padding:4px 14px;font-size:16px;background:#f3f3f3;cursor:pointer;transition:all 0.5s}.debug.debug-drawer .debug-pull-tab:hover{background:#dadada}.debug.debug-drawer .debug-pull-tab .debug-error-counts{margin-left:0.5em}.debug.debug-drawer .debug-pull-tab .badge{display:none}.debug.debug-drawer .debug-pull-tab .fa-spinner{display:none}.debug.debug-drawer .debug-resize-handle{display:block;position:absolute;top:-3px;height:4px;width:100%;opacity:0;border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0;background:#dadada;transition:all 0.25s ease-out}.debug.debug-drawer.debug-drawer-open{transform:translateY(0);height:auto}.debug.debug-drawer.debug-drawer-open .debug-pull-tab{opacity:0;transform:translateY(25px)}.debug.debug-drawer.debug-drawer-open .debug-pull-tab .fa-spinner{display:inline-block}.debug.debug-drawer.debug-drawer-open .debug-resize-handle{cursor:ns-resize}.debug.debug-drawer.debug-drawer-open .debug-resize-handle:hover{opacity:1}html.debug-resizing{cursor:ns-resize !important}html.debug-resizing .debug-drawer{transition:none}html.debug-resizing .debug-drawer .debug-resize-handle{opacity:1}.debug .debug-bar{position:relative;padding:5px;font-size:115%;background-color:rgba(0,0,0,0.2);margin-bottom:10px}.debug .debug-bar a{color:#6e6e6e}.debug .debug-bar button{border-radius:0;border-top-width:0;border-bottom-width:0}.debug .debug-bar button.close{font-size:21px;font-weight:300}.debug .debug-bar .float-right{position:absolute;top:0;right:6px;line-height:23px}.debug .debug-bar .float-right button{height:18px;border:0;padding:0;line-height:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.debug .debug-error-counts{position:relative;top:-2px;font-size:0.78em}.debug .debug-error-counts .badge{padding:0 0.4em 0 0.25em;color:inherit;background:inherit;font-size:inherit;vertical-align:unset}.debug .debug-bar{border-top:1px solid #d0d0d0;border-bottom:1px solid #d0d0d0;color:#6e6e6e;padding:0 34px 0 6px;background:#f3f3f3;font-size:16px;margin-bottom:0}.debug .debug-bar a:focus,.debug .debug-bar a:hover,.debug .debug-bar button:focus,.debug .debug-bar button:hover,.debug .debug-bar label:focus,.debug .debug-bar label:hover{color:#333;text-decoration:none}.debug .debug-bar nav{margin-left:20px;line-height:23px}.debug .debug-bar nav a{line-height:23px}.debug .debug-bar nav a.has-assert{line-height:22px;border-bottom:#da8585 solid 2px}.debug .debug-bar nav a.has-warn{line-height:22px;border-bottom:#e4cb0f solid 2px}.debug .debug-bar nav a.has-error{line-height:22px;border-bottom:red solid 2px}.debug .debug-bar nav a.active{line-height:22px;border-bottom:#4071e1 solid 2px}.debug .debug-bar>span{display:inline-block;line-height:23px}.debug .debug-options-toggle{position:relative;top:-1px}.debug .debug-options{position:absolute;top:100%;right:0;max-height:0;box-sizing:border-box;z-index:1000;float:right;min-width:12em;background:#f3f3f3;box-shadow:0 4px 8px rgba(0,0,0,0.25);transition:all 0.25s ease-out;overflow:hidden;font-size:13px}.debug .debug-options .debug-options-body{background-clip:padding-box;border:1px solid #d0d0d0;padding:0.5em 5px 0.5em 15px}.debug .debug-options.show{max-height:150px}.debug .debug-options label{font-weight:normal;padding:0.25em 0}.debug .debug-options label.disabled{color:#999}.debug .debug-options hr.dropdown-divider{margin:0.5em -5px 0.5em -15px;background:#d0d0d0;height:1px;border:none}.debug .debug-options .form-group{margin:0}.debug{transform:scale(1)}.debug .badge{display:inline-block;padding:0.25em 0.4em 0.16em;font-size:82%;font-weight:500;line-height:1;text-align:center;white-space:nowrap;vertical-align:bottom;border-radius:0.25rem;color:#fff;background-color:#666}.debug .debug-sidebar{position:absolute;box-sizing:border-box;width:126px;background:#f3f3f3;height:100%;transform:translateX(-119px);transition:transform .33s}.debug .debug-sidebar button{width:100%}.debug .debug-sidebar input[type=checkbox]{display:none}.debug .debug-sidebar label{font-weight:normal}.debug .debug-sidebar+.tab-body{margin-left:6px;padding-left:10px;transition:margin-left .33s}.debug .debug-sidebar.no-transition+.tab-body{transition:none}.debug .debug-sidebar .collapse{display:none}.debug .debug-sidebar .sidebar-content{padding:0 11px 0 4px;opacity:0;overflow:hidden}.debug .debug-sidebar.show{transform:translateX(0)}.debug .debug-sidebar.show .expand{display:none}.debug .debug-sidebar.show .collapse{display:block}.debug .debug-sidebar.show+.tab-body{margin-left:126px}.debug .debug-sidebar.show .sidebar-content{opacity:1;transition:opacity 0.33s}.debug .debug-sidebar .sidebar-toggle{position:absolute;box-sizing:border-box;right:0;top:0;height:100%;width:7px;background:#f3f3f3;border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0;cursor:pointer;display:flex;color:#d0d0d0;text-align:center;z-index:1}.debug .debug-sidebar .sidebar-toggle:hover{color:#6e6e6e;background:#dadada}.debug .debug-sidebar .sidebar-toggle>div{margin:auto;padding-left:1px}.debug .debug-sidebar .debug-filters{position:relative;margin:0 -4px 10px -4px}.debug .debug-sidebar .debug-filters ul{margin-left:0}.debug .debug-sidebar .debug-filters li{text-indent:0;padding-left:10px}.debug .debug-sidebar .debug-filters>li{padding-left:4px}.debug .debug-sidebar .debug-filters>li>*:first-child{padding-top:3px;padding-bottom:3px}.debug .debug-sidebar .debug-filters>li>ul{margin-left:-10px}.debug .debug-sidebar .debug-filters>li>ul>li{padding-left:32px}.debug .debug-sidebar .debug-filters label{padding:2px 0 2px 100%;white-space:nowrap}.debug .debug-sidebar .debug-filters label.disabled span{opacity:0.5}.debug .debug-sidebar .debug-filters label,.debug .debug-sidebar .debug-filters ul ul{margin-left:-100%;padding-left:100%}.debug .debug-sidebar .fa-times-circle{color:#d8000c}.debug .debug-sidebar .fa-warning{color:#8a6d3b}.debug .debug-sidebar .fa-info-circle{color:#31708f}.debug .debug-sidebar .toggle{cursor:pointer}.debug .debug-sidebar .toggle.active{background:#dadada}.debug .debug-sidebar .toggle.active:hover{background:#bacce0}.debug .debug-sidebar .toggle:hover,.debug .debug-sidebar .toggle:hover+ul{background:#dde6f0}.debug .debug-sidebar .toggle:hover .toggle.active,.debug .debug-sidebar .toggle:hover+ul .toggle.active{background:#bacce0}.debug i.fa{margin-right:0.33em}.debug i.fa-lg{font-size:1.33em}.debug i.fa-plus-circle{opacity:0.42}.debug i.fa-calendar{font-size:1.1em}.debug .filter-hidden{display:none}.debug .filter-hidden.m_group{display:list-item}.debug .filter-hidden.m_group>.group-header{display:none}.debug .filter-hidden.m_group>.group-body{display:block !important;margin-left:0;border-left:0;padding-left:0}.debug .filter-hidden.m_group.filter-hidden-body>.group-body{display:none !important}.debug .empty.hide-if-empty{display:none}.debug .empty.m_group .group-header{cursor:auto}.debug .vis-toggles span:hover,.debug [data-toggle=interface]:hover{background-color:rgba(0,0,0,0.1)}.debug .vis-toggles .toggle-off.toggle-off,.debug .interface.toggle-off{opacity:0.5}.debug ul.list-unstyled>li:has(.show-more-container){text-indent:0;padding-left:0}.debug .show-more-container{display:inline}.debug .show-more-wrapper{display:block;position:relative;height:70px;overflow:hidden}.debug .show-more-fade{position:absolute;bottom:-1px;width:100%;height:55px;background-image:linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.75));pointer-events:none}.debug .level-error .show-more-fade,.debug .m_error .show-more-fade{background-image:linear-gradient(to bottom, rgba(255,186,186,0), #ffbaba)}.debug .level-info .show-more-fade,.debug .m_info .show-more-fade{background-image:linear-gradient(to bottom, rgba(217,237,247,0), #d9edf7)}.debug .level-warn .show-more-fade,.debug .m_warn .show-more-fade{background-image:linear-gradient(to bottom, rgba(254,251,229,0), #fefbe5)}.debug [title]:hover .show-more-fade{background-image:linear-gradient(to bottom, rgba(201,201,201,0), #c9c9c9)}.debug .show-more,.debug .show-less{display:table;box-shadow:1px 1px 0 0 rgba(0,0,0,0.2);border:1px solid rgba(0,0,0,0.2);border-radius:2px;background-color:#eee}.debug-noti-wrap{position:fixed;display:none;top:0;width:100%;height:100%;pointer-events:none;z-index:1050}.debug-noti-wrap .debug-noti{display:table-cell;text-align:center;vertical-align:bottom;font-size:30px;transform-origin:50% 100%}.debug-noti-wrap .debug-noti.animate{animation-duration:1s;animation-name:expandAndFade;animation-timing-function:ease-in}.debug-noti-table{display:table;width:100%;height:100%}@keyframes expandAndFade{from{opacity:0.9;transform:scale(0.9, 0.94)}to{opacity:0;transform:scale(1, 1)}}.debug .expand-all{margin-bottom:0.5em}.debug .file-link.lpad{margin-left:0.33em}.debug .file-link i{margin-right:0;vertical-align:baseline}.debug .hasTooltip:not(a),.debug *[title]:not(a){cursor:help}.debug .hasTooltip:not(a):hover,.debug *[title]:not(a):hover{background-color:rgba(0,0,0,0.05)}.debug *[data-toggle]{cursor:pointer !important}.debug .string-encoded.tabs-container>i{line-height:20px;margin-right:0}.debug .string-encoded[data-type=base64]>.string-raw .t_string{font-family:monospace}.debug .prettified{color:rgba(0,11,155,0.933333)}.debug .timestamp{color:#009}.debug .binary,.debug .maxlen,.debug .char-ws,.debug .unicode{padding:0 0.3em;cursor:pointer}.debug .binary:hover,.debug .maxlen:hover,.debug .char-ws:hover,.debug .unicode:hover{outline:0;color:#e00}.debug .binary,.debug .char-control{background-color:silver;color:#003;font-family:monospace !important;font-weight:bold}.debug .char-control{display:inline-block;vertical-align:baseline;clip-path:inset(30% 0);transform:scale(2);margin-left:0.33em}.debug .maxlen{background-color:#fc7}.debug .char-ws,.debug .unicode{background-color:#c0c0ff;font-weight:normal}.debug ul[data-type-more=binary]>li.t_string{text-indent:0;padding:0}.debug ul[data-type-more=binary]>li.t_string::before{content:""}.debug ul[data-type-more=binary]>li.t_string::after{content:""}.debug ul[data-type-more=binary]>li.t_string>.binary{padding:0;margin:0;word-spacing:-0.25em;font-size:0.8em}.debug .ws_s,.debug .ws_t,.debug .ws_r,.debug .ws_n,.debug .ws_p{opacity:0.33}.debug .ws_t::before{display:inline-block;content:"\203A";width:1em}.debug .ws_r::before{content:"\\r"}.debug .ws_n::before{content:"\\n"}.debug .tippy-box{background-color:#fff;background-clip:padding-box;border:2px solid rgba(0,8,16,0.3);border-radius:4px;outline:0;transition-property:transform, visibility, opacity;color:#333;box-shadow:0 4px 14px -2px rgba(0,8,16,0.08)}.debug .tippy-box .tippy-content{padding:5px 9px;z-index:1}.debug .tippy-box>.tippy-backdrop{background-color:#fff}.debug .tippy-box>.tippy-arrow{width:16px;height:16px;color:#333}.debug .tippy-box>.tippy-arrow::before{content:"";position:absolute;border-color:transparent;border-style:solid}.debug .tippy-box>.tippy-arrow::after,.debug .tippy-box>.tippy-svg-arrow::after{content:'';position:absolute;z-index:-1}.debug .tippy-box>.tippy-arrow::after{border-color:transparent;border-style:solid}.debug .tippy-box[data-placement^='top']>.tippy-arrow{bottom:1px}.debug .tippy-box[data-placement^='top']>.tippy-arrow::before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:#fff;transform-origin:center top}.debug .tippy-box[data-placement^='top']>.tippy-arrow::after{border-top-color:rgba(0,8,16,0.5);border-width:7px 7px 0;top:17px;left:1px}.debug .tippy-box[data-placement^='top']>.tippy-svg-arrow>svg{top:16px}.debug .tippy-box[data-placement^='top']>.tippy-svg-arrow::after{top:17px}.debug .tippy-box[data-placement^='bottom']>.tippy-arrow{top:0}.debug .tippy-box[data-placement^='bottom']>.tippy-arrow::before{top:-6px;left:0;border-width:0 8px 8px;border-bottom-color:#fff;transform-origin:center bottom}.debug .tippy-box[data-placement^='bottom']>.tippy-arrow::after{border-bottom-color:rgba(0,8,16,0.5);border-width:0 7px 7px;bottom:17px;left:1px}.debug .tippy-box[data-placement^='bottom']>.tippy-svg-arrow>svg{bottom:16px}.debug .tippy-box[data-placement^='bottom']>.tippy-svg-arrow::after{bottom:17px}.debug .tippy-box[data-placement^='left']>.tippy-arrow::before{border-left-color:#fff}.debug .tippy-box[data-placement^='left']>.tippy-arrow::after{border-left-color:rgba(0,8,16,0.5);border-width:7px 0 7px 7px;left:17px;top:1px}.debug .tippy-box[data-placement^='left']>.tippy-svg-arrow>svg{left:11px}.debug .tippy-box[data-placement^='left']>.tippy-svg-arrow::after{left:12px}.debug .tippy-box[data-placement^='right']>.tippy-arrow::before{border-right-color:#fff;right:16px}.debug .tippy-box[data-placement^='right']>.tippy-arrow::after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:rgba(0,8,16,0.5)}.debug .tippy-box[data-placement^='right']>.tippy-svg-arrow>svg{right:11px}.debug .tippy-box[data-placement^='right']>.tippy-svg-arrow::after{right:12px}.debug .tippy-box>.tippy-svg-arrow{fill:white}.debug .tippy-box>.tippy-svg-arrow::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiIC8+PC9zdmc+);background-size:16px 6px;width:16px;height:6px}.debug .indent{padding-left:10px !important}.debug .p0{padding:0 !important}.debug .fa-inverse{color:#fff}.debug .fa-stack{line-height:2em}.debug .fa-stack-1x{line-height:inherit}.debug .fa-stack-2x{font-size:2em}.debug .float-left{float:left !important}.debug .float-right{float:right !important}.debug .font-weight-bold{font-weight:bold}.debug .no-quotes::before{content:none}.debug .no-quotes::after{content:none}.debug .text-center{text-align:center}.debug .text-muted{opacity:.5}.debug .text-left{text-align:left !important}.debug .text-right{text-align:right !important}.debug .text-error{color:#d8000c}.debug .text-info{color:#31708f}.debug .text-warn{color:#8a6d3b} diff --git a/src/Debug/js/Debug.jquery.js b/src/Debug/js/Debug.jquery.js index ab9f5642..2d99d1c8 100644 --- a/src/Debug/js/Debug.jquery.js +++ b/src/Debug/js/Debug.jquery.js @@ -670,34 +670,37 @@ return } $entry.find('table tbody tr').each(function () { - var $tr = $(this); - var $tds = $tr.find('> td'); - var info = { - file: $tr.data('file') || $tds.eq(0).text(), - line: $tr.data('line') || $tds.eq(1).text() - }; - var $a = $('', { - class: 'file-link', - href: buildFileLink(info.file, info.line), - html: '', - style: 'vertical-align: bottom', - title: 'Open in editor' - }); - if (isUpdate) { - $tr.find('.file-link').replaceWith($a); - return // continue - } - if ($tr.hasClass('context')) { - $tds.eq(0).attr('colspan', parseInt($tds.eq(0).attr('colspan'), 10) + 1); - return // continue - } - $tds.last().after($('', { - class: 'text-center', - html: $a - })); + createFileLinksTraceProcessTr($(this), isUpdate); }); } + function createFileLinksTraceProcessTr($tr, isUpdate) { + var $tds = $tr.find('> td'); + var info = { + file: $tr.data('file') || $tds.eq(0).text(), + line: $tr.data('line') || $tds.eq(1).text() + }; + var $a = $('', { + class: 'file-link', + href: buildFileLink(info.file, info.line), + html: '', + style: 'vertical-align: bottom', + title: 'Open in editor' + }); + if (isUpdate) { + $tr.find('.file-link').replaceWith($a); + return // continue + } + if ($tr.hasClass('context')) { + $tds.eq(0).attr('colspan', parseInt($tds.eq(0).attr('colspan'), 10) + 1); + return // continue + } + $tds.last().after($('', { + class: 'text-center', + html: $a + })); + } + function createFileLink (string, remove, foundFiles) { var $replace; var $string = $(string); @@ -6065,20 +6068,34 @@ return } $ref.data('titleOrig', title); - if (title === 'Deprecated') { - title = tippyContentDeprecated($ref, title); - } else if (title === 'Implements') { - title = tippyContentImplements($ref, title); - } else if (['Inherited', 'Private ancestor'].indexOf(title) > -1) { - title = tippyContentInherited($ref, title); - } else if (title === 'Overrides') { - title = tippyContentOverrides($ref, title); - } else if (title === 'Open in editor') { - title = ' ' + title; - } else if (title === 'Throws') { - title = tippyContentThrows($ref, title); - } else if (title.match(/^\/.+: line \d+( \(eval'd line \d+\))?$/)) { - title = ' ' + title; + return tippyContentBuildTitle(title, $ref) + } + + function tippyContentBuildTitle(title, $ref) { + switch (title) { + case 'Deprecated': + title = tippyContentDeprecated($ref, title); + break + case 'Implements': + title = tippyContentImplements($ref, title); + break + case 'Inherited': + case 'Private ancestor': + title = tippyContentInherited($ref, title); + break + case 'Overrides': + title = tippyContentOverrides($ref, title); + break + case 'Open in editor': + title = ' ' + title; + break + case 'Throws': + title = tippyContentThrows($ref, title); + break + default: + if (title.match(/^\/.+: line \d+( \(eval'd line \d+\))?$/)) { + title = ' ' + title; + } } if ($ref.parent().hasClass('hasTooltip')) { title = title + '

' + tippyContent($ref.parent()[0]); diff --git a/src/Debug/js/Debug.jquery.min.js b/src/Debug/js/Debug.jquery.min.js index 2acb7b54..12526eeb 100644 --- a/src/Debug/js/Debug.jquery.min.js +++ b/src/Debug/js/Debug.jquery.min.js @@ -1 +1 @@ -!function(u){"use strict";var O,P;function F(n){var t,e=n.find("> .array-inner");0 .t_array-expand").length||(u.trim(e.html()).length<1?n.addClass("expanded").find("br").hide():(e=(t=n).find("> .array-inner"),t.closest(".array-file-tree").length?(t.find("> .t_keyword, > .t_punct").remove(),e.find("> li > .t_operator, > li > .t_key.t_int").remove(),t.prevAll(".t_key").each(function(){var e=u(this).attr("data-toggle","array");t.prepend(e),t.prepend('')})):(e=u('array( ··· )'),t.find("> .t_keyword").first().wrap('').after('( ').parent().next().remove(),t.prepend(e)),u.each(O.iconsArray,function(e,t){n.find(e).prepend(t)}),n.debugEnhance(function(e){var t=e.data("expand"),n=e.parentsUntil(".m_group",".t_object, .t_array").length,a=0===n;void 0===t&&0!==n&&(t=e.closest(".t_array[data-expand]").data("expand"));void 0===t&&(t=a);return t||e.hasClass("array-file-tree")}(n)?"expand":"collapse")))}function H(e){P=e.data("config").get(),e.on("click","[data-toggle=vis]",function(){(e=u(e=this),t=e.data("vis"),n=e.closest(".t_object"),a=n.find("> .object-inner"),i=a.find("[data-toggle=vis][data-vis="+t+"]"),t="inherited"===t?"dd[data-inherited-from], .private-ancestor":"."+t,a=a.find(t),t=e.hasClass("toggle-off"),i.html(e.html().replace(t?"show ":"hide ",t?"hide ":"show ")).addClass(t?"toggle-on":"toggle-off").removeClass(t?"toggle-off":"toggle-on"),t)?(i=a).each(function(){var n=u(this),e=n.closest(".object-inner"),a=!0;e.find("> .vis-toggles [data-toggle]").each(function(){var e=u(this),t=e.hasClass("toggle-on"),e=e.data("vis");if(!t&&1===n.filter("inherited"===e?"dd[data-inherited-from], .private-ancestor":"."+e).length)return a=!1}),a&&n.show()}):a.hide();var e,t,n,a,i;return B(n,!0),!1}),e.on("click","[data-toggle=interface]",function(){return N(this),!1})}function I(e){e.find("> .classname, > .t_const").each(function(){var e=u(this),t=e.next(),n="object"===e.data("toggle");t.is(".t_maxDepth, .t_recursion, .excluded")?e.addClass("empty"):n||0!==t.length&&(e.wrap('').after(' '),t.hide())})}function N(e){var e=u(e),n=e.closest(".t_object");(e=e.is(".toggle-off")?e.add(e.next().find(".toggle-off")):e.add(e.next().find(".toggle-on"))).each(function(){var e=u(this),t=e.data("interface"),t=R(n,t);e.is(".toggle-off")?(e.addClass("toggle-on").removeClass("toggle-off"),t.show()):(e.addClass("toggle-off").removeClass("toggle-on"),t.hide())}),B(n)}function R(e,t){t='> .object-inner > dd[data-implements="'+CSS.escape(t)+'"]';return e.find(t)}function B(e,t){var n=t?".object-inner > .heading":"> .object-inner > .heading";e.find(t?".object-inner > dt":"> .object-inner > dt").each(function(e,t){var n=u(t).nextUntil("dt"),a=n.not(".heading").filter(function(e,t){return"none"!==u(t).css("display")}),n=0 .object-inner"),n=t.data("accessible"),a=null;t.is(".enhanced")||(e.find("> dd > ul > li > .interface, > dd > ul > li > .interface + ul .interface").each(function(){var e=u(this).text();0!==R(t,e).length&&u(this).addClass("toggle-on").prop("title","toggle interface methods").attr("data-toggle","interface").attr("data-interface",e)}).filter(".toggle-off").removeClass("toggle-off").each(function(){N(this)}),e.find("> .private, > .protected").filter(".magic, .magic-read, .magic-write").removeClass("private protected"),"public"===n&&(e.find(".private, .protected").hide(),a="allDesc"),function(e,t){var n=0');n&&s.append(''+t+" protected");a&&s.append(''+t+" private");i&&s.append('show excluded');o&&s.append('hide inherited');e.find("> dd[class*=t_modifier_]").length?e.find("> dd[class*=t_modifier_]").last().after(s):e.prepend(s)}(e,n),o=e,u.each(P.iconsObject,function(e,t){var n=!0,a=e.match(/(?:parent(\S+)\s)?(?:context(\S+)\s)?(.*)$/),i=t.match(/^([ap])\s*:(.+)$/);if(a){if(a[1]&&0===o.parent().filter(a[1]).length)return;a[2]&&(o=o.filter(a[2])),e=a[3]}i&&(n="p"===i[1],t=i[2]),a=o.find(e),n?a.prepend(t):a.append(t)}),e.find("> .property.forceShow").show().find("> .t_array").debugEnhance("expand"),a&&B(t,"allDesc"===a),t.addClass("enhanced"))}});function U(){var e=u(this).closest(".show-more-container");e.find(".show-more-wrapper").css("display","block").animate({height:"70px"}),e.find(".show-more-fade").fadeIn(),e.find(".show-more").show(),e.find(".show-less").hide()}function $(){var e=u(this).closest(".show-more-container");e.find(".show-more-wrapper").animate({height:e.find(".t_string").height()},400,"swing",function(){u(this).css("display","inline")}),e.find(".show-more-fade").fadeOut(),e.find(".show-more").hide(),e.find(".show-less").show()}function z(e){var t="https://symbl.cc/en/"+u(this).data("codePoint");e.stopPropagation(),window.open(t,"unicode").focus()}function K(e){var t=u(e.target),n=t.closest("li[class*=m_]");e.stopPropagation(),t.find("> .array-inner > li > :last-child, > .array-inner > li[class]").each(function(){V(this,n)})}function J(e){var t=u(e.target);e.stopPropagation(),t.find("> .group-body").debugEnhance()}function Y(e){var t=u(e.target),n=t.closest("li[class*=m_]");e.stopPropagation(),t.is(".enhanced")||(t.find("> .object-inner").find("> .constant > :last-child,> .property > :last-child,> .method .t_string").each(function(){V(this,n)}),q.enhanceInner(t))}function G(e){e=u(e.target),e=e.hasClass("t_array")?e.find("> .array-inner").find("> li > .t_string, > li.t_string"):e.hasClass("m_group")?e.find("> .group-body > li > .t_string"):e.hasClass("t_object")?e.find("> .object-inner").find(["> dd.constant > .t_string","> dd.property:visible > .t_string","> dd.method > ul > li > .t_string.return-value"].join(", ")):u();e.not("[data-type-more=numeric]").each(function(){var e;35<(e=u(this)).height()-70&&((e=e.wrap('
').parent()).append('
'),(e=e.wrap('
').parent()).append(''),e.append(''))})}function X(e){var s=u(e),e=s.find("> thead");s.is("table.sortable")&&(s.addClass("table-sort"),e.on("click","th",function(){var e,t=u(this),n=u(this).closest("tr").children(),a=n.index(t),i="desc"==(t.is(".sort-asc")?"asc":"desc")?"asc":"desc",n=(n.removeClass("sort-asc sort-desc"),t.addClass("sort-"+i),t.find(".sort-arrows").length||(n.find(".sort-arrows").remove(),t.append('')),s[0]),t=a,a=i,o=n.tBodies[0],r=o.rows,n="function"==typeof Intl.Collator?new Intl.Collator([],{numeric:!0,sensitivity:"base"}):null;for(a="desc"===a?-1:1,r=(r=Array.prototype.slice.call(r,0)).sort(function(i,o,r){var s=/^([+-]?(?:0|[1-9]\d*)(?:\.\d*)?)(?:[eE]([+-]?\d+))?$/;return function(e,t){var e=e.cells[i].textContent.trim(),t=t.cells[i].textContent.trim(),n=e.match(s),a=t.match(s);return n&&(e=Q(e,n)),a&&(t=Q(t,a)),o*function(e,t,n){var a=0;if(afloat&&bfloat)return e .object-inner > .property.debug-value > .t_identifier").filter(function(){return this.innerText.match(/^file$/)}),a=!0===e.data("detectFiles")||0 *:last-child").remove()}else a.find("table thead tr > *:last-child").after("");a.find("table tbody tr").each(function(){var e=u(this),t=e.find("> td"),n={file:e.data("file")||t.eq(0).text(),line:e.data("line")||t.eq(1).text()},n=u("
",{class:"file-link",href:ie(n.file,n.line),html:'',style:"vertical-align: bottom",title:"Open in editor"});o?e.find(".file-link").replaceWith(n):e.hasClass("context")?t.eq(0).attr("colspan",parseInt(t.eq(0).attr("colspan"),10)+1):t.last().after(u("",{class:"text-center",html:n}))})}else e.is("[data-file]")?(i=n,(a=e).find("> .file-link").remove(),i||a.append(u("",{html:'',href:ie(a.data("file"),a.data("line")),title:"Open in editor",class:"file-link lpad"})[0].outerHTML)):(a=t,l=n,d=(t=e).data("foundFiles")||[],a=(a=t.is(".m_table")?t.find("> table > tbody > tr > .t_string"):a)||[],u.each(a,function(){var e,t,n,a,i,o,r,s;t=l,n=d,o=u(e=this),e=e.attributes,r=u.trim(o.text()),n=function(e,t){var n=[],a=u.trim(e.text());if(e.data("file"))return"boolean"==typeof e.data("file")?[null,a,1]:[null,e.data("file"),e.data("line")||1];if(0===t.indexOf(a))return[null,a,1];if(e.parent(".property.debug-value").find("> .t_identifier").text().match(/^file$/))return n={line:1},e.parent().parent().find("> .property.debug-value").each(function(){var e=u(this).find("> .t_identifier")[0].innerText,t=u(this).find("> *:last-child"),t=u.trim(t[0].innerText);n[e]=t}),[null,a,n.line];return a.match(/^(\/.+\.php)(?: \(line (\d+)(, eval'd line \d+)?\))?$/)||[]}(o,n),s=!0!==t&&o.hasClass("file-link"),o.closest(".m_trace").length?c(o.closest(".m_trace")):n.length&&(n=function(e,t,n,a,i){var o;a?(o=u("",{text:n}),e.removeClass("file-link")):i?(o=e).prop("href",ie(t[1],t[2])):o=u("",{class:"file-link",href:ie(t[1],t[2]),html:n+' ',title:"Open in editor"});return o}(o,n,r,t,s),!1===s&&(a=o,i=n,s=e,u.each(s,function(){var e;void 0===this||(e=this.name,-1<["html","href","title"].indexOf(e))||("class"===e?(i.addClass(this.value),a.removeClass("t_string")):(i.attr(e,this.value),a.removeAttr(e)))}),s.style)&&i.attr("style",s.style.value),o.is("td, th, li")?o.html(t?r:n):o.replaceWith(n))}))}function ie(e,t){var n={file:e,line:t||1};return r.linkFilesTemplate.replace(/%(\w*)\b/g,function(e,t){return Object.prototype.hasOwnProperty.call(n,t)?n[t]:""})}var i,o,t,oe,re=[],se=!1;function le(e){var t;s=e.data("config").get(),O=e.data("config").get(),H(e),V=l,q=W,(t=e).on("click",".close[data-dismiss=alert]",function(){u(this).parent().remove()}),t.on("click",".show-more-container .show-less",U),t.on("click",".show-more-container .show-more",$),t.on("click",".unicode",z),t.on("expand.debug.array",K),t.on("expand.debug.group",J),t.on("expand.debug.object",Y),t.on("expanded.debug.next",".context",function(e){V(u(e.target).find("> td > .t_array"),u(e.target).closest("li"))}),t.on("expanded.debug.array expanded.debug.group expanded.debug.object",G),Z(e)}function de(e){var t=e.parent(),t=!t.hasClass("m_group")||t.hasClass("expanded");if(e.hide(),e.children().each(function(){ce(u(this))}),t&&e.show().trigger("expanded.debug.group"),!se){for(se=!0;re.length;)re.shift().debugEnhance("expand");se=!1}!1===e.parent().hasClass("m_group")&&e.addClass("enhanced")}function ce(e){if(!e.hasClass("enhanced")){if(e.hasClass("m_group"))i=(a=e).find("> .group-header"),o=i.next(),fe(a),fe(i),i.attr("data-toggle","group"),i.find(".t_array, .t_object").each(function(){u(this).data("expand",!1),l(this,a)}),u.each(["level-error","level-info","level-warn"],function(e,t){var n;a.hasClass(t)&&(n=i.children("i").eq(0),i.wrapInner(''),i.prepend(n))}),a.hasClass("expanded")||o.find(".m_error, .m_warn").not(".filter-hidden").not("[data-uncollapse=false]").length?re.push(i):i.debugEnhance("collapse",!0);else{if(e.hasClass("filter-hidden"))return;var t,n;e.is(".m_table, .m_trace")?(c(t=e),fe(t),t.hasClass("m_table")&&t.find("> table > tbody > tr > td").each(function(){l(this,t)}),t.find("tbody > tr.expanded").next().trigger("expanded.debug.next"),X(t.find("> table"))):((n=e).data("file")&&(n.attr("title")||(o=n.data("file")+": line "+n.data("line"),n.data("evalline")&&(o+=" (eval'd line "+n.data("evalline")+")"),n.attr("title",o)),c(n)),fe(n),n.children().each(function(){l(this,n)}))}var a,i,o;e.addClass("enhanced"),e.trigger("enhanced.debug")}}function l(e,t){e=u(e);e.is(".t_array")?F(e):e.is(".t_object")?I(e):e.is("table")?X(e):e.is(".t_string")?c(t,e):e.is(".string-encoded.tabs-container")&&l(e.find("> .tab-pane.active > *"),t)}function fe(e){var t,n,a,i,o=function(e){var t,n,a;if(e.data("icon"))return e.data("icon").match("<")?u(e.data("icon")):u("").addClass(e.data("icon"));if(!e.hasClass("m_group"))for(a in n=e.hasClass("group-header")?e.parent():e,s.iconsMethods)if(n.is(a)){t=u(s.iconsMethods[a]);break}return t}(e),r=e;for(i in s.iconsMisc)0!==(a=r.find(i)).length&&(n=u(s.iconsMisc[i]),n=(a.find("> i:first-child").hasClass(n.attr("class"))||a.prepend(n),null));o&&(e.hasClass("m_group")?e=e.find("> .group-header .group-label").eq(0):e.find("> table").length&&((t=e.find("> table > caption")).length||(t=u(""),e.find("> table").prepend(t)),e=t),e.find("> i:first-child").hasClass(o.attr("class"))||e.prepend(o))}function pe(e){(o=(i=e).data("config")).get("drawer")&&(i.addClass("debug-drawer debug-enhanced-ui"),(e=i.find(".debug-menu-bar")).before('
PHP
'),e.find(".float-right").append(''),i.find(".tab-panes").scrollLock(),i.find(".debug-resize-handle").on("mousedown",me),i.find(".debug-pull-tab").on("click",ue),i.find(".debug-menu-bar .close").on("click",ge),o.get("persistDrawer"))&&o.get("openDrawer")&&ue()}function ue(){i.addClass("debug-drawer-open"),i.debugEnhance(),ve(),u("body").css("marginBottom",i.height()+8+"px"),u(window).on("resize",ve),o.get("persistDrawer")&&o.set("openDrawer",!0)}function ge(){i.removeClass("debug-drawer-open"),u("body").css("marginBottom",""),u(window).off("resize",ve),o.get("persistDrawer")&&o.set("openDrawer",!1)}function he(e){ve(t+(oe-e.pageY),!0)}function me(e){u(e.target).closest(".debug-drawer").is(".debug-drawer-open")&&(t=i.find(".tab-panes").height(),oe=e.pageY,u("html").addClass("debug-resizing"),i.parents().on("mousemove",he).on("mouseup",be),e.preventDefault())}function be(){u("html").removeClass("debug-resizing"),i.parents().off("mousemove",he).off("mouseup",be),u("body").css("marginBottom",i.height()+8+"px")}function ve(e,t){var n=i.find(".tab-panes"),a=i.find(".debug-menu-bar").outerHeight(),a=window.innerHeight-a-50;e=function(e){var t=i.find(".tab-panes");if(e&&"object"!=typeof e)return e;!(e=parseInt(t[0].style.height,10))&&o.get("persistDrawer")&&(e=o.get("height"));return e||100}(e),e=Math.min(e,a),e=Math.max(e,20),n.css("height",e),t&&o.get("persistDrawer")&&o.set("height",e)}u.fn.scrollLock=function(e){return(e=void 0===e||e)?void u(this).on("DOMMouseScroll mousewheel wheel",function(e){function t(){return e.stopPropagation(),e.preventDefault(),e.returnValue=!1}var n=u(this),a=this.scrollTop,i=this.scrollHeight,o=n.innerHeight(),r=e.originalEvent.wheelDelta,s=0 .tab-body > hr").toggleClass("filter-hidden",0 .tab-body").find(" > .debug-log-summary, > .debug-log").filter(function(){return u(this).height()<1}).length)}function _e(){var e=u(this),t=e.is(":checked"),n=e.closest("label").next("ul").find("input"),a=e.closest(".debug");0 .tab-panes > .tab-primary > .tab-body").find(".m_alert, .group-body > *:not(.m_groupSummary)").each(function(){s.push({depth:u(this).parentsUntil(".tab_body").length,node:u(this)})}),s.sort(function(e,t){return e.depth .group-body").debugEnhance()}(l),o)&&l.hasClass("m_group")&&l.trigger("collapsed.debug.group")}Ce(e.find("> .tab-panes > .tab-pane.active")),Ee(e)}function Ee(e){var t=0'),a.get("drawer")||e.find("input[name=persistDrawer]").closest("label").remove(),n.find(".debug-options-toggle").on("click",Ie),u("input[name=debugCookie]").on("change",He).prop("checked",a.get("debugKey")&&Te("debug")===a.get("debugKey")),a.get("debugKey")||u("input[name=debugCookie]").prop("disabled",!0).closest("label").addClass("disabled"),u("input[name=persistDrawer]").on("change",Be).prop("checked",a.get("persistDrawer")),n.find("input[name=linkFiles]").on("change",Ne).prop("checked",a.get("linkFiles")).trigger("change"),n.find("input[name=linkFilesTemplate]").on("change",Re).val(a.get("linkFilesTemplate"))}function Pe(e){0===n.find(".debug-options").find(e.target).length&&qe()}function Fe(e){e.keyCode===Se&&qe()}function He(){u(this).is(":checked")?je("debug",a.get("debugKey"),7):je("debug","",-1)}function Ie(e){var t=u(this).closest(".debug-bar").find(".debug-options").is(".show");n=u(this).closest(".debug"),t?qe():(n.find(".debug-options").addClass("show"),u("body").on("click",Pe),u("body").on("keyup",Fe)),e.stopPropagation()}function Ne(){var e=u(this).prop("checked"),t=u(this).closest(".debug-options").find("input[name=linkFilesTemplate]").closest(".form-group");e?t.slideDown():t.slideUp(),a.set("linkFiles",e),u("input[name=linkFilesTemplate]").trigger("change")}function Re(){var e=u(this).val();a.set("linkFilesTemplate",e),n.trigger("config.debug.updated","linkFilesTemplate")}function Be(){var e=u(this).is(":checked");a.set({persistDrawer:e,openDrawer:e,openSidebar:!0})}function qe(){n.find(".debug-options").removeClass("show"),u("body").off("click",Pe),u("body").off("keyup",Fe)}var Ve,p,g,We=!1,Ue={alert:'Alerts',error:'Error',warn:'Warning',info:'Info',other:'Other'},$e='
';function ze(e){var t=e.find("> .tab-panes > .tab-primary");d=e.data("config")||u("body").data("config"),f=e,t.length&&t.data("options").sidebar&&Qe(f),d.get("persistDrawer")&&!d.get("openSidebar")&&Ze(f),f.on("click",".close[data-dismiss=alert]",Je),f.on("click",".sidebar-toggle",Ye),f.on("change",".debug-sidebar input[type=checkbox]",Ke),We||(xe.push(Xe),we.push(Ge),We=!0)}function Ke(e){var t=u(this),n=t.closest(".toggle"),a=n.next("ul").find(".toggle"),i=t.is(":checked"),o=u(".m_alert.error-summary.have-fatal");n.toggleClass("active",i),a.toggleClass("active",i),"fatal"===t.val()&&(o.find(".error-fatal").toggleClass("filter-hidden",!i),o.toggleClass("filter-hidden",0===o.children().not(".filter-hidden").length))}function Je(e){var t=u(e.delegateTarget);setTimeout(function(){0===t.find(".tab-primary > .tab-body > .m_alert").length&&t.find(".debug-sidebar input[data-toggle=method][value=alert]").parent().addClass("disabled")})}function Ye(){var e=u(this).closest(".debug");(e.find(".debug-sidebar").is(".show")?Ze:et)(e)}function Ge(e){var t=e[0].className.match(/\bm_(\S+)\b/),t=t?t[1]:null;return!De.sidebar||("group"===t&&e.find("> .group-body")[0].className.match(/level-(error|info|warn)/)&&(t=e.find("> .group-body")[0].className.match(/level-(error|info|warn)/)[1],e.toggleClass("filter-hidden-body",Le.indexOf(t)<0)),-1<["alert","error","warn","info"].indexOf(t)?-1 .tab-primary > .tab-body > .expand-all"),s=(e.find(".tab-panes > .tab-primary > .tab-body").before(o),l=(l=e).closest(".debug").find(".m_alert.error-summary"),(s=l.find(".in-console")).prev().remove(),s.remove(),0===l.children().length&&l.remove(),i=(a=e).find(".debug-sidebar .php-errors ul"),u.each(["fatal","error","warning","deprecated","notice","strict"],function(e,t){var n=("fatal"===t?a.find(".m_alert.error-summary.have-fatal"):a.find(".error-"+t).filter(".m_error,.m_warn")).length;0!==n&&i.append(u("
  • ").append(u('