????

Your IP : 13.59.219.20


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/_pytest/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/_pytest/__pycache__/legacypath.cpython-311.pyc

�

�܋f!B�	�`�dZddlZddlZddlZddlmZddlmZddlmZddlm	Z	ddlm
Z
ddlmZdd	l
mZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl m!Z!ddl m"Z"ddl m#Z#ddl$m%Z%ddl$m&Z&ddl$m'Z'ddl(m)Z)ddl*m+Z+e	r
ddl,m-Z-ddl.Z.eGd�d����Z/Gd �d!��Z0eej1Gd"�d#������Z2Gd$�d%��Z3d&ed'e4d(efd)�Z5d&ed(efd*�Z6d&e)d(efd+�Z7d&ed(efd,�Z8d&ed(efd-�Z9d&ed(eefd.�Z:d&ed(efd/�Z;d'e4d0e4d1e
e4ee4ffd2�Z<d&e#d(efd3�Z=d&e#d1ed(dfd4�Z>ed5�6��d7ed(dfd8���Z?ed9ed(dfd:���Z@ed;eAd<ed(dfd=���ZBdS)>z?Add backward compatibility support for the legacy py path type.�N)�Path)�List)�Optional)�
TYPE_CHECKING)�Union)�SectionWrapper)�Cache)�final)�LEGACY_PATH��legacy_path)�Config)�hookimpl)�PytestPluginManager)�check_ispytest)�fixture)�FixtureRequest)�Session)�MonkeyPatch)�	Collector)�Item)�Node)�HookRecorder)�Pytester)�	RunResult)�TerminalReporter)�TempPathFactory)�Finalc	�L�eZdZUdZdZejZded<ejZded<dd�dede	d	d
fd�Z
ed	efd���Z
ed	efd
���Zed���Zed���Zejd���Zed	efd���Zd	efd�ZdHd�ZdHd�Zd	efd�Zd	efd�Zd	efd�Zded	efd�Zd	efd�Zd	efd�Zd	efd�Z dIdHd�Z!d	efd�Z"d	efd�Z#dId	efd �Z$d!e%d	e&e'e(e)ffd"�Z*d#�Z+d$e,e'e(e)fd	e,e(fd%�Z-d&�Z.d'�Z/d(�Z0d)dd*�d+e	fd,�Z1d	e2fd-�Z3d	e2fd.�Z4d	e%fd/�Z5d	e%fd0�Z6dJd2�Z7d3�Z8dKd4�Z9d5e)d6ed	e&e'e(e)ffd7�Z:e;j<e;j<efd8�Z=d
ed9�d	e2fd:�Z>d	e2fd;�Z?d<�Z@d
d=�d	e2fd>�ZA	dLd@edAeBd	dBfdC�ZCdLdDedAeBd	dBfdE�ZDd	efdF�ZEd	efdG�ZFd
S)M�Testdirz�
    Similar to :class:`Pytester`, but this class works with legacy legacy_path objects instead.

    All methods just forward to an internal :class:`Pytester` instance, converting results
    to `legacy_path` objects as necessary.
    Fr�CLOSE_STDIN�TimeoutExpired��	_ispytest�pytesterr$�returnNc�2�t|��||_dS�N)r�	_pytester)�selfr%r$s   �c/builddir/build/BUILD/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/_pytest/legacypath.py�__init__zTestdir.__init__6s���y�!�!�!�!�����c�4�t|jj��S)z-Temporary directory where tests are executed.)r
r)�path�r*s r+�tmpdirzTestdir.tmpdir:s���4�>�.�/�/�/r-c�4�t|jj��Sr()r
r)�
_test_tmprootr0s r+�test_tmprootzTestdir.test_tmproot?s���4�>�7�8�8�8r-c��|jjSr()r)�_requestr0s r+�requestzTestdir.requestCs
���~�&�&r-c��|jjSr(�r)�pluginsr0s r+r:zTestdir.pluginsGs
���~�%�%r-c��||j_dSr(r9)r*r:s  r+r:zTestdir.pluginsKs��!(�����r-c��|jjSr()r)�_monkeypatchr0s r+�monkeypatchzTestdir.monkeypatchOs
���~�*�*r-c�6�|j�|��S)z(See :meth:`Pytester.make_hook_recorder`.)r)�make_hook_recorder)r*�
pluginmanagers  r+r@zTestdir.make_hook_recorderSs���~�0�0��?�?�?r-c�4�|j���S)zSee :meth:`Pytester.chdir`.)r)�chdirr0s r+rCz
Testdir.chdirWs���~�#�#�%�%�%r-c�4�|j���S)zSee :meth:`Pytester._finalize`.)r)�	_finalizer0s r+�finalizezTestdir.finalize[s���~�'�'�)�)�)r-c��|r|�d��sd|z}t|jj|g|�Ri|����S)zSee :meth:`Pytester.makefile`.�.)�
startswithr
r)�makefile)r*�ext�args�kwargss    r+rJzTestdir.makefile_sV���	�s�~�~�c�*�*�	���)�C��2�4�>�2�3�H��H�H�H��H�H�I�I�Ir-c�P�t|j�|����S)z"See :meth:`Pytester.makeconftest`.)r
r)�makeconftest�r*�sources  r+rOzTestdir.makeconftestks ���4�>�6�6�v�>�>�?�?�?r-c�P�t|j�|����S)zSee :meth:`Pytester.makeini`.)r
r)�makeinirPs  r+rSzTestdir.makeinios ���4�>�1�1�&�9�9�:�:�:r-rQc�6�|j�|��S)zSee :meth:`Pytester.getinicfg`.)r)�	getinicfgrPs  r+rUzTestdir.getinicfgs����~�'�'��/�/�/r-c�P�t|j�|����S)z'See :meth:`Pytester.makepyprojecttoml`.)r
r)�makepyprojecttomlrPs  r+rXzTestdir.makepyprojecttomlws ���4�>�;�;�F�C�C�D�D�Dr-c�@�t|jj|i|����S)z See :meth:`Pytester.makepyfile`.)r
r)�
makepyfile�r*rLrMs   r+rZzTestdir.makepyfile{s%���4�4�>�4�d�E�f�E�E�F�F�Fr-c�@�t|jj|i|����S)z!See :meth:`Pytester.maketxtfile`.)r
r)�maketxtfiler[s   r+r]zTestdir.maketxtfiles%���5�4�>�5�t�F�v�F�F�G�G�Gr-c�6�|j�|��S)z#See :meth:`Pytester.syspathinsert`.)r)�
syspathinsert�r*r/s  r+r_zTestdir.syspathinsert�s���~�+�+�D�1�1�1r-c�P�t|j�|����S)zSee :meth:`Pytester.mkdir`.)r
r)�mkdir�r*�names  r+rbz
Testdir.mkdir�s ���4�>�/�/��5�5�6�6�6r-c�P�t|j�|����S)zSee :meth:`Pytester.mkpydir`.)r
r)�mkpydirrcs  r+rfzTestdir.mkpydir�s ���4�>�1�1�$�7�7�8�8�8r-c�P�t|j�|����S)z"See :meth:`Pytester.copy_example`.)r
r)�copy_examplercs  r+rhzTestdir.copy_example�s ���4�>�6�6�t�<�<�=�=�=r-�configc�8�|j�||��S)zSee :meth:`Pytester.getnode`.)r)�getnode)r*ri�args   r+rkzTestdir.getnode�s���~�%�%�f�c�2�2�2r-c�6�|j�|��S)z!See :meth:`Pytester.getpathnode`.)r)�getpathnoder`s  r+rnzTestdir.getpathnode�s���~�)�)�$�/�/�/r-�colitemsc�6�|j�|��S)zSee :meth:`Pytester.genitems`.)r)�genitems)r*ros  r+rqzTestdir.genitems�s���~�&�&�x�0�0�0r-c�6�|j�|��S)zSee :meth:`Pytester.runitem`.)r)�runitemrPs  r+rszTestdir.runitem�s���~�%�%�f�-�-�-r-c�(�|jj|g|�R�S)z&See :meth:`Pytester.inline_runsource`.)r)�inline_runsource)r*rQ�cmdlineargss   r+ruzTestdir.inline_runsource�s��.�t�~�.�v�D��D�D�D�Dr-c� �|jj|�S)z%See :meth:`Pytester.inline_genitems`.)r)�inline_genitems�r*rLs  r+rxzTestdir.inline_genitems�s��-�t�~�-�t�4�4r-��r:�no_reraise_ctrlcr|c�(�|jj|||d��S)z See :meth:`Pytester.inline_run`.r{)r)�
inline_run)r*r:r|rLs    r+r~zTestdir.inline_run�s(��(�t�~�(�
�7�5E�
�
�
�	
r-c�&�|jj|i|��S)z)See :meth:`Pytester.runpytest_inprocess`.)r)�runpytest_inprocessr[s   r+r�zTestdir.runpytest_inprocess�s��1�t�~�1�4�B�6�B�B�Br-c�&�|jj|i|��S)zSee :meth:`Pytester.runpytest`.)r)�	runpytestr[s   r+r�zTestdir.runpytest�s��'�t�~�'��8��8�8�8r-c� �|jj|�S)z!See :meth:`Pytester.parseconfig`.)r)�parseconfigrys  r+r�zTestdir.parseconfig�s��)�t�~�)�4�0�0r-c� �|jj|�S)z$See :meth:`Pytester.parseconfigure`.)r)�parseconfigurerys  r+r�zTestdir.parseconfigure�s��,�t�~�,�d�3�3r-�	test_funcc�8�|j�||��S)zSee :meth:`Pytester.getitem`.)r)�getitem)r*rQ�funcnames   r+r�zTestdir.getitem�s���~�%�%�f�h�7�7�7r-c�6�|j�|��S)zSee :meth:`Pytester.getitems`.)r)�getitemsrPs  r+r�zTestdir.getitems�s���~�&�&�v�.�.�.r-c�<�|j�|||���S)z"See :meth:`Pytester.getmodulecol`.)�
configargs�withinit)r)�getmodulecol)r*rQr�r�s    r+r�zTestdir.getmodulecol�s(���~�*�*��z�H�+�
�
�	
r-�modcolrdc�8�|j�||��S)z%See :meth:`Pytester.collect_by_name`.)r)�collect_by_name)r*r�rds   r+r�zTestdir.collect_by_name�s���~�-�-�f�d�;�;�;r-c�.�|jj||||fi|��S)zSee :meth:`Pytester.popen`.)r)�popen)r*�cmdargs�stdout�stderr�stdin�kws      r+r�z
Testdir.popen�s'��$�t�~�#�G�V�V�U�I�I�b�I�I�Ir-��timeoutr�c�(�|jj|||d��S)zSee :meth:`Pytester.run`.r�)r)�run)r*r�r�r�s    r+r�zTestdir.run�s��!�t�~�!�7�G�5�I�I�I�Ir-c�6�|j�|��S)zSee :meth:`Pytester.runpython`.)r)�	runpython)r*�scripts  r+r�zTestdir.runpython�rVr-c�6�|j�|��S)z!See :meth:`Pytester.runpython_c`.)r)�runpython_c)r*�commands  r+r�zTestdir.runpython_c�s���~�)�)�'�2�2�2r-)r�c�&�|jj|d|i�S)z*See :meth:`Pytester.runpytest_subprocess`.r�)r)�runpytest_subprocess)r*r�rLs   r+r�zTestdir.runpytest_subprocess�s��2�t�~�2�D�J�'�J�J�Jr-�$@�string�expect_timeoutz
pexpect.spawnc�:�|j�||���S)z"See :meth:`Pytester.spawn_pytest`.�r�)r)�spawn_pytest)r*r�r�s   r+r�zTestdir.spawn_pytest�s���~�*�*�6�.�*�Q�Q�Qr-�cmdc�:�|j�||���S)zSee :meth:`Pytester.spawn`.r�)r)�spawn)r*r�r�s   r+r�z
Testdir.spawn�s���~�#�#�C��#�G�G�Gr-c��d|j�d�S)Nz	<Testdir �>)r1r0s r+�__repr__zTestdir.__repr__�s��+�4�;�+�+�+�+r-c�*�t|j��Sr()�strr1r0s r+�__str__zTestdir.__str__�s���4�;���r-)r&Nr()r�)rzF)r�)G�__name__�
__module__�__qualname__�__doc__�__test__rr!�__annotations__r"�boolr,�propertyrr1r4r7r:�setterrr>rr@rCrFrJrOrSr�rrUrXrZr]r_rbrfrhrrrrrrkrnrrqrsrurxr~rr�r�r�r�r�r�r�r��
subprocess�PIPEr�r�r�r�r��floatr�r�r�r�rzr-r+r r (s�����������H�#�/�K��/�/�/�&�5�N�G�5�5�5�@E�"�"�"��"��"�$�"�"�"�"��0��0�0�0��X�0��9�k�9�9�9��X�9��'�'��X�'��&�&��X�&�
�^�)�)��^�)��+�[�+�+�+��X�+�@�<�@�@�@�@�&�&�&�&�*�*�*�*�
J��
J�
J�
J�
J�@�k�@�@�@�@�;��;�;�;�;�0��0��0�0�0�0�E�;�E�E�E�E�G�[�G�G�G�G�H�k�H�H�H�H�2�2�2�2�2�7�[�7�7�7�7�9�{�9�9�9�9�>�>��>�>�>�>�3�f�3�h�u�T�9�_�7M�.N�3�3�3�3�0�0�0�1��e�D�)�O�&<�!=�1�$�t�*�1�1�1�1�.�.�.�E�E�E�5�5�5�)+�U�
�
�
�d�
�
�
�
�C�i�C�C�C�C�9�I�9�9�9�9�1�F�1�1�1�1�4�v�4�4�4�4�8�8�8�8�/�/�/�
�
�
�
�<��<�'*�<�	�%��i��(�	)�<�<�<�<������	J�	J�	J�	J�%)��J�J�J�	�J�J�J�J�0�9�0�0�0�0�3�3�3�37�K�K�K�9�K�K�K�K�
48�R�R��R�+0�R�	�R�R�R�R�H�H��H�e�H��H�H�H�H�,�#�,�,�,�,� �� � � � � � r-r c�>�eZdZeededefd�����ZdS)�LegacyTestdirPluginr%r&c�$�t|d���S)z�
        Identical to :fixture:`pytester`, and provides an instance whose methods return
        legacy ``LEGACY_PATH`` objects instead when applicable.

        New code should avoid using :fixture:`testdir` in favor of :fixture:`pytester`.
        Tr#)r )r%s r+�testdirzLegacyTestdirPlugin.testdirs���x�4�0�0�0�0r-N)r�r�r��staticmethodrrr r�rzr-r+r�r�sJ��������1�(�1�w�1�1�1�
�W��\�1�1�1r-r�c�Z�eZdZUdZeed<dd�dededdfd	�Zddedede	fd
�Z
de	fd�ZdS)�TempdirFactoryaBackward compatibility wrapper that implements :class:`py.path.local`
    for :class:`TempPathFactory`.

    .. note::
        These days, it is preferred to use ``tmp_path_factory``.

        :ref:`About the tmpdir and tmpdir_factory fixtures<tmpdir and tmpdir_factory>`.

    �_tmppath_factoryFr#�tmppath_factoryr$r&Nc�2�t|��||_dSr()rr�)r*r�r$s   r+r,zTempdirFactory.__init__s ��	�y�!�!�!� /����r-T�basename�numberedc�v�t|j�||�������S)zTSame as :meth:`TempPathFactory.mktemp`, but returns a :class:`py.path.local` object.)r
r��mktemp�resolve)r*r�r�s   r+r�zTempdirFactory.mktemp#s/���4�0�7�7��(�K�K�S�S�U�U�V�V�Vr-c�r�t|j��������S)zYSame as :meth:`TempPathFactory.getbasetemp`, but returns a :class:`py.path.local` object.)r
r��getbasetempr�r0s r+r�zTempdirFactory.getbasetemp's+���4�0�<�<�>�>�F�F�H�H�I�I�Ir-)T)r�r�r�r�rr�r�r,r�rr�r�rzr-r+r�r�s����������&�%�%�%�FK�0�0�0�.�0�>B�0�	
�0�0�0�0�W�W�s�W�d�W�k�W�W�W�W�J�[�J�J�J�J�J�Jr-r�c��eZdZeed���dedefd�����Zeedede	fd�����Z
dS)	�LegacyTmpdirPlugin�session)�scoper7r&c��|jjS)zFReturn a :class:`pytest.TempdirFactory` instance for the test session.)ri�_tmpdirhandler)r7s r+�tmpdir_factoryz!LegacyTmpdirPlugin.tmpdir_factory-s��
�~�,�,r-�tmp_pathc� �t|��S)a�Return a temporary directory path object which is unique to each test
        function invocation, created as a sub directory of the base temporary
        directory.

        By default, a new base temporary directory is created each test session,
        and old bases are removed after 3 sessions, to aid in debugging. If
        ``--basetemp`` is used then it is cleared each session. See :ref:`base
        temporary directory`.

        The returned object is a `legacy_path`_ object.

        .. note::
            These days, it is preferred to use ``tmp_path``.

            :ref:`About the tmpdir and tmpdir_factory fixtures<tmpdir and tmpdir_factory>`.

        .. _legacy_path: https://py.readthedocs.io/en/latest/path.html
        r)r�s r+r1zLegacyTmpdirPlugin.tmpdir4s��*�8�$�$�$r-N)r�r�r�r�rrr�r�rrr1rzr-r+r�r�,s���������W�9����-��-�>�-�-�-����\�-�
