alibuild 1.17.16__tar.gz → 1.17.17__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.
- {alibuild-1.17.16 → alibuild-1.17.17}/PKG-INFO +3 -2
- {alibuild-1.17.16 → alibuild-1.17.17}/alfaBuild +2 -2
- {alibuild-1.17.16 → alibuild-1.17.17}/aliBuild +2 -2
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/PKG-INFO +3 -2
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/_version.py +2 -2
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/args.py +8 -8
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/init.py +1 -1
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/log.py +0 -2
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/utilities.py +18 -4
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_args.py +5 -5
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_build.py +1 -1
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_deps.py +1 -1
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_doctor.py +1 -1
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_packagelist.py +2 -2
- {alibuild-1.17.16 → alibuild-1.17.17}/.flake8 +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/.github/workflows/documentation.yml +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/.github/workflows/pr-check.yml +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/.github/workflows/release.yml +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/.gitignore +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/.pylintrc +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/ANALYTICS.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/DESIGN.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/LICENSE.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/MANIFEST.in +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/PACKAGING.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/README.rst +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/aliDeps +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/aliDoctor +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/SOURCES.txt +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/dependency_links.txt +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/requires.txt +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild.egg-info/top_level.txt +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/__init__.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/analytics.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/build.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/build_template.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/clean.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/cmd.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/deps.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/doctor.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/git.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/scm.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/sl.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/sync.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/templating_plugin.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alibuild_helpers/workarea.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/alienv +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/codecov.yml +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/debian/changelog +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/debian/compat +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/debian/control +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/debian/copyright +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/debian/files +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/debian/rules +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/README.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/SUPPORT +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/alice_logo.png +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/deps.png +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/index.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/quick.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/reference.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/stylesheets/extra.css +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/troubleshooting.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/docs/user.md +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/docs/mkdocs.yml +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/pb +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/pyproject.toml +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/requirements.txt +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/setup.cfg +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/setup.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/templates/alibuild_to_please.jnj +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_analytics.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_clean.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_cmd.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_git.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_hashing.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_init.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_log.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_parseRecipe.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_sync.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_utilities.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/test_workarea.py +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken1.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken2.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken3.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken4.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken5.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken6.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/broken7.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/clobber-initdotsh.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/defaults-o2.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tests/testdist/delete-etc.sh +0 -0
- {alibuild-1.17.16 → alibuild-1.17.17}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: alibuild
|
|
3
|
-
Version: 1.17.
|
|
3
|
+
Version: 1.17.17
|
|
4
4
|
Summary: ALICE Build Tool
|
|
5
5
|
Home-page: https://alisw.github.io/alibuild
|
|
6
6
|
Author: Giulio Eulisse
|
|
@@ -30,6 +30,7 @@ Dynamic: author
|
|
|
30
30
|
Dynamic: description
|
|
31
31
|
Dynamic: description-content-type
|
|
32
32
|
Dynamic: home-page
|
|
33
|
+
Dynamic: license-file
|
|
33
34
|
|
|
34
35
|
.. image:: https://badge.fury.io/py/alibuild.svg
|
|
35
36
|
.. image:: https://github.com/alisw/alibuild/actions/workflows/pr-check.yml/badge.svg?branch=master&event=push
|
|
@@ -111,8 +111,8 @@ if __name__ == "__main__":
|
|
|
111
111
|
else:
|
|
112
112
|
os.environ["ALIBUILD_ANALYTICS_USER_UUID"] = open(expanduser("~/.config/alibuild/analytics-uuid")).read().strip()
|
|
113
113
|
try:
|
|
114
|
-
|
|
115
|
-
if
|
|
114
|
+
useProfiler = "--profile" in sys.argv
|
|
115
|
+
if useProfiler:
|
|
116
116
|
print("profiler started")
|
|
117
117
|
import cProfile, pstats
|
|
118
118
|
from io import StringIO
|
|
@@ -111,8 +111,8 @@ if __name__ == "__main__":
|
|
|
111
111
|
else:
|
|
112
112
|
os.environ["ALIBUILD_ANALYTICS_USER_UUID"] = open(expanduser("~/.config/alibuild/analytics-uuid")).read().strip()
|
|
113
113
|
try:
|
|
114
|
-
|
|
115
|
-
if
|
|
114
|
+
useProfiler = "--profile" in sys.argv
|
|
115
|
+
if useProfiler:
|
|
116
116
|
print("profiler started")
|
|
117
117
|
import cProfile, pstats
|
|
118
118
|
from io import StringIO
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: alibuild
|
|
3
|
-
Version: 1.17.
|
|
3
|
+
Version: 1.17.17
|
|
4
4
|
Summary: ALICE Build Tool
|
|
5
5
|
Home-page: https://alisw.github.io/alibuild
|
|
6
6
|
Author: Giulio Eulisse
|
|
@@ -30,6 +30,7 @@ Dynamic: author
|
|
|
30
30
|
Dynamic: description
|
|
31
31
|
Dynamic: description-content-type
|
|
32
32
|
Dynamic: home-page
|
|
33
|
+
Dynamic: license-file
|
|
33
34
|
|
|
34
35
|
.. image:: https://badge.fury.io/py/alibuild.svg
|
|
35
36
|
.. image:: https://github.com/alisw/alibuild/actions/workflows/pr-check.yml/badge.svg?branch=master&event=push
|
|
@@ -176,8 +176,8 @@ def doParseArgs():
|
|
|
176
176
|
build_system = build_parser.add_mutually_exclusive_group()
|
|
177
177
|
build_system.add_argument("--always-prefer-system", dest="preferSystem", action="store_true",
|
|
178
178
|
help="Always use system packages when compatible.")
|
|
179
|
-
build_system.add_argument("--no-system", dest="noSystem",
|
|
180
|
-
help="Never use system packages, even if compatible.")
|
|
179
|
+
build_system.add_argument("--no-system", dest="noSystem", nargs="?", const="*", default=None, metavar="PACKAGES",
|
|
180
|
+
help="Never use system packages for the provided, command separated, PACKAGES, even if compatible.")
|
|
181
181
|
|
|
182
182
|
# Options for clean subcommand
|
|
183
183
|
clean_parser.add_argument("-a", "--architecture", dest="architecture", metavar="ARCH", default=detectedArch,
|
|
@@ -237,8 +237,8 @@ def doParseArgs():
|
|
|
237
237
|
deps_system = deps_parser.add_mutually_exclusive_group()
|
|
238
238
|
deps_system.add_argument("--always-prefer-system", dest="preferSystem", action="store_true",
|
|
239
239
|
help="Always use system packages when compatible.")
|
|
240
|
-
deps_system.add_argument("--no-system", dest="noSystem",
|
|
241
|
-
help="Never use system packages, even if compatible.")
|
|
240
|
+
deps_system.add_argument("--no-system", dest="noSystem", nargs="?", const="*", default=None, metavar="PACKAGES",
|
|
241
|
+
help="Never use system packages for PACKAGES, even if compatible.")
|
|
242
242
|
|
|
243
243
|
# Options for the doctor subcommand
|
|
244
244
|
doctor_parser.add_argument("packages", metavar="PACKAGE", nargs="+",
|
|
@@ -258,8 +258,8 @@ def doParseArgs():
|
|
|
258
258
|
doctor_system = doctor_parser.add_mutually_exclusive_group()
|
|
259
259
|
doctor_system.add_argument("--always-prefer-system", dest="preferSystem", action="store_true",
|
|
260
260
|
help="Always use system packages when compatible.")
|
|
261
|
-
doctor_system.add_argument("--no-system", dest="noSystem",
|
|
262
|
-
help="Never use system packages, even if compatible.")
|
|
261
|
+
doctor_system.add_argument("--no-system", dest="noSystem", nargs="?", const="*", default=None, metavar="PACKAGES",
|
|
262
|
+
help="Never use system packages for the provided, command separated, PACKAGES, even if compatible.")
|
|
263
263
|
|
|
264
264
|
doctor_docker = doctor_parser.add_argument_group(title="Use a Docker container", description="""\
|
|
265
265
|
If you're planning to build inside a Docker container, e.g. using aliBuild
|
|
@@ -457,14 +457,14 @@ def finaliseArgs(args, parser):
|
|
|
457
457
|
|
|
458
458
|
# On selected platforms, caching is active by default
|
|
459
459
|
if args.architecture in S3_SUPPORTED_ARCHS and not args.preferSystem and not args.no_remote_store:
|
|
460
|
-
args.noSystem =
|
|
460
|
+
args.noSystem = "*"
|
|
461
461
|
if not args.remoteStore:
|
|
462
462
|
args.remoteStore = "https://s3.cern.ch/swift/v1/alibuild-repo"
|
|
463
463
|
elif args.no_remote_store:
|
|
464
464
|
args.remoteStore = ""
|
|
465
465
|
|
|
466
466
|
if args.remoteStore or args.writeStore:
|
|
467
|
-
args.noSystem =
|
|
467
|
+
args.noSystem = "*"
|
|
468
468
|
|
|
469
469
|
if args.remoteStore.endswith("::rw") and args.writeStore:
|
|
470
470
|
parser.error("cannot specify ::rw and --write-store at the same time")
|
|
@@ -307,7 +307,7 @@ def readDefaults(configDir, defaults, error, architecture):
|
|
|
307
307
|
return (defaultsMeta, defaultsBody)
|
|
308
308
|
|
|
309
309
|
|
|
310
|
-
def getRecipeReader(url, dist=None):
|
|
310
|
+
def getRecipeReader(url:str , dist=None):
|
|
311
311
|
m = re.search(r'^dist:(.*)@([^@]+)$', url)
|
|
312
312
|
if m and dist:
|
|
313
313
|
return GitReader(url, dist)
|
|
@@ -454,6 +454,9 @@ def getPackageList(packages, specs, configDir, preferSystem, noSystem,
|
|
|
454
454
|
|
|
455
455
|
filename, pkgdir = resolveFilename(taps, pkg_filename, configDir)
|
|
456
456
|
|
|
457
|
+
dieOnError(not filename, "Package %s not found in %s" % (p, configDir))
|
|
458
|
+
assert(filename is not None)
|
|
459
|
+
|
|
457
460
|
err, spec, recipe = parseRecipe(getRecipeReader(filename, configDir))
|
|
458
461
|
dieOnError(err, err)
|
|
459
462
|
# Unless there was an error, both spec and recipe should be valid.
|
|
@@ -498,7 +501,14 @@ def getPackageList(packages, specs, configDir, preferSystem, noSystem,
|
|
|
498
501
|
systemREMatches = re.match(systemRE, architecture)
|
|
499
502
|
except TypeError:
|
|
500
503
|
dieOnError(True, "Malformed entry prefer_system: %s in %s" % (systemRE, spec["package"]))
|
|
501
|
-
|
|
504
|
+
|
|
505
|
+
noSystemList = []
|
|
506
|
+
if noSystem == "*":
|
|
507
|
+
noSystemList = [spec["package"]]
|
|
508
|
+
elif noSystem is not None:
|
|
509
|
+
noSystemList = noSystem.split(",")
|
|
510
|
+
systemExcluded = (spec["package"] in noSystemList)
|
|
511
|
+
if (preferSystem or systemREMatches):
|
|
502
512
|
requested_version = resolve_version(spec, defaults, "unavailable", "unavailable")
|
|
503
513
|
cmd = "REQUESTED_VERSION={version}\n{check}".format(
|
|
504
514
|
version=quote(requested_version),
|
|
@@ -513,12 +523,16 @@ def getPackageList(packages, specs, configDir, preferSystem, noSystem,
|
|
|
513
523
|
else:
|
|
514
524
|
# prefer_system_check succeeded; this means we should use the system package.
|
|
515
525
|
match = re.search(r"^alibuild_system_replace:(?P<key>.*)$", output, re.MULTILINE)
|
|
516
|
-
if not match:
|
|
526
|
+
if not match and systemExcluded:
|
|
527
|
+
# No replacement spec name given. Fall back to old system package
|
|
528
|
+
# behaviour and just disable the package.
|
|
529
|
+
ownPackages.add(spec["package"])
|
|
530
|
+
elif not match and not systemExcluded:
|
|
517
531
|
# No replacement spec name given. Fall back to old system package
|
|
518
532
|
# behaviour and just disable the package.
|
|
519
533
|
systemPackages.add(spec["package"])
|
|
520
534
|
disable.append(spec["package"])
|
|
521
|
-
|
|
535
|
+
elif match:
|
|
522
536
|
# The check printed the name of a replacement; use it.
|
|
523
537
|
key = match.group("key").strip()
|
|
524
538
|
replacement = None
|
|
@@ -48,11 +48,11 @@ CORRECT_BEHAVIOR = [
|
|
|
48
48
|
((), "build --force-unknown-architecture -j 10 zlib --disable gcc --disable foo,bar" , [("disable", ["gcc", "foo", "bar"])]),
|
|
49
49
|
((), "init zlib --dist master" , [("dist", {"repo": "alisw/alidist", "ver": "master"})]),
|
|
50
50
|
((), "init zlib --dist ktf/alidist@dev" , [("dist", {"repo": "ktf/alidist", "ver": "dev"})]),
|
|
51
|
-
((), "build --force-unknown-architecture zlib --remote-store rsync://test.local/" , [("noSystem",
|
|
52
|
-
((), "build --force-unknown-architecture zlib --remote-store rsync://test.local/::rw", [("noSystem",
|
|
53
|
-
((), "build --force-unknown-architecture zlib --no-remote-store --remote-store rsync://test.local/", [("noSystem",
|
|
54
|
-
((), "build zlib --architecture slc7_x86-64" , [("noSystem",
|
|
55
|
-
((), "build zlib --architecture ubuntu1804_x86-64" , [("noSystem",
|
|
51
|
+
((), "build --force-unknown-architecture zlib --remote-store rsync://test.local/" , [("noSystem", "*"), ("remoteStore", "rsync://test.local/")]),
|
|
52
|
+
((), "build --force-unknown-architecture zlib --remote-store rsync://test.local/::rw", [("noSystem", "*"), ("remoteStore", "rsync://test.local/"), ("writeStore", "rsync://test.local/")]),
|
|
53
|
+
((), "build --force-unknown-architecture zlib --no-remote-store --remote-store rsync://test.local/", [("noSystem", None), ("remoteStore", "")]),
|
|
54
|
+
((), "build zlib --architecture slc7_x86-64" , [("noSystem", "*"), ("preferSystem", False), ("remoteStore", "https://s3.cern.ch/swift/v1/alibuild-repo")]),
|
|
55
|
+
((), "build zlib --architecture ubuntu1804_x86-64" , [("noSystem", None), ("preferSystem", False), ("remoteStore", "")]),
|
|
56
56
|
((), "build zlib -a slc7_x86-64" , [("docker", False), ("dockerImage", None), ("docker_extra_args", ["--network=host"])]),
|
|
57
57
|
((), "build zlib -a slc7_x86-64 --docker-image registry.cern.ch/alisw/some-builder" , [("docker", True), ("dockerImage", "registry.cern.ch/alisw/some-builder")]),
|
|
58
58
|
((), "build zlib -a slc7_x86-64 --docker" , [("docker", True), ("dockerImage", "registry.cern.ch/alisw/slc7-builder")]),
|
|
@@ -89,10 +89,10 @@ def getPackageListWithDefaults(packages, force_rebuild=()):
|
|
|
89
89
|
specs=specs,
|
|
90
90
|
configDir="CONFIG_DIR",
|
|
91
91
|
# Make sure getPackageList considers prefer_system_check.
|
|
92
|
-
# (Even with preferSystem=False + noSystem=
|
|
92
|
+
# (Even with preferSystem=False + noSystem=None, it is sufficient
|
|
93
93
|
# if the prefer_system regex matches the architecture.)
|
|
94
94
|
preferSystem=True,
|
|
95
|
-
noSystem=
|
|
95
|
+
noSystem=None,
|
|
96
96
|
architecture="ARCH",
|
|
97
97
|
disable=[],
|
|
98
98
|
defaults="release",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|