0s autopkgtest [16:16:43]: starting date and time: 2025-10-18 16:16:43+0000 0s autopkgtest [16:16:43]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [16:16:43]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.jn655bfe/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,internal,login.ubuntu.com,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:python3-defaults --apt-upgrade commonmark-bkrs --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.13.7-2 -- lxd -r lxd-armhf-10.145.243.46 lxd-armhf-10.145.243.46:autopkgtest/ubuntu/resolute/armhf 20s autopkgtest [16:17:03]: testbed dpkg architecture: armhf 22s autopkgtest [16:17:05]: testbed apt version: 3.1.6ubuntu2 25s autopkgtest [16:17:08]: @@@@@@@@@@@@@@@@@@@@ test bed setup 27s autopkgtest [16:17:10]: testbed release detected to be: None 35s autopkgtest [16:17:18]: updating testbed package index (apt update) 36s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [83.3 kB] 37s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [83.3 kB] 37s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 37s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 37s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [28.4 kB] 37s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [345 kB] 37s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [15.4 kB] 37s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5028 B] 37s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [67.3 kB] 37s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted armhf Packages [940 B] 37s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [214 kB] 37s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [2804 B] 37s Get:13 http://ftpmaster.internal/ubuntu resolute/restricted Sources [14.4 kB] 37s Get:14 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [307 kB] 37s Get:15 http://ftpmaster.internal/ubuntu resolute/main Sources [1399 kB] 37s Get:16 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.1 MB] 38s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1357 kB] 38s Get:18 http://ftpmaster.internal/ubuntu resolute/restricted armhf Packages [1672 B] 38s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [14.8 MB] 38s Get:20 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [182 kB] 41s Fetched 40.0 MB in 5s (8407 kB/s) 42s Reading package lists... 48s autopkgtest [16:17:31]: upgrading testbed (apt dist-upgrade and autopurge) 49s Reading package lists... 50s Building dependency tree... 50s Reading state information... 50s Calculating upgrade... 50s The following packages will be upgraded: 50s apparmor apt base-files binutils binutils-arm-linux-gnueabihf 50s binutils-common cloud-init cloud-init-base distro-info-data gcc-15-base 50s gir1.2-girepository-2.0 libapparmor1 libapt-pkg7.0 libatomic1 libbinutils 50s libctf-nobfd0 libctf0 libgcc-s1 libgirepository-1.0-1 libpython3-stdlib 50s libsframe2 libstdc++6 lto-disabled-list python3 python3-minimal sudo-rs 51s 26 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 51s Need to get 7366 kB of archives. 51s After this operation, 14.3 kB of additional disk space will be used. 51s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf base-files armhf 14ubuntu4 [75.4 kB] 51s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libatomic1 armhf 15.2.0-5ubuntu1 [7942 B] 51s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-base armhf 15.2.0-5ubuntu1 [58.1 kB] 51s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-s1 armhf 15.2.0-5ubuntu1 [40.6 kB] 51s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++6 armhf 15.2.0-5ubuntu1 [731 kB] 51s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libapt-pkg7.0 armhf 3.1.8ubuntu1 [1148 kB] 51s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf apt armhf 3.1.8ubuntu1 [1404 kB] 51s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf python3-minimal armhf 3.13.7-2 [27.8 kB] 51s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf python3 armhf 3.13.7-2 [23.9 kB] 51s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libpython3-stdlib armhf 3.13.7-2 [10.6 kB] 51s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf distro-info-data all 0.67~ubuntu1 [7004 B] 51s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libgirepository-1.0-1 armhf 1.86.0-6 [111 kB] 51s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-girepository-2.0 armhf 1.86.0-6 [25.3 kB] 51s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libapparmor1 armhf 5.0.0~alpha1-0ubuntu8.1 [52.9 kB] 51s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf sudo-rs armhf 0.2.8-1ubuntu5.1 [548 kB] 51s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf apparmor armhf 5.0.0~alpha1-0ubuntu8.1 [631 kB] 51s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf libctf0 armhf 2.45-7ubuntu2 [75.7 kB] 51s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf libctf-nobfd0 armhf 2.45-7ubuntu2 [79.1 kB] 51s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-arm-linux-gnueabihf armhf 2.45-7ubuntu2 [1022 kB] 51s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libbinutils armhf 2.45-7ubuntu2 [411 kB] 51s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf binutils armhf 2.45-7ubuntu2 [3240 B] 51s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-common armhf 2.45-7ubuntu2 [220 kB] 51s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf libsframe2 armhf 2.45-7ubuntu2 [13.4 kB] 51s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init-base all 25.3-0ubuntu1 [625 kB] 51s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init all 25.3-0ubuntu1 [2106 B] 51s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf lto-disabled-list all 71 [12.5 kB] 52s Preconfiguring packages ... 52s Fetched 7366 kB in 1s (8004 kB/s) 52s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 52s Preparing to unpack .../base-files_14ubuntu4_armhf.deb ... 52s Unpacking base-files (14ubuntu4) over (14ubuntu3) ... 52s Setting up base-files (14ubuntu4) ... 52s Installing new version of config file /etc/issue ... 52s Installing new version of config file /etc/issue.net ... 52s Installing new version of config file /etc/lsb-release ... 53s motd-news.service is a disabled or a static unit not running, not starting it. 53s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 53s Preparing to unpack .../libatomic1_15.2.0-5ubuntu1_armhf.deb ... 53s Unpacking libatomic1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 53s Preparing to unpack .../gcc-15-base_15.2.0-5ubuntu1_armhf.deb ... 53s Unpacking gcc-15-base:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 53s Setting up gcc-15-base:armhf (15.2.0-5ubuntu1) ... 53s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 53s Preparing to unpack .../libgcc-s1_15.2.0-5ubuntu1_armhf.deb ... 53s Unpacking libgcc-s1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 53s Setting up libgcc-s1:armhf (15.2.0-5ubuntu1) ... 53s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 53s Preparing to unpack .../libstdc++6_15.2.0-5ubuntu1_armhf.deb ... 53s Unpacking libstdc++6:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 53s Setting up libstdc++6:armhf (15.2.0-5ubuntu1) ... 53s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 53s Preparing to unpack .../libapt-pkg7.0_3.1.8ubuntu1_armhf.deb ... 53s Unpacking libapt-pkg7.0:armhf (3.1.8ubuntu1) over (3.1.6ubuntu2) ... 53s Setting up libapt-pkg7.0:armhf (3.1.8ubuntu1) ... 53s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 53s Preparing to unpack .../apt_3.1.8ubuntu1_armhf.deb ... 53s Unpacking apt (3.1.8ubuntu1) over (3.1.6ubuntu2) ... 54s Setting up apt (3.1.8ubuntu1) ... 54s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 54s Preparing to unpack .../python3-minimal_3.13.7-2_armhf.deb ... 54s Unpacking python3-minimal (3.13.7-2) over (3.13.7-1) ... 54s Setting up python3-minimal (3.13.7-2) ... 54s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 54s Preparing to unpack .../00-python3_3.13.7-2_armhf.deb ... 55s Unpacking python3 (3.13.7-2) over (3.13.7-1) ... 55s Preparing to unpack .../01-libpython3-stdlib_3.13.7-2_armhf.deb ... 55s Unpacking libpython3-stdlib:armhf (3.13.7-2) over (3.13.7-1) ... 55s Preparing to unpack .../02-distro-info-data_0.67~ubuntu1_all.deb ... 55s Unpacking distro-info-data (0.67~ubuntu1) over (0.66) ... 55s Preparing to unpack .../03-libgirepository-1.0-1_1.86.0-6_armhf.deb ... 55s Unpacking libgirepository-1.0-1:armhf (1.86.0-6) over (1.84.0-1) ... 55s Preparing to unpack .../04-gir1.2-girepository-2.0_1.86.0-6_armhf.deb ... 55s Unpacking gir1.2-girepository-2.0:armhf (1.86.0-6) over (1.84.0-1) ... 55s Preparing to unpack .../05-libapparmor1_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 55s Unpacking libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 55s Preparing to unpack .../06-sudo-rs_0.2.8-1ubuntu5.1_armhf.deb ... 55s Unpacking sudo-rs (0.2.8-1ubuntu5.1) over (0.2.8-1ubuntu5) ... 55s Preparing to unpack .../07-apparmor_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 56s Unpacking apparmor (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 57s Preparing to unpack .../08-libctf0_2.45-7ubuntu2_armhf.deb ... 57s Unpacking libctf0:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 57s Preparing to unpack .../09-libctf-nobfd0_2.45-7ubuntu2_armhf.deb ... 57s Unpacking libctf-nobfd0:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 57s Preparing to unpack .../10-binutils-arm-linux-gnueabihf_2.45-7ubuntu2_armhf.deb ... 57s Unpacking binutils-arm-linux-gnueabihf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 57s Preparing to unpack .../11-libbinutils_2.45-7ubuntu2_armhf.deb ... 57s Unpacking libbinutils:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 57s Preparing to unpack .../12-binutils_2.45-7ubuntu2_armhf.deb ... 57s Unpacking binutils (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 57s Preparing to unpack .../13-binutils-common_2.45-7ubuntu2_armhf.deb ... 57s Unpacking binutils-common:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 57s Preparing to unpack .../14-libsframe2_2.45-7ubuntu2_armhf.deb ... 57s Unpacking libsframe2:armhf (2.45-7ubuntu2) over (2.45-7ubuntu1) ... 57s Preparing to unpack .../15-cloud-init-base_25.3-0ubuntu1_all.deb ... 57s Unpacking cloud-init-base (25.3-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 57s Preparing to unpack .../16-cloud-init_25.3-0ubuntu1_all.deb ... 57s Unpacking cloud-init (25.3-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 57s Preparing to unpack .../17-lto-disabled-list_71_all.deb ... 57s Unpacking lto-disabled-list (71) over (69) ... 57s Setting up lto-disabled-list (71) ... 57s Setting up libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) ... 57s Setting up distro-info-data (0.67~ubuntu1) ... 57s Setting up libsframe2:armhf (2.45-7ubuntu2) ... 57s Setting up binutils-common:armhf (2.45-7ubuntu2) ... 57s Setting up libctf-nobfd0:armhf (2.45-7ubuntu2) ... 57s Setting up apparmor (5.0.0~alpha1-0ubuntu8.1) ... 58s Installing new version of config file /etc/apparmor.d/fusermount3 ... 58s apparmor_parser: Unable to replace "lsb_release". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 58s 58s apparmor_parser: Unable to replace "kmod". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 58s 58s apparmor_parser: Unable to replace "nvidia_modprobe". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 58s 59s Reloading AppArmor profiles 59s /sbin/apparmor_parser: Unable to replace "1password". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "Discord". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "MongoDB Compass". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "balena-etcher". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "brave". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "buildah". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "cam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ch-checkns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ch-run". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "chrome". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "bwrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "vscode". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "chromium". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "crun". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "devhelp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "bfdd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "babeld". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "element-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "epiphany". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "evolution". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "bgpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "alsamixer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "flatpak". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "firefox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "foliate". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "geary". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "github-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "dnstracer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "goldendict". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "eigrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "fabricd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "dig". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "hostname". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "iotop-c". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "kchmviewer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "keybase". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lc-compliance". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "fusermount3". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "libcamerify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "isisd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "linux-sandbox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "gs". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ldpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "loupe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ipa_verify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "john". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "Xorg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lxc-attach". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lxc-create". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lxc-destroy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lxc-execute". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lxc-stop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lxc-unshare". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lxc-usernsexec". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "mmdebstrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "linux-boot-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lsblk". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "compressor". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "locale". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "msedge". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "notepadqq". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lsusb". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "irssi". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "lsb_release". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "obsidian". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "opam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "mbsync". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "opera". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "mosquitto". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "nhrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "nslookup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "notify-send". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "pageedit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "nc.openbsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ospf6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "kmod". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "nvidia_modprobe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ospfd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "pathd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "podman". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "os-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "polypane". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "privacybrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "pbrd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "qcam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "qmapshack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "pim6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "plasmashell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "qutebrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "rootlesskit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "rpm". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "rssguard". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "pimd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "runc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-abort". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-adduser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-apt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ripd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "qpdf". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-checkpackages". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-clean". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ripngd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-createchroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-destroychroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-hold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-distupgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-unhold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-shell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "scide". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "signal-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-update". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "sbuild-upgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "slirp4netns". /sbin/apparmor_parser: Unable to replace "slack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "steam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "stress-ng". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "surfshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "systemd-coredump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "thunderbird". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "openvpn". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ssh-keyscan". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "trinity". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "proftpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "systemd-detect-virt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "staticd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "tup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "tinyproxy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "tuxedo-control-center". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "unprivileged_userns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "userbindmount". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "mx-extract". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "rygel". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "unix-chkpwd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "/usr/bin/man". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_apt_news". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "uwsgi-core". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "vdens". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "virtiofsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "vivaldi-bin". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "vpnns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "/usr/sbin/chronyd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "vrrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "rsyslogd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "cmds". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "tnftp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "wike". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "wpcom". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "wg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "dumpcap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "tshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "who". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "znc". /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "wg-quick". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "tcpdump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "apt_methods". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s /sbin/apparmor_parser: Unable to replace "transmission-cli". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 59s 59s Error: At least one profile failed to load 59s Setting up libatomic1:armhf (15.2.0-5ubuntu1) ... 59s Setting up libgirepository-1.0-1:armhf (1.86.0-6) ... 59s Setting up libbinutils:armhf (2.45-7ubuntu2) ... 59s Setting up sudo-rs (0.2.8-1ubuntu5.1) ... 59s Setting up libpython3-stdlib:armhf (3.13.7-2) ... 59s Setting up libctf0:armhf (2.45-7ubuntu2) ... 59s Setting up python3 (3.13.7-2) ... 60s Setting up cloud-init-base (25.3-0ubuntu1) ... 61s Setting up gir1.2-girepository-2.0:armhf (1.86.0-6) ... 61s Setting up binutils-arm-linux-gnueabihf (2.45-7ubuntu2) ... 61s Setting up cloud-init (25.3-0ubuntu1) ... 61s Setting up binutils (2.45-7ubuntu2) ... 61s Processing triggers for plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu1) ... 61s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 61s Processing triggers for install-info (7.1.1-1ubuntu1) ... 61s Processing triggers for libc-bin (2.42-0ubuntu3) ... 62s Processing triggers for rsyslog (8.2504.0-1ubuntu2) ... 62s Processing triggers for systemd (257.9-0ubuntu2) ... 62s Processing triggers for man-db (2.13.1-1) ... 66s Reading package lists... 66s Building dependency tree... 66s Reading state information... 67s Solving dependencies... 67s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 69s autopkgtest [16:17:52]: rebooting testbed after setup commands that affected boot 108s autopkgtest [16:18:31]: testbed running kernel: Linux 6.8.0-58-generic #60~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 28 14:48:37 UTC 2 131s autopkgtest [16:18:54]: @@@@@@@@@@@@@@@@@@@@ apt-source commonmark-bkrs 144s Get:1 http://ftpmaster.internal/ubuntu resolute/universe commonmark-bkrs 0.5.4+ds-7.1 (dsc) [2272 B] 144s Get:2 http://ftpmaster.internal/ubuntu resolute/universe commonmark-bkrs 0.5.4+ds-7.1 (tar) [81.9 kB] 144s Get:3 http://ftpmaster.internal/ubuntu resolute/universe commonmark-bkrs 0.5.4+ds-7.1 (diff) [6860 B] 144s gpgv: Signature made Thu Feb 8 00:40:02 2024 UTC 144s gpgv: using RSA key D56571B88A8BBAF140BF63D6BD7EAA60778FA6F5 144s gpgv: issuer "doko@debian.org" 144s gpgv: Can't check signature: No public key 144s dpkg-source: warning: cannot verify inline signature for ./commonmark-bkrs_0.5.4+ds-7.1.dsc: no acceptable signature found 144s autopkgtest [16:19:07]: testing package commonmark-bkrs version 0.5.4+ds-7.1 146s autopkgtest [16:19:09]: build not needed 148s autopkgtest [16:19:11]: test command1: preparing testbed 150s Reading package lists... 150s Building dependency tree... 150s Reading state information... 150s Solving dependencies... 151s The following NEW packages will be installed: 151s python-commonmark-bkrs-doc python3-commonmark-bkrs 151s 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. 151s Need to get 95.7 kB of archives. 151s After this operation, 1084 kB of additional disk space will be used. 151s Get:1 http://ftpmaster.internal/ubuntu resolute/universe armhf python-commonmark-bkrs-doc all 0.5.4+ds-7.1 [64.2 kB] 151s Get:2 http://ftpmaster.internal/ubuntu resolute/universe armhf python3-commonmark-bkrs all 0.5.4+ds-7.1 [31.4 kB] 152s Fetched 95.7 kB in 0s (267 kB/s) 152s Selecting previously unselected package python-commonmark-bkrs-doc. 152s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 61081 files and directories currently installed.) 152s Preparing to unpack .../python-commonmark-bkrs-doc_0.5.4+ds-7.1_all.deb ... 152s Unpacking python-commonmark-bkrs-doc (0.5.4+ds-7.1) ... 152s Selecting previously unselected package python3-commonmark-bkrs. 152s Preparing to unpack .../python3-commonmark-bkrs_0.5.4+ds-7.1_all.deb ... 152s Unpacking python3-commonmark-bkrs (0.5.4+ds-7.1) ... 152s Setting up python-commonmark-bkrs-doc (0.5.4+ds-7.1) ... 152s Setting up python3-commonmark-bkrs (0.5.4+ds-7.1) ... 152s /usr/lib/python3/dist-packages/CommonMark_bkrs/CommonMark.py:186: SyntaxWarning: invalid escape sequence '\s' 152s return bool(re.compile("^\s*$").match(s)) 152s /usr/lib/python3/dist-packages/CommonMark_bkrs/CommonMark.py:338: SyntaxWarning: invalid escape sequence '\/' 152s "^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>") 152s /usr/lib/python3/dist-packages/CommonMark_bkrs/CommonMark.py:385: SyntaxWarning: invalid escape sequence '\s' 152s numdelims <= 3) and (not re.match("\s", char_after)) 152s /usr/lib/python3/dist-packages/CommonMark_bkrs/CommonMark.py:387: SyntaxWarning: invalid escape sequence '\s' 152s numdelims <= 3) and (not re.match("\s", char_before)) 152s /usr/lib/python3/dist-packages/CommonMark_bkrs/CommonMark.py:1008: SyntaxWarning: invalid escape sequence '\g' 152s re.sub(r'(?:(\\#) *#*| *#+) *$', '\g<1>', ln[offset:])] 152s Processing triggers for man-db (2.13.1-1) ... 162s autopkgtest [16:19:25]: test command1: cd /usr/share/doc/python-commonmark-bkrs-doc/tests/ && python3 test-CommonMark.py 162s autopkgtest [16:19:25]: test command1: [----------------------- 164s /usr/share/doc/python-commonmark-bkrs-doc/examples/tests/test-CommonMark.py:67: SyntaxWarning: invalid escape sequence '\.' 164s testMatch = re.findall(re.compile("^\.\n([\s\S]*?)^\.\n([\s\S]*?)^.$|^#{1,6} *(.*)$", re.M), tests) 164s [Preprocessing] 164s Test #1 164s tick 164s Test #2 164s tick 164s [Precedence] 164s Test #3 164s tick 164s [Horizontal rules] 164s Test #4 164s tick 164s Test #5 164s tick 164s Test #6 164s tick 164s Test #7 164s tick 164s Test #8 164s tick 164s Test #9 164s tick 164s Test #10 164s tick 164s Test #11 164s tick 164s Test #12 164s tick 164s Test #13 164s tick 164s Test #14 164s tick 164s Test #15 164s tick 164s Test #16 164s tick 164s Test #17 164s tick 164s Test #18 164s tick 164s Test #19 164s tick 164s Test #20 164s tick 164s Test #21 164s tick 164s Test #22 164s tick 164s [ATX headers] 164s Test #23 164s tick 164s Test #24 164s tick 164s Test #25 164s tick 164s Test #26 164s tick 164s Test #27 164s tick 164s Test #28 164s tick 164s Test #29 164s tick 164s Test #30 164s tick 164s Test #31 164s tick 164s Test #32 164s tick 164s Test #33 164s tick 164s Test #34 164s tick 164s Test #35 164s tick 164s Test #36 164s tick 164s Test #37 164s tick 164s Test #38 164s tick 164s Test #39 164s tick 164s [Setext headers] 164s Test #40 164s tick 164s Test #41 164s tick 164s Test #42 164s tick 164s Test #43 164s tick 164s Test #44 164s tick 164s Test #45 164s tick 164s Test #46 164s tick 164s Test #47 164s tick 164s Test #48 164s tick 164s Test #49 164s tick 164s Test #50 164s tick 164s Test #51 164s tick 164s Test #52 164s tick 164s Test #53 164s tick 164s [Indented code blocks] 164s Test #54 164s tick 164s Test #55 164s tick 164s Test #56 164s tick 164s Test #57 164s tick 164s Test #58 164s tick 164s Test #59 164s tick 164s Test #60 164s tick 164s Test #61 164s tick 164s Test #62 164s cross 164s === markdown =============== 164s  164s ␣␣␣␣ 164s ␣␣␣␣foo 164s ␣␣␣␣ 164s 164s  164s === expected =============== 164s 
foo
164s 
164s  164s === got ==================== 164s 
foo
164s 
164s 
164s 164s Test #63 164s tick 164s [Fenced code blocks] 164s Test #64 164s tick 164s Test #65 164s tick 164s Test #66 164s tick 164s Test #67 164s tick 164s Test #68 164s tick 164s Test #69 164s tick 164s Test #70 164s tick 164s Test #71 164s tick 164s Test #72 164s tick 164s Test #73 164s tick 164s Test #74 164s tick 164s Test #75 164s tick 164s Test #76 164s tick 164s Test #77 164s tick 164s Test #78 164s tick 164s Test #79 164s tick 164s Test #80 164s tick 164s Test #81 164s tick 164s Test #82 164s tick 164s Test #83 164s tick 164s Test #84 164s tick 164s Test #85 164s tick 164s Test #86 164s tick 164s [HTML blocks] 164s Test #87 164s tick 164s Test #88 164s tick 164s Test #89 164s tick 164s Test #90 164s tick 164s Test #91 164s tick 164s Test #92 164s tick 164s Test #93 164s cross 164s === markdown =============== 164s  164s  164s === expected =============== 164s  164s 164s Test #94 164s cross 164s === markdown =============== 164s  164s The␣opening␣tag␣can␣be␣indented␣1-3␣spaces,␣but␣not␣4: 164s 164s  164s === expected =============== 164s ␣␣ 164s 164s ␣␣␣␣ 164s  164s === got ==================== 164s 

