HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan/__pycache__/libnetplan.cpython-311.pyc
�

���cSH��"�ddlZddlZddlZddlZddlmZmZmZmZmZm	Z	ddl
mZmZm
Z
Gd�de��ZGd�dej��ZGd�d	ej��ZGd
�dej��ZGd�d
ej��Zejej�d����Zejeje����Zeje��Zeje��Zeje��Zejej_d�Z d�Z!Gd�d��Z"Gd�d��Z#Gd�d��Z$Gd�d��Z%eeeegej&_'eej&_eeeegej(_'eej(_dee)de)fd�Z*d�Z+dS)�N)�c_char_p�c_void_p�c_int�c_uint�c_size_t�	c_ssize_t)�List�Union�IOc��eZdZdS)�LibNetplanExceptionN��__name__�
__module__�__qualname__���(/usr/share/netplan/netplan/libnetplan.pyr
r
��������Drr
c�.�eZdZdejfdefdefgZdS)�_GError�domain�code�messageN)rrr�ctypes�c_uint32rr�_fields_rrrrrs*�������6�?�+�f�e�_�y�(�>S�T�H�H�Hrrc��eZdZdS)�_netplan_stateNrrrrrr#rrrc��eZdZdS)�_netplan_parserNrrrrr!r!'rrr!c��eZdZdS)�_netplan_net_definitionNrrrrr#r#+rrr#�netplanc��d}|dkretj|��}||��}|dkr|dz}�1|dkrtd|z���|dkrdS|j�d��Std���)	N�i@����rzUnknown error: %d�utf-8z&Halting due to string buffer size > 1M)r�create_string_bufferr
�value�decode)�function�size�bufferrs    r�_string_realloc_call_no_errorr09s���
�D�
��
�
��,�T�2�2���x������2�:�:��!�8�D���!�8�8�%�&9�D�&@�A�A�A�
�Q�Y�Y��4��<�&�&�w�/�/�/�
�F�
G�
G�Grc��tjt����}t|g|�tj|���R���}|s,t|jj�d�����dS�Nr))	r�POINTERr�bool�byrefr
�contentsrr,)�fn�args�err�rets    r�_checked_lib_callr;Ks{��
!�&�.��
!�
!�
#�
#�C�
�r�r�+�4�+���c�*�*�+�+�+�
,�
,�C��H�!�#�,�"6�"=�"=�g�"F�"F�G�G�G�H�Hrc�r�eZdZdZed���Zd�Zd�Zdee	e
ffd�Zd�Zde
fd�Z
de
d	e	fd
�ZdS)�ParserFc�x�|jrdSttj_tjt��gtj_tttgtj_ttj_tttgtj
_ttj
_tttgtj_ttj_ttttgtj_ttj_d|_dS�NT)�_abi_loaded�_NetplanParserP�lib�netplan_parser_new�restyperr3�netplan_parser_clear�argtypesr�	_GErrorPP�netplan_parser_load_yamlr� netplan_parser_load_yaml_from_fd�#netplan_parser_load_nullable_fields�&netplan_parser_load_nullable_overrides��clss r�	_load_abizParser._load_abiUs����?�	��F�)8���&�-3�^�O�-L�-L�,M�� �)�1@�(�I�0V��$�-�/4��$�,�9H�%�QZ�8[��,�5�7<��,�4�<K�U�T]�;^��/�8�:?��/�7��e�X�y�9�	�2�;�=B��2�:�����rc�j�|���t���|_dS�N)rNrBrC�_ptr��selfs r�__init__zParser.__init__ls)���������*�*�,�,��	�	�	rc�h�t�tj|j����dSrP)rBrErr5rQrRs r�__del__zParser.__del__ps(��� � ���d�i�!8�!8�9�9�9�9�9r�
input_filec��t|t��r5ttj|j|�d����dSttj|j|�����dSr2)	�
isinstance�strr;rBrHrQ�encoderI�fileno�rSrWs  r�	load_yamlzParser.load_yamlssj���j�#�&�&�	d��c�:�D�I�z�GX�GX�Y`�Ga�Ga�b�b�b�b�b��c�B�D�I�z�O`�O`�Ob�Ob�c�c�c�c�crc�l�ttj|j|�d����dSr2)r;rB�"netplan_parser_load_yaml_hierarchyrQr[)rS�rootdirs  r�load_yaml_hierarchyzParser.load_yaml_hierarchyys,���#�@�$�)�W�^�^�\c�Md�Md�e�e�e�e�erc�j�ttj|j|�����dSrP)r;rBrJrQr\r]s  r�load_nullable_fieldszParser.load_nullable_fields|s+���#�A�4�9�j�N_�N_�Na�Na�b�b�b�b�br�
constraintc��ttj|j|���|�d����dSr2)r;rBrKrQr\r[)rSrWres   r�load_nullable_overrideszParser.load_nullable_overridessK���#�D��)�Z�%6�%6�%8�%8�*�:K�:K�G�:T�:T�	V�	V�	V�	V�	VrN)rrrr@�classmethodrNrTrVr
rZrr^rbrdrgrrrr=r=Rs��������K�����[��,-�-�-�:�:�:�d�E�#�r�'�N�d�d�d�d�f�f�f�c�r�c�c�c�c�V�"�V�#�V�V�V�V�V�Vrr=c�f�eZdZdZed���Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
ed���Zed���Zed
���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zd�ZdS)�StateFc�R�|jrdSttj_tjt��gtj_tttgtj_ttj_tgtj
_ttj
_ttgtj_t tj_ttttgtj_ttj_ttttgtj_ttj_tttgtj_ttj_t gtj_ttj_t gtj_ttj_tgtj_ttj_d|_dSr?)r@�_NetplanStatePrB�netplan_state_newrDrr3�netplan_state_clearrFrArG�#netplan_state_import_parser_resultsr�netplan_state_get_netdefs_sizer�netplan_state_get_netdef�_NetplanNetDefinitionP�netplan_state_write_yaml_file�#netplan_state_update_yaml_hierarchy�netplan_state_dump_yaml�'netplan_netdef_get_embedded_switch_mode�1netplan_netdef_get_delay_virtual_functions_rebind�netplan_state_get_backendrLs rrNzState._load_abi�s;���?�	��F�(6���%�,2�N�>�,J�,J�+K���(�<J�O�]f�;g��/�8�:?��/�7�7E�6F��*�3�5:��*�2�1?��0J��$�-�/E��$�,�6D�h�PX�Zc�5d��)�2�49��)�1�<J�H�V^�`i�;j��/�8�:?��/�7�0>��y�/Q��#�,�.3��#�+�@V�?W��3�<�>F��3�;�J`�Ia��=�F�HM��=�E�2@�1A��%�.�05��%�-�����rc�j�|���t���|_dSrP)rNrBrmrQrRs rrTzState.__init__�s)���������)�)�+�+��	�	�	rc�h�t�tj|j����dSrP)rBrnrr5rQrRs rrVz
State.__del__�s(�������T�Y� 7� 7�8�8�8�8�8rc�P�ttj|j|j��dSrP)r;rBrorQ)rS�parsers  r�import_parser_resultszState.import_parser_results�s!���#�A�4�9�f�k�Z�Z�Z�Z�Zrc��|r|�d��nd}|r|�d��nd}ttj|j||��dSr2)r[r;rBrsrQ)rS�filenamera�name�roots     r�write_yaml_filezState.write_yaml_file�sW��+3�=�x���w�'�'�'���*1�;�w�~�~�g�&�&�&�t���#�;�T�Y��d�S�S�S�S�Src��|�d��}|r|�d��nd}ttj|j||��dSr2)r[r;rBrtrQ)rS�default_filenamerar�r�s     r�update_yaml_hierarchyzState.update_yaml_hierarchy�sP���&�&�w�/�/��*1�;�w�~�~�g�&�&�&�t���#�A�4�9�d�TX�Y�Y�Y�Y�Yrc�n�|���}ttj|j|��dSrP)r\r;rBrurQ)rS�output_file�fds   r�	dump_yamlzState.dump_yaml�s0��
�
�
�
!�
!���#�5�t�y�"�E�E�E�E�Erc�@�t�|j��SrP)rBrprQrRs r�__len__z
State.__len__�s���1�1�$�)�<�<�<rc��t�|j|�d����}|st	���t||��Sr2)rBrqrQr[�
IndexError�
NetDefinition)rS�def_id�ptrs   r�__getitem__zState.__getitem__�sG���*�*�4�9�f�m�m�G�6L�6L�M�M���	��,�,���T�3�'�'�'rc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrP��id��.0�nds  r�	<genexpr>z!State.all_defs.<locals>.<genexpr>�s(����F�F�B�R�U�B�K�F�F�F�F�F�Fr��dict�_NetdefIteratorrRs r�all_defszState.all_defs�s)���F�F�/�$��*E�*E�F�F�F�F�F�Frc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�z"State.ethernets.<locals>.<genexpr>�s(����M�M�B�R�U�B�K�M�M�M�M�M�Mr�	ethernetsr�rRs rr�zState.ethernets�s)���M�M�/�$��*L�*L�M�M�M�M�M�Mrc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�zState.modems.<locals>.<genexpr>�s(����J�J�B�R�U�B�K�J�J�J�J�J�Jr�modemsr�rRs rr�zState.modems�s)���J�J�/�$��*I�*I�J�J�J�J�J�Jrc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�zState.wifis.<locals>.<genexpr>��(����I�I�B�R�U�B�K�I�I�I�I�I�Ir�wifisr�rRs rr�zState.wifis��)���I�I�/�$��*H�*H�I�I�I�I�I�Irc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�zState.vlans.<locals>.<genexpr>�r�r�vlansr�rRs rr�zState.vlans�r�rc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�z State.bridges.<locals>.<genexpr>��(����K�K�B�R�U�B�K�K�K�K�K�K�Kr�bridgesr�rRs rr�z
State.bridges��)���K�K�/�$�	�*J�*J�K�K�K�K�K�Krc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�zState.bonds.<locals>.<genexpr>�r�r�bondsr�rRs rr�zState.bonds�r�rc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�z State.tunnels.<locals>.<genexpr>�r�r�tunnelsr�rRs rr�z
State.tunnels�r�rc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�zState.vrfs.<locals>.<genexpr>�s(����H�H�B�R�U�B�K�H�H�H�H�H�Hr�vrfsr�rRs rr�z
State.vrfs�s)���H�H�/�$��*G�*G�H�H�H�H�H�Hrc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�z"State.ovs_ports.<locals>.<genexpr>��(����N�N�B�R�U�B�K�N�N�N�N�N�Nrz
_ovs-portsr�rRs r�	ovs_portszState.ovs_ports��)���N�N�/�$��*M�*M�N�N�N�N�N�Nrc�P�td�t|d��D����S)Nc3�(K�|]
}|j|fV��dSrPr�r�s  rr�z#State.nm_devices.<locals>.<genexpr>�r�rz
nm-devicesr�rRs r�
nm_deviceszState.nm_devices�r�rc��t�t�|j�����d��Sr2)rB�netplan_backend_namerxrQr,rRs r�backendz
State.backend�s5���'�'��(E�(E�d�i�(P�(P�Q�Q�X�X�Y`�a�a�arc��tj��5}|�|���tjd�|�������ddd��dS#1swxYwYdS)N)r�zMerged config:
{})�tempfile�
TemporaryFiler��logging�debug�format�read)rS�tmps  r�dump_to_logszState.dump_to_logs�s���
�
#�
%�
%�	C���N�N�s�N�+�+�+��M�.�5�5�c�h�h�j�j�A�A�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	C�	Cs�AA1�1A5�8A5N)rrrr@rhrNrTrVr}r�r�r�r�r��propertyr�r�r�r�r�r�r�r�r�r�r�r�r�rrrrjrj�s3�������K��"�"��[�"�H,�,�,�9�9�9�[�[�[�T�T�T�
Z�Z�Z�
F�F�F�=�=�=�(�(�(��G�G��X�G��N�N��X�N��K�K��X�K��J�J��X�J��J�J��X�J��L�L��X�L��J�J��X�J��L�L��X�L��I�I��X�I��O�O��X�O��O�O��X�O��b�b��X�b�C�C�C�C�Crrjc���eZdZdZed���Zd�Zd�Zed���Z	ed���Z
ed���Zed���Zed	���Z
ed
���Zed���Zed���Zed
���Zed���Zed���Zed���Zed���Zed���Zed���Zed���Zdd�Zed���Zed���ZdS)r�Fc�4�|jrdStgtj_t
tj_tttgtj	_ttj	_tttgtj_ttj_tgtj_t
tj_tgtj
_t
tj
_tttgtj_ttj_tgtj_t
tj_tgtj_ttj_tgtj_ttj_tgtj_ttj_tgtj_ttj_tgtj_ttj_tgtj_t,tj_tgtj_t
tj_tgtj_t
tj_t
gtj_ttj_t
gtj_ttj_t6tt8gtj_t
tj_tgtj_t
tj_d|_dSr?)r@rrrB�netplan_netdef_has_matchrFrrDrr�netplan_netdef_get_idr�netplan_netdef_get_filepath�netplan_netdef_get_backend�netplan_netdef_get_type�netplan_netdef_get_set_name�_netplan_netdef_get_critical�netplan_netdef_get_sriov_link�netplan_netdef_get_vlan_link�netplan_netdef_get_bridge_link�netplan_netdef_get_bond_link�netplan_netdef_get_peer_link�_netplan_netdef_get_vlan_idr�%_netplan_netdef_get_sriov_vlan_filter�netplan_netdef_match_interfacer��netplan_def_type_namerlrG�#_netplan_state_get_vf_count_for_def�'_netplan_netdef_is_trivial_compound_itfrLs rrNzNetDefinition._load_abis
���?�	��F�1G�0H��$�-�/4��$�,�.D�h�PX�-Y��!�*�,5��!�)�4J�H�V^�3_��'�0�2;��'�/�3I�2J��&�/�16��&�.�0F�/G��#�,�.3��#�+�4J�H�V^�3_��'�0�2;��'�/�5K�4L��(�1�38��(�0�6L�5M��)�2�4J��)�1�5K�4L��(�1�3I��(�0�7M�6N��*�3�5K��*�2�5K�4L��(�1�3I��(�0�5K�4L��(�1�3I��(�0�4J�3K��'�0�28��'�/�>T�=U��1�:�<A��1�9�7M�6N��*�3�5:��*�2�-2�G�� �)�+3�� �(�.3�W��!�*�,4��!�)�<J�Lb�dm�;n��/�8�:?��/�7�@V�?W��3�<�>C��3�;�����rc��t|d��sdStj|jj��tj|jj��kS)NrQF)�hasattrr�	addressofrQr6)rS�others  r�__eq__zNetDefinition.__eq__GsD���u�f�%�%�	��5����	� 2�3�3�v�7G��
�H[�7\�7\�\�\rc�J�|���||_||_dSrP)rNrQ�_parent)rS�np_stater�s   rrTzNetDefinition.__init__Ls&����������	� ����rc�Z�tt�|j����SrP)r4rBr�rQrRs r�	has_matchzNetDefinition.has_matchSs ���C�0�0���;�;�<�<�<rc�(��t�fd���S)Nc�`��t��j|t|����SrP)rBr�rQ�len��brSs �r�<lambda>z(NetDefinition.set_name.<locals>.<lambda>Y�(���s�7V�7V�W[�W`�bc�eh�ij�ek�ek�7l�7l�r�r0rRs`r�set_namezNetDefinition.set_nameW����,�-l�-l�-l�-l�m�m�mrc�Z�tt�|j����SrP)r4rBr�rQrRs r�criticalzNetDefinition.critical[s ���C�4�4�T�Y�?�?�@�@�@rc�r�t�|j��}|rt|j|��SdSrP)rBr�rQr�r��rS�link_ptrs  r�
sriov_linkzNetDefinition.sriov_link_s6���4�4�T�Y�?�?���	9� ���x�8�8�8��trc�r�t�|j��}|rt|j|��SdSrP)rBr�rQr�r�r�s  r�	vlan_linkzNetDefinition.vlan_linkf�6���3�3�D�I�>�>���	9� ���x�8�8�8��trc�r�t�|j��}|rt|j|��SdSrP)rBr�rQr�r�r�s  r�bridge_linkzNetDefinition.bridge_linkms6���5�5�d�i�@�@���	9� ���x�8�8�8��trc�r�t�|j��}|rt|j|��SdSrP)rBr�rQr�r�r�s  r�	bond_linkzNetDefinition.bond_linktr�rc�r�t�|j��}|rt|j|��SdSrP)rBr�rQr�r�r�s  r�	peer_linkzNetDefinition.peer_link{r�rc�x�t�|j��}|td��jkrdS|S)N���)rBr�rQrr+)rS�vlan_ids  rrzNetDefinition.vlan_id�s5���1�1�$�)�<�<���f�R�j�j�&�&�&��4��rc�Z�tt�|j����SrP)r4rBr�rQrRs r�has_sriov_vlan_filterz#NetDefinition.has_sriov_vlan_filter�s ���C�=�=�d�i�H�H�I�I�Irc��t�t�|j�����d��Sr2)rBr�r�rQr,rRs rr�zNetDefinition.backend�s5���'�'��(F�(F�t�y�(Q�(Q�R�R�Y�Y�Za�b�b�brc��t�t�|j�����d��Sr2)rBr�r�rQr,rRs r�typezNetDefinition.type�s5���(�(��)D�)D�T�Y�)O�)O�P�P�W�W�X_�`�`�`rc�(��t�fd���S)Nc�`��t��j|t|����SrP)rBr�rQr�r�s �rr�z"NetDefinition.id.<locals>.<lambda>�s(���s�7P�7P�QU�QZ�\]�_b�cd�_e�_e�7f�7f�rr�rRs`rr�zNetDefinition.id�s���,�-f�-f�-f�-f�g�g�grc�(��t�fd���S)Nc�`��t��j|t|����SrP)rBr�rQr�r�s �rr�z(NetDefinition.filepath.<locals>.<lambda>�r�rr�rRs`r�filepathzNetDefinition.filepath�r�rc�n�t�|j��}|o|�d��Sr2)rBrvrQr,)rS�modes  r�embedded_switch_modez"NetDefinition.embedded_switch_mode�s.���:�:�4�9�E�E���,����G�,�,�,rc�Z�tt�|j����SrP)r4rBrwrQrRs r�delay_virtual_functions_rebindz,NetDefinition.delay_virtual_functions_rebind�s ���C�I�I�$�)�T�T�U�U�UrNc
���tt�|j|o|�d��|o|�d��|o|�d������Sr2)r4rBr�rQr[)rS�itf_name�
itf_driver�itf_macs    r�match_interfacezNetDefinition.match_interface�si���C�6�6��I��1�����1�1��/����w�/�/��5�:�,�,�W�5�5�	7�7�8�8�	8rc�&�tjt����}t�|jj|jtj|����}|dkr,t|j	j
�d�����|S)Nrr))rr3rrBr�r�rQr5r
r6rr,)rSr9�counts   r�vf_countzNetDefinition.vf_count�ss��%�f�n�W�%�%�'�'���7�7���8I�4�9�V\�Vb�cf�Vg�Vg�h�h���1�9�9�%�c�l�&:�&A�&A�'�&J�&J�K�K�K��rc�Z�tt�|j����S)z�
        Returns True if the interface is a compound interface (bond or bridge),
        and its configuration is trivial, without any variation from the defaults.
        )r4rBr�rQrRs r�is_trivial_compound_itfz%NetDefinition.is_trivial_compound_itf�s"���C�?�?��	�J�J�K�K�Kr)NNN)rrrr@rhrNr�rTr�r�r�r�r�r�rrrrr
