wrapt 2.2.2rc2__tar.gz → 2.2.2rc3__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.
Files changed (153) hide show
  1. {wrapt-2.2.2rc2/src/wrapt.egg-info → wrapt-2.2.2rc3}/PKG-INFO +1 -1
  2. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/__init__.py +1 -1
  3. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/caching.py +9 -9
  4. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3/src/wrapt.egg-info}/PKG-INFO +1 -1
  5. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/LICENSE +0 -0
  6. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/MANIFEST.in +0 -0
  7. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/README.md +0 -0
  8. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/RELEASE.rst +0 -0
  9. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/pyproject.toml +0 -0
  10. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/setup.cfg +0 -0
  11. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/setup.py +0 -0
  12. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/__wrapt__.py +0 -0
  13. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/_wrappers.c +0 -0
  14. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/arguments.py +0 -0
  15. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/decorators.py +0 -0
  16. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/importer.py +0 -0
  17. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/patches.py +0 -0
  18. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/proxies.py +0 -0
  19. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/signature.py +0 -0
  20. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/synchronization.py +0 -0
  21. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/weakrefs.py +0 -0
  22. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt/wrappers.py +0 -0
  23. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt-stubs/__init__.pyi +0 -0
  24. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt.egg-info/SOURCES.txt +0 -0
  25. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt.egg-info/dependency_links.txt +0 -0
  26. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt.egg-info/not-zip-safe +0 -0
  27. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt.egg-info/requires.txt +0 -0
  28. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/src/wrapt.egg-info/top_level.txt +0 -0
  29. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/conftest.py +0 -0
  30. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/compat.py +0 -0
  31. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/module1.py +0 -0
  32. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/module2.py +0 -0
  33. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_adapter.py +0 -0
  34. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_adapter_py3.py +0 -0
  35. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_adapter_py33.py +0 -0
  36. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_annotations.py +0 -0
  37. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_attribute_wrapper.py +0 -0
  38. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_auto_object_proxy.py +0 -0
  39. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_callable_binding_no_args.py +0 -0
  40. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_callable_object_proxy.py +0 -0
  41. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_class.py +0 -0
  42. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_class_py37.py +0 -0
  43. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_copy.py +0 -0
  44. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_decorator_state.py +0 -0
  45. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_decorators.py +0 -0
  46. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_deferred_patching.py +0 -0
  47. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_descriptor_get_class_access.py +0 -0
  48. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_descriptors_py36.py +0 -0
  49. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_enabled_bool_error.py +0 -0
  50. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_entry_points.py +0 -0
  51. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_formatargspec_py35.py +0 -0
  52. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_formatargspec_py38.py +0 -0
  53. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_function.py +0 -0
  54. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_function_wrapper.py +0 -0
  55. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_inheritance_py37.py +0 -0
  56. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_inner_classmethod.py +0 -0
  57. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_inner_staticmethod.py +0 -0
  58. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_inplace_operators.py +0 -0
  59. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_instancemethod.py +0 -0
  60. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_lazy_object_proxy.py +0 -0
  61. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_lru_cache.py +0 -0
  62. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_memoize.py +0 -0
  63. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_monkey_patching.py +0 -0
  64. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_nested_function.py +0 -0
  65. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_object_proxy.py +0 -0
  66. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_object_proxy_hook.py +0 -0
  67. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_object_proxy_self_dict.py +0 -0
  68. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_object_proxy_type_checks.py +0 -0
  69. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_outer_classmethod.py +0 -0
  70. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_outer_staticmethod.py +0 -0
  71. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_pickle.py +0 -0
  72. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_post_import_hooks.py +0 -0
  73. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_pyerr_clear_propagation.py +0 -0
  74. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_resolve_path.py +0 -0
  75. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_runtime_type_hints.py +0 -0
  76. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_synchronized_async.py +0 -0
  77. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_synchronized_lock.py +0 -0
  78. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_synchronized_markers.py +0 -0
  79. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_type_module_attribute.py +0 -0
  80. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_update_attributes.py +0 -0
  81. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_weak_function_proxy.py +0 -0
  82. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/core/test_with_signature.py +0 -0
  83. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_auto_object_proxy_t1.out +0 -0
  84. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_auto_object_proxy_t1.py +0 -0
  85. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_decorator_t1.out +0 -0
  86. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_decorator_t1.py +0 -0
  87. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t1.out +0 -0
  88. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t1.py +0 -0
  89. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t2.out +0 -0
  90. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t2.py +0 -0
  91. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t3.out +0 -0
  92. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t3.py +0 -0
  93. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t4.out +0 -0
  94. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t4.py +0 -0
  95. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t5.out +0 -0
  96. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t5.py +0 -0
  97. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t6.out +0 -0
  98. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t6.py +0 -0
  99. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t7.out +0 -0
  100. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t7.py +0 -0
  101. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t8.out +0 -0
  102. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_cls_t8.py +0 -0
  103. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t1.out +0 -0
  104. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t1.py +0 -0
  105. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t2.out +0 -0
  106. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t2.py +0 -0
  107. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t3.out +0 -0
  108. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t3.py +0 -0
  109. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t4.out +0 -0
  110. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t4.py +0 -0
  111. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t5.out +0 -0
  112. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t5.py +0 -0
  113. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t6.out +0 -0
  114. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t6.py +0 -0
  115. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t7.out +0 -0
  116. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_function_wrapper_fn_t7.py +0 -0
  117. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_object_proxy_arithmetic_t1.out +0 -0
  118. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_object_proxy_arithmetic_t1.py +0 -0
  119. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_object_proxy_container_t1.out +0 -0
  120. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_object_proxy_container_t1.py +0 -0
  121. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_object_proxy_context_t1.out +0 -0
  122. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_object_proxy_context_t1.py +0 -0
  123. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_partial_callable_t1.out +0 -0
  124. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_partial_callable_t1.py +0 -0
  125. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_patch_function_wrapper_t1.out +0 -0
  126. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_patch_function_wrapper_t1.py +0 -0
  127. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_patching_primitives_t1.out +0 -0
  128. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_patching_primitives_t1.py +0 -0
  129. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_post_import_hooks_t1.out +0 -0
  130. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_post_import_hooks_t1.py +0 -0
  131. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_synchronized_lock_t1.out +0 -0
  132. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_synchronized_lock_t1.py +0 -0
  133. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_transient_function_wrapper_t1.out +0 -0
  134. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_transient_function_wrapper_t1.py +0 -0
  135. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_weak_function_proxy_t1.out +0 -0
  136. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_weak_function_proxy_t1.py +0 -0
  137. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t1.out +0 -0
  138. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t1.py +0 -0
  139. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t2.out +0 -0
  140. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t2.py +0 -0
  141. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t3.out +0 -0
  142. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t3.py +0 -0
  143. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t4.out +0 -0
  144. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t4.py +0 -0
  145. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t5.out +0 -0
  146. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t5.py +0 -0
  147. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t6.out +0 -0
  148. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t6.py +0 -0
  149. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t7.out +0 -0
  150. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t7.py +0 -0
  151. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t8.out +0 -0
  152. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tests/mypy/mypy_wrap_function_wrapper_t8.py +0 -0
  153. {wrapt-2.2.2rc2 → wrapt-2.2.2rc3}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wrapt