��%��%�+�%�%�%�
�W��\�%�%�%r-r�r*rdr&c�F�t|�|����S)z{Return a directory path object with the given name.

    Same as :func:`mkdir`, but returns a legacy py path instance.
    )r
rbrcs  r+�
Cache_makedirr�Ls��
�t�z�z�$�'�'�(�(�(r-c�*�t|j��S)zO(deprecated) The file system path of the test module which collected this test.�r
r/r0s r+�FixtureRequest_fspathr�T����t�y�!�!�!r-c�*�t|j��S)z�The directory from which pytest was invoked.

    Prefer to use ``startpath`` which is a :class:`pathlib.Path`.

    :type: LEGACY_PATH
    �r
�	startpathr0s r+�TerminalReporter_startdirr�Y����t�~�&�&�&r-c�N�tt|jj����S)z�The directory from which pytest was invoked.

    Prefer to use :attr:`invocation_params.dir <InvocationParams.dir>`,
    which is a :class:`pathlib.Path`.

    :type: LEGACY_PATH
    )r
r��invocation_params�dirr0s r+�Config_invocation_dirr�cs ���s�4�1�5�6�6�7�7�7r-c�D�tt|j����S)z�The path to the :ref:`rootdir <rootdir>`.

    Prefer to use :attr:`rootpath`, which is a :class:`pathlib.Path`.

    :type: LEGACY_PATH
    )r