The␣opening␣tag␣can␣be␣indented␣1-3␣spaces,␣but␣not␣4:

164s 164s Test #95 164s cross 164s === markdown =============== 164s  164s An␣HTML␣block␣can␣interrupt␣a␣paragraph,␣and␣need␣not␣be␣preceded 164s by␣a␣blank␣line. 164s 164s  164s === expected =============== 164s Foo 164s
164s bar 164s
164s  164s === got ==================== 164s 

An␣HTML␣block␣can␣interrupt␣a␣paragraph,␣and␣need␣not␣be␣preceded 164s by␣a␣blank␣line.

164s 164s Test #96 164s cross 164s === markdown =============== 164s  164s However,␣a␣following␣blank␣line␣is␣always␣needed,␣except␣at␣the␣end␣of 164s a␣document: 164s 164s  164s === expected =============== 164s 
164s bar 164s
164s *foo* 164s  164s === got ==================== 164s 

However,␣a␣following␣blank␣line␣is␣always␣needed,␣except␣at␣the␣end␣of 164s a␣document:

164s 164s Test #97 164s cross 164s === markdown =============== 164s  164s An␣incomplete␣HTML␣block␣tag␣may␣also␣start␣an␣HTML␣block: 164s 164s  164s === expected =============== 164s An␣incomplete␣HTML␣block␣tag␣may␣also␣start␣an␣HTML␣block:

164s 164s Test #98 164s cross 164s === markdown =============== 164s  164s This␣rule␣differs␣from␣John␣Gruber's␣original␣Markdown␣syntax 164s specification,␣which␣says: 164s 164s >␣The␣only␣restrictions␣are␣that␣block-level␣HTML␣elements␣— 164s >␣e.g.␣`
`,␣``,␣`
`,␣`