r�r
r�rrrrrr!rrrr�r�sk�������K��=�=��[�=�~]�]�]�
 � � ��=�=��X�=��n�n��X�n��A�A��X�A�����X������X������X������X������X������X���J�J��X�J��c�c��X�c��a�a��X�a��h�h��X�h��n�n��X�n��-�-��X�-��V�V��X�V�8�8�8�8�����X���L�L��X�L�L�Lrr�c�@�eZdZdZed���Zd�Zd�Zd�Zd�Z	dS)r�Fc���|jrdSttd��std���tt
gtj_ttj_	tgtj
_ttj
_	tgtj_dtj_	tgtj
_t
tj
_	d|_dS)N�#_netplan_iter_defs_per_devtype_initz�
                The current version of libnetplan does not allow iterating by devtype.
                Please ensure that both the netplan CLI package and its library are up to date.
            T)r@r�rBr
rlr�&_netplan_state_new_netdef_pertype_iterrFrrD�#_netplan_iter_defs_per_devtype_nextrr�#_netplan_iter_defs_per_devtype_free�_netplan_netdef_idrLs rrNz_NetdefIterator._load_abi�s����?�	��F��s�A�B�B�	�%�'���
�@N�x�>X��2�;�=E��2�:�<D�:��/�8�:P��/�7�<D�:��/�8�:>��/�7�+3�*���'�)1���&�����rc��|���||_t�|j|o|�d����|_dSr2)rNr�rBr%rQr[�iterator)rSr��devtypes   rrTz_NetdefIterator.__init__�sL�������� ��
��B�B�8�=�RY�Ru�^e�^l�^l�mt�^u�^u�v�v��
�
�
rc�D�t�|j��dSrP)rBr'r*rRs rrVz_NetdefIterator.__del__�s���/�/��
�>�>�>�>�>rc��|SrPrrRs r�__iter__z_NetdefIterator.__iter__�s���rc�|�t�|j��}|st�t	|j|��SrP)rBr&r*�
StopIterationr�r�)rS�
next_values  r�__next__z_NetdefIterator.__next__�s7���<�<�T�]�K�K�
��	 ����T�]�J�7�7�7rN)
rrrr@rhrNrTrVr.r2rrrr�r��sq�������K�����[��.w�w�w�?�?�?����8�8�8�8�8rr��patch_object_path�
patch_payloadc���ttjd�|���d��|�d��|�����dS)N�	r))r;rB�netplan_util_create_yaml_patch�joinr[r\)r3r4�patch_outputs   r�create_yaml_patchr:�sa���c�8��i�i� 1�2�2�9�9�'�B�B�#�*�*�7�3�3�"�)�)�+�+�-�-�-�-�-rc��ttj|�d��|���|�����dSr2)r;rB�netplan_util_dump_yaml_subtreer[r\)�prefixrWr�s   r�dump_yaml_subtreer>�sP���c�8��m�m�G�,�,� �'�'�)�)�!�(�(�*�*�,�,�,�,�,r),r�r�r�ctypes.utilrrrrrr�typingr	r
r�	Exceptionr
�	Structurerrr!r#�CDLL�util�find_libraryrBr3rGrArlrr�netplan_get_id_from_nm_filenamerDr0r;r=rjr�r�r7rFr<rZr:r>rrr�<module>rGsS��&��������
�
�
�
�����I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�"�"�"�"�"�"�"�"�"�"�	�	�	�	�	�)�	�	�	�U�U�U�U�U�f��U�U�U�	�	�	�	�	�V�%�	�	�	�	�	�	�	�	�f�&�	�	�	�	�	�	�	�	�f�.�	�	�	��f�k�&�+�*�*�9�5�5�6�6���F�N�>�6�>�'�2�2�3�3�	� �&�.��1�1������/�/��'���(?�@�@��.4�o��#�+�H�H�H�$H�H�H�/V�/V�/V�/V�/V�/V�/V�/V�d}C�}C�}C�}C�}C�}C�}C�}C�@xL�xL�xL�xL�xL�xL�xL�xL�v+8�+8�+8�+8�+8�+8�+8�+8�\08��5�)�.T��"�+�-2��"�*�/7���y�.Q��"�+�-2��"�*�-��c��-�3�-�-�-�-�,�,�,�,�,r