nv-ingest-api 2025.8.24.dev20250824__tar.gz → 2025.8.26.dev20250826__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nv-ingest-api might be problematic. Click here for more details.
- {nv_ingest_api-2025.8.24.dev20250824/src/nv_ingest_api.egg-info → nv_ingest_api-2025.8.26.dev20250826}/PKG-INFO +1 -1
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/image/chart_extractor.py +12 -2
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/image/infographic_extractor.py +13 -2
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/image/table_extractor.py +12 -2
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/ocr.py +37 -14
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826/src/nv_ingest_api.egg-info}/PKG-INFO +1 -1
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/LICENSE +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/MANIFEST.in +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/README.md +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/pyproject.toml +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/setup.cfg +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/interface/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/interface/extract.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/interface/mutate.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/interface/store.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/interface/transform.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/interface/utility.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/enums/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/enums/common.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/audio/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/audio/audio_extraction.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/docx/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/docx/docx_extractor.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/docx/engines/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/docx/engines/docxreader_helpers/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/docx/engines/docxreader_helpers/docx_helper.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/docx/engines/docxreader_helpers/docxreader.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/html/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/html/html_extractor.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/image/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/image/image_extractor.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/image/image_helpers/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/image/image_helpers/common.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/engines/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/engines/adobe.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/engines/llama.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/engines/nemoretriever.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/engines/pdf_helpers/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/engines/pdfium.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/engines/tika.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/engines/unstructured_io.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pdf/pdf_extractor.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pptx/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pptx/engines/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pptx/engines/pptx_helper.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/extract/pptx/pptx_extractor.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/meta/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/meta/udf.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/mutate/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/mutate/deduplicate.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/mutate/filter.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/control_message_task.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/ingest_control_message.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/default_values.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/cached.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/decorators.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/deplot.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/helpers.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/nemoretriever_parse.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/parakeet.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/text_embedding.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/vlm.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/model_interface/yolox.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/nim_client.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/nim/nim_model_interface.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/tracing/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/tracing/latency.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/tracing/logging.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/primitives/tracing/tagging.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/extract_audio_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/extract_chart_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/extract_docx_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/extract_html_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/extract_image_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/extract_infographic_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/extract_pdf_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/extract_pptx_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/extract/extract_table_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/message_brokers/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/message_brokers/message_broker_client_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/message_brokers/request_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/message_brokers/response_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/meta/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/meta/base_model_noext.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/meta/ingest_job_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/meta/metadata_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/meta/udf.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/mutate/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/mutate/mutate_image_dedup_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/store/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/store/store_embedding_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/store/store_image_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/transform/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/transform/transform_image_caption_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/transform/transform_image_filter_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/transform/transform_text_embedding_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/schemas/transform/transform_text_splitter_schema.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/store/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/store/embed_text_upload.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/store/image_upload.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/transform/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/transform/caption_image.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/transform/embed_text.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/internal/transform/split_text.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/control_message/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/control_message/validators.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/converters/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/converters/bytetools.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/converters/containers.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/converters/datetools.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/converters/dftools.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/converters/formats.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/converters/type_mappings.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/detectors/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/detectors/language.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/exception_handlers/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/exception_handlers/converters.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/exception_handlers/decorators.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/exception_handlers/detectors.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/exception_handlers/pdf.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/exception_handlers/schemas.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/image_processing/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/image_processing/clustering.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/image_processing/processing.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/image_processing/table_and_chart.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/image_processing/transforms.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/imports/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/imports/callable_signatures.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/imports/dynamic_resolvers.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/introspection/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/introspection/class_inspect.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/introspection/function_inspect.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/logging/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/logging/configuration.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/logging/sanitize.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/message_brokers/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/message_brokers/simple_message_broker/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/message_brokers/simple_message_broker/broker.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/message_brokers/simple_message_broker/ordered_message_queue.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/message_brokers/simple_message_broker/simple_client.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/metadata/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/metadata/aggregators.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/multi_processing/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/multi_processing/mp_pool_singleton.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/nim/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/pdf/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/pdf/pdfium.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/schema/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/schema/schema_validator.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/service_clients/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/service_clients/client_base.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/service_clients/kafka/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/service_clients/redis/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/service_clients/redis/redis_client.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/service_clients/rest/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/service_clients/rest/rest_client.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/string_processing/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/string_processing/configuration.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/string_processing/yaml.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/system/__init__.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api/util/system/hardware_info.py +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api.egg-info/SOURCES.txt +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api.egg-info/dependency_links.txt +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api.egg-info/requires.txt +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/nv_ingest_api.egg-info/top_level.txt +0 -0
- {nv_ingest_api-2025.8.24.dev20250824 → nv_ingest_api-2025.8.26.dev20250826}/src/version.py +0 -0
|
@@ -96,13 +96,23 @@ def _run_chart_inference(
|
|
|
96
96
|
future_ocr_kwargs.update(
|
|
97
97
|
model_name="paddle",
|
|
98
98
|
)
|
|
99
|
-
|
|
99
|
+
elif ocr_model_name == "scene_text":
|
|
100
100
|
future_ocr_kwargs.update(
|
|
101
|
-
model_name=
|
|
101
|
+
model_name=ocr_model_name,
|
|
102
102
|
input_names=["input", "merge_levels"],
|
|
103
103
|
dtypes=["FP32", "BYTES"],
|
|
104
104
|
merge_level="paragraph",
|
|
105
105
|
)
|
|
106
|
+
elif ocr_model_name == "scene_text_ensemble":
|
|
107
|
+
future_ocr_kwargs.update(
|
|
108
|
+
model_name=ocr_model_name,
|
|
109
|
+
input_names=["INPUT_IMAGE_URLS", "MERGE_LEVELS"],
|
|
110
|
+
output_names=["OUTPUT"],
|
|
111
|
+
dtypes=["BYTES", "BYTES"],
|
|
112
|
+
merge_level="paragraph",
|
|
113
|
+
)
|
|
114
|
+
else:
|
|
115
|
+
raise ValueError(f"Unknown OCR model name: {ocr_model_name}")
|
|
106
116
|
|
|
107
117
|
with ThreadPoolExecutor(max_workers=2) as executor:
|
|
108
118
|
future_yolox = executor.submit(yolox_client.infer, **future_yolox_kwargs)
|
|
@@ -108,13 +108,24 @@ def _update_infographic_metadata(
|
|
|
108
108
|
infer_kwargs.update(
|
|
109
109
|
model_name="paddle",
|
|
110
110
|
)
|
|
111
|
-
|
|
111
|
+
elif ocr_model_name == "scene_text":
|
|
112
112
|
infer_kwargs.update(
|
|
113
|
-
model_name=
|
|
113
|
+
model_name=ocr_model_name,
|
|
114
114
|
input_names=["input", "merge_levels"],
|
|
115
115
|
dtypes=["FP32", "BYTES"],
|
|
116
116
|
merge_level="paragraph",
|
|
117
117
|
)
|
|
118
|
+
elif ocr_model_name == "scene_text_ensemble":
|
|
119
|
+
infer_kwargs.update(
|
|
120
|
+
model_name=ocr_model_name,
|
|
121
|
+
input_names=["INPUT_IMAGE_URLS", "MERGE_LEVELS"],
|
|
122
|
+
output_names=["OUTPUT"],
|
|
123
|
+
dtypes=["BYTES", "BYTES"],
|
|
124
|
+
merge_level="paragraph",
|
|
125
|
+
)
|
|
126
|
+
else:
|
|
127
|
+
raise ValueError(f"Unknown OCR model name: {ocr_model_name}")
|
|
128
|
+
|
|
118
129
|
try:
|
|
119
130
|
ocr_results = ocr_client.infer(data_ocr, **infer_kwargs)
|
|
120
131
|
except Exception as e:
|
|
@@ -96,13 +96,23 @@ def _run_inference(
|
|
|
96
96
|
future_ocr_kwargs.update(
|
|
97
97
|
model_name="paddle",
|
|
98
98
|
)
|
|
99
|
-
|
|
99
|
+
elif ocr_model_name == "scene_text":
|
|
100
100
|
future_ocr_kwargs.update(
|
|
101
|
-
model_name=
|
|
101
|
+
model_name=ocr_model_name,
|
|
102
102
|
input_names=["input", "merge_levels"],
|
|
103
103
|
dtypes=["FP32", "BYTES"],
|
|
104
104
|
merge_level="word",
|
|
105
105
|
)
|
|
106
|
+
elif ocr_model_name == "scene_text_ensemble":
|
|
107
|
+
future_ocr_kwargs.update(
|
|
108
|
+
model_name=ocr_model_name,
|
|
109
|
+
input_names=["INPUT_IMAGE_URLS", "MERGE_LEVELS"],
|
|
110
|
+
output_names=["OUTPUT"],
|
|
111
|
+
dtypes=["BYTES", "BYTES"],
|
|
112
|
+
merge_level="word",
|
|
113
|
+
)
|
|
114
|
+
else:
|
|
115
|
+
raise ValueError(f"Unknown OCR model name: {ocr_model_name}")
|
|
106
116
|
|
|
107
117
|
with ThreadPoolExecutor(max_workers=2) as executor:
|
|
108
118
|
future_ocr = executor.submit(ocr_client.infer, **future_ocr_kwargs)
|
|
@@ -26,8 +26,11 @@ from nv_ingest_api.internal.primitives.nim.model_interface.helpers import (
|
|
|
26
26
|
preprocess_image_for_paddle,
|
|
27
27
|
)
|
|
28
28
|
from nv_ingest_api.util.image_processing.transforms import base64_to_numpy
|
|
29
|
+
from nv_ingest_api.util.image_processing.transforms import numpy_to_base64
|
|
29
30
|
|
|
30
31
|
DEFAULT_OCR_MODEL_NAME = "paddle"
|
|
32
|
+
NEMORETRIEVER_OCR_EA_MODEL_NAME = "scene_text"
|
|
33
|
+
NEMORETRIEVER_OCR_MODEL_NAME = "scene_text_ensemble"
|
|
31
34
|
|
|
32
35
|
logger = logging.getLogger(__name__)
|
|
33
36
|
|
|
@@ -141,7 +144,7 @@ class OCRModelInterface(ModelInterface):
|
|
|
141
144
|
images = data["image_arrays"]
|
|
142
145
|
dims = data["image_dims"]
|
|
143
146
|
|
|
144
|
-
model_name = kwargs.get("model_name",
|
|
147
|
+
model_name = kwargs.get("model_name", DEFAULT_OCR_MODEL_NAME)
|
|
145
148
|
merge_level = kwargs.get("merge_level", "paragraph")
|
|
146
149
|
|
|
147
150
|
if protocol == "grpc":
|
|
@@ -149,21 +152,33 @@ class OCRModelInterface(ModelInterface):
|
|
|
149
152
|
processed: List[np.ndarray] = []
|
|
150
153
|
|
|
151
154
|
max_length = max(max(img.shape[:2]) for img in images)
|
|
155
|
+
max_length = min(max_length, 65500) # Maximum supported image dimension for JPEG is 65500 pixels.
|
|
152
156
|
|
|
153
157
|
for img in images:
|
|
154
|
-
if model_name ==
|
|
158
|
+
if model_name == DEFAULT_OCR_MODEL_NAME:
|
|
155
159
|
arr, _dims = preprocess_image_for_paddle(img)
|
|
156
|
-
|
|
160
|
+
elif model_name == NEMORETRIEVER_OCR_EA_MODEL_NAME:
|
|
157
161
|
arr, _dims = preprocess_image_for_ocr(
|
|
158
162
|
img,
|
|
159
163
|
target_height=max_length,
|
|
160
164
|
target_width=max_length,
|
|
161
165
|
pad_how="bottom_right",
|
|
162
166
|
)
|
|
167
|
+
elif model_name == NEMORETRIEVER_OCR_MODEL_NAME:
|
|
168
|
+
arr = img
|
|
169
|
+
_dims = {"new_width": img.shape[1], "new_height": img.shape[0]}
|
|
170
|
+
else:
|
|
171
|
+
raise ValueError(f"Unknown model name: {model_name}")
|
|
163
172
|
|
|
164
173
|
dims.append(_dims)
|
|
165
|
-
|
|
166
|
-
|
|
174
|
+
|
|
175
|
+
if model_name == NEMORETRIEVER_OCR_MODEL_NAME:
|
|
176
|
+
arr = np.array([numpy_to_base64(arr, format="JPEG")], dtype=np.object_)
|
|
177
|
+
else:
|
|
178
|
+
arr = arr.astype(np.float32)
|
|
179
|
+
|
|
180
|
+
arr = np.expand_dims(arr, axis=0)
|
|
181
|
+
|
|
167
182
|
processed.append(arr)
|
|
168
183
|
|
|
169
184
|
batches = []
|
|
@@ -175,7 +190,7 @@ class OCRModelInterface(ModelInterface):
|
|
|
175
190
|
):
|
|
176
191
|
batched_input = np.concatenate(proc_chunk, axis=0)
|
|
177
192
|
|
|
178
|
-
if model_name ==
|
|
193
|
+
if model_name == DEFAULT_OCR_MODEL_NAME:
|
|
179
194
|
batches.append(batched_input)
|
|
180
195
|
else:
|
|
181
196
|
merge_levels = np.array([[merge_level] * len(batched_input)], dtype="object")
|
|
@@ -206,7 +221,7 @@ class OCRModelInterface(ModelInterface):
|
|
|
206
221
|
chunk_list(images, max_batch_size),
|
|
207
222
|
chunk_list(dims, max_batch_size),
|
|
208
223
|
):
|
|
209
|
-
if model_name ==
|
|
224
|
+
if model_name == DEFAULT_OCR_MODEL_NAME:
|
|
210
225
|
payload = {"input": input_chunk}
|
|
211
226
|
else:
|
|
212
227
|
payload = {
|
|
@@ -226,7 +241,7 @@ class OCRModelInterface(ModelInterface):
|
|
|
226
241
|
response: Any,
|
|
227
242
|
protocol: str,
|
|
228
243
|
data: Optional[Dict[str, Any]] = None,
|
|
229
|
-
model_name: str =
|
|
244
|
+
model_name: str = DEFAULT_OCR_MODEL_NAME,
|
|
230
245
|
**kwargs: Any,
|
|
231
246
|
) -> Any:
|
|
232
247
|
"""
|
|
@@ -367,7 +382,7 @@ class OCRModelInterface(ModelInterface):
|
|
|
367
382
|
self,
|
|
368
383
|
response: np.ndarray,
|
|
369
384
|
dimensions: List[Dict[str, Any]],
|
|
370
|
-
model_name: str =
|
|
385
|
+
model_name: str = DEFAULT_OCR_MODEL_NAME,
|
|
371
386
|
) -> List[Tuple[str, str]]:
|
|
372
387
|
"""
|
|
373
388
|
Parse a gRPC response for one or more images. The response can have two possible shapes:
|
|
@@ -402,12 +417,14 @@ class OCRModelInterface(ModelInterface):
|
|
|
402
417
|
if not isinstance(response, np.ndarray):
|
|
403
418
|
raise ValueError("Unexpected response format: response is not a NumPy array.")
|
|
404
419
|
|
|
420
|
+
if model_name == NEMORETRIEVER_OCR_MODEL_NAME:
|
|
421
|
+
response = response.transpose((1, 0))
|
|
422
|
+
|
|
405
423
|
# If we have shape (3,), convert to (3, 1)
|
|
406
424
|
if response.ndim == 1 and response.shape == (3,):
|
|
407
425
|
response = response.reshape(3, 1)
|
|
408
426
|
elif response.ndim != 2 or response.shape[0] != 3:
|
|
409
427
|
raise ValueError(f"Unexpected response shape: {response.shape}. Expecting (3,) or (3, n).")
|
|
410
|
-
|
|
411
428
|
batch_size = response.shape[1]
|
|
412
429
|
results: List[Tuple[str, str]] = []
|
|
413
430
|
|
|
@@ -425,11 +442,17 @@ class OCRModelInterface(ModelInterface):
|
|
|
425
442
|
conf_scores = json.loads(confs_bytestr.decode("utf8"))
|
|
426
443
|
|
|
427
444
|
# Some gRPC responses nest single-item lists; flatten them if needed
|
|
428
|
-
if
|
|
445
|
+
if (
|
|
446
|
+
(isinstance(bounding_boxes, list) and len(bounding_boxes) == 1 and isinstance(bounding_boxes[0], list))
|
|
447
|
+
and (
|
|
448
|
+
isinstance(text_predictions, list)
|
|
449
|
+
and len(text_predictions) == 1
|
|
450
|
+
and isinstance(text_predictions[0], list)
|
|
451
|
+
)
|
|
452
|
+
and (isinstance(conf_scores, list) and len(conf_scores) == 1 and isinstance(conf_scores[0], list))
|
|
453
|
+
):
|
|
429
454
|
bounding_boxes = bounding_boxes[0]
|
|
430
|
-
if isinstance(text_predictions, list) and len(text_predictions) == 1:
|
|
431
455
|
text_predictions = text_predictions[0]
|
|
432
|
-
if isinstance(conf_scores, list) and len(conf_scores) == 1:
|
|
433
456
|
conf_scores = conf_scores[0]
|
|
434
457
|
|
|
435
458
|
# 4) Postprocess
|
|
@@ -439,7 +462,7 @@ class OCRModelInterface(ModelInterface):
|
|
|
439
462
|
conf_scores,
|
|
440
463
|
dimensions,
|
|
441
464
|
img_index=i,
|
|
442
|
-
scale_coordinates=
|
|
465
|
+
scale_coordinates=False if model_name == NEMORETRIEVER_OCR_EA_MODEL_NAME else True,
|
|
443
466
|
)
|
|
444
467
|
|
|
445
468
|
results.append([bounding_boxes, text_predictions, conf_scores])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|