`,␣etc.␣—␣must␣be␣separated␣from 164s >␣surrounding␣content␣by␣blank␣lines,␣and␣the␣start␣and␣end␣tags␣of␣the 164s >␣block␣should␣not␣be␣indented␣with␣tabs␣or␣spaces. 164s 164s In␣some␣ways␣Gruber's␣rule␣is␣more␣restrictive␣than␣the␣one␣given 164s here: 164s 164s -␣It␣requires␣that␣an␣HTML␣block␣be␣preceded␣by␣a␣blank␣line. 164s -␣It␣does␣not␣allow␣the␣start␣tag␣to␣be␣indented. 164s -␣It␣requires␣a␣matching␣end␣tag,␣which␣it␣also␣does␣not␣allow␣to 164s ␣␣be␣indented. 164s 164s Indeed,␣most␣Markdown␣implementations,␣including␣some␣of␣Gruber's 164s own␣perl␣implementations,␣do␣not␣impose␣these␣restrictions. 164s 164s There␣is␣one␣respect,␣however,␣in␣which␣Gruber's␣rule␣is␣more␣liberal 164s than␣the␣one␣given␣here,␣since␣it␣allows␣blank␣lines␣to␣occur␣inside 164s an␣HTML␣block.␣␣There␣are␣two␣reasons␣for␣disallowing␣them␣here. 164s First,␣it␣removes␣the␣need␣to␣parse␣balanced␣tags,␣which␣is 164s expensive␣and␣can␣require␣backtracking␣from␣the␣end␣of␣the␣document 164s if␣no␣matching␣end␣tag␣is␣found.␣Second,␣it␣provides␣a␣very␣simple 164s and␣flexible␣way␣of␣including␣Markdown␣content␣inside␣HTML␣tags: 164s simply␣separate␣the␣Markdown␣from␣the␣HTML␣using␣blank␣lines: 164s 164s  164s === expected =============== 164s 

164s 164s *Emphasized*␣text. 164s 164s
164s  164s === got ==================== 164s 

This␣rule␣differs␣from␣John␣Gruber's␣original␣Markdown␣syntax 164s specification,␣which␣says:

164s
164s

The␣only␣restrictions␣are␣that␣block-level␣HTML␣elements␣— 164s e.g.␣<div>,␣<table>,␣<pre>,␣<p>,␣etc.␣—␣must␣be␣separated␣from 164s surrounding␣content␣by␣blank␣lines,␣and␣the␣start␣and␣end␣tags␣of␣the 164s block␣should␣not␣be␣indented␣with␣tabs␣or␣spaces.

164s
164s

In␣some␣ways␣Gruber's␣rule␣is␣more␣restrictive␣than␣the␣one␣given 164s here:

164s
    164s
  • It␣requires␣that␣an␣HTML␣block␣be␣preceded␣by␣a␣blank␣line.
  • 164s
  • It␣does␣not␣allow␣the␣start␣tag␣to␣be␣indented.
  • 164s
  • It␣requires␣a␣matching␣end␣tag,␣which␣it␣also␣does␣not␣allow␣to 164s be␣indented.
  • 164s
164s

Indeed,␣most␣Markdown␣implementations,␣including␣some␣of␣Gruber's 164s own␣perl␣implementations,␣do␣not␣impose␣these␣restrictions.

164s

There␣is␣one␣respect,␣however,␣in␣which␣Gruber's␣rule␣is␣more␣liberal 164s than␣the␣one␣given␣here,␣since␣it␣allows␣blank␣lines␣to␣occur␣inside 164s an␣HTML␣block.␣␣There␣are␣two␣reasons␣for␣disallowing␣them␣here. 164s First,␣it␣removes␣the␣need␣to␣parse␣balanced␣tags,␣which␣is 164s expensive␣and␣can␣require␣backtracking␣from␣the␣end␣of␣the␣document 164s if␣no␣matching␣end␣tag␣is␣found.␣Second,␣it␣provides␣a␣very␣simple 164s and␣flexible␣way␣of␣including␣Markdown␣content␣inside␣HTML␣tags: 164s simply␣separate␣the␣Markdown␣from␣the␣HTML␣using␣blank␣lines:

164s 164s Test #99 164s cross 164s === markdown =============== 164s  164s Compare: 164s 164s  164s === expected =============== 164s 
164s *Emphasized*␣text. 164s
164s  164s === got ==================== 164s 

Compare:

164s 164s Test #100 164s cross 164s === markdown =============== 164s  164s Some␣Markdown␣implementations␣have␣adopted␣a␣convention␣of 164s interpreting␣content␣inside␣tags␣as␣text␣if␣the␣open␣tag␣has 164s the␣attribute␣`markdown=1`.␣␣The␣rule␣given␣above␣seems␣a␣simpler␣and 164s more␣elegant␣way␣of␣achieving␣the␣same␣expressive␣power,␣which␣is␣also 164s much␣simpler␣to␣parse. 164s 164s The␣main␣potential␣drawback␣is␣that␣one␣can␣no␣longer␣paste␣HTML 164s blocks␣into␣Markdown␣documents␣with␣100%␣reliability.␣␣However, 164s *in␣most␣cases*␣this␣will␣work␣fine,␣because␣the␣blank␣lines␣in 164s HTML␣are␣usually␣followed␣by␣HTML␣block␣tags.␣␣For␣example: 164s 164s  164s === expected =============== 164s 
164s 164s 164s 164s 164s 164s 164s 164s
164s Hi 164s
164s  164s === got ==================== 164s 

Some␣Markdown␣implementations␣have␣adopted␣a␣convention␣of 164s interpreting␣content␣inside␣tags␣as␣text␣if␣the␣open␣tag␣has 164s the␣attribute␣markdown=1.␣␣The␣rule␣given␣above␣seems␣a␣simpler␣and 164s more␣elegant␣way␣of␣achieving␣the␣same␣expressive␣power,␣which␣is␣also 164s much␣simpler␣to␣parse.

164s

The␣main␣potential␣drawback␣is␣that␣one␣can␣no␣longer␣paste␣HTML 164s blocks␣into␣Markdown␣documents␣with␣100%␣reliability.␣␣However, 164s in␣most␣cases␣this␣will␣work␣fine,␣because␣the␣blank␣lines␣in 164s HTML␣are␣usually␣followed␣by␣HTML␣block␣tags.␣␣For␣example:

164s 164s Test #101 164s cross 164s === markdown =============== 164s  164s Moreover,␣blank␣lines␣are␣usually␣not␣necessary␣and␣can␣be 164s deleted.␣␣The␣exception␣is␣inside␣`
`␣tags;␣here,␣one␣can
164s replace␣the␣blank␣lines␣with␣`
`␣entities.
164s 
164s So␣there␣is␣no␣important␣loss␣of␣expressive␣power␣with␣the␣new␣rule.
164s 
164s ##␣Link␣reference␣definitions
164s 
164s A␣[link␣reference␣definition](#link-reference-definition)
164s ␣consists␣of␣a␣[link
164s label](#link-label),␣indented␣up␣to␣three␣spaces,␣followed
164s by␣a␣colon␣(`:`),␣optional␣blank␣space␣(including␣up␣to␣one
164s newline),␣a␣[link␣destination](#link-destination),␣optional
164s blank␣space␣(including␣up␣to␣one␣newline),␣and␣an␣optional␣[link
164s title](#link-title),␣which␣if␣it␣is␣present␣must␣be␣separated
164s from␣the␣[link␣destination](#link-destination)␣by␣whitespace.
164s No␣further␣non-space␣characters␣may␣occur␣on␣the␣line.
164s 
164s A␣[link␣reference-definition](#link-reference-definition)
164s does␣not␣correspond␣to␣a␣structural␣element␣of␣a␣document.␣␣Instead,␣it
164s defines␣a␣label␣which␣can␣be␣used␣in␣[reference␣links](#reference-link)
164s and␣reference-style␣[images](#image)␣elsewhere␣in␣the␣document.␣␣[Link
164s reference␣definitions]␣can␣come␣either␣before␣or␣after␣the␣links␣that␣use
164s them.
164s 
164s 
164s === expected ===============
164s [foo]:␣/url␣"title"
164s 
164s [foo]
164s 
164s === got ====================
164s 

Moreover,␣blank␣lines␣are␣usually␣not␣necessary␣and␣can␣be 164s deleted.␣␣The␣exception␣is␣inside␣<pre>␣tags;␣here,␣one␣can 164s replace␣the␣blank␣lines␣with␣&#10;␣entities.

164s

So␣there␣is␣no␣important␣loss␣of␣expressive␣power␣with␣the␣new␣rule.

164s

Link␣reference␣definitions

164s

A␣link␣reference␣definition 164s ␣consists␣of␣a␣link 164s label,␣indented␣up␣to␣three␣spaces,␣followed 164s by␣a␣colon␣(:),␣optional␣blank␣space␣(including␣up␣to␣one 164s newline),␣a␣link␣destination,␣optional 164s blank␣space␣(including␣up␣to␣one␣newline),␣and␣an␣optional␣link 164s title,␣which␣if␣it␣is␣present␣must␣be␣separated 164s from␣the␣link␣destination␣by␣whitespace. 164s No␣further␣non-space␣characters␣may␣occur␣on␣the␣line.

164s

A␣link␣reference-definition 164s does␣not␣correspond␣to␣a␣structural␣element␣of␣a␣document.␣␣Instead,␣it 164s defines␣a␣label␣which␣can␣be␣used␣in␣reference␣links 164s and␣reference-style␣images␣elsewhere␣in␣the␣document.␣␣[Link 164s reference␣definitions]␣can␣come␣either␣before␣or␣after␣the␣links␣that␣use 164s them.

164s 164s Test #102 164s cross 164s === markdown =============== 164s  164s  164s === expected =============== 164s ␣␣␣[foo]:␣ 164s ␣␣␣␣␣␣/url␣␣ 164s ␣␣␣␣␣␣␣␣␣␣␣'the␣title'␣␣ 164s 164s [foo] 164s  164s === got ==================== 164s  164s Test #103 164s cross 164s === markdown =============== 164s  164s  164s === expected =============== 164s [Foo*bar\]]:my_(url)␣'title␣(with␣parens)' 164s 164s [Foo*bar\]] 164s  164s === got ==================== 164s  164s Test #104 164s cross 164s === markdown =============== 164s  164s  164s === expected =============== 164s [Foo␣bar]: 164s 164s 'title' 164s 164s [Foo␣bar] 164s  164s === got ==================== 164s  164s Test #105 164s cross 164s === markdown =============== 164s  164s The␣title␣may␣be␣omitted: 164s 164s  164s === expected =============== 164s [foo]: 164s /url 164s 164s [foo] 164s  164s === got ==================== 164s 

The␣title␣may␣be␣omitted:

164s 164s Test #106 164s cross 164s === markdown =============== 164s  164s The␣link␣destination␣may␣not␣be␣omitted: 164s 164s  164s === expected =============== 164s [foo]: 164s 164s [foo] 164s  164s === got ==================== 164s 

The␣link␣destination␣may␣not␣be␣omitted:

164s 164s Test #107 164s cross 164s === markdown =============== 164s  164s A␣link␣can␣come␣before␣its␣corresponding␣definition: 164s 164s  164s === expected =============== 164s [foo] 164s 164s [foo]:␣url 164s  164s === got ==================== 164s 

A␣link␣can␣come␣before␣its␣corresponding␣definition:

164s 164s Test #108 164s cross 164s === markdown =============== 164s  164s If␣there␣are␣several␣matching␣definitions,␣the␣first␣one␣takes 164s precedence: 164s 164s  164s === expected =============== 164s [foo] 164s 164s [foo]:␣first 164s [foo]:␣second 164s  164s === got ==================== 164s 

If␣there␣are␣several␣matching␣definitions,␣the␣first␣one␣takes 164s precedence:

164s 164s Test #109 164s cross 164s === markdown =============== 164s  164s As␣noted␣in␣the␣section␣on␣[Links],␣matching␣of␣labels␣is 164s case-insensitive␣(see␣[matches](#matches)). 164s 164s  164s === expected =============== 164s [FOO]:␣/url 164s 164s [Foo] 164s  164s === got ==================== 164s 

As␣noted␣in␣the␣section␣on␣[Links],␣matching␣of␣labels␣is 164s case-insensitive␣(see␣matches).

164s 164s Test #110 164s cross 164s === markdown =============== 164s  164s  164s === expected =============== 164s [ΑΓΩ]:␣/φου 164s 164s [αγω] 164s  164s === got ==================== 164s  164s Test #111 164s cross 164s === markdown =============== 164s  164s Here␣is␣a␣link␣reference␣definition␣with␣no␣corresponding␣link. 164s It␣contributes␣nothing␣to␣the␣document. 164s 164s  164s === expected =============== 164s [foo]:␣/url 164s  164s === got ==================== 164s 

Here␣is␣a␣link␣reference␣definition␣with␣no␣corresponding␣link. 164s It␣contributes␣nothing␣to␣the␣document.

164s 164s Test #112 164s cross 164s === markdown =============== 164s  164s This␣is␣not␣a␣link␣reference␣definition,␣because␣there␣are 164s non-space␣characters␣after␣the␣title: 164s 164s  164s === expected =============== 164s [foo]:␣/url␣"title"␣ok 164s  164s === got ==================== 164s 

This␣is␣not␣a␣link␣reference␣definition,␣because␣there␣are 164s non-space␣characters␣after␣the␣title:

164s 164s Test #113 164s cross 164s === markdown =============== 164s  164s This␣is␣not␣a␣link␣reference␣definition,␣because␣it␣is␣indented 164s four␣spaces: 164s 164s  164s === expected =============== 164s ␣␣␣␣[foo]:␣/url␣"title" 164s 164s [foo] 164s  164s === got ==================== 164s 

This␣is␣not␣a␣link␣reference␣definition,␣because␣it␣is␣indented 164s four␣spaces:

164s 164s Test #114 164s cross 164s === markdown =============== 164s  164s This␣is␣not␣a␣link␣reference␣definition,␣because␣it␣occurs␣inside 164s a␣code␣block: 164s 164s  164s === expected =============== 164s ``` 164s [foo]:␣/url 164s ``` 164s 164s [foo] 164s  164s === got ==================== 164s 

This␣is␣not␣a␣link␣reference␣definition,␣because␣it␣occurs␣inside 164s a␣code␣block:

164s 164s Test #115 164s cross 164s === markdown =============== 164s  164s A␣[link␣reference␣definition](#link-reference-definition)␣cannot 164s interrupt␣a␣paragraph. 164s 164s  164s === expected =============== 164s Foo 164s [bar]:␣/baz 164s 164s [bar] 164s  164s === got ==================== 164s 

A␣link␣reference␣definition␣cannot 164s interrupt␣a␣paragraph.

164s 164s Test #116 164s cross 164s === markdown =============== 164s  164s However,␣it␣can␣directly␣follow␣other␣block␣elements,␣such␣as␣headers 164s and␣horizontal␣rules,␣and␣it␣need␣not␣be␣followed␣by␣a␣blank␣line. 164s 164s  164s === expected =============== 164s #␣[Foo] 164s [foo]:␣/url 164s >␣bar 164s  164s === got ==================== 164s 

However,␣it␣can␣directly␣follow␣other␣block␣elements,␣such␣as␣headers 164s and␣horizontal␣rules,␣and␣it␣need␣not␣be␣followed␣by␣a␣blank␣line.

164s 164s Test #117 164s cross 164s === markdown =============== 164s  164s Several␣[link␣references](#link-reference)␣can␣occur␣one␣after␣another, 164s without␣intervening␣blank␣lines. 164s 164s  164s === expected =============== 164s [foo]:␣/foo-url␣"foo" 164s [bar]:␣/bar-url 164s ␣␣"bar" 164s [baz]:␣/baz-url 164s 164s [foo], 164s [bar], 164s [baz] 164s  164s === got ==================== 164s 

Several␣link␣references␣can␣occur␣one␣after␣another, 164s without␣intervening␣blank␣lines.

164s 164s Test #118 164s cross 164s === markdown =============== 164s  164s [Link␣reference␣definitions](#link-reference-definition)␣can␣occur 164s inside␣block␣containers,␣like␣lists␣and␣block␣quotations.␣␣They 164s affect␣the␣entire␣document,␣not␣just␣the␣container␣in␣which␣they 164s are␣defined: 164s 164s  164s === expected =============== 164s [foo] 164s 164s >␣[foo]:␣/url 164s  164s === got ==================== 164s 

Link␣reference␣definitions␣can␣occur 164s inside␣block␣containers,␣like␣lists␣and␣block␣quotations.␣␣They 164s affect␣the␣entire␣document,␣not␣just␣the␣container␣in␣which␣they 164s are␣defined:

164s 164s Test #119 164s cross 164s === markdown =============== 164s  164s 164s ##␣Paragraphs 164s 164s A␣sequence␣of␣non-blank␣lines␣that␣cannot␣be␣interpreted␣as␣other 164s kinds␣of␣blocks␣forms␣a␣[paragraph](#paragraph). 164s The␣contents␣of␣the␣paragraph␣are␣the␣result␣of␣parsing␣the 164s paragraph's␣raw␣content␣as␣inlines.␣␣The␣paragraph's␣raw␣content 164s is␣formed␣by␣concatenating␣the␣lines␣and␣removing␣initial␣and␣final 164s spaces. 164s 164s A␣simple␣example␣with␣two␣paragraphs: 164s 164s  164s === expected =============== 164s aaa 164s 164s bbb 164s  164s === got ==================== 164s 

Paragraphs

164s

A␣sequence␣of␣non-blank␣lines␣that␣cannot␣be␣interpreted␣as␣other 164s kinds␣of␣blocks␣forms␣a␣paragraph. 164s The␣contents␣of␣the␣paragraph␣are␣the␣result␣of␣parsing␣the 164s paragraph's␣raw␣content␣as␣inlines.␣␣The␣paragraph's␣raw␣content 164s is␣formed␣by␣concatenating␣the␣lines␣and␣removing␣initial␣and␣final 164s spaces.

164s

A␣simple␣example␣with␣two␣paragraphs:

164s 164s Test #120 164s cross 164s === markdown =============== 164s  164s Paragraphs␣can␣contain␣multiple␣lines,␣but␣no␣blank␣lines: 164s 164s  164s === expected =============== 164s aaa 164s bbb 164s 164s ccc 164s ddd 164s  164s === got ==================== 164s 

Paragraphs␣can␣contain␣multiple␣lines,␣but␣no␣blank␣lines:

164s 164s Test #121 164s cross 164s === markdown =============== 164s  164s Multiple␣blank␣lines␣between␣paragraph␣have␣no␣effect: 164s 164s  164s === expected =============== 164s aaa 164s 164s 164s bbb 164s  164s === got ==================== 164s 

Multiple␣blank␣lines␣between␣paragraph␣have␣no␣effect:

164s 164s Test #122 164s cross 164s === markdown =============== 164s  164s Leading␣spaces␣are␣skipped: 164s 164s  164s === expected =============== 164s ␣␣aaa 164s ␣bbb 164s  164s === got ==================== 164s 

Leading␣spaces␣are␣skipped:

164s 164s Test #123 164s cross 164s === markdown =============== 164s  164s Lines␣after␣the␣first␣may␣be␣indented␣any␣amount,␣since␣indented 164s code␣blocks␣cannot␣interrupt␣paragraphs. 164s 164s  164s === expected =============== 164s aaa 164s ␣␣␣␣␣␣␣␣␣␣␣␣␣bbb 164s ␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣ccc 164s  164s === got ==================== 164s 

Lines␣after␣the␣first␣may␣be␣indented␣any␣amount,␣since␣indented 164s code␣blocks␣cannot␣interrupt␣paragraphs.

164s 164s Test #124 164s cross 164s === markdown =============== 164s  164s However,␣the␣first␣line␣may␣be␣indented␣at␣most␣three␣spaces, 164s or␣an␣indented␣code␣block␣will␣be␣triggered: 164s 164s  164s === expected =============== 164s ␣␣␣aaa 164s bbb 164s  164s === got ==================== 164s 

However,␣the␣first␣line␣may␣be␣indented␣at␣most␣three␣spaces, 164s or␣an␣indented␣code␣block␣will␣be␣triggered:

164s 164s Test #125 164s cross 164s === markdown =============== 164s  164s  164s === expected =============== 164s ␣␣␣␣aaa 164s bbb 164s  164s === got ==================== 164s  164s Test #126 164s cross 164s === markdown =============== 164s  164s Final␣spaces␣are␣stripped␣before␣inline␣parsing,␣so␣a␣paragraph 164s that␣ends␣with␣two␣or␣more␣spaces␣will␣not␣end␣with␣a␣hard␣line 164s break: 164s 164s  164s === expected =============== 164s aaa␣␣␣␣␣ 164s bbb␣␣␣␣␣ 164s  164s === got ==================== 164s 

Final␣spaces␣are␣stripped␣before␣inline␣parsing,␣so␣a␣paragraph 164s that␣ends␣with␣two␣or␣more␣spaces␣will␣not␣end␣with␣a␣hard␣line 164s break:

164s 164s Test #127 164s cross 164s === markdown =============== 164s  164s ##␣Blank␣lines 164s 164s [Blank␣lines](#blank-line)␣between␣block-level␣elements␣are␣ignored, 164s except␣for␣the␣role␣they␣play␣in␣determining␣whether␣a␣[list](#list) 164s is␣[tight](#tight)␣or␣[loose](#loose). 164s 164s Blank␣lines␣at␣the␣beginning␣and␣end␣of␣the␣document␣are␣also␣ignored. 164s 164s  164s === expected =============== 164s ␣␣ 164s 164s aaa 164s ␣␣ 164s 164s #␣aaa 164s 164s ␣␣ 164s  164s === got ==================== 164s 

Blank␣lines

164s

Blank␣lines␣between␣block-level␣elements␣are␣ignored, 164s except␣for␣the␣role␣they␣play␣in␣determining␣whether␣a␣list 164s is␣tight␣or␣loose.

164s

Blank␣lines␣at␣the␣beginning␣and␣end␣of␣the␣document␣are␣also␣ignored.

164s 164s Test #128 164s cross 164s === markdown =============== 164s  164s 164s #␣Container␣blocks 164s 164s A␣[container␣block](#container-block)␣is␣a␣block␣that␣has␣other 164s blocks␣as␣its␣contents.␣␣There␣are␣two␣basic␣kinds␣of␣container␣blocks: 164s [block␣quotes](#block-quote)␣and␣[list␣items](#list-item). 164s [Lists](#list)␣are␣meta-containers␣for␣[list␣items](#list-item). 164s 164s We␣define␣the␣syntax␣for␣container␣blocks␣recursively.␣␣The␣general 164s form␣of␣the␣definition␣is: 164s 164s >␣If␣X␣is␣a␣sequence␣of␣blocks,␣then␣the␣result␣of 164s >␣transforming␣X␣in␣such-and-such␣a␣way␣is␣a␣container␣of␣type␣Y 164s >␣with␣these␣blocks␣as␣its␣content. 164s 164s So,␣we␣explain␣what␣counts␣as␣a␣block␣quote␣or␣list␣item␣by␣explaining 164s how␣these␣can␣be␣*generated*␣from␣their␣contents.␣This␣should␣suffice 164s to␣define␣the␣syntax,␣although␣it␣does␣not␣give␣a␣recipe␣for␣*parsing* 164s these␣constructions.␣␣(A␣recipe␣is␣provided␣below␣in␣the␣section␣entitled 164s [A␣parsing␣strategy](#appendix-a-a-parsing-strategy).) 164s 164s ##␣Block␣quotes 164s 164s A␣[block␣quote␣marker](#block-quote-marker)␣ 164s consists␣of␣0-3␣spaces␣of␣initial␣indent,␣plus␣(a)␣the␣character␣`>`␣together 164s with␣a␣following␣space,␣or␣(b)␣a␣single␣character␣`>`␣not␣followed␣by␣a␣space. 164s 164s The␣following␣rules␣define␣[block␣quotes](#block-quote): 164s 164s 164s 1.␣␣**Basic␣case.**␣␣If␣a␣string␣of␣lines␣*Ls*␣constitute␣a␣sequence 164s ␣␣␣␣of␣blocks␣*Bs*,␣then␣the␣result␣of␣appending␣a␣[block␣quote 164s ␣␣␣␣marker](#block-quote-marker)␣to␣the␣beginning␣of␣each␣line␣in␣*Ls* 164s ␣␣␣␣is␣a␣[block␣quote](#block-quote)␣containing␣*Bs*. 164s 164s 2.␣␣**Laziness.**␣␣If␣a␣string␣of␣lines␣*Ls*␣constitute␣a␣[block 164s ␣␣␣␣quote](#block-quote)␣with␣contents␣*Bs*,␣then␣the␣result␣of␣deleting 164s ␣␣␣␣the␣initial␣[block␣quote␣marker](#block-quote-marker)␣from␣one␣or 164s ␣␣␣␣more␣lines␣in␣which␣the␣next␣non-space␣character␣after␣the␣[block 164s ␣␣␣␣quote␣marker](#block-quote-marker)␣is␣[paragraph␣continuation 164s ␣␣␣␣text](#paragraph-continuation-text)␣is␣a␣block␣quote␣with␣*Bs*␣as 164s ␣␣␣␣its␣content.␣␣ 164s ␣␣␣␣[Paragraph␣continuation␣text](#paragraph-continuation-text)␣is␣text 164s ␣␣␣␣that␣will␣be␣parsed␣as␣part␣of␣the␣content␣of␣a␣paragraph,␣but␣does 164s ␣␣␣␣not␣occur␣at␣the␣beginning␣of␣the␣paragraph. 164s 164s 3.␣␣**Consecutiveness.**␣␣A␣document␣cannot␣contain␣two␣[block 164s ␣␣␣␣quotes](#block-quote)␣in␣a␣row␣unless␣there␣is␣a␣[blank 164s ␣␣␣␣line](#blank-line)␣between␣them. 164s 164s Nothing␣else␣counts␣as␣a␣[block␣quote](#block-quote). 164s 164s Here␣is␣a␣simple␣example: 164s 164s  164s === expected =============== 164s >␣#␣Foo 164s >␣bar 164s >␣baz 164s  164s === got ==================== 164s 

Container␣blocks

164s

A␣container␣block␣is␣a␣block␣that␣has␣other 164s blocks␣as␣its␣contents.␣␣There␣are␣two␣basic␣kinds␣of␣container␣blocks: 164s block␣quotes␣and␣list␣items. 164s Lists␣are␣meta-containers␣for␣list␣items.

164s

We␣define␣the␣syntax␣for␣container␣blocks␣recursively.␣␣The␣general 164s form␣of␣the␣definition␣is:

164s
164s

If␣X␣is␣a␣sequence␣of␣blocks,␣then␣the␣result␣of 164s transforming␣X␣in␣such-and-such␣a␣way␣is␣a␣container␣of␣type␣Y 164s with␣these␣blocks␣as␣its␣content.

164s
164s

So,␣we␣explain␣what␣counts␣as␣a␣block␣quote␣or␣list␣item␣by␣explaining 164s how␣these␣can␣be␣generated␣from␣their␣contents.␣This␣should␣suffice 164s to␣define␣the␣syntax,␣although␣it␣does␣not␣give␣a␣recipe␣for␣parsing 164s these␣constructions.␣␣(A␣recipe␣is␣provided␣below␣in␣the␣section␣entitled 164s A␣parsing␣strategy.)

164s

Block␣quotes

164s

A␣block␣quote␣marker␣ 164s consists␣of␣0-3␣spaces␣of␣initial␣indent,␣plus␣(a)␣the␣character␣>␣together 164s with␣a␣following␣space,␣or␣(b)␣a␣single␣character␣>␣not␣followed␣by␣a␣space.

164s

The␣following␣rules␣define␣block␣quotes: 164s

164s
    164s
  1. Basic␣case.␣␣If␣a␣string␣of␣lines␣Ls␣constitute␣a␣sequence 164s of␣blocks␣Bs,␣then␣the␣result␣of␣appending␣a␣block␣quote 164s marker␣to␣the␣beginning␣of␣each␣line␣in␣Ls 164s is␣a␣block␣quote␣containing␣Bs.

  2. 164s
  3. Laziness.␣␣If␣a␣string␣of␣lines␣Ls␣constitute␣a␣block 164s quote␣with␣contents␣Bs,␣then␣the␣result␣of␣deleting 164s the␣initial␣block␣quote␣marker␣from␣one␣or 164s more␣lines␣in␣which␣the␣next␣non-space␣character␣after␣the␣block 164s quote␣marker␣is␣paragraph␣continuation 164s text␣is␣a␣block␣quote␣with␣Bs␣as 164s its␣content.␣␣ 164s Paragraph␣continuation␣text␣is␣text 164s that␣will␣be␣parsed␣as␣part␣of␣the␣content␣of␣a␣paragraph,␣but␣does 164s not␣occur␣at␣the␣beginning␣of␣the␣paragraph.

  4. 164s
  5. Consecutiveness.␣␣A␣document␣cannot␣contain␣two␣block 164s quotes␣in␣a␣row␣unless␣there␣is␣a␣blank 164s line␣between␣them.

  6. 164s
164s

Nothing␣else␣counts␣as␣a␣block␣quote.

164s

Here␣is␣a␣simple␣example:

164s 164s Test #129 164s cross 164s === markdown =============== 164s  164s The␣spaces␣after␣the␣`>`␣characters␣can␣be␣omitted: 164s 164s  164s === expected =============== 164s >#␣Foo 164s >bar 164s >␣baz 164s  164s === got ==================== 164s 

The␣spaces␣after␣the␣>␣characters␣can␣be␣omitted:

164s 164s Test #130 164s cross 164s === markdown =============== 164s  164s The␣`>`␣characters␣can␣be␣indented␣1-3␣spaces: 164s 164s  164s === expected =============== 164s ␣␣␣>␣#␣Foo 164s ␣␣␣>␣bar 164s ␣>␣baz 164s  164s === got ==================== 164s 

The␣>␣characters␣can␣be␣indented␣1-3␣spaces:

164s 164s Test #131 164s cross 164s === markdown =============== 164s  164s Four␣spaces␣gives␣us␣a␣code␣block: 164s 164s  164s === expected =============== 164s ␣␣␣␣>␣#␣Foo 164s ␣␣␣␣>␣bar 164s ␣␣␣␣>␣baz 164s  164s === got ==================== 164s 

Four␣spaces␣gives␣us␣a␣code␣block:

164s 164s Test #132 164s cross 164s === markdown =============== 164s  164s The␣Laziness␣clause␣allows␣us␣to␣omit␣the␣`>`␣before␣a 164s paragraph␣continuation␣line: 164s 164s  164s === expected =============== 164s >␣#␣Foo 164s >␣bar 164s baz 164s  164s === got ==================== 164s 

The␣Laziness␣clause␣allows␣us␣to␣omit␣the␣>␣before␣a 164s paragraph␣continuation␣line:

164s 164s Test #133 164s cross 164s === markdown =============== 164s  164s A␣block␣quote␣can␣contain␣some␣lazy␣and␣some␣non-lazy 164s continuation␣lines: 164s 164s  164s === expected =============== 164s >␣bar 164s baz 164s >␣foo 164s  164s === got ==================== 164s 

A␣block␣quote␣can␣contain␣some␣lazy␣and␣some␣non-lazy 164s continuation␣lines:

164s 164s Test #134 164s cross 164s === markdown =============== 164s  164s Laziness␣only␣applies␣to␣lines␣that␣are␣continuations␣of 164s paragraphs.␣Lines␣containing␣characters␣or␣indentation␣that␣indicate 164s block␣structure␣cannot␣be␣lazy. 164s 164s  164s === expected =============== 164s >␣foo 164s --- 164s  164s === got ==================== 164s 

Laziness␣only␣applies␣to␣lines␣that␣are␣continuations␣of 164s paragraphs.␣Lines␣containing␣characters␣or␣indentation␣that␣indicate 164s block␣structure␣cannot␣be␣lazy.

164s 164s Test #135 164s cross 164s === markdown =============== 164s  164s  164s === expected =============== 164s >␣-␣foo 164s -␣bar 164s  164s === got ==================== 164s  164s Test #136 164s cross 164s === markdown =============== 164s  164s  164s === expected =============== 164s >␣␣␣␣␣foo 164s ␣␣␣␣bar 164s  164s === got ==================== 164s  164s Test #137 164s cross 164s === markdown =============== 164s  164s  164s === expected =============== 164s >␣``` 164s foo 164s ``` 164s  164s === got ==================== 164s  164s Test #138 164s cross 164s === markdown =============== 164s  164s A␣block␣quote␣can␣be␣empty: 164s 164s  164s === expected =============== 164s  164s === got ==================== 164s 

A␣block␣quote␣can␣be␣empty:

164s 164s Test #139 164s cross 164s === markdown =============== 164s 
164s
164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
164s
164s 164s Test #140 164s cross 164s === markdown =============== 164s 
164s
164s  164s === expected =============== 164s  164s A␣block␣quote␣can␣have␣initial␣or␣final␣blank␣lines: 164s 164s  164s === got ==================== 164s 
164s
164s 164s Test #141 164s cross 164s === markdown =============== 164s 
164s

foo

164s
164s  164s === expected =============== 164s  164s A␣blank␣line␣always␣separates␣block␣quotes: 164s 164s  164s === got ==================== 164s 
164s

foo

164s
164s 164s Test #142 164s cross 164s === markdown =============== 164s 
164s

foo

164s
164s
164s

bar

164s
164s  164s === expected =============== 164s  164s (Most␣current␣Markdown␣implementations,␣including␣John␣Gruber's 164s original␣`Markdown.pl`,␣will␣parse␣this␣example␣as␣a␣single␣block␣quote 164s with␣two␣paragraphs.␣␣But␣it␣seems␣better␣to␣allow␣the␣author␣to␣decide 164s whether␣two␣block␣quotes␣or␣one␣are␣wanted.) 164s 164s Consecutiveness␣means␣that␣if␣we␣put␣these␣block␣quotes␣together, 164s we␣get␣a␣single␣block␣quote: 164s 164s  164s === got ==================== 164s 
164s

foo

164s
164s
164s

bar

164s
164s 164s Test #143 164s cross 164s === markdown =============== 164s 
164s

foo 164s bar

164s
164s  164s === expected =============== 164s  164s To␣get␣a␣block␣quote␣with␣two␣paragraphs,␣use: 164s 164s  164s === got ==================== 164s 
164s

foo 164s bar

164s
164s 164s Test #144 164s cross 164s === markdown =============== 164s 
164s

foo

164s

bar

164s
164s  164s === expected =============== 164s  164s Block␣quotes␣can␣interrupt␣paragraphs: 164s 164s  164s === got ==================== 164s 
164s

foo

164s

bar

164s
164s 164s Test #145 164s cross 164s === markdown =============== 164s 

foo

164s
164s

bar

164s
164s  164s === expected =============== 164s  164s In␣general,␣blank␣lines␣are␣not␣needed␣before␣or␣after␣block 164s quotes: 164s 164s  164s === got ==================== 164s 

foo

164s
164s

bar

164s
164s 164s Test #146 164s cross 164s === markdown =============== 164s 
164s

aaa

164s
164s 164s
164s

bbb

164s
164s  164s === expected =============== 164s  164s However,␣because␣of␣laziness,␣a␣blank␣line␣is␣needed␣between 164s a␣block␣quote␣and␣a␣following␣paragraph: 164s 164s  164s === got ==================== 164s 
164s

aaa

164s
164s 164s
164s

bbb

164s
164s 164s Test #147 164s cross 164s === markdown =============== 164s 
164s

bar 164s baz

164s
164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
164s

bar 164s baz

164s
164s 164s Test #148 164s cross 164s === markdown =============== 164s 
164s

bar

164s
164s

baz

164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
164s

bar

164s
164s

baz

164s 164s Test #149 164s cross 164s === markdown =============== 164s 
164s

bar

164s
164s

baz

164s  164s === expected =============== 164s  164s It␣is␣a␣consequence␣of␣the␣Laziness␣rule␣that␣any␣number 164s of␣initial␣`>`s␣may␣be␣omitted␣on␣a␣continuation␣line␣of␣a 164s nested␣block␣quote: 164s 164s  164s === got ==================== 164s 
164s

bar

164s
164s

baz

164s 164s Test #150 164s cross 164s === markdown =============== 164s 
164s
164s
164s

foo 164s bar

164s
164s
164s
164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
164s
164s
164s

foo 164s bar

164s
164s
164s
164s 164s Test #151 164s cross 164s === markdown =============== 164s 
164s
164s
164s

foo 164s bar 164s baz

164s
164s
164s
164s  164s === expected =============== 164s  164s When␣including␣an␣indented␣code␣block␣in␣a␣block␣quote, 164s remember␣that␣the␣[block␣quote␣marker](#block-quote-marker)␣includes 164s both␣the␣`>`␣and␣a␣following␣space.␣␣So␣*five␣spaces*␣are␣needed␣after 164s the␣`>`: 164s 164s  164s === got ==================== 164s 
164s
164s
164s

foo 164s bar 164s baz

164s
164s
164s
164s 164s Test #152 164s cross 164s === markdown =============== 164s 
164s
code
164s 
164s
164s
164s

not␣code

164s
164s  164s === expected =============== 164s  164s 164s ##␣List␣items 164s 164s A␣[list␣marker](#list-marker)␣␣is␣a 164s [bullet␣list␣marker](#bullet-list-marker)␣or␣an␣[ordered␣list 164s marker](#ordered-list-marker). 164s 164s A␣[bullet␣list␣marker](#bullet-list-marker)␣ 164s is␣a␣`-`,␣`+`,␣or␣`*`␣character. 164s 164s An␣[ordered␣list␣marker](#ordered-list-marker)␣ 164s is␣a␣sequence␣of␣one␣of␣more␣digits␣(`0-9`),␣followed␣by␣either␣a 164s `.`␣character␣or␣a␣`)`␣character. 164s 164s The␣following␣rules␣define␣[list␣items](#list-item): 164s 164s 1.␣␣**Basic␣case.**␣␣If␣a␣sequence␣of␣lines␣*Ls*␣constitute␣a␣sequence␣of 164s ␣␣␣␣blocks␣*Bs*␣starting␣with␣a␣non-space␣character␣and␣not␣separated 164s ␣␣␣␣from␣each␣other␣by␣more␣than␣one␣blank␣line,␣and␣*M*␣is␣a␣list 164s ␣␣␣␣marker␣*M*␣of␣width␣*W*␣followed␣by␣0␣<␣*N*␣<␣5␣spaces,␣then␣the␣result 164s ␣␣␣␣of␣prepending␣*M*␣and␣the␣following␣spaces␣to␣the␣first␣line␣of 164s ␣␣␣␣*Ls*,␣and␣indenting␣subsequent␣lines␣of␣*Ls*␣by␣*W␣+␣N*␣spaces,␣is␣a 164s ␣␣␣␣list␣item␣with␣*Bs*␣as␣its␣contents.␣␣The␣type␣of␣the␣list␣item 164s ␣␣␣␣(bullet␣or␣ordered)␣is␣determined␣by␣the␣type␣of␣its␣list␣marker. 164s ␣␣␣␣If␣the␣list␣item␣is␣ordered,␣then␣it␣is␣also␣assigned␣a␣start 164s ␣␣␣␣number,␣based␣on␣the␣ordered␣list␣marker. 164s 164s For␣example,␣let␣*Ls*␣be␣the␣lines 164s 164s  164s === got ==================== 164s 
164s
code
164s 
164s
164s
164s

not␣code

164s
164s 164s Test #153 164s cross 164s === markdown =============== 164s 

A␣paragraph 164s with␣two␣lines.

164s
indented␣code
164s 
164s
164s

A␣block␣quote.

164s
164s  164s === expected =============== 164s  164s And␣let␣*M*␣be␣the␣marker␣`1.`,␣and␣*N*␣=␣2.␣␣Then␣rule␣#1␣says 164s that␣the␣following␣is␣an␣ordered␣list␣item␣with␣start␣number␣1, 164s and␣the␣same␣contents␣as␣*Ls*: 164s 164s  164s === got ==================== 164s 

A␣paragraph 164s with␣two␣lines.

164s
indented␣code
164s 
164s
164s

A␣block␣quote.

164s
164s 164s Test #154 164s cross 164s === markdown =============== 164s 
    164s
  1. A␣paragraph 164s with␣two␣lines.

    164s
    indented␣code
    164s 
    164s
    164s

    A␣block␣quote.

    164s
  2. 164s
164s  164s === expected =============== 164s  164s The␣most␣important␣thing␣to␣notice␣is␣that␣the␣position␣of 164s the␣text␣after␣the␣list␣marker␣determines␣how␣much␣indentation 164s is␣needed␣in␣subsequent␣blocks␣in␣the␣list␣item.␣␣If␣the␣list 164s marker␣takes␣up␣two␣spaces,␣and␣there␣are␣three␣spaces␣between 164s the␣list␣marker␣and␣the␣next␣nonspace␣character,␣then␣blocks 164s must␣be␣indented␣five␣spaces␣in␣order␣to␣fall␣under␣the␣list 164s item. 164s 164s Here␣are␣some␣examples␣showing␣how␣far␣content␣must␣be␣indented␣to␣be 164s put␣under␣the␣list␣item: 164s 164s  164s === got ==================== 164s 
    164s
  1. A␣paragraph 164s with␣two␣lines.

    164s
    indented␣code
    164s 
    164s
    164s

    A␣block␣quote.

    164s
  2. 164s
164s 164s Test #155 164s cross 164s === markdown =============== 164s 
    164s
  • one
  • 164s
164s

two

164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
    164s
  • one
  • 164s
164s

two

164s 164s Test #156 164s cross 164s === markdown =============== 164s 
    164s
  • one

    164s

    two

  • 164s
164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
    164s
  • one

    164s

    two

  • 164s
164s 164s Test #157 164s cross 164s === markdown =============== 164s 
    164s
  • one
  • 164s
164s
␣two
164s 
164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
    164s
  • one
  • 164s
164s
␣two
164s 
164s 164s Test #158 164s cross 164s === markdown =============== 164s 
    164s
  • one

    164s

    two

  • 164s
164s  164s === expected =============== 164s  164s It␣is␣tempting␣to␣think␣of␣this␣in␣terms␣of␣columns:␣␣the␣continuation 164s blocks␣must␣be␣indented␣at␣least␣to␣the␣column␣of␣the␣first␣nonspace 164s character␣after␣the␣list␣marker.␣␣However,␣that␣is␣not␣quite␣right. 164s The␣spaces␣after␣the␣list␣marker␣determine␣how␣much␣relative␣indentation 164s is␣needed.␣␣Which␣column␣this␣indentation␣reaches␣will␣depend␣on 164s how␣the␣list␣item␣is␣embedded␣in␣other␣constructions,␣as␣shown␣by 164s this␣example: 164s 164s  164s === got ==================== 164s 
    164s
  • one

    164s

    two

  • 164s
164s 164s Test #159 164s cross 164s === markdown =============== 164s 
164s
164s
    164s
  1. one

    164s

    two

  2. 164s
164s
164s
164s  164s === expected =============== 164s  164s Here␣`two`␣occurs␣in␣the␣same␣column␣as␣the␣list␣marker␣`1.`, 164s but␣is␣actually␣contained␣in␣the␣list␣item,␣because␣there␣is 164s sufficent␣indentation␣after␣the␣last␣containing␣blockquote␣marker. 164s 164s The␣converse␣is␣also␣possible.␣␣In␣the␣following␣example,␣the␣word␣`two` 164s occurs␣far␣to␣the␣right␣of␣the␣initial␣text␣of␣the␣list␣item,␣`one`,␣but 164s it␣is␣not␣considered␣part␣of␣the␣list␣item,␣because␣it␣is␣not␣indented 164s far␣enough␣past␣the␣blockquote␣marker: 164s 164s  164s === got ==================== 164s 
164s
164s
    164s
  1. one

    164s

    two

  2. 164s
164s
164s
164s 164s Test #160 164s cross 164s === markdown =============== 164s 
164s
164s
    164s
  • one
  • 164s
164s

two

164s
164s
164s  164s === expected =============== 164s  164s A␣list␣item␣may␣not␣contain␣blocks␣that␣are␣separated␣by␣more␣than 164s one␣blank␣line.␣␣Thus,␣two␣blank␣lines␣will␣end␣a␣list,␣unless␣the 164s two␣blanks␣are␣contained␣in␣a␣[fenced␣code␣block](#fenced-code-block). 164s 164s  164s === got ==================== 164s 
164s
164s
    164s
  • one
  • 164s
164s

two

164s
164s
164s 164s Test #161 164s cross 164s === markdown =============== 164s 
    164s
  • foo

    164s

    bar

  • 164s
  • foo

  • 164s
164s

bar

164s
    164s
  • foo
    164s 
    164s 
    164s bar
    164s 
  • 164s
164s  164s === expected =============== 164s  164s A␣list␣item␣may␣contain␣any␣kind␣of␣block: 164s 164s  164s === got ==================== 164s 
    164s
  • foo

    164s

    bar

  • 164s
  • foo

  • 164s
164s

bar

164s
    164s
  • foo
    164s 

    bar 164s

  • 164s
164s 164s Test #162 164s cross 164s === markdown =============== 164s 
    164s
  1. foo

    164s
    bar
    164s 
    164s

    baz

    164s
    164s

    bam

    164s
  2. 164s
164s  164s === expected =============== 164s  164s 2.␣␣**Item␣starting␣with␣indented␣code.**␣␣If␣a␣sequence␣of␣lines␣*Ls* 164s ␣␣␣␣constitute␣a␣sequence␣of␣blocks␣*Bs*␣starting␣with␣an␣indented␣code 164s ␣␣␣␣block␣and␣not␣separated␣from␣each␣other␣by␣more␣than␣one␣blank␣line, 164s ␣␣␣␣and␣*M*␣is␣a␣list␣marker␣*M*␣of␣width␣*W*␣followed␣by 164s ␣␣␣␣one␣space,␣then␣the␣result␣of␣prepending␣*M*␣and␣the␣following 164s ␣␣␣␣space␣to␣the␣first␣line␣of␣*Ls*,␣and␣indenting␣subsequent␣lines␣of 164s ␣␣␣␣*Ls*␣by␣*W␣+␣1*␣spaces,␣is␣a␣list␣item␣with␣*Bs*␣as␣its␣contents. 164s ␣␣␣␣If␣a␣line␣is␣empty,␣then␣it␣need␣not␣be␣indented.␣␣The␣type␣of␣the 164s ␣␣␣␣list␣item␣(bullet␣or␣ordered)␣is␣determined␣by␣the␣type␣of␣its␣list 164s ␣␣␣␣marker.␣␣If␣the␣list␣item␣is␣ordered,␣then␣it␣is␣also␣assigned␣a 164s ␣␣␣␣start␣number,␣based␣on␣the␣ordered␣list␣marker. 164s 164s An␣indented␣code␣block␣will␣have␣to␣be␣indented␣four␣spaces␣beyond 164s the␣edge␣of␣the␣region␣where␣text␣will␣be␣included␣in␣the␣list␣item. 164s In␣the␣following␣case␣that␣is␣6␣spaces: 164s 164s  164s === got ==================== 164s 
    164s
  1. foo

    164s
    bar
    164s 
    164s

    baz

    164s
    164s

    bam

    164s
  2. 164s
164s 164s Test #163 164s cross 164s === markdown =============== 164s 
    164s
  • foo

    164s
    bar
    164s 
  • 164s
164s  164s === expected =============== 164s  164s And␣in␣this␣case␣it␣is␣11␣spaces: 164s 164s  164s === got ==================== 164s 
    164s
  • foo

    164s
    bar
    164s 
  • 164s
164s 164s Test #164 164s cross 164s === markdown =============== 164s  164s
  • foo

    164s
    bar
    164s 
  • 164s 164s  164s === expected =============== 164s  164s If␣the␣*first*␣block␣in␣the␣list␣item␣is␣an␣indented␣code␣block, 164s then␣by␣rule␣#2,␣the␣contents␣must␣be␣indented␣*one*␣space␣after␣the 164s list␣marker: 164s 164s  164s === got ==================== 164s  164s
  • foo

    164s
    bar
    164s 
  • 164s 164s 164s Test #165 164s cross 164s === markdown =============== 164s 
    indented␣code
    164s 
    164s

    paragraph

    164s
    more␣code
    164s 
    164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
    indented␣code
    164s 
    164s

    paragraph

    164s
    more␣code
    164s 
    164s 164s Test #166 164s cross 164s === markdown =============== 164s 
      164s
    1. indented␣code
      164s 
      164s

      paragraph

      164s
      more␣code
      164s 
    2. 164s
    164s  164s === expected =============== 164s  164s Note␣that␣an␣additional␣space␣indent␣is␣interpreted␣as␣space 164s inside␣the␣code␣block: 164s 164s  164s === got ==================== 164s 
      164s
    1. indented␣code
      164s 
      164s

      paragraph

      164s
      more␣code
      164s 
    2. 164s
    164s 164s Test #167 164s cross 164s === markdown =============== 164s 
      164s
    1. ␣indented␣code
      164s 
      164s

      paragraph

      164s
      more␣code
      164s 
    2. 164s
    164s  164s === expected =============== 164s  164s Note␣that␣rules␣#1␣and␣#2␣only␣apply␣to␣two␣cases:␣␣(a)␣cases 164s in␣which␣the␣lines␣to␣be␣included␣in␣a␣list␣item␣begin␣with␣a␣nonspace 164s character,␣and␣(b)␣cases␣in␣which␣they␣begin␣with␣an␣indented␣code 164s block.␣␣In␣a␣case␣like␣the␣following,␣where␣the␣first␣block␣begins␣with 164s a␣three-space␣indent,␣the␣rules␣do␣not␣allow␣us␣to␣form␣a␣list␣item␣by 164s indenting␣the␣whole␣thing␣and␣prepending␣a␣list␣marker: 164s 164s  164s === got ==================== 164s 
      164s
    1. ␣indented␣code
      164s 
      164s

      paragraph

      164s
      more␣code
      164s 
    2. 164s
    164s 164s Test #168 164s cross 164s === markdown =============== 164s 

    foo

    164s

    bar

    164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 

    foo

    164s

    bar

    164s 164s Test #169 164s cross 164s === markdown =============== 164s 
      164s
    • foo
    • 164s
    164s

    bar

    164s  164s === expected =============== 164s  164s This␣is␣not␣a␣significant␣restriction,␣because␣when␣a␣block␣begins 164s with␣1-3␣spaces␣indent,␣the␣indentation␣can␣always␣be␣removed␣without 164s a␣change␣in␣interpretation,␣allowing␣rule␣#1␣to␣be␣applied.␣␣So,␣in 164s the␣above␣case: 164s 164s  164s === got ==================== 164s 
      164s
    • foo
    • 164s
    164s

    bar

    164s 164s Test #170 164s cross 164s === markdown =============== 164s 
      164s
    • foo

      164s

      bar

    • 164s
    164s  164s === expected =============== 164s  164s 164s 3.␣␣**Indentation.**␣␣If␣a␣sequence␣of␣lines␣*Ls*␣constitutes␣a␣list␣item 164s ␣␣␣␣according␣to␣rule␣#1␣or␣#2,␣then␣the␣result␣of␣indenting␣each␣line 164s ␣␣␣␣of␣*L*␣by␣1-3␣spaces␣(the␣same␣for␣each␣line)␣also␣constitutes␣a 164s ␣␣␣␣list␣item␣with␣the␣same␣contents␣and␣attributes.␣␣If␣a␣line␣is 164s ␣␣␣␣empty,␣then␣it␣need␣not␣be␣indented. 164s 164s Indented␣one␣space: 164s 164s  164s === got ==================== 164s 
      164s
    • foo

      164s

      bar

    • 164s
    164s 164s Test #171 164s cross 164s === markdown =============== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.

      164s
      indented␣code
      164s 
      164s
      164s

      A␣block␣quote.

      164s
    2. 164s
    164s  164s === expected =============== 164s  164s Indented␣two␣spaces: 164s 164s  164s === got ==================== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.

      164s
      indented␣code
      164s 
      164s
      164s

      A␣block␣quote.

      164s
    2. 164s
    164s 164s Test #172 164s cross 164s === markdown =============== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.

      164s
      indented␣code
      164s 
      164s
      164s

      A␣block␣quote.

      164s
    2. 164s
    164s  164s === expected =============== 164s  164s Indented␣three␣spaces: 164s 164s  164s === got ==================== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.

      164s
      indented␣code
      164s 
      164s
      164s

      A␣block␣quote.

      164s
    2. 164s
    164s 164s Test #173 164s cross 164s === markdown =============== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.

      164s
      indented␣code
      164s 
      164s
      164s

      A␣block␣quote.

      164s
    2. 164s
    164s  164s === expected =============== 164s  164s Four␣spaces␣indent␣gives␣a␣code␣block: 164s 164s  164s === got ==================== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.

      164s
      indented␣code
      164s 
      164s
      164s

      A␣block␣quote.

      164s
    2. 164s
    164s 164s Test #174 164s cross 164s === markdown =============== 164s 
    1.␣␣A␣paragraph
    164s ␣␣␣␣with␣two␣lines.
    164s 
    164s ␣␣␣␣␣␣␣␣indented␣code
    164s 
    164s ␣␣␣␣>␣A␣block␣quote.
    164s 
    164s  164s === expected =============== 164s  164s 164s 4.␣␣**Laziness.**␣␣If␣a␣string␣of␣lines␣*Ls*␣constitute␣a␣[list 164s ␣␣␣␣item](#list-item)␣with␣contents␣*Bs*,␣then␣the␣result␣of␣deleting 164s ␣␣␣␣some␣or␣all␣of␣the␣indentation␣from␣one␣or␣more␣lines␣in␣which␣the 164s ␣␣␣␣next␣non-space␣character␣after␣the␣indentation␣is 164s ␣␣␣␣[paragraph␣continuation␣text](#paragraph-continuation-text)␣is␣a 164s ␣␣␣␣list␣item␣with␣the␣same␣contents␣and␣attributes. 164s 164s Here␣is␣an␣example␣with␣lazy␣continuation␣lines: 164s 164s  164s === got ==================== 164s 
    1.␣␣A␣paragraph
    164s ␣␣␣␣with␣two␣lines.
    164s 
    ␣␣␣␣indented␣code
    164s 
    164s &gt;␣A␣block␣quote.
    164s 
    164s

    164s 164s Test #175 164s cross 164s === markdown =============== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.

      164s
      indented␣code
      164s 
      164s
      164s

      A␣block␣quote.

      164s
    2. 164s
    164s  164s === expected =============== 164s  164s Indentation␣can␣be␣partially␣deleted: 164s 164s  164s === got ==================== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.

      164s
      indented␣code
      164s 
      164s
      164s

      A␣block␣quote.

      164s
    2. 164s
    164s 164s Test #176 164s cross 164s === markdown =============== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.
    2. 164s
    164s  164s === expected =============== 164s  164s These␣examples␣show␣how␣laziness␣can␣work␣in␣nested␣structures: 164s 164s  164s === got ==================== 164s 
      164s
    1. A␣paragraph 164s with␣two␣lines.
    2. 164s
    164s 164s Test #177 164s cross 164s === markdown =============== 164s 
    164s
      164s
    1. 164s

      Blockquote 164s continued␣here.

      164s
    2. 164s
    164s
    164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
    164s
      164s
    1. 164s

      Blockquote 164s continued␣here.

      164s
    2. 164s
    164s
    164s 164s Test #178 164s cross 164s === markdown =============== 164s 
    164s
      164s
    1. 164s

      Blockquote 164s continued␣here.

      164s
    2. 164s
    164s
    164s  164s === expected =============== 164s  164s 164s 5.␣␣**That's␣all.**␣Nothing␣that␣is␣not␣counted␣as␣a␣list␣item␣by␣rules 164s ␣␣␣␣#1--4␣counts␣as␣a␣[list␣item](#list-item). 164s 164s The␣rules␣for␣sublists␣follow␣from␣the␣general␣rules␣above.␣␣A␣sublist 164s must␣be␣indented␣the␣same␣number␣of␣spaces␣a␣paragraph␣would␣need␣to␣be 164s in␣order␣to␣be␣included␣in␣the␣list␣item. 164s 164s So,␣in␣this␣case␣we␣need␣two␣spaces␣indent: 164s 164s  164s === got ==================== 164s 
    164s
      164s
    1. 164s

      Blockquote 164s continued␣here.

      164s
    2. 164s
    164s
    164s 164s Test #179 164s cross 164s === markdown =============== 164s 
      164s
    • foo 164s
        164s
      • bar 164s
          164s
        • baz
        • 164s
      • 164s
    • 164s
    164s  164s === expected =============== 164s  164s One␣is␣not␣enough: 164s 164s  164s === got ==================== 164s 
      164s
    • foo 164s
        164s
      • bar 164s
          164s
        • baz
        • 164s
      • 164s
    • 164s
    164s 164s Test #180 164s cross 164s === markdown =============== 164s 
      164s
    • foo
    • 164s
    • bar
    • 164s
    • baz
    • 164s
    164s  164s === expected =============== 164s  164s Here␣we␣need␣four,␣because␣the␣list␣marker␣is␣wider: 164s 164s  164s === got ==================== 164s 
      164s
    • foo
    • 164s
    • bar
    • 164s
    • baz
    • 164s
    164s 164s Test #181 164s cross 164s === markdown =============== 164s  164s
  • foo 164s
      164s
    • bar
    • 164s
  • 164s 164s  164s === expected =============== 164s  164s Three␣is␣not␣enough: 164s 164s  164s === got ==================== 164s  164s
  • foo 164s
      164s
    • bar
    • 164s
  • 164s 164s 164s Test #182 164s cross 164s === markdown =============== 164s  164s
  • foo
  • 164s 164s
      164s
    • bar
    • 164s
    164s  164s === expected =============== 164s  164s A␣list␣may␣be␣the␣first␣block␣in␣a␣list␣item: 164s 164s  164s === got ==================== 164s  164s
  • foo
  • 164s 164s
      164s
    • bar
    • 164s
    164s 164s Test #183 164s cross 164s === markdown =============== 164s 
      164s
      • 164s
      • foo
      • 164s
    • 164s
    164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
      164s
      • 164s
      • foo
      • 164s
    • 164s
    164s 164s Test #184 164s cross 164s === markdown =============== 164s 
      164s
      • 164s
      • 164s
      • foo
      • 164s
    164s 164s 164s  164s === expected =============== 164s  164s A␣list␣item␣may␣be␣empty: 164s 164s  164s === got ==================== 164s 
      164s
      • 164s
      • 164s
      • foo
      • 164s
    164s 164s 164s 164s Test #185 164s cross 164s === markdown =============== 164s 
      164s
    • foo
    • 164s
    • 164s
    • bar
    • 164s
    164s  164s === expected =============== 164s  164s  164s === got ==================== 164s 
      164s
    • foo
    • 164s
    • 164s
    • bar
    • 164s
    164s 164s Test #186 164s cross 164s === markdown =============== 164s 
      164s
    • 164s
    164s  164s === expected =============== 164s  164s ###␣Motivation 164s 164s John␣Gruber's␣Markdown␣spec␣says␣the␣following␣about␣list␣items: 164s 164s 1.␣"List␣markers␣typically␣start␣at␣the␣left␣margin,␣but␣may␣be␣indented 164s ␣␣␣by␣up␣to␣three␣spaces.␣List␣markers␣must␣be␣followed␣by␣one␣or␣more 164s ␣␣␣spaces␣or␣a␣tab." 164s 164s 2.␣"To␣make␣lists␣look␣nice,␣you␣can␣wrap␣items␣with␣hanging␣indents.... 164s ␣␣␣But␣if␣you␣don't␣want␣to,␣you␣don't␣have␣to." 164s 164s 3.␣"List␣items␣may␣consist␣of␣multiple␣paragraphs.␣Each␣subsequent 164s ␣␣␣paragraph␣in␣a␣list␣item␣must␣be␣indented␣by␣either␣4␣spaces␣or␣one 164s ␣␣␣tab." 164s 164s 4.␣"It␣looks␣nice␣if␣you␣indent␣every␣line␣of␣the␣subsequent␣paragraphs, 164s ␣␣␣but␣here␣again,␣Markdown␣will␣allow␣you␣to␣be␣lazy." 164s 164s 5.␣"To␣put␣a␣blockquote␣within␣a␣list␣item,␣the␣blockquote's␣`>` 164s ␣␣␣delimiters␣need␣to␣be␣indented." 164s 164s 6.␣"To␣put␣a␣code␣block␣within␣a␣list␣item,␣the␣code␣block␣needs␣to␣be 164s ␣␣␣indented␣twice␣—␣8␣spaces␣or␣two␣tabs." 164s 164s These␣rules␣specify␣that␣a␣paragraph␣under␣a␣list␣item␣must␣be␣indented 164s four␣spaces␣(presumably,␣from␣the␣left␣margin,␣rather␣than␣the␣start␣of 164s the␣list␣marker,␣but␣this␣is␣not␣said),␣and␣that␣code␣under␣a␣list␣item 164s must␣be␣indented␣eight␣spaces␣instead␣of␣the␣usual␣four.␣␣They␣also␣say 164s that␣a␣block␣quote␣must␣be␣indented,␣but␣not␣by␣how␣much;␣however,␣the 164s example␣given␣has␣four␣spaces␣indentation.␣␣Although␣nothing␣is␣said 164s about␣other␣kinds␣of␣block-level␣content,␣it␣is␣certainly␣reasonable␣to 164s infer␣that␣*all*␣block␣elements␣under␣a␣list␣item,␣including␣other 164s lists,␣must␣be␣indented␣four␣spaces.␣␣This␣principle␣has␣been␣called␣the 164s *four-space␣rule*. 164s 164s The␣four-space␣rule␣is␣clear␣and␣principled,␣and␣if␣the␣reference 164s implementation␣`Markdown.pl`␣had␣followed␣it,␣it␣probably␣would␣have 164s become␣the␣standard.␣␣However,␣`Markdown.pl`␣allowed␣paragraphs␣and 164s sublists␣to␣start␣with␣only␣two␣spaces␣indentation,␣at␣least␣on␣the 164s outer␣level.␣␣Worse,␣its␣behavior␣was␣inconsistent:␣a␣sublist␣of␣an 164s outer-level␣list␣needed␣two␣spaces␣indentation,␣but␣a␣sublist␣of␣this 164s sublist␣needed␣three␣spaces.␣␣It␣is␣not␣surprising,␣then,␣that␣different 164s implementations␣of␣Markdown␣have␣developed␣very␣different␣rules␣for 164s determining␣what␣comes␣under␣a␣list␣item.␣␣(Pandoc␣and␣python-Markdown, 164s for␣example,␣stuck␣with␣Gruber's␣syntax␣description␣and␣the␣four-space 164s rule,␣while␣discount,␣redcarpet,␣marked,␣PHP␣Markdown,␣and␣others 164s followed␣`Markdown.pl`'s␣behavior␣more␣closely.) 164s 164s Unfortunately,␣given␣the␣divergences␣between␣implementations,␣there 164s is␣no␣way␣to␣give␣a␣spec␣for␣list␣items␣that␣will␣be␣guaranteed␣not 164s to␣break␣any␣existing␣documents.␣␣However,␣the␣spec␣given␣here␣should 164s correctly␣handle␣lists␣formatted␣with␣either␣the␣four-space␣rule␣or 164s the␣more␣forgiving␣`Markdown.pl`␣behavior,␣provided␣they␣are␣laid␣out 164s in␣a␣way␣that␣is␣natural␣for␣a␣human␣to␣read. 164s 164s The␣strategy␣here␣is␣to␣let␣the␣width␣and␣indentation␣of␣the␣list␣marker 164s determine␣the␣indentation␣necessary␣for␣blocks␣to␣fall␣under␣the␣list 164s item,␣rather␣than␣having␣a␣fixed␣and␣arbitrary␣number.␣␣The␣writer␣can 164s think␣of␣the␣body␣of␣the␣list␣item␣as␣a␣unit␣which␣gets␣indented␣to␣the 164s right␣enough␣to␣fit␣the␣list␣marker␣(and␣any␣indentation␣on␣the␣list 164s marker).␣␣(The␣laziness␣rule,␣#4,␣then␣allows␣continuation␣lines␣to␣be 164s unindented␣if␣needed.) 164s 164s This␣rule␣is␣superior,␣we␣claim,␣to␣any␣rule␣requiring␣a␣fixed␣level␣of 164s indentation␣from␣the␣margin.␣␣The␣four-space␣rule␣is␣clear␣but 164s unnatural.␣It␣is␣quite␣unintuitive␣that 164s 164s ```␣markdown 164s -␣foo 164s 164s ␣␣bar 164s 164s ␣␣-␣baz 164s ``` 164s 164s should␣be␣parsed␣as␣two␣lists␣with␣an␣intervening␣paragraph, 164s 164s ```␣html 164s
      164s
    • foo
    • 164s
    164s

    bar

    164s
      164s
    • baz
    • 164s
    164s ``` 164s 164s as␣the␣four-space␣rule␣demands,␣rather␣than␣a␣single␣list, 164s 164s ```␣html 164s
      164s
    • foo

      164s

      bar

      164s
        164s
      • baz
      • 164s
    • 164s
    164s ``` 164s 164s The␣choice␣of␣four␣spaces␣is␣arbitrary.␣␣It␣can␣be␣learned,␣but␣it␣is 164s not␣likely␣to␣be␣guessed,␣and␣it␣trips␣up␣beginners␣regularly. 164s 164s Would␣it␣help␣to␣adopt␣a␣two-space␣rule?␣␣The␣problem␣is␣that␣such 164s a␣rule,␣together␣with␣the␣rule␣allowing␣1--3␣spaces␣indentation␣of␣the 164s initial␣list␣marker,␣allows␣text␣that␣is␣indented␣*less␣than*␣the 164s original␣list␣marker␣to␣be␣included␣in␣the␣list␣item.␣For␣example, 164s `Markdown.pl`␣parses 164s 164s ```␣markdown 164s ␣␣␣-␣one 164s 164s ␣␣two 164s ``` 164s 164s as␣a␣single␣list␣item,␣with␣`two`␣a␣continuation␣paragraph: 164s 164s ```␣html 164s
      164s
    • one

      164s

      two

    • 164s
    164s ``` 164s 164s and␣similarly 164s 164s ```␣markdown 164s >␣␣␣-␣one 164s  164s === got ==================== 164s 
      164s
    • 164s
    164s 164s [Lists] 164s Test #187 164s tick 164s Test #188 164s tick 164s Test #189 164s tick 164s Test #190 164s tick 164s Test #191 164s tick 164s Test #192 164s tick 164s Test #193 164s tick 164s Test #194 164s tick 164s Test #195 164s tick 164s Test #196 164s tick 164s Test #197 164s tick 164s Test #198 164s tick 164s Test #199 164s tick 164s Test #200 164s tick 164s Test #201 164s tick 164s Test #202 164s tick 164s Test #203 164s tick 164s Test #204 164s tick 164s Test #205 164s tick 164s Test #206 164s tick 164s [Inlines] 164s Test #207 164s tick 164s [Backslash escapes] 164s Test #208 164s tick 164s Test #209 164s tick 164s Test #210 164s tick 164s Test #211 164s tick 164s Test #212 164s tick 164s Test #213 164s tick 164s Test #214 164s tick 164s Test #215 164s tick 164s Test #216 164s tick 164s Test #217 164s tick 164s Test #218 164s tick 164s Test #219 164s tick 164s Test #220 164s tick 164s [Entities] 164s Test #221 164s tick 164s Test #222 164s tick 164s Test #223 164s tick 164s Test #224 164s tick 164s Test #225 164s tick 164s Test #226 164s tick 164s Test #227 164s tick 164s Test #228 164s tick 164s Test #229 164s tick 164s Test #230 164s tick 164s Test #231 164s tick 164s Test #232 164s tick 164s [Code span] 164s Test #233 164s tick 164s Test #234 164s tick 164s Test #235 164s tick 164s Test #236 164s tick 164s Test #237 164s tick 164s Test #238 164s tick 164s Test #239 164s tick 164s Test #240 164s tick 164s Test #241 164s tick 164s Test #242 164s tick 164s Test #243 164s tick 164s Test #244 164s tick 164s Test #245 164s tick 164s [Emphasis and strong emphasis] 164s Test #246 164s tick 164s Test #247 164s tick 164s Test #248 164s tick 164s Test #249 164s tick 164s Test #250 164s tick 164s Test #251 164s tick 164s Test #252 164s tick 164s Test #253 164s tick 164s Test #254 164s tick 164s Test #255 164s tick 164s Test #256 164s tick 164s Test #257 164s tick 164s Test #258 164s tick 164s Test #259 164s tick 164s Test #260 164s tick 164s Test #261 164s tick 164s Test #262 164s tick 164s Test #263 164s tick 164s Test #264 164s tick 164s Test #265 164s tick 164s Test #266 164s tick 164s Test #267 164s tick 164s Test #268 164s tick 164s Test #269 164s tick 164s Test #270 164s tick 164s Test #271 164s tick 164s Test #272 164s tick 164s Test #273 164s tick 164s Test #274 164s tick 164s Test #275 164s tick 164s Test #276 164s tick 164s Test #277 164s tick 164s Test #278 164s tick 164s Test #279 164s tick 164s Test #280 164s tick 164s Test #281 164s tick 164s Test #282 164s tick 164s Test #283 164s tick 164s Test #284 164s tick 164s Test #285 164s tick 164s Test #286 164s tick 164s Test #287 164s tick 164s Test #288 164s tick 164s Test #289 164s tick 164s Test #290 164s tick 164s Test #291 164s tick 164s Test #292 164s tick 164s Test #293 164s tick 164s Test #294 164s tick 164s Test #295 164s tick 164s Test #296 164s tick 164s Test #297 164s tick 164s Test #298 164s tick 164s Test #299 164s tick 164s Test #300 164s tick 164s Test #301 164s tick 164s Test #302 164s tick 164s Test #303 164s tick 164s Test #304 164s tick 164s Test #305 164s tick 164s Test #306 164s tick 164s Test #307 164s tick 164s Test #308 164s tick 164s Test #309 164s tick 164s Test #310 164s tick 164s Test #311 164s tick 164s Test #312 164s tick 164s Test #313 164s tick 164s Test #314 164s tick 164s Test #315 164s tick 164s Test #316 164s tick 164s Test #317 164s tick 164s Test #318 164s tick 164s Test #319 164s tick 164s Test #320 164s tick 164s Test #321 164s tick 164s Test #322 164s tick 164s Test #323 164s tick 164s Test #324 164s tick 164s Test #325 164s tick 164s Test #326 164s tick 164s Test #327 164s tick 164s [Links] 164s Test #328 164s tick 164s Test #329 164s tick 164s Test #330 164s tick 164s Test #331 164s tick 164s Test #332 164s tick 164s Test #333 164s tick 164s Test #334 164s tick 164s Test #335 164s tick 164s Test #336 164s tick 164s Test #337 164s tick 164s Test #338 164s tick 164s Test #339 164s tick 164s Test #340 164s tick 164s Test #341 164s tick 164s Test #342 164s tick 164s Test #343 164s tick 164s Test #344 164s tick 164s Test #345 164s tick 164s Test #346 164s tick 164s Test #347 164s tick 164s Test #348 164s tick 164s Test #349 164s tick 164s Test #350 164s tick 164s Test #351 164s tick 164s Test #352 164s tick 164s Test #353 164s tick 164s Test #354 164s tick 164s Test #355 164s tick 164s Test #356 164s tick 164s Test #357 164s tick 164s Test #358 164s tick 164s Test #359 164s tick 164s Test #360 164s tick 164s Test #361 164s tick 164s Test #362 164s tick 164s Test #363 164s tick 164s Test #364 164s tick 164s Test #365 164s tick 164s Test #366 164s tick 164s Test #367 164s tick 164s Test #368 164s tick 164s Test #369 164s tick 164s Test #370 164s tick 164s Test #371 164s tick 164s Test #372 164s tick 164s Test #373 164s tick 164s Test #374 164s tick 164s Test #375 164s tick 164s [Images] 164s Test #376 164s tick 164s Test #377 164s tick 164s Test #378 164s tick 164s Test #379 164s tick 164s Test #380 164s tick 164s Test #381 164s tick 164s Test #382 164s tick 164s Test #383 164s tick 164s Test #384 164s tick 164s Test #385 164s tick 164s Test #386 164s tick 164s Test #387 164s tick 164s Test #388 164s tick 164s Test #389 164s tick 164s Test #390 164s tick 164s Test #391 164s tick 164s Test #392 164s tick 164s Test #393 164s tick 164s Test #394 164s tick 164s Test #395 164s tick 164s [Autolinks] 164s Test #396 164s tick 164s Test #397 164s tick 164s Test #398 164s tick 164s Test #399 164s tick 164s Test #400 164s tick 164s Test #401 164s tick 164s Test #402 164s tick 164s Test #403 164s tick 164s Test #404 164s tick 164s Test #405 164s tick 164s Test #406 164s tick 164s Test #407 164s tick 164s Test #408 164s tick 164s Test #409 164s tick 164s [Raw HTML] 164s Test #410 164s tick 164s Test #411 164s tick 164s Test #412 164s tick 164s Test #413 164s tick 164s Test #414 164s tick 164s Test #415 164s tick 164s Test #416 164s tick 164s Test #417 164s tick 164s Test #418 164s tick 164s Test #419 164s tick 164s Test #420 164s tick 164s Test #421 164s tick 164s Test #422 164s tick 164s Test #423 164s tick 164s Test #424 164s tick 164s Test #425 164s tick 164s Test #426 164s tick 164s Test #427 164s tick 164s Test #428 164s tick 164s [Hard line breaks] 164s Test #429 164s tick 164s Test #430 164s tick 164s Test #431 164s tick 164s Test #432 164s tick 164s Test #433 164s tick 164s Test #434 164s tick 164s Test #435 164s tick 164s Test #436 164s tick 164s Test #437 164s tick 164s Test #438 164s tick 164s Test #439 164s tick 164s [Soft line breaks] 164s Test #440 164s tick 164s Test #441 164s tick 164s [Strings] 164s Test #442 164s tick 164s Test #443 164s tick 164s Test #444 164s tick 164s 349 tests passed, 95 failed 164s runtime: 0.053250240000000004s 164s autopkgtest [16:19:27]: test command1: -----------------------] 168s autopkgtest [16:19:31]: test command1: - - - - - - - - - - results - - - - - - - - - - 168s command1 PASS 171s autopkgtest [16:19:34]: @@@@@@@@@@@@@@@@@@@@ summary 171s command1 PASS