gratinglab 0.1.2__tar.gz → 0.1.3__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.
- {gratinglab-0.1.2/src/gratinglab.egg-info → gratinglab-0.1.3}/PKG-INFO +1 -1
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/__init__.py +1 -1
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/boundary/average.py +18 -6
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/wiki/reading-outputs.md +12 -7
- {gratinglab-0.1.2 → gratinglab-0.1.3/src/gratinglab.egg-info}/PKG-INFO +1 -1
- {gratinglab-0.1.2 → gratinglab-0.1.3}/LICENSE +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/README.md +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/pyproject.toml +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/setup.cfg +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/checks.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/compare.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/convergence.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/geometry.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/app.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/diagram.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/diagram3d.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/docs.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/icon.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/integral_options.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/mathtext.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/orders.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/provenance.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/geometry_panel.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/geometry_tab.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/integral_tab.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/main_window.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/profile_plot_panel.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/scalar_tab.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/scene3d_panel.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/setup_tab.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/sizing.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/theory_viewer.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/qt/worker.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/richtext.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/scalar_options.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/gui/state.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/illumination.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/io/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/io/efficiency_table.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/io/ggp.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/materials/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/materials/data/SOURCES.md +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/materials/fresnel.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/materials/optical.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/materials/refractiveindex.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/analyzer.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/boundary/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/boundary/pipeline.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/cli.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/config.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/core/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/core/analysis.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/core/image_flatten.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/core/processing.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/core/tip.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/data/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/data/aggregation.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/icon.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/qt/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/qt/app.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/qt/boundary_view.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/qt/canvas.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/qt/efficiency_dialog.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/qt/import_view.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/qt/main_window.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/qt/wiki_view.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/qt/worker.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/gui/state.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/io/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/io/file_io.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/io/metrics.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/io/spm.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/settings.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/stats/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/stats/analysis.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/stats/icc.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/visualization/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/visualization/diagnostics.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/visualization/profiles.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/visualization/statistics.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/wiki/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/wiki/facet-fitting.md +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/wiki/file-formats.md +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/wiki/flattening.md +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/wiki/icc-correction.md +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/wiki/overview.md +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/wiki/row-groups.md +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/wiki/tip-correction.md +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/metrology/workflows.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/problem.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/profiles.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/resolution.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/result.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/base.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/integral/__init__.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/integral/_boundary.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/integral/_core.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/integral/_finite.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/integral/_greens.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/integral/_kernels.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/integral/_nystrom.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab/solvers/scalar.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab.egg-info/SOURCES.txt +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab.egg-info/dependency_links.txt +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab.egg-info/entry_points.txt +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab.egg-info/requires.txt +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/src/gratinglab.egg-info/top_level.txt +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_checks.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_compare.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_convergence.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_cross_method.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_efficiency_table.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_fresnel.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_geometry.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_ggp.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_diagram.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_diagram3d.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_docs.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_integral_options.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_mathtext.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_orders.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_provenance.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_qt.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_richtext.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_scalar_options.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_gui_state.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_illumination.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_integral_core.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_integral_corpus.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_integral_finite.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_integral_greens.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_integral_kernels.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_integral_operators.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_integral_solver.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_materials.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_perturbation.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_profiles.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_refractiveindex.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_resolution.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_result.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_scalar.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_solver_conformance.py +0 -0
- {gratinglab-0.1.2 → gratinglab-0.1.3}/tests/test_solver_progress.py +0 -0
|
@@ -21,7 +21,7 @@ from .illumination import Illumination, Polarization
|
|
|
21
21
|
from .resolution import ResolvingPower, resolving_power
|
|
22
22
|
from .result import EfficiencyScan, OrderEfficiency, Provenance
|
|
23
23
|
|
|
24
|
-
__version__ = "0.1.
|
|
24
|
+
__version__ = "0.1.3"
|
|
25
25
|
|
|
26
26
|
__all__ = [
|
|
27
27
|
"Illumination",
|
|
@@ -30,16 +30,24 @@ def flatten_endpoints(x, y):
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
def average_grooves(x, y, groove_centers, period_nm, margin=0.0, n_points=2000,
|
|
33
|
-
min_half_width=10):
|
|
33
|
+
min_half_width=10, require_full_period=True):
|
|
34
34
|
"""
|
|
35
35
|
Extract each groove symmetrically and average them onto a common axis.
|
|
36
36
|
|
|
37
37
|
Parameters:
|
|
38
38
|
min_half_width: skip grooves whose symmetric half-extent is at or below
|
|
39
|
-
this many samples
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
this many samples, a floor on how coarsely a groove may be sampled.
|
|
40
|
+
require_full_period: skip any groove whose full one-period window does
|
|
41
|
+
not fit inside the scan. The common axis below is the narrowest
|
|
42
|
+
window in the set, and normalize_profile stretches that window to a
|
|
43
|
+
full period, so a single groove the scan edge cuts into would
|
|
44
|
+
truncate every other groove to its window and then stretch the
|
|
45
|
+
result. On the synthetic sawtooth one partial groove narrowed the
|
|
46
|
+
window to 0.66 of a period, turned a 70 degree anti-blaze facet
|
|
47
|
+
into 58 and took 13% off the depth. EDGE_EXCLUSION_PERIODS upstream
|
|
48
|
+
usually keeps such grooves out, but it is a user setting, so this
|
|
49
|
+
check does not rely on it. False reproduces the retired rev3
|
|
50
|
+
script, which tests/metrology/test_ggp_equivalence.py pins.
|
|
43
51
|
|
|
44
52
|
Returns:
|
|
45
53
|
x_common, y_avg, y_std, n_used
|
|
@@ -50,6 +58,8 @@ def average_grooves(x, y, groove_centers, period_nm, margin=0.0, n_points=2000,
|
|
|
50
58
|
|
|
51
59
|
for center in groove_centers:
|
|
52
60
|
L = min(half_width, center, len(x) - 1 - center)
|
|
61
|
+
if require_full_period and L < half_width:
|
|
62
|
+
continue # the scan edge cuts into this groove's period
|
|
53
63
|
if L > min_half_width:
|
|
54
64
|
x_g, y_g = extract_single_groove(x, y, center, period_nm, margin,
|
|
55
65
|
allow_asymmetric=False)
|
|
@@ -59,7 +69,9 @@ def average_grooves(x, y, groove_centers, period_nm, margin=0.0, n_points=2000,
|
|
|
59
69
|
grooves.append((x_g, y_g))
|
|
60
70
|
|
|
61
71
|
if len(grooves) == 0:
|
|
62
|
-
raise ValueError(
|
|
72
|
+
raise ValueError(
|
|
73
|
+
"No grooves could be extracted: none has a full period inside the "
|
|
74
|
+
"scan, or the sampling is coarser than min_half_width allows.")
|
|
63
75
|
|
|
64
76
|
# Common symmetric extent = most restrictive of the set
|
|
65
77
|
max_left = min(-g[0][0] for g in grooves)
|
|
@@ -117,17 +117,22 @@ plots the profile rather than only reporting numbers.
|
|
|
117
117
|
| Max slope magnitude | Steepest gradient |
|
|
118
118
|
| Max curvature | Sharpest bend, a proxy for how rounded the groove is |
|
|
119
119
|
|
|
120
|
-
###
|
|
120
|
+
### Partial grooves are skipped
|
|
121
121
|
|
|
122
|
-
`average_grooves`
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
`average_grooves` averages every groove over the **narrowest** window in the set,
|
|
123
|
+
and the normalisation step then stretches that window to span a full period. So a
|
|
124
|
+
single groove the scan edge cuts into would narrow the window for all of them and
|
|
125
|
+
distort the exported shape. It therefore skips any groove whose full period does
|
|
126
|
+
not fit inside the scan, whatever the edge-exclusion setting is. The summary's
|
|
127
|
+
"n of m grooves averaged" counts the skipped ones.
|
|
125
128
|
|
|
129
|
+
Before this check, edge exclusion was the only protection, and it is a setting.
|
|
126
130
|
On the TASTE scan the last groove sits 38 samples from the edge against a
|
|
127
131
|
half-width of 40, which stretched the exported profile horizontally by **5.5%**.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
132
|
+
On the synthetic sawtooth, one partial groove narrowed the window to 0.66 of a
|
|
133
|
+
period, turned a 70° anti-blaze facet into 58° and took 13% off the depth. A
|
|
134
|
+
change that large in the groove's shape is a real change in the efficiency it
|
|
135
|
+
predicts, and nothing in the file would show it.
|
|
131
136
|
|
|
132
137
|
### Controls worth understanding
|
|
133
138
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|