3
- Version: 2.2.2rc2
3
+ Version: 2.2.2rc3
4
4
  Summary: Module for decorators, wrappers and monkey patching.
5
5
  Author-email: Graham Dumpleton <Graham.Dumpleton@gmail.com>
6
6
  License-Expression: BSD-2-Clause
@@ -13,7 +13,7 @@ def _format_version(parts):
13
13
  )
14
14
 
15
15
 
16
- __version_info__ = ("2", "2", "2", "rc2")
16
+ __version_info__ = ("2", "2", "2", "rc3")
17
17
  __version__ = _format_version(__version_info__)
18
18
 
19
19
  from .__wrapt__ import (
@@ -9,7 +9,7 @@ methods a single shared cache is used, matching ``functools.lru_cache``.
9
9
  from functools import lru_cache as _functools_lru_cache
10
10
  from functools import partial
11
11
 
12
- from .__wrapt__ import BoundFunctionWrapper, FunctionWrapper
12
+ from .__wrapt__ import BaseObjectProxy, BoundFunctionWrapper, FunctionWrapper
13
13
  from .decorators import decorator
14
14
  from .synchronization import synchronized
15
15
 
@@ -74,14 +74,14 @@ class _BoundLRUCacheFunctionWrapper(BoundFunctionWrapper):
74
74
  # If the instance the method is bound to is a wrapt
75
75
  # object proxy, a plain setattr() would fall through and
76
76
  # store the cache on the wrapped object rather than the
77
- # proxy. Proxies expose __self_setattr__() which stores
78
- # the attribute on the proxy itself, so use it when it is
79
- # available and fall back to setattr() otherwise.
80
-
81
- set_attr = getattr(instance, "__self_setattr__", None)
82
-
83
- if set_attr is not None:
84
- set_attr(cache_attr, cache)
77
+ # proxy. Use type() rather than isinstance() so the check
78
+ # sees the real proxy type and is not fooled by the proxy
79
+ # overriding __class__ to report the wrapped object's
80
+ # type. Proxies expose __self_setattr__() which stores the
81
+ # attribute on the proxy itself.
82
+
83
+ if issubclass(type(instance), BaseObjectProxy):
84
+ instance.__self_setattr__(cache_attr, cache)
85
85
  else:
86
86
  setattr(instance, cache_attr, cache)
87
87
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wrapt
3
- Version: 2.2.2rc2
3
+ Version: 2.2.2rc3
4
4
  Summary: Module for decorators, wrappers and monkey patching.
5
5
  Author-email: Graham Dumpleton <Graham.Dumpleton@gmail.com>
6
6
  License-Expression: BSD-2-Clause
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes