Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_plistlib.cpython-311.opt-2.pyc
�

�Ke����r�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddlmZddlmZddlmZejejfZejejd��ejejd��dejd	��iZd
Zgd�ZGd�d
ej��ZGd�dej��ZGd�dej��ZGd�dej��Z ej!ej"dkd��Gd�dej����Z#e$dkrej%��dSdS)�N)�support)�	os_helper)�BytesIO)�UIDs�

        PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NU
        WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VO
        IiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w
        LmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4KCTxrZXk+YUJp
        Z0ludDwva2V5PgoJPGludGVnZXI+OTIyMzM3MjAzNjg1NDc3NTc2NDwvaW50
        ZWdlcj4KCTxrZXk+YUJpZ0ludDI8L2tleT4KCTxpbnRlZ2VyPjkyMjMzNzIw
        MzY4NTQ3NzU4NTI8L2ludGVnZXI+Cgk8a2V5PmFEYXRlPC9rZXk+Cgk8ZGF0
        ZT4yMDA0LTEwLTI2VDEwOjMzOjMzWjwvZGF0ZT4KCTxrZXk+YURpY3Q8L2tl
        eT4KCTxkaWN0PgoJCTxrZXk+YUZhbHNlVmFsdWU8L2tleT4KCQk8ZmFsc2Uv
        PgoJCTxrZXk+YVRydWVWYWx1ZTwva2V5PgoJCTx0cnVlLz4KCQk8a2V5PmFV
        bmljb2RlVmFsdWU8L2tleT4KCQk8c3RyaW5nPk3DpHNzaWcsIE1hw588L3N0
        cmluZz4KCQk8a2V5PmFub3RoZXJTdHJpbmc8L2tleT4KCQk8c3RyaW5nPiZs
        dDtoZWxsbyAmYW1wOyAnaGknIHRoZXJlISZndDs8L3N0cmluZz4KCQk8a2V5
        PmRlZXBlckRpY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5hPC9rZXk+CgkJ
        CTxpbnRlZ2VyPjE3PC9pbnRlZ2VyPgoJCQk8a2V5PmI8L2tleT4KCQkJPHJl
        YWw+MzIuNTwvcmVhbD4KCQkJPGtleT5jPC9rZXk+CgkJCTxhcnJheT4KCQkJ
        CTxpbnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8aW50ZWdlcj4yPC9pbnRlZ2Vy
        PgoJCQkJPHN0cmluZz50ZXh0PC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJPC9k
        aWN0PgoJPC9kaWN0PgoJPGtleT5hRmxvYXQ8L2tleT4KCTxyZWFsPjAuNTwv
        cmVhbD4KCTxrZXk+YUxpc3Q8L2tleT4KCTxhcnJheT4KCQk8c3RyaW5nPkE8
        L3N0cmluZz4KCQk8c3RyaW5nPkI8L3N0cmluZz4KCQk8aW50ZWdlcj4xMjwv
        aW50ZWdlcj4KCQk8cmVhbD4zMi41PC9yZWFsPgoJCTxhcnJheT4KCQkJPGlu
        dGVnZXI+MTwvaW50ZWdlcj4KCQkJPGludGVnZXI+MjwvaW50ZWdlcj4KCQkJ
        PGludGVnZXI+MzwvaW50ZWdlcj4KCQk8L2FycmF5PgoJPC9hcnJheT4KCTxr
        ZXk+YU5lZ2F0aXZlQmlnSW50PC9rZXk+Cgk8aW50ZWdlcj4tODAwMDAwMDAw
        MDA8L2ludGVnZXI+Cgk8a2V5PmFOZWdhdGl2ZUludDwva2V5PgoJPGludGVn
        ZXI+LTU8L2ludGVnZXI+Cgk8a2V5PmFTdHJpbmc8L2tleT4KCTxzdHJpbmc+
        RG9vZGFoPC9zdHJpbmc+Cgk8a2V5PmFuRW1wdHlEaWN0PC9rZXk+Cgk8ZGlj
        dC8+Cgk8a2V5PmFuRW1wdHlMaXN0PC9rZXk+Cgk8YXJyYXkvPgoJPGtleT5h
        bkludDwva2V5PgoJPGludGVnZXI+NzI4PC9pbnRlZ2VyPgoJPGtleT5uZXN0
        ZWREYXRhPC9rZXk+Cgk8YXJyYXk+CgkJPGRhdGE+CgkJUEd4dmRITWdiMlln
        WW1sdVlYSjVJR2QxYm1zK0FBRUNBenhzYjNSeklHOW1JR0pwYm1GeWVTQm5k
        VzVyCgkJUGdBQkFnTThiRzkwY3lCdlppQmlhVzVoY25rZ1ozVnVhejRBQVFJ
        RFBHeHZkSE1nYjJZZ1ltbHVZWEo1CgkJSUdkMWJtcytBQUVDQXp4c2IzUnpJ
        RzltSUdKcGJtRnllU0JuZFc1clBnQUJBZ004Ykc5MGN5QnZaaUJpCgkJYVc1
        aGNua2daM1Z1YXo0QUFRSURQR3h2ZEhNZ2IyWWdZbWx1WVhKNUlHZDFibXMr
        QUFFQ0F6eHNiM1J6CgkJSUc5bUlHSnBibUZ5ZVNCbmRXNXJQZ0FCQWdNOGJH
        OTBjeUJ2WmlCaWFXNWhjbmtnWjNWdWF6NEFBUUlECgkJUEd4dmRITWdiMlln
        WW1sdVlYSjVJR2QxYm1zK0FBRUNBdz09CgkJPC9kYXRhPgoJPC9hcnJheT4K
        CTxrZXk+c29tZURhdGE8L2tleT4KCTxkYXRhPgoJUEdKcGJtRnllU0JuZFc1
        clBnPT0KCTwvZGF0YT4KCTxrZXk+c29tZU1vcmVEYXRhPC9rZXk+Cgk8ZGF0
        YT4KCVBHeHZkSE1nYjJZZ1ltbHVZWEo1SUdkMWJtcytBQUVDQXp4c2IzUnpJ
        RzltSUdKcGJtRnllU0JuZFc1clBnQUJBZ004CgliRzkwY3lCdlppQmlhVzVo
        Y25rZ1ozVnVhejRBQVFJRFBHeHZkSE1nYjJZZ1ltbHVZWEo1SUdkMWJtcytB
        QUVDQXp4cwoJYjNSeklHOW1JR0pwYm1GeWVTQm5kVzVyUGdBQkFnTThiRzkw
        Y3lCdlppQmlhVzVoY25rZ1ozVnVhejRBQVFJRFBHeHYKCWRITWdiMllnWW1s
        dVlYSjVJR2QxYm1zK0FBRUNBenhzYjNSeklHOW1JR0pwYm1GeWVTQm5kVzVy
        UGdBQkFnTThiRzkwCgljeUJ2WmlCaWFXNWhjbmtnWjNWdWF6NEFBUUlEUEd4
        dmRITWdiMllnWW1sdVlYSjVJR2QxYm1zK0FBRUNBdz09Cgk8L2RhdGE+Cgk8
        a2V5PsOFYmVucmFhPC9rZXk+Cgk8c3RyaW5nPlRoYXQgd2FzIGEgdW5pY29k
        ZSBrZXkuPC9zdHJpbmc+CjwvZGljdD4KPC9wbGlzdD4Ks\
        YnBsaXN0MDDfEBABAgMEBQYHCAkKCwwNDg8QERITFCgpLzAxMjM0NTc2OFdh
        QmlnSW50WGFCaWdJbnQyVWFEYXRlVWFEaWN0VmFGbG9hdFVhTGlzdF8QD2FO
        ZWdhdGl2ZUJpZ0ludFxhTmVnYXRpdmVJbnRXYVN0cmluZ1thbkVtcHR5RGlj
        dFthbkVtcHR5TGlzdFVhbkludFpuZXN0ZWREYXRhWHNvbWVEYXRhXHNvbWVN
        b3JlRGF0YWcAxQBiAGUAbgByAGEAYRN/////////1BQAAAAAAAAAAIAAAAAA
        AAAsM0GcuX30AAAA1RUWFxgZGhscHR5bYUZhbHNlVmFsdWVaYVRydWVWYWx1
        ZV1hVW5pY29kZVZhbHVlXWFub3RoZXJTdHJpbmdaZGVlcGVyRGljdAgJawBN
        AOQAcwBzAGkAZwAsACAATQBhAN9fEBU8aGVsbG8gJiAnaGknIHRoZXJlIT7T
        HyAhIiMkUWFRYlFjEBEjQEBAAAAAAACjJSYnEAEQAlR0ZXh0Iz/gAAAAAAAA
        pSorLCMtUUFRQhAMoyUmLhADE////+1foOAAE//////////7VkRvb2RhaNCg
        EQLYoTZPEPo8bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmlu
        YXJ5IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBndW5rPgABAgM8bG90cyBv
        ZiBiaW5hcnkgZ3Vuaz4AAQIDPGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxs
        b3RzIG9mIGJpbmFyeSBndW5rPgABAgM8bG90cyBvZiBiaW5hcnkgZ3Vuaz4A
        AQIDPGxvdHMgb2YgYmluYXJ5IGd1bms+AAECAzxsb3RzIG9mIGJpbmFyeSBn
        dW5rPgABAgM8bG90cyBvZiBiaW5hcnkgZ3Vuaz4AAQIDTTxiaW5hcnkgZ3Vu
        az5fEBdUaGF0IHdhcyBhIHVuaWNvZGUga2V5LgAIACsAMwA8AEIASABPAFUA
        ZwB0AHwAiACUAJoApQCuALsAygDTAOQA7QD4AQQBDwEdASsBNgE3ATgBTwFn
        AW4BcAFyAXQBdgF/AYMBhQGHAYwBlQGbAZ0BnwGhAaUBpwGwAbkBwAHBAcIB
        xQHHAsQC0gAAAAAAAAIBAAAAAAAAADkAAAAAAAAAAAAAAAAAAALs�
KEYED_ARCHIVEs~
        YnBsaXN0MDDUAQIDBAUGHB1YJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVy
        VCR0b3ASAAGGoKMHCA9VJG51bGzTCQoLDA0OVnB5dHlwZVYkY2xhc3NZTlMu
        c3RyaW5nEAGAAl8QE0tleUFyY2hpdmUgVUlEIFRlc3TTEBESExQZWiRjbGFz
        c25hbWVYJGNsYXNzZXNbJGNsYXNzaGludHNfEBdPQ19CdWlsdGluUHl0aG9u
        VW5pY29kZaQVFhcYXxAXT0NfQnVpbHRpblB5dGhvblVuaWNvZGVfEBBPQ19Q
        eXRob25Vbmljb2RlWE5TU3RyaW5nWE5TT2JqZWN0ohobXxAPT0NfUHl0aG9u
        U3RyaW5nWE5TU3RyaW5nXxAPTlNLZXllZEFyY2hpdmVy0R4fVHJvb3SAAQAI
        ABEAGgAjAC0AMgA3ADsAQQBIAE8AVgBgAGIAZAB6AIEAjACVAKEAuwDAANoA
        7QD2AP8BAgEUAR0BLwEyATcAAAAAAAACAQAAAAAAAAAgAAAAAAAAAAAAAAAA
        AAABOQ==s<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" [
   <!ENTITY entity "replacement text">
  ]>
<plist version="1.0">
  <dict>
    <key>A</key>
    <string>&entity;</string>
  </dict>
</plist>
)()ztoo short data�)z1too large offset_table_offset and offset_size = 1s"*)z9too large offset_table_offset and nonstandard offset_sizes$,)z'integer overflow in offset_table_offsets"��������)ztoo large top_objects"	)zinteger overflow in top_objects"��������	)z)too large num_objects and offset_size = 1s"�	)z1too large num_objects and nonstandard offset_sizes$�	)z%extremally large num_objects (32 bit)s"���	)z%extremally large num_objects (64 bit)s"�����	)zinteger overflow in num_objectss"��������	)zoffset_size = 0s"	)zref_size = 0s%�
)ztoo large offsets"*	)zinteger overflow in offsets)��������	)ztoo large array sizes'��
)z$extremally large array size (32-bit)s*����)z$extremally large array size (64-bit)s.������)zinteger overflow in array sizes.���������)ztoo large reference indexs%�
)z#integer overflow in reference indexs,���������)ztoo large bytes sizes%O#A)z$extremally large bytes size (32-bit)s(O���A)z$extremally large bytes size (64-bit)s,O�����A)zinteger overflow in bytes sizes,O��������A)ztoo large ASCII sizes%_#A)z$extremally large ASCII size (32-bit)s(_���A)z$extremally large ASCII size (64-bit)s,_�����A)zinteger overflow in ASCII sizes,_��������A)z
invalid ASCIIs#Q�
)ztoo large UTF-16 sizes'o �)z%extremally large UTF-16 size (32-bit)s*oO��� �)z%extremally large UTF-16 size (64-bit)s.o����� �)zinteger overflow in UTF-16 sizes.o�������� �)zinvalid UTF-16s$a�)znon-hashable keys&��)z&too large datetime (datetime overflow)s*3BP)z'too large datetime (timedelta overflow)s*3B�)zinvalid datetime (Infinity)s*3�)zinvalid datetime (NaN)s*3�c��eZdZd�Zd/d�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z!d!�Z"d"�Z#d#�Z$d$�Z%d%�Z&d&�Z'd'�Z(d(�Z)d)�Z*d*�Z+d+�Z,d,�Z-d-�Z.d.�Z/dS)0�TestPlistlibc�T�	tjtj��dS#YdSxYw�N)�os�unlinkr�TESTFN��selfs �</usr/local/apps/python3/lib/python3.11/test/test_plistlib.py�tearDownzTestPlistlib.tearDown�s0��	��I�i�&�'�'�'�'�'��	��D�D���s�"�'Nc��tdddddgd�gddd	d
ddtd
dddtddgd�������dddgtjdddddd��t��t�����}d|d<|S)N�Doodah�A�B�g@@@)���g�?i�l����l,���l���� �@Jz<hello & 'hi' there!>u
Mässig, MaßTF�)rr�text��a�b�c)�
anotherString�
aUnicodeValue�
aTrueValue�aFalseValue�
deeperDict�
<binary gunk>�<lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk><lots of binary gunk>���
��!)�aString�aList�aFloat�anInt�aBigInt�aBigInt2�aNegativeInt�aNegativeBigInt�aDict�someData�someMoreData�
nestedData�aDate�anEmptyDict�anEmptyListzThat was a unicode key.uÅbenraa)�dict�datetime�list)r�fmt�pls   r�_createzTestPlistlib._create�s���
����R��y�y�y�1���"�#��*��5�1��!��"�����?�?�?����(�@�?�@��%�d�B��B��B�?�?��&�&��&�&�+
�
�
��.5��<���	rc��|���}|�|dd��|�|ddd��dS)Nr.rr6r&F)rB�assertEqual)rrAs  r�test_createzTestPlistlib.test_create�sN��
�\�\�^�^������I���1�1�1�����G��]�3�U�;�;�;�;�;rc�B�|���}ttjd��5}t	j||��ddd��n#1swxYwYttjd��5}t	j|��}ddd��n#1swxYwY|�t|��t|����|�	ttj|d��|�	ttjd��dS)N�wb�rb�filename)rB�openrr�plistlib�dump�loadrDr=�assertRaises�AttributeError)rrA�fp�pl2s    r�test_iozTestPlistlib.test_io�s\��
�\�\�^�^��
�)�"�D�
)�
)�	"�R��M�"�b�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��)�"�D�
)�
)�	$�R��-��#�#�C�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	
����b���4��9�9�-�-�-����.�(�-��Z�H�H�H����.�(�-��D�D�D�D�Ds#�A�A�A�6B�B�Bc���t��g}tD]X}|�|���5|�tt
j||���ddd��n#1swxYwY�YdS�N�r@)�object�ALL_FORMATS�subTestrN�	TypeErrorrK�dumps)rrAr@s   r�test_invalid_typezTestPlistlib.test_invalid_type�s����x�x�\���	J�	J�C����#��&�&�
J�
J��!�!�)�X�^�R�S�!�I�I�I�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J��	J�	Js�)A$�$A(	�+A(	c��|�t��5td��ddd��n#1swxYwY|�t��5td��ddd��n#1swxYwY|�t��5td��ddd��dS#1swxYwYdS)Nz
not an int�i��)rNrYr�
ValueErrorrs r�test_invalid_uidzTestPlistlib.test_invalid_uid�sp��
�
�
�y�
)�
)�	�	������	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�z�
*�
*�	�	���L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�z�
*�
*�	�	���H�H�H�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s0�7�;�;�A8�8A<�?A<�B:�:B>�B>c	�x�dD]�}tD]�}|�||���5tj||���}tj|��}|�|t��|�||��tj||���}|�||��ddd��n#1swxYwY����tD]l}dddzdz
dddzfD]Y}|�||���5|�ttj||���ddd��n#1swxYwY�Z�mdS)	N)r��i���l���l����l����rl�����rAr@rUlr�rl����)
rWrXrKrZ�loads�assertIsInstance�intrDrN�
OverflowError�rrAr@�datarQ�data2s      r�test_intzTestPlistlib.test_int�s���0�		2�		2�B�"�
2�
2���\�\�R�S�\�1�1�2�2�#�>�"�#�6�6�6�D�"�.��.�.�C��)�)�#�s�3�3�3��$�$�R��-�-�-�$�N�3�C�8�8�8�E��$�$�T�5�1�1�1�
2�2�2�2�2�2�2�2�2�2�2����2�2�2�2��
2��	3�	3�C�"�A��H�Q�J���c��	�B�
3�
3���\�\�R�S�\�1�1�3�3��%�%�m�X�^�&(�c�&�3�3�3�3�3�3�3�3�3�3�3�3�3�3����3�3�3�3��
3�	3�	3s$�BB9�9B=�B=�8)D-�-D1�4D1c��dD]�}tD]�}|�||���5tjt	|��|���}tj|��}|�|t��|�||��tj||���}|�||��ddd��n#1swxYwY�ƌ�dS)N)r(r)rerU)	rWrXrKrZ�	bytearrayrgrh�bytesrDrks      r�test_bytearrayzTestPlistlib.test_bytearray�s��K�	2�	2�B�"�
2�
2���\�\�R�S�\�1�1�2�2�#�>�)�B�-�-�S�A�A�A�D�"�.��.�.�C��)�)�#�u�5�5�5��$�$�S�"�-�-�-�$�N�3�C�8�8�8�E��$�$�T�5�1�1�1�
2�2�2�2�2�2�2�2�2�2�2����2�2�2�2��
2�	2�	2s�BC�C
�
C
c�2�|���}tj|��}tj|��}|�t|��t|����tj|��}|�||��dSr)rBrKrZrgrDr=)rrArlrQrms     r�
test_byteszTestPlistlib.test_bytes�sz��
�\�\�^�^���~�b�!�!���n�T�"�"������b���4��9�9�-�-�-���s�#�#������u�%�%�%�%�%rc��ddigggggggg}|�tjtj|����|��dS)N�test�aaaaaa�rDrKrgrZ�rrls  r�test_indentation_arrayz#TestPlistlib.test_indentation_array�sT���	�*�+�,�-�.�/�0�1�2���������t�(<�(<�=�=�t�D�D�D�D�Drc
��ddddddddd	d
iiiiiiiii}|�tjtj|����|��dS)N�1�2�3�4�5�6�7�8�9rwrxrys  r�test_indentation_dictz"TestPlistlib.test_indentation_dictsd���c�C�#��c�C�#��Y�?O�9P�3Q�-R�'S�!T�U�V�W���������t�(<�(<�=�=�t�D�D�D�D�Drc��dddddigggggigii}|�tjtj|����|��dS)Nr|r}r~rvrwrxrys  r�test_indentation_dict_mixz&TestPlistlib.test_indentation_dict_mixs]���c�S��	�':�&;�%<�$=�#>�"?�@�A�B�C���������t�(<�(<�=�=�t�D�D�D�D�Drc���td��}|�tjtj|tj�����|��td��td��td��td��td��td��d	�}|�tjtj|tj�����|��dS)
NrrUrrrbrcrdl)�uid0�uid2�uid8�uid16�uid32�uid63)rrDrKrgrZ�
FMT_BINARY)rrl�	dict_datas   r�test_uidzTestPlistlib.test_uids����1�v�v���������t��AT�(U�(U�(U�V�V�X\�]�]�]���F�F���F�F���K�K���\�\���\�\���\�\�

