diff --git a/games/anki/Makefile b/games/anki/Makefile index 4766fecb9c14..307a3c6e9601 100644 --- a/games/anki/Makefile +++ b/games/anki/Makefile @@ -1,184 +1,182 @@ PORTNAME= anki DISTVERSION= 25.09.2 -PORTREVISION= 5 +PORTREVISION= 6 # Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes CATEGORIES= games education python MASTER_SITES= LOCAL/kai/:yarncache DISTFILES= anki-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}:yarncache MAINTAINER= kai@FreeBSD.org COMMENT= Flashcard trainer with spaced repetition WWW= https://apps.ankiweb.net/ LICENSE= AGPLv3+ LICENSE_FILE= ${WRKSRC}/LICENSE NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc NOT_FOR_ARCHS_REASON= the provided build system written in Rust (= runner) accepts only 64-bit systems. BUILD_DEPENDS= protoc:devel/protobuf \ rsync:net/rsync \ uv:devel/uv \ yarn:www/yarn \ ${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}mypy-protobuf>=1.21:devel/py-mypy-protobuf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} LIB_DEPENDS= libzstd.so:archivers/zstd RUN_DEPENDS= lame:audio/lame \ ${PYTHON_PKGNAMEPREFIX}pyaudio>0:audio/py-pyaudio@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}decorator>0:devel/py-decorator@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}jsonschema>0:devel/py-jsonschema@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}send2trash>0:deskutils/py-send2trash@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}distro>0:sysutils/py-distro@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}orjson>0:devel/py-orjson@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}markdown>0:textproc/py-markdown@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:www/py-beautifulsoup@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flask>0:www/py-flask@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}Flask-Cors>0:www/py-flask-cors@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}protobuf>=4.21:devel/py-protobuf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}typing-extensions>0:devel/py-typing-extensions@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}waitress>=2.0.0:www/py-waitress@${PY_FLAVOR} # USES=ssl is required for the compilation of the Rust code USES= cargo desktop-file-utils ninja nodejs:build pyqt:6 python \ shebangfix ssl USE_GITHUB= yes GH_ACCOUNT= ankitects # Translation files GH_TUPLE= ankitects:anki-core-i18n:480ef0d:ftlrslib \ ankitects:anki-desktop-ftl:fd5f984:ftlextra USE_PYQT= pyqt6 sip:build webengine SHEBANG_FILES= yarn qt/tools/runanki.system.in CARGO_CARGOTOML= ${WRKSRC}/Cargo.toml CARGO_BUILD= no CARGO_INSTALL= no CARGO_TARGET_DIR= ${WRKSRC}/out/rust # Variables used by the "runner" build system MAKE_ENV+= NODE_BINARY=${LOCALBASE}/bin/node \ OFFLINE_BUILD=1 \ PROTOC_BINARY=${LOCALBASE}/bin/protoc \ PYTHON_BINARY=${PYTHON_CMD} \ UV_BINARY=${LOCALBASE}/bin/uv \ UV_NO_BUILD_ISOLATION=1 \ UV_OFFLINE=1 \ YARN_BINARY=${LOCALBASE}/bin/yarn \ YARN_CACHE_FOLDER=${_MY_YARNCACHE} \ out=${WRKSRC}/out # If RELEASE is unset the "runner" build system omits the # "--release" flag for cargo(1). .if !defined(WITH_DEBUG) MAKE_ENV+= RELEASE=1 .endif OPTIONS_DEFAULT= MPV OPTIONS_GROUP= PLAYER OPTIONS_GROUP_PLAYER= MPLAYER MPV OPTIONS_SUB= yes MPV_DESC= mpv media player support MPLAYER_RUN_DEPENDS= mplayer:multimedia/mplayer MPV_RUN_DEPENDS= mpv:multimedia/mpv # Should contain the most recent commit that reflects ${DISTVERSION} and must # be exactly 8 digits otherwise the check for newer versions won't work as # expected. _MY_BUILDHASH= 3890e12c # Remove ${CARGO_BUILD_TARGET} from ${CARGO_ENV} to avoid problems with # hardcoded paths as the "runner" build system expects its components # in ${WRKSRC}/out/rust/debug _MY_CARGO_ENV= ${CARGO_ENV:C/CARGO_BUILD_TARGET=.+//} # Path of the cache that is used by www/yarn _MY_YARNCACHE= ${WRKDIR}/.yarn post-extract: # Some parts of the runner build system expects to be in a git repository @${TOUCH} ${WRKSRC}/.git # Prepare the virtual repositories for the translation files @${RM} -r ${WRKSRC}/ftl/core-repo ${WRKSRC}/ftl/qt-repo @${RLN} ${WRKSRC_ftlrslib} ${WRKSRC}/ftl/core-repo @${RLN} ${WRKSRC_ftlextra} ${WRKSRC}/ftl/qt-repo post-patch: @${REINPLACE_CMD} -e 's|\@PREFIX\@|${PREFIX}|' \ ${WRKSRC}/qt/tools/runanki.system.in pre-configure: # Create paths for the Python pseudo venv and link some binaries to it. ${MKDIR} ${WRKSRC}/out/pyenv/bin ${LN} -s ${PYTHON_CMD} ${WRKSRC}/out/pyenv/bin/python - ${LN} -s ${LOCALBASE}/bin/protoc-gen-mypy ${WRKSRC}/out/pyenv/bin/protoc-gen-mypy # Overview of the build process # # 1. The "runner" build system is built explicitly with the "--release" flag # to avoid issues with hardcoded paths. Once completed the binaries are # placed into ${WRKSRC}/out/rust/release. # 2. As soon as step 1 is finished, the "runner" build system is executed, # which then processes the following steps: # * build remaining components of "runner" (= ninja_gen, configure, etc.) # * generate the ninja file and run ninja afterwards # * create the Python wheel files (via "uv") in ${WRKSRC}/out/wheels pre-build: ${ECHO_CMD} -e "${_MY_BUILDHASH}" >> ${WRKSRC}/out/buildhash ${ECHO_MSG} "===> Building runner build framework" cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${_MY_CARGO_ENV} \ ${CARGO} build --package runner --release --verbose --verbose do-build: ${ECHO_MSG} "===> Executing runner build framework" cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${_MY_CARGO_ENV} \ ${WRKSRC}/out/rust/release/runner build wheels post-build: ${MKDIR} ${WRKSRC}/out/dist cd ${WRKSRC}/out/wheels \ && ${UNZIP_NATIVE_CMD} -d ${WRKSRC}/out/dist -x *.orig anki*.whl \ && ${UNZIP_NATIVE_CMD} -d ${WRKSRC}/out/dist -x *.orig aqt*.whl # Update the timestamps otherwise the set dates of the wheels # (= 1980-01-01 00:00:00) are used ${FIND} ${WRKSRC}/out/dist -type f -exec ${TOUCH} {} + do-install: ${MKDIR} ${STAGEDIR}${DATADIR}/_aqt \ ${STAGEDIR}${DATADIR}/anki \ ${STAGEDIR}${DATADIR}/aqt \ ${STAGEDIR}${PREFIX}/share/pixmaps \ ${STAGEDIR}${PREFIX}/share/applications cd ${WRKSRC}/out/dist/ \ && ${COPYTREE_SHARE} _aqt ${STAGEDIR}${DATADIR} "! -name .gitignore" \ && ${COPYTREE_SHARE} anki ${STAGEDIR}${DATADIR} "! -name .gitignore" \ && ${COPYTREE_SHARE} aqt ${STAGEDIR}${DATADIR} "! -name .gitignore" cd ${WRKSRC}/qt/launcher/lin \ && ${INSTALL_DATA} anki.xpm anki.png ${STAGEDIR}${PREFIX}/share/pixmaps \ && ${INSTALL_DATA} anki.desktop ${STAGEDIR}${PREFIX}/share/applications \ && ${INSTALL_MAN} anki.1 ${STAGEDIR}${PREFIX}/share/man/man1 cd ${WRKSRC}/qt/tools \ && ${INSTALL_SCRIPT} runanki.system.in ${STAGEDIR}${PREFIX}/bin/anki # Autogenerate some parts of the plist file as several *.css and *.mjs files # have a computed filename. As it is user-specific it is impossible to know # their filename in advance. post-install: @${FIND} ${STAGEDIR}${DATADIR}/_aqt/data/web/sveltekit/_app/immutable/ -type f -name "*.css" -o -name "*.mjs" | \ ${SORT} | ${SED} -e 's|${STAGEDIR}||' \ >> ${TMPPLIST} # Helper target to make the generation of the yarn cache easier make-yarn-cache: patch @${RM} -r ${_MY_YARNCACHE} @cd ${WRKSRC} \ && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install --ignore-scripts @cd ${WRKDIR} \ && ${TAR} -czf ${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX} .yarn \ && ${ECHO_CMD} "Please upload the file ${WRKDIR}/${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}" .include diff --git a/games/anki/files/patch-build_configure_src_python.rs b/games/anki/files/patch-build_configure_src_python.rs index af1d0427fe17..17c4331568c3 100644 --- a/games/anki/files/patch-build_configure_src_python.rs +++ b/games/anki/files/patch-build_configure_src_python.rs @@ -1,43 +1,71 @@ Depend on PYTHON_BINARY as well if OFFLINE_BUILD is used to let us specify the current Python interpreter that is used in the system. Otherwise the build emits following error message during the creation of the Python wheels: [...] FAILED: /wrkdirs/usr/ports/games/anki/work/anki-25.07.2/out/wheels/aqt-25.7.2-py3-none-any.whl /wrkdirs/usr/ports/games/anki/work/anki-25.07.2/out/rust/release/runner run --env="UV_PROJECT_ENVIRONMENT=/wrkdirs/usr/ports/games/anki/work/anki-25.07.2/out/pyenv" --env="A NKI_WHEEL_TAG=py3-none-any" /usr/local/bin/uv build --wheel --out-dir=/wrkdirs/usr/ports/games/anki/work/anki-25.07.2/out/wheels/ --project=qt × Failed to build `/wrkdirs/usr/ports/games/anki/work/anki-25.07.2/qt` ╰─▶ No interpreter found for Python 3.13.5 in virtual environments, managed installations, or search path Failed with code Some(2): /usr/local/bin/uv build --wheel --out-dir=/wrkdirs/usr/ports/games/anki/work/anki-25.07.2/out/wheels/ --project=qt [...] The environment variables UV_NO_BUILD_ISOLATION=1 and UV_OFFLINE=1 are also required to run "uv" in offline mode and to make use of the Python packages outside of the pseudo-venv. ---- build/configure/src/python.rs.orig 2025-07-07 16:49:54 UTC +-- + +Also don't do type checking (via mypy and related) downstream. +Mypy-protobuf generates mypy stub files from protobuf specs and should +therefore be stripped. + +Obtained from: + +https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/anki/strip-type-checking-deps.patch + +--- build/configure/src/python.rs.orig 2025-09-17 06:50:13 UTC +++ build/configure/src/python.rs -@@ -119,11 +119,19 @@ impl BuildAction for BuildWheel { +@@ -81,9 +81,7 @@ impl BuildAction for GenPythonProto { + impl BuildAction for GenPythonProto { + fn command(&self) -> &str { + "$protoc $ +- --plugin=protoc-gen-mypy=$protoc-gen-mypy $ + --python_out=$builddir/pylib $ +- --mypy_out=$builddir/pylib $ + -Iproto $in" + } + +@@ -101,7 +99,6 @@ impl BuildAction for GenPythonProto { + .collect(); + build.add_inputs("in", &self.proto_files); + build.add_inputs("protoc", inputs![":protoc_binary"]); +- build.add_inputs("protoc-gen-mypy", inputs![":pyenv:protoc-gen-mypy"]); + build.add_outputs("", python_outputs); + } + +@@ -119,11 +116,19 @@ impl BuildAction for BuildWheel { impl BuildAction for BuildWheel { fn command(&self) -> &str { - "$uv build --wheel --out-dir=$out_dir --project=$project_dir" + if std::env::var("OFFLINE_BUILD").is_ok() && std::env::var("PYTHON_BINARY").is_ok() { + "$uv build --python=$python_binary --wheel --out-dir=$out_dir --project=$project_dir" + } else { + "$uv build --wheel --out-dir=$out_dir --project=$project_dir" + } } fn files(&mut self, build: &mut impl FilesHandle) { if std::env::var("OFFLINE_BUILD").ok().as_deref() == Some("1") { + let python_binary = + std::env::var("PYTHON_BINARY").expect("PYTHON_BINARY must be set in OFFLINE_BUILD mode"); + build.add_variable("python_binary", python_binary); + let uv_path = std::env::var("UV_BINARY").expect("UV_BINARY must be set in OFFLINE_BUILD mode"); build.add_inputs("uv", inputs![uv_path]); diff --git a/games/anki/pkg-plist b/games/anki/pkg-plist index c8062f6e20d3..0d42adaa6e49 100644 --- a/games/anki/pkg-plist +++ b/games/anki/pkg-plist @@ -1,525 +1,501 @@ bin/anki share/man/man1/anki.1.gz %%DATADIR%%/_aqt/colors.py %%DATADIR%%/_aqt/data/qt/icons.qrc %%DATADIR%%/_aqt/data/qt/icons/anki.png %%DATADIR%%/_aqt/data/qt/icons/application-braces-outline.svg %%DATADIR%%/_aqt/data/qt/icons/book-clock-outline.svg %%DATADIR%%/_aqt/data/qt/icons/book-cog-outline.svg %%DATADIR%%/_aqt/data/qt/icons/book-outline.svg %%DATADIR%%/_aqt/data/qt/icons/card-state.svg %%DATADIR%%/_aqt/data/qt/icons/check-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/check-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/check-dark.svg %%DATADIR%%/_aqt/data/qt/icons/check-light.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-down-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-down-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-down-dark.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-down-light.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-up-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-up-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-up-dark.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-up-light.svg %%DATADIR%%/_aqt/data/qt/icons/circle-medium-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/circle-medium-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/circle-medium-dark.svg %%DATADIR%%/_aqt/data/qt/icons/circle-medium-light.svg %%DATADIR%%/_aqt/data/qt/icons/circle-outline.svg %%DATADIR%%/_aqt/data/qt/icons/circle.svg %%DATADIR%%/_aqt/data/qt/icons/clock-outline.svg %%DATADIR%%/_aqt/data/qt/icons/clock.svg %%DATADIR%%/_aqt/data/qt/icons/collection.svg %%DATADIR%%/_aqt/data/qt/icons/deck.svg %%DATADIR%%/_aqt/data/qt/icons/drag-horizontal-FG_SUBTLE-dark.svg %%DATADIR%%/_aqt/data/qt/icons/drag-horizontal-FG_SUBTLE-light.svg %%DATADIR%%/_aqt/data/qt/icons/drag-horizontal-dark.svg %%DATADIR%%/_aqt/data/qt/icons/drag-horizontal-light.svg %%DATADIR%%/_aqt/data/qt/icons/drag-vertical-FG_SUBTLE-dark.svg %%DATADIR%%/_aqt/data/qt/icons/drag-vertical-FG_SUBTLE-light.svg %%DATADIR%%/_aqt/data/qt/icons/drag-vertical-dark.svg %%DATADIR%%/_aqt/data/qt/icons/drag-vertical-light.svg %%DATADIR%%/_aqt/data/qt/icons/flag-variant-off-outline.svg %%DATADIR%%/_aqt/data/qt/icons/flag-variant-outline.svg %%DATADIR%%/_aqt/data/qt/icons/flag-variant.svg %%DATADIR%%/_aqt/data/qt/icons/form-textbox.svg %%DATADIR%%/_aqt/data/qt/icons/heart-outline.svg %%DATADIR%%/_aqt/data/qt/icons/heart.svg %%DATADIR%%/_aqt/data/qt/icons/magnify-dark.svg %%DATADIR%%/_aqt/data/qt/icons/magnify-light.svg %%DATADIR%%/_aqt/data/qt/icons/media-record.svg %%DATADIR%%/_aqt/data/qt/icons/menu-down-dark.svg %%DATADIR%%/_aqt/data/qt/icons/menu-down-light.svg %%DATADIR%%/_aqt/data/qt/icons/menu-up-dark.svg %%DATADIR%%/_aqt/data/qt/icons/menu-up-light.svg %%DATADIR%%/_aqt/data/qt/icons/minus-thick-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/minus-thick-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/minus-thick-dark.svg %%DATADIR%%/_aqt/data/qt/icons/minus-thick-light.svg %%DATADIR%%/_aqt/data/qt/icons/newspaper.svg %%DATADIR%%/_aqt/data/qt/icons/notetype.svg %%DATADIR%%/_aqt/data/qt/icons/selection-drag-dark.svg %%DATADIR%%/_aqt/data/qt/icons/selection-drag-light.svg %%DATADIR%%/_aqt/data/qt/icons/tag-off-outline.svg %%DATADIR%%/_aqt/data/qt/icons/tag-outline.svg %%DATADIR%%/_aqt/data/qt/icons/tag.svg %%DATADIR%%/_aqt/data/web/css/addonconf.css %%DATADIR%%/_aqt/data/web/css/deckbrowser.css %%DATADIR%%/_aqt/data/web/css/editable.css %%DATADIR%%/_aqt/data/web/css/editor.css %%DATADIR%%/_aqt/data/web/css/overview.css %%DATADIR%%/_aqt/data/web/css/reviewer-bottom.css %%DATADIR%%/_aqt/data/web/css/reviewer.css %%DATADIR%%/_aqt/data/web/css/toolbar-bottom.css %%DATADIR%%/_aqt/data/web/css/toolbar.css %%DATADIR%%/_aqt/data/web/css/webview.css %%DATADIR%%/_aqt/data/web/imgs/anki-logo-thin.png %%DATADIR%%/_aqt/data/web/imgs/favicon.ico %%DATADIR%%/_aqt/data/web/imgs/gears.svg %%DATADIR%%/_aqt/data/web/imgs/media-record.png %%DATADIR%%/_aqt/data/web/imgs/more.png %%DATADIR%%/_aqt/data/web/imgs/paperclip.png %%DATADIR%%/_aqt/data/web/imgs/refresh.svg %%DATADIR%%/_aqt/data/web/imgs/text_bold.png %%DATADIR%%/_aqt/data/web/imgs/text_clear.png %%DATADIR%%/_aqt/data/web/imgs/text_cloze.png %%DATADIR%%/_aqt/data/web/imgs/text_italic.png %%DATADIR%%/_aqt/data/web/imgs/text_sub.png %%DATADIR%%/_aqt/data/web/imgs/text_super.png %%DATADIR%%/_aqt/data/web/imgs/text_under.png %%DATADIR%%/_aqt/data/web/js/deckbrowser.js %%DATADIR%%/_aqt/data/web/js/editor.js %%DATADIR%%/_aqt/data/web/js/mathjax.js %%DATADIR%%/_aqt/data/web/js/reviewer-bottom.js %%DATADIR%%/_aqt/data/web/js/reviewer.js %%DATADIR%%/_aqt/data/web/js/toolbar.js %%DATADIR%%/_aqt/data/web/js/vendor/bootstrap.bundle.min.js %%DATADIR%%/_aqt/data/web/js/vendor/jquery-ui.min.js %%DATADIR%%/_aqt/data/web/js/vendor/jquery.min.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/a11y/assistive-mml.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/a11y/complexity.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/a11y/explorer.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/a11y/semantic-enrich.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/de.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/en.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/es.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/fr.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/hi.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/it.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/nemeth.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/tex-chtml-full.js %%DATADIR%%/_aqt/data/web/js/vendor/plot.js %%DATADIR%%/_aqt/data/web/js/webview.js %%DATADIR%%/_aqt/data/web/pages/congrats.css %%DATADIR%%/_aqt/data/web/pages/congrats.html %%DATADIR%%/_aqt/data/web/pages/congrats.js %%DATADIR%%/_aqt/data/web/pages/editable.css %%DATADIR%%/_aqt/data/web/pages/editable.js %%DATADIR%%/_aqt/data/web/sveltekit/_app/env.js @comment Several *.css and *.mjs files of sveltekit have a computed filename. @comment As it is user-specific it is impossible to know their filename in @comment advance thus they're autogenerated for the plist during build. @comment The affected files are kept here for reference. @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/0.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/11.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/2.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/3.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/4.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/5.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/6.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/9.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/Badge.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/ButtonGroup.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/ButtonToolbar.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/Col.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/Container.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/EnumSelectorRow.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/EnumSelectorRow.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/IconButton.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/ImageOcclusionPage.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/ImportPage.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/LabelButton.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/Row.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/Select.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/Shortcut.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/StickyContainer.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/TagEditor.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/TagEditor.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/TitledContainer.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/WithTooltip.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/_layout.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/_page.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/_page.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/_page.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/_page.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/_page.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/_page.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/_page.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/functional.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/assets/index.GUESS_ME.css @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/Badge.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/ButtonGroup.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/Col.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/Component.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/Container.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/EnumSelectorRow.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/IconButton.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/ImageOcclusionPage.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/ImportPage.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/LabelButton.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/Row.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/Select.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/Shortcut.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/StickyContainer.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/TagEditor.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/TitledContainer.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/WithTooltip.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/_commonjsHelpers.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/await_block.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/backend.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/bridgecommand.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/cloneDeep.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/context-keys.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/cross-browser.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/each.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/entry.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/ftl.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/functional.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/helpers.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/index.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/index.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/index.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/isObject.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/progress.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/runtime-require.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/stores.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/theme.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/time.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/chunks/utils.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/entry/app.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/entry/start.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/0.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/1.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/10.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/11.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/2.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/3.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/4.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/5.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/6.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/7.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/8.GUESS_ME.mjs @comment %%DATADIR%%/_aqt/data/web/sveltekit/_app/immutable/nodes/9.GUESS_ME.mjs %%DATADIR%%/_aqt/data/web/sveltekit/_app/version.json %%DATADIR%%/_aqt/data/web/sveltekit/index.html %%DATADIR%%/_aqt/forms/about_qt6.py %%DATADIR%%/_aqt/forms/addcards_qt6.py %%DATADIR%%/_aqt/forms/addfield_qt6.py %%DATADIR%%/_aqt/forms/addmodel_qt6.py %%DATADIR%%/_aqt/forms/addonconf_qt6.py %%DATADIR%%/_aqt/forms/addons_qt6.py %%DATADIR%%/_aqt/forms/browser_qt6.py %%DATADIR%%/_aqt/forms/browserdisp_qt6.py %%DATADIR%%/_aqt/forms/browseropts_qt6.py %%DATADIR%%/_aqt/forms/changemap_qt6.py %%DATADIR%%/_aqt/forms/changemodel_qt6.py %%DATADIR%%/_aqt/forms/clayout_top_qt6.py %%DATADIR%%/_aqt/forms/customstudy_qt6.py %%DATADIR%%/_aqt/forms/dconf_qt6.py %%DATADIR%%/_aqt/forms/debug_qt6.py %%DATADIR%%/_aqt/forms/editcurrent_qt6.py %%DATADIR%%/_aqt/forms/edithtml_qt6.py %%DATADIR%%/_aqt/forms/emptycards_qt6.py %%DATADIR%%/_aqt/forms/exporting_qt6.py %%DATADIR%%/_aqt/forms/fields_qt6.py %%DATADIR%%/_aqt/forms/filtered_deck_qt6.py %%DATADIR%%/_aqt/forms/finddupes_qt6.py %%DATADIR%%/_aqt/forms/findreplace_qt6.py %%DATADIR%%/_aqt/forms/forget_qt6.py %%DATADIR%%/_aqt/forms/getaddons_qt6.py %%DATADIR%%/_aqt/forms/importing_qt6.py %%DATADIR%%/_aqt/forms/main_qt6.py %%DATADIR%%/_aqt/forms/modelopts_qt6.py %%DATADIR%%/_aqt/forms/models_qt6.py %%DATADIR%%/_aqt/forms/preferences_qt6.py %%DATADIR%%/_aqt/forms/preview_qt6.py %%DATADIR%%/_aqt/forms/profiles_qt6.py %%DATADIR%%/_aqt/forms/progress_qt6.py %%DATADIR%%/_aqt/forms/reposition_qt6.py %%DATADIR%%/_aqt/forms/setgroup_qt6.py %%DATADIR%%/_aqt/forms/setlang_qt6.py %%DATADIR%%/_aqt/forms/stats_qt6.py %%DATADIR%%/_aqt/forms/studydeck_qt6.py %%DATADIR%%/_aqt/forms/synclog_qt6.py %%DATADIR%%/_aqt/forms/taglimit_qt6.py %%DATADIR%%/_aqt/forms/template_qt6.py %%DATADIR%%/_aqt/forms/widgets_qt6.py %%DATADIR%%/_aqt/hooks.py %%DATADIR%%/_aqt/props.py %%DATADIR%%/_aqt/py.typed %%DATADIR%%/anki/_backend.py %%DATADIR%%/anki/_backend_generated.py %%DATADIR%%/anki/_fluent.py %%DATADIR%%/anki/_legacy.py %%DATADIR%%/anki/_rsbridge.pyi %%DATADIR%%/anki/_rsbridge.so %%DATADIR%%/anki/_vendor/stringcase.py %%DATADIR%%/anki/ankihub_pb2.py -%%DATADIR%%/anki/ankihub_pb2.pyi %%DATADIR%%/anki/ankidroid_pb2.py -%%DATADIR%%/anki/ankidroid_pb2.pyi %%DATADIR%%/anki/ankiweb_pb2.py -%%DATADIR%%/anki/ankiweb_pb2.pyi %%DATADIR%%/anki/backend_pb2.py -%%DATADIR%%/anki/backend_pb2.pyi %%DATADIR%%/anki/browser.py %%DATADIR%%/anki/buildinfo.py %%DATADIR%%/anki/card_rendering_pb2.py -%%DATADIR%%/anki/card_rendering_pb2.pyi %%DATADIR%%/anki/cards.py %%DATADIR%%/anki/cards_pb2.py -%%DATADIR%%/anki/cards_pb2.pyi %%DATADIR%%/anki/collection.py %%DATADIR%%/anki/collection_pb2.py -%%DATADIR%%/anki/collection_pb2.pyi %%DATADIR%%/anki/config.py %%DATADIR%%/anki/config_pb2.py -%%DATADIR%%/anki/config_pb2.pyi %%DATADIR%%/anki/consts.py %%DATADIR%%/anki/db.py %%DATADIR%%/anki/dbproxy.py %%DATADIR%%/anki/deck_config_pb2.py -%%DATADIR%%/anki/deck_config_pb2.pyi %%DATADIR%%/anki/decks.py %%DATADIR%%/anki/decks_pb2.py -%%DATADIR%%/anki/decks_pb2.pyi %%DATADIR%%/anki/errors.py %%DATADIR%%/anki/exporting.py %%DATADIR%%/anki/find.py %%DATADIR%%/anki/foreign_data/__init__.py %%DATADIR%%/anki/foreign_data/mnemosyne.py %%DATADIR%%/anki/frontend_pb2.py -%%DATADIR%%/anki/frontend_pb2.pyi %%DATADIR%%/anki/generic_pb2.py -%%DATADIR%%/anki/generic_pb2.pyi %%DATADIR%%/anki/hooks.py %%DATADIR%%/anki/hooks_gen.py %%DATADIR%%/anki/httpclient.py %%DATADIR%%/anki/i18n_pb2.py -%%DATADIR%%/anki/i18n_pb2.pyi %%DATADIR%%/anki/image_occlusion_pb2.py -%%DATADIR%%/anki/image_occlusion_pb2.pyi %%DATADIR%%/anki/import_export_pb2.py -%%DATADIR%%/anki/import_export_pb2.pyi %%DATADIR%%/anki/importing/__init__.py %%DATADIR%%/anki/importing/anki2.py %%DATADIR%%/anki/importing/apkg.py %%DATADIR%%/anki/importing/base.py %%DATADIR%%/anki/importing/csvfile.py %%DATADIR%%/anki/importing/mnemo.py %%DATADIR%%/anki/importing/noteimp.py %%DATADIR%%/anki/lang.py %%DATADIR%%/anki/latex.py %%DATADIR%%/anki/links_pb2.py -%%DATADIR%%/anki/links_pb2.pyi %%DATADIR%%/anki/media.py %%DATADIR%%/anki/media_pb2.py -%%DATADIR%%/anki/media_pb2.pyi %%DATADIR%%/anki/models.py %%DATADIR%%/anki/notes.py %%DATADIR%%/anki/notes_pb2.py -%%DATADIR%%/anki/notes_pb2.pyi %%DATADIR%%/anki/notetypes_pb2.py -%%DATADIR%%/anki/notetypes_pb2.pyi %%DATADIR%%/anki/py.typed %%DATADIR%%/anki/rsbackend.py %%DATADIR%%/anki/scheduler/__init__.py %%DATADIR%%/anki/scheduler/base.py %%DATADIR%%/anki/scheduler/dummy.py %%DATADIR%%/anki/scheduler/legacy.py %%DATADIR%%/anki/scheduler/v3.py %%DATADIR%%/anki/scheduler_pb2.py -%%DATADIR%%/anki/scheduler_pb2.pyi %%DATADIR%%/anki/search_pb2.py -%%DATADIR%%/anki/search_pb2.pyi %%DATADIR%%/anki/sound.py %%DATADIR%%/anki/stats.py %%DATADIR%%/anki/stats_pb2.py -%%DATADIR%%/anki/stats_pb2.pyi %%DATADIR%%/anki/statsbg.py %%DATADIR%%/anki/stdmodels.py %%DATADIR%%/anki/storage.py %%DATADIR%%/anki/sync.py %%DATADIR%%/anki/sync_pb2.py -%%DATADIR%%/anki/sync_pb2.pyi %%DATADIR%%/anki/syncserver.py %%DATADIR%%/anki/tags.py %%DATADIR%%/anki/tags_pb2.py -%%DATADIR%%/anki/tags_pb2.pyi %%DATADIR%%/anki/template.py %%DATADIR%%/anki/types.py %%DATADIR%%/anki/utils.py %%DATADIR%%/aqt/__init__.py %%DATADIR%%/aqt/_macos_helper.py %%DATADIR%%/aqt/about.py %%DATADIR%%/aqt/addcards.py %%DATADIR%%/aqt/addons.py %%DATADIR%%/aqt/ankihub.py %%DATADIR%%/aqt/browser/__init__.py %%DATADIR%%/aqt/browser/browser.py %%DATADIR%%/aqt/browser/card_info.py %%DATADIR%%/aqt/browser/find_and_replace.py %%DATADIR%%/aqt/browser/find_duplicates.py %%DATADIR%%/aqt/browser/layout.py %%DATADIR%%/aqt/browser/previewer.py %%DATADIR%%/aqt/browser/sidebar/__init__.py %%DATADIR%%/aqt/browser/sidebar/item.py %%DATADIR%%/aqt/browser/sidebar/model.py %%DATADIR%%/aqt/browser/sidebar/searchbar.py %%DATADIR%%/aqt/browser/sidebar/toolbar.py %%DATADIR%%/aqt/browser/sidebar/tree.py %%DATADIR%%/aqt/browser/table/__init__.py %%DATADIR%%/aqt/browser/table/model.py %%DATADIR%%/aqt/browser/table/state.py %%DATADIR%%/aqt/browser/table/table.py %%DATADIR%%/aqt/changenotetype.py %%DATADIR%%/aqt/clayout.py %%DATADIR%%/aqt/colors.py %%DATADIR%%/aqt/customstudy.py %%DATADIR%%/aqt/dbcheck.py %%DATADIR%%/aqt/debug_console.py %%DATADIR%%/aqt/deckbrowser.py %%DATADIR%%/aqt/deckchooser.py %%DATADIR%%/aqt/deckconf.py %%DATADIR%%/aqt/deckdescription.py %%DATADIR%%/aqt/deckoptions.py %%DATADIR%%/aqt/editcurrent.py %%DATADIR%%/aqt/editor.py %%DATADIR%%/aqt/emptycards.py %%DATADIR%%/aqt/errors.py %%DATADIR%%/aqt/exporting.py %%DATADIR%%/aqt/fields.py %%DATADIR%%/aqt/filtered_deck.py %%DATADIR%%/aqt/flags.py %%DATADIR%%/aqt/forms/__init__.py %%DATADIR%%/aqt/forms/about.py %%DATADIR%%/aqt/forms/addcards.py %%DATADIR%%/aqt/forms/addfield.py %%DATADIR%%/aqt/forms/addmodel.py %%DATADIR%%/aqt/forms/addonconf.py %%DATADIR%%/aqt/forms/addons.py %%DATADIR%%/aqt/forms/browser.py %%DATADIR%%/aqt/forms/browserdisp.py %%DATADIR%%/aqt/forms/browseropts.py %%DATADIR%%/aqt/forms/changemap.py %%DATADIR%%/aqt/forms/changemodel.py %%DATADIR%%/aqt/forms/clayout_top.py %%DATADIR%%/aqt/forms/customstudy.py %%DATADIR%%/aqt/forms/dconf.py %%DATADIR%%/aqt/forms/debug.py %%DATADIR%%/aqt/forms/editcurrent.py %%DATADIR%%/aqt/forms/edithtml.py %%DATADIR%%/aqt/forms/emptycards.py %%DATADIR%%/aqt/forms/exporting.py %%DATADIR%%/aqt/forms/fields.py %%DATADIR%%/aqt/forms/filtered_deck.py %%DATADIR%%/aqt/forms/finddupes.py %%DATADIR%%/aqt/forms/findreplace.py %%DATADIR%%/aqt/forms/forget.py %%DATADIR%%/aqt/forms/getaddons.py %%DATADIR%%/aqt/forms/importing.py %%DATADIR%%/aqt/forms/main.py %%DATADIR%%/aqt/forms/modelopts.py %%DATADIR%%/aqt/forms/models.py %%DATADIR%%/aqt/forms/preferences.py %%DATADIR%%/aqt/forms/preview.py %%DATADIR%%/aqt/forms/profiles.py %%DATADIR%%/aqt/forms/progress.py %%DATADIR%%/aqt/forms/reposition.py %%DATADIR%%/aqt/forms/setgroup.py %%DATADIR%%/aqt/forms/setlang.py %%DATADIR%%/aqt/forms/stats.py %%DATADIR%%/aqt/forms/studydeck.py %%DATADIR%%/aqt/forms/synclog.py %%DATADIR%%/aqt/forms/taglimit.py %%DATADIR%%/aqt/forms/template.py %%DATADIR%%/aqt/forms/widgets.py %%DATADIR%%/aqt/gui_hooks.py %%DATADIR%%/aqt/import_export/__init__.py %%DATADIR%%/aqt/import_export/exporting.py %%DATADIR%%/aqt/import_export/import_dialog.py %%DATADIR%%/aqt/import_export/importing.py %%DATADIR%%/aqt/importing.py %%DATADIR%%/aqt/legacy.py %%DATADIR%%/aqt/log.py %%DATADIR%%/aqt/main.py %%DATADIR%%/aqt/mediacheck.py %%DATADIR%%/aqt/mediasrv.py %%DATADIR%%/aqt/mediasync.py %%DATADIR%%/aqt/modelchooser.py %%DATADIR%%/aqt/models.py %%DATADIR%%/aqt/mpv.py %%DATADIR%%/aqt/notetypechooser.py %%DATADIR%%/aqt/operations/__init__.py %%DATADIR%%/aqt/operations/card.py %%DATADIR%%/aqt/operations/collection.py %%DATADIR%%/aqt/operations/deck.py %%DATADIR%%/aqt/operations/note.py %%DATADIR%%/aqt/operations/notetype.py %%DATADIR%%/aqt/operations/scheduling.py %%DATADIR%%/aqt/operations/tag.py %%DATADIR%%/aqt/overview.py %%DATADIR%%/aqt/package.py %%DATADIR%%/aqt/preferences.py %%DATADIR%%/aqt/profiles.py %%DATADIR%%/aqt/progress.py %%DATADIR%%/aqt/props.py %%DATADIR%%/aqt/py.typed %%DATADIR%%/aqt/qt/__init__.py %%DATADIR%%/aqt/qt/qt6.py %%DATADIR%%/aqt/reviewer.py %%DATADIR%%/aqt/schema_change_tracker.py %%DATADIR%%/aqt/sound.py %%DATADIR%%/aqt/stats.py %%DATADIR%%/aqt/studydeck.py %%DATADIR%%/aqt/stylesheets.py %%DATADIR%%/aqt/switch.py %%DATADIR%%/aqt/sync.py %%DATADIR%%/aqt/tagedit.py %%DATADIR%%/aqt/taglimit.py %%DATADIR%%/aqt/taskman.py %%DATADIR%%/aqt/theme.py %%DATADIR%%/aqt/toolbar.py %%DATADIR%%/aqt/tts.py %%DATADIR%%/aqt/undo.py %%DATADIR%%/aqt/update.py %%DATADIR%%/aqt/url_schemes.py %%DATADIR%%/aqt/utils.py %%DATADIR%%/aqt/webview.py %%DATADIR%%/aqt/widgetgallery.py %%DATADIR%%/aqt/winpaths.py share/applications/anki.desktop share/pixmaps/anki.png share/pixmaps/anki.xpm