r��rootpathr0s r+�Config_rootdirr�ns���s�4�=�)�)�*�*�*r-c�V�|jr!tt|j����ndS)z�The path to the :ref:`configfile <configfiles>`.

    Prefer to use :attr:`inipath`, which is a :class:`pathlib.Path`.

    :type: Optional[LEGACY_PATH]
    N)�inipathr
r�r0s r+�Config_inifiler�xs(��.2�\�C�;�s�4�<�(�(�)�)�)�t�Cr-c�*�t|j��S)z�The path from which pytest was invoked.

    Prefer to use ``startpath`` which is a :class:`pathlib.Path`.

    :type: LEGACY_PATH
    r�r0s r+�Session_stardirr��r�r-�type�valuec����|dkrN|j�J�|jj�t|t��rt	j|��n|}�fd�|D��St
d|��|���)N�pathlistc�N��g|]!}tt�|z������"Srz)r
r�)�.0�x�dps  �r+�
<listcomp>z/Config__getini_unknown_type.<locals>.<listcomp>�s+���?�?�?�Q��C��Q��K�K�(�(�?�?�?r-zunknown configuration type: )r��parent�
isinstancer��shlex�split�
ValueError)r*rdr�r��input_valuesr�s     @r+�Config__getini_unknown_typer�s~����z����|�'�'�'�
�\�
 ��-7��s�-C�-C�N�u�{�5�)�)�)���?�?�?�?�,�?�?�?�?��>��>�>��F�F�Fr-c�*�t|j��S)z4(deprecated) returns a legacy_path copy of self.pathr�r0s r+�Node_fspathr�r�r-c�.�t|��|_dSr()rr/)r*r�s  r+�Node_fspath_setr�s���U���D�I�I�Ir-T)�tryfirst�early_configc��t��}|�|j��|�tdt