�
�	�	
�������y�h�FY�(Z�(Z�(Z�[�[�]f�g�g�g�g�grc�Z�td��}|�|jd��dS�Nr)rrDrl)r�uids  r�
test_uid_datazTestPlistlib.test_uid_datas+���!�f�f�������1�%�%�%�%�%rc��|�td��td����|�td��td����|�td��d��dS)Nrrznot uid)rDr�assertNotEqualrs r�test_uid_eqzTestPlistlib.test_uid_eqsh������Q����Q���(�(�(����C��F�F�C��F�F�+�+�+����C��F�F�I�.�.�.�.�.rc��|�ttd����ttd������dSr�)rD�hashrrs r�
test_uid_hashzTestPlistlib.test_uid_hash!s6������c�!�f�f���t�C��F�F�|�|�4�4�4�4�4rc�f�|�ttd����d��dS)NrzUID(1))rD�reprrrs r�
test_uid_reprzTestPlistlib.test_uid_repr$s*������c�!�f�f���x�0�0�0�0�0rc�p�|�tjtd����d��dSr�)rD�operator�indexrrs r�test_uid_indexzTestPlistlib.test_uid_index's.��������A���/�/��3�3�3�3�3rc
���ttjdz��D]X}|�tjtjt
d��|�����t
d�����YdS)Nr�)�protocol)�range�pickle�HIGHEST_PROTOCOLrDrgrZr)r�protos  r�test_uid_picklezTestPlistlib.test_uid_pickle*sq���6�2�Q�6�7�7�	[�	[�E����V�\�&�,�s�2�w�w��*O�*O�*O�P�P�RU�VX�RY�RY�Z�Z�Z�Z�	[�	[rc��|�tjtd����td����|�tjtd����td����dSr�)rD�copyr�deepcopyrs r�
test_uid_copyzTestPlistlib.test_uid_copy.s`�������3�q�6�6�*�*�C��F�F�3�3�3������s�1�v�v�.�.��A���7�7�7�7�7rc�$�tD]�}|�|���5tjt|��}tj||���}|�|t|d��ddd��n#1swxYwY��dS�NrUz2generated data was not identical to Apple's output)rWrXrKrg�TESTDATArZrD)rr@rArls    r�test_appleformattingz!TestPlistlib.test_appleformatting2s����	J�	J�C����#��&�&�
J�
J��^�H�S�M�2�2���~�b�c�2�2�2��� � ��x��}�H�J�J�J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J��	J�	Js�AB�B	�B	c���d|_tD]�}|�|���5|�|���}t	jt||���}|�t|��t|��d��t	jt|��}|�t|��t|��d��ddd��n#1swxYwY��dSr�)	�maxDiffrWrXrBrKrgr�rDr=)rr@rArQs    r�test_appleformattingfromliteralz,TestPlistlib.test_appleformattingfromliteral;s;������	J�	J�C����#��&�&�
J�
J��\�\�c�\�*�*���n�X�c�]��<�<�<��� � ��b���4��9�9�H�J�J�J��n�X�c�]�3�3��� � ��b���4��9�9�H�J�J�J�

J�
J�
J�
J�
J�
J�
J�
J�
J�
J�
J����
J�
J�
J�
J��	J�	Js�B9C,�,C0	�3C0	c��tD�]4}|�|���5t��}|�|���}t	j|||���t	jt|�����|���}|�t|��t|����t	jt|�������}|�t|��t|����ddd��n#1swxYwY��6dSrT)
rWrXrrBrKrLrM�getvaluerDr=)rr@r!rArQs     r�test_bytesiozTestPlistlib.test_bytesioGs?���	6�	6�C����#��&�&�
6�
6��I�I���\�\�c�\�*�*���
�b�!��-�-�-�-��m�G�A�J�J�L�L�$9�$9�s�C�C�C��� � ��b���4��9�9�5�5�5��m�G�A�J�J�L�L�$9�$9�:�:��� � ��b���4��9�9�5�5�5�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��	6�	6s�DD1�1D5	�8D5	c	���tj��}d|d<d|d<d|d<tD�]?}dD�]8}|�||���5t	��}tj||||���tjt	|�����tj�	��}|�	t|��t|����|r8|�	t|�����gd
���n7|�	t|�����gd���ddd��n#1swxYwY��:��AdS�Nrr!rr rr")FT)r@�	sort_keys)�	dict_typer)r!r r")
�collections�OrderedDictrWrXrrKrLrMr�rDr=r?�keys)rrAr@r�r!rQs      r�test_keysort_bytesioz!TestPlistlib.test_keysort_bytesioRs���
�
$�
&�
&����3����3����3���
	L�
	L�C�*�
L�
L�	��\�\�c�Y�\�?�?�L�L��	�	�A��M�"�a�S�I�F�F�F�F�"�-���
�
���(=�(=�"-�"9�;�;�;�C��$�$�T�"�X�X�t�C�y�y�9�9�9� �L��(�(��c�h�h�j�j�)9�)9�?�?�?�K�K�K�K��(�(��c�h�h�j�j�)9�)9�?�?�?�K�K�K�L�L�L�L�L�L�L�L�L�L�L����L�L�L�L��
L�
	L�
	Ls�	DE�E �#E c	�~�tj��}d|d<d|d<d|d<tD�]}dD�]
}|�||���5t	j|||���}t	j|tj�	��}|�t|��t|����|r8|�t|�
����gd
���n7|�t|�
����gd���ddd��n#1swxYwY����dSr�)r�r�rWrXrKrZrgrDr=r?r�)rrAr@r�rlrQs      r�test_keysortzTestPlistlib.test_keysortgs���
�
$�
&�
&����3����3����3���
	L�
	L�C�*�	
L�	
L�	��\�\�c�Y�\�?�?�L�L�#�>�"�#��K�K�K�D�"�.���9P�Q�Q�Q�C��$�$�T�"�X�X�t�C�y�y�9�9�9� �L��(�(��c�h�h�j�j�)9�)9�?�?�?�K�K�K�K��(�(��c�h�h�j�j�)9�)9�?�?�?�K�K�K�L�L�L�L�L�L�L�L�L�L�L����L�L�L�L��	
L�
	L�
	Ls�	CD.�.D2�5D2c	�<�ddi}tD]�}|�|���5|�ttj||���t
��}|�ttj|||���ddd��n#1swxYwY��dS)N�*�aNumberrU)rWrXrNrYrKrZrrL)rrAr@r!s    r�test_keys_no_stringz TestPlistlib.test_keys_no_stringys����9�
���	L�	L�C����#��&�&�
L�
L��!�!�)�X�^�R�S�!�I�I�I��I�I���!�!�)�X�]�B��s�!�K�K�K�	
L�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L����
L�
L�
L�
L��	L�	Ls�A B�B	�B	c	��ddd�}tD]�}|�|���5tj||dd���}tj|��}|�|ddi��t
��}tj|||dd���|���}tj|�����}|�|ddi��ddd��n#1swxYwY��dS)	Nr��aWord)r��snakerUTF)r@�skipkeysr�r�)	rWrXrKrZrgrDrrLr�)rrAr@rlrQrPs      r�
test_skipkeyszTestPlistlib.test_skipkeys�sW����
�
��
�
	:�
	:�C����#��&�&�
:�
:��~��C�$�%�A�A�A���n�T�*�*��� � ��w��&8�9�9�9��Y�Y���
����d�e�E�E�E�E��{�{�}�}���n�R�[�[�]�]�3�3��� � ��w��&8�9�9�9�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:��
	:�
	:s�B>C/�/C3	�6C3	c	�z�dddd�}tD]�}|�|���5tj||���}tj|��}|�|ddgddgddgd���|tjkr"|�|d	|d
��ddd��n#1swxYwY��dS)N)rr)r���first�second�thirdrUrrrr�r�r�)rWrXrKrZrgrDr��assertIsNot�rrAr@rlrQs     r�test_tuple_memberszTestPlistlib.test_tuple_members�s;�����
�
���
	B�
	B�C����#��&�&�	
B�	
B��~�b�c�2�2�2���n�T�*�*��� � ����V� �!�f���V�'�'����
�(�-�-�-��$�$�S��\�3�x�=�A�A�A�	
B�	
B�	
B�	
B�	
B�	
B�	
B�	
B�	
B�	
B�	
B����	
B�	
B�	
B�	
B��
	B�
	Bs�A=B/�/B3	�6B3	c	�f�ddgddgddgd�}tD]�}|�|���5tj||���}tj|��}|�|ddgddgddgd���|�|d|d��ddd��n#1swxYwY��dS)	Nrrrr�r�rUr�r��rWrXrKrZrgrDr�r�s     r�test_list_memberszTestPlistlib.test_list_members�s$����V��!�f���V�
�
���		>�		>�C����#��&�&�
>�
>��~�b�c�2�2�2���n�T�*�*��� � ����V� �!�f���V�'�'����
� � ��W��s�8�}�=�=�=�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>��		>�		>��A-B%�%B)	�,B)	c	�f�ddiddiddid�}tD]�}|�|���5tj||���}tj|��}|�|ddiddiddid���|�|d|d��ddd��n#1swxYwY��dS)	Nr rr!rr�rUr�r�r�r�s     r�test_dict_memberszTestPlistlib.test_dict_members�s$���1�X��A�h��1�Y�
�
���		>�		>�C����#��&�&�
>�
>��~�b�c�2�2�2���n�T�*�*��� � ��!�1�X�"�A�h�!�1�Y�'�'����
� � ��W��s�8�}�=�=�=�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>��		>�		>r�c���td��D]�}t|��}d|z}|dks|dvrOtj|tj���}|dkr(|�tj|��|��nR|�t��5tj|tj���ddd��n#1swxYwYtj|tj	�����dS)N�zstring containing %s� z
	rU�
)
r��chrrKrZ�FMT_XMLrDrgrNr^r�)r�ir"�
testStringrls     r�test_controlcharactersz#TestPlistlib.test_controlcharacters�s9���s���	@�	@�A��A���A�/�!�3�J��B�w�w�!�x�-�-��~�j�h�6F�G�G�G����9�9��$�$�X�^�D�%9�%9�:�F�F�F���&�&�z�2�2�E�E��N�:�8�3C�D�D�D�D�E�E�E�E�E�E�E�E�E�E�E����E�E�E�E��N�:�8�+>�?�?�?�?�?�	@�	@s�!C�C
	�
C
	c��ddi}tD]n}|�|���5tj||���}|�tj|��|��ddd��n#1swxYwY�odS)N�pythonu🐍rU)rWrXrKrZrDrg)rrAr@rls    r�test_non_bmp_charactersz$TestPlistlib.test_non_bmp_characters�s�����
%���	;�	;�C����#��&�&�
;�
;��~�b�c�2�2�2��� � ����!5�!5�r�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;��	;�	;s�?A/�/A3	�6A3	c��tD]�}|�|���5|�t��5t	jd|���ddd��n#1swxYwY|�t��5t	jd|���ddd��n#1swxYwYddd��n#1swxYwY��dS)NrUu�u�)rWrXrN�UnicodeEncodeErrorrKrZ)rr@s  r�test_lone_surrogatesz!TestPlistlib.test_lone_surrogates�s����	6�	6�C����#��&�&�
6�
6��&�&�'9�:�:�6�6��N�8��5�5�5�5�6�6�6�6�6�6�6�6�6�6�6����6�6�6�6��&�&�'9�:�:�6�6��N�8��5�5�5�5�6�6�6�6�6�6�6�6�6�6�6����6�6�6�6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��	6�	6sX�B=�A�B=�A"�"B=�%A"�&B=�B&�B=�&B*�*B=�-B*�.B=�=C	�C	c�z�tD]�}|�|���5d}gd�}tjtj||�����}tjtj||�����}|�||��|�||��ddd��n#1swxYwY��dS)NrU�abc)rrrr�)rWrXrKrgrZrD)rr@�test1�test2�result1�result2s      r�test_nondictrootzTestPlistlib.test_nondictroot�s����	1�	1�C����#��&�&�
1�
1���(�(�(��"�.����3�)G�)G�)G�H�H��"�.����3�)G�)G�)G�H�H��� � ���0�0�0�� � ���0�0�0�

1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1��	1�	1s�BB/�/B3	�6B3	c��dD]=}|�ttjd|z������>dS)N)z<key>key inside an array</key>z-<key>key inside an array2</key><real>3</real>z&<true/><key>key inside an array3</key>z <plist><array>%s</array></plist>�rNr^rKrg�encode�rr�s  r�test_invalidarrayzTestPlistlib.test_invalidarray�s^��<�	O�	O�A�
���j�(�.�A�!�C�K�K�M�M�
O�
O�
O�
O�	O�	Orc��dD]x}|�ttjd|z�����|�ttjd|z������ydS)N)z0<key><true/>k</key><string>compound key</string>z<key>single key</key>z<string>missing key</string>ze<key>k1</key><string>v1</string><real>5.3</real><key>k1</key><key>k2</key><string>double key</string>z<plist><dict>%s</dict></plist>z-<plist><array><dict>%s</dict></array></plist>r�r�s  r�test_invaliddictzTestPlistlib.test_invaliddict�s���K�	\�	\�A�

���j�(�.�?��A�I�I�K�K�
M�
M�
M����j�(�.�N�q�P�X�X�Z�Z�
\�
\�
\�
\�	\�	\rc�R�|�ttjd��dS)Ns-<plist><integer>not integer</integer></plist>�rNr^rKrgrs r�test_invalidintegerz TestPlistlib.test_invalidintegers2�����*�h�n�J�	L�	L�	L�	L�	Lrc�R�|�ttjd��dS)Ns*<plist><integer>not real</integer></plist>r�rs r�test_invalidrealzTestPlistlib.test_invalidreals2�����*�h�n�G�	I�	I�	I�	I�	Irc��d}tj|��}|�|d��d}tj|��}|�|d��d}tj|��}|�|d��dS)Ns%<plist><integer>456</integer></plist>i�s%<plist><integer>0xa</integer></plist>r+s&<plist><integer>0123</integer></plist>�{)rKrgrD)rrA�values   r�test_integer_notationsz#TestPlistlib.test_integer_notationss���
5����r�"�"�������$�$�$�
5����r�"�"�������#�#�#�
6����r�"�"�������$�$�$�$�$rc�@�ttj}ddtjfddtjfddtjffD]�\}}}|�tj���}|�|���5|�	d|��}||�
d���|��z}tj|��}|�
t|��t|����ddd��n#1swxYwY��dS)	Nsutf-8zutf-8sutf-16z	utf-16-lez	utf-16-berU)�encodingsUTF-8)r�rKr��codecs�BOM_UTF8�BOM_UTF16_LE�BOM_UTF16_BErBrX�replace�decoder�rgrDr=)r�base�xml_encodingr�bomrArlrQs        r�test_xml_encodingszTestPlistlib.test_xml_encodingssC����(�)���w���8���V�-@�A���V�-@�A�,�	6�	6�'�L�(�C����(�"2��3�3�B����x��0�0�
6�
6��|�|�H�l�;�;���T�[�[��1�1�8�8��B�B�B���n�T�*�*��� � ��b���4��9�9�5�5�5�	
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��	6�	6s�BD�D	�D	c��|�t��5tjid���ddd��dS#1swxYwYdS)N�blahrU)rNr^rKrZrs r�test_dump_invalid_formatz%TestPlistlib.test_dump_invalid_format0s���
�
�
�z�
*�
*�	+�	+��N�2�6�*�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s�?�A�Ac��|�tj��5tjd��ddd��dS#1swxYwYdS)Ns!these are not plist file contents)rNrK�InvalidFileExceptionrgrs r�test_load_invalid_filez#TestPlistlib.test_load_invalid_file4s���
�
�
�x�<�
=�
=�	A�	A��N�?�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	A�	As�A�A�	Ac���td��}d|_|�t��5t	j|tj���ddd��dS#1swxYwYdS)Nr���rU)rrlrNr^rKrZr�)r�neg_uids  r�test_modified_uid_negativez'TestPlistlib.test_modified_uid_negative8s����a�&�&�����
�
�
�z�
*�
*�	=�	=��N�7��(;�<�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=��!A�A#�&A#c���td��}d|_|�t��5t	j|tj���ddd��dS#1swxYwYdS)Nrr]rU)rrlrNrjrKrZr�)r�huge_uids  r�test_modified_uid_hugez#TestPlistlib.test_modified_uid_huge>s����q�6�6����
�
�
�
�}�
-�
-�	>�	>��N�8��)<�=�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	>�	>rc���|�tjd��5tjttj���ddd��dS#1swxYwYdS)Nz)XML entity declarations are not supportedrU)�assertRaisesRegexrKrrg�XML_PLIST_WITH_ENTITYr�rs r�test_xml_plist_with_entity_declz,TestPlistlib.test_xml_plist_with_entity_declDs���
�
#�
#�H�$A�$O�Q�Q�	H�	H��N�0�h�6F�G�G�G�G�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H�	H����	H�	H�	H�	H�	H�	Hs�&A�A�Ar)0�__name__�
__module__�__qualname__rrBrErRr[r_rnrrrtrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrr�rrr
r
�s��������������6<�<�<�
E�E�E�J�J�J����3�3�3�$	2�	2�	2�&�&�&�E�E�E�E�E�E�E�E�E�h�h�h�&�&�&�/�/�/�
5�5�5�1�1�1�4�4�4�[�[�[�8�8�8�J�J�J�
J�
J�
J�	6�	6�	6�L�L�L�*L�L�L�$L�L�L�:�:�:�*B�B�B�&>�>�>�$>�>�>�$@�@�@�;�;�;�6�6�6�1�1�1�O�O�O�	\�	\�	\�L�L�L�I�I�I�%�%�%�6�6�6�&+�+�+�A�A�A�=�=�=�>�>�>�H�H�H�H�Hrr
c�h�eZdZeddd�d���Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�ZdS)�TestBinaryPlistlibr��offset_size�ref_sizec��dg}d}g}|D]R}|�|�|d����|�|��|t|��z
}�Stjd||t|��d|��}|�|��|�|��t
jd�|��tj	���S)N�bplist00��bigz>6xBBQQQrrrU)
�append�to_bytes�len�struct�pack�extendrKrg�joinr�)r&r'�objectsrl�offset�offsets�x�tails        rrzTestBinaryPlistlib.decodeLs����}�������	�	�A��N�N�6�?�?�;��>�>�?�?�?��K�K��N�N�N��c�!�f�f��F�F��{�:�{�H��w�<�<��F�4�4�����G�������D�����~�c�h�h�t�n�n�(�2E�F�F�F�Frc�^�d}|�tj|��ddi��dS)Ns<bplist00�QaQbr r!)rDrKrgrys  r�test_nonstandard_refs_sizez-TestBinaryPlistlib.test_nonstandard_refs_size[s5��4��	
������-�-��S�z�:�:�:�:�:rc��ddddddddtjdd	d
d	dd��td��dd
gddd
if
D]�}|�|���5tj|gdztj���}|�t|��dt|����ddd��n#1swxYwY��dS)NFT�90�������^@�abcdeu
абвгд�abcder*r+r,r-r�Y�rr?�12�r6i�rUiL)	r>rprXrKrZr��
assertLessr.r�)rr6rls   r�test_dump_duplicatesz'TestBinaryPlistlib.test_dump_duplicatesgs����t�U�F�G�\�8��#�D�"�b�"�b�"�=�=��H�%�%��C�y�)�d�C�[�J�	=�	=�A������"�"�
=�
=��~�q�c�$�h�H�4G�H�H�H������D�	�	�4��d���<�<�<�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��	=�	=s�AB2�2B6	�9B6	c��dddddddtjddd	dd
d
��td��ddgd
ddifD]�}|�|���5tj|gdztj���}tj|��\}}t|t��rt|��}|�
||��|�
||��|�||��ddd��n#1swxYwY��dS)NFTr;r<r=r>r*r+r,r-rr?r@rArBrrU)r>rprXrKrZr�rg�
isinstance�tupler?rD�assertIs)rr6rlr r!s     r�
test_identityz TestBinaryPlistlib.test_identitypsW����t�U�F�G�X��#�D�"�b�"�b�"�=�=��H�%�%��C�y�)�d�C�[�J�
	$�
	$�A������"�"�
$�
$��~�q�c�!�e��1D�E�E�E���~�d�+�+���1��a��'�'� ��Q���A�� � ��A�&�&�&�� � ��A�&�&�&��
�
�a��#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$��
	$�
	$s�B"C=�=D	�D	c�^�g}|�|��tjtj|tj�����}|�|d|��gf}|d�|��tjtj|tj�����}|�|dd|��i}||d<tjtj|tj�����}|�|d|��dS)NrUrr6)r,rKrgrZr�rH)rr r!s   r�test_cycleszTestBinaryPlistlib.test_cycles}s�����	��������N�8�>�!��1D�E�E�E�F�F���
�
�a��d�A����
�E��	�!����A�����N�8�>�!��1D�E�E�E�F�F���
�
�a��d�1�g�q�!�!�!�����#���N�8�>�!��1D�E�E�E�F�F���
�
�a��f�a� � � � � rc�f�dD]�}d�t|��D��}	|jg|�d�Rddd��}t|��D]H}|�|t��|�t|��d��|d}�I|�|d����#t$rY��wxYwdS)	N)i,順c�F�g|]}d|dz�dd��z��S)��rr�r+)r-)�.0r�s  r�
<listcomp>z8TestBinaryPlistlib.test_deep_nesting.<locals>.<listcomp>�s1��M�M�M�q�g��Q�� 0� 0��E� :� :�:�M�M�MrsTseedr�r%rr�seed)r�rrhr?rDr.�RecursionError)r�N�chunks�resultr�s     r�test_deep_nestingz$TestBinaryPlistlib.test_deep_nesting�s����	1�	1�A�M�M�E�!�H�H�M�M�M�F�	
1�$���U�f�U�k�U�U�q�ST�U�U�U���q���'�'�A��)�)�&�$�7�7�7��$�$�S��[�[�!�4�4�4�#�A�Y�F�F�� � ���0�0�0�0��"�
�
�
���
����		1�	1s�B!�!
B.�-B.c�f�dD]�}|�|���5tj�d��tj|���z}t	j|tj���}|�t	j|��|��ddd��n#1swxYwY��dS)N)l����l)�tsr)�secondsrU)	rXr>�utcfromtimestamp�	timedeltarKrZr�rDrg)rrY�drls    r�test_large_timestampz'TestBinaryPlistlib.test_large_timestamp�s���!�	:�	:�B������$�$�
:�
:��&�7�7��:�:��'��3�3�3�4���~�a�X�-@�A�A�A��� � ����!5�!5�q�9�9�9�	
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:��	:�	:s�A>B%�%B)	�,B)	c�N�|�|�d��d��|�|�d��d��|�|�d��d��|�|�d��d��dS)N��F�	T�r)rHrrDrs r�test_load_singletonsz'TestBinaryPlistlib.test_load_singletons�s����
�
�d�k�k�'�*�*�D�1�1�1��
�
�d�k�k�'�*�*�E�2�2�2��
�
�d�k�k�'�*�*�D�1�1�1�������W�-�-�s�3�3�3�3�3rc���|�|�d��d��|�|�d��d��|�|�d��d��|�|�d��d��|�|�d	��d
��|�|�d��d��dS)
Nsrs��s��i�s�ܺ�l�:�}s	#Eg����l�MW�	s	�ܺ�vT2l�����MW�	)rDrrs r�
test_load_intz TestBinaryPlistlib.test_load_int�s���������[�1�1�1�5�5�5�������[�1�1�4�8�8�8�������_�5�5�v�>�>�>�������%<�=�=�z�J�J�J�������%L�M�M�+�	-�	-�	-�������%L�M�M�+�	-�	-�	-�	-�	-rc� ��gtdd���tdd���d�d�tdd���td	d
���}dD]0�|��fd�td
��D�����1|D]�}|�d|d����5|�tj��5|�t|g��dz��ddd��n#1swxYwYddd��n#1swxYwY��dS)Nrr*r+�r�r-�$�3�4�@)�p�������c3�"�K�|]	}�|zV��
dSrr")rP�jr�s  �r�	<genexpr>z6TestBinaryPlistlib.test_unsupported.<locals>.<genexpr>�s'�����8�8��q�1�u�8�8�8�8�8�8r�ztoken �02xs)r�r1rXrNrKrrrq)r�unsupported�tokenr�s   @r�test_unsupportedz#TestBinaryPlistlib.test_unsupported�s����K��a����K�e�B��m�m�K��K�!�K�$)�$��$5�$5�K�8=�d�D�8I�8I�K��5�	9�	9�A����8�8�8�8�e�B�i�i�8�8�8�8�8�8�8� �	=�	=�E����2�u�2�2�2�3�3�
=�
=��&�&�x�'D�E�E�=�=��K�K��u�g���� ;�<�<�<�=�=�=�=�=�=�=�=�=�=�=����=�=�=�=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��	=�	=s6� D�8'C+�D�+C/�/D�2C/�3D�D	�	D	c�.�tD]�\}}|�|��5|�tj��5tjd|ztj���ddd��n#1swxYwYddd��n#1swxYwY��dS)Nr)rU)�INVALID_BINARY_PLISTSrXrNrKrrgr�)r�namerls   r�test_invalid_binaryz&TestBinaryPlistlib.test_invalid_binary�s6��/�	P�	P�J�D�$����d�#�#�
P�
P��&�&�x�'D�E�E�P�P��N�;��#5�8�;N�O�O�O�O�P�P�P�P�P�P�P�P�P�P�P����P�P�P�P�
P�
P�
P�
P�
P�
P�
P�
P�
P�
P�
P����
P�
P�
P�
P��	P�	Ps5� B	�$A2�&B	�2A6�6B	�9A6�:B	�	B
	�B
	N)rr r!�staticmethodrr9rDrIrKrWr^rdrgr{rr"rrr$r$Js��������%&��G�G�G�G��\�G�
;�
;�
;�=�=�=�$�$�$�!�!�!�"1�1�1�:�:�:�4�4�4�-�-�-�=�=�=�P�P�P�P�Prr$c��eZdZd�ZdS)�TestKeyedArchivec���dddtd��dd�dgd�d	d
gd�gdd
td��id�}|�tjtd��|��dS)NrMz$nullrrzKeyArchive UID Test)�pytypez$classz	NS.string�OC_BuiltinPythonUnicode)r��OC_PythonUnicode�NSString�NSObject�OC_PythonStringr�)z
$classnamez$classesz$classhints�NSKeyedArchiver�root)z$versionz$objectsz	$archiverz$topr)rrDrKrgr�rys  r�test_keyed_archive_dataz(TestKeyedArchive.test_keyed_archive_data�s������!�!�f�f�!6���#<�!�!�!�*�:�$���
�&+���A����-
�
��4	
�������(A�B�B�D�I�I�I�I�IrN)rr r!r�r"rrr�r��s(������J�J�J�J�Jrr�c��eZdZd�ZdS)�MiscTestCasec�F�ddh}tj|t|���dS)N�PlistFormat�PLISTHEADER)�not_exported)r�check__all__rK)rr�s  r�test__all__zMiscTestCase.test__all__�s*��%�}�5����T�8�,�G�G�G�G�G�GrN)rr r!r�r"rrr�r��s(������H�H�H�H�Hrr��darwinzplutil utility is for Mac osc��eZdZdZddddd�d�Zddddd�d�Zdd	d
�Zedd
���Zedd���Z	d�Z
d�Zd�Zd�Z
d�Zd�Zd�Zd�ZdS)�
TestPlutilzplutil_test.plist�Hr�drw)r r!)�fname�lname�marks��S)�HexType�IntType�returnNc��t|jd��5}tj|j|tj���ddd��dS#1swxYwYdS�NrGrU)rJ�	file_namerKrL�
propertiesr�)�cls�fs  r�
setUpClasszTestPlutil.setUpClass�s����#�-��
%�
%�	F���M�#�.�!��1D�E�E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F�	F�	Fs�'A
�
A�Ac�8�tj|j��dSr)r
�remover�)r�s r�
tearDownClasszTestPlutil.tearDownClasss��
�	�#�-� � � � � rc�J�tjdd|jgdd���jS)N�plutilz-lintT)�capture_outputr)�
subprocess�runr��stdoutrs r�get_lint_statuszTestPlutil.get_lint_statuss'���~�x��$�.�A�RV�]a�b�b�b�i�irc�B�	tjddd|jg��dS)Nr��-convert�json�r�r�r�rs r�convert_to_jsonzTestPlutil.convert_to_json
s(��	����*�f�d�n�E�F�F�F�F�Frc�B�	tjddd|jg��dS)Nr�r��binary1r�rs r�convert_to_binzTestPlutil.convert_to_bins(��	����*�i���H�I�I�I�I�Irc��	t|jd��5}tj|j|tj���ddd��dS#1swxYwYdSr�)rJr�rKrLrAr��rr�s  r�write_plzTestPlutil.write_pls���	�
�$�.�$�
'�
'�	?�1��M�$�'�1�(�*=�>�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?s�'A�A�Ac�f�|�|j�d�|�����dS)Nz: OK
)rDr�r�rs r�test_lint_statuszTestPlutil.test_lint_statuss5�����D�N�2�2�2�D�4H�4H�4J�4J�K�K�K�K�Krc�
�|���t|j��5}tj|�����}|�||j��ddd��dS#1swxYwYdSr)r�rJr�r�rg�readrD�exptected_properties)rr��ffs   r�
check_contentzTestPlutil.check_contents���������
�$�.�
!�
!�	<�Q���A�F�F�H�H�%�%�B����R��!:�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s�AA8�8A<�?A<c���|���t|jd��5}|�t	j|��|j��ddd��dS#1swxYwYdS)NrH)r�rJr�rDrKrMr�r�s  r�check_plistlib_parsezTestPlutil.check_plistlib_parse%s���������
�$�.�$�
'�
'�	J�1����X�]�1�-�-�t�/H�I�I�I�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J�	J�	Js�.A%�%A)�,A)c��|���|���t|jd��5}t	j|�����}|�|�d��d��|�|�d��d��ddd��dS#1swxYwYdS)N�rr�r�r�r�)	r�r�rJr�r�rgr�rD�get)rr��ps   r�test_octal_and_hexzTestPlutil.test_octal_and_hex+s����
�
����������
�$�.�#�
&�
&�	3�!��
�1�6�6�8�8�$�$�A����Q�U�U�9�-�-�x�8�8�8����Q�U�U�9�-�-�r�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s�A9C�C�C)r�N)rr r!r�r�r�rA�classmethodr�r�r�r�r�r�r�r�r�r�r"rrr�r��s5������#�I����D�)�)�
�
�J�����#�#����#��

�

�B�
�F�F�F��[�F�
�!�!�!��[�!�j�j�j�G�G�G�
J�J�J�
?�?�?�L�L�L�<�<�<�J�J�J�3�3�3�3�3rr��__main__)&r�r�r�r/�unittestrKr
�sysr�r>rr��binasciir�rvr�test.supportr�iorrr�r�rW�
a2b_base64r�rr}�TestCaser
r$r�r��
skipUnless�platformr�r�mainr"rr�<module>r�s�����������
�
�
�
�
�
�
�
���������	�	�	�	�
�
�
�
���������
�
�
�
�������������������"�"�"�"�"�"�������������
�
�x�2�3��

��)�h�)�3+8�39�39�h
��,��,�.@�A�A�*�(�X�(�
*�
�
�UU
��n��U�U�U��pqH�qH�qH�qH�qH�8�$�qH�qH�qH�h
yP�yP�yP�yP�yP��*�yP�yP�yP�xJ�J�J�J�J�x�(�J�J�J�@H�H�H�H�H�8�$�H�H�H�
���S�\�X�-�/M�N�N�E3�E3�E3�E3�E3��"�E3�E3�O�N�E3�N�z����H�M�O�O�O�O�O��r