gitextract_jueqquxr/ ├── .dockerignore ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ └── docker-image.yml ├── .gitignore ├── Cargo.toml ├── Dockerfile ├── LICENSE ├── README.md ├── deny.toml ├── docker-compose.yaml ├── html/ │ └── assets/ │ ├── css/ │ │ ├── main.css │ │ ├── mobile.css │ │ ├── overlay/ │ │ │ ├── croppingOverlay.css │ │ │ ├── footerOverlay.css │ │ │ ├── imgUploadOverlay.css │ │ │ ├── notificationOverlay.css │ │ │ ├── overlayBase.css │ │ │ ├── radicalOverlay.css │ │ │ ├── settingsOverlay.css │ │ │ └── suggestionOverlay.css │ │ ├── page/ │ │ │ ├── aboutPage.css │ │ │ ├── errorPage.css │ │ │ ├── footer.css │ │ │ ├── helpPage.css │ │ │ ├── indexPage.css │ │ │ ├── infoPage.css │ │ │ ├── kanjiPage.css │ │ │ ├── multiPage/ │ │ │ │ ├── kana.css │ │ │ │ ├── kanji.css │ │ │ │ └── markdown.css │ │ │ ├── namePage.css │ │ │ ├── newsPage.css │ │ │ ├── sentencePage.css │ │ │ ├── wordExtensions/ │ │ │ │ ├── searchAnnotation.css │ │ │ │ └── sentenceReader.css │ │ │ └── wordPage.css │ │ ├── search/ │ │ │ ├── choices.css │ │ │ └── searchRow.css │ │ └── tools/ │ │ ├── alerts.css │ │ ├── pagination.css │ │ └── ripple.css │ ├── docs.html │ ├── fonts/ │ │ └── fonts.css │ ├── js/ │ │ ├── lib/ │ │ │ ├── d3.js │ │ │ ├── jc.js │ │ │ └── jotobaChoices.js │ │ ├── locales/ │ │ │ └── collection.js │ │ ├── mobile.js │ │ ├── page/ │ │ │ ├── infoPage.js │ │ │ ├── kanjiPage.js │ │ │ ├── newsPage.js │ │ │ ├── overlay/ │ │ │ │ ├── notifications.js │ │ │ │ ├── settings.js │ │ │ │ └── settings_overlay.js │ │ │ ├── sentencePage.js │ │ │ └── wordPage.js │ │ ├── qol.js │ │ ├── search/ │ │ │ ├── api.js │ │ │ ├── eventHandler.js │ │ │ ├── overlay/ │ │ │ │ ├── imageSearch.js │ │ │ │ ├── radicalSearch.js │ │ │ │ ├── speechSearch.js │ │ │ │ └── suggestionOverlay.js │ │ │ ├── search.js │ │ │ ├── shared.js │ │ │ └── suggestions.js │ │ └── tools/ │ │ ├── jotoTools.js │ │ ├── ripple.js │ │ ├── service-worker.js │ │ ├── theme.js │ │ ├── utils.js │ │ └── utils2.js │ └── settings/ │ ├── manifest.json │ └── opensearch.xml ├── jotoba_bin/ │ ├── Cargo.toml │ ├── benches/ │ │ ├── my_benchmark.rs │ │ └── resources.rs │ └── src/ │ ├── check.rs │ ├── cli.rs │ ├── main.rs │ └── webserver.rs ├── lib/ │ ├── api/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── app/ │ │ │ ├── completions/ │ │ │ │ ├── kanji/ │ │ │ │ │ ├── meaning.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── reading.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── names/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── opensearch/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── parse.rs │ │ │ │ ├── request.rs │ │ │ │ └── words/ │ │ │ │ ├── foreign.rs │ │ │ │ ├── hashtag.rs │ │ │ │ ├── kana_end_ext.rs │ │ │ │ ├── mod.rs │ │ │ │ └── native.rs │ │ │ ├── details/ │ │ │ │ ├── mod.rs │ │ │ │ ├── sentences.rs │ │ │ │ └── word.rs │ │ │ ├── img/ │ │ │ │ ├── mod.rs │ │ │ │ └── request.rs │ │ │ ├── kanji/ │ │ │ │ ├── ids_tree/ │ │ │ │ │ ├── builder.rs │ │ │ │ │ └── mod.rs │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ ├── news/ │ │ │ │ ├── detailed.rs │ │ │ │ ├── mod.rs │ │ │ │ └── short.rs │ │ │ ├── radical/ │ │ │ │ ├── kanji.rs │ │ │ │ ├── mod.rs │ │ │ │ └── search/ │ │ │ │ ├── jp_search.rs │ │ │ │ ├── meaning.rs │ │ │ │ └── mod.rs │ │ │ └── search/ │ │ │ ├── kanji.rs │ │ │ ├── mod.rs │ │ │ ├── names.rs │ │ │ ├── sentences.rs │ │ │ └── words.rs │ │ ├── internal/ │ │ │ ├── info/ │ │ │ │ ├── mod.rs │ │ │ │ └── words.rs │ │ │ └── mod.rs │ │ ├── lib.rs │ │ └── search/ │ │ ├── kanji/ │ │ │ └── mod.rs │ │ ├── mod.rs │ │ ├── name/ │ │ │ └── mod.rs │ │ ├── sentence/ │ │ │ └── mod.rs │ │ └── word/ │ │ └── mod.rs │ ├── config/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── engine/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs │ │ ├── pushable/ │ │ │ ├── counter.rs │ │ │ ├── f_max_cnt.rs │ │ │ ├── max_cnt.rs │ │ │ ├── mod.rs │ │ │ ├── push_dbg.rs │ │ │ ├── push_fn.rs │ │ │ └── push_mod.rs │ │ ├── relevance/ │ │ │ ├── data.rs │ │ │ ├── item.rs │ │ │ └── mod.rs │ │ ├── result.rs │ │ ├── task.rs │ │ └── utils.rs │ ├── error/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── api_error.rs │ │ └── lib.rs │ ├── frontend/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── about.rs │ │ │ ├── actix_ructe.rs │ │ │ ├── build.rs │ │ │ ├── direct.rs │ │ │ ├── help_page.rs │ │ │ ├── index.rs │ │ │ ├── lib.rs │ │ │ ├── liveness.rs │ │ │ ├── news_ep.rs │ │ │ ├── og_tags.rs │ │ │ ├── search_ep.rs │ │ │ ├── search_help.rs │ │ │ ├── session.rs │ │ │ ├── templ_utils.rs │ │ │ ├── unescaped.rs │ │ │ ├── url_query.rs │ │ │ ├── user_settings.rs │ │ │ └── web_error.rs │ │ └── templates/ │ │ ├── base.rs.html │ │ ├── base_index.rs.html │ │ ├── error_page.rs.html │ │ ├── functional/ │ │ │ └── render_sentence.rs.html │ │ ├── overlays/ │ │ │ ├── info/ │ │ │ │ ├── collocations.rs.html │ │ │ │ ├── definitions_jp.rs.html │ │ │ │ └── inflections.rs.html │ │ │ ├── mobile_overlays.rs.html │ │ │ ├── page/ │ │ │ │ ├── decomposition_graph.rs.html │ │ │ │ ├── image_crop.rs.html │ │ │ │ ├── loading.rs.html │ │ │ │ └── settings.rs.html │ │ │ ├── page_overlays.rs.html │ │ │ ├── search_overlays.rs.html │ │ │ └── searchbar/ │ │ │ ├── image_input.rs.html │ │ │ ├── radicals.rs.html │ │ │ ├── speech.rs.html │ │ │ └── suggestions.rs.html │ │ ├── pages/ │ │ │ ├── about.rs.html │ │ │ ├── info.rs.html │ │ │ ├── kanji.rs.html │ │ │ ├── names.rs.html │ │ │ ├── news.rs.html │ │ │ ├── search_help.rs.html │ │ │ ├── sentences.rs.html │ │ │ └── words.rs.html │ │ └── subtemplates/ │ │ ├── footer.rs.html │ │ ├── head.rs.html │ │ ├── input_dropdown.rs.html │ │ ├── main_body.rs.html │ │ └── paginator.rs.html │ ├── indexes/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── hashtag.rs │ │ ├── kanji/ │ │ │ ├── mod.rs │ │ │ ├── reading.rs │ │ │ └── reading_freq/ │ │ │ ├── k_freq_item.rs │ │ │ ├── mod.rs │ │ │ └── reading.rs │ │ ├── lib.rs │ │ ├── names.rs │ │ ├── ng_freq.rs │ │ ├── radical.rs │ │ ├── regex.rs │ │ ├── sentences.rs │ │ ├── storage/ │ │ │ ├── kanji.rs │ │ │ ├── mod.rs │ │ │ ├── name.rs │ │ │ ├── radical.rs │ │ │ ├── sentence.rs │ │ │ ├── suggestions.rs │ │ │ ├── utils.rs │ │ │ └── word.rs │ │ ├── term_freq.rs │ │ └── words/ │ │ ├── foreign.rs │ │ ├── mod.rs │ │ └── native.rs │ ├── japanese/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── furigana/ │ │ │ ├── generate/ │ │ │ │ ├── mod.rs │ │ │ │ └── traits.rs │ │ │ ├── mod.rs │ │ │ └── tests.rs │ │ ├── guessing.rs │ │ ├── lib.rs │ │ └── radicals.rs │ ├── localization/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── error.rs │ │ ├── language.rs │ │ ├── lib.rs │ │ └── traits.rs │ ├── news/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── resources/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src/ │ │ ├── lib.rs │ │ ├── retrieve/ │ │ │ ├── kanji.rs │ │ │ ├── mod.rs │ │ │ ├── name.rs │ │ │ ├── sentence.rs │ │ │ └── word.rs │ │ └── storage/ │ │ ├── feature.rs │ │ ├── kanji.rs │ │ ├── mod.rs │ │ ├── name.rs │ │ ├── sentence.rs │ │ └── word.rs │ ├── search/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── engine/ │ │ │ │ ├── mod.rs │ │ │ │ ├── names/ │ │ │ │ │ ├── foreign.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── native.rs │ │ │ │ ├── radical/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── sentences/ │ │ │ │ │ ├── foreign.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── native.rs │ │ │ │ └── words/ │ │ │ │ ├── foreign.rs │ │ │ │ ├── mod.rs │ │ │ │ └── native/ │ │ │ │ ├── k_reading.rs │ │ │ │ ├── mod.rs │ │ │ │ └── regex.rs │ │ │ ├── executor/ │ │ │ │ ├── mod.rs │ │ │ │ ├── out_builder.rs │ │ │ │ ├── producer.rs │ │ │ │ ├── search_result.rs │ │ │ │ └── searchable.rs │ │ │ ├── kanji/ │ │ │ │ ├── mod.rs │ │ │ │ ├── order.rs │ │ │ │ ├── result.rs │ │ │ │ └── tag_only.rs │ │ │ ├── lib.rs │ │ │ ├── name/ │ │ │ │ ├── mod.rs │ │ │ │ ├── order/ │ │ │ │ │ ├── foreign.rs │ │ │ │ │ ├── japanese.rs │ │ │ │ │ └── mod.rs │ │ │ │ └── producer/ │ │ │ │ ├── foreign.rs │ │ │ │ ├── kanji_reading.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── native/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── split.rs │ │ │ │ └── sequence.rs │ │ │ ├── query/ │ │ │ │ ├── form.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── parser/ │ │ │ │ │ ├── lang.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── prefix.rs │ │ │ │ │ ├── req_terms.rs │ │ │ │ │ └── tags.rs │ │ │ │ ├── prefix.rs │ │ │ │ ├── regex.rs │ │ │ │ ├── tags.rs │ │ │ │ └── user_settings.rs │ │ │ ├── radical/ │ │ │ │ ├── mod.rs │ │ │ │ └── word/ │ │ │ │ ├── foreign.rs │ │ │ │ ├── mod.rs │ │ │ │ └── romaji.rs │ │ │ ├── sentence/ │ │ │ │ ├── mod.rs │ │ │ │ ├── order/ │ │ │ │ │ ├── foreign.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── native.rs │ │ │ │ ├── producer/ │ │ │ │ │ ├── filter.rs │ │ │ │ │ ├── foreign.rs │ │ │ │ │ ├── kanji.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── native.rs │ │ │ │ │ ├── sequence.rs │ │ │ │ │ └── tag.rs │ │ │ │ └── result.rs │ │ │ └── word/ │ │ │ ├── filter.rs │ │ │ ├── kanji.rs │ │ │ ├── mod.rs │ │ │ ├── order/ │ │ │ │ ├── foreign.rs │ │ │ │ ├── kanji_reading.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── native.rs │ │ │ │ └── regex.rs │ │ │ ├── producer/ │ │ │ │ ├── foreign/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── romaji.rs │ │ │ │ │ └── task.rs │ │ │ │ ├── japanese/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── number.rs │ │ │ │ │ ├── sentence_reader.rs │ │ │ │ │ └── task.rs │ │ │ │ ├── k_reading.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── regex.rs │ │ │ │ ├── sequence.rs │ │ │ │ └── tag.rs │ │ │ └── result.rs │ │ └── tests/ │ │ └── search_test.rs │ ├── sentence_reader/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── analyzer.rs │ │ ├── grammar/ │ │ │ ├── mod.rs │ │ │ ├── rule.rs │ │ │ └── rule_set.rs │ │ ├── lib.rs │ │ ├── output.rs │ │ └── sentence/ │ │ ├── inflection.rs │ │ ├── mod.rs │ │ ├── owned_morpheme.rs │ │ └── part.rs │ ├── types/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── api/ │ │ │ ├── app/ │ │ │ │ ├── completions/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── details/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── query.rs │ │ │ │ │ ├── sentence.rs │ │ │ │ │ └── word.rs │ │ │ │ ├── image/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── kanji/ │ │ │ │ │ ├── ids_tree.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── news/ │ │ │ │ │ ├── long.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── short.rs │ │ │ │ ├── radical/ │ │ │ │ │ ├── find_kanji.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── search.rs │ │ │ │ └── search/ │ │ │ │ ├── mod.rs │ │ │ │ ├── query.rs │ │ │ │ └── responses/ │ │ │ │ ├── k_compounds.rs │ │ │ │ ├── kanji.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── names.rs │ │ │ │ ├── sentences.rs │ │ │ │ └── words/ │ │ │ │ ├── inflection.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── sentence.rs │ │ │ │ └── word.rs │ │ │ ├── internal/ │ │ │ │ ├── info/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── words.rs │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ └── search/ │ │ │ ├── kanji.rs │ │ │ ├── mod.rs │ │ │ ├── name.rs │ │ │ ├── sentence.rs │ │ │ └── word.rs │ │ ├── jotoba/ │ │ │ ├── indexes/ │ │ │ │ ├── hashtag.rs │ │ │ │ └── mod.rs │ │ │ ├── kanji/ │ │ │ │ ├── mod.rs │ │ │ │ ├── radical.rs │ │ │ │ └── reading.rs │ │ │ ├── language/ │ │ │ │ ├── mod.rs │ │ │ │ └── param.rs │ │ │ ├── mod.rs │ │ │ ├── names/ │ │ │ │ ├── mod.rs │ │ │ │ └── name_type.rs │ │ │ ├── pagination/ │ │ │ │ ├── mod.rs │ │ │ │ └── page.rs │ │ │ ├── search/ │ │ │ │ ├── guess.rs │ │ │ │ ├── help.rs │ │ │ │ ├── mod.rs │ │ │ │ └── query_type.rs │ │ │ ├── sentences/ │ │ │ │ ├── mod.rs │ │ │ │ ├── tag.rs │ │ │ │ └── translation.rs │ │ │ └── words/ │ │ │ ├── dialect.rs │ │ │ ├── dict.rs │ │ │ ├── field.rs │ │ │ ├── foreign_language.rs │ │ │ ├── gtype.rs │ │ │ ├── inflection.rs │ │ │ ├── information.rs │ │ │ ├── misc.rs │ │ │ ├── mod.rs │ │ │ ├── part_of_speech.rs │ │ │ ├── pitch/ │ │ │ │ ├── border.rs │ │ │ │ ├── mod.rs │ │ │ │ └── raw_data.rs │ │ │ ├── priority.rs │ │ │ ├── reading/ │ │ │ │ ├── iter.rs │ │ │ │ └── mod.rs │ │ │ └── sense.rs │ │ ├── lib.rs │ │ └── raw/ │ │ ├── jmdict/ │ │ │ └── mod.rs │ │ ├── jmnedict/ │ │ │ └── mod.rs │ │ ├── kanjidict/ │ │ │ └── mod.rs │ │ └── mod.rs │ └── utils/ │ ├── Cargo.toml │ └── src/ │ ├── binary_search.rs │ ├── korean.rs │ └── lib.rs ├── locales/ │ ├── de.mo │ ├── de.po │ ├── en.mo │ ├── en.po │ ├── hu.mo │ └── hu.po ├── rustfmt.toml └── scripts/ └── gen_locales.sh