ok-script 0.0.28__tar.gz → 0.0.31__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.
- {ok-script-0.0.28 → ok-script-0.0.31}/PKG-INFO +1 -1
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/adb/DeviceManager.py +4 -1
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/feature/FeatureSet.py +5 -2
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/util/path.py +9 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok_script.egg-info/PKG-INFO +1 -1
- {ok-script-0.0.28 → ok-script-0.0.31}/setup.py +1 -1
- {ok-script-0.0.28 → ok-script-0.0.31}/README.md +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/OK.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/BaseCaptureMethod.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/HwndWindow.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/adb/ADBCaptureMethod.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/adb/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/adb/bin/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/adb/targets.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/adb/vbox.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/windows/WindowsGraphicsCaptureMethod.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/windows/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/windows/d3d11.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/windows/utils.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/capture/windows/window.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/color/Color.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/color/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/config/Config.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/config/InfoDict.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/config/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/feature/Box.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/feature/Feature.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/feature/FindFeature.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/feature/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/App.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/Communicate.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/MainWindow.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/TabTitles.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/about/AboutTab.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/about/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/common/OKIcon.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/common/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/common/config.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/common/style_sheet.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/debug/AspectRatioWidget.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/debug/DebugTab.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/debug/FrameWidget.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/debug/InfoWidget.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/debug/LoggerWidget.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/debug/Screenshot.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/debug/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/i18n/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/i18n/path.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/i18n/update.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/icon/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/icon/icon.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/overlay/OverlayWindow.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/overlay/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/qss/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/resources.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/settings/SettingTab.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/settings/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/start/SelectCaptureListView.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/start/SelectHwndWindow.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/start/StartCard.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/start/StartTab.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/start/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/ConfigItemFactory.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/ConfigLabelAndWidget.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/LabelAndDoubleSpinBox.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/LabelAndDropDown.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/LabelAndLineEdit.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/LabelAndList.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/LabelAndSpinBox.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/LabelAndSwitchButton.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/LabelAndWidget.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/ModifyListDialog.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/ModifyListItem.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/OneTimeTaskTab.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/StartButton.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/TaskCard.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/TaskOpButton.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/TooltipTableWidget.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/TriggerTaskTab.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/tasks/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/util/Alert.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/util/InitWorker.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/util/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/Card.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/FramelessDialog.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/ListTableWidgetItem.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/NumericTableWidgetItem.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/StatusBar.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/Tab.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/TabWidget.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/UpdateConfigWidgetItem.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/YesNonWidgetItem.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/gui/widget/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/interaction/ADBInteraction.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/interaction/BaseInteraction.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/interaction/Win32Interaction.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/interaction/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/logging/Logger.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/logging/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/ocr/OCR.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/ocr/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/predict/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/predict/predict.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Foundation/Collections.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Foundation/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Globalization/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Graphics/Capture/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Graphics/DirectX/Direct3D11/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Graphics/DirectX/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Graphics/Imaging/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Graphics/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Media/Ocr/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Media/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Security/Cryptography/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Security/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Storage/Streams/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Storage/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/delegate.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/export.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/idldsl.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/inspectable.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/roapi.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/types.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/winstring.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/save/BlackBarProcessor.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/save/PostProcessor.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/save/SaveByInterval.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/save/SaveByKeyPress.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/save/SaveMethodBase.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/save/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/scene/FeatureScene.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/scene/Scene.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/scene/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/stats/StreamStats.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/stats/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/task/BaseTask.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/task/ExecutorOperation.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/task/OneTimeTask.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/task/TaskExecutor.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/task/TriggerTask.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/task/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/util/__init__.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/util/exit_event.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/util/json.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/util/list.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/util/thread.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/util/win32_process.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok/util/yaml.py +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok_script.egg-info/SOURCES.txt +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok_script.egg-info/dependency_links.txt +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok_script.egg-info/requires.txt +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/ok_script.egg-info/top_level.txt +0 -0
- {ok-script-0.0.28 → ok-script-0.0.31}/setup.cfg +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import os
|
|
1
2
|
import subprocess
|
|
2
3
|
import threading
|
|
3
4
|
|
|
@@ -24,7 +25,9 @@ def fix_adbutils_safe_connect(self):
|
|
|
24
25
|
try:
|
|
25
26
|
return self._create_socket()
|
|
26
27
|
except (AdbConnectionError, AdbTimeout):
|
|
27
|
-
subprocess.
|
|
28
|
+
flags = subprocess.CREATE_NO_WINDOW if os.name == 'nt' else 0
|
|
29
|
+
subprocess.run([adb_path(), "start-server"], timeout=20.0,
|
|
30
|
+
creationflags=flags) # 20s should enough for adb start
|
|
28
31
|
return self._create_socket()
|
|
29
32
|
|
|
30
33
|
|
|
@@ -11,6 +11,7 @@ from ok.feature.Box import Box, sort_boxes
|
|
|
11
11
|
from ok.feature.Feature import Feature
|
|
12
12
|
from ok.gui.Communicate import communicate
|
|
13
13
|
from ok.logging.Logger import get_logger
|
|
14
|
+
from ok.util.path import resource_path
|
|
14
15
|
|
|
15
16
|
logger = get_logger(__name__)
|
|
16
17
|
|
|
@@ -29,7 +30,9 @@ class FeatureSet:
|
|
|
29
30
|
width (int): Scale images to this width.
|
|
30
31
|
height (int): Scale images to this height.
|
|
31
32
|
"""
|
|
32
|
-
self.coco_folder = coco_folder
|
|
33
|
+
self.coco_folder = resource_path(coco_folder)
|
|
34
|
+
|
|
35
|
+
logger.debug(f'Loading features from {self.coco_folder}')
|
|
33
36
|
|
|
34
37
|
# Process images and annotations
|
|
35
38
|
self.width = 0
|
|
@@ -57,7 +60,7 @@ class FeatureSet:
|
|
|
57
60
|
height (int): Target height for scaling images.
|
|
58
61
|
"""
|
|
59
62
|
self.featureDict.clear()
|
|
60
|
-
json_path =
|
|
63
|
+
json_path = os.path.join(self.coco_folder, '_annotations.coco.json')
|
|
61
64
|
with open(json_path, 'r') as file:
|
|
62
65
|
data = json.load(file)
|
|
63
66
|
|
|
@@ -24,6 +24,15 @@ def get_path_relative_to_exe(*files):
|
|
|
24
24
|
return normalized_path
|
|
25
25
|
|
|
26
26
|
|
|
27
|
+
def resource_path(relative_path):
|
|
28
|
+
""" Get absolute path to resource, works for dev and for PyInstaller """
|
|
29
|
+
base_dir = os.path.dirname(os.path.abspath(__file__))
|
|
30
|
+
base_dir = os.path.dirname(base_dir)
|
|
31
|
+
base_dir = os.path.dirname(base_dir)
|
|
32
|
+
base_path = getattr(sys, '_MEIPASS', base_dir)
|
|
33
|
+
return os.path.join(base_path, relative_path)
|
|
34
|
+
|
|
35
|
+
|
|
27
36
|
def ensure_dir_for_file(file_path):
|
|
28
37
|
# Extract the directory from the file path
|
|
29
38
|
directory = os.path.dirname(file_path)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ok-script-0.0.28 → ok-script-0.0.31}/ok/rotypes/Windows/Graphics/DirectX/Direct3D11/__init__.py
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
|