Edit File: plistlib.cpython-311.pyc
� �����f�n����������������������������d�Z�g�d�ZddlZddlZddlZddlZddlmZ�ddlZddl Z ddl Z ddlZddlm Z ��ej��������dde�������������Z�e�����������������������������������ej����������������������G�d ��d ������������ZdZ�e j��������d������������Zd2d�Zd��Z�e j��������de j��������������������Zd��Zd��Zd��Z�G�d��d������������Z�G�d��d������������Z �G�d��de ������������Z!d��Z"�G�d��de#������������Z$dddd d!�Z%�e&��������������Z'�G�d"��d#������������Z(d$��Z)e*e+e,ej��������e-fZ.�G�d%��d&e&������������Z/d'��Z0e1�e2e"ee!�(������������e3�e2e0e(e/�(������������iZ4de2d)�d*�Z5de2d)�d+�Z6e1d,d-d.�d/�Z7e1d-d,d0�d1�Z8dS�)3a>��plistlib.py -- a tool to generate and parse MacOSX .plist files. The property list (.plist) file format is a simple XML pickle supporting basic object types, like dictionaries, lists, numbers and strings. Usually the top level object is a dictionary. To write out a plist file, use the dump(value, file) function. 'value' is the top level object, 'file' is a (writable) file object. To parse a plist from a file, use the load(file) function, with a (readable) file object as the only argument. It returns the top level object (again, usually a dictionary). To work with plist data in bytes objects, you can use loads() and dumps(). Values can be strings, integers, floats, booleans, tuples, lists, dictionaries (but only with string keys), Data, bytes, bytearray, or datetime.datetime objects. Generate Plist example: import datetime import plistlib pl = dict( aString = "Doodah", aList = ["A", "B", 12, 32.1, [1, 2, 3]], aFloat = 0.1, anInt = 728, aDict = dict( anotherString = "<hello & hi there!>", aThirdString = "M\xe4ssig, Ma\xdf", aTrueValue = True, aFalseValue = False, ), someData = b"<binary gunk>", someMoreData = b"<lots of binary gunk>" * 10, aDate = datetime.datetime.now() ) print(plistlib.dumps(pl).decode()) Parse Plist example: import plistlib plist = b'''<plist version="1.0"> <dict> <key>foo</key> <string>bar</string> </dict> </plist>''' pl = plistlib.loads(plist) print(pl["foo"]) )�InvalidFileException�FMT_XML� FMT_BINARY�load�dump�loads�dumps�UID�����N)�BytesIO)�ParserCreate�PlistFormatzFMT_XML FMT_BINARY)�modulec��������������������2�����e�Zd�Zd��Zd��Zd��Zd��Zd��Zd��ZdS�)r ���c�����������������������t����������|t����������������������st����������d�������������|dk����rt����������d�������������|dk�����rt����������d�������������||�_��������d�S�)Nzdata must be an int�������������zUIDs cannot be >= 2**64r ����UIDs must be positive)� isinstance�int� TypeError� ValueError�data��selfr���s��� �//opt/alt/python311/lib64/python3.11/plistlib.py�__init__zUID.__init__N���s^�������$��$�$�� 3��1�2�2�2��7�?�?��6�7�7�7��!�8�8��4�5�5�5��� � � �����c�����������������������|�j���������S��N)r����r���s��� r���� __index__z UID.__index__W���s �������y�r���c������������������J�����|�j���������j���������dt����������|�j���������������������d�S�)N�(�))� __class__�__name__�reprr���r���s��� r����__repr__zUID.__repr__Z���s$�������>�2�2�2�D���O�O�O�O�D�Dr���c������������������ �����|�j���������|�j��������ffS�r���)r$���r���r���s��� r���� __reduce__zUID.__reduce__]���s�������~�� �|�+�+r���c������������������Z�����t����������|t����������������������st����������S�|�j��������|j��������k����S�r���)r���r ����NotImplementedr���)r����others��� r����__eq__z UID.__eq__`���s)�������%��%�%�� "�!�!��y�E�J�&�&r���c������������������*�����t����������|�j��������������������S�r���)�hashr���r���s��� r����__hash__zUID.__hash__e���s�������D�I���r���N) r%���� __module__�__qualname__r���r ���r'���r)���r-���r0�����r���r���r ���r ���M���sq������������������������E��E��E�,��,��,�'��'��'� ��������r���r ���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"> zv[\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f]�L���c������������������������|dz��dz��}g�}t����������dt����������|�������������|������������D�]6}|�|||z�������������}|���������������������t����������j��������|��������������������������7d���������������������|������������S�)N��������r ���r���)�range�len�append�binascii� b2a_base64�join)�s� maxlinelength� maxbinsize�pieces�i�chunks��� r����_encode_base64rD���y���s|��������"�A�%�J� �F� �1�c�!�f�f�j� )� )��2��2���!�a�*�n�$�%��� � �h�)�%�0�0�1�1�1�1��8�8�F���r���c�����������������������t����������|�t����������������������r't����������j��������|����������������������d������������������������S�t����������j��������|�������������S�)N�utf-8)r����strr;���� a2b_base64�encode)r>���s��� r����_decode_base64rJ�������sD�������!�S����&��"�1�8�8�G�#4�#4�5�5�5���"�1�%�%�%r���z{(?P<year>\d\d\d\d)(?:-(?P<month>\d\d)(?:-(?P<day>\d\d)(?:T(?P<hour>\d\d)(?::(?P<minute>\d\d)(?::(?P<second>\d\d))?)?)?)?)?Zc������������������������d}t��������������������������������|������������������������������������������������}g�}|D�]0}||���������}|��n#|���������������������t ����������|��������������������������1t����������j��������|��S�)N��year�month�day�hour�minute�second)�_dateParser�match� groupdictr:���r����datetime)r>����order�gd�lst�key�vals��� r����_date_from_stringr\�������sv������@�E� � � �1� � � '� '� )� )�B� �C���������g���;��E�� � �3�s�8�8�������c�"�"r���c������������������T�����d|�j���������|�j��������|�j��������|�j��������|�j��������|�j��������fz��S�)Nz%04d-%02d-%02dT%02d:%02d:%02dZrL���)�ds��� r����_date_to_stringr_�������s.������+� ������ ����!�(�/����r���c������������������8����t��������������������������������|�������������}|�t����������d�������������|����������������������dd������������}�|����������������������dd������������}�|����������������������dd������������}�|����������������������dd������������}�|����������������������d d ������������}�|�S�)Nz;strings can't contain control characters; use bytes insteadz � � �&z&�<z<�>z>)�_controlCharPat�searchr����replace)�text�ms��� r����_escaperk�������s����������t�$�$�A��}���-��.��.�� .��<�<���%�%�D��<�<��d�#�#�D��<�<��W�%�%�D��<�<��V�$�$�D��<�<��V�$�$�D��Kr���c�������������������������e�Zd�Zd��Zd��Zd��Zd��Zd��Zd��Zd��Z d��Z d ��Zd ��Zd��Z d��Zd ��Zd��Zd��Zd��Zd��Zd��Zd��Zd��ZdS�)�_PlistParserc������������������>�����g�|�_���������d�|�_��������d�|�_��������||�_��������d�S�r���)�stack�current_key�root� _dict_type�r���� dict_types��� r���r���z_PlistParser.__init__����s#�������� ������ �#����r���c������������������������t������������������������|�_��������|�j��������|�j��������_��������|�j��������|�j��������_��������|�j��������|�j��������_��������|�j��������|�j��������_ ��������|�j��������� ��������������������|�������������|�j��������S�r���)r����parser�handle_begin_element�StartElementHandler�handle_end_element�EndElementHandler�handle_data�CharacterDataHandler�handle_entity_decl�EntityDeclHandler� ParseFilerq���)r����fileobjs��� r����parsez_PlistParser.parse����s_������"�n�n���*.�*C���'�(,�(?���%�+/�+;���(�(,�(?���%�����g�&�&�&��y�r���c������������������ �����t����������d�������������)Nz8XML entity declarations are not supported in plist files)r���)r����entity_name�is_parameter_entity�value�base� system_id� public_id� notation_names��� r���r}���z_PlistParser.handle_entity_decl����s�������#�#]�^�^�^r���c������������������Z�����g�|�_���������t����������|�d|z���d�������������}|� �||�������������d�S�d�S�)N�begin_)r����getattr)r����element�attrs�handlers��� r���rw���z!_PlistParser.handle_begin_element����s>�������� ��$��7� 2�D�9�9�����G�E�N�N�N�N�N���r���c������������������J�����t����������|�d|z���d�������������}|��|���������������d�S�d�S�)N�end_)r����)r���r����r����s��� r���ry���z_PlistParser.handle_end_element����s5�������$��� 0�$�7�7�����G�I�I�I�I�I���r���c������������������:�����|�j������������������������������|�������������d�S�r���)r���r:���r���s��� r���r{���z_PlistParser.handle_data����s������� ��������r���c����������������������|�j����������bt����������|�j��������d���������t����������i�������������������������st ����������d|�j��������j��������z���������������||�j��������d���������|�j���������<���d�|�_���������d�S�|�j��������s ||�_��������d�S�t����������|�j��������d���������t����������g�������������������������st ����������d|�j��������j��������z���������������|�j��������d������������������������������|�������������d�S�)N���zunexpected element at line %d) rp���r���ro����typer���rv����CurrentLineNumberrq���r:����r���r����s��� r���� add_objectz_PlistParser.add_object����s���������'��d�j��n�d�2�h�h�7�7�� @� �!@�!%��!>�"?��@��@��@�/4�D�J�r�N�4�+�,�#�D������� )��D�I�I�I��d�j��n�d�2�h�h�7�7�� @� �!@�!%��!>�"?��@��@��@��J�r�N�!�!�%�(�(�(�(�(r���c������������������H�����d����������������������|�j��������������������}g�|�_��������|S�)N��)r=���r���r���s��� r����get_dataz_PlistParser.get_data����s!�������w�w�t�y�!�!���� ��r���c�����������������������|�������������������������������������}|����������������������|�������������|�j�����������������������������|�������������d�S�r���)rr���r����ro���r:���)r���r����r^���s��� r���� begin_dictz_PlistParser.begin_dict����s?�������O�O������������ ���!�����r���c�����������������������|�j���������r#t����������d|�j���������|�j��������j��������fz���������������|�j��������������������������������������������d�S�)Nz%missing value for key '%s' at line %d)rp���r���rv���r����ro����popr���s��� r����end_dictz_PlistParser.end_dict����sT��������� O��D�"�.�t�{�/L�M�N��O��O�� O�� �������r���c������������������������|�j���������s(t����������|�j��������d���������t����������i�������������������������st ����������d|�j��������j��������z���������������|������������������������������������|�_���������d�S�)Nr����zunexpected key at line %d)rp���r���ro���r����r���rv���r����r����r���s��� r����end_keyz_PlistParser.end_key����sb��������� <�:�d�j��n�d�2�h�h�#G�#G�� <��8�!�[�:�;��<��<�� <��=�=�?�?����r���c������������������h�����g�}|�����������������������|�������������|�j�����������������������������|�������������d�S�r���)r����ro���r:���)r���r�����as��� r����begin_arrayz_PlistParser.begin_array����s5���������������� ���!�����r���c������������������8�����|�j���������������������������������������������d�S�r���)ro���r����r���s��� r���� end_arrayz_PlistParser.end_array����s������� �������r���c������������������0�����|�����������������������d�������������d�S�)NT�r����r���s��� r����end_truez_PlistParser.end_true��s��������������r���c������������������0�����|�����������������������d�������������d�S�)NFr����r���s��� r���� end_falsez_PlistParser.end_false��s��������������r���c����������������������|�������������������������������������}|���������������������d������������s|���������������������d������������r%|����������������������t����������|d�������������������������d�S�|����������������������t����������|�������������������������d�S�)N�0x�0X����)r����� startswithr����r���)r����raws��� r����end_integerz_PlistParser.end_integer��st�������m�m�o�o���>�>�$���� &�3�>�>�$�#7�#7�� &��O�O�C��R�L�L�)�)�)�)�)��O�O�C��H�H�%�%�%�%�%r���c������������������n�����|�����������������������t����������|�������������������������������������������������������������d�S�r���)r�����floatr����r���s��� r����end_realz_PlistParser.end_real��s*����������d�m�m�o�o�.�.�/�/�/�/�/r���c������������������T�����|�����������������������|�������������������������������������������������d�S�r���)r����r����r���s��� r���� end_stringz_PlistParser.end_string��s"���������� � ���(�(�(�(�(r���c������������������n�����|�����������������������t����������|�������������������������������������������������������������d�S�r���)r����rJ���r����r���s��� r����end_dataz_PlistParser.end_data��s*����������t�}�}���7�7�8�8�8�8�8r���c������������������n�����|�����������������������t����������|�������������������������������������������������������������d�S�r���)r����r\���r����r���s��� r����end_datez_PlistParser.end_date��s+���������)�$�-�-�/�/�:�:�;�;�;�;�;r���N)r%���r1���r2���r���r����r}���rw���ry���r{���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r3���r���r���rm���rm�������sC�������������$��$��$������_��_��_����������� �����)��)��)� ���������� �����+��+��+������ ���������������&��&��&�0��0��0�)��)��)�9��9��9�<��<��<��<��<r���rm���c��������������������0�����e�Zd�Zd d�Zd��Zd��Zd d�Zd��ZdS�)�_DumbXMLWriterr ���� c������������������>�����||�_���������g�|�_��������||�_��������||�_��������d�S�r���)�filero���� _indent_level�indent)r���r�����indent_levelr����s��� r���r���z_DumbXMLWriter.__init__��s#�������� ��� �)�������r���c�����������������������|�j������������������������������|�������������|����������������������d|z���������������|�xj��������dz ��c_��������d�S�)Nz<%s>����)ro���r:����writelnr�����r���r����s��� r���� begin_elementz_DumbXMLWriter.begin_element"��sI������� ���'�"�"�"����V�g�%�&�&�&����a�����r���c�����������������������|�j���������dk����sJ��|�j�������������������������������������������|k����sJ��|�xj���������dz��c_���������|����������������������d|z���������������d�S�)Nr ���r����z</%s>)r����ro���r����r����r����s��� r����end_elementz_DumbXMLWriter.end_element'��sd�������!�A�%�%�%�%��z�~�~���7�*�*�*�*����a�������W�w�&�'�'�'�'�'r���Nc����������� ������������|�0t����������|������������}|����������������������d|�d|�d|�d��������������d�S�|����������������������d|z���������������d�S�)Nrd���re���z</z<%s/>)rk���r����)r���r����r����s��� r����simple_elementz_DumbXMLWriter.simple_element-��s_���������E�N�N�E��L�L�L�'�'�'�5�5�5�'�'�'�B�C�C�C�C�C�� �L�L��7�*�+�+�+�+�+r���c����������������������|rkt����������|t����������������������r|���������������������d������������}|�j�����������������������������|�j��������|�j��������z���������������|�j�����������������������������|�������������|�j�����������������������������d�������������d�S�)NrF������� )r���rG���rI���r�����writer����r����)r����lines��� r���r����z_DumbXMLWriter.writeln5��s{�������� "���$��$�$�� ,��{�{�7�+�+���I�O�O�D�.���<�=�=�=��I�O�O�D�!�!�!�� ��������r���)r ���r����r���)r%���r1���r2���r���r����r����r����r����r3���r���r���r����r������si��������������������� �� �� � (��(��(�,��,��,��,� �� �� �� �� r���r����c��������������������8�����e�Zd�Z � �d d�Zd��Zd��Zd ��Zd ��Zd��ZdS�)�_PlistWriterr ������� r����TFc�����������������������|r|����������������������t�����������������������t�������������������������������|�|||�������������||�_��������||�_��������d�S�r���)r�����PLISTHEADERr����r���� _sort_keys� _skipkeys)r���r����r����r�����writeHeader� sort_keys�skipkeyss��� r���r���z_PlistWriter.__init__B��sJ��������� $��J�J�{�#�#�#�����d�L�&�A�A�A�#���!����r���c�����������������������|�����������������������d�������������|����������������������|�������������|�����������������������d�������������d�S�)Nz<plist version="1.0">z</plist>)r�����write_valuer����s��� r���r����z_PlistWriter.writeL��sA���������.�/�/�/�����������Z� � � � � r���c����������������������t����������|t����������������������r|����������������������d|�������������d�S�|du�r|����������������������d�������������d�S�|du�r|����������������������d�������������d�S�t����������|t����������������������r:d|cxk����rdk�����rn�n|����������������������dd |z���������������d�S�t ����������|�������������t����������|t ����������������������r%|����������������������d t ����������|�������������������������d�S�t����������|t����������������������r|����������������������|�������������d�S�t����������|t����������t����������f������������r|����������������������|�������������d�S�t����������|t����������j��������������������r%|����������������������dt����������|�������������������������d�S�t����������|t����������t����������f������������r|����������������������|�������������d�S�t#����������dt%����������|������������z���������������) N�stringT�trueF�falsel�������������r����integerz%d�real�datezunsupported type: %s)r���rG���r����r���� OverflowErrorr����r&����dict� write_dict�bytes� bytearray�write_bytesrV���r_����tuple�list�write_arrayr���r����r����s��� r���r����z_PlistWriter.write_valueQ��s�������e�S�!�!�� B�����%�0�0�0�0�0� �d�]�]�����'�'�'�'�'� �e�^�^�����(�(�(�(�(� ��s� #� #�� B��5�*�*�*�*�7�*�*�*�*�*��#�#�I�t�e�|�<�<�<�<�<�#�E�*�*�*� ��u� %� %�� B������U���4�4�4�4�4� ��t� $� $�� B��O�O�E�"�"�"�"�"� ���y�1� 2� 2�� B����U�#�#�#�#�#� ��x�0� 1� 1�� B�������(>�(>�?�?�?�?�?� ���t�}� -� -�� B����U�#�#�#�#�#���2�T�%�[�[�@�A�A�Ar���c����������� �����������|�����������������������d�������������|�xj��������dz��c_��������t����������ddt����������|�j�����������������������������dd������������|�j��������z��������������z ��������������}t ����������||���������������������������������d������������D�]}|r|����������������������|��������������|�xj��������dz ��c_��������|�� ��������������������d�������������d�S�)Nr���r����r����r4���r����s��� r����) r����r�����maxr9���r����rh���rD����splitr����r����)r���r���r?���r����s��� r���r����z_PlistWriter.write_bytess��s����������6�"�"�"����a��������T�[�(�(���9�9�D�<N�N�O�O�O�Q��Q� ��#�4��7�7�=�=�e�D�D�� #�� #�D��� #����T�"�"�"�����a�������� � � � � r���c�����������������������|r�|�����������������������d�������������|�j��������r"t����������|�����������������������������������������������}n|�����������������������������������}|D�]\\��}}t ����������|t ����������������������s|�j��������r�"t����������d�������������|����������������������d|�������������|�� ��������������������|��������������]|�� ��������������������d�������������d�S�|����������������������d�������������d�S�)Nr�����keys must be stringsrZ���)r����r�����sorted�itemsr���rG���r����r���r����r����r����)r���r^���r����rZ���r����s��� r���r����z_PlistWriter.write_dict���s��������� (����v�&�&�&���� "��q�w�w�y�y�)�)������ � ��#�� (�� (� ��U�!�#�s�+�+��<��~��!� �#�$:�;�;�;��#�#�E�3�/�/�/�� � ��'�'�'�'����V�$�$�$�$�$�� ����'�'�'�'�'r���c�����������������������|rF|�����������������������d�������������|D�]}|����������������������|��������������|����������������������d�������������d�S�|����������������������d�������������d�S�)N�array)r����r����r����r����)r���r����r����s��� r���r����z_PlistWriter.write_array���sz�������� )����w�'�'�'��� (�� (��� � ��'�'�'�'����W�%�%�%�%�%�� ����(�(�(�(�(r���N)r ���r����r����TF) r%���r1���r2���r���r����r����r����r����r����r3���r���r���r����r����A��s}��������������BC�%*�"��"��"��"�!��!��!� B�� B�� B�D!��!��!�(��(��(�()��)��)��)��)r���r����c������������������l����d}|D�]}|�����������������������|������������r�dS��t����������j��������dft����������j��������dft����������j��������dffD�]j\��}}|�����������������������|������������s�|D�]L}||���������������������d���������������������������������|������������z���}|�d�t����������|����������������������|k����r��dS��M�kdS�)N)s���<?xmls���<plistTrF���z utf-16-bez utf-16-le�asciiF)r�����codecs�BOM_UTF8�BOM_UTF16_BE�BOM_UTF16_LE�decoderI���r9���)�header�prefixes�pfx�bom�encoding�start�prefixs��� r����_is_fmt_xmlr�����s�������$�H����������S�!�!�� ��4�4� ����'�*��$�k�2��$�k�2������ ��X��� � ��%�%�� ���� �� �E��5�<�<��0�0�7�7��A�A�A�F��l�s�6�{�{�l�#�v�-�-��t�t�t��.� � ��5r���c�������������������������e�Zd�Zdd�ZdS�)r����Invalid filec������������������<�����t��������������������������������|�|�������������d�S�r���)r���r���)r����messages��� r���r���zInvalidFileException.__init__���s���������D�'�*�*�*�*�*r���N)r��)r%���r1���r2���r���r3���r���r���r���r������s(��������������+��+��+��+��+��+r���r����B�H�L�Q)r��������r6�������c��������������������6�����e�Zd�ZdZd��Zd��Zd��Zd��Zd��Zd��Z dS�) �_BinaryPlistParsera�� Read or write a binary plist file, following the description of the binary format. Raise InvalidFileException in case of error, otherwise return the root object. see also: http://opensource.apple.com/source/CF/CF-744.18/CFBinaryPList.c c�����������������������||�_���������d�S�r���)rr���rs���s��� r���r���z_BinaryPlistParser.__init__���s ������#����r���c������������������:���� �||�_���������|�j������������������������������dt����������j���������������������|�j������������������������������d������������}t����������|������������dk����rt �������������������������t����������j��������d|������������\��}|�_ ��������}}}|�j������������������������������|�������������|�� ��������������������||������������|�_��������t����������g|z��|�_ ��������|����������������������|������������S�#�t����������t ����������t����������j��������t$����������t&����������f$�r�t �������������������������w�xY�w)Ni��� ���z>6xBBQQQ)�_fp�seek�os�SEEK_END�readr9���r����struct�unpack� _ref_size� _read_ints�_object_offsets� _undefined�_objects�_read_object�OSError� IndexError�errorr����r���)r����fp�trailer�offset_size�num_objects� top_object�offset_table_offsets��� r���r����z_BinaryPlistParser.parse���s������ )���D�H��H�M�M�#�r�{�+�+�+��h�m�m�B�'�'�G��7�|�|�r�!�!�*�,�,�,��� �j�'�2�2� ��T�^�[�*�#��H�M�M�-�.�.�.�#'�?�?�;��#L�#L�D� �'�L�;�6�D�M��$�$�Z�0�0�0����V�\�=���� )�� )�� )�&�(�(�(� )���s����C C#��#7Dc������������������������|dk����rk|�j������������������������������d������������d���������dz��}d|z��}dt����������|���������z���}t����������j��������||�j������������������������������|������������������������d���������S�|S�)z$ return the size of the next object.����r����r ���r7���re���)r��r���_BINARY_FORMATr��r��)r����tokenLrj���r>����fs��� r���� _get_sizez_BinaryPlistParser._get_size���sj�������S�=�=��� � �a� � ��#�c�)�A��Q��A��n�Q�'�'�A��=��D�H�M�M�!�$4�$4�5�5�a�8�8�� r���c������������������D������|�j�������������������������������|z����������������t����������v�r%t����������j��������d|��t������������������������������������S��rt������������������������|z��k����rt �������������������������t������������fd�t����������d�|z���������������D���������������������������S�)Nre���c��������������3����d����K����|�]*}t���������������������������������||�z�������������d�������������V����+dS�)�bigN)r���� from_bytes)�.0rB���r����sizes��� ��r���� <genexpr>z0_BinaryPlistParser._read_ints.<locals>.<genexpr>���sR������������<��<�������Q��D��[�(9�5�A�A��<��<��<��<��<��<r���r ���) r��r��r-��r��r��r9���r���r����r8���)r����nr6��r���s��� `@r���r��z_BinaryPlistParser._read_ints���s����������x�}�}�T�A�X�&�&���>�!�!��=�!>�Q�!>��t�(<�!>�!>��E�E�E��� -�3�t�9�9��q��0�0�*�,�,�,���<��<��<��<��<�"'��4�!�8�T�":�":�<��<��<��<��<�� <r���c������������������8�����|�����������������������||�j��������������������S�r���)r��r��)r���r8��s��� r���� _read_refsz_BinaryPlistParser._read_refs���s���������q�$�.�1�1�1r���c���������������������������j���������|���������}|t����������ur|S���j��������|���������}��j�����������������������������|���������������j�����������������������������d������������d���������}|dz��|dz��}}|dk����rd}�n�|dk����rd}�n�|dk����rd }�n�|dk����rd }�n�|dk����r>t���������������������������������j�����������������������������d|z��������������d|d k�����������������}�n�|dk����r5t����������j ��������d��j�����������������������������d������������������������d���������}�nP|dk����r5t����������j ��������d��j�����������������������������d������������������������d���������}�n|dk����rat����������j ��������d��j�����������������������������d������������������������d���������}t����������j ��������ddd������������t����������j��������|�������������z���}�n�|dk����rR�����������������������|������������}��j�����������������������������|������������}t����������|������������|k����rt��������������������������nV|dk����rg�����������������������|������������}��j�����������������������������|������������} t����������| ������������|k����rt�������������������������| ���������������������d������������}�n�|dk����rj�����������������������|������������dz��}��j�����������������������������|������������} t����������| ������������|k����rt�������������������������| ���������������������d������������}�ny|dk����rEt!����������t���������������������������������j�����������������������������d|z���������������d������������������������}�n.|dk����rX�����������������������|������������}�����������������������|������������} g�}|��j���������|<���|�����������������������fd�| D����������������������������n�|d k����r������������������������|������������}�����������������������|������������}�����������������������|������������} �������������������������������������}|��j���������|<��� �t)����������|| ������������D�]0\��}} �����������������������| ������������|�����������������������|������������<����1n*#�t,����������$�r�t�������������������������w�xY�wt�������������������������|��j���������|<���|S�)!zx read the object by reference. May recursively read sub-objects (content of an array/dict/set) r����r ��������r,��Nr��F� ���Tr���r����r3��r7�����signed�"���z>fr6����#���z>d�3�������)�seconds�@����P���r�����`���r���utf-16be��������c��������������3����B����K����|�]}�����������������������|������������V����d�S�r���)r!��)r5���xr���s��� �r���r7��z2_BinaryPlistParser._read_object.<locals>.<genexpr>O��s1�����������A�A�1�$�+�+�A�.�.�A�A�A�A�A�Ar��������)r ��r��r��r��r��r��r���r4��r��r��rV���� timedeltar0��r9���r���r����r ���r:���extendrr����zipr!��r���)r����ref�result�offset�token�tokenHr.��r/��r>���r����obj_refs�key_refs�k�os���` r���r!��z_BinaryPlistParser._read_object��sF���������s�#����#�#��M��%�c�*���� � �f������ � �a� � ��#�����u�t�|����D�=�=��F�F� �d�]�]��F�F� �d�]�]��F�F� ��d�]�]��F�F� �t�^�^��^�^�D�H�M�M�!�v�+�$>�$>�$)�&�A�+��$��?��?�F�F���d�]�]��]�4�����q�)9�)9�:�:�1�=�F�F� �d�]�]��]�4�����q�)9�)9�:�:�1�=�F�F� �d�]�]�� �d�D�H�M�M�!�$4�$4�5�5�a�8�A���'��a��3�3��(��3�3�3�4�F�F���t�^�^����v�&�&�A��X�]�]�1�%�%�F��6�{�{�a���*�,�,�,�� ���t�^�^����v�&�&�A��8�=�=��#�#�D��4�y�y�A�~�~�*�,�,�,��[�[��)�)�F�F� �t�^�^����v�&�&��*�A��8�=�=��#�#�D��4�y�y�A�~�~�*�,�,�,��[�[��,�,�F�F� �t�^�^������� � �a�&�j�(A�(A�5�I�I�J�J�F�F� �t�^�^����v�&�&�A����q�)�)�H��F�!'�D�M�#���M�M�A�A�A�A��A�A�A�A�A�A�A���t�^�^����v�&�&�A����q�)�)�H����q�)�)�H��_�_�&�&�F�!'�D�M�#�� -���(�3�3��H��H�D�A�q�37�3D�3D�Q�3G�3G�F�4�,�,�Q�/�/�0�0�H���� -�� -�� -�*�,�,�,� -�����'�(�(�(�#�� �c��� s ����6AP8��8QN) r%���r1���r2����__doc__r���r����r0��r��r:��r!��r3���r���r���r��r�����s}�����������������$��$��$�)��)��)�2�����<��<��<�2��2��2�c��c��c��c��cr���r��c������������������6�����|�dk�����rdS�|�dk�����rdS�|�dk�����rdS�dS�)N����r��������r�����������r6���r��r3���)�counts��� r����_count_to_sizer`��h��s3�������v�~�~��q� �����q� �����q���qr���c��������������������2�����e�Zd�Zd��Zd��Zd��Zd��Zd��Zd��ZdS�)�_BinaryPlistWriterc������������������0�����||�_���������||�_��������||�_��������d�S�r���)r��r����r����)r���r%��r����r����s��� r���r���z_BinaryPlistWriter.__init__x��s���������#���!����r���c�����������������������g�|�_���������i�|�_��������i�|�_��������|����������������������|�������������t ����������|�j���������������������}dg|z��|�_��������t ����������|������������|�_��������t����������|�j�����������������|�_ ��������|�j �����������������������������d�������������|�j���������D�]}|����������������������|��������������|�� ��������������������|������������}|�j �������������������������������������������}t ����������|������������}dt����������|���������|z��z���}|�j �����������������������������t����������j��������|g|�j���������R����������������d}|||�j��������|||f} |�j �����������������������������t����������j��������dg| �R����������������d�S�)Nr �������bplist00re���z >5xBBBQQQ)�_objlist� _objtable�_objidtable�_flattenr9���r��r`��r��r-���_ref_formatr��r����� _write_object� _getrefnum�tellr���pack) r���r����r(���objr)��r*��r'��� offset_format�sort_versionr&��s ��� r���r����z_BinaryPlistWriter.write}��sh�������� ��������� � � �e������$�-�(�(�� !�s�;����'��4�4���)�$�.�9���� ����{�#�#�#���=�� $�� $�C����s�#�#�#�#���_�_�U�+�+� �"�h�m�m�o�o��$�%8�9�9���n�[�9�K�G�G� �����v�{�=�H�4�3G�H�H�H�I�I�I�����+�t�~�{��+� ��� ����v�{�;�9��9�9�9�:�:�:�:�:r���c����������������������t����������|t����������������������rt����������|������������|f|�j��������v�rd�S�nt ����������|������������|�j��������v�rd�S�t ����������|�j��������������������}|�j�����������������������������|�������������t����������|t����������������������r||�j��������t����������|������������|f<���n||�j��������t ����������|������������<���t����������|t����������������������r�g�}g�}|� ����������������������������������}|�j��������rt����������|������������}|D�][\��}}t����������|t����������������������s|�j��������r�"t����������d�������������|���������������������|�������������|���������������������|��������������\t!����������j��������||������������D�]}|����������������������|��������������d�S�t����������|t&����������t(����������f������������r|D�]}|����������������������|��������������d�S�d�S�)Nr����)r����_scalarsr����rg���idrh��r9���rf��r:���r����r����r����r����rG���r����r���� itertools�chainri��r����r����) r���r�����refnum�keys�valuesr����rX���vrY��s ��� r���ri��z_BinaryPlistWriter._flatten���s��������e�X�&�&�� ��U���U�#�t�~�5�5����6����Y�Y�$�*� *� *��F���T�]�#�#��� ���U�#�#�#��e�X�&�&�� 1�39�D�N�D��K�K��/�0�0�*0�D��R��Y�Y�'���e�T�"�"�� !��D��F��K�K�M�M�E���� &��u� � ���� !�� !���1�!�!�S�)�)��<��~��!� �#�$:�;�;�;����A����� � �a� � � � ��_�T�6�2�2�� !�� !��� � �a� � � � � !�� !�����e�}� -� -�� !��� !�� !��� � �a� � � � � !�� !� !�� !r���c�����������������������t����������|t����������������������r|�j��������t����������|������������|f���������S�|�j��������t����������|���������������������S�r���)r���rs��rg��r����rh��rt��r����s��� r���rl��z_BinaryPlistWriter._getrefnum���s@�������e�X�&�&�� /��>�4��;�;��"6�7�7��#�B�u�I�I�.�.r���c������������������6����|dk�����r2|�j������������������������������t����������j��������d||z���������������������������d�S�|dk�����r4|�j������������������������������t����������j��������d|dz��d|�������������������������d�S�|dk�����r4|�j������������������������������t����������j��������d|dz��d|�������������������������d�S�|d k�����r4|�j������������������������������t����������j��������d |dz��d|�������������������������d�S�|�j������������������������������t����������j��������d|dz��d |�������������������������d�S�)Nr,��z>Br\��z>BBBr����r]��z>BBH����r^��z>BBL����z>BBQ����)r��r����r��rn��)r���rT��r6��s��� r����_write_sizez_BinaryPlistWriter._write_size���s ������"�9�9��H�N�N�6�;�t�U�T�\�:�:�;�;�;�;�;� �F�]�]��H�N�N�6�;�v�u�s�{�D�$�G�G�H�H�H�H�H� �G�^�^��H�N�N�6�;�v�u�s�{�D�$�G�G�H�H�H�H�H� �G�^�^��H�N�N�6�;�v�u�s�{�D�$�G�G�H�H�H�H�H�� �H�N�N�6�;�v�u�s�{�D�$�G�G�H�H�H�H�Hr���c������������������>������������������������������|������������}��j���������������������������������������������j��������|<���|���j�����������������������������d�������������d�S�|du�r��j�����������������������������d�������������d�S�|du�r��j�����������������������������d�������������d�S�t����������|t�����������������������r||dk�����rT ���j�����������������������������t����������j��������dd|�������������������������d�S�#�t����������j ��������$�r�t����������|������������d��w�xY�w|d k�����r0��j�����������������������������t����������j��������d d|�������������������������d�S�|dk�����r0��j�����������������������������t����������j��������d d|�������������������������d�S�|dk�����r0��j�����������������������������t����������j��������dd|�������������������������d�S�|dk�����r0��j�����������������������������t����������j��������dd|�������������������������d�S�|dk�����r5��j�����������������������������d|���������������������ddd�������������z����������������d�S�t����������|�������������t����������|t����������������������r0��j�����������������������������t����������j��������dd|�������������������������d�S�t����������|t����������j ��������������������r[|t����������j ��������ddd������������z �������������������������������������}��j�����������������������������t����������j��������dd|�������������������������d�S�t����������|t����������t ����������f������������r?�����������������������dt%����������|���������������������������j�����������������������������|�������������d�S�t����������|t&����������������������r� �|���������������������d������������}�����������������������dt%����������|�������������������������nK#�t*����������$�r>�|���������������������d ������������}�����������������������d!t%����������|������������d"z���������������Y�nw�xY�w��j�����������������������������|�������������d�S�t����������|t,�����������������������r|j��������dk�����rt1����������d#�������������|j��������d k�����r0��j�����������������������������t����������j��������d d$|�������������������������d�S�|j��������dk�����r0��j�����������������������������t����������j��������d d%|�������������������������d�S�|j��������dk�����r0��j�����������������������������t����������j��������dd&|�������������������������d�S�|j��������dk�����r0��j�����������������������������t����������j��������dd'|�������������������������d�S�t����������|�������������t����������|t2����������t4����������f������������rj��fd(�|D���������������}t%����������|������������}�����������������������d)|���������������j�����������������������������t����������j��������d*��j��������|z��z���g|�R����������������d�S�t����������|t8�����������������������rVg�g�}}��j��������r"t=����������|�����������������������������������������������} n|�����������������������������������} | D�]�\��} }t����������| t&����������������������s��j ��������r�"tC����������d+�������������|�"��������������������������������������������| �������������������������|�"��������������������������������������������|���������������������������t%����������|������������}�����������������������d,|���������������j�����������������������������t����������j��������d*��j��������|z��z���g|�R������������������j�����������������������������t����������j��������d*��j��������|z��z���g|�R����������������d�S�tC����������|�������������)-N�����F����Tr����r ���z>Bqr��r\��z>BBr����r]��z>BHr}��r^��z>BLr~��l������������z>BQr�������r3��r>��z>BdrA��rC��r����rB��rE��r����rF��rH��rG��r��r���rI��������������c������������������:������g�|�]}�����������������������|��������������S�r3���)rl��)r5��rY��r���s��� �r���� <listcomp>z4_BinaryPlistWriter._write_object.<locals>.<listcomp>-��s%�������6�6�6�1�D�O�O�A�&�&�6�6�6r���rJ��re���r����rM��)#rl��r��rm��r��r����r���r���r��rn��r$��r�����to_bytesr����rV���� total_secondsr����r����r���r9���rG���rI����UnicodeEncodeErrorr ���r���r���r����r����rj��r����r����r����r����r����r���r:���)r���r����rQ��r/���t�refsr>����keyRefs�valRefs� rootItemsrX��rz��s���` r���rk��z _BinaryPlistWriter._write_object���s��������o�o�e�$�$��$(�H�M�M�O�O���S�!��=��H�N�N�7�#�#�#�#�#� �e�^�^��H�N�N�7�#�#�#�#�#� �d�]�]��H�N�N�7�#�#�#�#�#� ��s� #� #��R #��q�y�y�9��H�N�N�6�;�u�d�E�#B�#B�C�C�C�C�C���|��9��9��9�'��.�.�D�8�9������������v�{�5�$��>�>�?�?�?�?�?���������v�{�5�$��>�>�?�?�?�?�?���������v�{�5�$��>�>�?�?�?�?�?���������v�{�5�$��>�>�?�?�?�?�?���������w�����E�$��)O�)O�O�P�P�P�P�P�#�E�*�*�*� ��u� %� %��? #��H�N�N�6�;�u�d�E�:�:�;�;�;�;�;� ��x�0� 1� 1��< #���*�4��A�6�6�6�E�E�G�G�A��H�N�N�6�;�u�d�A�6�6�7�7�7�7�7� ���y�1� 2� 2��8 #����T�3�u�:�:�.�.�.��H�N�N�5�!�!�!�!�!� ��s� #� #��4 #� 4��L�L��)�)��� � ��s�5�z�z�2�2�2�2��%�� 4�� 4�� 4��L�L��,�,��� � ��s�1�v�v��{�3�3�3�3�3� 4����� �H�N�N�1������ ��s� #� #��* #��z�A�~�~� �!8�9�9�9���f�$�$�����v�{�5�$��>�>�?�?�?�?�?���g�%�%�����v�{�5�$��>�>�?�?�?�?�?���g�%�%�����v�{�5�$��>�>�?�?�?�?�?���g�%�%�����v�{�5�$��>�>�?�?�?�?�?�#�E�*�*�*� ���e�}� -� -�� #�6�6�6�6��6�6�6�D��D� � �A����T�1�%�%�%��H�N�N�6�;�s�T�-=��-A�'A�I�D�I�I�I�J�J�J�J�J� ��t� $� $�� #�!�2�W�G���� *�"�5�;�;�=�=�1�1� � �!�K�K�M�M� �!�� 3�� 3���1�!�!�S�)�)��<��~��!� �#�$:�;�;�;����t���q�1�1�2�2�2����t���q�1�1�2�2�2�2��G���A����T�1�%�%�%��H�N�N�6�;�s�T�-=��-A�'A�L�G�L�L�L�M�M�M��H�N�N�6�;�s�T�-=��-A�'A�L�G�L�L�L�M�M�M�M�M���E�"�"�"s����3.C#��# D�8N��AO�ON) r%���r1���r2���r���r����ri��rl��r���rk��r3���r���r���rb��rb��w��sx��������������"��"��"� +;��+;��+;�Z(!��(!��(!�T/��/��/�I��I��I� ^#��^#��^#��^#��^#r���rb��c�����������������������|�d�d����������dk����S�)Nr��re��r3���)r����s��� r����_is_fmt_binaryr���K��s�������"�1�"�:��$�$r���)�detectrv����writer��fmtrt���c�����������������N����|�p|�����������������������d������������}|����������������������d�������������t���������������������������������������������D�]}�|d���������|������������r |d���������}�n�t �������������������������nt����������|���������d���������}�||�������������}|���������������������|�������������S�)z�Read a .plist file. 'fp' should be a readable and binary file object. Return the unpacked root object (which usually is a dictionary). Nr��r ���r���rv���)rt���)r��r���_FORMATSry��r���r����)r%��r���rt���r�����info�P�ps��� r���r���r���a��s���������{�������� ���� � � ��O�O�%�%�� )�� )�D��t�H�~�f�%�%�� ���N���� � �'�(�(�(���� �S�M�(�#�� ��I����A��7�7�2�;�;�r���c�����������������D�����t����������|�������������}t����������|||�������������S�)zqRead a .plist file from a bytes object. Return the unpacked root object (which usually is a dictionary). r���)r���r���)r����r���rt���r%��s��� r���r���r���w��s$������� ����B����y�1�1�1�1r���TF)r���r����r����c����������������������|t�����������vrt����������d|���������������t����������|���������d���������|||�������������}|���������������������|��������������dS�)zWWrite 'value' to a .plist file. 'fp' should be a writable, binary file object. zUnsupported format: r���)r����r����N)r���r���r����)r����r%��r���r����r����r���s��� r���r���r�����sY��������(����j�3�3�8�9�9�9� �c�]�8� $�R�9�x� P� P� P�F� �L�L������r����r���r����r����c�����������������n�����t������������������������}t����������|�||||��������������|�����������������������������������S�)z?Return a bytes object with the contents for a .plist file. r���)r���r����getvalue)r����r���r����r����r%��s��� r���r���r������s4������� ���B�����h�)�D�D�D�D� �;�;�=�=�r���)r4���)9rZ���__all__r;���r����rV����enum�ior���ru��r���rer���xml.parsers.expatr����Enumr%���r ����globals�update�__members__r ���r�����compilerf���rD���rJ����ASCIIrS���r\���r_���rk���rm���r����r����r��r���r���r-���objectr��r��r`��rG���r���r����r����rs��rb��r���r���r����r���r���r���r���r���r���r3���r���r����<module>r������s�����7��7�p������������ � � � �������������������������������� � � � �� � � � �� � � � ��*��*��*��*��*��*���d�i� �';�H�M�M�M����� � ������(��)��)��)����������������B����"�*�I�J��J���������&��&��&���b�j���X���Z\���Zb���c���c�� #�� #�� #������ �� �� �k<��k<��k<��k<��k<��k<��k<��k<�\#��#��#��#��#��#��#��#�L[)��[)��[)��[)��[)�>��[)��[)��[)�|�����B+��+��+��+��+�J��+��+��+���S�S�S�1�1�� �V�X�X� �^��^��^��^��^��^��^��^�@������ ��e�X�.��6��Q#��Q#��Q#��Q#��Q#�&��Q#��Q#��Q#�h%��%��%���T�T��������� �����!�!������ ����D�����������,����2��2��2��2��2��#�d�U������������ �%�4��������������r���