ultralytics 8.2.40__tar.gz → 8.2.41__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 ultralytics might be problematic. Click here for more details.
- {ultralytics-8.2.40 → ultralytics-8.2.41}/PKG-INFO +3 -5
- {ultralytics-8.2.40 → ultralytics-8.2.41}/pyproject.toml +2 -4
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/__init__.py +1 -1
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/engine/model.py +1 -1
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/engine/trainer.py +6 -1
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/hub/__init__.py +1 -1
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/hub/session.py +6 -2
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/hub.py +1 -1
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/dist.py +1 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/downloads.py +7 -5
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/torch_utils.py +2 -2
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics.egg-info/PKG-INFO +3 -5
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics.egg-info/requires.txt +2 -4
- {ultralytics-8.2.40 → ultralytics-8.2.41}/LICENSE +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/README.md +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/setup.cfg +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/tests/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/tests/conftest.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/tests/test_cli.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/tests/test_cuda.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/tests/test_engine.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/tests/test_explorer.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/tests/test_exports.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/tests/test_integrations.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/tests/test_python.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/base.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/build.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/explorer/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/explorer/explorer.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/explorer/gui/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/explorer/gui/dash.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/explorer/utils.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/engine/exporter.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/models/yolo/world/train_world.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/solutions/analytics.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/solutions/object_counter.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/solutions/parking_management.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.41
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
@@ -30,7 +30,7 @@ Classifier: Operating System :: Microsoft :: Windows
|
|
|
30
30
|
Requires-Python: >=3.8
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
License-File: LICENSE
|
|
33
|
-
Requires-Dist: numpy<2.0.0
|
|
33
|
+
Requires-Dist: numpy<2.0.0,>=1.23.5
|
|
34
34
|
Requires-Dist: matplotlib>=3.3.0
|
|
35
35
|
Requires-Dist: opencv-python>=4.6.0
|
|
36
36
|
Requires-Dist: pillow>=7.1.2
|
|
@@ -47,8 +47,6 @@ Requires-Dist: seaborn>=0.11.0
|
|
|
47
47
|
Requires-Dist: ultralytics-thop>=2.0.0
|
|
48
48
|
Provides-Extra: dev
|
|
49
49
|
Requires-Dist: ipython; extra == "dev"
|
|
50
|
-
Requires-Dist: check-manifest; extra == "dev"
|
|
51
|
-
Requires-Dist: pre-commit; extra == "dev"
|
|
52
50
|
Requires-Dist: pytest; extra == "dev"
|
|
53
51
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
54
52
|
Requires-Dist: coverage[toml]; extra == "dev"
|
|
@@ -77,7 +75,7 @@ Requires-Dist: comet; extra == "logging"
|
|
|
77
75
|
Requires-Dist: tensorboard>=2.13.0; extra == "logging"
|
|
78
76
|
Requires-Dist: dvclive>=2.12.0; extra == "logging"
|
|
79
77
|
Provides-Extra: extra
|
|
80
|
-
Requires-Dist: hub-sdk>=0.0.
|
|
78
|
+
Requires-Dist: hub-sdk>=0.0.8; extra == "extra"
|
|
81
79
|
Requires-Dist: ipython; extra == "extra"
|
|
82
80
|
Requires-Dist: albumentations>=1.4.6; extra == "extra"
|
|
83
81
|
Requires-Dist: pycocotools>=2.0.7; extra == "extra"
|
|
@@ -64,7 +64,7 @@ classifiers = [
|
|
|
64
64
|
|
|
65
65
|
# Required dependencies ------------------------------------------------------------------------------------------------
|
|
66
66
|
dependencies = [
|
|
67
|
-
"numpy
|
|
67
|
+
"numpy>=1.23.5,<2.0.0", # temporary patch for compat errors https://github.com/ultralytics/yolov5/actions/runs/9538130424/job/26286956354
|
|
68
68
|
"matplotlib>=3.3.0",
|
|
69
69
|
"opencv-python>=4.6.0",
|
|
70
70
|
"pillow>=7.1.2",
|
|
@@ -85,8 +85,6 @@ dependencies = [
|
|
|
85
85
|
[project.optional-dependencies]
|
|
86
86
|
dev = [
|
|
87
87
|
"ipython",
|
|
88
|
-
"check-manifest",
|
|
89
|
-
"pre-commit",
|
|
90
88
|
"pytest",
|
|
91
89
|
"pytest-cov",
|
|
92
90
|
"coverage[toml]",
|
|
@@ -119,7 +117,7 @@ logging = [
|
|
|
119
117
|
"dvclive>=2.12.0",
|
|
120
118
|
]
|
|
121
119
|
extra = [
|
|
122
|
-
"hub-sdk>=0.0.
|
|
120
|
+
"hub-sdk>=0.0.8", # Ultralytics HUB
|
|
123
121
|
"ipython", # interactive notebook
|
|
124
122
|
"albumentations>=1.4.6", # training augmentations
|
|
125
123
|
"pycocotools>=2.0.7", # COCO mAP
|
|
@@ -133,7 +133,7 @@ class Model(nn.Module):
|
|
|
133
133
|
# Check if Ultralytics HUB model from https://hub.ultralytics.com
|
|
134
134
|
if self.is_hub_model(model):
|
|
135
135
|
# Fetch model from HUB
|
|
136
|
-
checks.check_requirements("hub-sdk>=0.0.
|
|
136
|
+
checks.check_requirements("hub-sdk>=0.0.8")
|
|
137
137
|
self.session = HUBTrainingSession.create_session(model)
|
|
138
138
|
model = self.session.model_file
|
|
139
139
|
|
|
@@ -48,6 +48,7 @@ from ultralytics.utils.torch_utils import (
|
|
|
48
48
|
one_cycle,
|
|
49
49
|
select_device,
|
|
50
50
|
strip_optimizer,
|
|
51
|
+
torch_distributed_zero_first,
|
|
51
52
|
)
|
|
52
53
|
|
|
53
54
|
|
|
@@ -127,7 +128,8 @@ class BaseTrainer:
|
|
|
127
128
|
|
|
128
129
|
# Model and Dataset
|
|
129
130
|
self.model = check_model_file_from_stem(self.args.model) # add suffix, i.e. yolov8n -> yolov8n.pt
|
|
130
|
-
|
|
131
|
+
with torch_distributed_zero_first(RANK): # avoid auto-downloading dataset multiple times
|
|
132
|
+
self.trainset, self.testset = self.get_dataset()
|
|
131
133
|
self.ema = None
|
|
132
134
|
|
|
133
135
|
# Optimization utils init
|
|
@@ -143,6 +145,9 @@ class BaseTrainer:
|
|
|
143
145
|
self.csv = self.save_dir / "results.csv"
|
|
144
146
|
self.plot_idx = [0, 1, 2]
|
|
145
147
|
|
|
148
|
+
# HUB
|
|
149
|
+
self.hub_session = None
|
|
150
|
+
|
|
146
151
|
# Callbacks
|
|
147
152
|
self.callbacks = _callbacks or callbacks.get_default_callbacks()
|
|
148
153
|
if RANK in {-1, 0}:
|
|
@@ -38,7 +38,7 @@ def login(api_key: str = None, save=True) -> bool:
|
|
|
38
38
|
Returns:
|
|
39
39
|
(bool): True if authentication is successful, False otherwise.
|
|
40
40
|
"""
|
|
41
|
-
checks.check_requirements("hub-sdk>=0.0.
|
|
41
|
+
checks.check_requirements("hub-sdk>=0.0.8")
|
|
42
42
|
from hub_sdk import HUBClient
|
|
43
43
|
|
|
44
44
|
api_key_url = f"{HUB_WEB_ROOT}/settings?tab=api+keys" # set the redirect URL
|
|
@@ -71,8 +71,12 @@ class HUBTrainingSession:
|
|
|
71
71
|
"""Class method to create an authenticated HUBTrainingSession or return None."""
|
|
72
72
|
try:
|
|
73
73
|
session = cls(identifier)
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
if not session.client.authenticated:
|
|
75
|
+
if identifier.startswith(f"{HUB_WEB_ROOT}/models/"):
|
|
76
|
+
LOGGER.warning(f"{PREFIX}WARNING ⚠️ Login to Ultralytics HUB with 'yolo hub login API_KEY'.")
|
|
77
|
+
exit()
|
|
78
|
+
return None
|
|
79
|
+
if args and not identifier.startswith(f"{HUB_WEB_ROOT}/models/"): # not a HUB model URL
|
|
76
80
|
session.create_model(args)
|
|
77
81
|
assert session.model.id, "HUB model not loaded correctly"
|
|
78
82
|
return session
|
|
@@ -9,7 +9,7 @@ from ultralytics.utils import LOGGER, RANK, SETTINGS
|
|
|
9
9
|
|
|
10
10
|
def on_pretrain_routine_start(trainer):
|
|
11
11
|
"""Create a remote Ultralytics HUB session to log local model training."""
|
|
12
|
-
if RANK in {-1, 0} and SETTINGS["hub"] is True and
|
|
12
|
+
if RANK in {-1, 0} and SETTINGS["hub"] is True and SETTINGS["api_key"] and trainer.hub_session is None:
|
|
13
13
|
trainer.hub_session = HUBTrainingSession.create_session(trainer.args.model, trainer.args)
|
|
14
14
|
|
|
15
15
|
|
|
@@ -37,6 +37,7 @@ if __name__ == "__main__":
|
|
|
37
37
|
cfg = DEFAULT_CFG_DICT.copy()
|
|
38
38
|
cfg.update(save_dir='') # handle the extra key 'save_dir'
|
|
39
39
|
trainer = {name}(cfg=cfg, overrides=overrides)
|
|
40
|
+
trainer.args.model = "{getattr(trainer.hub_session, 'model_url', trainer.args.model)}"
|
|
40
41
|
results = trainer.train()
|
|
41
42
|
"""
|
|
42
43
|
(USER_CONFIG_DIR / "DDP").mkdir(exist_ok=True)
|
|
@@ -168,13 +168,15 @@ def unzip_file(file, path=None, exclude=(".DS_Store", "__MACOSX"), exist_ok=Fals
|
|
|
168
168
|
files = [f for f in zipObj.namelist() if all(x not in f for x in exclude)]
|
|
169
169
|
top_level_dirs = {Path(f).parts[0] for f in files}
|
|
170
170
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
else:
|
|
171
|
+
# Decide to unzip directly or unzip into a directory
|
|
172
|
+
unzip_as_dir = len(top_level_dirs) == 1 # (len(files) > 1 and not files[0].endswith("/"))
|
|
173
|
+
if unzip_as_dir:
|
|
175
174
|
# Zip has 1 top-level directory
|
|
176
175
|
extract_path = path # i.e. ../datasets
|
|
177
|
-
path = Path(path) / list(top_level_dirs)[0] # i.e. ../datasets/
|
|
176
|
+
path = Path(path) / list(top_level_dirs)[0] # i.e. extract coco8/ dir to ../datasets/
|
|
177
|
+
else:
|
|
178
|
+
# Zip has multiple files at top level
|
|
179
|
+
path = extract_path = Path(path) / Path(file).stem # i.e. extract multiple files to ../datasets/coco8/
|
|
178
180
|
|
|
179
181
|
# Check if destination directory already exists and contains files
|
|
180
182
|
if path.exists() and any(path.iterdir()) and not exist_ok:
|
|
@@ -43,8 +43,8 @@ TORCHVISION_0_13 = check_version(TORCHVISION_VERSION, "0.13.0")
|
|
|
43
43
|
|
|
44
44
|
@contextmanager
|
|
45
45
|
def torch_distributed_zero_first(local_rank: int):
|
|
46
|
-
"""
|
|
47
|
-
initialized =
|
|
46
|
+
"""Ensures all processes in distributed training wait for the local master (rank 0) to complete a task first."""
|
|
47
|
+
initialized = dist.is_available() and dist.is_initialized()
|
|
48
48
|
if initialized and local_rank not in {-1, 0}:
|
|
49
49
|
dist.barrier(device_ids=[local_rank])
|
|
50
50
|
yield
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.41
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
@@ -30,7 +30,7 @@ Classifier: Operating System :: Microsoft :: Windows
|
|
|
30
30
|
Requires-Python: >=3.8
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
License-File: LICENSE
|
|
33
|
-
Requires-Dist: numpy<2.0.0
|
|
33
|
+
Requires-Dist: numpy<2.0.0,>=1.23.5
|
|
34
34
|
Requires-Dist: matplotlib>=3.3.0
|
|
35
35
|
Requires-Dist: opencv-python>=4.6.0
|
|
36
36
|
Requires-Dist: pillow>=7.1.2
|
|
@@ -47,8 +47,6 @@ Requires-Dist: seaborn>=0.11.0
|
|
|
47
47
|
Requires-Dist: ultralytics-thop>=2.0.0
|
|
48
48
|
Provides-Extra: dev
|
|
49
49
|
Requires-Dist: ipython; extra == "dev"
|
|
50
|
-
Requires-Dist: check-manifest; extra == "dev"
|
|
51
|
-
Requires-Dist: pre-commit; extra == "dev"
|
|
52
50
|
Requires-Dist: pytest; extra == "dev"
|
|
53
51
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
54
52
|
Requires-Dist: coverage[toml]; extra == "dev"
|
|
@@ -77,7 +75,7 @@ Requires-Dist: comet; extra == "logging"
|
|
|
77
75
|
Requires-Dist: tensorboard>=2.13.0; extra == "logging"
|
|
78
76
|
Requires-Dist: dvclive>=2.12.0; extra == "logging"
|
|
79
77
|
Provides-Extra: extra
|
|
80
|
-
Requires-Dist: hub-sdk>=0.0.
|
|
78
|
+
Requires-Dist: hub-sdk>=0.0.8; extra == "extra"
|
|
81
79
|
Requires-Dist: ipython; extra == "extra"
|
|
82
80
|
Requires-Dist: albumentations>=1.4.6; extra == "extra"
|
|
83
81
|
Requires-Dist: pycocotools>=2.0.7; extra == "extra"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
numpy<2.0.0
|
|
1
|
+
numpy<2.0.0,>=1.23.5
|
|
2
2
|
matplotlib>=3.3.0
|
|
3
3
|
opencv-python>=4.6.0
|
|
4
4
|
pillow>=7.1.2
|
|
@@ -16,8 +16,6 @@ ultralytics-thop>=2.0.0
|
|
|
16
16
|
|
|
17
17
|
[dev]
|
|
18
18
|
ipython
|
|
19
|
-
check-manifest
|
|
20
|
-
pre-commit
|
|
21
19
|
pytest
|
|
22
20
|
pytest-cov
|
|
23
21
|
coverage[toml]
|
|
@@ -49,7 +47,7 @@ h5py!=3.11.0
|
|
|
49
47
|
coremltools>=7.0
|
|
50
48
|
|
|
51
49
|
[extra]
|
|
52
|
-
hub-sdk>=0.0.
|
|
50
|
+
hub-sdk>=0.0.8
|
|
53
51
|
ipython
|
|
54
52
|
albumentations>=1.4.6
|
|
55
53
|
pycocotools>=2.0.7
|
|
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
|
{ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml
RENAMED
|
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
|
{ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.2.40 → ultralytics-8.2.41}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml
RENAMED
|
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
|