Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/pluggy-0.13.1.dist-info/METADATA @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
| author | shellac |
|---|---|
| date | Mon, 22 Mar 2021 18:12:50 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:4f3585e2f14b |
|---|---|
| 1 Metadata-Version: 2.1 | |
| 2 Name: pluggy | |
| 3 Version: 0.13.1 | |
| 4 Summary: plugin and hook calling mechanisms for python | |
| 5 Home-page: https://github.com/pytest-dev/pluggy | |
| 6 Author: Holger Krekel | |
| 7 Author-email: holger@merlinux.eu | |
| 8 License: MIT license | |
| 9 Platform: unix | |
| 10 Platform: linux | |
| 11 Platform: osx | |
| 12 Platform: win32 | |
| 13 Classifier: Development Status :: 4 - Beta | |
| 14 Classifier: Intended Audience :: Developers | |
| 15 Classifier: License :: OSI Approved :: MIT License | |
| 16 Classifier: Operating System :: POSIX | |
| 17 Classifier: Operating System :: Microsoft :: Windows | |
| 18 Classifier: Operating System :: MacOS :: MacOS X | |
| 19 Classifier: Topic :: Software Development :: Testing | |
| 20 Classifier: Topic :: Software Development :: Libraries | |
| 21 Classifier: Topic :: Utilities | |
| 22 Classifier: Programming Language :: Python :: Implementation :: CPython | |
| 23 Classifier: Programming Language :: Python :: Implementation :: PyPy | |
| 24 Classifier: Programming Language :: Python :: 2 | |
| 25 Classifier: Programming Language :: Python :: 2.7 | |
| 26 Classifier: Programming Language :: Python :: 3 | |
| 27 Classifier: Programming Language :: Python :: 3.4 | |
| 28 Classifier: Programming Language :: Python :: 3.5 | |
| 29 Classifier: Programming Language :: Python :: 3.6 | |
| 30 Classifier: Programming Language :: Python :: 3.7 | |
| 31 Classifier: Programming Language :: Python :: 3.8 | |
| 32 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* | |
| 33 Requires-Dist: importlib-metadata (>=0.12) ; python_version < "3.8" | |
| 34 Provides-Extra: dev | |
| 35 Requires-Dist: pre-commit ; extra == 'dev' | |
| 36 Requires-Dist: tox ; extra == 'dev' | |
| 37 | |
| 38 ==================================================== | |
| 39 pluggy - A minimalist production ready plugin system | |
| 40 ==================================================== | |
| 41 | |
| 42 |pypi| |conda-forge| |versions| |travis| |appveyor| |gitter| |black| |codecov| | |
| 43 | |
| 44 This is the core framework used by the `pytest`_, `tox`_, and `devpi`_ projects. | |
| 45 | |
| 46 Please `read the docs`_ to learn more! | |
| 47 | |
| 48 A definitive example | |
| 49 ==================== | |
| 50 .. code-block:: python | |
| 51 | |
| 52 import pluggy | |
| 53 | |
| 54 hookspec = pluggy.HookspecMarker("myproject") | |
| 55 hookimpl = pluggy.HookimplMarker("myproject") | |
| 56 | |
| 57 | |
| 58 class MySpec(object): | |
| 59 """A hook specification namespace. | |
| 60 """ | |
| 61 | |
| 62 @hookspec | |
| 63 def myhook(self, arg1, arg2): | |
| 64 """My special little hook that you can customize. | |
| 65 """ | |
| 66 | |
| 67 | |
| 68 class Plugin_1(object): | |
| 69 """A hook implementation namespace. | |
| 70 """ | |
| 71 | |
| 72 @hookimpl | |
| 73 def myhook(self, arg1, arg2): | |
| 74 print("inside Plugin_1.myhook()") | |
| 75 return arg1 + arg2 | |
| 76 | |
| 77 | |
| 78 class Plugin_2(object): | |
| 79 """A 2nd hook implementation namespace. | |
| 80 """ | |
| 81 | |
| 82 @hookimpl | |
| 83 def myhook(self, arg1, arg2): | |
| 84 print("inside Plugin_2.myhook()") | |
| 85 return arg1 - arg2 | |
| 86 | |
| 87 | |
| 88 # create a manager and add the spec | |
| 89 pm = pluggy.PluginManager("myproject") | |
| 90 pm.add_hookspecs(MySpec) | |
| 91 | |
| 92 # register plugins | |
| 93 pm.register(Plugin_1()) | |
| 94 pm.register(Plugin_2()) | |
| 95 | |
| 96 # call our ``myhook`` hook | |
| 97 results = pm.hook.myhook(arg1=1, arg2=2) | |
| 98 print(results) | |
| 99 | |
| 100 | |
| 101 Running this directly gets us:: | |
| 102 | |
| 103 $ python docs/examples/toy-example.py | |
| 104 inside Plugin_2.myhook() | |
| 105 inside Plugin_1.myhook() | |
| 106 [-1, 3] | |
| 107 | |
| 108 | |
| 109 .. badges | |
| 110 | |
| 111 .. |pypi| image:: https://img.shields.io/pypi/v/pluggy.svg | |
| 112 :target: https://pypi.org/pypi/pluggy | |
| 113 | |
| 114 .. |versions| image:: https://img.shields.io/pypi/pyversions/pluggy.svg | |
| 115 :target: https://pypi.org/pypi/pluggy | |
| 116 | |
| 117 .. |travis| image:: https://img.shields.io/travis/pytest-dev/pluggy/master.svg | |
| 118 :target: https://travis-ci.org/pytest-dev/pluggy | |
| 119 | |
| 120 .. |appveyor| image:: https://img.shields.io/appveyor/ci/pytestbot/pluggy/master.svg | |
| 121 :target: https://ci.appveyor.com/project/pytestbot/pluggy | |
| 122 | |
| 123 .. |conda-forge| image:: https://img.shields.io/conda/vn/conda-forge/pluggy.svg | |
| 124 :target: https://anaconda.org/conda-forge/pytest | |
| 125 | |
| 126 .. |gitter| image:: https://badges.gitter.im/pytest-dev/pluggy.svg | |
| 127 :alt: Join the chat at https://gitter.im/pytest-dev/pluggy | |
| 128 :target: https://gitter.im/pytest-dev/pluggy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge | |
| 129 | |
| 130 .. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg | |
| 131 :target: https://github.com/ambv/black | |
| 132 | |
| 133 .. |codecov| image:: https://codecov.io/gh/pytest-dev/pluggy/branch/master/graph/badge.svg | |
| 134 :target: https://codecov.io/gh/pytest-dev/pluggy | |
| 135 :alt: Code coverage Status | |
| 136 | |
| 137 .. links | |
| 138 .. _pytest: | |
| 139 http://pytest.org | |
| 140 .. _tox: | |
| 141 https://tox.readthedocs.org | |
| 142 .. _devpi: | |
| 143 http://doc.devpi.net | |
| 144 .. _read the docs: | |
| 145 https://pluggy.readthedocs.io/en/latest/ | |
| 146 | |
| 147 | |
| 148 ========= | |
| 149 Changelog | |
| 150 ========= | |
| 151 | |
| 152 .. towncrier release notes start | |
| 153 | |
| 154 pluggy 0.13.1 (2019-11-21) | |
| 155 ========================== | |
| 156 | |
| 157 Trivial/Internal Changes | |
| 158 ------------------------ | |
| 159 | |
| 160 - `#236 <https://github.com/pytest-dev/pluggy/pull/236>`_: Improved documentation, especially with regard to references. | |
| 161 | |
| 162 | |
| 163 pluggy 0.13.0 (2019-09-10) | |
| 164 ========================== | |
| 165 | |
| 166 Trivial/Internal Changes | |
| 167 ------------------------ | |
| 168 | |
| 169 - `#222 <https://github.com/pytest-dev/pluggy/issues/222>`_: Replace ``importlib_metadata`` backport with ``importlib.metadata`` from the | |
| 170 standard library on Python 3.8+. | |
| 171 | |
| 172 | |
| 173 pluggy 0.12.0 (2019-05-27) | |
| 174 ========================== | |
| 175 | |
| 176 Features | |
| 177 -------- | |
| 178 | |
| 179 - `#215 <https://github.com/pytest-dev/pluggy/issues/215>`_: Switch from ``pkg_resources`` to ``importlib-metadata`` for entrypoint detection for improved performance and import time. This time with ``.egg`` support. | |
| 180 | |
| 181 | |
| 182 pluggy 0.11.0 (2019-05-07) | |
| 183 ========================== | |
| 184 | |
| 185 Bug Fixes | |
| 186 --------- | |
| 187 | |
| 188 - `#205 <https://github.com/pytest-dev/pluggy/issues/205>`_: Revert changes made in 0.10.0 release breaking ``.egg`` installs. | |
| 189 | |
| 190 | |
| 191 pluggy 0.10.0 (2019-05-07) | |
| 192 ========================== | |
| 193 | |
| 194 Features | |
| 195 -------- | |
| 196 | |
| 197 - `#199 <https://github.com/pytest-dev/pluggy/issues/199>`_: Switch from ``pkg_resources`` to ``importlib-metadata`` for entrypoint detection for improved performance and import time. | |
| 198 | |
| 199 | |
| 200 pluggy 0.9.0 (2019-02-21) | |
| 201 ========================= | |
| 202 | |
| 203 Features | |
| 204 -------- | |
| 205 | |
| 206 - `#189 <https://github.com/pytest-dev/pluggy/issues/189>`_: ``PluginManager.load_setuptools_entrypoints`` now accepts a ``name`` parameter that when given will | |
| 207 load only entry points with that name. | |
| 208 | |
| 209 ``PluginManager.load_setuptools_entrypoints`` also now returns the number of plugins loaded by the | |
| 210 call, as opposed to the number of all plugins loaded by all calls to this method. | |
| 211 | |
| 212 | |
| 213 | |
| 214 Bug Fixes | |
| 215 --------- | |
| 216 | |
| 217 - `#187 <https://github.com/pytest-dev/pluggy/issues/187>`_: Fix internal ``varnames`` function for PyPy3. | |
| 218 | |
| 219 | |
| 220 pluggy 0.8.1 (2018-11-09) | |
| 221 ========================= | |
| 222 | |
| 223 Trivial/Internal Changes | |
| 224 ------------------------ | |
| 225 | |
| 226 - `#166 <https://github.com/pytest-dev/pluggy/issues/166>`_: Add ``stacklevel=2`` to implprefix warning so that the reported location of warning is the caller of PluginManager. | |
| 227 | |
| 228 | |
| 229 pluggy 0.8.0 (2018-10-15) | |
| 230 ========================= | |
| 231 | |
| 232 Features | |
| 233 -------- | |
| 234 | |
| 235 - `#177 <https://github.com/pytest-dev/pluggy/issues/177>`_: Add ``get_hookimpls()`` method to hook callers. | |
| 236 | |
| 237 | |
| 238 | |
| 239 Trivial/Internal Changes | |
| 240 ------------------------ | |
| 241 | |
| 242 - `#165 <https://github.com/pytest-dev/pluggy/issues/165>`_: Add changelog in long package description and documentation. | |
| 243 | |
| 244 | |
| 245 - `#172 <https://github.com/pytest-dev/pluggy/issues/172>`_: Add a test exemplifying the opt-in nature of spec defined args. | |
| 246 | |
| 247 | |
| 248 - `#57 <https://github.com/pytest-dev/pluggy/issues/57>`_: Encapsulate hook specifications in a type for easier introspection. | |
| 249 | |
| 250 | |
| 251 pluggy 0.7.1 (2018-07-28) | |
| 252 ========================= | |
| 253 | |
| 254 Deprecations and Removals | |
| 255 ------------------------- | |
| 256 | |
| 257 - `#116 <https://github.com/pytest-dev/pluggy/issues/116>`_: Deprecate the ``implprefix`` kwarg to ``PluginManager`` and instead | |
| 258 expect users to start using explicit ``HookimplMarker`` everywhere. | |
| 259 | |
| 260 | |
| 261 | |
| 262 Features | |
| 263 -------- | |
| 264 | |
| 265 - `#122 <https://github.com/pytest-dev/pluggy/issues/122>`_: Add ``.plugin`` member to ``PluginValidationError`` to access failing plugin during post-mortem. | |
| 266 | |
| 267 | |
| 268 - `#138 <https://github.com/pytest-dev/pluggy/issues/138>`_: Add per implementation warnings support for hookspecs allowing for both | |
| 269 deprecation and future warnings of legacy and (future) experimental hooks | |
| 270 respectively. | |
| 271 | |
| 272 | |
| 273 | |
| 274 Bug Fixes | |
| 275 --------- | |
| 276 | |
| 277 - `#110 <https://github.com/pytest-dev/pluggy/issues/110>`_: Fix a bug where ``_HookCaller.call_historic()`` would call the ``proc`` | |
| 278 arg even when the default is ``None`` resulting in a ``TypeError``. | |
| 279 | |
| 280 - `#160 <https://github.com/pytest-dev/pluggy/issues/160>`_: Fix problem when handling ``VersionConflict`` errors when loading setuptools plugins. | |
| 281 | |
| 282 | |
| 283 | |
| 284 Improved Documentation | |
| 285 ---------------------- | |
| 286 | |
| 287 - `#123 <https://github.com/pytest-dev/pluggy/issues/123>`_: Document how exceptions are handled and how the hook call loop | |
| 288 terminates immediately on the first error which is then delivered | |
| 289 to any surrounding wrappers. | |
| 290 | |
| 291 | |
| 292 - `#136 <https://github.com/pytest-dev/pluggy/issues/136>`_: Docs rework including a much better introduction and comprehensive example | |
| 293 set for new users. A big thanks goes out to @obestwalter for the great work! | |
| 294 | |
| 295 | |
| 296 | |
| 297 Trivial/Internal Changes | |
| 298 ------------------------ | |
| 299 | |
| 300 - `#117 <https://github.com/pytest-dev/pluggy/issues/117>`_: Break up the main monolithic package modules into separate modules by concern | |
| 301 | |
| 302 | |
| 303 - `#131 <https://github.com/pytest-dev/pluggy/issues/131>`_: Automate ``setuptools`` wheels building and PyPi upload using TravisCI. | |
| 304 | |
| 305 | |
| 306 - `#153 <https://github.com/pytest-dev/pluggy/issues/153>`_: Reorganize tests more appropriately by modules relating to each | |
| 307 internal component/feature. This is in an effort to avoid (future) | |
| 308 duplication and better separation of concerns in the test set. | |
| 309 | |
| 310 | |
| 311 - `#156 <https://github.com/pytest-dev/pluggy/issues/156>`_: Add ``HookImpl.__repr__()`` for better debugging. | |
| 312 | |
| 313 | |
| 314 - `#66 <https://github.com/pytest-dev/pluggy/issues/66>`_: Start using ``towncrier`` and a custom ``tox`` environment to prepare releases! | |
| 315 | |
| 316 | |
| 317 pluggy 0.7.0 (Unreleased) | |
| 318 ========================= | |
| 319 | |
| 320 * `#160 <https://github.com/pytest-dev/pluggy/issues/160>`_: We discovered a deployment issue so this version was never released to PyPI, only the tag exists. | |
| 321 | |
| 322 pluggy 0.6.0 (2017-11-24) | |
| 323 ========================= | |
| 324 | |
| 325 - Add CI testing for the features, release, and master | |
| 326 branches of ``pytest`` (PR `#79`_). | |
| 327 - Document public API for ``_Result`` objects passed to wrappers | |
| 328 (PR `#85`_). | |
| 329 - Document and test hook LIFO ordering (PR `#85`_). | |
| 330 - Turn warnings into errors in test suite (PR `#89`_). | |
| 331 - Deprecate ``_Result.result`` (PR `#88`_). | |
| 332 - Convert ``_Multicall`` to a simple function distinguishing it from | |
| 333 the legacy version (PR `#90`_). | |
| 334 - Resolve E741 errors (PR `#96`_). | |
| 335 - Test and bug fix for unmarked hook collection (PRs `#97`_ and | |
| 336 `#102`_). | |
| 337 - Drop support for EOL Python 2.6 and 3.3 (PR `#103`_). | |
| 338 - Fix ``inspect`` based arg introspection on py3.6 (PR `#94`_). | |
| 339 | |
| 340 .. _#79: https://github.com/pytest-dev/pluggy/pull/79 | |
| 341 .. _#85: https://github.com/pytest-dev/pluggy/pull/85 | |
| 342 .. _#88: https://github.com/pytest-dev/pluggy/pull/88 | |
| 343 .. _#89: https://github.com/pytest-dev/pluggy/pull/89 | |
| 344 .. _#90: https://github.com/pytest-dev/pluggy/pull/90 | |
| 345 .. _#94: https://github.com/pytest-dev/pluggy/pull/94 | |
| 346 .. _#96: https://github.com/pytest-dev/pluggy/pull/96 | |
| 347 .. _#97: https://github.com/pytest-dev/pluggy/pull/97 | |
| 348 .. _#102: https://github.com/pytest-dev/pluggy/pull/102 | |
| 349 .. _#103: https://github.com/pytest-dev/pluggy/pull/103 | |
| 350 | |
| 351 | |
| 352 pluggy 0.5.2 (2017-09-06) | |
| 353 ========================= | |
| 354 | |
| 355 - fix bug where ``firstresult`` wrappers were being sent an incorrectly configured | |
| 356 ``_Result`` (a list was set instead of a single value). Add tests to check for | |
| 357 this as well as ``_Result.force_result()`` behaviour. Thanks to `@tgoodlet`_ | |
| 358 for the PR `#72`_. | |
| 359 | |
| 360 - fix incorrect ``getattr`` of ``DeprecationWarning`` from the ``warnings`` | |
| 361 module. Thanks to `@nicoddemus`_ for the PR `#77`_. | |
| 362 | |
| 363 - hide ``pytest`` tracebacks in certain core routines. Thanks to | |
| 364 `@nicoddemus`_ for the PR `#80`_. | |
| 365 | |
| 366 .. _#72: https://github.com/pytest-dev/pluggy/pull/72 | |
| 367 .. _#77: https://github.com/pytest-dev/pluggy/pull/77 | |
| 368 .. _#80: https://github.com/pytest-dev/pluggy/pull/80 | |
| 369 | |
| 370 | |
| 371 pluggy 0.5.1 (2017-08-29) | |
| 372 ========================= | |
| 373 | |
| 374 - fix a bug and add tests for case where ``firstresult`` hooks return | |
| 375 ``None`` results. Thanks to `@RonnyPfannschmidt`_ and `@tgoodlet`_ | |
| 376 for the issue (`#68`_) and PR (`#69`_) respectively. | |
| 377 | |
| 378 .. _#69: https://github.com/pytest-dev/pluggy/pull/69 | |
| 379 .. _#68: https://github.com/pytest-dev/pluggy/issues/68 | |
| 380 | |
| 381 | |
| 382 pluggy 0.5.0 (2017-08-28) | |
| 383 ========================= | |
| 384 | |
| 385 - fix bug where callbacks for historic hooks would not be called for | |
| 386 already registered plugins. Thanks `@vodik`_ for the PR | |
| 387 and `@hpk42`_ for further fixes. | |
| 388 | |
| 389 - fix `#17`_ by considering only actual functions for hooks | |
| 390 this removes the ability to register arbitrary callable objects | |
| 391 which at first glance is a reasonable simplification, | |
| 392 thanks `@RonnyPfannschmidt`_ for report and pr. | |
| 393 | |
| 394 - fix `#19`_: allow registering hookspecs from instances. The PR from | |
| 395 `@tgoodlet`_ also modernized the varnames implementation. | |
| 396 | |
| 397 - resolve `#32`_: split up the test set into multiple modules. | |
| 398 Thanks to `@RonnyPfannschmidt`_ for the PR and `@tgoodlet`_ for | |
| 399 the initial request. | |
| 400 | |
| 401 - resolve `#14`_: add full sphinx docs. Thanks to `@tgoodlet`_ for | |
| 402 PR `#39`_. | |
| 403 | |
| 404 - add hook call mismatch warnings. Thanks to `@tgoodlet`_ for the | |
| 405 PR `#42`_. | |
| 406 | |
| 407 - resolve `#44`_: move to new-style classes. Thanks to `@MichalTHEDUDE`_ | |
| 408 for PR `#46`_. | |
| 409 | |
| 410 - add baseline benchmarking/speed tests using ``pytest-benchmark`` | |
| 411 in PR `#54`_. Thanks to `@tgoodlet`_. | |
| 412 | |
| 413 - update the README to showcase the API. Thanks to `@tgoodlet`_ for the | |
| 414 issue and PR `#55`_. | |
| 415 | |
| 416 - deprecate ``__multicall__`` and add a faster call loop implementation. | |
| 417 Thanks to `@tgoodlet`_ for PR `#58`_. | |
| 418 | |
| 419 - raise a comprehensible error when a ``hookimpl`` is called with positional | |
| 420 args. Thanks to `@RonnyPfannschmidt`_ for the issue and `@tgoodlet`_ for | |
| 421 PR `#60`_. | |
| 422 | |
| 423 - fix the ``firstresult`` test making it more complete | |
| 424 and remove a duplicate of that test. Thanks to `@tgoodlet`_ | |
| 425 for PR `#62`_. | |
| 426 | |
| 427 .. _#62: https://github.com/pytest-dev/pluggy/pull/62 | |
| 428 .. _#60: https://github.com/pytest-dev/pluggy/pull/60 | |
| 429 .. _#58: https://github.com/pytest-dev/pluggy/pull/58 | |
| 430 .. _#55: https://github.com/pytest-dev/pluggy/pull/55 | |
| 431 .. _#54: https://github.com/pytest-dev/pluggy/pull/54 | |
| 432 .. _#46: https://github.com/pytest-dev/pluggy/pull/46 | |
| 433 .. _#44: https://github.com/pytest-dev/pluggy/issues/44 | |
| 434 .. _#42: https://github.com/pytest-dev/pluggy/pull/42 | |
| 435 .. _#39: https://github.com/pytest-dev/pluggy/pull/39 | |
| 436 .. _#32: https://github.com/pytest-dev/pluggy/pull/32 | |
| 437 .. _#19: https://github.com/pytest-dev/pluggy/issues/19 | |
| 438 .. _#17: https://github.com/pytest-dev/pluggy/issues/17 | |
| 439 .. _#14: https://github.com/pytest-dev/pluggy/issues/14 | |
| 440 | |
| 441 | |
| 442 pluggy 0.4.0 (2016-09-25) | |
| 443 ========================= | |
| 444 | |
| 445 - add ``has_plugin(name)`` method to pluginmanager. thanks `@nicoddemus`_. | |
| 446 | |
| 447 - fix `#11`_: make plugin parsing more resilient against exceptions | |
| 448 from ``__getattr__`` functions. Thanks `@nicoddemus`_. | |
| 449 | |
| 450 - fix issue `#4`_: specific ``HookCallError`` exception for when a hook call | |
| 451 provides not enough arguments. | |
| 452 | |
| 453 - better error message when loading setuptools entrypoints fails | |
| 454 due to a ``VersionConflict``. Thanks `@blueyed`_. | |
| 455 | |
| 456 .. _#11: https://github.com/pytest-dev/pluggy/issues/11 | |
| 457 .. _#4: https://github.com/pytest-dev/pluggy/issues/4 | |
| 458 | |
| 459 | |
| 460 pluggy 0.3.1 (2015-09-17) | |
| 461 ========================= | |
| 462 | |
| 463 - avoid using deprecated-in-python3.5 getargspec method. Thanks | |
| 464 `@mdboom`_. | |
| 465 | |
| 466 | |
| 467 pluggy 0.3.0 (2015-05-07) | |
| 468 ========================= | |
| 469 | |
| 470 initial release | |
| 471 | |
| 472 .. contributors | |
| 473 .. _@hpk42: https://github.com/hpk42 | |
| 474 .. _@tgoodlet: https://github.com/goodboy | |
| 475 .. _@MichalTHEDUDE: https://github.com/MichalTHEDUDE | |
| 476 .. _@vodik: https://github.com/vodik | |
| 477 .. _@RonnyPfannschmidt: https://github.com/RonnyPfannschmidt | |
| 478 .. _@blueyed: https://github.com/blueyed | |
| 479 .. _@nicoddemus: https://github.com/nicoddemus | |
| 480 .. _@mdboom: https://github.com/mdboom | |
| 481 | |
| 482 |
