diff --git a/configuration b/configuration index b45b9762dee..a9c61e32ecb 100644 --- a/configuration +++ b/configuration @@ -11,7 +11,7 @@ export DENO=v1.41.0 # TODO figure out where 0.1.41 apple silicon libs are available export DENO_DOM=v0.1.35-alpha-artifacts -export PANDOC=3.2 +export PANDOC=3.4 export DARTSASS=1.70.0 export ESBUILD=0.19.12 export TYPST=0.11.0 diff --git a/dev-docs/feature-format-matrix/qmd-files/raw-blocks/interpreted/pandoc-native/document.qmd b/dev-docs/feature-format-matrix/qmd-files/raw-blocks/interpreted/pandoc-native/document.qmd index 116689039d3..24fbcfc9c50 100644 --- a/dev-docs/feature-format-matrix/qmd-files/raw-blocks/interpreted/pandoc-native/document.qmd +++ b/dev-docs/feature-format-matrix/qmd-files/raw-blocks/interpreted/pandoc-native/document.qmd @@ -25,7 +25,7 @@ _quarto: html: ensureHtmlElements: - - - 'table.table' + - 'table' - [] typst: ensureTypstFileRegexMatches: diff --git a/dev-docs/update-pandoc-checklist.md b/dev-docs/update-pandoc-checklist.md index ae883f1389b..ac3115da0ad 100644 --- a/dev-docs/update-pandoc-checklist.md +++ b/dev-docs/update-pandoc-checklist.md @@ -1,7 +1,9 @@ ## Updating the bundled version of Pandoc -- [ ] If needed, ask JJ to upgrade our archives -- [ ] Run `./package/src/quarto-bld update-pandoc PANDOC_VERSION` +Carlos needs to run this: + +- [ ] Ensure archives are upgraded +- [ ] Run `AWS_PROFILE=... ./package/src/quarto-bld update-pandoc PANDOC_VERSION` - [ ] look at `git diff`, specifically for changes in Pandoc templates, and adjust as needed. ## Manual steps diff --git a/src/resources/formats/html/_quarto-rules.scss b/src/resources/formats/html/_quarto-rules.scss index 0c86d213e8d..66ade8da290 100644 --- a/src/resources/formats/html/_quarto-rules.scss +++ b/src/resources/formats/html/_quarto-rules.scss @@ -227,8 +227,7 @@ tr.header > th > p:last-of-type { margin-bottom: 0px; } -table, -table.table { +table { margin-top: 0.5rem; margin-bottom: 0.5rem; } diff --git a/src/resources/formats/html/pandoc/html.styles b/src/resources/formats/html/pandoc/html.styles index 58fff9f2f03..cd3b95958f1 100644 --- a/src/resources/formats/html/pandoc/html.styles +++ b/src/resources/formats/html/pandoc/html.styles @@ -144,7 +144,12 @@ table { font-variant-numeric: lining-nums tabular-nums; } table caption { +$if(table-caption-below)$ + caption-side: bottom; + margin-top: 0.75em; +$else$ margin-bottom: 0.75em; +$endif$ } tbody { margin-top: 0.5em; diff --git a/src/resources/formats/html/pandoc/html.template b/src/resources/formats/html/pandoc/html.template index bc8a48a6e87..26740d1b0ec 100644 --- a/src/resources/formats/html/pandoc/html.template +++ b/src/resources/formats/html/pandoc/html.template @@ -27,9 +27,6 @@ $for(header-includes)$ $header-includes$ $endfor$ $if(math)$ -$if(mathjax)$ - -$endif$ $math$ $endif$ diff --git a/src/resources/formats/jats/pandoc/default-templates/default.jats_articleauthoring b/src/resources/formats/jats/pandoc/default-templates/default.jats_articleauthoring index 3f62027dee2..627911ae516 100644 --- a/src/resources/formats/jats/pandoc/default-templates/default.jats_articleauthoring +++ b/src/resources/formats/jats/pandoc/default-templates/default.jats_articleauthoring @@ -91,6 +91,11 @@ $if(article.funding-statement)$ $article.funding-statement$ $endif$ +$if(supplementary-material)$ + +$supplementary-material$ + +$endif$ diff --git a/src/resources/formats/pdf/pandoc/doc-class.tex b/src/resources/formats/pdf/pandoc/doc-class.tex index b276cee6b4a..34eaffa289a 100644 --- a/src/resources/formats/pdf/pandoc/doc-class.tex +++ b/src/resources/formats/pdf/pandoc/doc-class.tex @@ -13,6 +13,9 @@ $if(aspectratio)$ aspectratio=$aspectratio$, $endif$ +$if(babel-lang)$ + $babel-lang$, +$endif$ $endif$ $for(classoption)$ $classoption$$sep$, diff --git a/src/resources/formats/pdf/pandoc/graphics.tex b/src/resources/formats/pdf/pandoc/graphics.tex index 5a995cc28a9..778a07374c4 100644 --- a/src/resources/formats/pdf/pandoc/graphics.tex +++ b/src/resources/formats/pdf/pandoc/graphics.tex @@ -1,15 +1,17 @@ $if(graphics)$ \usepackage{graphicx} \makeatletter -\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} -\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} -\makeatother -% Scale images if necessary, so that they will not overflow the page -% margins by default, and it is still possible to overwrite the defaults -% using explicit options in \includegraphics[width, height, ...]{} -\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} +\newsavebox\pandoc@box +\newcommand*\pandocbounded[1]{% scales image to fit in text height/width + \sbox\pandoc@box{#1}% + \Gscale@div\@tempa{\textheight}{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}% + \Gscale@div\@tempb{\linewidth}{\wd\pandoc@box}% + \ifdim\@tempb\p@<\@tempa\p@\let\@tempa\@tempb\fi% select the smaller of both + \ifdim\@tempa\p@<\p@\scalebox{\@tempa}{\usebox\pandoc@box}% + \else\usebox{\pandoc@box}% + \fi% +} % Set default figure placement to htbp -\makeatletter \def\fps@figure{htbp} \makeatother -$endif$ \ No newline at end of file +$endif$ diff --git a/src/resources/formats/pdf/pandoc/latex.template b/src/resources/formats/pdf/pandoc/latex.template index f8006b23aa6..678583f999a 100644 --- a/src/resources/formats/pdf/pandoc/latex.template +++ b/src/resources/formats/pdf/pandoc/latex.template @@ -23,6 +23,9 @@ $endif$ $if(aspectratio)$ aspectratio=$aspectratio$, $endif$ +$if(babel-lang)$ + $babel-lang$, +$endif$ $endif$ $for(classoption)$ $classoption$$sep$, @@ -57,13 +60,13 @@ $if(section-titles)$ } \setbeamertemplate{section page}{ \centering - \begin{beamercolorbox}[sep=12pt,center]{part title} + \begin{beamercolorbox}[sep=12pt,center]{section title} \usebeamerfont{section title}\insertsection\par \end{beamercolorbox} } \setbeamertemplate{subsection page}{ \centering - \begin{beamercolorbox}[sep=8pt,center]{part title} + \begin{beamercolorbox}[sep=8pt,center]{subsection title} \usebeamerfont{subsection title}\insertsubsection\par \end{beamercolorbox} } @@ -299,15 +302,17 @@ $endif$ $if(graphics)$ \usepackage{graphicx} \makeatletter -\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} -\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} -\makeatother -% Scale images if necessary, so that they will not overflow the page -% margins by default, and it is still possible to overwrite the defaults -% using explicit options in \includegraphics[width, height, ...]{} -\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} +\newsavebox\pandoc@box +\newcommand*\pandocbounded[1]{% scales image to fit in text height/width + \sbox\pandoc@box{#1}% + \Gscale@div\@tempa{\textheight}{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}% + \Gscale@div\@tempb{\linewidth}{\wd\pandoc@box}% + \ifdim\@tempb\p@<\@tempa\p@\let\@tempa\@tempb\fi% select the smaller of both + \ifdim\@tempa\p@<\p@\scalebox{\@tempa}{\usebox\pandoc@box}% + \else\usebox{\pandoc@box}% + \fi% +} % Set default figure placement to htbp -\makeatletter \def\fps@figure{htbp} \makeatother $endif$ @@ -440,13 +445,15 @@ $endfor$ % get rid of language-specific shorthands (see #6817): \let\LanguageShortHands\languageshorthands \def\languageshorthands#1{} +$if(selnolig-langs)$ +\ifLuaTeX + \usepackage[$for(selnolig-langs)$$it$$sep$,$endfor$]{selnolig} % disable illegal ligatures +\fi +$endif$ $endif$ $for(header-includes)$ $header-includes$ $endfor$ -\ifLuaTeX - \usepackage{selnolig} % disable illegal ligatures -\fi $if(dir)$ \ifPDFTeX \TeXXeTstate=1 @@ -534,7 +541,7 @@ $if(institute)$ \institute{$for(institute)$$institute$$sep$ \and $endfor$} $endif$ $if(titlegraphic)$ -\titlegraphic{\includegraphics{$titlegraphic$}} +\titlegraphic{\includegraphics$if(titlegraphicoptions)$[$for(titlegraphicoptions)$$titlegraphicoptions$$sep$, $endfor$]$endif${$titlegraphic$}} $endif$ $if(logo)$ \logo{\includegraphics{$logo$}} @@ -571,7 +578,8 @@ $if(beamer)$ $if(toc-title)$ \frametitle{$toc-title$} $endif$ - \tableofcontents[hideallsubsections] + \setcounter{tocdepth}{$toc-depth$} + \tableofcontents \end{frame} $else$ { diff --git a/src/resources/formats/pdf/pandoc/template.tex b/src/resources/formats/pdf/pandoc/template.tex index b449dd6a8d9..a4eb9c1911c 100644 --- a/src/resources/formats/pdf/pandoc/template.tex +++ b/src/resources/formats/pdf/pandoc/template.tex @@ -39,13 +39,13 @@ } \setbeamertemplate{section page}{ \centering - \begin{beamercolorbox}[sep=12pt,center]{part title} + \begin{beamercolorbox}[sep=12pt,center]{section title} \usebeamerfont{section title}\insertsection\par \end{beamercolorbox} } \setbeamertemplate{subsection page}{ \centering - \begin{beamercolorbox}[sep=8pt,center]{part title} + \begin{beamercolorbox}[sep=8pt,center]{subsection title} \usebeamerfont{subsection title}\insertsubsection\par \end{beamercolorbox} } @@ -344,10 +344,12 @@ % get rid of language-specific shorthands (see #6817): \let\LanguageShortHands\languageshorthands \def\languageshorthands#1{} -$endif$ +$if(selnolig-langs)$ \ifLuaTeX - \usepackage{selnolig} % disable illegal ligatures + \usepackage[$for(selnolig-langs)$$it$$sep$,$endfor$]{selnolig} % disable illegal ligatures \fi +$endif$ +$endif$ $if(dir)$ \ifPDFTeX \TeXXeTstate=1 diff --git a/src/resources/formats/pdf/pandoc/title.tex b/src/resources/formats/pdf/pandoc/title.tex index 540a37003b5..87830799595 100644 --- a/src/resources/formats/pdf/pandoc/title.tex +++ b/src/resources/formats/pdf/pandoc/title.tex @@ -20,8 +20,7 @@ \institute{$for(institute)$$institute$$sep$ \and $endfor$} $endif$ $if(titlegraphic)$ -\titlegraphic{\includegraphics{$titlegraphic$}} -$endif$ +\titlegraphic{\includegraphics$if(titlegraphicoptions)$[$for(titlegraphicoptions)$$titlegraphicoptions$$sep$, $endfor$]$endif${$titlegraphic$}}$endif$ $if(logo)$ \logo{\includegraphics{$logo$}} $endif$ diff --git a/src/resources/formats/pdf/pandoc/toc.tex b/src/resources/formats/pdf/pandoc/toc.tex index 958fa635b21..b2737458fae 100644 --- a/src/resources/formats/pdf/pandoc/toc.tex +++ b/src/resources/formats/pdf/pandoc/toc.tex @@ -7,7 +7,8 @@ $if(toc-title)$ \frametitle{$toc-title$} $endif$ - \tableofcontents[hideallsubsections] + \setcounter{tocdepth}{$toc-depth$} + \tableofcontents \end{frame} $else$ { diff --git a/src/resources/formats/revealjs/quarto.scss b/src/resources/formats/revealjs/quarto.scss index 1a3b6bddc67..0af437a67af 100644 --- a/src/resources/formats/revealjs/quarto.scss +++ b/src/resources/formats/revealjs/quarto.scss @@ -669,7 +669,7 @@ $panel-sidebar-padding: 0.5em; // https://github.com/quarto-dev/quarto-cli/issues/3380 -div.cell-output-display div.pagedtable-wrapper table.table { +div.cell-output-display div.pagedtable-wrapper table { font-size: 0.6em; } diff --git a/src/resources/formats/typst/pandoc/quarto/typst-show.typ b/src/resources/formats/typst/pandoc/quarto/typst-show.typ index 16fa66c93bc..0e0d370f4b8 100644 --- a/src/resources/formats/typst/pandoc/quarto/typst-show.typ +++ b/src/resources/formats/typst/pandoc/quarto/typst-show.typ @@ -5,6 +5,9 @@ $if(title-font)$ title-font: ("$title-font$",), $endif$ $endif$ +$if(subtitle)$ + subtitle: [$subtitle$], +$endif$ $if(by-author)$ authors: ( $for(by-author)$ diff --git a/src/resources/formats/typst/pandoc/template.typst b/src/resources/formats/typst/pandoc/template.typst index e1ac3ec3794..42532e1b24f 100644 --- a/src/resources/formats/typst/pandoc/template.typst +++ b/src/resources/formats/typst/pandoc/template.typst @@ -1,5 +1,17 @@ +#let content-to-string(content) = { + if content.has("text") { + content.text + } else if content.has("children") { + content.children.map(content-to-string).join("") + } else if content.has("body") { + content-to-string(content.body) + } else if content == [ ] { + " " + } +} #let conf( title: none, + subtitle: none, authors: (), keywords: (), date: none, @@ -16,7 +28,7 @@ ) = { set document( title: title, - author: authors.map(author => author.name), + author: authors.map(author => content-to-string(author.name)), keywords: keywords, ) set page( @@ -34,6 +46,10 @@ if title != none { align(center)[#block(inset: 2em)[ #text(weight: "bold", size: 1.5em)[#title] + #(if subtitle != none { + parbreak() + text(weight: "bold", size: 1.25em)[#subtitle] + }) ]] } diff --git a/src/resources/formats/typst/pandoc/typst.template b/src/resources/formats/typst/pandoc/typst.template index ee4b8212f59..1e7b5efd422 100644 --- a/src/resources/formats/typst/pandoc/typst.template +++ b/src/resources/formats/typst/pandoc/typst.template @@ -14,25 +14,40 @@ $definitions.typst()$ stroke: none ) +#show figure.where( + kind: table +): set figure.caption(position: $if(table-caption-position)$$table-caption-position$$else$top$endif$) + +#show figure.where( + kind: image +): set figure.caption(position: $if(figure-caption-position)$$figure-caption-position$$else$bottom$endif$) + $if(template)$ #import "$template$": conf $else$ $template.typst()$ $endif$ +$for(header-includes)$ +$header-includes$ + +$endfor$ #show: doc => conf( $if(title)$ title: [$title$], $endif$ +$if(subtitle)$ + subtitle: [$subtitle$], +$endif$ $if(author)$ authors: ( $for(author)$ $if(author.name)$ - ( name: "$author.name$", - affiliation: "$author.affiliation$", - email: "$author.email$" ), + ( name: [$author.name$], + affiliation: [$author.affiliation$], + email: [$author.email$] ), $else$ - ( name: "$author$", + ( name: [$author$], affiliation: "", email: "" ), $endif$ @@ -43,7 +58,7 @@ $if(keywords)$ keywords: ($for(keywords)$$keyword$$sep$,$endfor$), $endif$ $if(date)$ - date: "$date$", + date: [$date$], $endif$ $if(lang)$ lang: "$lang$", @@ -73,10 +88,6 @@ $endif$ doc, ) -$for(header-includes)$ -$header-includes$ - -$endfor$ $for(include-before)$ $include-before$ diff --git a/src/resources/lua-types/pandoc/README.md b/src/resources/lua-types/pandoc/README.md index e9a2cd4c61f..f5311bab821 100644 --- a/src/resources/lua-types/pandoc/README.md +++ b/src/resources/lua-types/pandoc/README.md @@ -1,6 +1,6 @@ Generated by hand by inspecting https://github.com/jgm/pandoc/commits/main/doc/lua-filters.md -Up to date to commit https://github.com/jgm/pandoc/commit/928dde57b968066366b567201961dba6441d89e2 +Up to date to commit https://github.com/jgm/pandoc/commit/790abcf4147fa2a097b1f29c845182675d90ccc3 TODO: diff --git a/src/resources/lua-types/pandoc/log.lua b/src/resources/lua-types/pandoc/log.lua new file mode 100644 index 00000000000..81ae0cfd9fb --- /dev/null +++ b/src/resources/lua-types/pandoc/log.lua @@ -0,0 +1,27 @@ +---@meta + +---@module 'pandoc.log' +pandoc.log = {} + + +--[[ +Reports a ScriptingInfo message to pandoc's logging system. +]] +---@param message string the info message +function pandoc.log.info(message) end + +--[[ +Applies the function to the given arguments while preventing log messages from being added to the log. +The warnings and info messages reported during the function call are returned as the first return value, with the results of the function call following thereafter. +]] +---@param fn function the function to call +---@return table,any[] # List of log messages triggered during the function call, and any value returned by the function. +function pandoc.log.silence(fn) end + +--[[ +Reports a ScriptingWarning to pandoc's logging system. The warning will be printed to stderr unless logging verbosity has been set to ERROR. +]] +---@param message string the warning message +function pandoc.log.warn(message) end + +return pandoc.log \ No newline at end of file diff --git a/src/resources/lua-types/pandoc/template.lua b/src/resources/lua-types/pandoc/template.lua index 8704f04a2bc..e2004a9cab8 100644 --- a/src/resources/lua-types/pandoc/template.lua +++ b/src/resources/lua-types/pandoc/template.lua @@ -57,4 +57,16 @@ to [Doc] values. ---@return table # Template context function pandoc.template.meta_to_context(meta, blocks_writer, inlines_writer) end +--[[ +Retrieve text for a template. + +This function first checks the resource paths for a file of this +name; if none is found, the `templates` directory in the user data +directory is checked. Returns the content of the file, or throws +an error if no file is found. +]] +---@param filename string name of the template +---@return string # content of the template +function pandoc.template.get(filename) end + return pandoc.template diff --git a/src/resources/lua-types/pandoc/utils.lua b/src/resources/lua-types/pandoc/utils.lua index 86551ba1f43..babc04835ac 100644 --- a/src/resources/lua-types/pandoc/utils.lua +++ b/src/resources/lua-types/pandoc/utils.lua @@ -215,5 +215,11 @@ Usage: ---@return string # Type of the given value function pandoc.utils.type(value) end +--[[ +Filter the given doc by passing it through a Lua filter. +]] +---@param doc pandoc.Pandoc Document to filter +---@param filter table Filter to use +function pandoc.utils.run_lua_filter(doc, filter) end return pandoc.utils \ No newline at end of file diff --git a/tests/docs/smoke-all/2023/10/10/issue-7187-b.qmd b/tests/docs/smoke-all/2023/10/10/issue-7187-b.qmd index cbff39bb0f1..aa4705aff96 100644 --- a/tests/docs/smoke-all/2023/10/10/issue-7187-b.qmd +++ b/tests/docs/smoke-all/2023/10/10/issue-7187-b.qmd @@ -5,7 +5,7 @@ _quarto: html: ensureHtmlElements: - [] - - ["table.table", "div[data-html-table-processing]"] + - ["div[data-html-table-processing]"] --- ::: {html-table-processing="none"} diff --git a/tests/docs/smoke-all/2023/10/10/issue-7187.qmd b/tests/docs/smoke-all/2023/10/10/issue-7187.qmd index 61cdd1c89ce..fc15f931628 100644 --- a/tests/docs/smoke-all/2023/10/10/issue-7187.qmd +++ b/tests/docs/smoke-all/2023/10/10/issue-7187.qmd @@ -6,7 +6,7 @@ _quarto: html: ensureHtmlElements: - [] - - ["table.table"] + - ["table[data-quarto-postprocess='true']"] --- diff --git a/tests/docs/smoke-all/2024/01/19/8354.tex.snapshot b/tests/docs/smoke-all/2024/01/19/8354.tex.snapshot index 7992efac67b..7e04d206a9c 100644 --- a/tests/docs/smoke-all/2024/01/19/8354.tex.snapshot +++ b/tests/docs/smoke-all/2024/01/19/8354.tex.snapshot @@ -120,15 +120,17 @@ \makesavenoteenv{longtable} \usepackage{graphicx} \makeatletter -\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} -\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} -\makeatother -% Scale images if necessary, so that they will not overflow the page -% margins by default, and it is still possible to overwrite the defaults -% using explicit options in \includegraphics[width, height, ...]{} -\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} +\newsavebox\pandoc@box +\newcommand*\pandocbounded[1]{% scales image to fit in text height/width + \sbox\pandoc@box{#1}% + \Gscale@div\@tempa{\textheight}{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}% + \Gscale@div\@tempb{\linewidth}{\wd\pandoc@box}% + \ifdim\@tempb\p@<\@tempa\p@\let\@tempa\@tempb\fi% select the smaller of both + \ifdim\@tempa\p@<\p@\scalebox{\@tempa}{\usebox\pandoc@box}% + \else\usebox{\pandoc@box}% + \fi% +} % Set default figure placement to htbp -\makeatletter \def\fps@figure{htbp} \makeatother @@ -175,9 +177,6 @@ \@ifpackageloaded{subcaption}{}{\usepackage{subcaption}} \makeatother -\ifLuaTeX - \usepackage{selnolig} % disable illegal ligatures -\fi \usepackage{bookmark} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available diff --git a/tests/docs/smoke-all/2024/01/19/8356.ipynb.snapshot b/tests/docs/smoke-all/2024/01/19/8356.ipynb.snapshot index 4123e0f0ffb..5c65cb6c553 100644 --- a/tests/docs/smoke-all/2024/01/19/8356.ipynb.snapshot +++ b/tests/docs/smoke-all/2024/01/19/8356.ipynb.snapshot @@ -14,7 +14,7 @@ "\n", "\n", "\n", - "\n", + "\n", "
\n", "

\n", @@ -32,7 +32,7 @@ "\n", "\n", "\n", - "\n", + "\n", "
\n", "

\n", @@ -46,7 +46,7 @@ "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\nSlBFRyB2ODApLCBxdWFsaXR5ID0gNjUK/9sAQwALCAgKCAcLCgkKDQwLDREcEhEPDxEiGRoUHCkk\nKyooJCcnLTJANy0wPTAnJzhMOT1DRUhJSCs2T1VORlRAR0hF/9sAQwEMDQ0RDxEhEhIhRS4nLkVF\nRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVF/8AAEQgBkAGQ\nAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF\nBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkq\nNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqi\no6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/E\nAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMR\nBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVG\nR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz\ntLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A\n8oqRDxSMhHUGlUHHQ0Ah/elzmgg9cHH0pQpxyDipLEzUsJyCKhp0bYamJk5pM0tNJpkC5pKTNGaA\nF/gptOH3TTM0ABpDTieKYTQMQjikApxNIKAEp6OQjAUw0qkZOfSgBpPNJklgBS4ycCtCDTCcOxoA\nz5jtfb3FR5wcitS40wuxcNz6VQNrKGwVoQEYcsRk5pO9PMLoeRTCcE0AJ3opKWgBRxShiDTaU0AP\nyD1ppUdqbS5oAAKSnZoyPSgBB1oJpcg0nQ0AAJpCSaUmkoABxWppjYLLWXV7T3xN9RUy2Lg7SNsV\nKF45qFDxUyniuc7kBQelKYgQKcDTh0NBRAYvQ0gRuRk1LmkzzQBBhx3NIfMH8VTE009KAsQlpPWm\nF5PWpmqNqBERaQg81FmRmwOSelTE9a6jwro0M6/a513HPyg9quKu7GU5cquQyWVuWAaFD+FKunW4\nHEK4+lX1tt3LUTARoRXWefcw75IIQFES47cVFHFHJHho1P4U68/eKeCSDTYmwopARSaVayZ+Tafa\nsx9J/ekRvgds1tNIAapPIfNyKVh3ZlTRNA5RuoqEnNaOoqHAkH41m5qRhS0meKTNAC0lOfop9qjz\nQA6mmlppoGKecUnSjsKTNABRmgUpXHegCeyi82ceg5reGMD2qjZ25t7IzscFugqeFmKZPNAifAxU\nbRqakDZHSkDL61QipNbqR0rMuLb5iQOa3QnmtgVaj0hJVwevrQO5xpRh2pQjYzXS3XhyZFLRHd7V\ni3MEtudsqFfwpWC5TIxRSk5pKQwoooFABRRSGgBacUJyRUdOyQAaAEII60U8vlcUygAqe2fbKlQC\nlU4YGga0Z0kTZAqdWqjbyZVatK1czR3Rd0T5pQcHNRbqXNI0Hk0m7KmmE0A8n6UABNMLUjGoyaAH\nMaiJqaKCW5cJChdj2FdXo3hNVAlvgGbsvarjBsynUUdzJ0Pw8+ot5k4Kwjp713lpapawrFGoCqMC\npIYEiQJGoVR0AqcLXTGNjhnNzZj3UAzlF49qw9RVgDgGuuaJTxUf2OMnJQH8KozONuNNkis1kCkm\nQdMVjeXJEf3iMMeor0541KgFRioJbOFwd0anPtQM84Zg3FRCJRnNdVqfhZJEZ7MmOTrjsa4e/F7Z\n3BglRgw46dal6AiW42IpDMMGsluGIHSrEdrd3smyKN5H9AK6TT/AF/cRh7mRYQf4eppblHMW1vNd\nSiOCNnc9gK6rTfAVxcLvvJPKz/COtdrpWhWumRIscS7wOWxya1cY7U0hNnnl58PpVT/RbjcQejiu\nevfC+p2J+aAuD3TmvYyM9qY0YbqM07CueIPp15G4VraUMeg2GpJ9Hv7eISy2sip64r2k20ZOSgJ+\nlDwo67XQFfQilyjueE9sEUleuah4T029yTAEb1XiuO1HwJfwSM1qBLGTwO4pWHc5QdasxwrIVOe/\nNdBpPgm9uLoC+QxRdyDya3/+EAt1mBE8nld1osx3Rzgsrm5iSKJdwA4xWhYeHbydtjLsA6k13Fjp\ndtYxBIYwAKuAAdBTSJuc1beEoUH712Y09/CFmynBYH1zXSAikPXgVQjmIvCSQnKysfrVlNFaPoc1\nvbT6UYI7UAYh0uQDtVW50GO5jKTICDXTYBFNZOORQBwj+A7Vs7XcfjWVf+BriIFraTf7NXpZj9BS\nNEaVgueK3Oj31of3tu4HqBmqbIynkEfUV7hNZxyLyoP4Vnz6BazAhoUOfalyjuePUYJ6V6JP4Ctn\ncsjOoJ6A1Ys/BtpaEMU3sO7UrDuecJZ3En3IXP4VcOh3y25kMJwOcd69VTTYkQBUUfhSNpm9SDwK\ndgueNspU4IwRTa7rWvB0s0pltsA+nrXL3uiXlgu6aIhe5FKwzNo709eTTtoFIC9ZynyxV9H55rIt\nm2sRWgj5rKSOmnLQthuaduqur1IW4FZ2N0x+6kD4YUzdmtKz0C9vYxIiYU9CaajfYTkluZpapLa0\nnvJQkCFj/KuosfB3O67fvnatdNa2EFogWKMLj2rSNPuYzrpbGb4f0QafBukAMrdTW4BSheKUcVul\nbY5G23diquKdSZ9KNp7mmINgo2UoyBzQOtADChpu3Pap+KQgdqAISh9Kgk0+Cdw0kSsR3Iq7tNPA\nxQBUgsYLckxxKhPcCpypp5FHUUANVeaR8AU8UjpuoATGVFJThwuDSUAGKXFJQuc4zQAuBSECl280\nEGgBAo9KClOFLmgCErjtSgCpD+FGB6UAMKr6UoAHSl60Dg0AFISO4p/BpCoNAEZHNBWpBgdaQkUA\nRbKCpFSZ5pcigCDbR5ZxUpXPajBFAEOzFIU9qnxnrRigCv5Y9KDGMVPt5p3l5oApNBnpVa501bmM\nxyqGUjByK1fLo2GgDz+6+HyyTloJvLQ/w4qjf+A57e2MlvL5rj+HHWvTCtAQelKw7nh0mm3ts482\n2kUeu2ngSD+Fs/SvbGtYX+9Gp+oqI6bak58hM/SpcblKdjyBBI2BsbP0rY0/QL2/UEIY19Wr0j7B\nb5z5KZ+lSrEqjCqAPap9mjR1n0OU03whHA4kun8wjt2rpo40iQKgAA7VNsoCVoklsZSk5bjQKdin\nBaU8CmSMoAzTsZp3SgBAMClxRmgk0AGDR+FKDkU7gUAMx7UowKC3tSdaAHjmg8U0KRS49aADIpvU\n07HpS4oAZ0oBp+KTbQAHpTcetO20FaAEwe1GzvS5xS76AG4IpMGnbqXcKAGEmjk07I9KMegoATbQ\nVpeaKAG4xRnNO4owKAEx70uKMe1Jg0ALgUbQaTmjBoAQr6Uc0uSKM0AANOAFNpaAAik207NJuFAD\nCMGnA0uAaaeDQA7NGabwetO2jHBoAMA0hXFHTvRnmgBAKMU4HNFADMGjBFOJpMmgAzQKM80v4UAF\nJil5o5oAaeKOTS896N1ABijNBPFNJoAcFI6UDNSYoxQAzmjHvT6MUAJjijaKXHtS4oAj4zS/jT8U\nYoAb+NLilwKKAG80mSetPoFADMc9KXA9KdS0ARjFKCKD7UZ9qAHZFFIRxSdKAFpdtAxS5oATaKaV\nFOJpufagBvINOHvSGk3UAPwKMCkzRkigBdtGKUU4UAM2ijbTjSdaBDTxR17UpFOAGKBkYB7UhUk1\nJjmkxQBHjFOzx0p20Gk20AJ+FH4U7FKBQBEc54oyal4pOKAIwM0uKeKDigBgAp1JQRigBaKbkil3\nUAFRmpOMU0jNADQeKXrQBS4oAkzRSHFGaAHUU3NKDQAtBozRQAZoBoooAWgikpaAEPSk59KdRmgB\nAKXGaQnFKDmgBu3nrRinUUANAIpSuaWgGgBBxS4zS0UAJijFLQaAGmmEVJikK0AMxil60/aKABQA\n0EijcafSYBoENo3YoI9KCPUUDDOaXoKTFFABu5oJBpcYoAoAbnFLuzSmm45oAcDS5FNxS7aAAik4\nNGPem80AKTim5zS4JpMUAJnFL1owaULQA0mkHWpNopdo9KAGgUYpcUYNACBaMUtIc0APwBScU6mk\nUABApBjNNLetA680ASYFG2kB9qdmgBCtJg06jNACYo20tFADelIWp9G0HqKAI9/rTg2aUovpQKBC\nZNANKWVRyQKrXN/b2ylpJAAKALQo4rm5/G2lQkjzSzDsorOuPiDbquYbeR/fii4ztc0bhXm0vxBn\nZTm1Taeh3EMKy5/F2oyOTFdug7Zxke2aVwseuGRR1NIkqSD5GBxxwa8jPjHU3UiWRXGMH5cbvriq\n/wDwkt+s3mpcOjDoc/5z+NFwsz2ek3DdjNeZ2fxBu4douIlkHQkcZrRn8XJeKDA7Rnrt/iU+o9fp\nRcWp3lFcbo/jeOW5W01ECJm4WYH5Sff0rpI9SiMxiY4ZfXvTAvUUiuGGQaXNACYooJ44pBk0DFow\nDRzRu9qBARSYxS5FITmgYAUEYoU0pNADelGaQmnDFACc0U6jAoAaaTHNOwKaQaAFxRigUtADcEUb\nqdSYoATNGaMZNGDmgAzTd3NO20hWgB4OaWmZpwPvQAhUGkAweafTWoAduFNJoC08KBQAwZNPAxS5\nxSZFABRRuFNLCgBSaQsO5xVS81GGzQtKwGBnHeuU1Lx9DFuSGzaQ+rHA/lQI7Ga5hhUtJKigerAV\nzmreMLa0jYW5MjDuuCP515/qWryahO0joig/3Sazm+aT5cEDtU8xVjdv/Fuo3uSJvKU9FRev86yn\nmmnYGWWRh3y1RsB5Awilice4qNAxVgo3fhU3GkSiMFuuMjqeoFAYGQpxjGM1HDlhjuf0pIw6OTzu\n9RQMflVUowIbsCOCKFj3jBXBPQE4z+dLPyF3A5A+8wHNIshMZTCAepHNAAMQtnZwD0JoiMTEtIOC\neQO1RYJHB5Hv1pFXcMsD9KALCqd2FkXaB1Ixmmead6kKu5eOBgGmYBxnOBQJo92dvTuKAHtIGJLA\n8+p6VpQa5LEsRMhZosYJ9vWssqJACxOTwOOtBj/2eKLgd/pXjBEeOOc/ITgMOfw/Wu0huUniV0II\nI7V4cGEWCpPqa7Dwn4n2TpZ3Lko3yh27H3qkyWj0bNAJzTIJFliV1IIIyCKmqhCbvWgkUEAUEZoA\nCKbmnbcHrTWAoATIJpfoKQA0vJoAA3OCKdkVHtNLtPagB3FNyadg+lIRz0oATPrSk0hxRgUAOyKM\nimkYoIoAduFGab+FGRQA6jim/SgA0AOJpOtG00c0AFIRT8CmEYPFACDNOAz1pAMHmn54oASl5oFL\nQAmDSYp1IwBHNAFW6u47dCZH2gVyOs+InJYWsuAOvy4/rW5rNu3kuwldFHJJOR+RrzLVp/NlIWQM\nF4yEA/lSbBaiXWq3N05BfJPogrOk81gQScZoUkDCt14+lMV2RsdfrUF2JIiF4cc9RmmhVL8tyTSM\n2cEjP0puMPwCPrQBOANzZwfTNRhmV/QUwMV+9SkkoGx0oAU7wxIzg00MyggnFK5O0NgU1gSAcH8K\nAHmUkc9fWmM3T1pCCuPelJJxkg/0oAUN9SMflTvNwMdz61HgF+BTjguARxQBIMbDzkmkA6Y7dqJA\nFQbaEXaCTnB7UAO3g8t06YxTg56BuKrsxc8fjTghU+ooAeUA53dc8UiHy5FbkHgikZVQdzzxTdw7\nA4Hc9qAPQvD2s3g0iIpsGxiv7wnkV12n6rFejYw8uYDJQnIP0PevO7WYW1laBckbAxz3J5rVW4Uq\nskT7XXnHf8DSUmNxR3u7Pek354FcDceML/TmXzYkmgJwHHBB9DVZPHt3E4Z4kKFs474ParTRFmel\nUYFefwfEZQzCa3OMHGD3/wA5rQg+INg6ZdXVvTFO4jryPSlwMVzVj4ysLxiCxjG7Clu9X5/EWl2w\n/eXsIz0G7JouBq8elIZY1wCwBPaucuPETXIKWQKqf+WrDkj2H+NZsU0bajEWYvKXHzMxJqXNIpRZ\n3HWkIpoc9DSk1ZIhUYpmSpqTrTcCgA3Z60YzRtBo246GgBORS5pce9IaADiikyKD7UAOzRSc0ZoA\nfSMvFAandaAI6WlxzS9BzQAlLiqN3rGn2OftN3ChHYuM/lXN6l4+06MMloJJX7EcD9aAOvd1jUsz\nYArm9b8QR2SHbIc9vmAH9a4O98V3lxIei89jnFZTtJNIJC2WzyTU3HY0NR1661CRg1y5Q/wbiFx9\nKx3cgnHNO+82Twc4460LhVy4yfSpKEQEMAc59Kc7YZgo6+lMLM7Z/DNODEKFUdOpoAdkbcsCCOlM\nYZy3Oe1TkKy4yScVHvwcdBQAseHHzDPrzimKOWxk+gNJuIcjtSqhR87uD3oAYDuDIRinIN8Jx2p7\nDMyADr3HU0KTBIXQK691NIZCo3Lj8qbhg21uCKllQRsHUHB5p8sRaMSDrTEQoOe2afHkklgPSoxx\n1pwPGBQA8ckZ5FPmIVdqkc0KQFOcEDtTYhufLcigAiURqS3Q0xnDNweKcw8xiF6ChF9OcfrQA4Rl\nmAJ5I9aH7A449KUgBQT1P6UzAPuD3oA6K3lD2EHQ4TBHpg4q/aMYwCZDsPRTiqKR/ZNLt2iVS7Jl\ns8+9Fs++EySyAsTjZ2rNbs0lsizqMkZiYsoMbcMp7iuWvLdo5iiksmMqfUVsXRneFi0fy9sdKzZG\n3Qosh27Adpx1FV1J6FAE8HmgyHLHPJ5OBTzhlXaflA/WlARVYMOCOM+tUSS28r4KqDz0Ard03TlE\nitMBJMPur2T/ABNZds8cETSEZkPCe1aen3gQopwT65xU9SuhuPJ9mTDLlj3Io0S3a61mHJ43bjzn\nGKpT6i2QreWU/wBo5ro/B8CGe4n2n5VUIc5GDnP8qTWqQ1omzrQooxS5FGa3MRpFGKcabk0AN6Uu\naWkxQAZopdtG3FACFc00CnEehpBzQAdO9FGPajigDxWDxDrEUoVNRuSR0JfP860l8da/bHZJOjEd\nniGa5+JQrn5cj0zin3QYuuA3T+I1FyrHRt8Q9bZCR9mXHpH/APXqlL4o1jUs+ZfyKD1WL5B+lZUk\nLGLccA+h71JalgPkIDHjnvRcLFaXeZSrsXYnqTk0rwKoxuyxGcA1JLC32k7s5/2RnmnTIQQoBxjJ\n4pDK8RwpyPoSM1IAFyEwRnr3p8cH7vJ6+lSw2bSZ2LgDuaVwsVZCGYsxyxOSfWo1Utz6Ve+yYbLD\np6U1oPK6jqKLjsVApC5qWNCqjIFEoXCKmQT1z604uYlB4JoEMdivCjAP51CI2fkg09FkZy3b1qZ8\nKOTg+1MCJVGzPf1ocjb7ikMvOBUbtz0FAD3YNEDn5qZuYxHBGaF57Z+tKAEdXA+XuKAHRMzRlfTt\nUsQLRvHu5IyKZEVE5BUYbpT4x5U/lyHr3FIZXYBiFBOaMNmpZ1CSEY4HI+lRhcjjv0piF3/IfelD\nbEGOSaAh3BSNtKxZWOQMDpQAq7QuBwT1NSRptQt+lRoQThh171YCb5B/cHY0gIiAw3E4z2ppUqn6\n49fpVtoTv+VSy+o5pjJmQKFx+tMC5HHPLYom7GBxk849KfaCOBGW4ByMYx3pftHkfKBuPbA6USLI\nV3d+vPasywuL0yDYgG0HG1hVJ4FlizjAUfN/n/PerckUojykW49zimTRPb2Ycr/rD0znJpoTMtYV\n+yKykNljn2qRof8ARtxPBYAA961LPTDFdeWy7kdQ+2oL6wKtK5B8qFhwPUnP+FUSQmMqyL1UKpbP\nuM1qW7QyRbI1CygcE+tULkN8s2fkfkj1peGAZQQufWkykT3Z8uaOOTaD0PSu98HKRbPgDb61wccU\nUjfMSzju3evQPB0n/EsaMjG1ziiOrCT0OlGDS4FNFOFbGQjU3FOam0AFJig5pM0AOB7Gg1Hk5pwJ\noACcU1TzSk0DrQA+kIpaKAPEoLYhmbggdSaryxb5/wB2DjPWuoOg3BjJ8soOnpUS6QcDeMsPUYrI\nswpoMRqGB3euTzUlvGdv7pcHuxIzW/JpTtgBCAe1PXSQpxtyT14oA5s27CQHh8elSi0YxFtuM9gO\ntdCulYf5U/HFWY9MYgAKT74paj0OftLUiL5l+Y9/SrcViSAAretdJb6IxXL8D07mte10uK3GSoLU\ncjYcyRyaaL5cDT3ICRgZ56t6CuelizM6sOB+Qr0TUYFJzKWfHCog6VwWp2si3bkqIweQuc/nTcbA\npXMaZCs3AOBUUpO8A9OtXpCMgsM+tU5EBfpn6UIBxmwAqD5e9QuTI3Xr3pzhlGMYFIiseQPxzTEG\nwjjj1xS7FY84GOtSx8PwM8daRvnz8uB35oAgZQDycilQfj7VOzqPlRSF9PekGwNuAPTkdKAI3iGz\ncp/H0p2TNCFA+YfnUscexyUIz3WmSFUxJGMEnB9qQyIfMnzfeFINxOdp471LKEaQOhwGHSm79pwq\n5PtzimIVV3ZwcZ65pkmAMDrStIwTk49qZFlnyefQGgCe2iMpxzn6Zq+I3j+X5R79M0afHIzjywcj\n26VtGCRlDyJnHU4yRQBjQ2535bKqepyP8aaY9sp5HJ4BNblrZxzM20M59iRiobvTpIpUYRqQT1fn\nFAGPcpcySeWi4B71NDYXaFAbj5W42sM4rZKMiCTy1Yr1x3FVZbuK4fMQKyIOVIxkVm2WkQT3U0Er\nQfJmMDJ21Lp92mpyQ210i4L5jdRjn3HvUN3C93Ks8JXzmXa8bHG7HcGq6Q3llPbzS25jjSReSR61\nWlha3O+0+wXc0pAyPlFUdZsYGM6NhIym52rbsGBtt4OQxyK5nxfeGOBoUyXldRgDkgc07aC6mFJe\nWv7uKKFnSMYUscfpTZriLylljRyp/wBnkVQiIabKRM0mANoU5rXjTybFbcjdKSWfHYk5xSeg0ZrX\nazzKmxkI6E969J8KW7xaeGkBG45Hoa5iz8Px6jqMRkOAuCcd69DghWGJUQYVRgCqgupMmTUucGkA\nNIQRWhBIOaNtQ5wetSK4IoAUjNMK0/IozmgCLBzTscU4rSYNADCMihEPenU4HigA20dKKDzQBSks\ng5yTn0z0FIunwpztGfpVsUuPWgCi1ihJJGSe9NXT4kJbAzV8nFN60rAU1s0DZK08W6r/AAj8Ks7R\nQRRYCIJjtTscUpNJmmBDPEWQ7VBPvXH69ZE/u/vEcnaOPxrs3b5Tiua1ob8qNuP4gOM0nsC3OFni\nIY7G8zbwcVEu09QA1T3RWOYjI47LSR+TJF85IfPGB2rE23K01vv5zj8Kry/IdqjNXWyrFQTgdKhE\nJkkwaaJZUXJHPTvUqJkYWTb9ehqc2nOCcDpiq7DyGGz7wPFUIk3vGgDojKe46imEDOUICk/jT1vp\nFXY469eKY+0OCAdjdRQAuZAVWAYPX3aklLEjPXowqZsLtHBGPv0yRRIAWGMng0gIAp3cdCO9SgBc\nKcZqT7OwXJ+6DimTJkkZ5xjNMCnKxdzk5xUsMPmYGM/nimYGSetXbWJHGBKFf1oA3NFsJA28kIMf\nWuxttPR4fnVcnutY+hRyJEoZyw9DzXVxAbRxiqJM+LTvKlypJWpLzTY7qHaw57H0rQxRSGYVvpBh\nchjuUjBqOXw9A7bkyD610BFNx6VLQ0zlk8KqJcuxKn0OKmuPDTzokLyfuFOSPWulXGeaQ8gjpTsg\nuyBYkihWNPlVRgAVgaxoj3t7DdwN+8j6j1q7cXM8MrRsuT/DjvV+0V/KBlADHnFF7lyi4q5iXulX\nTQZV/mI+6BVK18MXU2DIfLLfeIPNdkq7sCrccQXpRymfMylpWkx6bbhFYuTyWbua0c0hFNyBVkk6\nGkNRhsUpbimAxutICcUtJmgB6tjjrT8g1EKXODQBJk0m40o5pGHFAASMUgPOKFNKRkUAOFIRxTQ2\nODTsg96AAUhOKXNMY0AIxoWmU8HAoAkAFIRTN1Lk0ABjBpNijrQWxTWagCC7IEZw236HFcH4h1yO\n1DQxNumP6fWug8V6g9npzbFBL8D1HvXlc5Mjs5cuSc5JqWxpEkrySH5z855PtTom24B6nue1VQWd\niSck/rUseRye9Qy0aEfl7gC2T6k0F1jRto56k1QRiH5qadi0fUYpJA2AuF3HzHPHQL2qzHLG0YCo\n5bsW4rJC5b7wNXoAyHcsgT2TJqiSxLa71AKEN7CqT28qNgDP+zW7aTrImPNO4dmqCb5GZjwB0ZhQ\nBmRI6uGb5to5U9qkQh8jOAvr3qVhHI2UO5sdqsWmmzXjrsjyW4z/AJ+lIZNZ2Ml3HHEmSCcVJq+h\ntBGZY8sB97Fd/ouii0tgJUXOOD3p9/pyzRlQAQe1VyiueNjKtjB61es7eW6lAQBB3HSrWu6c2n3j\nKPuk5FLoyFZg7kgnpmgDstJtdkSjkYHrW+mQBWVpgynJyfetQZAoES5ozUe8Uu4Uhj6Q03NBNAAe\nOe9JuyOaQmmk0AI0KM4cnkdKeCBTM0qjc2KYFmH1NT76gXgU4GqJJQ5pCaaKZvzQBLmnA1GPrS80\nASdaaaBkUuc0wEpTSY5pwGaAHKeKU0gGKOtADQeaeDRjHQUHrmgAYCm9DTqQ80AMLjGaiZyfakJx\nTSaAGNIyHIJqWO4EnB4aoH5pgUg5FAF8cc5o31VErjryKXzs9QaAJyxpuc1GJ1z3NLvLD5VKn3oA\n4rx5OV8mPPBBNcEpZ3wq5J7161qvhu31hw9zJKpAx8hA/mKgsfBOl2mSyPOx7yN/hioaKTPNEjCt\n6MKuw6Nd3I329vJJgjoO1eoRaDptuwZLOEMOhK5P61d2ogwoAo5Q5jx+fS76zGbqzdFJxuZen41Q\nutwONuBXsd9bJcwsjKCGGCK8z17T/sN4QRlT0oasCdzDHYYUH1qeK2GciUhv9mnpZ+dgpwDTvJaA\n5DAexpXGWLa4+zHkkjqSRxU1xdQzw5U7nPQHimL5bwDzSDzT4rOOadQCAmcUXAhtdPnuZlWMMC3W\nvTNF0mOzs4ldT5g5Jqho2mR2eXblugJ9DXQLKMCqSJbLokAA4prshBx1quJKXfTEZeoaRBdIVZQz\nnJ3Vws+mXFvqOGbAB4JavTCDg4qneaZDdIPMQEjoSKAM7RosITnJ9q2MVVtLf7MNnNW+oqWUQyA4\n461W+1eW21+tXXXiqk8AcHNSA5bpWPWnicGsS7nNmy5Iw3SmrqG5eDyOKYG95lJvzWWt7lFOfrT1\nuc5OeKANHdngVZgTC5rMiuF3AEjk1soh2DFUhMb0pwoKnvTepxTEO3elIIx70oApwoAUDFFKKUUA\nJg0vOMYp2aM0ANbNICafkGmnHamA7JoBwaaKKAJlbIprGmLnNKxoAXNJnmjNJQBF1pu2pcCjFAEX\nlil8sVLikNICPyhSGIVJ3pcUARhAKVR7VIE5p2KAI8YpCcVJjNRutAEbNmmM1K4IqN+lAEbknNcx\n4hslu056gHBrpS3pVWa3jnyCOaAueZIZLaTaxJXPBFDlWBJTv3NdDrmjMrF4gB3OK51gwJU9uxrJ\nqxoiSAwSRBWBznHFbmj26+YwePdGcY9jXOrujPHAz6VtaZftBMe6HqKaBnYLKVAHpVuOX5Rk1lQy\nrIgdWDKehq0r8AVoZ2NJXz3qRXH41ltdGM7UGW9T0ponnLbt2D7CgDaDUuc1lLezL95VapF1L++h\nH0oAuuhPI601TxUDalGqbhyfSqi3zBy7Y29wB0pMaNSonAwaZFdxygFWFUdQvjExUHoOakZXvrdL\ntXjUjeOV+tcrbSPBLIkpO4NyD2xW/Z3Yluw3YcH3qHxJbLHAbhAAP4+KFqPYyZNbjjyAcjNDa/Gq\nZLVz0zwsvBIJNUm+ZsZ4zQB2ltrcBdXZz16Z6V6LYzLNaxupyGXINeRaTpscw3yscelemeH5UFks\nCEERjA+lERSNeQAITUBIHSpyMgg9DUXlEcjmrJEAPU1IAKZnjmnBqAHYoozTgpNADaKfsNJigBKT\np1p3el4pgMpwFDUCgBc80vBpCKTNAD8CgjIppalDHigBuBSU3NGaQDwKXbSAmnCgA20dDiloPWgA\nxSGgg005oAO9BxTc4pjvg0wEcZqB+KsjJGajkRSPekBU2EjinGMAYNSjgYFJjNAGfdWokVtoycdD\nXJatozoDKifWu9280yS2EqFWHWk1cE7HlTRbP9Zx7+lEUbZBVuB6dq7HU/CTXJL28gRv7pHBp+me\nFDbK6XAjdW6EdqnlL5jH0eaRZNvJXuD3+ldCJAOCtWrLw9bWj7jufAwA3atJbWNFAVRxTSaJbMOF\nC7FvU1cWDirjWqD7qgH2puwr1FUIqmLjpURiz2q/ioXAH1oAoPEPyqEHB2mrroWziqssew9aQzPV\n2tLwgE4PPHTFaNzbtqNtvjADng1XksxPPG38XStu0txBCEqRnLpazW04TG3BP41qrIlzbbJVVsjB\nDDNWr+0M5DIcMPSstIZYWcOuOaS0Y3qjltT8MmOdmjf5GORxVZNBCHLPzXayxGeAp37VgXH7l2DN\n8w65olccStb2iqSGkIHpmul8Ly29vcsiS5MnYtmuWRIpRgSM5rT0IxRalGjwmNt2QTUxeo2j0lW4\n4oLUkX3BTutbGRGke4lm4zT/AC17UuaVRmgAEYp4WlApcUAMIxTcGnnrS0wIsc0YycU8imYIYcUg\nExhuadin8GkIPamAAcVGU5p5JpoBoAOMULShcmlK4oArBueaepB6UpjFCJtPFIB6jNPxigcCkJoA\nXikpmc0A0AO3U0mlNNxQAhFIEBHPNSAZpwUA5pgMC5HAprRZqY8UhIoApyIU+lRlsVoYBpNmOgFA\nFSONmGcYHvU4jAqXmgAGgCMKtGB6VJtHrS7PekBFtz0FBTA96eRjimk0ARstRmPNT4pNtAFVovSq\n8kJrR20nlbugoAymXaOapzrzW+1mWBzis+60985UYwKAM+B0DguenNWo9RheXy92D2rPkhlRjleD\nxxVWO3ZrxFzh+aiWhaOmKZAIqtexBoS3cVZjBWMKTnAqG6ceURjOeKBGTGcVg6zpLyXXn+Z8j/wj\nrXSyWpij3Y6VBcxLPat2KjINNq6BPU5qKFLcKsacnjNbmiwS3Dq80WArcE1Bp2n3F/PsgThSNzHo\ntdpa6YIY1DHLAc46VnCLbuXJkqHApwBNPFvjvTgu3tWxkCp60/GKQHignmmAvFFAPFJmgBCeaWkN\nFAC0YopaAGYwaDUm0EU0jFADetLgUgBpQaAE6U0tinEGmMDQAZyaWkAzSmkApNMJobOeKApoAULx\nSkAUvHQ0mKAGFsVG0uOg4qQjd2pgXJwBzTAkiO9QwqUU2NAi+/enEUAB60UlGaAF6dKAM9aaKeKA\nF2ijAFFGaADA9KQrS0UgGEUwjmpqQrmmBFigU8ikpACqOpp4wOgpB0pDQA7NNajPFJnNAGddW24n\nA5POcVlfYXF9ESASWxmunVQQQaaYUByAMiiwEawoikAdetVrm3UspA4HarpGDxTJozJGQhG7tmiw\nFBowVIIyKyJIz57RopwTjAFdCYGWIHgOOvpS20Cq29gC9FgJLCyisbdYoVwB1Pcn3q3TRTqAEzk0\nYpcUUwGFaYRjrU1NNADQMil2kU3ODxUlAEZFKBTiKQjBoAXAoxTc80uaAFpOtFGKAFAGKYRzxTzR\ngAZNADc460EjHSmEljS7TQACilIxR2oAaKWkNANACmkoLUmaQDwARmlCgcCo9200/cPWmA48UmKT\ndRuoAXHFR8k0/JoFADdp9af2pCaTNADs0lGaaTQA7NGabmikA7NPWowKdnFMB/FMIozxSZoAMUYx\n3ozSdaQCGk208cUoGaAEAwKDT8CkxTAjAPWjvUmOKaRQAcEYp21QOMUdqaRk8UAKX29qcr7jTcCk\nxg8UASmk3DPvTQ/y80vFACk000UGgBhNOB5qMnFKjUATZpppQc0tAEZ4pN4qQ8iocYOKAJA2aUGo\nwMGnA0AS0xutG7NIaAE6Uq8ikNA6UABOelJQR6UEnFABSZFRxeadwkUD5jjHcdqk2mgBOKKNp9Kc\nF9aAEFIUJNP+lKBmgBAvGKdgCjpRQAhppp/BpMCgBtNNPNMIpAJmloxRQAlLmjFFADgaM5ptGaAF\nzS03NITQAuaN1NJpOtAEgNPBqNR60/6UwFJpRzTcUtADqYaWkNAADxSg0gFLigBaDSEGlzxzQA3v\nUnFR4pR1oAeMUjYxQcDtTepoAQ4IpvSn0mM0AIGpwf1pAMUMcUAPJ4qIjk0qDJ46U/YKAGYoANP2\n44oHFAAKDS0hoATGaKBRQAGkxRmigAooxmjpQAtAFJmlFAC0ZxSimsaAAnJozScmjFAC0U3OKXNA\nARRijNBoATikNLmikA2lpaXigBu00m004mjdTAYQaac1L1pCKQEeKXFPxSEYpgKKf0qMHBp9ADs0\n00UoUnrQA2jFSbQKOnSgBFB9KXFLRQAUYFFHegAwKjYc1JSbQaAGnpTKkIphFAAOtPApF6U7tQAw\nnmkPIpSKTFACo20VIDkUwLkU4AgUAJ3pKMUUAApTQKWgBuaXFJjmmmgAHNGQKYhJFOAzSAN4FAbI\npSvtTVGDQA4Ak06kHFOFMAFL1puRmloAKKTNJmkAMuelNCnvTqWgBvSlpTTdwzQAxvvcU4UEjNBa\ngBelFJmlyKAEFLkUZoAoAXilxQMUuaYCcUbc0ueKN1AEbpzSr2Bp3XrSd6AHgYopM0UABNA60Uua\nAFFFJ3paACikzQTQAoopuaM0AOpCKSlzQA0jFGeKU80mMUAIaMUvegc0AOHSmk5pT0pDQA3OD7U/\nFRPUit8ozQAtBAFGR2NNbk0ALSEUoNGM0ARqpXNKPrSmm0AOycdaQHvRRSAXOaeMVHT8UwEI5pR6\nGg8UlAC0hpc008c0AGPfilBpu4McU4cUgCmFecinmk7cUwIWbA5pQxIpgid/vEdaUxyKcdRSAcDT\nqZhvQ1IM45oAKcqmkGfSnc+lMBcCgL6mge/WloADSdaXFL0oAaQaTvT802gBaM4pKSgB2aTOaTPH\nNGaAFzS5zTCRml3UAOzTS2KQkmonbB5oAmDZozUKvTt1AEoOaUUxWzTgaAHUUCjNABSZFJRQAZpC\naUmkxzQAxqQGnkZqMjFADwaUVGDSg0ASHFJk03NAoA//2Q==\n" } }, - "id": "c43aa2bb-77f7-408b-b76b-0d4216303d07" + "id": "5d449247-8329-4e5a-8188-6a2a68d42259" } ], "nbformat": 4, diff --git a/tests/docs/smoke-all/2024/01/31/8507.docx.snapshot b/tests/docs/smoke-all/2024/01/31/8507.docx.snapshot index 231b42d5c08..25cbca5dada 100644 Binary files a/tests/docs/smoke-all/2024/01/31/8507.docx.snapshot and b/tests/docs/smoke-all/2024/01/31/8507.docx.snapshot differ diff --git a/tests/docs/smoke-all/crossrefs/float/html/html-knitr-table-captions-1.qmd b/tests/docs/smoke-all/crossrefs/float/html/html-knitr-table-captions-1.qmd index adb6b32544c..e96736f436d 100644 --- a/tests/docs/smoke-all/crossrefs/float/html/html-knitr-table-captions-1.qmd +++ b/tests/docs/smoke-all/crossrefs/float/html/html-knitr-table-captions-1.qmd @@ -5,9 +5,9 @@ _quarto: html: ensureHtmlElements: - - - "figure.quarto-float-tbl div#tbl-cars figure.quarto-subfloat-tbl table.table" + - "figure.quarto-float-tbl div#tbl-cars figure.quarto-subfloat-tbl table" - "figure.quarto-float-tbl div#tbl-cars figure.quarto-subfloat-tbl figcaption.quarto-subfloat-caption" - - "figure.quarto-float-tbl div#tbl-pressure figure.quarto-subfloat-tbl table.table" + - "figure.quarto-float-tbl div#tbl-pressure figure.quarto-subfloat-tbl table" - "figure.quarto-float-tbl div#tbl-pressure figure.quarto-subfloat-tbl figcaption.quarto-subfloat-caption" - "div#tbl-tables > figure.quarto-float-tbl > figcaption.quarto-float-caption" - [] diff --git a/tests/docs/smoke-all/crossrefs/float/revealjs/revealjs-knitr-table-captions-1.qmd b/tests/docs/smoke-all/crossrefs/float/revealjs/revealjs-knitr-table-captions-1.qmd index 696aa80a43d..29cb0a1e570 100644 --- a/tests/docs/smoke-all/crossrefs/float/revealjs/revealjs-knitr-table-captions-1.qmd +++ b/tests/docs/smoke-all/crossrefs/float/revealjs/revealjs-knitr-table-captions-1.qmd @@ -5,9 +5,9 @@ title: Knitr Table Test # revealjs: # ensureHtmlElements: # - -# - "figure.quarto-float-tbl div#tbl-cars figure.quarto-float-tbl table.table" +# - "figure.quarto-float-tbl div#tbl-cars figure.quarto-float-tbl table" # - "figure.quarto-float-tbl div#tbl-cars figure.quarto-float-tbl figcaption.quarto-subfloat-caption" -# - "figure.quarto-float-tbl div#tbl-pressure figure.quarto-float-tbl table.table" +# - "figure.quarto-float-tbl div#tbl-pressure figure.quarto-float-tbl table" # - "figure.quarto-float-tbl div#tbl-pressure figure.quarto-float-tbl figcaption.quarto-subfloat-caption" # - "div#tbl-tables > figure.quarto-float-tbl > figcaption.quarto-float-caption" # - [] diff --git a/tests/docs/smoke-all/crossrefs/float/typst/typst-knitr-table-captions-1.qmd b/tests/docs/smoke-all/crossrefs/float/typst/typst-knitr-table-captions-1.qmd index 7cbc4b19026..0358d0e7467 100644 --- a/tests/docs/smoke-all/crossrefs/float/typst/typst-knitr-table-captions-1.qmd +++ b/tests/docs/smoke-all/crossrefs/float/typst/typst-knitr-table-captions-1.qmd @@ -6,9 +6,9 @@ format: typst # html: # ensureHtmlElements: # - -# - "figure.quarto-float-tbl div#tbl-cars figure.quarto-float-tbl table.table" +# - "figure.quarto-float-tbl div#tbl-cars figure.quarto-float-tbl table" # - "figure.quarto-float-tbl div#tbl-cars figure.quarto-float-tbl figcaption.quarto-subfloat-caption" -# - "figure.quarto-float-tbl div#tbl-pressure figure.quarto-float-tbl table.table" +# - "figure.quarto-float-tbl div#tbl-pressure figure.quarto-float-tbl table" # - "figure.quarto-float-tbl div#tbl-pressure figure.quarto-float-tbl figcaption.quarto-subfloat-caption" # - "div#tbl-tables > figure.quarto-float-tbl > figcaption.quarto-float-caption" # - [] diff --git a/tests/smoke/render/render-latex-output.test.ts b/tests/smoke/render/render-latex-output.test.ts index 3584e01fab5..4fc7d4ac760 100644 --- a/tests/smoke/render/render-latex-output.test.ts +++ b/tests/smoke/render/render-latex-output.test.ts @@ -8,7 +8,8 @@ import { docs } from "../../utils.ts"; import { renderVerifyLatexOutput } from "./render.ts"; renderVerifyLatexOutput(docs("latex-output/captionless-margin-image.qmd"), [ - /{\\marginnote{\\begin{footnotesize}\\includegraphics{/, + /{\\marginnote{\\begin{footnotesize}\\pandocbounded{\\includegraphics\[keepaspectratio\]{/, + // /{\\marginnote{\\begin{footnotesize}\\pandocbounded{\\includegraphics{/, ]); renderVerifyLatexOutput(docs("latex-output/figure-div.qmd"), [ /\\centering{/,