grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026§ Ø‘ÈJ>'JãóÈ—dZgd¢ZddlZddlZddlZddlZddlmZddlZddl Z ddl Z ddl Z ddl m Z ejdde¬¦«Ze¦« ej¦«d ZGd „d ¦«Zd Ze jd ¦«Zd3d„Zd„Ze jde j¦«Zd„Zd„Zd„ZGd„d¦«Z Gd„d¦«Z!Gd„de!¦«Z"d„Z#Gd„de$¦«Z%ddd d!d"œZ&e'¦«Z(Gd#„d$¦«Z)d%„Z*e+e,e-eje.fZ/Gd&„d'e'¦«Z0d(„Z1e2e3e#e e"¬)¦«e4e3e1e)e0¬)¦«iZ5de3d*œd+„Z6de3d*œd,„Z7e2d-d.d/œd0„Z8e2d.d-d1œd2„Z9dS)4a>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 = "", aThirdString = "M\xe4ssig, Ma\xdf", aTrueValue = True, aFalseValue = False, ), someData = b"", someMoreData = b"" * 10, aDate = datetime.datetime.now() ) print(plistlib.dumps(pl).decode()) Parse Plist example: import plistlib plist = b''' foo bar ''' pl = plistlib.loads(plist) print(pl["foo"]) )ÚInvalidFileExceptionÚFMT_XMLÚ FMT_BINARYÚloadÚdumpÚloadsÚdumpsÚUIDéN)ÚBytesIO)Ú ParserCreateÚ PlistFormatzFMT_XML FMT_BINARY)Úmoduleicó2—eZdZd„Zd„Zd„Zd„Zd„Zd„ZdS)r có°—t|t¦«std¦«‚|dkrtd¦«‚|dkrtd¦«‚||_dS)Nzdata must be an intìzUIDs cannot be >= 2**64r úUIDs must be positive)Ú isinstanceÚintÚ TypeErrorÚ ValueErrorÚdata©Úselfrs ú//opt/alt/python311/lib64/python3.11/plistlib.pyÚ__init__z UID.__init__Qs^€Ý˜$¥Ñ$Ô$ð 3ÝÐ1Ñ2Ô2Ð 2Ø �7Š?ˆ?ÝÐ6Ñ7Ô7Ð 7Ø �!Š8ˆ8ÝÐ4Ñ5Ô5Ð 5؈Œ ˆ ˆ ócó—|jS©N)r©rs rÚ __index__z UID.__index__Zs €ØŒyÐrcóJ—|jj›dt|j¦«›d�S)Nú(ú))Ú __class__Ú__name__Úreprrrs rÚ__repr__z UID.__repr__]s$€Øœ>Ô2Ð2Ð2µD¸¼±O´O°O°OÐDÐDrcó —|j|jffSr)r$rrs rÚ __reduce__zUID.__reduce__`s€ØŒ~ ¤ ˜|Ð+Ð+rcóZ—t|t¦«stS|j|jkSr)rr ÚNotImplementedr)rÚothers rÚ__eq__z UID.__eq__cs)€Ý˜%¥Ñ%Ô%ð "Ý!Ð !ØŒy˜EœJÒ&Ð&rcó*—t|j¦«Sr)Úhashrrs rÚ__hash__z UID.__hash__hs€Ý�D”I‰ŒÐrN) r%Ú __module__Ú __qualname__rr r'r)r-r0©rrr r Psq€€€€€ðððððððEðEðEð,ð,ð,ð'ð'ð'ð ððððrr sŽ 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]éLcóê—|dzdz}g}tdt|¦«|¦«D]6}||||z…}| tj|¦«¦«Œ7d |¦«S)Néér r)ÚrangeÚlenÚappendÚbinasciiÚ b2a_base64Újoin)ÚsÚ maxlinelengthÚ maxbinsizeÚpiecesÚiÚchunks rÚ_encode_base64rD|s|€à Ñ" AÑ%€JØ €FÝ �1•c˜!‘f”f˜jÑ )Ô )ð2ð2ˆØ�!�a˜*‘nÐ$Ô%ˆØ� Š •hÔ)¨%Ñ0Ô0Ñ1Ô1Ð1Ð1Ø �8Š8�FÑ Ô Ðrcó¢—t|t¦«r'tj| d¦«¦«Stj|¦«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Ñ%Ô%Ð%rz{(?P\d\d\d\d)(?:-(?P\d\d)(?:-(?P\d\d)(?:T(?P\d\d)(?::(?P\d\d)(?::(?P\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Ð "Ð"rcóT—d|j|j|j|j|j|jfzS)Nz%04d-%02d-%02dT%02d:%02d:%02dZrL)Úds rÚ_date_to_stringr_žs.€Ø +Ø Œ�”˜œØ Œ�”˜!œ(ð/ñ ðrcó8—t |¦«}|�td¦«‚| dd¦«}| dd¦«}| dd¦«}| dd¦«}| d d ¦«}|S) Nz;strings can't contain control characters; use bytes insteadz ú ú ú&z&úz>)Ú_controlCharPatÚsearchrÚreplace)ÚtextÚms rÚ_escaperk¤s•€Ý×Ò˜tÑ$Ô$€AØ€}Ýð-ñ.ô.ð .à �<Š<˜ Ñ %Ô %€DØ �<Š<˜˜dÑ #Ô #€DØ �<Š<˜˜WÑ %Ô %€DØ �<Š<˜˜VÑ $Ô $€DØ �<Š<˜˜VÑ $Ô $€DØ €Krcó†—eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZdS)Ú _PlistParsercó>—g|_d|_d|_||_dSr)ÚstackÚ current_keyÚrootÚ _dict_type©rÚ dict_types rrz_PlistParser.__init__±s#€ØˆŒ ØˆÔØˆŒ Ø#ˆŒˆˆrcóò—t¦«|_|j|j_|j|j_|j|j_|j|j_ |j  |¦«|j Sr) 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Ðrcó —td¦«‚)Nz8XML entity declarations are not supported in plist files)r)rÚ entity_nameÚis_parameter_entityÚvalueÚbaseÚ system_idÚ public_idÚ notation_names rr}z_PlistParser.handle_entity_declÀs€õ#Ð#]Ñ^Ô^Ð^rcóZ—g|_t|d|zd¦«}|� ||¦«dSdS)NÚbegin_)rÚgetattr)rÚelementÚattrsÚhandlers rrwz!_PlistParser.handle_begin_elementÆs>€ØˆŒ ݘ$ ¨7Ñ 2°DÑ9Ô9ˆØ Ð Ø ˆG�E‰NŒNˆNˆNˆNð Ð rcóJ—t|d|zd¦«}|� |¦«dSdS)NÚend_)rŒ)rr�r�s rryz_PlistParser.handle_end_elementÌs5€Ý˜$ ¨Ñ 0°$Ñ7Ô7ˆØ Ð Ø ˆG‰IŒIˆIˆIˆIð Ð rcó:—|j |¦«dSr)rr:rs rr{z_PlistParser.handle_dataÑs€Ø Œ ×Ò˜ÑÔÐÐÐrcóÀ—|j�bt|jdti¦«¦«st d|jjz¦«‚||jd|j<d|_dS|js ||_dSt|jdtg¦«¦«st d|jjz¦«‚|jd |¦«dS)Néÿÿÿÿzunexpected element at line %d) rprroÚtyperrvÚCurrentLineNumberrqr:©rr…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× !Ò ! %Ñ (Ô (Ð (Ð (Ð (rcóH—d |j¦«}g|_|S)NÚ)r=rrs rÚget_dataz_PlistParser.get_dataäs!€Ø�wŠw�t”yÑ!Ô!ˆØˆŒ ؈ rcóŒ—| ¦«}| |¦«|j |¦«dSr)rrr˜ror:)rrŽr^s rÚ begin_dictz_PlistParser.begin_dictës?€Ø �OŠOÑ Ô ˆØ �Š˜ÑÔÐØ Œ ×Ò˜!ÑÔÐÐÐrcóŒ—|jr#td|j|jjfz¦«‚|j ¦«dS)Nz%missing value for key '%s' at line %d)rprrvr–roÚpoprs rÚend_dictz_PlistParser.end_dictðsT€Ø Ô ð OÝÐDØ"Ô.¨t¬{Ô/LÐMñNñOôOð Oà Œ �ŠÑÔÐÐÐrcóΗ|js(t|jdti¦«¦«st d|jjz¦«‚| ¦«|_dS)Nr”zunexpected key at line %d)rprror•rrvr–r›rs rÚend_keyz_PlistParser.end_keyösb€Ø Ô ð <¥:¨d¬j¸¬n½dÀ2¹h¼hÑ#GÔ#Gð <ÝÐ8Ø!œ[Ô:ñ;ñ<ô<ð <àŸ=š=™?œ?ˆÔÐÐrcóh—g}| |¦«|j |¦«dSr)r˜ror:)rrŽÚas rÚ begin_arrayz_PlistParser.begin_arrayüs5€Ø ˆØ �Š˜ÑÔÐØ Œ ×Ò˜!ÑÔÐÐÐrcó8—|j ¦«dSr)rorŸrs rÚ end_arrayz_PlistParser.end_arrays€Ø Œ �ŠÑÔÐÐÐrcó0—| d¦«dS)NT©r˜rs rÚend_truez_PlistParser.end_trues€Ø �Š˜ÑÔÐÐÐrcó0—| d¦«dS)NFr©rs rÚ end_falsez_PlistParser.end_falses€Ø �Š˜ÑÔÐÐÐrcó—| ¦«}| d¦«s| d¦«r%| t|d¦«¦«dS| t|¦«¦«dS)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Ñ %Ô %Ð %Ð %Ð %rcón—| t| ¦«¦«¦«dSr)r˜Úfloatr›rs rÚend_realz_PlistParser.end_reals*€Ø �Š�˜dŸmšm™oœoÑ.Ô.Ñ/Ô/Ð/Ð/Ð/rcóT—| | ¦«¦«dSr)r˜r›rs rÚ end_stringz_PlistParser.end_strings"€Ø �Š˜Ÿ š ™œÑ(Ô(Ð(Ð(Ð(rcón—| t| ¦«¦«¦«dSr)r˜rJr›rs rÚend_dataz_PlistParser.end_datas*€Ø �Š� t§}¢}¡¤Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8rcón—| t| ¦«¦«¦«dSr)r˜r\r›rs rÚend_datez_PlistParser.end_dates+€Ø �ŠÕ)¨$¯-ª-©/¬/Ñ:Ô:Ñ;Ô;Ð;Ð;Ð;rN)r%r1r2rr�r}rwryr{r˜r›r�r r¢r¥r§rªr¬r³r¶r¸rºr¼r3rrrmrm°sC€€€€€ð$ð$ð$ð ððð_ð_ð_ð ððð ððð ððð)ð)ð)ð ðððððð ððð +ð+ð+ð ððð ððððððððð&ð&ð&ð0ð0ð0ð)ð)ð)ð9ð9ð9ð<ð<ð<ð<ð—||_g|_||_||_dSr)ÚfileroÚ _indent_levelÚindent)rrÁÚ indent_levelrÃs rrz_DumbXMLWriter.__init__s#€ØˆŒ ؈Œ Ø)ˆÔ؈Œ ˆ ˆ rcóŠ—|j |¦«| d|z¦«|xjdz c_dS)Nz<%s>é)ror:Úwritelnr©rr�s rÚ begin_elementz_DumbXMLWriter.begin_element%sI€Ø Œ ×Ò˜'Ñ"Ô"Ð"Ø � Š �V˜gÑ%Ñ&Ô&Ð&Ø ÐÔ˜aÑÐÔÐÐrcó®—|jdksJ‚|j ¦«|ksJ‚|xjdzc_| d|z¦«dS)Nr rÆz)rÂrorŸrÇrÈs rÚ end_elementz_DumbXMLWriter.end_element*sd€ØÔ! AÒ%Ð%Ð%Ð%ØŒz�~Š~ÑÔ 7Ò*Ð*Ð*Ð*Ø ÐÔ˜aÑÐÔØ � Š �W˜wÑ&Ñ'Ô'Ð'Ð'Ð'rNc óš—|�0t|¦«}| d|›d|›d|›d�¦«dS| d|z¦«dS)Nrdrez)rkrÇ)rr�r…s rÚsimple_elementz_DumbXMLWriter.simple_element0s_€Ø РݘE‘N”NˆEØ �LŠLˆL¨'¨'¨'°5°5°5¸'¸'¸'ÐBÑ CÔ CÐ CÐ CÐ Cð �LŠL˜ 7Ñ*Ñ +Ô +Ð +Ð +Ð +rcó—|rkt|t¦«r| d¦«}|j |j|jz¦«|j |¦«|j d¦«dS)NrFó )rrGrIrÁÚwriterÂrÃ)rÚlines rrÇz_DumbXMLWriter.writeln8s{€Ø ð "õ˜$¥Ñ$Ô$ð ,Ø—{’{ 7Ñ+Ô+�Ø ŒI�OŠO˜DÔ.°´Ñ<Ñ =Ô =Ð =Ø ŒI�OŠO˜DÑ !Ô !Ð !Ø Œ �Š˜ÑÔÐÐÐr)r r¿r)r%r1r2rrÉrËrÍrÇr3rrr¾r¾si€€€€€ððððð  ð ð ð (ð(ð(ð ,ð,ð,ð,ð ð ð ð ð rr¾có8—eZdZ d d„Zd„Zd„Zd „Zd „Zd „Zd S)Ú _PlistWriterr ó rÆTFcó”—|r| t¦«t ||||¦«||_||_dSr)rÐÚ PLISTHEADERr¾rÚ _sort_keysÚ _skipkeys)rrÁrÄrÃÚ writeHeaderÚ sort_keysÚskipkeyss rrz_PlistWriter.__init__EsJ€ð ð $Ø �JŠJ•{Ñ #Ô #Ð #Ý×Ò  d¨L¸&ÑAÔAÐAØ#ˆŒØ!ˆŒˆˆrcó„—| d¦«| |¦«| d¦«dS)Nzz)rÇÚ write_valuer—s rrÐz_PlistWriter.writeOsA€Ø � Š Ð.Ñ/Ô/Ð/Ø ×Ò˜ÑÔÐØ � Š �ZÑ Ô Ð Ð Ð rcóº—t|t¦«r| d|¦«dS|dur| d¦«dS|dur| d¦«dSt|t¦«r:d|cxkrdkrnn| dd |z¦«dSt |¦«‚t|t ¦«r%| d t |¦«¦«dSt|t¦«r| |¦«dSt|ttf¦«r|  |¦«dSt|tj ¦«r%| d t|¦«¦«dSt|ttf¦«r| |¦«dSt#d t%|¦«z¦«‚) NÚstringTÚtrueFÚfalselûÿÿÿrÚintegerz%dÚrealÚdatezunsupported type: %s)rrGrÍrÚ OverflowErrorrµr&ÚdictÚ write_dictÚbytesÚ bytearrayÚ write_bytesrVr_ÚtupleÚlistÚ write_arrayrr•r—s rrÝz_PlistWriter.write_valueTsó€Ý �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Ð Arc ó–—| d¦«|xjdzc_tddt|j dd¦«|jz¦«z ¦«}t ||¦« d¦«D]}|r| |¦«Œ|xjdz c_|  d¦«dS)NrrÆr°r4rÔs rÏ) rÉrÂÚmaxr9rÃrhrDÚsplitrÇrË)rrr?rÑs rrêz_PlistWriter.write_bytesvsÚ€Ø ×Ò˜6Ñ"Ô"Ð"Ø ÐÔ˜aÑÐÔÝØ Ø •�T”[×(Ò(¨°Ñ9Ô9¸DÔ6xBBQQQ)Ú_fpÚseekÚosÚSEEK_ENDÚreadr9rÚ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 rr�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óè—|dkrk|j d¦«ddz}d|z}dt|z}tj||j |¦«¦«dS|S)z$ return the size of the next object.érÆr r7re)rrÚ_BINARY_FORMATrr)rÚtokenLrjr>Ú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àˆ rcó—t|t¦«}|j |¦«} t |¦«|krt ‚||kr|St|||z ¦«}||j |¦«z }||z }ŒXr)ÚminÚ_MIN_READ_BUF_SIZErrr9r)rÚsizeÚcursizerÚdeltas rÚ_readz_BinaryPlistParser._readùs‰€Ý�dÕ.Ñ/Ô/ˆØŒx�}Š}˜WÑ%Ô%ˆð Ý�4‰yŒy˜GÒ#Ð#Ý*Ð*ؘ$ŠˆØ� ݘ ¨¡Ñ0Ô0ˆEØ �D”H—M’M %Ñ(Ô(Ñ (ˆDØ �uÑ ˆGð rc󇇗| ‰|z¦«Š‰tvr%tjd|›t‰›�‰¦«S‰st ¦«‚t ˆˆfd„t d‰|z‰¦«D¦«¦«S)Nrec3ód•K—|]*}t ‰||‰z…d¦«V—Œ+dS)ÚbigN)rÚ from_bytes)Ú.0rBrr4s €€rú z0_BinaryPlistParser._read_ints.. sRøèè€ð<ð<ØõŸš¨¨Q°°D±¨[Ô(9¸5ÑAÔAð<ð<ð<ð<ð<ðÐ !Ð !Ý”=Ð!> QÐ!>­°tÔ(<Ð!>Ð!>ÀÑEÔEÐ Eàð -Ý*Ñ,Ô,Ð,Ýð<ð<ð<ð<ð<Ý"'¨¨4°!©8°TÑ":Ô":ð<ñ<ô<ñ<ô<ð s rÚ _read_refsz_BinaryPlistParser._read_refss€Ø�Š˜q $¤.Ñ1Ô1Ð1rcóø‡—‰j|}|tur|S‰j|}‰j |¦«‰j d¦«d}|dz|dz}}|dkrd}�n{|dkrd}�nq|dkrd }�ng|dkrd }�n]|d kr>t  ‰j d|z¦«d |d k¬¦«}�n|dkr5tj d‰j d¦«¦«d}�nÞ|dkr5tj d‰j d¦«¦«d}�n£|dkratj d‰j d¦«¦«d}tj ddd¦«tj |¬¦«z}�n<|dkr,‰  |¦«}‰  |¦«}�n |dkrA‰  |¦«}‰  |¦«} |  d¦«}�nÃ|dkrD‰  |¦«dz}‰  |¦«} |  d¦«}�ny|dkrEtt  ‰j d|z¦«d ¦«¦«}�n.|dkrX‰  |¦«}‰ |¦«} g}|‰j|<| ˆfd„| D¦«¦«nÐ|d kr¼‰  |¦«}‰ |¦«} ‰ |¦«} ‰ ¦«}|‰j|< t'| | ¦«D]0\} } ‰ | ¦«|‰ | ¦«<Œ1n*#t*$rt-¦«‚wxYwt-¦«‚|‰j|<|S)!zx read the object by reference. May recursively read sub-objects (content of an array/dict/set) rÆr éðr,NrFé Trr°r:r7©Úsignedé"z>fr6é#z>dé3éÑ)Úsecondsé@éPrøé`rúutf-16beé€é c3óB•K—|]}‰ |¦«V—ŒdSr)r!)r<Úxrs €rr=z2_BinaryPlistParser._read_object..Xs1øèè€ÐAÐA°1˜$×+Ò+¨AÑ.Ô.ÐAÐAÐAÐAÐAÐAréÐ)r rrrrrrr;rrrVÚ timedeltar0r7rýr r@ÚextendrrÚzipr!rr)rÚrefÚresultÚoffsetÚtokenÚtokenHr.r/r>rÚobj_refsÚkey_refsÚkÚos` rr!z_BinaryPlistParser._read_objectsâø€ð ”˜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Ø—Z’Z ‘]”]ˆF‰Fà �tŠ^ˆ^Ø—’˜vÑ&Ô&ˆAØ—:’:˜a‘=”=ˆDØ—[’[ Ñ)Ô)ˆF‰Fà �tŠ^ˆ^Ø—’˜vÑ&Ô&¨Ñ*ˆAØ—:’:˜a‘=”=ˆDØ—[’[ Ñ,Ô,ˆ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 ÎAOÏON) r%r1r2Ú__doc__rr�r0r7rr@r!r3rrrrËsŒ€€€€€ððð$ð$ð$ð)ð)ð)ð2ððð ð ð ð<ð<ð<ð2ð2ð2ð]ð]ð]ð]ð]rrcó6—|dkrdS|dkrdS|dkrdSdS)NérÆérìr6rr3)Úcounts rÚ_count_to_sizerfqs3€Ø ˆv‚~€~؈qà �ŠˆØˆqà �ŠˆØˆqðˆqrcó2—eZdZd„Zd„Zd„Zd„Zd„Zd„ZdS)Ú_BinaryPlistWritercó0—||_||_||_dSr)rr×rØ)rr%rÚrÛs rrz_BinaryPlistWriter.__init__�s€ØˆŒØ#ˆŒØ!ˆŒˆˆrcóЗg|_i|_i|_| |¦«t |j¦«}dg|z|_t |¦«|_t|j|_ |j   d¦«|jD]}|  |¦«Œ|  |¦«}|j  ¦«}t |¦«}dt||zz}|j   tj|g|j¢Rަ«d}|||j|||f} |j   tjdg| ¢Rަ«dS)Nr óbplist00rez >5xBBBQQQ)Ú_objlistÚ _objtableÚ _objidtableÚ_flattenr9rrfrr-Ú _ref_formatrrÐÚ _write_objectÚ _getrefnumÚtellrÚpack) rr…r(Úobjr)r*r'Ú offset_formatÚ sort_versionr&s rrÐ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Ñ:Ô:Ð:Ð:Ð:rcóŽ—t|t¦«rt|¦«|f|jvrdSnt |¦«|jvrdSt |j¦«}|j |¦«t|t¦«r||jt|¦«|f<n||jt |¦«<t|t¦«r»g}g}|  ¦«}|j rt|¦«}|D][\}}t|t¦«s|jrŒ"td¦«‚| |¦«| |¦«Œ\t!j||¦«D]}| |¦«ŒdSt|t&t(f¦«r|D]}| |¦«ŒdSdS)Nrò)rÚ_scalarsr•rmÚidrnr9rlr:rærôr×rórGrØrÚ itertoolsÚchainrorìrë) rr…ÚrefnumÚkeysÚvaluesrôr^Úvr_s rroz_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Ñ Ô Ð Ð ð !ð !ð !ð !rcó˜—t|t¦«r|jt|¦«|fS|jt |¦«Sr)rryrmr•rnrzr—s rrrz_BinaryPlistWriter._getrefnumÝs@€Ý �e�XÑ &Ô &ð /Ø”>¥4¨¡;¤;°Ð"6Ô7Ð 7àÔ#¥B u¡I¤IÔ.Ð .rcó6—|dkr2|j tjd||z¦«¦«dS|dkr4|j tjd|dzd|¦«¦«dS|dkr4|j tjd|dzd|¦«¦«dS|d kr4|j tjd |dzd |¦«¦«dS|j tjd |dzd |¦«¦«dS)Nr,z>Brbz>BBBr°rcz>BBHérdz>BBLéz>BBQé)rrÐrrt)rrZr4s 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Ð Hrcó>‡—‰ |¦«}‰j ¦«‰j|<|€‰j d¦«dS|dur‰j d¦«dS|dur‰j d¦«dSt |t ¦«�r||dkrT ‰j tjdd|¦«¦«dS#tj $rt|¦«d‚wxYw|d kr0‰j tjd d |¦«¦«dS|d kr0‰j tjd d|¦«¦«dS|dkr0‰j tjdd|¦«¦«dS|dkr0‰j tjdd|¦«¦«dS|dkr5‰j d|  d dd¬¦«z¦«dSt|¦«‚t |t¦«r0‰j tjdd|¦«¦«dSt |tj ¦«r[|tj ddd¦«z  ¦«}‰j tjdd|¦«¦«dSt |tt f¦«r?‰ dt%|¦«¦«‰j |¦«dSt |t&¦«r¡ | d¦«}‰ dt%|¦«¦«nK#t*$r>| d ¦«}‰ d!t%|¦«d"z¦«YnwxYw‰j |¦«dSt |t,¦«�r|jdkrt1d#¦«‚|jd kr0‰j tjd d$|¦«¦«dS|jd kr0‰j tjd d%|¦«¦«dS|jdkr0‰j tjdd&|¦«¦«dS|jdkr0‰j tjdd'|¦«¦«dSt|¦«‚t |t2t4f¦«rjˆfd(„|D¦«}t%|¦«}‰ d)|¦«‰j tjd*‰j|zzg|¢Rަ«dSt |t8¦«�rVgg}}‰jr"t=| ¦«¦«} n| ¦«} | D]�\} } t | t&¦«s‰j rŒ"tCd+¦«‚| "‰ | ¦«¦«| "‰ | ¦«¦«Œ‚t%|¦«}‰ d,|¦«‰j tjd*‰j|zzg|¢Rަ«‰j tjd*‰j|zzg|¢Rަ«dStC|¦«‚)-NóFóTrÔr z>Bqr…rbz>BBr°rcz>BHrƒrdz>BLr„lz>BQrór:rDz>BdrGrIrÆrHrKrørLrNrMrrrOé�éƒé‡có:•—g|]}‰ |¦«‘ŒSr3)rr)r<r_rs €rú z4_BinaryPlistWriter._write_object..6s%ø€Ð6Ð6Ð6¨1�D—O’O AÑ&Ô&Ð6Ð6Ð6rrPreròrS)#rrrrsrrÐrrrrtr$råÚto_bytesrµrVÚ total_secondsrèrér†r9rGrIÚUnicodeEncodeErrorr rrrìrërprær×rórôrØrr:) rr…rWr/ÚtÚrefsr>ÚkeyRefsÚvalRefsÚ rootItemsr^r€s ` rrqz _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%r1r2rrÐrorrr†rqr3rrrhrh€sx€€€€€ð"ð"ð"ð +;ð+;ð+;ðZ(!ð(!ð(!ðT/ð/ð/ð IðIðIð ^#ð^#ð^#ð^#ð^#rrhcó—|dd…dkS)Nrrkr3)rþs rÚ_is_fmt_binaryr™Ts€Ø �"�1�"Œ:˜Ò $Ð$r)ÚdetectrvÚwriter©Úfmtrtcó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). Nrr ršrv)rt)rrÚ_FORMATSrrr�)r%r�rtrþÚinfoÚPÚps rrrjs®€ð €{Ø—’˜‘”ˆØ �Š�‰ Œ ˆ Ý—O’OÑ%Ô%ð )ð )ˆD؈t�HŒ~˜fÑ%Ô%ð Ø˜”N�Ø�ð õ 'Ñ(Ô(Ð (ðõ �SŒM˜(Ô #ˆà ˆ�IÐÑÔ€AØ �7Š7�2‰;Œ;Ðrcó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�rtr%s rrr€s$€õ �‰Œ€BÝ �˜ yÐ 1Ñ 1Ô 1Ð1rTF)r�rÚrÛcó¢—|tvrtd|›�¦«‚t|d|||¬¦«}| |¦«dS)zWWrite 'value' to a .plist file. 'fp' should be a writable, binary file object. zUnsupported format: r›)rÚrÛN)rŸrrÐ)r…r%r�rÚrÛr›s rrrˆ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 rrr“s4€õ ‰Œ€B݈�˜ h¸)ÐDÑDÔDÐDØ �;Š;‰=Œ=Ðr)r4):r`Ú__all__r;rùrVÚenumÚior r{rÚrerÚxml.parsers.expatr ÚEnumr%r ÚglobalsÚupdateÚ __members__r3r rÖÚcompilerfrDrJÚASCIIrSr\r_rkrmr¾rÓrrrr-ÚobjectrrrfrGrrµrèryrhr™rrærrŸrrrrr3rrú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€ ðdðdðdðdðdñdôdðdðL ð ð ð ��e˜XÔ.°Ð 6€ðQ#ðQ#ðQ#ðQ#ðQ#˜&ñQ#ôQ#ðQ#ðh%ð%ð%ð ˆTˆTØØØðñôð ��ØØ!Ø!ðñôð €ð Dðððððð,¨ð2ð2ð2ð2ð2ð#¨d¸Uðððððð ¨%¸4ðððððððr