d���|�tdtt��d���|�tdtt��d���|�tdtt��d���|�tdtt��d���|�tdtt��d���|�tdtt ��d���|�td	t"��|�t$dtt&t(��d���d
S)zLMonkeypatch legacy path attributes in several classes, as early as possible.�makedirF��raising�fspath�startdir�invocation_dir�rootdir�inifile�_getini_unknown_typeN)r�add_cleanup�undo�setattrr	r�rr�r�rr�rr�r�r�rr�rrrr)r�mps  r+�pytest_load_initial_conftestsr�sj��
���B����R�W�%�%�%��J�J�u�i���J�>�>�>��J�J�~�x��2G�)H�)H�RW�J�X�X�X��J�J��*�h�/H�&I�&I�SX�����
�J�J�v�'��2G�)H�)H�RW�J�X�X�X��J�J�v�y�(�>�":�":�E�J�J�J�J��J�J�v�y�(�>�":�":�E�J�J�J�J��J�J�w�
�H�_�$=�$=�u�J�M�M�M��J�J�v�-�/J�K�K�K��J�J�t�X�x��_�E�E�u�J�U�U�U�U�Ur-ric�T�|j�d��r�t��}|�|j��	|j}t
|d���}|�|d|d���n#t$rYnwxYw|j�	td��dSdS)	zKInstalls the LegacyTmpdirPlugin if the ``tmpdir`` plugin is also installed.r1Tr#r�Frzlegacypath-tmpdirN)rA�
has_pluginrrr�_tmp_path_factoryr�r�AttributeError�registerr�)rir�tmp_path_factoryr�s    r+�pytest_configurer�s�����&�&�x�0�0�O�
�]�]�����2�7�#�#�#�	P�%�7��
,�,<��M�M�M�N��J�J�v�/���J�O�O�O�O���	�	�	��D�	����	��%�%�&8�:M�N�N�N�N�N�#O�Os�A6�6
B�B�plugin�managerc��||�d��u}|r7|�t��s|�td��dSdSdS)Nr%zlegacypath-pytester)�
get_plugin�
is_registeredr�r)rr �is_pytesters   r+�pytest_plugin_registeredr%�sr���G�.�.�z�:�:�:�K��E�7�0�0�1D�E�E�E����,�.C�D�D�D�D�D�E�E�E�Er-)Cr��dataclassesr�r��pathlibr�typingrrrr�	iniconfigr�_pytest.cacheproviderr	�_pytest.compatr
rr
�_pytest.configrrr�_pytest.deprecatedr�_pytest.fixturesrr�_pytest.mainr�_pytest.monkeypatchr�
_pytest.nodesrrr�_pytest.pytesterrrr�_pytest.terminalr�_pytest.tmpdirr�typing_extensionsr�pexpectr r��	dataclassr�r�r�r�r�r�r�r�r�r�rrrrr�objectr%rzr-r+�<module>r9sF��E�E������������������������������� � � � � � �������$�$�$�$�$�$�'�'�'�'�'�'� � � � � � �&�&�&�&�&�&�&�&�&�&�&�&�!�!�!�!�!�!�#�#�#�#�#�#�.�.�.�.�.�.�-�-�-�-�-�-�$�$�$�$�$�$�+�+�+�+�+�+� � � � � � �+�+�+�+�+�+�#�#�#�#�#�#�������������)�)�)�)�)�)�%�%�%�%�%�%�&�&�&�&�&�&�-�-�-�-�-�-�*�*�*�*�*�*���'�'�'�'�'�'��N�N�N��U �U �U �U �U �U �U ���U �p
1�
1�
1�
1�
1�
1�
1�
1����J�J�J�J�J�J�J�����J�8%�%�%�%�%�%�%�%�@)��)�S�)�[�)�)�)�)�"��"�;�"�"�"�"�
'�$4�'��'�'�'�'�8��8�;�8�8�8�8�+��+�K�+�+�+�+�D��D�H�[�$9�D�D�D�D�'�'�'�k�'�'�'�'�
G��
G��
G�',�S�$�s�)�^�'<�
G�
G�
G�
G�"�d�"�{�"�"�"�"�
�$��{��t�����
��4����V��V�4�V�V�V���V�>
�O�V�O��O�O�O�
��O�,
�E�V�E�6I�E�d�E�E�E�
��E�E�Er-