[INFO] fetching crate braillify 2.0.1...
[INFO] testing braillify-2.0.1 against 1.98.0-beta.1 for beta-1.98-1
[INFO] extracting crate braillify 2.0.1 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate braillify 2.0.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate braillify 2.0.1
[INFO] tweaked toml for crates.io crate braillify 2.0.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate braillify 2.0.1 on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate braillify 2.0.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302
[INFO] running `Command { std: "docker" "start" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling endian-type v0.2.0
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling braillify v2.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling log v0.4.30
[INFO] [stderr]    Compiling radix_trie v0.3.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling phf_macros v0.13.1
[INFO] [stderr]    Compiling phf v0.13.1
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling rustyline v18.0.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.57s
[INFO] running `Command { std: "docker" "inspect" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling toml_edit v0.25.11+spec-1.1.0
[INFO] [stderr]    Compiling rstest_macros v0.26.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling escargot v0.5.15
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling futures-timer v3.0.4
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling rustyline v18.0.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling insta v1.47.2
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling phf_macros v0.13.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling phf v0.13.1
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling braillify v2.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling rstest v0.26.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 58.31s
[INFO] running `Command { std: "docker" "inspect" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/braillify-3a2dc8cb5ce4d540)
[INFO] [stdout] 
[INFO] [stdout] running 1917 tests
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_01 ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_multi_cell ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_03 ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_04 ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_05 ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_06 ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_08 ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_09 ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_10 ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_01_english ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_02_digit ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_11 ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_03_symbol ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_05_space ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_02 ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_04_korean_part ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_06_symbol_square ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_13_tab ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_15_fullwidth_latin ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_14_cjk_punct_close ... ok
[INFO] [stdout] test char_shortcut::test::encode_char_shortcut_single_cell::case_07 ... ok
[INFO] [stdout] test char_struct::test::char_type_new_returns_specific_variant::case_3 ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_10_middle_dot ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_08_latex_backslash ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_11_fullwidth_colon ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_07_latex_dollar ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_12_em_dash ... ok
[INFO] [stdout] ⠣⠒⠉⠻test char_struct::test::char_type_new_returns_specific_variant::case_4 ... ok
[INFO] [stdout] test char_struct::test::char_type_new_returns_specific_variant::case_2 ... ok
[INFO] [stdout] test char_struct::test::char_type_new_returns_specific_variant::case_6 ... ok
[INFO] [stdout] test char_struct::test::cjk_symbols_and_punctuation_classified_as_symbol ... ok
[INFO] [stdout] test char_struct::test::dollar_and_backslash_classified_as_symbol ... ok
[INFO] [stdout] test cli::tests::process_repl_line_empty_input ... ok
[INFO] [stdout] test char_struct::test::char_type_new_returns_specific_variant::case_5 ... ok
[INFO] [stdout] test char_struct::test::char_type_new_returns_specific_variant::case_1 ... ok
[INFO] [stdout] test cli::tests::process_repl_line_reports_encoder_error ... ok
[INFO] [stdout] test char_struct::test::latex_delimiters_classified_as_symbol::case_1 ... ok
[INFO] [stdout] test cli::tests::process_repl_line_encodes_valid_input ... ok
[INFO] [stdout] test char_struct::test::latex_delimiters_classified_as_symbol::case_2 ... ok
[INFO] [stdout] test char_struct::test::char_type_new_classifies_known_char::case_09_cjk_unified ... ok
[INFO] [stdout] test char_struct::test::test_char_type_every_branch ... ok
[INFO] [stdout] test cli::tests::run_cli_with_argument_runs_one_shot ... ok
[INFO] [stdout] test cli::tests::test_run_one_shot_invalid_input ... ok
[INFO] [stdout] test coverage_targeted_tests::detect_ipa_context_slashes_without_ipa ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_math_mode_single_brackets ... ok
[INFO] [stdout] test coverage_targeted_tests::decompose_accented_latin_not_called_for_plain_input ... ok
[INFO] [stdout] test coverage_targeted_tests::decompose_accented_latin_called_for_accented_input ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_math_mode_single_lowercase ... ok
[INFO] [stdout] test coverage_targeted_tests::detect_ipa_context_variants::case_2_brackets_ipa ... ok
[INFO] [stdout] test coverage_targeted_tests::detect_ipa_context_variants::case_1_no_markers ... ok
[INFO] [stdout] test coverage_targeted_tests::detect_ipa_context_variants::case_3_brackets_without_ipa_then_slashes_ipa ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_number_mode_roman_lowercase ... ok
[INFO] [stdout] test coverage_targeted_tests::detect_ipa_context_variants::case_4_slashes_with_ipa ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_math_mode_multichar_strips_spaces ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_number_mode_roman_uppercase ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_number_mode_non_roman_falls_through ... ok
[INFO] [stdout] test cli::tests::run_cli_with_invalid_input_propagates_error ... ok
[INFO] [stdout] test cli::tests::test_cli_parsing_with_input ... ok
[INFO] [stdout] test cli::tests::test_braillify_invalid_input ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_object_symbol_mode_each_glyph::case_1_circle ... ok
[INFO] [stdout] test cli::tests::test_cli_parsing_without_input ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_object_symbol_mode_each_glyph::case_2_cross ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_object_symbol_mode_each_glyph::case_3_triangle ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_object_symbol_mode_each_glyph::case_4_square ... ok
[INFO] [stdout] test coverage_targeted_tests::formatting_kind_markers_all_variants::case_2_bold ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_to_braille_font_basic ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_object_symbol_mode_non_matching_falls_through ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_with_options_explicit_default_mode ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_to_unicode_with_formatting_empty ... ok
[INFO] [stdout] ⠣⠒⠉⠻test coverage_targeted_tests::formatting_kind_markers_all_variants::case_3_custom1 ... ok
[INFO] [stdout] test coverage_targeted_tests::formatting_kind_markers_all_variants::case_4_custom2 ... ok
[INFO] [stdout] test coverage_targeted_tests::formatting_mark_wrap_absorbs_leading_digits ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_with_formatting_empty_spans_delegates ... ok
[INFO] [stdout] test coverage_targeted_tests::formatting_kind_markers_all_variants::case_1_emphasis ... ok
[INFO] [stdout] test coverage_targeted_tests::formatting_mark_preserved_when_units_insufficient ... ok
[INFO] [stdout] test cli::tests::test_run_one_shot_success ... ok
[INFO] [stdout] test coverage_targeted_tests::encode_math_mode_single_math_symbol ... ok
[INFO] [stdout] test char_struct::test::test_char_type_proptest ... ok
[INFO] [stdout] test coverage_targeted_tests::latex_math_comprehensive_sweep ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_block_mapping::case_1_bold_capital_a ... ok
[INFO] [stdout] test coverage_targeted_tests::math_mode_comprehensive_sweep ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_block_mapping::case_3_bold_digit_zero ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_digits::case_1_bold_zero ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_digits::case_3_bold_nine ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_block_mapping::case_4_passthrough_ascii ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_digits::case_6_sans_serif_bold_zero ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_digits::case_7_monospace_zero ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_block_mapping::case_2_bold_small_a ... ok
[INFO] [stdout] test coverage_targeted_tests::negation_combiner_absent_short_circuits ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_string_with_trigger ... ok
[INFO] [stdout] test encoder::tests::inject_formatting_not_utf8_boundary ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_planck_h ... ok
[INFO] [stdout] test encoder::tests::encode_with_formatting_empty_spans_short_circuits ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_digits::case_4_double_struck_zero ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_string_no_trigger ... ok
[INFO] [stdout] test encoder::tests::inject_formatting_invalid_start_ge_end ... ok
[INFO] [stdout] test encoder::tests::inject_formatting_with_preencoded_token_passes_through ... ok
[INFO] [stdout] test english_logic::tests::digital_notation_signature_strong_markers::case_4_underscore_plus_dot ... ok
[INFO] [stdout] test encoder::tests::inject_formatting_out_of_bounds ... ok
[INFO] [stdout] test english_logic::tests::digital_notation_signature_strong_markers::case_5_pure_underscore ... ok
[INFO] [stdout] test english_logic::tests::english_symbol_detection_matches_lookup_table::case_2 ... ok
[INFO] [stdout] test encoder::tests::inject_formatting_spans_unmappable_to_tokens ... ok
[INFO] [stdout] test english_logic::tests::english_symbol_detection_matches_lookup_table::case_3 ... ok
[INFO] [stdout] test english_logic::tests::english_symbol_detection_matches_lookup_table::case_4 ... ok
[INFO] [stdout] test english_logic::tests::next_ascii_letter_or_digit_checks_future_ascii::case_1_contiguous_ascii ... ok
[INFO] [stdout] test english_logic::tests::next_ascii_letter_or_digit_checks_future_ascii::case_2_skip_english_symbol ... ok
[INFO] [stdout] test english_logic::tests::next_ascii_letter_or_digit_checks_future_ascii::case_3_remaining_word_ascii ... ok
[INFO] [stdout] test english_logic::tests::next_ascii_letter_or_digit_checks_future_ascii::case_4_hangul_following ... ok
[INFO] [stdout] test english_logic::tests::next_ascii_letter_or_digit_checks_future_ascii::case_5_remaining_word_with_symbol_then_ascii ... ok
[INFO] [stdout] test english_logic::tests::next_ascii_letter_or_digit_checks_future_ascii::case_6_remaining_word_only_symbols ... ok
[INFO] [stdout] test english_logic::tests::prev_ascii_letter_or_digit_skips_english_symbols::case_1_skip_english_symbol_to_ascii ... ok
[INFO] [stdout] test english_logic::tests::prev_ascii_letter_or_digit_skips_english_symbols::case_2_korean_neighbor_blocks ... ok
[INFO] [stdout] test english_logic::tests::requires_single_letter_continuation_distinguishes_letters::case_1_lowercase_b_requires ... ok
[INFO] [stdout] test english_logic::tests::requires_single_letter_continuation_distinguishes_letters::case_2_lowercase_a_excluded ... ok
[INFO] [stdout] test english_logic::tests::requires_single_letter_continuation_distinguishes_letters::case_3_uppercase_excluded ... ok
[INFO] [stdout] test english_logic::tests::should_keep_english_mode_for_symbol_passes_through ... ok
[INFO] [stdout] test english_logic::tests::should_render_symbol_as_english_for_closing_parenthesis::case_1_stack_top_true ... ok
[INFO] [stdout] test english_logic::tests::should_render_symbol_as_english_for_closing_parenthesis::case_2_stack_top_false ... ok
[INFO] [stdout] test english_logic::tests::should_render_symbol_as_english_for_comma_requires_ascii_neighbors::case_1_both_ascii_in_english_mode ... ok
[INFO] [stdout] test english_logic::tests::should_render_symbol_as_english_for_comma_requires_ascii_neighbors::case_2_not_in_english_mode ... ok
[INFO] [stdout] test english_logic::tests::should_render_symbol_as_english_for_comma_requires_ascii_neighbors::case_3_korean_neighbor ... ok
[INFO] [stdout] test english_logic::tests::skip_and_force_terminator_sets_are_separate ... ok
[INFO] [stdout] test fraction::tests::encode_fraction_basic ... ok
[INFO] [stdout] test fraction::tests::encode_number_string_happy_path ... ok
[INFO] [stdout] test fraction::tests::encode_number_string_rejects_non_digit ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_basic_chars ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_each_codepoint ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_false::case_1 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_false::case_2 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_false::case_3 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_false::case_4 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_false::case_5 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_false::case_6 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_true::case_1 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_rejects_double_slash ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_true::case_2 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_true::case_3 ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_digits::case_5_sans_serif_zero ... ok
[INFO] [stdout] test english_logic::tests::digital_notation_signature_strong_markers::case_1_double_slash ... ok
[INFO] [stdout] test english_logic::tests::english_symbol_detection_matches_lookup_table::case_1 ... ok
[INFO] [stdout] test english_logic::tests::should_render_symbol_as_english_for_parentheses ... ok
[INFO] [stdout] test coverage_targeted_tests::normalize_math_alphanumeric_digits::case_2_bold_one ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_true::case_4 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_true::case_5 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_true::case_6 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_true::case_7 ... ok
[INFO] [stdout] test fraction::tests::is_unicode_fraction_true::case_8 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_02 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_03 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_01 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_05 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_06 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_07 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_09 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_08 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_10 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_11 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_15 ... ok
[INFO] [stdout] test english_logic::tests::digital_notation_signature_strong_markers::case_3_hash ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_04 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_18 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_19 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_12 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_21 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_22 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_14 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_16 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_23 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_17 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_24 ... ok
[INFO] [stdout] test english_logic::tests::digital_notation_signature_strong_markers::case_2_at_sign ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_20 ... ok
[INFO] [stdout] test fraction::tests::parse_decomposed_fraction_empty ... ok
[INFO] [stdout] test fraction::tests::parse_decomposed_fraction_leading_whitespace_no_seal ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_13 ... ok
[INFO] [stdout] test fraction::tests::parse_decomposed_fraction_trailing_whitespace_allowed ... ok
[INFO] [stdout] test fraction::tests::parse_decomposed_fraction_only_slash ... ok
[INFO] [stdout] test fraction::tests::parse_decomposed_fraction_whitespace_seals_then_more_digits_fail::case_2_denom_seal_then_more ... ok
[INFO] [stdout] test fraction::tests::parse_decomposed_fraction_whitespace_seals_then_more_digits_fail::case_1_numer_seal_then_more ... ok
[INFO] [stdout] test fraction::tests::parse_latex_fraction_complete ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_26 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_27 ... ok
[INFO] [stdout] test fraction::tests::parse_latex_fraction_invalid_returns_none::case_5_trailing_letter_before_close ... ok
[INFO] [stdout] test fraction::tests::parse_latex_fraction_invalid_returns_none::case_6_missing_close_with_punct ... ok
[INFO] [stdout] test fraction::tests::parse_latex_fraction_with_whole_part ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_01 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_03 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_02 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_04 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_07 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_08 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_09 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_11 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_12 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_13 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_14 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_15 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_non_fraction_returns_none::case_1 ... ok
[INFO] [stdout] test fraction::tests::parse_decomposed_fraction_double_slash ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_non_fraction_returns_none::case_2 ... ok
[INFO] [stdout] test fraction::tests::normalize_digit_table::case_25 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_non_fraction_returns_none::case_4 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_non_fraction_returns_none::case_3 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_non_fraction_returns_none::case_6 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_simple ... ok
[INFO] [stdout] test fraction::tests::read_braced_content_invalid_returns_none::case_2_missing_open ... ok
[INFO] [stdout] test fraction::tests::read_braced_content_invalid_returns_none::case_1_empty_braces ... ok
[INFO] [stdout] test fraction::tests::read_braced_content_with_whitespace ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_10 ... ok
[INFO] [stdout] test fraction::tests::test_consume_whitespace ... ok
[INFO] [stdout] test fraction::tests::parse_latex_fraction_invalid_returns_none::case_1_no_open_dollar ... ok
[INFO] [stdout] test fraction::tests::parse_latex_fraction_invalid_returns_none::case_2_no_close_dollar ... ok
[INFO] [stdout] test fraction::tests::parse_latex_fraction_invalid_returns_none::case_3_extra_content ... ok
[INFO] [stdout] test fraction::tests::parse_latex_fraction_invalid_returns_none::case_4_no_frac_keyword ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_05 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_common::case_06 ... ok
[INFO] [stdout] test fraction::tests::parse_unicode_fraction_non_fraction_returns_none::case_5 ... ok
[INFO] [stdout] test fraction::tests::read_braced_content_invalid_returns_none::case_3_non_digit ... ok
[INFO] [stdout] test fraction::tests::read_braced_content_invalid_returns_none::case_4_unterminated ... ok
[INFO] [stdout] test fraction::tests::test_consume_whitespace_no_whitespace ... ok
[INFO] [stdout] test fraction::tests::test_consume_whitespace_only_whitespace ... ok
[INFO] [stdout] test fraction::tests::test_consume_whitespace_tabs_newlines ... ok
[INFO] [stdout] test fraction::tests::test_encode_fraction_double_digit ... ok
[INFO] [stdout] test fraction::tests::test_encode_fraction_in_context_invalid_denominator ... ok
[INFO] [stdout] test fraction::tests::test_encode_mixed_fraction_invalid_denominator ... ok
[INFO] [stdout] test fraction::tests::test_encode_fraction_in_context_invalid_numerator ... ok
[INFO] [stdout] test fraction::tests::test_encode_mixed_fraction_invalid_numerator ... ok
[INFO] [stdout] test fraction::tests::test_encode_fraction_invalid_denominator ... ok
[INFO] [stdout] test fraction::tests::test_encode_mixed_fraction_invalid_whole ... ok
[INFO] [stdout] test fraction::tests::test_encode_mixed_fraction_simple ... ok
[INFO] [stdout] test fraction::tests::test_encode_number_string_empty ... ok
[INFO] [stdout] test fraction::tests::test_encode_number_string_invalid_mixed ... ok
[INFO] [stdout] test fraction::tests::test_encode_number_string_invalid_non_digit ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_empty_denominator ... ok
[INFO] [stdout] test fraction::tests::test_encode_fraction_invalid_numerator ... ok
[INFO] [stdout] test fraction::tests::test_encode_fraction_simple ... ok
[INFO] [stdout] test fraction::tests::test_encode_fraction_in_context_simple ... ok
[INFO] [stdout] test fraction::tests::test_encode_number_string_valid ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_extra_content_after ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_mixed_double_digit ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_mixed_with_superscript ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_no_closing_brace_numerator ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_no_backslash ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_no_opening_brace_numerator ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_no_ending_dollar ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_non_digit_numerator ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_no_starting_dollar ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_only_dollars ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_with_leading_trailing_whitespace ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_with_whitespace ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_wrong_command ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_with_superscript ... ok
[INFO] [stdout] test fraction::tests::test_parse_unicode_fraction_non_ascii_digit_denominator ... ok
[INFO] [stdout] test fraction::tests::test_parse_unicode_fraction_multi_slash ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_simple ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_non_digit_denominator ... ok
[INFO] [stdout] test fraction::tests::test_parse_unicode_fraction_non_ascii_digit_numerator ... ok
[INFO] [stdout] test fraction::tests::test_parse_unicode_fraction_slash_only ... ok
[INFO] [stdout] test fraction::tests::test_read_braced_content_empty ... ok
[INFO] [stdout] test fraction::tests::test_read_braced_content_no_opening_brace ... ok
[INFO] [stdout] test fraction::tests::test_read_braced_content_valid ... ok
[INFO] [stdout] test fraction::tests::test_read_braced_content_with_leading_whitespace ... ok
[INFO] [stdout] test fraction::tests::test_read_braced_content_with_superscript ... ok
[INFO] [stdout] test fraction::tests::test_read_braced_content_with_whitespace ... ok
[INFO] [stdout] test fraction::tests::test_read_braced_content_no_closing_brace ... ok
[INFO] [stdout] test fraction::tests::test_read_braced_content_with_non_digit ... ok
[INFO] [stdout] test ipa::tests::ipa_encode_char_none_for_unsupported ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_01_giyeok ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_with_subscript ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_03_digeut ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_02_nieun ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_05_mieum ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_04_rieul ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_08_jieut ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_09_chieut ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_06_bieup ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_10_kieuk ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_empty_numerator ... ok
[INFO] [stdout] test ipa::tests::ipa_input_without_korean_uses_plain_encode ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_empty_string ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_07_siot ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_12_pieup ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_11_tieut ... ok
[INFO] [stdout] test jauem::choseong::test::test_encode_choseong::case_13_hieut ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_01_giyeok ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_02_nieun ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_03_digeut ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_04_rieul ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_05_mieum ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_06_bieup ... ok
[INFO] [stdout] test fraction::tests::test_parse_latex_fraction_mixed ... ok
[INFO] [stdout] test korean_char::tests::korean_char_encode_various_syllables ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_07_siot ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_09_jieut ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_10_chieut ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_11_kieuk ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_12_tieut ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_02 ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_13_pieup ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_04 ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_14_hieut ... ok
[INFO] [stdout] test korean_part::tests::accepts_jongseong_jamo ... ok
[INFO] [stdout] test korean_part::tests::accepts_jungseong_jamo ... ok
[INFO] [stdout] test jauem::jongseong::test::test_encode_jongseong::case_08_ieung ... ok
[INFO] [stdout] test math_symbol_shortcut::test::encode_char_math_symbol_shortcut_table::case_1 ... ok
[INFO] [stdout] test korean_part::tests::rejects_non_korean_part_input ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_05 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_06 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_10 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_13 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_09 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_15 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::encode_char_math_symbol_shortcut_table::case_3 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_11 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_12 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::encode_char_math_symbol_shortcut_table::case_2 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_07 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_08 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_01 ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_14 ... ok
[INFO] [stdout] test moeum::jungsong::test::test_encode_jungsong::case_1_ah ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_rejects_ascii_letter ... ok
[INFO] [stdout] test math_symbol_shortcut::test::is_math_symbol_char_recognizes_math_chars::case_03 ... ok
[INFO] [stdout] test moeum::jungsong::test::test_encode_jungsong::case_4_yeo ... ok
[INFO] [stdout] test moeum::jungsong::test::test_encode_jungsong::case_2_ya ... ok
[INFO] [stdout] test moeum::jungsong::test::test_encode_jungsong::case_5_o ... ok
[INFO] [stdout] test moeum::jungsong::test::test_encode_jungsong::case_7_u ... ok
[INFO] [stdout] test rules::emit::tests::emit_end_of_stream_triple_big_english_safety_net ... ok
[INFO] [stdout] test rules::context::tests::encoding_mode_from_str_unknown_returns_err ... ok
[INFO] [stdout] test moeum::jungsong::test::test_encode_jungsong::case_3_eo ... ok
[INFO] [stdout] test moeum::jungsong::test::test_encode_jungsong::case_6_yo ... ok
[INFO] [stdout] test rules::context::tests::encoding_mode_from_str_all_variants ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_08_mixed_upper_capitalized ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_11_number_decimal ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_01_korean_greeting ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_10_number_with_comma ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_15_word_shortcut_geureona ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_14_word_shortcut_geuraeseo ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_04_english_indicator_sns ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_02_english_words ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_16_latex_fraction_half ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_05_english_indicator_atm ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_19_parenthesized_english_bmi ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_17_math_symbols_korean_sentence ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_06_english_indicator_bmi_paren ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_07_mixed_upper_atm ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_23_kg_bare ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_21_standalone_jamo ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_20_parenthesized_english_chejilryang_bmi ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_12_multi_word_korean ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_13_korean_with_newline ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_22_kg_parenthesized ... ok
[INFO] [stdout] test rules::emit::tests::fraction_token_encodes ... ok
[INFO] [stdout] test rules::emit::tests::extract_context_uses_prev_and_remaining_words ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_09_mixed_upper_title ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_24_roma_bracket ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_18_phone_number_range ... ok
[INFO] [stdout] test rules::emit::tests::mode_events_emit_expected_bytes ... ok
[INFO] [stdout] test rules::emit::tests::token_is_math_word_returns_false_for_non_word_non_preencoded ... ok
[INFO] [stdout] test rules::engine::tests::engine_apply_phase_skips_disabled_rules ... ok
[INFO] [stdout] test rules::engine::tests::engine_default_constructs_empty ... ok
[INFO] [stdout] test rules::engine::tests::engine_registers_and_applies ... ok
[INFO] [stdout] test rules::engine::tests::engine_disables_rules ... ok
[INFO] [stdout] test rules::emit::tests::emit_round_trip::case_03_triple_uppercase_passage ... ok
[INFO] [stdout] test rules::english_shortform::tests::kbs_does_not_collide ... ok
[INFO] [stdout] test rules::engine::tests::engine_apply_skip_disabled_nonmatching_and_final_skip ... ok
[INFO] [stdout] test rules::engine::tests::engine_sorts_by_phase_and_priority ... ok
[INFO] [stdout] test rules::english_shortform::tests::case_insensitive_input ... ok
[INFO] [stdout] test rules::english_shortform::tests::cd_collides_with_could ... ok
[INFO] [stdout] test rules::english_shortform::tests::non_ascii_excluded ... ok
[INFO] [stdout] test rules::english_shortform::tests::lp_does_not_collide ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::inserts_separator_for_do_ye ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::inserts_separator_for_seo_ye ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::meta_is_correct ... ok
[INFO] [stdout] test rules::english_shortform::tests::mp_does_not_collide ... ok
[INFO] [stdout] test rules::english_shortform::tests::single_letter_excluded ... ok
[INFO] [stdout] test rules::english_shortform::tests::td_collides_with_today ... ok
[INFO] [stdout] test rules::english_shortform::tests::sns_does_not_collide ... ok
[INFO] [stdout] test rules::english_shortform::tests::hm_collides_with_him ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::inserts_separator_for_a_ye ... ok
[INFO] [stdout] test rules::english_shortform::tests::wd_collides_with_would ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::rule11_apply_emits_separator ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::rule11_matches_false_at_end_of_word ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::rule11_matches_false_for_non_korean_ctx ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::rule11_matches_vowel_ye_pattern::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::rule11_matches_vowel_ye_pattern::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::rule11_matches_vowel_ye_pattern::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::rule11_phase_and_priority ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::skips_when_current_has_jongseong ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::skips_when_next_is_non_korean ... ok
[INFO] [stdout] test rules::english_shortform::tests::tv_does_not_collide ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::rule11_matches_vowel_ye_pattern::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::golden_test_alignment::case_1_ya_ae ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::golden_test_alignment::case_2_sohwa_aek ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::golden_test_alignment::case_3_su_aek ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::golden_test_alignment ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_matches_triggering_vowel_ae::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::meta_is_correct ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_apply_separator_paths::case_2_hwa_followed_by_aek ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_apply_separator_paths::case_3_su_followed_by_aek ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_apply_separator_paths::case_5_a_non_triggering ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_apply_separator_paths::case_1_ya_followed_by_ae ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_apply_separator_paths::case_6_eo_non_triggering ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_apply_separator_paths::case_8_next_not_ae_skipped ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_matches_triggering_vowel_ae::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_matches_triggering_vowel_ae::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_11::tests::skips_when_next_is_not_ye ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_apply_separator_paths::case_4_weo_followed_by_aem ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_apply_separator_paths::case_7_current_has_jong_skipped ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_matches_triggering_vowel_ae::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::encodes_syllable_abbreviations::case_3_da ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::encodes_syllable_abbreviations::case_4_sa ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_matches_triggering_vowel_ae::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::encodes_syllable_abbreviations::case_5_ha ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::encodes_syllable_abbreviations::case_6_geot ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_matches_triggering_vowel_ae::case_6 ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::encodes_syllable_abbreviations::case_7_yeong ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_matches_triggering_vowel_ae::case_7 ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::encodes_syllable_abbreviations::case_1_ga ... ok
[INFO] [stdout] test rules::korean::rule_12::tests::rule12_matches_triggering_vowel_ae::case_8 ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::encodes_syllable_abbreviations::case_2_na ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::encodes_syllable_abbreviations::case_8_eun ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::has_abbreviation_paths::case_1_known_ga ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::has_abbreviation_paths::case_4_unknown_gon ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::has_abbreviation_paths::case_3_known_yeong ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::has_abbreviation_paths::case_2_known_geot ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::has_abbreviation_paths::case_5_unknown_ascii ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::encodes_syllable_abbreviations::case_9_in_char ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::golden_test_alignment ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::has_abbreviation_paths::case_6_unknown_digit ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::ga_is_not_target ... ok
[INFO] [stdout] test rules::korean::rule_13::tests::non_abbreviated_char_returns_error ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::rule14_apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::rule14_matches_target_then_o_initial::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::golden_test_alignment ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::does_not_suppress_for_non_target ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::identifies_all_target_syllables ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::does_not_suppress_when_next_is_consonant_initial ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::is_no_abbrev_target_non_hangul_returns_false::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::is_no_abbrev_target_non_hangul_returns_false::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::is_no_abbrev_target_non_hangul_returns_false::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::rule14_apply_emits_for_target ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::rule14_matches_target_then_o_initial::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::rule14_matches_target_then_o_initial::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::rule14_matches_target_then_o_initial::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::rule14_matches_target_then_o_initial::case_6 ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::rule14_matches_target_then_o_initial::case_7 ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::meta_is_correct ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::identifies_all_exception_chars ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::golden_test_alignment::case_1_kkeot_double_ss ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::golden_test_alignment::case_3_kkeot_eoyo ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::golden_test_alignment::case_2_geot_variant ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::rejects_non_exception_chars::case_3_seong_not_syeong ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::rejects_non_exception_chars::case_4_jeong_not_jyeong ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::golden_test_alignment::case_1_geuraeseo ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::rejects_non_exception_chars::case_1_ga ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::suppresses_when_next_is_vowel_initial ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_16::tests::rejects_non_exception_chars::case_2_na ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::golden_test_alignment::case_2_geureona ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::golden_test_alignment::case_3_geurigo ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_finds_each_abbreviation::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_finds_each_abbreviation::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_finds_each_abbreviation::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_finds_each_abbreviation::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_finds_each_abbreviation::case_7 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_returns_none_for_unknown ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_finds_each_abbreviation::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_14::tests::rule14_matches_target_then_o_initial::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::no_match_for_non_abbreviation::case_2_english ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_finds_each_abbreviation::case_6 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_matches_prefix_only ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::match_word_shortcut_short_word_no_match ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::matches_all_word_abbreviations::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::matches_all_word_abbreviations::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::matches_all_word_abbreviations::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::rule18_matches_at_word_start_only ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::matches_all_word_abbreviations::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::matches_all_word_abbreviations::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::matches_all_word_abbreviations::case_6 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::matches_all_word_abbreviations::case_7 ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::matches_with_suffix ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::no_match_for_non_abbreviation::case_1_korean_unknown ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::rule18_apply_emits_codes_on_match ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::rule18_meta_and_phase ... ok
[INFO] [stdout] test rules::korean::rule_18::tests::rule18_apply_skips_on_no_match ... ok
[INFO] [stdout] test rules::korean::rule_19::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_19::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_01_giyeok ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_03_digeut ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_02_nieun ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_04_rieul ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_05_mieum ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_06_bieup ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_07_siot ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_09_chieut ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_11_tieut ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_13_hieut ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::ieung_is_not_in_choseong_map ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_08_jieut ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_12_pieup ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_apply_handles_silent_ieung::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_apply_handles_silent_ieung::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::golden_test_alignment ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_apply_handles_silent_ieung::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::encodes_all_13_basic_consonants::case_10_kieuk ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_apply_handles_silent_ieung::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::invalid_char_returns_error ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_matches_only_for_korean_syllables::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_matches_only_for_korean_syllables::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_matches_only_for_korean_syllables::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_matches_only_for_korean_syllables::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::historical_letter_symbol_not_found_returns_none ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_meta_phase_priority ... ok
[INFO] [stdout] test rules::korean::rule_20::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_20::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_21::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::rule23_meta_and_phase_getters ... ok
[INFO] [stdout] test rules::korean::rule_21::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::rule23_bracket_gloss_via_encode ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::gloss_context_emits_reading_then_symbol ... ok
[INFO] [stdout] test rules::korean::rule_22::tests::apply_emits_for_old_consonant_body ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::rule23_special_pair_handling::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_22::tests::apply_returns_skip_for_unknown_symbol ... ok
[INFO] [stdout] test rules::korean::rule_22::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::silent_ieung_detected ... ok
[INFO] [stdout] test rules::korean::rule_1::tests::rule1_matches_only_for_korean_syllables::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::is_historical_gloss_context_true_for_bracketed_word ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::should_skip_hanja_in_context_paths ... ok
[INFO] [stdout] test rules::korean::rule_24::tests::apply_skip_when_symbol_not_in_mappings ... ok
[INFO] [stdout] test rules::korean::rule_24::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::rule23_apply_byeop_followed_by_ja_emits_special ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::rule23_apply_skip_when_no_historical_match ... ok
[INFO] [stdout] test rules::korean::rule_25::tests::apply_skip_when_not_in_mappings ... ok
[INFO] [stdout] test rules::korean::rule_25::tests::apply_emits_for_middle_korean_vowel ... ok
[INFO] [stdout] test rules::korean::rule_25::tests::apply_silent_hanja_consumed_without_emit ... ok
[INFO] [stdout] test rules::korean::rule_25::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_26::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_26::tests::apply_emits_for_legacy_symbol_in_mappings ... ok
[INFO] [stdout] test rules::korean::rule_23::tests::rule23_special_pair_handling::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_26::tests::apply_standalone_i_after_hanja ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::encodes_english_letters::case_1_lower_a ... ok
[INFO] [stdout] test rules::korean::rule_27::tests::apply_emits_geoseong_in_middle_korean_mode ... ok
[INFO] [stdout] test rules::korean::rule_27::tests::apply_emits_sangseong_for_full_width_colon ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_27::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_27::tests::has_historical_context_via_own_word ... ok
[INFO] [stdout] test rules::korean::rule_27::tests::has_historical_context_via_prev_word ... ok
[INFO] [stdout] test rules::korean::rule_27::tests::has_historical_context_via_remaining_word ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::invalid_returns_error::case_1_digit ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::rule28_apply_skip_for_non_english_ctx ... ok
[INFO] [stdout] test rules::korean::rule_27::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::rule28_multi_cell_word_middle_direct ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::uppercase_indicator_paths::case_1_single_letter ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::uppercase_indicator_paths::case_3_passage_run ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::uppercase_indicator_paths::case_2_word_two_letters ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::uppercase_indicator_paths::case_4_no_indicator_lower ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::rule28_multi_cell_via_pyeongchang ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::prev_word_is_numeric_paths::case_2_digits_with_comma ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::indicator_values ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::prev_word_is_numeric_paths::case_1_pure_digits ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::prev_word_is_numeric_paths::case_3_decimal ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::prev_word_is_numeric_paths::case_4_compound_punctuation ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::prev_word_is_numeric_paths::case_7_letters_only ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::golden_test_roman_in_korean ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::prev_word_is_numeric_paths::case_5_empty_string ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_apply_continuation_after_numeric_prev_word ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::prev_word_is_numeric_paths::case_6_digits_with_letter ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_apply_continuation_marker_path ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_apply_no_change_when_exiting ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_matches_false_when_already_in_english_with_english_char ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_matches_false_when_indicator_off ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_matches_when_entering_english ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_matches_when_exiting_english ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_meta_and_phase ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::decompose_double_consonant::case_1_ssang_giyeok ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_prev_word_numeric_drives_roman_indicator ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::decompose_double_consonant::case_2_ssang_digeut ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::decompose_double_consonant::case_3_ssang_bieup ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::decompose_double_consonant::case_7_single_hieut_none ... ok
[INFO] [stdout] test rules::korean::rule_29::tests::rule29_apply_enters_english_with_indicator ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::decompose_double_consonant::case_4_ssang_siot ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::decompose_returns_none_for_single ... ok
[INFO] [stdout] test rules::korean::rule_27::tests::rule27_apply_skip_for_unrelated_symbol ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::decompose_double_consonant::case_5_ssang_jieut ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::encodes_english_letters::case_2_lower_z ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::encodes_english_letters::case_3_upper_a_as_lowercase ... ok
[INFO] [stdout] test rules::korean::rule_28::tests::invalid_returns_error::case_2_syllable ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::decompose_double_consonant::case_6_single_giyeok_none ... ok
[INFO] [stdout] test rules::korean::rule_24::tests::rule24_meta_phase_priority ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_01_ssang_giyeok ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_02_ssang_digeut ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_04_ssang_siot ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_03_ssang_bieup ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_05_ssang_jieut ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_07_single_digeut ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_08_single_bieup ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_09_single_siot ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_10_single_jieut ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rejects_single_consonants ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_apply_emits_double_indicator::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_apply_emits_double_indicator::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_apply_emits_double_indicator::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_apply_emits_double_indicator::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_apply_no_emit_for_single_choseong ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_apply_emits_double_indicator::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_matches_double_choseong::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_matches_double_choseong::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_matches_double_choseong::case_6 ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_matches_double_choseong::case_7 ... ok
[INFO] [stdout] test rules::korean::rule_31::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_31::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_01_giyeok ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_matches_double_choseong::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_31::tests::rule31_lowercase_greek_no_korean_context ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_03_digeut ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_matches_double_choseong::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_31::tests::rule31_uppercase_single_greek_no_korean_context ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::identifies_all_double_consonants::case_06_single_giyeok ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_matches_double_choseong::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::rule2_meta_phase_priority ... ok
[INFO] [stdout] test rules::korean::rule_31::tests::rule31_uppercase_single_greek_in_korean_context ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_02_nieun ... ok
[INFO] [stdout] test rules::korean::rule_31::tests::rule31_uppercase_run_in_korean_context ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_05_mieum ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_06_bieup ... ok
[INFO] [stdout] test rules::korean::rule_31::tests::rule31_uppercase_run_no_korean_context ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::decomposes_correctly ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_07_siot ... ok
[INFO] [stdout] test rules::korean::rule_2::tests::golden_test_alignment ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_09_jieut ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_08_ieung ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_10_chieut ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_11_kieuk ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_12_tieut ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_13_pieup ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_14_hieut ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_compound_jongseong::case_2_nieun_jieut ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_double_jongseong_ss ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::golden_test_alignment ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_compound_jongseong::case_1_giyeok_siot ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_compound_jongseong::case_3_nieun_hieut ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_compound_jongseong::case_5_bieup_siot ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_apply_emits_jongseong::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_apply_emits_jongseong::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_apply_no_emit_for_syllable_without_jongseong ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_matches_only_for_syllable_with_jongseong::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_matches_only_for_syllable_with_jongseong::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_matches_only_for_syllable_with_jongseong::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_meta_phase_priority ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::continuation_chars::case_1_period ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::continuation_chars::case_3_space ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::continuation_chars::case_2_comma ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::encodes_digits::case_1_one ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::encodes_digits::case_2_zero ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_double_jongseong_gg ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::invalid_returns_error::case_1_ascii_letter ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::invalid_returns_error::case_2_syllable ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_apply_emits_jongseong::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_apply_emits_jongseong::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_compound_jongseong::case_4_rieul_giyeok ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::continuation_chars::case_4_hyphen ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::rule3_matches_only_for_syllable_with_jongseong::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::golden_test_alignment::case_1_single_digit ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::invalid_digit ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::rule40_apply_skip_for_non_number_ctx ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::golden_test_alignment::case_3_decimal ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::golden_test_alignment::case_2_two_digit ... ok
[INFO] [stdout] test rules::korean::rule_41::tests::meta_is_correct ... ok
[INFO] [stdout] test rules::korean::rule_41::tests::golden_test_alignment::case_1_thousand_with_comma ... ok
[INFO] [stdout] test rules::korean::rule_41::tests::scan_prefix_paths::case_2_ascii_prefix ... ok
[INFO] [stdout] test rules::korean::rule_41::tests::golden_test_alignment::case_2_decimal_with_period ... ok
[INFO] [stdout] test rules::korean::rule_44::tests::golden_test_alignment ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::number_with_ascii_unit_prefix_handled_by_rule69 ... ok
[INFO] [stdout] test rules::korean::rule_41::tests::rule41_matches_false_for_non_symbol_ctx ... ok
[INFO] [stdout] test rules::korean::rule_41::tests::scan_prefix_paths::case_1_digit_prefix ... ok
[INFO] [stdout] test rules::korean::rule_41::tests::scan_prefix_skips_space_then_finds_digit ... ok
[INFO] [stdout] test rules::korean::rule_40::tests::encodes_digits::case_3_nine ... ok
[INFO] [stdout] test rules::korean::rule_3::tests::encodes_basic_jongseong::case_04_rieul ... ok
[INFO] [stdout] test rules::korean::rule_44::tests::identifies_confusable_choseong ... ok
[INFO] [stdout] test rules::korean::rule_44::tests::meta_is_correct ... ok
[INFO] [stdout] test rules::korean::rule_44::tests::rule44_apply_emits_attached_separator_after_middle_dot ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::encodes_basic_punctuation::case_1_period ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::encodes_basic_punctuation::case_2_comma ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::encodes_basic_punctuation::case_6_close_paren ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::encodes_basic_punctuation::case_3_question ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::english_parentheses_different ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::encodes_basic_punctuation::case_4_exclamation ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::is_symbol_detection::case_1_period ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::is_symbol_detection::case_3_open_paren ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_apostrophe_close ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::is_symbol_detection::case_4_ascii_letter ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_apostrophe_open ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_apply_skips_non_symbol ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::encodes_basic_punctuation::case_5_open_paren ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::is_symbol_detection::case_2_question ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_doublequote_open ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_matches_symbols::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_matches_symbols::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::is_symbol_detection::case_5_korean_syllable ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_matches_symbols::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_matches_symbols::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_matches_symbols::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_question_mark_in_korean_context_descriptive ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_x_apply_exercises_path ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::rule49_standalone_times_emits_object_symbol_form ... ok
[INFO] [stdout] test rules::korean::rule_49::tests::unknown_symbol_returns_error ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::normalize_paths::case_1_six_periods_to_three ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::normalize_paths::case_3_three_periods_unchanged ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::normalize_paths::case_4_single_middle_dot_unchanged ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::normalize_paths::case_2_double_middle_dot_to_single ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::rule53_apply_just_continues ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::rule53_does_not_match_three_periods ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::rule53_match_resets_on_other_char ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::rule53_matches_double_ellipsis ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::rule53_match_false_when_not_at_word_start ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::rule53_meta_and_phase ... ok
[INFO] [stdout] test rules::korean::rule_56::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_56::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_57::tests::is_placeholder_times_context_returns_false_for_non_times ... ok
[INFO] [stdout] test rules::korean::rule_57::tests::rule57_apply_unknown_symbol_skips ... ok
[INFO] [stdout] test rules::korean::rule_58::tests::meta_is_correct ... ok
[INFO] [stdout] test rules::korean::rule_57::tests::rule57_apply_math_times_context_returns_skip ... ok
[INFO] [stdout] test rules::korean::rule_57::tests::groups_repeated_symbols::case_2_triangle_triangle_doseogwan ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::normalize_paths::case_6_empty_string ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::normalize_paths::case_5_normal_korean_unchanged ... ok
[INFO] [stdout] test rules::korean::rule_57::tests::groups_repeated_symbols::case_1_kim_circle_circle_ssi ... ok
[INFO] [stdout] test rules::korean::rule_53::tests::rule53_matches_six_periods_run ... ok
[INFO] [stdout] test rules::korean::rule_57::tests::handles_times_dual_context::case_1_math_multiplication ... ok
[INFO] [stdout] test rules::korean::rule_57::tests::is_math_times_context_returns_false_for_non_times ... ok
[INFO] [stdout] test rules::korean::rule_61::tests::apostrophe_is_not_standalone_before_digit ... ok
[INFO] [stdout] test rules::korean::rule_61::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_58::tests::multiple_blank_marks ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::detects_supported_chars ... ok
[INFO] [stdout] test rules::korean::rule_61::tests::meta_is_correct ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encode_square_anchor_korean_part ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encode_square_anchor_english_letter ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encode_square_anchor_number ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encodes_circled_jamo ... ok
[INFO] [stdout] test rules::korean::rule_57::tests::handles_times_dual_context::case_2_general_times_symbol ... ok
[INFO] [stdout] test rules::korean::rule_60::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_60::tests::rule60_apply_standalone_asterisk_after_word_prepends_space ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encode_enclosed_digit_returns_err_for_non_digit ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encodes_circled_numbers ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encode_enclosed_symbol_returns_err_for_unknown ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encode_square_anchor_korean_syllable_fallback ... ok
[INFO] [stdout] test rules::korean::rule_60::tests::meta_is_correct ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::rule64_apply_skips_non_symbol ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encodes_circled_syllable ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::lone_combining_square_is_no_op ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::rule64_priorities ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::square_wraps_first_syllable_of_word ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::square_wraps_digit ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::square_wraps_korean_syllable ... ok
[INFO] [stdout] test rules::korean::rule_65::tests::encodes_currency_symbols ... ok
[INFO] [stdout] test rules::korean::rule_65::tests::marker_bytes_are_expected ... ok
[INFO] [stdout] test rules::korean::rule_65::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_65::tests::detects_supported_currency_symbols ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::encode_compact_ascii_notation_grade_minus ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::square_wraps_latin_letter ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::encode_compact_ascii_notation_out_of_bounds ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::encode_compact_ascii_notation_subscript ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::is_digit_grade_plus_notation_paths ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::is_subscript_digit_recognises_each ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::is_grade_notation_paths ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::is_superscript_symbol_plus_minus_only ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::encode_compact_ascii_notation_lowercase_returns_none ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::rule68_apply_compact_ascii_uppercase_superscript ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::rule68_apply_falls_through_to_mappings_skip ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::rule68_apply_digit_grade_plus_followed_by_korean ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::rule68_superscript_block_breaks_on_non_super_direct ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::rule68_meta_phase_priority ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::should_insert_separator_after_symbol_only_for_specific_pattern ... ok
[INFO] [stdout] test rules::korean::rule_69::tests::rule69_percent_ile_pattern ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::encodes_circled_latin ... ok
[INFO] [stdout] test rules::korean::rule_69::tests::rule69_mu_alone_without_unit ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::rule68_digit_grade_with_minus_in_chain ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::encode_compact_ascii_notation_non_ascii_returns_none ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::rule68_apply_emits_for_known_symbol ... ok
[INFO] [stdout] test rules::korean::rule_70::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_64::tests::square_wraps_korean_jamo ... ok
[INFO] [stdout] test rules::korean::rule_69::tests::parses_compact_number_unit_word ... ok
[INFO] [stdout] test rules::korean::rule_69::tests::rule69_percent_p_pattern ... ok
[INFO] [stdout] test rules::korean::rule_73::tests::rule73_apply_consecutive_underscore_consumed ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::encode_digital_symbol_table::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_73::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::is_compact_ascii_notation_paths ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::is_rule_68_symbol_recognises_each_entry ... ok
[INFO] [stdout] test rules::korean::rule_71::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_71::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_68::tests::encode_compact_ascii_notation_superscript ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::encode_digital_symbol_table::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_71::tests::rule71_section_sign_before_digit_omits_terminator ... ok
[INFO] [stdout] test rules::korean::rule_72::tests::apply_skips_non_korean ... ok
[INFO] [stdout] test rules::korean::rule_71::tests::rule71_section_symbol_followed_by_non_digit_appends_terminator ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::encode_digital_symbol_table::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::encode_digital_symbol_table::case_7 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::encode_digital_symbol_table::case_6 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::encode_digital_symbol_table::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::is_digital_notation_context_paths::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::is_digital_notation_context_paths::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::is_digital_notation_context_paths::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::rule74_apply_emits_for_known_symbol ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::encode_digital_symbol_table::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::encode_digital_symbol_table::case_8 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::rule74_matches_digital_symbols_in_context::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::rule74_matches_digital_symbols_in_context::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::is_digital_notation_context_paths::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::rule74_matches_digital_symbols_in_context::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::is_digital_notation_context_paths::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::is_digital_notation_context_paths::case_6 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::rule74_meta_phase_priority ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::determine_prefix_paths::case_1_standalone_single_char ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::determine_prefix_paths::case_2_jamo_numbering_format ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::determine_prefix_paths::case_3_attached_to_korean_word ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::rule74_apply_errors_for_unsupported_symbol ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::determine_prefix_paths::case_4_bordered_by_symbols_uses_ontab ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::is_jamo_numbering_paths::case_1_jamo_dot ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::determine_prefix_paths::case_5_first_with_ja_uses_ontab ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::rule74_matches_digital_symbols_in_context::case_5 ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::golden_test_alignment::case_1_giyeok_alone ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::is_jamo_numbering_paths::case_2_two_jamo_no_dot ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_apply_emits_for_korean_part::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_74::tests::rule74_matches_digital_symbols_in_context::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_apply_emits_for_korean_part::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::multi_char_without_korean_falls_back_to_ontab ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::golden_test_alignment::case_2_ah_alone ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_apply_skips_non_korean_part ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_matches_korean_part_only::case_2 ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_apply_emits_for_korean_part::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_english_symbol::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_matches_korean_part_only::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_apply_jamo_numbering_emits_ontab_and_jongseong ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_apply_emits_for_korean_part::case_1 ... ok
[INFO] [stdout] test rules::korean::rule_fraction::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_matches_korean_part_only::case_3 ... ok
[INFO] [stdout] test rules::korean::rule_english_symbol::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_8::tests::rule8_matches_korean_part_only::case_4 ... ok
[INFO] [stdout] test rules::korean::rule_korean::tests::meta_is_correct ... ok
[INFO] [stdout] test rules::korean::rule_korean::tests::rule_korean_apply_skip_for_non_korean_ctx ... ok
[INFO] [stdout] test rules::korean::rule_math::tests::apply_exercise ... ok
[INFO] [stdout] test rules::korean::rule_fraction::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_math::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::korean::rule_korean::tests::golden_test_basic_syllables ... ok
[INFO] [stdout] test rules::korean::rule_space::tests::matches_does_not_panic ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::absolute_value_dispatch_both_directions ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::approximate_equal_dispatch_direct ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::angle_symbol_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::approximation_symbol_dispatch_direct ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::arc_symbol_dispatch ... ok
[INFO] [stdout] test rules::korean::rule_space::tests::apply_exercise ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::asymptotic_equal_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::because_at_start_of_expression ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::congruence_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::capital_pi_with_numeric_pair ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::contour_integral_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::divisibility_not_divides_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::custom_binary_operator_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::double_arrow_line_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::dispatch_with_math_mode_context ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::delta_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::exists_variable_followed_by_expression ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::ff03_hash_with_parens_around_upper_variable ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::double_integral_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::ff03_hash_with_space_before_upper_variable ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::ff03_hash_with_spaces_inside_parens ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::divisibility_non_pipe_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::dot_congruence_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::forall_variable_followed_by_more_expression ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::ff03_hash_followed_by_upper_variable ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::geometric_shape_square_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::geometric_shape_triangle_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::greek_symbol_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::forall_upper_variable_followed_by_expression ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::identity_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::geometric_operator_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::fullwidth_hash_with_leading_space_skip ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::integral_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::math_symbol_rule_apply_skip_for_non_math_symbol ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::middle_dot_multiplication_with_equation ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::middle_dot_multiplication_with_plus ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::left_arrow_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::negation_between_upper_variables ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::nabla_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::norm_dispatch_open_and_close ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::negation_between_lower_and_upper_variable ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::letter_with_combining_dot_above ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::logic_symbol_dispatch_through_generic ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::infinity_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::norm_middle_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::parallel_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::overline_mark_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::perpendicular_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::partial_derivative_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::sequence_brace_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::prime_mark_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::sigma_with_bound_expression_no_separators ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::right_arrow_ray_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::proportion_symbol_dispatch_direct ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::sigma_with_bound_expression_with_separators ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::root_symbol_dispatch_through_generic ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::sigma_with_unmatched_paren_exercises_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::therefore_standalone_rule_65_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::therefore_adjacent_to_letters_both_sides ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::sequence_brace_dispatch_via_token ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::therefore_with_next_space ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::sigma_with_unmatched_open_paren_returns_err ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::similarity_dispatch ... ok
[INFO] [stdout] test rules::math::encoder::tests::digit_separator_rule_metadata ... ok
[INFO] [stdout] test rules::math::encoder::tests::encode_math_expression_with_context_roman_numeral_non_default_context ... ok
[INFO] [stdout] test rules::math::encoder::tests::is_glue_operator_distinguishes_operators ... ok
[INFO] [stdout] test rules::math::encoder::tests::is_inside_curly_balances_brackets ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::therefore_with_no_prev_space_at_nonzero_index ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::set_symbol_dispatch_through_generic ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::sigma_with_trailing_non_space_token ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::upper_letter_with_combining_dot_above ... ok
[INFO] [stdout] test rules::math::encoder::tests::is_mixed_times_context_branches ... ok
[INFO] [stdout] test rules::math::encoder::tests::cardinality_pattern ... ok
[INFO] [stdout] test rules::math::encoder::tests::digit_separator_emits_byte_2 ... ok
[INFO] [stdout] test rules::math::encoder::symbol_rule::tests::therefore_with_prev_space ... ok
[INFO] [stdout] test rules::math::encoder::tests::is_mixed_times_iter_any_requires_both ... ok
[INFO] [stdout] test rules::math::encoder::tests::korean_word_rule_apply_skip_on_non_korean_word ... ok
[INFO] [stdout] test rules::math::encoder::tests::is_plain_unwrapped_korean_deleted_smoke_test ... ok
[INFO] [stdout] test rules::math::encoder::tests::korean_word_rule_metadata ... ok
[INFO] [stdout] test rules::math::encoder::tests::is_mixed_times_context_exercise_branches ... ok
[INFO] [stdout] test rules::math::encoder::tests::is_mixed_times_context_one_side_plain_other_wrapped ... ok
[INFO] [stdout] test rules::math::encoder::tests::korean_wrap_kind_branches ... ok
[INFO] [stdout] test rules::math::encoder::tests::math_spacing_suppression ... ok
[INFO] [stdout] test rules::math::encoder::tests::matrix_math_mode_engine_initializes ... ok
[INFO] [stdout] test rules::math::encoder::tests::next_non_space_index_skips_spaces ... ok
[INFO] [stdout] test rules::math::encoder::tests::next_non_space_returns_token_reference ... ok
[INFO] [stdout] test rules::math::encoder::tests::raw_token_rule_metadata ... ok
[INFO] [stdout] test rules::math::encoder::tests::should_suppress_after_operator_branches ... ok
[INFO] [stdout] test rules::math::encoder::tests::should_suppress_space_branches ... ok
[INFO] [stdout] test rules::math::encoder::tests::prev_non_space_index_skips_spaces ... ok
[INFO] [stdout] test rules::math::encoder::tests::should_suppress_space_one_side_only ... ok
[INFO] [stdout] test rules::math::encoder::tests::space_rule_metadata ... ok
[INFO] [stdout] test rules::math::encoder::tests::test_simple_equation ... ok
[INFO] [stdout] test rules::math::encoder::tests::test_number_encoding ... ok
[INFO] [stdout] test rules::math::encoder::tests::prev_non_space_index_none_at_zero ... ok
[INFO] [stdout] test rules::math::encoder::tests::raw_token_rule_apply_with_non_raw_skip ... ok
[INFO] [stdout] test rules::math::encoder::tests::token_is_grouped_operand_distinguishes ... ok
[INFO] [stdout] test rules::math::encoder::tests::negation_between_uppercase_vars ... ok
[INFO] [stdout] test rules::math::encoder::tests::should_suppress_before_operator_branches ... ok
[INFO] [stdout] test rules::math::encoder::tests::next_non_space_index_none_when_only_spaces_follow ... ok
[INFO] [stdout] test rules::math::encoder::tests::math_latex_diverse_inputs ... ok
[INFO] [stdout] test rules::math::encoder::tests::prev_non_space_returns_token_reference ... ok
[INFO] [stdout] test rules::math::encoder::tests::wrap_kind_only_lhs_paren_does_not_short_circuit ... ok
[INFO] [stdout] test rules::math::function::tests::test_cos ... ok
[INFO] [stdout] test rules::math::function::tests::test_match_prefix_sinh ... ok
[INFO] [stdout] test rules::math::function::tests::test_sin ... ok
[INFO] [stdout] test rules::math::parser::helpers::tests::normalize_math_alphanumeric_table::case_2 ... ok
[INFO] [stdout] test rules::math::math_token_rule::tests::priority_default_impl_returns_100 ... ok
[INFO] [stdout] test rules::math::parser::helpers::tests::normalize_math_alphanumeric_table::case_1 ... ok
[INFO] [stdout] test rules::math::function::tests::test_sinh ... ok
[INFO] [stdout] test rules::math::parser::helpers::tests::normalize_math_alphanumeric_table::case_4 ... ok
[INFO] [stdout] test rules::math::parser::helpers::tests::normalize_math_alphanumeric_table::case_3 ... ok
[INFO] [stdout] test rules::math::parser::helpers::tests::normalize_math_alphanumeric_table::case_5 ... ok
[INFO] [stdout] test rules::math::parser::helpers::tests::normalize_subscript_none_for_non_subscript::case_2 ... ok
[INFO] [stdout] test rules::math::parser::helpers::tests::normalize_subscript_none_for_non_subscript::case_1 ... ok
[INFO] [stdout] test rules::math::function::tests::test_tan ... ok
[INFO] [stdout] test rules::math::function::tests::test_unknown_function ... ok
[INFO] [stdout] test rules::math::math_token_rule::tests::encode_tokens_errors_when_no_rule_matches ... ok
[INFO] [stdout] test rules::math::function::tests::test_match_prefix_sin3x ... ok
[INFO] [stdout] test rules::math::parser::helpers::tests::normalize_superscript_none_for_non_superscript::case_2 ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::ascii_superscript_brace_nested_depth_tracking ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::ascii_superscript_brace_unclosed_falls_back_to_raw ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::ascii_subscript_at_end_of_input_falls_back_to_raw ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::ascii_superscript_single_uppercase_letter ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::caret_at_end_of_input_falls_back_to_raw ... ok
[INFO] [stdout] ⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬⠀⠣⠒⠉⠻⠚⠠⠝⠬test rules::math::encoder::tests::math_symbol_dispatch_sweep ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::ascii_superscript_paren_unclosed_falls_back_to_raw ... ok
[INFO] [stdout] test rules::math::parser::helpers::tests::normalize_superscript_none_for_non_superscript::case_1 ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::dot_falls_back_to_raw_when_not_decimal ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::korean_three_phrases_separated_by_multiple_spaces ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::korean_then_whitespace_then_ascii_breaks_phrase ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::coefficient_space_combination_removes_space ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::ascii_superscript_paren_nested_depth_tracking ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::math_symbol_from_shortcut_pushed ... ok
[INFO] [stdout] test cli::tests::test_braillify_performance_long_text ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::normalize_operator_char_table ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::overline_prefix_input_skips_combining_marks ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::equals_then_arithmetic_paren_promotes_to_grouping ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::overline_prefix_skips_subsequent_overlines ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::equals_then_paren_with_comma_stays_mathparen ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::parenthesised_expression_with_overline_wraps_as_grouping ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::coefficient_space_permutation_removes_space ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::parse_dot_not_in_number_context_becomes_raw ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::function_name_superscript_then_paren_is_grouping ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::combining_mark_pushed_when_not_overline_prefix ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::repeating_decimal_with_trailing_digits ... ok
[INFO] [stdout] test rules::math::parser::tests::ascii_subscript_paren_unclosed_falls_back_to_raw ... ok
[INFO] [stdout] test rules::math::parser::tests::ascii_subscript_paren_nested_depth_tracking ... ok
[INFO] [stdout] test rules::math::parser::tests::test_grouping_paren_after_function ... ok
[INFO] [stdout] test rules::math::parser::tests::test_parse_ascii_apostrophe_as_prime ... ok
[INFO] [stdout] test rules::math::parser::tests::test_parse_equation ... ok
[INFO] [stdout] test rules::math::parser::parse::coverage_tests::whitespace_produces_space_tokens ... ok
[INFO] [stdout] test rules::math::parser::tests::parser_diverse_input_sweep ... ok
[INFO] [stdout] test rules::math::parser::tests::ascii_subscript_brace_nested_depth_tracking ... ok
[INFO] [stdout] test rules::math::parser::tests::ascii_subscript_brace_unclosed_falls_back_to_raw ... ok
[INFO] [stdout] test rules::math::parser::tests::korean_phrase_does_not_absorb_trailing_space_before_ascii ... ok
[INFO] [stdout] test rules::math::parser::tests::korean_multi_space_preserves_single_space ... ok
[INFO] [stdout] test rules::math::parser::tests::test_parse_function ... ok
[INFO] [stdout] test rules::math::parser::tests::test_parse_superscript ... ok
[INFO] [stdout] test rules::math::parser::tests::test_parse_number ... ok
[INFO] [stdout] test rules::math::parser::tests::underline_notation_fraction_paths ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscript_with_dot_and_slash ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscript_dot_without_following_subscript_stops ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_03___u_2082___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_01___u_2080___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_05___u_2084___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_04___u_2083___ ... ok
[INFO] [stdout] test rules::math::parser::tests::underline_fraction_with_parenthesised_body ... ok
[INFO] [stdout] test rules::math::parser::tests::underline_fraction_without_parens_falls_through ... ok
[INFO] [stdout] test rules::math::parser::tests::test_parse_simple_variable ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_02___u_2081___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_07___u_2086___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_06___u_2085___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_13___u_208D___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_14___u_208E___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_16___u_2091___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_15___u_2090___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_11___u_208A___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_12___u_208B___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_18___u_2093___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_20___u_2096___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_19___u_2095___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_09___u_2088___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_08___u_2087___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_10___u_2089___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_17___u_2092___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_21___u_2097___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_23___u_2099___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_25___u_209B___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_26___u_209C___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_27___u_1D62___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_28___u_1D63___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_30___u_1D65___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_29___u_1D64___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_01___u_2070___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_22___u_2098___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_subscripts_parsed::c_24___u_209A___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_02___u_00B9___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_03___u_00B2___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_04___u_00B3___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_06___u_2075___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_05___u_2074___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_09___u_2078___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_10___u_2079___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_11___u_207A___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_12___u_207B___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_13___u_207D___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_15___u_207F___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_17___u_1D47___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_16___u_1D43___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_18___u_1D9C___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_14___u_207E___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_19___u_1D48___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_20___u_1D49___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_08___u_2077___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_07___u_2076___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_21___u_1DA0___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_22___u_1D4D___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_23___u_02B0___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_24___u_2071___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_26___u_1D4F___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_25___u_02B2___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_27___u_02E1___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_32___u_02E2___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_28___u_1D50___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_33___u_1D57___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_30___u_1D56___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_35___u_1D5B___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_31___u_02B3___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_29___u_1D52___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_34___u_1D58___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_36___u_02B7___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_37___u_02E3___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_38___u_02B8___ ... ok
[INFO] [stdout] test rules::math::parser::tests::unicode_superscripts_parsed::c_39___u_1DBB___ ... ok
[INFO] [stdout] test rules::math::rule_11::tests::detects_math_sentence_delimiter ... ok
[INFO] [stdout] test rules::math::rule_11::tests::detects_math_sentence_delimiter_pair ... ok
[INFO] [stdout] test rules::math::rule_12::tests::combinatorics_ncr ... ok
[INFO] [stdout] test rules::math::rule_12::tests::combinatorics_npr ... ok
[INFO] [stdout] test rules::math::rule_12::tests::combinatorics_rule_apply_malformed_skip ... ok
[INFO] [stdout] test rules::math::rule_12::tests::combinatorics_rule_apply_emits_permutation ... ok
[INFO] [stdout] test rules::math::rule_12::tests::combinatorics_rule_priority_and_name ... ok
[INFO] [stdout] test rules::math::rule_12::tests::derivative_dy_dx_pattern ... ok
[INFO] [stdout] test rules::math::rule_12::tests::derivative_pattern_y_superscript ... ok
[INFO] [stdout] test rules::math::rule_12::tests::higher_order_derivative ... ok
[INFO] [stdout] test rules::math::rule_12::tests::integral_context_for_differential_paths ... ok
[INFO] [stdout] test rules::math::rule_12::tests::integral_with_differential ... ok
[INFO] [stdout] test rules::math::rule_12::tests::is_inside_curly_context_paths ... ok
[INFO] [stdout] test rules::math::rule_12::tests::matrix_context_two_uppercase_with_prime ... ok
[INFO] [stdout] test rules::math::rule_12::tests::prev_non_space_skips_space_returns_token ... ok
[INFO] [stdout] test rules::math::rule_12::tests::number_variable_link ... ok
[INFO] [stdout] test rules::math::rule_12::tests::plain_upper_variable ... ok
[INFO] [stdout] test rules::math::rule_12::tests::plain_variable ... ok
[INFO] [stdout] test rules::math::rule_12::tests::upper_variable_element_of ... ok
[INFO] [stdout] test rules::math::rule_12::tests::upper_variable_logic_or_not_pattern ... ok
[INFO] [stdout] test rules::math::rule_12::tests::upper_variable_rule_apply_skip_for_non_upper_variable ... ok
[INFO] [stdout] test rules::math::rule_12::tests::upper_variable_rule_priority_and_name ... ok
[INFO] [stdout] test rules::math::rule_12::tests::upper_variable_paren_wrapped_superscript_eq_pattern ... ok
[INFO] [stdout] test rules::math::rule_12::tests::variable_rule_apply_skip_for_non_variable ... ok
[INFO] [stdout] test rules::math::rule_12::tests::variable_rule_priority_and_name ... ok
[INFO] [stdout] test rules::math::rule_12::tests::upper_variable_simple_function_arg ... ok
[INFO] [stdout] test rules::math::rule_13::delta_ownership_invariant::rule_13_owns_delta_u0394 ... ok
[INFO] [stdout] test rules::math::rule_15::tests::detects_custom_binary_operator ... ok
[INFO] [stdout] test rules::math::rule_16::tests::normalizes_subscript_digits ... ok
[INFO] [stdout] test rules::math::rule_12::tests::y_superscript_paren_wrapped_no_extra_braces ... ok
[INFO] [stdout] test rules::math::rule_16::tests::detects_base_notation_subscript_chars ... ok
[INFO] [stdout] test rules::math::rule_17::tests::encodes_prime_variants ... ok
[INFO] [stdout] test rules::math::rule_12::tests::variable_with_korean_following_inside_curly ... ok
[INFO] [stdout] test rules::math::rule_18::tests::is_simple_signed_number_paths ... ok
[INFO] [stdout] test rules::math::rule_12::tests::upper_variable_with_paren_number_pair ... ok
[INFO] [stdout] test rules::math::rule_18::tests::left_superscript_position_blocked_by_partial_derivative ... ok
[INFO] [stdout] test rules::math::rule_18::tests::left_superscript_position_blocked_by_function_name ... ok
[INFO] [stdout] test rules::math::rule_12::tests::upper_variable_sequence_with_intermediate_tokens ... ok
[INFO] [stdout] test rules::math::rule_18::tests::left_superscript_position_blocked_by_sum ... ok
[INFO] [stdout] test rules::math::rule_18::tests::should_group_superscript_paths::case_4_has_paren_groups ... ok
[INFO] [stdout] test rules::math::rule_18::tests::should_group_superscript_paths::case_5_len_ge_3_simple_groups ... ok
[INFO] [stdout] test rules::math::rule_12::tests::uppercase_sequence_with_prime_emits_36 ... ok
[INFO] [stdout] test rules::math::rule_18::tests::left_superscript_position_continues_over_space_and_subscript ... ok
[INFO] [stdout] test rules::math::rule_18::tests::should_group_superscript_paths::case_1_single_token_no_group ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_after_close_square_subscript_followed_by_var ... ok
[INFO] [stdout] test rules::math::rule_18::tests::should_group_superscript_paths::case_2_signed_number_no_group ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_after_square_close_with_subscript ... ok
[INFO] [stdout] test rules::math::rule_18::tests::should_group_superscript_paths::case_3_has_operator_groups ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_compound ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_after_bracket_close ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_dot_product_form ... ok
[INFO] [stdout] test rules::math::rule_17::tests::rejects_unsupported_prime ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_parenthesised_index ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_paren_wrapped_simple_index ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_rule_apply_with_non_superscript_skip ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_rule_priority_and_name ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_with_paren_complex ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_with_slash_then_superscript_number ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_simple_digit ... ok
[INFO] [stdout] test rules::math::rule_19::tests::left_subscript_position_blocked_by_function_name ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_followed_by_radical ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_with_slash_and_superscript_follow ... ok
[INFO] [stdout] test rules::math::rule_19::tests::left_subscript_combinatorics_pattern ... ok
[INFO] [stdout] test rules::math::rule_19::tests::encodes_number_base_notation_without_explicit_subscript_parentheses ... ok
[INFO] [stdout] test rules::math::rule_19::tests::encodes_number_base_notation_with_explicit_subscript_parentheses ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_03_superscript_at_idx_false ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_04_number_true ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_05_empty_false ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_followed_by_sqrt ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_negative_index ... ok
[INFO] [stdout] test rules::math::rule_18::tests::superscript_paren_wrapped_complex_content ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_02_variable_true ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_07_open_paren_true ... ok
[INFO] [stdout] test rules::math::rule_19::tests::left_subscript_position_blocked_by_universal_quantifier ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_09_upper_variable_true ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_08_math_symbol_true ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_10_operator_tail_empty_false ... ok
[INFO] [stdout] test rules::math::rule_19::tests::should_group_subscript_paren_wrapped_content_skipped::case_1_paren_wrapped_no_group ... ok
[INFO] [stdout] test rules::math::rule_19::tests::should_group_subscript_paren_wrapped_content_skipped::case_2_multi_token_non_numeric_groups ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_01_space_false ... ok
[INFO] [stdout] test rules::math::rule_19::tests::quantifier_trailing_space_after_subscript ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_branches::case_06_function_name_true ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_loop_encounters_space ... ok
[INFO] [stdout] test rules::math::rule_19::tests::needs_quantifier_trailing_space_loop_encounters_superscript ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_after_function_then_paren ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_after_substack_chain ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_compound_index ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_multi_digit_index ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_rule_apply_with_non_subscript_returns_skip ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_rule_priority_and_name ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_quantifier_with_following_var ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_simple_digit ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_with_negative_index ... ok
[INFO] [stdout] test rules::math::rule_1::tests::number_rule_apply_skip_for_non_number ... ok
[INFO] [stdout] test rules::math::rule_19::tests::subscript_with_number_upper_var_content ... ok
[INFO] [stdout] test rules::math::rule_21::tests::encodes_absolute_value_and_norm ... ok
[INFO] [stdout] test rules::math::rule_23::tests::encodes_overline_marker ... ok
[INFO] [stdout] test rules::math::rule_24::tests::detects_sequence_braces ... ok
[INFO] [stdout] test rules::math::rule_20::tests::approximation_symbol_through_pipeline ... ok
[INFO] [stdout] test rules::math::rule_21::tests::encodes_norm_delimiter_separately ... ok
[INFO] [stdout] test rules::math::rule_2::tests::binary_spacing_operator_pads_both_sides ... ok
[INFO] [stdout] test rules::math::rule_25::tests::encodes_sigma_prefix ... ok
[INFO] [stdout] test rules::math::rule_26::tests::keeps_reserved_marker ... ok
[INFO] [stdout] test rules::math::rule_2::tests::comma_in_divisibility_context_at_end ... ok
[INFO] [stdout] test rules::math::rule_28::tests::encodes_norm_open_and_close ... ok
[INFO] [stdout] test rules::math::rule_2::tests::factorial_emits_22 ... ok
[INFO] [stdout] test rules::math::rule_2::tests::is_algebraic_neighbor_paths::case_1_variable ... ok
[INFO] [stdout] test rules::math::rule_2::tests::comma_in_divisibility_context_before_space ... ok
[INFO] [stdout] test rules::math::rule_27::tests::detects_divisibility_symbols ... ok
[INFO] [stdout] test rules::math::rule_2::tests::is_algebraic_neighbor_paths::case_4_operator_excluded ... ok
[INFO] [stdout] test rules::math::rule_2::tests::is_algebraic_neighbor_paths::case_5_none_neighbor ... ok
[INFO] [stdout] test rules::math::rule_2::tests::korean_group_operator_inserts_padding ... ok
[INFO] [stdout] test rules::math::rule_2::tests::label_equation_after_korean_word_with_sqrt ... ok
[INFO] [stdout] test rules::math::rule_2::tests::needs_binary_spacing_table::case_1_right_arrow ... ok
[INFO] [stdout] test rules::math::rule_2::tests::is_algebraic_neighbor_paths::case_2_number ... ok
[INFO] [stdout] test rules::math::rule_2::tests::is_algebraic_neighbor_paths::case_3_infinity_symbol ... ok
[INFO] [stdout] test rules::math::rule_29::tests::approximate_equal_through_pipeline ... ok
[INFO] [stdout] test rules::math::rule_2::tests::comma_followed_by_variable_emits_space ... ok
[INFO] [stdout] test rules::math::rule_2::tests::needs_binary_spacing_table::case_2_right_double_arrow ... ok
[INFO] [stdout] test rules::math::rule_2::tests::needs_binary_spacing_table::case_3_logical_and ... ok
[INFO] [stdout] test rules::math::rule_2::tests::needs_binary_spacing_table::case_5_right_tack ... ok
[INFO] [stdout] test rules::math::rule_2::tests::needs_binary_spacing_table::case_4_logical_or ... ok
[INFO] [stdout] test rules::math::rule_2::tests::needs_binary_spacing_table::case_6_less_or_equiv ... ok
[INFO] [stdout] test rules::math::rule_2::tests::needs_binary_spacing_table::case_7_plus_excluded ... ok
[INFO] [stdout] test rules::math::rule_2::tests::operator_rule_apply_skip_for_non_operator ... ok
[INFO] [stdout] test rules::math::rule_30::tests::detects_dot_congruence_symbol ... ok
[INFO] [stdout] test rules::math::rule_32::tests::detects_congruence_symbol ... ok
[INFO] [stdout] test rules::math::rule_34::tests::detects_relation_notation_correctly ... ok
[INFO] [stdout] test rules::math::rule_34::tests::encodes_uppercase_relation_symbol_with_prefix ... ok
[INFO] [stdout] test rules::math::rule_34::tests::encodes_relation_uppercase_correctly ... ok
[INFO] [stdout] test rules::math::rule_2::tests::full_pipeline_sanity ... ok
[INFO] [stdout] test rules::math::rule_24::tests::detects_sequence_notation_chars ... ok
[INFO] [stdout] test rules::math::rule_31::tests::detects_asymptotic_equal_symbol ... ok
[INFO] [stdout] test rules::math::rule_2::tests::operator_rule_metadata ... ok
[INFO] [stdout] test rules::math::rule_33::tests::detects_geometric_operators ... ok
[INFO] [stdout] test rules::math::rule_34::tests::validates_relation_notation_pattern ... ok
[INFO] [stdout] test rules::math::rule_35::tests::encodes_segment_notation_char ... ok
[INFO] [stdout] test rules::math::rule_35::tests::encodes_segment_overline_prefix ... ok
[INFO] [stdout] test rules::math::rule_2::tests::set_triangle_plus_special_form ... ok
[INFO] [stdout] test rules::math::rule_35::tests::detects_segment_overline ... ok
[INFO] [stdout] test rules::math::rule_35::tests::encodes_double_uppercase_prefix_correctly ... ok
[INFO] [stdout] test rules::math::rule_35::tests::encodes_segment_overline_separately ... ok
[INFO] [stdout] test rules::math::rule_36::tests::detects_arc_symbol ... ok
[INFO] [stdout] test rules::math::rule_2::tests::slash_as_fraction_uses_shortcut_otherwise_12 ... ok
[INFO] [stdout] test rules::math::rule_36::tests::encodes_arc_uppercase_prefix_correctly ... ok
[INFO] [stdout] test rules::math::rule_37::tests::encodes_double_arrow_line_uppercase_prefix_correctly ... ok
[INFO] [stdout] test rules::math::rule_37::tests::detects_double_arrow_line_symbol ... ok
[INFO] [stdout] test rules::math::rule_38::tests::detects_right_arrow_ray_symbol ... ok
[INFO] [stdout] test rules::math::rule_39::tests::test_angle_symbol ... ok
[INFO] [stdout] test rules::math::rule_40::tests::test_geometric_shape_detect ... ok
[INFO] [stdout] test rules::math::rule_42::tests::encode_emits_shortcut_bytes ... ok
[INFO] [stdout] test rules::math::rule_42::tests::test_is_similarity_symbol ... ok
[INFO] [stdout] test rules::math::rule_41::tests::rejects_non_perpendicular ... ok
[INFO] [stdout] test rules::math::rule_44::tests::test_is_parallel_symbol ... ok
[INFO] [stdout] test rules::math::rule_38::tests::encodes_right_arrow_ray_uppercase_prefix_correctly ... ok
[INFO] [stdout] test rules::math::rule_45::tests::test_rule_45_placeholder ... ok
[INFO] [stdout] test rules::math::rule_43::tests::test_is_identity_symbol ... ok
[INFO] [stdout] test rules::math::rule_41::tests::test_encode_perpendicular ... ok
[INFO] [stdout] test rules::math::rule_46::tests::emit_trig_fraction_term_branches ... ok
[INFO] [stdout] test rules::math::rule_46::tests::encode_trig_function_paren_v_n_fraction ... ok
[INFO] [stdout] test rules::math::rule_46::tests::encode_trig_function_two_consecutive_vars_path ... ok
[INFO] [stdout] test rules::math::rule_46::tests::is_trig_function_table ... ok
[INFO] [stdout] test rules::math::rule_46::tests::encode_trig_returns_false_for_non_trig ... ok
[INFO] [stdout] test rules::math::rule_45::tests::detects_function_call ... ok
[INFO] [stdout] test rules::math::rule_46::tests::trig_plain_variable_argument ... ok
[INFO] [stdout] test rules::math::rule_46::tests::encode_trig_function_basic_path ... ok
[INFO] [stdout] test rules::math::rule_46::tests::each_trig_variant ... ok
[INFO] [stdout] test rules::math::rule_46::tests::trig_with_inline_fraction_no_paren_numerator_var ... ok
[INFO] [stdout] test rules::math::rule_46::tests::trig_with_number_then_variable ... ok
[INFO] [stdout] test rules::math::rule_46::tests::trig_with_parenthesised_fraction ... ok
[INFO] [stdout] test rules::math::rule_46::tests::trig_with_two_consecutive_vars ... ok
[INFO] [stdout] test rules::math::rule_47::tests::content_is_math_paren_wrapped_paths::case_2_single_token_not_wrapped ... ok
[INFO] [stdout] test rules::math::rule_46::tests::trig_with_inline_fraction_no_paren_numerator_number ... ok
[INFO] [stdout] test rules::math::rule_47::tests::content_is_math_paren_wrapped_paths::case_1_fully_wrapped ... ok
[INFO] [stdout] test rules::math::rule_47::tests::content_is_math_paren_wrapped_paths::case_3_only_close_paren ... ok
[INFO] [stdout] test rules::math::rule_47::tests::encode_lim_token_unmatched_paren_returns_err ... ok
[INFO] [stdout] test rules::math::rule_47::tests::function_name_rule_char_by_char_fallback ... ok
[INFO] [stdout] test rules::math::rule_47::tests::encode_log_token_unmatched_paren_returns_err ... ok
[INFO] [stdout] test rules::math::rule_46::tests::encode_trig_function_inline_n_slash_n_fraction ... ok
[INFO] [stdout] test rules::math::rule_46::tests::encode_trig_function_inline_v_slash_v_fraction ... ok
[INFO] [stdout] test rules::math::rule_47::tests::function_name_rule_priority ... ok
[INFO] [stdout] test rules::math::rule_47::tests::function_name_rule_skip_on_non_function_token ... ok
[INFO] [stdout] test rules::math::rule_47::tests::function_trig_dispatch ... ok
[INFO] [stdout] test rules::math::rule_47::tests::function_unknown_name_falls_back ... ok
[INFO] [stdout] test rules::math::rule_47::tests::is_single_digit_base_paths::case_1_single_digit ... ok
[INFO] [stdout] test rules::math::rule_47::tests::is_single_digit_base_paths::case_3_variable_none ... ok
[INFO] [stdout] test rules::math::rule_47::tests::is_single_digit_base_paths::case_2_multi_digit_none ... ok
[INFO] [stdout] test rules::math::rule_47::tests::is_single_variable_base_paths::case_1_lowercase ... ok
[INFO] [stdout] test rules::math::rule_47::tests::is_single_variable_base_paths::case_2_uppercase_lowered ... ok
[INFO] [stdout] test rules::math::rule_47::tests::is_single_variable_base_paths::case_3_multi_none ... ok
[INFO] [stdout] test rules::math::rule_47::tests::lim_bare ... ok
[INFO] [stdout] test rules::math::rule_47::tests::lim_with_arrow_target ... ok
[INFO] [stdout] test rules::math::rule_47::tests::lim_with_parenthesised_target ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_01_digit_0 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::lim_complex_target_with_arrow ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_03_digit_2 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_05_digit_4 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_06_digit_5 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_07_digit_6 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_08_digit_7 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_09_digit_8 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_10_digit_9 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_11_non_digit_letter ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_complex_base_inline_fraction ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_digit_base_with_parenthesis ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_04_digit_3 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_with_digit_base ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_base_digit_table_each_digit::case_02_digit_1 ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_digit_base_with_simple_paren ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_with_complex_base ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_variable_base_with_upper_operator ... ok
[INFO] [stdout] test rules::math::rule_47::tests::next_is_lim_body_paths::case_1_space_false ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_no_base_with_parenthesis ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_complex_base_with_paren_wrap ... ok
[INFO] [stdout] test rules::math::rule_47::tests::next_is_lim_body_advances_through_token_then_hits_space ... ok
[INFO] [stdout] test rules::math::rule_47::tests::tokens_form_simple_fraction_paths::case_1_number_op_slash_number ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_with_inline_fraction_argument ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_variable_base_with_normalised_grouping ... ok
[INFO] [stdout] test rules::math::rule_47::tests::next_is_lim_body_paths::case_3_number_true ... ok
[INFO] [stdout] test rules::math::rule_48::tests::detects_inverse_trig ... ok
[INFO] [stdout] test rules::math::rule_47::tests::next_is_lim_body_paths::case_2_variable_true ... ok
[INFO] [stdout] test rules::math::rule_48::tests::test_rule_48_placeholder ... ok
[INFO] [stdout] test rules::math::rule_49::tests::detects_hyperbolic_function ... ok
[INFO] [stdout] test rules::math::rule_51::tests::detects_limit_notation ... ok
[INFO] [stdout] test rules::math::rule_53::tests::prime_rule_apply_skip_for_non_prime ... ok
[INFO] [stdout] test rules::math::rule_47::tests::tokens_form_simple_fraction_paths::case_3_too_short_single ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_with_variable_base ... ok
[INFO] [stdout] test rules::math::rule_54::tests::encodes_partial_derivative_fraction ... ok
[INFO] [stdout] test rules::math::rule_47::tests::next_is_lim_body_paths::case_4_empty_false ... ok
[INFO] [stdout] test rules::math::rule_47::tests::tokens_form_simple_fraction_paths::case_2_variable_unicode_slash_variable ... ok
[INFO] [stdout] test rules::math::rule_54::tests::test_is_partial_derivative ... ok
[INFO] [stdout] test rules::math::rule_54::tests::encodes_partial_derivative_fraction_with_spaces ... ok
[INFO] [stdout] test rules::math::rule_55::tests::test_is_nabla_symbol ... ok
[INFO] [stdout] test rules::math::rule_47::tests::tokens_form_simple_fraction_paths::case_4_wrong_middle_operator ... ok
[INFO] [stdout] test rules::math::rule_56::tests::test_is_integral_symbol ... ok
[INFO] [stdout] test rules::math::rule_57::tests::definite_integral_empty_lower_bound ... ok
[INFO] [stdout] test rules::math::rule_57::tests::definite_integral_empty_upper_bound ... ok
[INFO] [stdout] test rules::math::rule_47::tests::log_with_complex_base_paren_arg ... ok
[INFO] [stdout] test rules::math::rule_49::tests::test_rule_49_placeholder ... ok
[INFO] [stdout] test rules::math::rule_51::tests::test_rule_51_placeholder ... ok
[INFO] [stdout] test rules::math::rule_57::tests::definite_integral_unmatched_paren_skip ... ok
[INFO] [stdout] test rules::math::rule_57::tests::encodes_parenthesized_bounds ... ok
[INFO] [stdout] test rules::math::rule_57::tests::encodes_parenthesized_bounds_with_space_after_integral ... ok
[INFO] [stdout] test rules::math::rule_57::tests::test_rule_57_placeholder ... ok
[INFO] [stdout] test rules::math::rule_58::tests::test_is_double_integral ... ok
[INFO] [stdout] test rules::math::rule_59::tests::test_is_contour_integral ... ok
[INFO] [stdout] test rules::math::rule_5::tests::detects_proportion_symbol ... ok
[INFO] [stdout] test rules::math::rule_63::tests::detects_conditional_probability ... ok
[INFO] [stdout] test rules::math::rule_63::tests::test_rule_63_placeholder ... ok
[INFO] [stdout] test rules::math::rule_64::tests::test_is_hat_notation ... ok
[INFO] [stdout] test rules::math::rule_62::tests::detects_factorial ... ok
[INFO] [stdout] test rules::math::rule_65::tests::test_is_therefore_because ... ok
[INFO] [stdout] test rules::math::rule_66::tests::test_rule_66_placeholder ... ok
[INFO] [stdout] test rules::math::rule_62::tests::test_rule_62_placeholder ... ok
[INFO] [stdout] test rules::math::rule_66::tests::detects_multiline_expression ... ok
[INFO] [stdout] test rules::math::rule_7::tests::conditional_prob_apply_emits_bytes ... ok
[INFO] [stdout] test rules::math::rule_6::tests::bracket_rule_apply_skip_for_non_paren ... ok
[INFO] [stdout] test rules::math::rule_7::tests::conditional_prob_apply_malformed_skip ... ok
[INFO] [stdout] test rules::math::rule_7::tests::conditional_prob_matches_with_divider_present ... ok
[INFO] [stdout] test rules::math::rule_7::tests::find_simple_right_end_traverses_simple_tokens::case_1_advances_until_operator ... ok
[INFO] [stdout] test rules::math::rule_7::tests::conditional_prob_metadata ... ok
[INFO] [stdout] test rules::math::rule_7::tests::fraction_reversal_apply_malformed_tokens_skip ... ok
[INFO] [stdout] test rules::math::rule_7::tests::find_simple_right_end_traverses_simple_tokens::case_3_empty_returns_index ... ok
[INFO] [stdout] test rules::math::rule_7::tests::find_simple_right_end_traverses_simple_tokens::case_2_operator_stops_immediately ... ok
[INFO] [stdout] test rules::math::rule_7::tests::fraction_reversal_apply_number_over_number ... ok
[INFO] [stdout] test rules::math::rule_7::tests::fraction_reversal_metadata ... ok
[INFO] [stdout] test rules::math::rule_7::tests::fraction_reversal_matches_only_non_fraction_symbol_context ... ok
[INFO] [stdout] test rules::math::rule_7::tests::grouped_fraction_apply_no_slash_after_paren ... ok
[INFO] [stdout] test rules::math::rule_7::tests::grouped_fraction_reversal_empty_simple_right_skip ... ok
[INFO] [stdout] test rules::math::rule_7::tests::grouped_fraction_reversal_apply_no_matching_paren_skip ... ok
[INFO] [stdout] test rules::math::rule_7::tests::grouped_fraction_reversal_matches ... ok
[INFO] [stdout] test rules::math::rule_7::tests::grouped_fraction_reversal_metadata ... ok
[INFO] [stdout] test rules::math::rule_7::tests::slash_as_fraction_symbol_paths::case_1_upper_over_upper ... ok
[INFO] [stdout] test rules::math::rule_7::tests::grouped_fraction_reversal_unmatched_right_paren_skip ... ok
[INFO] [stdout] test rules::math::rule_7::tests::grouped_fraction_reversal_simple_right_side ... ok
[INFO] [stdout] test rules::math::rule_7::tests::grouped_fraction_reversal_paren_right_side ... ok
[INFO] [stdout] test rules::math::rule_7::tests::variable_fraction_in_list_apply ... ok
[INFO] [stdout] test rules::math::rule_7::tests::variable_fraction_in_list_apply_malformed_skip ... ok
[INFO] [stdout] test rules::math::rule_7::tests::variable_fraction_in_list_matches_after_open_paren ... ok
[INFO] [stdout] test rules::math::rule_7::tests::variable_fraction_in_list_metadata ... ok
[INFO] [stdout] test rules::math::rule_7::tests::variable_fraction_in_list_with_subscript_via_pipeline ... ok
[INFO] [stdout] test rules::math::rule_8::tests::decimal_point_rule_metadata ... ok
[INFO] [stdout] test rules::math::rule_8::tests::decimal_with_combining_mark_baseline ... ok
[INFO] [stdout] test rules::token::tests::parse_empty ... ok
[INFO] [stdout] test rules::math::rule_7::tests::slash_as_fraction_symbol_paths::case_3_var_over_var_not_fraction ... ok
[INFO] [stdout] test rules::math::rule_8::tests::leading_decimal_emits_number_sign ... ok
[INFO] [stdout] test rules::math::rule_7::tests::slash_as_fraction_symbol_paths::case_2_digit_over_digit ... ok
[INFO] [stdout] test rules::math::rule_8::tests::leading_decimal_with_dot_above_next ... ok
[INFO] [stdout] test rules::math::rule_8::tests::decimal_in_full_expression ... ok
[INFO] [stdout] test rules::token::tests::parse_sets_meta ... ok
[INFO] [stdout] test rules::token::tests::token_debug_clone_works ... ok
[INFO] [stdout] test rules::token::tests::word_meta_korean_only ... ok
[INFO] [stdout] test rules::token::tests::parse_simple_words ... ok
[INFO] [stdout] test rules::token::tests::word_meta_english_uppercase ... ok
[INFO] [stdout] test rules::token::tests::word_meta_mixed ... ok
[INFO] [stdout] test rules::token_engine::tests::token_engine_insert_replace_remove_index_handling ... ok
[INFO] [stdout] test rules::token_engine::tests::token_engine_noop_normalization_continues_to_next_rule ... ok
[INFO] [stdout] test rules::token_engine::tests::token_engine_replace_many_updates_index_safely ... ok
[INFO] [stdout] test rules::token_engine::tests::token_engine_sorts_and_applies_by_phase_priority ... ok
[INFO] [stdout] test rules::token_engine::tests::token_engine_replace_range_empty_triggers_continue_outer ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::apply_noop_on_plain_word ... ok
[INFO] [stdout] test rules::token_engine::tests::token_rule_engine_default_constructs_empty ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::apply_plain_word_noop ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_03 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::apply_non_word_noop ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_01 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_02 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::apply_noop_on_non_word_token ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::digital_words_simple_chars ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_04 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::apply_url_replaces ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::apply_replaces_digital_word_token ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_07 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_word_email ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_word_colon_path ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_08 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_word_pure_digit_starts ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_word_mixed_alpha_digit_transitions ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_09 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_10 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_word_with_korean_suffix ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_plain_letter ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_word_ends_with_alpha_appends_terminator ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_03_hashtag ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_01_url_double_slash ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_04_underscore_dot ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_02_email_at ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_05_underscore_slash ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_06 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_word_hashtag ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_english_segment_all_abbreviations::case_05 ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::encode_digital_word_underscore_dot ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_08_pure_underscore ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_07_plain_alpha_only ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_09_non_alphanumeric_start ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::rule_phase_priority ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_10_empty_string ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::apply_non_word_non_space_falls_through ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::apply_space_adjacent_ring_mark_only_removes_spacing ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::apply_space_after_emphasis_close_marker ... ok
[INFO] [stdout] test rules::token_rules::digital_notation::tests::has_digital_signature_paths::case_06_underscore_colon ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::apply_space_between_emphasis_and_real_word_closes ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::apply_word_pure_ring_marks_returns_empty_replace ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::apply_space_no_emphasis_neighbors_returns_noop ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::apply_word_emphasis_emits_triple ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_emphasis_word_table::case_2_latin_with_mark_only ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_emphasis_word_table::case_3_korean_without_mark ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::apply_word_only_ring_marks_replaces_with_empty ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_emphasis_word_table::case_1_korean_with_mark ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_emphasis_word_table::case_4_empty ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_ring_mark_only_table::case_1_single_ring ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_ring_mark_only_table::case_2_single_dot_above ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_ring_mark_only_table::case_3_ring_then_dot ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_ring_mark_only_table::case_4_empty ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_ring_mark_only_table::case_5_ascii_letter ... ok
[INFO] [stdout] test rules::token_rules::english_dominant_korean_wrap::tests::build_wrapped_replacement_no_korean_returns_none ... ok
[INFO] [stdout] test rules::token_rules::emphasis_ring::tests::is_ring_mark_only_table::case_6_ring_then_letter ... ok
[INFO] [stdout] test rules::token_rules::english_dominant_korean_wrap::tests::count_script_words_non_alpha_non_korean_first_char ... ok
[INFO] [stdout] test rules::token_rules::english_dominant_korean_wrap::tests::same_token_right_is_english_no_alpha_no_korean ... ok
[INFO] [stdout] test rules::token_rules::english_dominant_korean_wrap::tests::scan_english_context_candidates_breaks_when_both_flags_true ... ok
[INFO] [stdout] test rules::token_rules::english_dominant_korean_wrap::tests::scan_english_context_candidates_resets_on_non_word_non_space ... ok
[INFO] [stdout] test rules::token_rules::english_dominant_korean_wrap::tests::segment_both_boundaries_prev_not_english_no_wrap ... ok
[INFO] [stdout] test rules::token_rules::english_dominant_korean_wrap::tests::segment_within_same_token_english_letters ... ok
[INFO] [stdout] test rules::token_rules::historical_gloss_spacing::tests::noop_when_next_is_not_word ... ok
[INFO] [stdout] test rules::token_rules::historical_gloss_spacing::tests::noop_when_no_prev_word ... ok
[INFO] [stdout] test rules::token_rules::historical_gloss_spacing::tests::removes_space_after_left_tortoise_shell ... ok
[INFO] [stdout] test rules::token_rules::historical_gloss_spacing::tests::noop_when_neither_tortoise_shell ... ok
[INFO] [stdout] test rules::token_rules::historical_gloss_spacing::tests::noop_when_not_space ... ok
[INFO] [stdout] test rules::token_rules::historical_gloss_spacing::tests::removes_space_before_right_tortoise_shell ... ok
[INFO] [stdout] test rules::token_rules::historical_gloss_spacing::tests::rule_phase_priority ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::no_digit_no_match_noop ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::non_word_token_noop ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::rule_phase_and_priority ... ok
[INFO] [stdout] test rules::token_rules::english_dominant_korean_wrap::tests::segment_both_boundaries_prev_next_english_with_majority ... ok
[INFO] [stdout] test rules::token_rules::latex_fraction::tests::dollar_wrapped_non_fraction_direct_apply_noop::case_1_single_variable ... ok
[INFO] [stdout] test rules::token_rules::latex_fraction::tests::dollar_wrapped_non_fraction_direct_apply_noop::case_2_empty_frac ... ok
[INFO] [stdout] test rules::token_rules::latex_fraction::tests::dollar_wrapped_non_fraction_direct_apply_noop::case_3_digits ... ok
[INFO] [stdout] test rules::token_rules::latex_fraction::tests::non_word_token_returns_noop ... ok
[INFO] [stdout] test rules::token_rules::latex_math::grouping::tests::fraction_grouping_decision_matrix ... ok
[INFO] [stdout] test rules::token_rules::latex_math::grouping::tests::subscript_table_full_coverage ... ok
[INFO] [stdout] test rules::token_rules::latex_math::grouping::tests::superscript_table_full_coverage ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::array_with_empty_rows_and_cells ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::array_column_spec_nested_braces ... ok
[INFO] [stdout] test rules::token_rules::latex_fraction::tests::dollar_wrapped_non_fraction_direct_apply_noop::case_4_alpha ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::matrix_letter_subscripts_empty_text ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::matrix_letter_subscripts_no_subscripts ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::matrix_letter_subscripts_non_digit_subscript ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::matrix_letter_subscripts_non_alpha_first ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::fraction_followed_by_slash_skipped ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::parse_letter_subscript_invalid_char ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::digit_without_fraction_noop ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::matrix_suffix_with_subscript_parts ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::simple_single_digit_fraction_replaces ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::parse_letter_subscript_no_underscore ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::matrix_letter_subscripts_valid ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::fraction_followed_by_tilde_skipped ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::fraction_only_no_prefix_or_suffix ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::matrix_suffix_no_subscript_pattern ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::multi_digit_treated_as_date_or_range ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::fraction_with_prefix_and_suffix ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::matrix_suffix_empty ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::parse_letter_subscript_missing_closing_brace ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::parse_letter_subscript_valid ... ok
[INFO] [stdout] test rules::token_rules::latex_math::matrix::tests::parse_letter_subscript_non_alpha_first ... ok
[INFO] [stdout] test rules::token_rules::latex_math::spacing::tests::content_needs_math_spacing_none_arm_returns_zero::case_1_prev_oob ... ok
[INFO] [stdout] test rules::token_rules::inline_fraction::tests::fraction_with_suffix_only ... ok
[INFO] [stdout] test rules::token_rules::latex_math::spacing::tests::content_needs_math_spacing_none_arm_returns_zero::case_2_next_oob ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_01_sub_0 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::spacing::tests::neighbor_is_korean_direct_english_word ... ok
[INFO] [stdout] test rules::token_rules::latex_math::spacing::tests::neighbor_is_korean_direct_korean_word ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_02_sub_1 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::spacing::tests::neighbor_is_korean_no_neighbour ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_05_sub_4 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::spacing::tests::neighbor_is_korean_space_then_korean ... ok
[INFO] [stdout] test rules::token_rules::latex_math::spacing::tests::next_content_needs_math_spacing_word_or_preencoded_returns_2 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::strip::tests::escaped_open_brace_then_plain_close ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::latex_accents_and_marks ... ok
[INFO] [stdout] test rules::token_rules::latex_math::strip::tests::strip_command_sweep ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::latex_matrix_environments ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::latex_brackets_diverse ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_07_sub_6 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_06_sub_5 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_08_sub_7 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_09_sub_8 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::latex_fractions_diverse ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::colon_math_pattern_letters_avoid_prose_wrap ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::latex_command_stripping_diverse ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::test_strip_subscript ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_10_sub_9 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_11_ascii_letter_none ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_12_ascii_digit_none ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::test_strip_exponent ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::test_strip_geq ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::test_strip_neq ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_03_sub_2 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::subscript_digit_to_ascii_table::case_04_sub_3 ... ok
[INFO] [stdout] test rules::token_rules::latex_math::tests::test_strip_sin ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::dollar_letter_prev_direct_korean_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::dollar_comma_list_korean_prose_wrap_direct ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::combining_mark_or_special_char_triggers_decimal_spacing ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::dollar_letter_prev_fraction_token ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::colon_math_each_operator_character ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::dollar_single_letter_no_suffix ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::dollar_single_letter_korean_prose_wrap_direct ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::ellipsis_prev_math_letter_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::dollar_letter_prev_preencoded_falls_through ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::ellipsis_prev_preencoded_no_space ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::greek_list_prev_is_space_then_korean ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::greek_list_prev_space_with_non_korean_prev_prev ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::greek_letter_list_with_korean_suffix ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::greek_list_with_next_non_word_returns_none ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::greek_list_at_start_of_input_no_prev_korean ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::greek_list_prev_direct_korean_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::dollar_letter_prev_preencoded_no_space_two_leading ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::dollar_two_letter_korean_prose_plain_path ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::ellipsis_prev_subscript_digit_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::greek_list_with_multi_space_between_pair ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::has_content_skipping_space_backward_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::has_content_skipping_space_forward_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::is_logic_symbol_word_matches_only_xor::case_1_xor_alone ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::is_logic_symbol_word_matches_only_xor::case_2_wedge_alone ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::is_logic_symbol_word_matches_only_xor::case_3_xor_then_letter ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::is_logic_symbol_word_matches_only_xor::case_4_empty_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::latex_prev_through_space_is_preencoded ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::latex_single_letter_in_korean_prose_wrap ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_ellipsis_after_preencoded_prev ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_ellipsis_after_fraction_prev ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_encoder_error_falls_back_to_noop ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::latex_fallthrough_to_general_wrap ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_ellipsis_followed_by_korean_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::logic_symbol_vs_plain_letter_neighbor ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::latex_with_no_space_before_content_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::latex_single_letter_korean_prose_wrapping ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_ellipsis_at_end_no_next ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::latex_comma_list_korean_prose ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_ellipsis_with_comma_then_korean ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_ellipsis_after_math_letter ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::latex_simple_numeric_no_extra_boundary ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_followed_by_ascii_word_not_korean ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_encoder_failure_falls_through_to_noop ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::math_with_special_char_decimal_context_spacing ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::multi_letter_korean_ident_prev_direct_korean_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::multi_letter_korean_ident_prev_fraction_falls_through ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::multiletter_identifier_with_prev_preencoded_does_not_trigger ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::next_indexed_word_skip_space_trails_off_end ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::next_word_skip_space_trails_off_end ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::multiletter_upper_identifier_with_math_keyword ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::multiletter_lower_identifier_with_math_keyword ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::non_math_word_after_preencoded_with_space ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_is_math_context_for_ellipsis_non_word_terminator ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::mixed_math_word_after_korean_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_adjacent_words ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_at_index_zero ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_neighbor_resolution ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_next_runs_off_end ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_next_skips_single_space_to_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_oob_index ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_prev_runs_off_beginning ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_prev_skips_single_space_to_word ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_skips_spaces ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::prev_next_words_stops_at_non_word_token ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::multiletter_identifier_with_prev_korean_word_no_space ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::run_leading_spaces_two_branch_via_direct_tokens ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::run_err_arm_returns_noop_for_unencodable_math ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::therefore_between_preencoded_both_sides ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::therefore_followed_by_fraction ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::set_builder_unclosed_does_not_merge ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::word_is_math_letter_context_branches ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::uppercase_around_logic_symbol_treated_as_math ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::therefore_with_prev_fraction ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::set_builder_with_non_word_token_between_breaks ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::set_builder_with_preencoded_inside_breaks_loop ... ok
[INFO] [stdout] test rules::token_rules::math_expression::detect::tests::arc_trig_text_detection ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::substantial_math_after_korean ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::therefore_with_prev_space_then_preencoded ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::special_incrementum_pattern_with_paren_plus_paren ... ok
[INFO] [stdout] test rules::token_rules::math_expression::detect::tests::is_math_expression_bracket_digit ... ok
[INFO] [stdout] test rules::token_rules::math_expression::detect::tests::is_math_expression_signed_minus_digit ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::set_builder_brace_pipe_merges_inner_korean ... ok
[INFO] [stdout] test rules::token_rules::math_expression::apply::tests::therefore_between_content_gets_spaces ... ok
[INFO] [stdout] test rules::token_rules::math_expression::helpers::tests::split_mixed_math_word_whole_word_no_split ... ok
[INFO] [stdout] test rules::token_rules::math_expression::detect::tests::is_math_expression_letter_slash_letter ... ok
[INFO] [stdout] test rules::token_rules::math_expression::helpers::tests::split_mixed_math_word_non_korean_suffix_continues ... ok
[INFO] [stdout] test rules::token_rules::math_expression::helpers::tests::split_mixed_math_word_korean_prefix_math_suffix_encode_fail ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::is_strong_mixed_math_candidate_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::is_subscript_table ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::is_rule_68_compact_notation_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::is_superscript_table ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::split_mixed_math_word_extracts_math_prefix ... ok
[INFO] [stdout] test rules::token_rules::math_expression::helpers::tests::try_encode_mixed_math_slice_empty_returns_none ... ok
[INFO] [stdout] test rules::token_rules::math_expression::helpers::tests::try_encode_math_slice_fallback_to_regular_encode ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::build_word_token_basic ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::is_korean_char_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::is_combining_math_mark_table ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::is_korean_suffix_char_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::is_middle_dot_numeric_word_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::rule_44_space_before_korean_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::split_mixed_math_word_keeps_plain_mixed_english_korean ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::math_expression_diverse_inputs ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_decimal_starting_with_digit_is_not_math ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_decimal_starting_with_dot_is_math ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_arctrig_prefix::case_1 ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_arctrig_prefix::case_2 ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_arctrig_prefix::case_3 ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_base_notation ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_digit_letter_with_operator ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_digit_then_letter ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_letter_slash_letter_fraction::case_1_upper_force_normal ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_letter_slash_letter_fraction::case_2_lower_pair ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_letter_slash_letter_fraction::case_3_xy_pair ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_letter_slash_letter_fraction::case_4_pq_pair ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_letter_slash_letter_fraction::case_5_trailing_slash_not_math ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_negative_infinity ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_relation_shorthand ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_signed_numeric::case_1 ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_signed_numeric::case_2 ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_signed_numeric::case_3 ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_signed_numeric::case_5 ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_unicode_fraction_char ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_signed_numeric::case_4 ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_with_superscript ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_not_math_letter_then_digit ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_symbol_digit_combo ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::try_encode_math_slice_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_with_operator ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_not_math_plain_english ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_with_standalone_function_name ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::try_encode_mixed_math_prefix_paths ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::try_encode_mixed_math_slice_paths ... ok
[INFO] [stdout] test rules::token_rules::quote_attachment::tests::apply_with_no_next_word_returns_noop ... ok
[INFO] [stdout] test rules::token_rules::quote_attachment::tests::attaches_space_inside_ascii_double_quote ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_continuation_path_with_suffix ... ok
[INFO] [stdout] test rules::token_rules::quote_attachment::tests::quote_delta_ends_with_ascii_double_decrements ... ok
[INFO] [stdout] test rules::token_rules::quote_attachment::tests::pipeline_keeps_attachment_for_ascii_quote_sentence ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_non_word_token_noop ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_prev_ascii_word_uses_continuation ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_non_roman_word_noop ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_roman_with_suffix_alpha_noop ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_pure_roman_replace ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_single_letter_with_indicator_replace ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::encode_roman_segment_upper_single_then_multi ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_upper_lower_roman_char_basic::case_3_upper_x ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_roman_hyphen_roman_with_suffix ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_roman_hyphen_with_ascii_suffix_falls_through ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_single_letter_no_indicator_noop ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_upper_lower_roman_char_basic::case_5_lower_v ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_upper_lower_roman_char_basic::case_7_non_roman_upper ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_upper_lower_roman_char_basic::case_8_non_roman_lower ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_01_empty ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_05_three ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_upper_lower_roman_char_basic::case_1_upper_i ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_07_five ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_04_two ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_03_one ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_upper_lower_roman_char_basic::case_2_upper_v ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_upper_lower_roman_char_basic::case_4_lower_i ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::apply_roman_hyphen_roman_no_suffix ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_02_mixed_case ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_06_four ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_math_with_function ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_08_six ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_upper_lower_roman_char_basic::case_6_lower_x ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_10_eight ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_11_nine ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_09_seven ... ok
[INFO] [stdout] test rules::token_rules::math_expression::tests::test_is_not_math_korean ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_12_ten ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_17_thirty_nine ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_13_eleven ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_14_fifteen ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_15_twenty_nine ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::roman_hyphen_indicator_when_no_prev_ascii ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_19_invalid_ones_iiii ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_after_hyphen_paths::case_1_hyphen_then_roman ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_16_thirty ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_21_non_roman_char ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::roman_case_all_upper_all_lower_mixed::case_1_all_upper ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_after_hyphen_paths::case_4_lone_hyphen ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::roman_case_all_upper_all_lower_mixed::case_2_all_lower ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_after_hyphen_paths::case_5_hyphen_then_non_roman ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_roman_prefix_various::case_1_all_roman ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::roman_case_all_upper_all_lower_mixed::case_4_non_roman_char ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::roman_hyphen_continuation_with_direct_tokens ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::rule_phase_and_priority ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_after_hyphen_paths::case_3_no_leading_hyphen ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_after_hyphen_paths::case_2_hyphen_then_roman_then_alpha ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_20_invalid_ones_vv ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_roman_prefix_various::case_2_alpha_suffix ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::roman_case_all_upper_all_lower_mixed::case_3_mixed_case ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_roman_prefix_various::case_3_hyphen_suffix ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::apply_plain_word_noop ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_roman_prefix_various::case_4_no_roman_prefix ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::split_roman_prefix_various::case_5_empty ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::is_valid_roman_1_to_39_table::case_18_too_many_x ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::apply_year_suffix_comma ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::starts_with_ascii_alpha_branches::case_1_lowercase_alpha ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::starts_with_ascii_alpha_branches::case_2_uppercase_alpha ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::starts_with_ascii_alpha_branches::case_3_digit_prefix ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::starts_with_ascii_alpha_branches::case_4_empty ... ok
[INFO] [stdout] test rules::token_rules::roman_numeral::tests::starts_with_ascii_alpha_branches::case_5_symbol_prefix ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::apply_continuation_after_preencoded ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::apply_continuation_after_year_word ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::apply_non_word_noop ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::apply_year_suffix_semicolon ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::citation_with_mode_token_before_breaks_false ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::is_rule33_emission_detects_own_output ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::match_year_suffix_paths::case_1_valid_with_comma ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::match_year_suffix_paths::case_3_valid_with_period ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::match_year_suffix_paths::case_4_missing_punctuation ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::match_year_suffix_paths::case_6_non_digit_in_year ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::match_year_suffix_paths::case_7_uppercase_letter ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::rule_phase_priority ... ok
[INFO] [stdout] test rules::token_rules::rule_73_appendix_placeholder::tests::non_word_token_returns_noop ... ok
[INFO] [stdout] test rules::token_rules::rule_73_appendix_placeholder::tests::placeholder_next_word_not_eunneun_returns_noop ... ok
[INFO] [stdout] test rules::token_rules::rule_73_appendix_placeholder::tests::placeholder_with_extra_chars_pushes_rest ... ok
[INFO] [stdout] test rules::token_rules::uppercase_passage::tests::uppercase_passage_enter_english_direct ... ok
[INFO] [stdout] test rules::token_rules::uppercase_passage::tests::uppercase_passage_enter_english_continue_direct ... ok
[INFO] [stdout] test rules::token_rules::uppercase_passage::tests::uppercase_passage_grade1_indicator_for_shortform_direct ... ok
[INFO] [stdout] test split::tests::korean_char_get_char_all_variants::case_2 ... ok
[INFO] [stdout] test split::tests::split_korean_char_full_syllable::case_2 ... ok
[INFO] [stdout] test split::tests::split_korean_char_full_syllable::case_3 ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::match_year_suffix_paths::case_5_too_many_letters ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::match_year_suffix_paths::case_8_wrong_punctuation ... ok
[INFO] [stdout] test split::tests::korean_char_get_char_all_variants::case_1 ... ok
[INFO] [stdout] test rules::token_rules::rule_73_appendix_placeholder::tests::placeholder_followed_by_end_returns_noop ... ok
[INFO] [stdout] test rules::token_rules::rule_73_appendix_placeholder::tests::non_placeholder_word_returns_noop ... ok
[INFO] [stdout] test split::tests::korean_char_get_char_all_variants::case_3 ... ok
[INFO] [stdout] test split::tests::split_korean_char_full_syllable::case_1 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_04 ... ok
[INFO] [stdout] test split::tests::split_korean_char_full_syllable::case_6 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_05 ... ok
[INFO] [stdout] test split::tests::split_korean_char_full_syllable::case_7 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_03 ... ok
[INFO] [stdout] test split::tests::split_korean_char_non_korean_returns_err::case_1 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_07 ... ok
[INFO] [stdout] test split::tests::split_korean_char_full_syllable::case_4 ... ok
[INFO] [stdout] test split::tests::split_korean_char_non_korean_returns_err::case_2 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_01 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_02 ... ok
[INFO] [stdout] test split::tests::split_korean_char_full_syllable::case_5 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_08 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_09 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_10 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_06 ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::apply_year_suffix_period ... ok
[INFO] [stdout] test rules::token_rules::rule_33_citation::tests::match_year_suffix_paths::case_2_valid_with_semicolon ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_11 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_choseong::case_12 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_01 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_02 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_03 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_04 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_05 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_07 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_10 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_06 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_09 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_11 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_08 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_12 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_14 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_15 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_13 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_17 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_16 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_19 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_20 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_18 ... ok
[INFO] [stdout] test split::tests::split_korean_char_single_jungseong::case_21 ... ok
[INFO] [stdout] test split::tests::split_korean_jauem_returns_err_for_non_jamo::case_1 ... ok
[INFO] [stdout] test split::tests::split_korean_jauem_returns_err_for_non_jamo::case_2 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_02_single_quote ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_01_double_quote ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_05_midline_ellipsis ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_03_tilde ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_04_horizontal_ellipsis ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_06_exclamation ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_07_period ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_08_comma ... ok
[INFO] [stdout] test state_bleed_tests::cached_encoder_resets_between_different_contexts ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_09_question ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_10_colon ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_11_semicolon ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_13_asterisk ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_12_underscore ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_14_open_paren ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_english_char_symbol_shortcut_variants ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_01 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_04 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_02 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_05 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_06 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_encode_char_symbol_shortcut::case_15_close_paren ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_07 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_08 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_09 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_10 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_03 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_11 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_12 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_13 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_15 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_16 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_18 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_19 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_14 ... ok
[INFO] [stdout] test symbol_shortcut::test::test_is_symbol_char::case_17 ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_03_bmi_paren ... ok
[INFO] [stdout] test test::comma_prefix_variants_and_korean_following ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_02_an_nyeong_nl ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_05_che_jil_bmi ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_01_sangsang ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_04_jisu_bmi ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_12_keok ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_13_geot ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_14_kg ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_09_table_of_contents ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_16_naru_plus_bae ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_08_contents ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_06_roma_bracket ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_15_kg_paren ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_11_triangle_jamo ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_10_bonjour ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_07_ye_quoted ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_23_decimal ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_18_welcome_to_korea ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_19_sns_eseo ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_20_atm ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_22_thousand ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_28_kkeot ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_17_phone_dash ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_24_id_number ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_33_kkeunh_gyeoss ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_21_atm_korean ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_26_sohwaeg ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_29_tv_reul ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_30_kkeoteoyo ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_31_five_un_six ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_32_kkeunh ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_27_cap_x ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_34_si_yeyo ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_38_cheongso_reul ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_37_saiseu ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_25_five_minus_three ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_39_geos ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_35_jeong ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_40_geos_i ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_43_an ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_44_an_nyeong ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_45_an_nyeong_ha ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_36_na_yo ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_41_i_oss ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_46_seyo ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_47_ha_seyo ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_48_an_nyeong_ha_seyo ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_50_geuraeseo_jakdong ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_42_dot ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_51_geuraeseo_hanā ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_57_areum ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_58_sa ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_59_sang ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_49_an_nyeong_hasibnikka ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_54_i_norae ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_56_reum ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_52_geuraeseo_yo ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_53_geuraeseo_yo_q ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_65_unicode_half ... ok
[INFO] [stdout] test test::encode_with_formatting_rejects_non_boundary_range ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_64_ascii_1_2 ... ok
[INFO] [stdout] test test::encode_with_formatting_wraps_markers ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_55_a ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_61_modeun_things ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_63_latex_3_frac_1_4 ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_60_areumda_sesang ... ok
[INFO] [stdout] test test::english_symbol_terminator_variants::case_1_slash_forced_symbol ... ok
[INFO] [stdout] test test::english_continuation_after_inline_number ... ok
[INFO] [stdout] test test::encode_to_unicode_table::case_62_latex_frac_3_4 ... ok
[INFO] [stdout] test test::next_word_single_letter_sets_continuation_flag ... ok
[INFO] [stdout] test test::english_symbol_terminator_variants::case_2_underscore_leave_english ... ok
[INFO] [stdout] test test::next_word_symbol_rules_apply::case_1_forced_symbol_inserts_terminator ... ok
[INFO] [stdout] test test::next_word_symbol_rules_apply::case_2_skip_symbol_requests_continuation ... ok
[INFO] [stdout] test utils::test::test_build_char ... ok
[INFO] [stdout] test utils::test::test_has_choseong_o ... ok
[INFO] [stdout] test word_shortcut::test::test_encode_word_shortcut ... ok
[INFO] [stdout] test test::test_encoder_streaming ... ok
[INFO] [stdout] test test::next_word_with_invalid_char_returns_error ... ok
[INFO] [stdout] test unicode::test::encode_unicode_maps_byte_to_braille_offset ... ok
[INFO] [stdout] test test::symbol_triggers_english_segment_at_start ... ok
[INFO] [stdout] test unicode::test::encode_unicode_255_returns_newline ... ok
[INFO] [stdout] test test::test_by_testcase ... FAILED
[INFO] [stdout] test test::test_accuracy_report ... FAILED
[INFO] [stdout] test unicode::test::decode_unicode_panics_for_non_braille_char - should panic ... ok
[INFO] [stdout] test test::test_encode_proptest ... ok
[INFO] [stdout] ⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁⠁test cli::tests::test_braillify_error_handling ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test::test_by_testcase stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test::test_by_testcase' (4098) panicked at src/lib.rs:1089:56:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56cef5736481 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56cef5736481 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56cef5736481 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56cef5736481 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56cef574ef5a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56cef574ef5a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x56cef573c89c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x56cef573c89c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x56cef57121d6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56cef57121d6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56cef572dd39 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56cef526d610 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x56cef526d610 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x56cef572def2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x56cef572def2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x56cef5712282 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x56cef57090b9 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56cef571300d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x56cef574f7dc - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56cef574f552 - core[6883ba1bc0fe4ed1]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1870:5
[INFO] [stdout]   20:     0x56cef50fd766 - <core[6883ba1bc0fe4ed1]::result::Result<std[73adb7dc35730857]::fs::ReadDir, core[6883ba1bc0fe4ed1]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1231:23
[INFO] [stdout]   21:     0x56cef50fd766 - braillify[212cea7df313d7a7]::test::collect_test_files
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:1089:56
[INFO] [stdout]   22:     0x56cef50fea0a - braillify[212cea7df313d7a7]::test::test_by_testcase
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:1111:21
[INFO] [stdout]   23:     0x56cef50f7dd7 - braillify[212cea7df313d7a7]::test::test_by_testcase::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:1110:30
[INFO] [stdout]   24:     0x56cef51a2916 - <braillify[212cea7df313d7a7]::test::test_by_testcase::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x56cef526094b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x56cef526094b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x56cef526df95 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x56cef526df95 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x56cef526df95 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   30:     0x56cef526df95 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x56cef526df95 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x56cef526df95 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x56cef526df95 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x56cef5268a44 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x56cef5268a44 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x56cef52710e2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x56cef52710e2 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x56cef52710e2 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   39:     0x56cef52710e2 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x56cef52710e2 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x56cef52710e2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x56cef52710e2 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x56cef573596f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   44:     0x56cef573596f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   45:     0x7b39984b8aa4 - <unknown>
[INFO] [stdout]   46:     0x7b3998545a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test::test_accuracy_report stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test::test_accuracy_report' (4097) panicked at src/lib.rs:1089:56:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56cef5736481 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x56cef5736481 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x56cef5736481 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x56cef5736481 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x56cef574ef5a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x56cef574ef5a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x56cef573c89c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x56cef573c89c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x56cef57121d6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x56cef57121d6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x56cef572dd39 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x56cef526d610 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x56cef526d610 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x56cef572def2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x56cef572def2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x56cef5712282 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x56cef57090b9 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x56cef571300d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x56cef574f7dc - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x56cef574f552 - core[6883ba1bc0fe4ed1]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1870:5
[INFO] [stdout]   20:     0x56cef50fd766 - <core[6883ba1bc0fe4ed1]::result::Result<std[73adb7dc35730857]::fs::ReadDir, core[6883ba1bc0fe4ed1]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1231:23
[INFO] [stdout]   21:     0x56cef50fd766 - braillify[212cea7df313d7a7]::test::collect_test_files
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:1089:56
[INFO] [stdout]   22:     0x56cef5103ab4 - braillify[212cea7df313d7a7]::test::test_accuracy_report
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:1487:21
[INFO] [stdout]   23:     0x56cef50f7e47 - braillify[212cea7df313d7a7]::test::test_accuracy_report::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:1486:30
[INFO] [stdout]   24:     0x56cef51a2956 - <braillify[212cea7df313d7a7]::test::test_accuracy_report::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x56cef526094b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x56cef526094b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x56cef526df95 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x56cef526df95 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x56cef526df95 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   30:     0x56cef526df95 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x56cef526df95 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x56cef526df95 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x56cef526df95 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x56cef5268a44 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x56cef5268a44 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x56cef52710e2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x56cef52710e2 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x56cef52710e2 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   39:     0x56cef52710e2 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x56cef52710e2 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x56cef52710e2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x56cef52710e2 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x56cef573596f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   44:     0x56cef573596f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   45:     0x7b39984b8aa4 - <unknown>
[INFO] [stdout]   46:     0x7b3998545a64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test::test_accuracy_report
[INFO] [stdout]     test::test_by_testcase
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1915 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.00s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302", kill_on_drop: false }`
[INFO] [stdout] 5bf2809d0be3747e51de3cdce469c0132b0fcc869a7f21d35fef9dffc61af302
