grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B »à�YNØ^ã@sdZddddddddd d d d d ddddgZddlZddlZddlZddlmZ m Z dZ dZ dZ dZdZdZdZGdd„deƒZdd„ZGd d„deƒZGd!d„deƒZGd"d„deƒZGd#d„deƒZGd$d „d eƒZd%d&„ZGd'd„deƒZGd(d„deƒZGd)d „d eƒZGd*d+„d+eƒZGd,d-„d-eƒZ Gd.d/„d/e ƒZ!Gd0d1„d1e ƒZ"Gd2d3„d3eƒZ#Gd4d5„d5eƒZ$Gd6d7„d7eƒZ%Gd8d9„d9eƒZ&Gd:d;„d;eƒZ'Gdd„deƒZ)Gd?d „d eƒZ*Gd@dA„dAeƒZ+GdBdC„dCe+ƒZ,GdDdE„dEe,ƒZ-GdFd„dee+ƒZ.dS)Gz1.1ÚArgumentParserÚ ArgumentErrorÚArgumentTypeErrorÚFileTypeÚ HelpFormatterÚArgumentDefaultsHelpFormatterÚRawDescriptionHelpFormatterÚRawTextHelpFormatterÚMetavarTypeHelpFormatterÚ NamespaceÚActionÚ ONE_OR_MOREÚOPTIONALÚPARSERÚ REMAINDERÚSUPPRESSÚ ZERO_OR_MOREéN)ÚgettextÚngettextz ==SUPPRESS==ú?Ú*ú+zA...z...Ú_unrecognized_argsc@s$eZdZdd„Zdd„Zdd„ZdS)Ú_AttributeHoldercCs”t|ƒj}g}i}x| ¡D]}| t|ƒ¡qWx8| ¡D],\}}| ¡r`| d||f¡q<|||<q×sz6HelpFormatter._Section.format_help..Úz%*s%s: Ú ) rXrWrUÚ _join_partsr.rVrYrrD)r"r!Ú item_helpÚcurrent_indentrYr)r)r*Ú format_helpÒs    z"HelpFormatter._Section.format_help)N)rr/r0rSrcr)r)r)r*rGÊs rGcCs|jj ||f¡dS)N)rIr.r)r"r[r\r)r)r*Ú _add_itemészHelpFormatter._add_itemcCs0| ¡| ||j|¡}| |jg¡||_dS)N)rUrGrIrdrc)r"rYÚsectionr)r)r*Ú start_sectionïszHelpFormatter.start_sectioncCs|jj|_| ¡dS)N)rIrXrV)r"r)r)r*Ú end_sectionõs zHelpFormatter.end_sectioncCs$|tk r |dk r | |j|g¡dS)N)rrdÚ _format_text)r"Útextr)r)r*Úadd_textùszHelpFormatter.add_textcCs&|tk r"||||f}| |j|¡dS)N)rrdÚ _format_usage)r"ÚusageÚactionsÚgroupsÚprefixr\r)r)r*Ú add_usageýs zHelpFormatter.add_usagecCsz|jtk rv|j}||ƒg}x | |¡D]}| ||ƒ¡q&Wtdd„|Dƒƒ}||j}t|j|ƒ|_| |j |g¡dS)NcSsg|] }t|ƒ‘qSr))Úlen)rZÚsr)r)r*r] sz.HelpFormatter.add_argument..) ÚhelprÚ_format_action_invocationÚ_iter_indented_subactionsrrBrDrFrdÚ_format_action)r"ÚactionÚget_invocationÚ invocationsÚ subactionÚinvocation_lengthÚ action_lengthr)r)r*Ú add_arguments   zHelpFormatter.add_argumentcCsx|D]}| |¡qWdS)N)r})r"rmrwr)r)r*Ú add_argumentss zHelpFormatter.add_argumentscCs.|j ¡}|r*|j d|¡}| d¡d}|S)Nz r_)rHrcrNÚsubÚstrip)r"rsr)r)r*rcs  zHelpFormatter.format_helpcCsd dd„|Dƒ¡S)Nr^cSsg|]}|r|tk r|‘qSr))r)rZÚpartr)r)r*r]#sz-HelpFormatter._join_parts..)r!)r"Ú part_stringsr)r)r*r`"s zHelpFormatter._join_partscs|dkrtdƒ}|dk r,|t|jd�}�nÚ|dkrL|sLdt|jd�}�nº|dk�rdt|jd�}g}g}x(|D] }|jrŠ| |¡qt| |¡qtW|j} | |||ƒ} d dd„|| gDƒ¡}|j|j‰t |ƒt |ƒˆk�rd} | ||ƒ} | ||ƒ} t   | | ¡}t   | | ¡}d‡fdd „ }t |ƒt |ƒd ˆk�r¢dt |ƒt |ƒd }|�r€||g|||ƒ}|  |||ƒ¡n |�rš||g|||ƒ}n|g}nZdt |ƒ}||}|||ƒ}t |ƒd k�ròg}|  |||ƒ¡|  |||ƒ¡|g|}d  |¡}d ||fS)Nzusage: )rOz%(prog)sú cSsg|] }|r|‘qSr)r))rZrrr)r)r*r]Csz/HelpFormatter._format_usage..z%\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+csÊg}g}|dk rt|ƒd}n t|ƒd}xb|D]Z}|dt|ƒˆkrp|rp| |d |¡¡g}t|ƒd}| |¡|t|ƒd7}q0W|r¦| |d |¡¡|dk rÆ|dt|ƒd…|d<|S)NrTrƒr)rqrr!)ÚpartsÚindentroÚlinesÚlineÚline_lenr�)Ú text_widthr)r*Ú get_linesWs"    z.HelpFormatter._format_usage..get_linesgè?rTr_z%s%s )N) Ú_Údictr>Úoption_stringsrÚ_format_actions_usager!rCrDrqrJÚfindallÚextend)r"rlrmrnrorOÚ optionalsÚ positionalsrwÚformatÚ action_usageÚ part_regexpÚ opt_usageÚ pos_usageÚ opt_partsÚ pos_partsrŠr…r†r„r))r‰r*rk'sV             zHelpFormatter._format_usagec Cstƒ}i}�x(|D�]}y| |jd¡}Wntk rBwYqX|t|jƒ}|||…|jkrx|jD]}| |¡qlW|jsÊ||krž||d7<nd||<||krÀ||d7<nd||<nF||krä||d7<nd||<||k�r||d7<nd||<x t|d|ƒD]} d || <�q WqWg} �x0t|ƒD�]"\} }|j t k�r¦|   d¡|  | ¡d k�r‚|  | ¡n"|  | d¡d k�rh|  | d¡nÂ|j�s| |¡} | || ¡} ||k�rö| ddk�rö| d dk�rö| dd …} |   | ¡nf|jd} |jdk�r"d | } n"| |¡} | || ¡}d | |f} |j�s^||k�r^d | } |   | ¡�qFWx(t|dd�D]} || g| | | …<�q|Wd dd„| Dƒ¡}d}d}t d|d|¡}t d|d|¡}t d||fd|¡}t dd|¡}| ¡}|S)Nrz [ú[ú]z (ú(ú)rTú|éÿÿÿÿz%sz%s %sz[%s]T)ÚreverserƒcSsg|]}|dk r|‘qS)Nr))rZÚitemr)r)r*r]àsz7HelpFormatter._format_actions_usage..z[\[(]z[\])]z(%s) z\1z (%s)z%s *%sr^z \(([^|]*)\))ÚsetÚindexÚ_group_actionsr=rqÚaddÚrequiredÚrangeÚ enumeratersrrÚgetÚpopr�Ú#_get_default_metavar_for_positionalÚ _format_argsÚnargsÚ!_get_default_metavar_for_optionalr,r!rJrr€)r"rmrnÚ group_actionsÚinsertsÚgroupÚstartÚendrwÚir„Údefaultr�Ú option_stringÚ args_stringriÚopenÚcloser)r)r*rއsz                 z#HelpFormatter._format_actions_usagecCsFd|kr|t|jd�}t|j|jdƒ}d|j}| |||¡dS)Nz%(prog))rOé rƒz )rŒr>rBrCrDÚ _fill_text)r"rir‰r…r)r)r*rhîs  zHelpFormatter._format_textc CsBt|jd|jƒ}t|j|dƒ}||jd}| |¡}|jsV|jd|f}d|}n@t|ƒ|kr~|jd||f}d|}d}n|jd|f}d|}|}|g}|jrü|  |¡} |  | |¡} |  d|d| df¡x@| dd…D]} |  d|d| f¡qÞWn|  d¡�s|  d¡x$|  |¡D]} |  | | ¡¡�qW| |¡S) Nr4rºr^z%*s%s z %*s%-*s rrTr_)rArFr@rBrCrDrtrsrqÚ _expand_helpÚ _split_linesrÚendswithrurvr`) r"rwÚ help_positionÚ help_widthÚ action_widthÚ action_headerÚtupÚ indent_firstr„Ú help_textÚ help_linesr‡rzr)r)r*rvõs6          zHelpFormatter._format_actioncCsˆ|js&| |¡}| ||¡dƒ\}|Sg}|jdkrB| |j¡n8| |¡}| ||¡}x |jD]}| d||f¡q`Wd |¡SdS)NrTrz%s %sz, ) r�r«Ú_metavar_formatterr­r�r®r¬rr!)r"rwrµÚmetavarr„r·r¶r)r)r*rt$s     z'HelpFormatter._format_action_invocationcsP|jdk r|j‰n.|jdk r.z{%s}ú,cstˆtƒrˆSˆf|SdS)N)Ú isinstanceÚtuple)Ú tuple_size)Úresultr)r*r“Es z0HelpFormatter._metavar_formatter..format)rÈÚchoicesr!)r"rwÚdefault_metavarÚ choice_strsr“r))rÏr*rÇ<s   z HelpFormatter._metavar_formattercCsÐ| ||¡}|jdkr$d|dƒ}n¨|jtkr.rƒ) rÇr­r rr rrrr§r!)r"rwrÑÚ get_metavarrÏÚformatsr)r)r*r¬Ls$        zHelpFormatter._format_argscCs tt|ƒ|jd�}x"t|ƒD]}||tkr||=qWx,t|ƒD] }t||dƒr@||j||<q@W| d¡dk r’d dd„|dDƒ¡}||d<|  |¡|S)N)rOrrÐz, cSsg|] }t|ƒ‘qSr))rÉ)rZÚcr)r)r*r]jsz.HelpFormatter._expand_help..) rŒÚvarsr>r1rÚhasattrrr©r!Ú_get_help_string)r"rwÚparamsr'Ú choices_strr)r)r*r¼as  zHelpFormatter._expand_helpccs@y |j}Wntk rYnX| ¡|ƒEdH| ¡dS)N)Ú_get_subactionsÚAttributeErrorrUrV)r"rwÚget_subactionsr)r)r*runs  z'HelpFormatter._iter_indented_subactionscCs&|j d|¡ ¡}ddl}| ||¡S)Nrƒr)rMrr€ÚtextwrapÚwrap)r"rirRrÞr)r)r*r½xszHelpFormatter._split_linescCs,|j d|¡ ¡}ddl}|j||||d�S)Nrƒr)Úinitial_indentÚsubsequent_indent)rMrr€rÞÚfill)r"rirRr…rÞr)r)r*r»s zHelpFormatter._fill_textcCs|jS)N)rs)r"rwr)r)r*r؆szHelpFormatter._get_help_stringcCs |j ¡S)N)ÚdestÚupper)r"rwr)r)r*r®‰sz/HelpFormatter._get_default_metavar_for_optionalcCs|jS)N)rã)r"rwr)r)r*r«Œsz1HelpFormatter._get_default_metavar_for_positional)r4r5N)N)rr/r0rSrUrVÚobjectrGrdrfrgrjrpr}r~rcr`rkrŽrhrvrtrÇr¬r¼rur½r»rØr®r«r)r)r)r*r˜s:   `g/  c@seZdZdd„ZdS)rcs d ‡fdd„|jdd�Dƒ¡S)Nr^c3s|]}ˆ|VqdS)Nr))rZr‡)r…r)r*ú ˜sz9RawDescriptionHelpFormatter._fill_text..T)Úkeepends)r!Ú splitlines)r"rirRr…r))r…r*r»—sz&RawDescriptionHelpFormatter._fill_textN)rr/r0r»r)r)r)r*r�sc@seZdZdd„ZdS)rcCs| ¡S)N)rè)r"rirRr)r)r*r½¢sz!RawTextHelpFormatter._split_linesN)rr/r0r½r)r)r)r*r›sc@seZdZdd„ZdS)rcCs>|j}d|jkr:|jtk r:ttg}|js2|j|kr:|d7}|S)Nz %(default)z (default: %(default)s))rsrµrr rr�r­)r"rwrsÚdefaulting_nargsr)r)r*rØ­s  z.ArgumentDefaultsHelpFormatter._get_help_stringN)rr/r0rØr)r)r)r*r¦sc@seZdZdd„Zdd„ZdS)r cCs|jjS)N)rr)r"rwr)r)r*r®¿sz:MetavarTypeHelpFormatter._get_default_metavar_for_optionalcCs|jjS)N)rr)r"rwr)r)r*r«Âsz.r))r"Únamesr))r"r*r>szAction._get_kwargscCsttdƒƒ‚dS)Nz.__call__() not defined)ÚNotImplementedErrorr‹)r"ÚparserÚ namespaceÚvaluesr¶r)r)r*Ú__call__LszAction.__call__)NNNNNFNN)N)rr/r0rSrr÷r)r)r)r*r õs6 cs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú _StoreActionNFc sT|dkrtdƒ‚|dk r,|tkr,tdtƒ‚tt|ƒj||||||||| | d� dS)Nrz„nargs for store actions must be > 0; if you have nothing to store, actions such as store true or store const may be more appropriatez nargs must be %r to supply const) r�rãr­rðrµrrÐr¦rsrÈ)r=r ÚsuperrørS) r"r�rãr­rðrµrrÐr¦rsrÈ)Ú __class__r)r*rSRs   z_StoreAction.__init__cCst||j|ƒdS)N)Úsetattrrã)r"rôrõrör¶r)r)r*r÷osz_StoreAction.__call__)NNNNNFNN)N)rr/r0rSr÷Ú __classcell__r)r))rúr*røPsrøcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú_StoreConstActionNFc s"tt|ƒj||d||||d�dS)Nr)r�rãr­rðrµr¦rs)rùrýrS)r"r�rãrðrµr¦rsrÈ)rúr)r*rSus z_StoreConstAction.__init__cCst||j|jƒdS)N)rûrãrð)r"rôrõrör¶r)r)r*r÷†sz_StoreConstAction.__call__)NFNN)N)rr/r0rSr÷rür)r))rúr*rýss  rýcseZdZd‡fdd„ Z‡ZS)Ú_StoreTrueActionFNcs tt|ƒj||d|||d�dS)NT)r�rãrðrµr¦rs)rùrþrS)r"r�rãrµr¦rs)rúr)r*rSŒs z_StoreTrueAction.__init__)FFN)rr/r0rSrür)r))rúr*rþŠsrþcseZdZd‡fdd„ Z‡ZS)Ú_StoreFalseActionTFNcs tt|ƒj||d|||d�dS)NF)r�rãrðrµr¦rs)rùrÿrS)r"r�rãrµr¦rs)rúr)r*rS�s z_StoreFalseAction.__init__)TFN)rr/r0rSrür)r))rúr*rÿ›srÿcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú _AppendActionNFc sT|dkrtdƒ‚|dk r,|tkr,tdtƒ‚tt|ƒj||||||||| | d� dS)Nrz‹nargs for append actions must be > 0; if arg strings are not supplying the value to append, the append const action may be more appropriatez nargs must be %r to supply const) r�rãr­rðrµrrÐr¦rsrÈ)r=r rùrrS) r"r�rãr­rðrµrrÐr¦rsrÈ)rúr)r*rS®s   z_AppendAction.__init__cCs2t||jdƒ}t|ƒ}| |¡t||j|ƒdS)N)rñrãr3rrû)r"rôrõrör¶r.r)r)r*r÷Ës z_AppendAction.__call__)NNNNNFNN)N)rr/r0rSr÷rür)r))rúr*r¬srcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú_AppendConstActionNFc s$tt|ƒj||d|||||d�dS)Nr)r�rãr­rðrµr¦rsrÈ)rùrrS)r"r�rãrðrµr¦rsrÈ)rúr)r*rSÔs z_AppendConstAction.__init__cCs4t||jdƒ}t|ƒ}| |j¡t||j|ƒdS)N)rñrãr3rrðrû)r"rôrõrör¶r.r)r)r*r÷æs z_AppendConstAction.__call__)NFNN)N)rr/r0rSr÷rür)r))rúr*rÒs  rcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú _CountActionNFcs tt|ƒj||d|||d�dS)Nr)r�rãr­rµr¦rs)rùrrS)r"r�rãrµr¦rs)rúr)r*rSïs z_CountAction.__init__cCs0t||jdƒ}|dkrd}t||j|dƒdS)NrrT)rñrãrû)r"rôrõrör¶Úcountr)r)r*r÷ýsz_CountAction.__call__)NFN)N)rr/r0rSr÷rür)r))rúr*rís rcs.eZdZeedf‡fdd„ Zddd„Z‡ZS)Ú _HelpActionNcstt|ƒj|||d|d�dS)Nr)r�rãrµr­rs)rùrrS)r"r�rãrµrs)rúr)r*rSs  z_HelpAction.__init__cCs| ¡| ¡dS)N)Ú print_helpÚexit)r"rôrõrör¶r)r)r*r÷sz_HelpAction.__call__)N)rr/r0rrSr÷rür)r))rúr*rsrcs0eZdZdeedf‡fdd„ Zddd„Z‡ZS)Ú_VersionActionNz&show program's version number and exitcs$tt|ƒj|||d|d�||_dS)Nr)r�rãrµr­rs)rùrrSÚversion)r"r�rrãrµrs)rúr)r*rSs z_VersionAction.__init__cCsD|j}|dkr|j}| ¡}| |¡| | ¡tj¡| ¡dS)N)rÚ_get_formatterrjÚ_print_messagercÚ_sysÚstdoutr)r"rôrõrör¶rrWr)r)r*r÷'s z_VersionAction.__call__)N)rr/r0rrSr÷rür)r))rúr*rs  rcsPeZdZGdd„deƒZedddf‡fdd„ Zdd„Zd d „Zd d d „Z ‡Z S)Ú_SubParsersActioncseZdZ‡fdd„Z‡ZS)z&_SubParsersAction._ChoicesPseudoActioncs@|}}|r|dd |¡7}ttj|ƒ}|jg|||d�dS)Nz (%s)z, )r�rãrsrÈ)r!rùr Ú_ChoicesPseudoActionrS)r"r'ÚaliasesrsrÈrãÚsup)rúr)r*rS5s   z/_SubParsersAction._ChoicesPseudoAction.__init__)rr/r0rSrür)r))rúr*r3srFNc s<||_||_i|_g|_tt|ƒj||t|j|||d�dS)N)r�rãr­rÐr¦rsrÈ)Ú _prog_prefixÚ _parser_classÚ_name_parser_mapÚ_choices_actionsrùr rSr)r"r�rOÚ parser_classrãr¦rsrÈ)rúr)r*rS=s  z_SubParsersAction.__init__cKsŠ| d¡dkr d|j|f|d<| dd¡}d|krX| d¡}| |||¡}|j |¡|jf|Ž}||j|<x|D]}||j|<qtW|S)NrOz%s %srr)rs)r©rrªrrrrr)r"r'ÚkwargsrrsÚ choice_actionrôÚaliasr)r)r*Ú add_parserTs      z_SubParsersAction.add_parsercCs|jS)N)r)r"r)r)r*rÛksz!_SubParsersAction._get_subactionsc CsÖ|d}|dd…}|jtk r,t||j|ƒy|j|}Wn<tk rv|d |j¡dœ}tdƒ|}t||ƒ‚YnX| |d¡\} }x$t | ƒ  ¡D]\} } t|| | ƒq–W|rÒt |ƒ  t g¡t |t ƒ |¡dS)NrrTz, )Ú parser_namerÐz5unknown parser %(parser_name)r (choices: %(choices)s))rãrrûrr<r!r‹rÚparse_known_argsrÖr.Ú setdefaultÚ_UNRECOGNIZED_ARGS_ATTRrñr�) r"rôrõrör¶rr$r\ÚmsgÚ subnamespaceÚkeyr(r)r)r*r÷ns"    z_SubParsersAction.__call__)N) rr/r0r rrrSrrÛr÷rür)r))rúr*r 1sr c@s&eZdZd dd„Zdd„Zdd „ZdS) rÚrrŸNcCs||_||_||_||_dS)N)Ú_modeÚ_bufsizeÚ _encodingÚ_errors)r"ÚmodeÚbufsizeÚencodingÚerrorsr)r)r*rS¤szFileType.__init__c Cs–|dkr>d|jkrtjSd|jkr(tjStdƒ|j}t|ƒ‚yt||j|j|j|j ƒSt k r�}ztdƒ}t |||fƒ‚Wdd}~XYnXdS)Nú-r!Úwzargument "-" with mode %rzcan't open '%s': %s) r"r Ústdinr r‹r=r¸r#r$r%ÚOSErrorr)r"ÚstringrÚerîr)r)r*r÷ªs  zFileType.__call__cCsT|j|jf}d|jfd|jfg}d dd„|Dƒdd„|Dƒ¡}dt|ƒj|fS)Nr(r)z, cSsg|]}|dkrt|ƒ‘qS)rŸ)r)rZr&r)r)r*r]Àsz%FileType.__repr__..cSs$g|]\}}|dk rd||f‘qS)Nz%s=%rr))rZÚkwr&r)r)r*r]Ász%s(%s))r"r#r$r%r!rr)r"r\rÚargs_strr)r)r*r+½s  zFileType.__repr__)r!rŸNN)rr/r0rSr÷r+r)r)r)r*r“s c@s$eZdZdd„Zdd„Zdd„ZdS)r cKs"x|D]}t||||ƒqWdS)N)rû)r"rr'r)r)r*rSÐs zNamespace.__init__cCst|tƒstSt|ƒt|ƒkS)N)rÌr ÚNotImplementedrÖ)r"Úotherr)r)r*Ú__eq__Ôs zNamespace.__eq__cCs ||jkS)N)r-)r"r r)r)r*Ú __contains__ÙszNamespace.__contains__N)rr/r0rSr4r5r)r)r)r*r Éscs¨eZdZ‡fdd„Zdd„Zd&dd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zd'dd„Zdd„Zd d!„Zd"d#„Zd$d%„Z‡ZS)(Ú_ActionsContainercstt|ƒ ¡||_||_||_||_i|_| ddt ¡| ddt ¡| ddt ¡| ddt ¡| ddt ¡| ddt ¡| ddt¡| ddt¡| dd t¡| dd t¡| dd t¡| ¡g|_i|_g|_g|_i|_t d ¡|_g|_dS) NrwÚstoreÚ store_constÚ store_trueÚ store_falserÚ append_constrrsrÚparsersz^-\d+$|^-\d*\.\d+$)rùr6rSÚ descriptionÚargument_defaultÚ prefix_charsÚconflict_handlerÚ _registriesÚregisterrørýrþrÿrrrrrr Ú _get_handlerÚ_actionsÚ_option_string_actionsÚ_action_groupsÚ_mutually_exclusive_groupsÚ _defaultsrJrKÚ_negative_number_matcherÚ_has_negative_number_optionals)r"r=r?r>r@)rúr)r*rSßs2 z_ActionsContainer.__init__cCs|j |i¡}|||<dS)N)rAr)r"Ú registry_namer(råÚregistryr)r)r*rBsz_ActionsContainer.registerNcCs|j| ||¡S)N)rAr©)r"rKr(rµr)r)r*Ú _registry_getsz_ActionsContainer._registry_getcKs6|j |¡x$|jD]}|j|kr||j|_qWdS)N)rHÚupdaterDrãrµ)r"rrwr)r)r*Ú set_defaultss   z_ActionsContainer.set_defaultscCs8x(|jD]}|j|kr|jdk r|jSqW|j |d¡S)N)rDrãrµrHr©)r"rãrwr)r)r*Ú get_default&s  z_ActionsContainer.get_defaultcOs.|j}|r&t|ƒdkrH|dd|krH|r:d|kr:tdƒ‚|j||Ž}n |j||Ž}d|kr’|d}||jkr~|j||d<n|jdk r’|j|d<| |¡}t|ƒs²td|fƒ‚|f|Ž}|  d|j |j ¡}t|ƒsätd|fƒ‚t |d ƒ�r$y|  ¡  |d¡Wntk �r"td ƒ‚YnX| |¡S) NrTrrãz+dest supplied twice for positional argumentrµzunknown action "%s"rz%r is not callabler z,length of metavar tuple does not match nargs)r?rqr=Ú_get_positional_kwargsÚ_get_optional_kwargsrHr>Ú_pop_action_classÚcallablerMrr×r r¬Ú TypeErrorÚ _add_action)r"r\rÚcharsrãÚ action_classrwÚ type_funcr)r)r*r}0s2          z_ActionsContainer.add_argumentcOs t|f|ž|Ž}|j |¡|S)N)Ú_ArgumentGrouprFr)r"r\rr±r)r)r*Úadd_argument_group_s z$_ActionsContainer.add_argument_groupcKst|f|Ž}|j |¡|S)N)Ú_MutuallyExclusiveGrouprGr)r"rr±r)r)r*Úadd_mutually_exclusive_groupds  z._ActionsContainer.add_mutually_exclusive_groupcCsh| |¡|j |¡||_x|jD]}||j|<q$Wx,|jD]"}|j |¡r>|js>|j d¡q>W|S)NT) Ú_check_conflictrDrÚ containerr�rErIÚmatchrJ)r"rwr¶r)r)r*rVis     z_ActionsContainer._add_actioncCs|j |¡dS)N)rDÚremove)r"rwr)r)r*Ú_remove_action~sz _ActionsContainer._remove_actioncCsòi}x8|jD].}|j|kr0tdƒ}t||jƒ‚|||j<q Wi}xR|jD]H}|j|krt|j|j|j|jd�||j<x|jD]}||j||<q|WqJWx4|jD]*}|j |j d�}x|jD] }|||<q¸WqžWx |j D]}|  ||¡  |¡qÔWdS)Nz.cannot merge actions - two groups are named %r)Útitler=r@)r¦)rFrcr‹r=r[r=r@r¤rGr]r¦rDr©rV)r"r_Útitle_group_mapr±rÚ group_maprwÚ mutex_groupr)r)r*Ú_add_container_actions�s,         z(_ActionsContainer._add_container_actionscKs^d|krtdƒ}t|ƒ‚| d¡ttgkr2d|d<| d¡tkrPd|krPd|d<t||gd�S)Nr¦z1'required' is an invalid argument for positionalsr­Trµ)rãr�)r‹rUr©r rrŒ)r"rãrrr)r)r*rQ©sz(_ActionsContainer._get_positional_kwargsc Osèg}g}xv|D]n}|d|jkr@||jdœ}tdƒ}t||ƒ‚| |¡|d|jkrt|ƒdkr|d|jkr| |¡qW| dd¡}|dkrÚ|r¢|d}n|d}| |j¡}|sÎtdƒ}t||ƒ‚| dd¡}t|||d �S) Nr)Úoptionr?zNinvalid option string %(option)r: must start with a character %(prefix_chars)rrTrãz%dest= is required for options like %rr*r‹)rãr�) r?r‹r=rrqrªÚlstripÚreplacerŒ) r"r\rr�Úlong_option_stringsr¶rrãÚdest_option_stringr)r)r*rR¹s0          z&_ActionsContainer._get_optional_kwargscCs| d|¡}| d||¡S)Nrw)rªrM)r"rrµrwr)r)r*rSÝs z#_ActionsContainer._pop_action_classcCsDd|j}y t||ƒStk r>tdƒ}t||jƒ‚YnXdS)Nz_handle_conflict_%sz%invalid conflict_resolution value: %r)r@rñrÜr‹r=)r"Úhandler_func_namerr)r)r*rCás   z_ActionsContainer._get_handlercCsPg}x0|jD]&}||jkr |j|}| ||f¡q W|rL| ¡}|||ƒdS)N)r�rErrC)r"rwÚconfl_optionalsr¶Úconfl_optionalr@r)r)r*r^ês   z!_ActionsContainer._check_conflictcCs6tddt|ƒƒ}d dd„|Dƒ¡}t|||ƒ‚dS)Nzconflicting option string: %szconflicting option strings: %sz, cSsg|] \}}|‘qSr)r))rZr¶rwr)r)r*r]üsz<_ActionsContainer._handle_conflict_error..)rrqr!r)r"rwÚconflicting_actionsrîÚconflict_stringr)r)r*Ú_handle_conflict_errorøs    z(_ActionsContainer._handle_conflict_errorcCsBx<|D]4\}}|j |¡|j |d¡|js|j |¡qWdS)N)r�rarErªr_rb)r"rwrpr¶r)r)r*Ú_handle_conflict_resolves  z*_ActionsContainer._handle_conflict_resolve)N)N)rr/r0rSrBrMrOrPr}r[r]rVrbrgrQrRrSrCr^rrrsrür)r))rúr*r6Ýs$ 4   /($   r6cs6eZdZd‡fdd„ Z‡fdd„Z‡fdd„Z‡ZS) rZNc sˆ|j}|d|jƒ|d|jƒ|d|jƒtt|ƒj}|fd|i|—Ž||_g|_|j |_ |j |_ |j |_ |j |_ |j |_ |j|_dS)Nr@r?r>r=)rr@r?r>rùrZrSrcr¤rArDrErHrJrG)r"r_rcr=rrNÚ super_init)rúr)r*rSs    z_ArgumentGroup.__init__cs tt|ƒ |¡}|j |¡|S)N)rùrZrVr¤r)r"rw)rúr)r*rV(s z_ArgumentGroup._add_actioncs tt|ƒ |¡|j |¡dS)N)rùrZrbr¤ra)r"rw)rúr)r*rb-sz_ArgumentGroup._remove_action)NN)rr/r0rSrVrbrür)r))rúr*rZs rZcs.eZdZd‡fdd„ Zdd„Zdd„Z‡ZS) r\Fcs tt|ƒ |¡||_||_dS)N)rùr\rSr¦Ú _container)r"r_r¦)rúr)r*rS4sz _MutuallyExclusiveGroup.__init__cCs2|jrtdƒ}t|ƒ‚|j |¡}|j |¡|S)Nz-mutually exclusive arguments must be optional)r¦r‹r=rurVr¤r)r"rwrr)r)r*rV9s   z#_MutuallyExclusiveGroup._add_actioncCs|j |¡|j |¡dS)N)rurbr¤ra)r"rwr)r)r*rbAs z&_MutuallyExclusiveGroup._remove_action)F)rr/r0rSrVrbrür)r))rúr*r\2sr\c s&eZdZddddgeddddddf ‡fdd„ Zdd„Zd d „Zd d „Zd d„Zdd„Z d@dd„Z dAdd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„ZdBd%d&„ZdCd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„ZdDd5d6„ZdEd7d8„ZdFd9d:„ZdGdd?„Z ‡Z!S)HrNr*ÚerrorTc  s&tt|ƒj} | ||| | d�|dkr6tj tjd¡}||_||_ ||_ ||_ ||_ | |_ | |_|j}|tdƒƒ|_|tdƒƒ|_d|_dd„}| dd|¡d|krªdn|d}|j rÜ|j|d |d d d ttd ƒd �xD|D]<}| |¡y |j}Wntk �rYqâX|j |¡qâWdS)N)r=r?r>r@rzpositional argumentszoptional argumentscSs|S)Nr))r.r)r)r*Úidentitysz)ArgumentParser.__init__..identityrr*Úhr4rszshow this help message and exit)rwrµrs)rùrrSr:ÚpathÚbasenamer ÚargvrOrlÚepilogÚformatter_classÚfromfile_prefix_charsÚadd_helpÚ allow_abbrevr[r‹Ú _positionalsÚ _optionalsÚ _subparsersrBr}rrgrHrÜrN)r"rOrlr=r|Úparentsr}r?r~r>r@rr€Ú superinitÚ add_grouprwÚdefault_prefixrXÚdefaults)rúr)r*rSYsB     zArgumentParser.__init__cs"ddddddg}‡fdd„|DƒS) NrOrlr=r}r@rcsg|]}|tˆ|ƒf‘qSr))rñ)rZr')r"r)r*r]¢sz.ArgumentParser._get_kwargs..r))r"ròr))r"r*r™szArgumentParser._get_kwargsc Ksä|jdk r| tdƒ¡| dt|ƒ¡d|ks8d|krht| dd¡ƒ}t| dd¡ƒ}| ||¡|_n|j|_| d¡dkr¶|  ¡}|  ¡}|j }|  |j ||d¡| ¡ ¡|d<| |d¡}|fd gi|—Ž}|j |¡|S) Nz(cannot have multiple subparser argumentsrrcr=Ú subcommandsrOr^r<r�)rƒrvr‹rrrªr[r�r©r Ú_get_positional_actionsrGrprlrcr€rSrV) r"rrcr=rWr’rnÚ parsers_classrwr)r)r*Úadd_subparsers§s$   zArgumentParser.add_subparserscCs$|jr|j |¡n |j |¡|S)N)r�r‚rVr�)r"rwr)r)r*rVÆs zArgumentParser._add_actioncCsdd„|jDƒS)NcSsg|]}|jr|‘qSr))r�)rZrwr)r)r*r]Îsz8ArgumentParser._get_optional_actions..)rD)r"r)r)r*Ú_get_optional_actionsÍsz$ArgumentParser._get_optional_actionscCsdd„|jDƒS)NcSsg|]}|js|‘qSr))r�)rZrwr)r)r*r]Ósz:ArgumentParser._get_positional_actions..)rD)r"r)r)r*rŠÒsz&ArgumentParser._get_positional_actionscCs4| ||¡\}}|r0tdƒ}| |d |¡¡|S)Nzunrecognized arguments: %srƒ)rr‹rvr!)r"r\rõr{rr)r)r*Ú parse_argsÚs zArgumentParser.parse_argscCs |dkrtjdd…}nt|ƒ}|dkr.tƒ}x>|jD]4}|jtk r6t||jƒs6|jtk r6t ||j|jƒq6Wx*|j D] }t||ƒsvt |||j |ƒqvWy<|  ||¡\}}t|t ƒrÐ|  t|t ƒ¡t|t ƒ||fStk �rt ¡d}| t|ƒ¡YnXdS)NrT)r r{r1r rDrãrr×rµrûrHÚ_parse_known_argsrr�rñÚdelattrrÚexc_inforvrÉ)r"r\rõrwrãÚerrr)r)r*rás,         zArgumentParser.parse_known_argscs"ˆ jdk rˆ  ˆ¡‰i‰x`ˆ jD]V}|j}xJt|jƒD]<\}}ˆ |g¡}| |d|…¡| ||dd…¡q6Wq Wi‰g}tˆƒ} xnt| ƒD]b\}} | dkrÈ| d¡xF| D]} | d¡q´Wq”ˆ   | ¡} | dkràd} n | ˆ|<d} | | ¡q”Wd  |¡‰t ƒ‰t ƒ‰d‡‡‡‡‡ fdd„ ‰ ‡‡‡‡‡ ‡ fd d „} ˆ   ¡‰‡‡‡‡ ‡ fd d „}g‰d ‰ ˆ�rpt ˆƒ}nd}x|ˆ |k�rðt‡ fdd„ˆDƒƒ}ˆ |k�rÀ|ˆ ƒ}|ˆ k�r¼|‰ �qvn|‰ ˆ ˆk�r䈈 |…}ˆ |¡|‰ | ˆ ƒ‰ �qvW|ˆ ƒ}ˆ ˆ|d…¡g}x†ˆ jD]|}|ˆk�r|j�r>| t|ƒ¡nT|jdk �rt|jtƒ�rtˆ|jƒ�r|jtˆ|jƒk�rtˆ|jˆ  ||j¡ƒ�qW|�r¶ˆ  tdƒd  |¡¡xbˆ jD]X}|j�r¾xH|jD]}|ˆk�rÒP�qÒWdd„|jDƒ}tdƒ}ˆ  |d  |¡¡�q¾WˆˆfS)NrTz--r*ÚAÚOr^cs€ˆ |¡ˆ ||¡}||jk rfˆ |¡x:ˆ |g¡D]*}|ˆkr8tdƒ}t|ƒ}t|||ƒ‚q8W|tk r||ˆˆ||ƒdS)Nznot allowed with argument %s)r¥Ú _get_valuesrµr©r‹rìrr)rwÚargument_stringsr¶Úargument_valuesÚconflict_actionrÚ action_name)Úaction_conflictsrõÚ seen_actionsÚseen_non_default_actionsr"r)r*Ú take_action3s    z5ArgumentParser._parse_known_args..take_actioncs„ˆ|}|\}}}ˆj}g}�x>|dkr>ˆ ˆ|¡|dS|dk �r||dƒ}ˆj}|dkrÔ|d|krÔ| |g|f¡|d} | |d}|dd…pžd} ˆj} || kr¼| |}| }ntdƒ} t|| |ƒ‚n@|dkrþ|d} |g}| |||f¡Pntdƒ} t|| |ƒ‚q |d}ˆ|d…}|||ƒ}||} ˆ|| …}| |||f¡Pq Wx |D]\}}}ˆ|||ƒ�qdW| S)NrTr“rzignored explicit argument %r)Ú_match_argumentrr?rEr‹r)Ú start_indexÚ option_tuplerwr¶Ú explicit_argÚmatch_argumentÚ action_tuplesÚ arg_countrWÚcharÚnew_explicit_argÚ optionals_maprÚstopr\r²Úselected_patterns)r$Úarg_strings_patternÚextrasÚoption_string_indicesr"r�r)r*Úconsume_optionalHsN       z:ArgumentParser._parse_known_args..consume_optionalcsrˆj}ˆ|d…}|ˆ|ƒ}x8tˆ|ƒD]*\}}ˆ|||…}||7}ˆ||ƒq(Wˆt|ƒd…ˆdd…<|S)N)Ú_match_arguments_partialÚziprq)rŸÚ match_partialÚselected_patternÚ arg_countsrwr¤r\)r$rªr’r"r�r)r*Úconsume_positionals•s  z=ArgumentParser._parse_known_args..consume_positionalsrrŸcsg|]}|ˆkr|‘qSr)r))rZr£)rŸr)r*r]³sz4ArgumentParser._parse_known_args..z(the following arguments are required: %sz, cSsg|]}|jtk rt|ƒ‘qSr))rsrrì)rZrwr)r)r*r]ñsz#one of the arguments %s is requiredrƒ)N)r~Ú_read_args_from_filesrGr¤r¨rr�ÚiterrÚ_parse_optionalr!r¢rŠrBrArDr¦rìrµrÌrÉr×rãrñrûÚ _get_valuervr‹)r"r$rõrfr¯r´Ú mutex_actionÚ conflictsÚarg_string_pattern_partsÚarg_strings_iterÚ arg_stringr Úpatternr­r³Úmax_option_string_indexÚnext_option_string_indexÚpositionals_end_indexÚstringsÚ stop_indexÚrequired_actionsrwr±ròrr)) ršr$rªr«rõr¬r’r›rœr"rŸr�r*r�s˜        J                 z ArgumentParser._parse_known_argsc CsÐg}xÆ|D]¾}|r |d|jkr,| |¡q ylt|dd…ƒ�R}g}x2| ¡ ¡D]"}x| |¡D]}| |¡qbWqRW| |¡}| |¡WdQRXWq tk rÆt   ¡d}|  t |ƒ¡Yq Xq W|S)NrrT) r~rr¸ÚreadrèÚconvert_arg_line_to_argsr´r�r-r r‘rvrÉ)r"r$Únew_arg_stringsr¼Ú args_fileÚarg_liner&r’r)r)r*r´ús     z$ArgumentParser._read_args_from_filescCs|gS)Nr))r"rÈr)r)r*rÅsz'ArgumentParser.convert_arg_line_to_argscCsz| |¡}t ||¡}|dkrldtdƒttdƒttdƒi}| |j¡}|dkrbtdd|jƒ|j}t ||ƒ‚t |  d¡ƒS)Nzexpected one argumentzexpected at most one argumentzexpected at least one argumentzexpected %s argumentzexpected %s argumentsrT) Ú_get_nargs_patternrJr`r‹r r r©r­rrrqr±)r"rwrªÚ nargs_patternr`Ú nargs_errorsrr)r)r*ržs     zArgumentParser._match_argumentcstg}xjtt|ƒddƒD]V}|d|…}d ‡fdd„|Dƒ¡}t ||¡}|dk r| dd„| ¡Dƒ¡PqW|S)NrrŸr^csg|]}ˆ |¡‘qSr))rÉ)rZrw)r"r)r*r]3sz;ArgumentParser._match_arguments_partial..cSsg|] }t|ƒ‘qSr))rq)rZr.r)r)r*r]7s)r§rqr!rJr`r�rn)r"rmrªrÏr´Ú actions_slicer½r`r))r"r*r®-s   z'ArgumentParser._match_arguments_partialc Cs|sdS|d|jkrdS||jkr8|j|}||dfSt|ƒdkrHdSd|kr~| dd¡\}}||jkr~|j|}|||fS|jræ| |¡}t|ƒdkrÐd dd„|Dƒ¡}||dœ}tdƒ}| ||¡nt|ƒdkræ|\} | S|j   |¡rü|j südSd |k�r dSd|dfS) NrrTú=z, cSsg|]\}}}|‘qSr)r))rZrwr¶r¡r)r)r*r]]sz2ArgumentParser._parse_optional..)rhÚmatchesz4ambiguous option: %(option)s could match %(matches)srƒ) r?rErqÚsplitr€Ú_get_option_tuplesr!r‹rvrIr`rJ) r"r¼rwr¶r¡Ú option_tuplesÚoptionsr\rr r)r)r*r¶=s>               zArgumentParser._parse_optionalc Cs2g}|j}|d|kr~|d|kr~d|kr<| dd¡\}}n|}d}xè|jD],}| |¡rL|j|}|||f}| |¡qLWn°|d|k�r|d|k�r|}d}|dd…}|dd…} xr|jD]T}||krî|j|}||| f}| |¡qÂ| |¡rÂ|j|}|||f}| |¡qÂWn| tdƒ|¡|S)NrrTrÍr4zunexpected option string: %s)r?rÏrEÚ startswithrrvr‹) r"r¶rÏrWÚ option_prefixr¡rwrÃÚshort_option_prefixÚshort_explicit_argr)r)r*rÐxs8             z!ArgumentParser._get_option_tuplescCsœ|j}|dkrd}nf|tkr"d}nX|tkr0d}nJ|tkr>d}n<|tkrLd}n.|tkrZd}n |tkrhd}ndd  d |¡}|jr˜|  d d ¡}|  d d ¡}|S) Nz(-*A-*)z(-*A?-*)z (-*[A-]*)z (-*A[A-]*)z([-AO]*)z (-*A[-AO]*)z(-*-*)z(-*%s-*)z-*r“r^r*) r­r rr rrrr!r�rj)r"rwr­rÊr)r)r*rɤs(  z!ArgumentParser._get_nargs_patterncCs4| ||¡\}}|r0tdƒ}| |d |¡¡|S)Nzunrecognized arguments: %srƒ)Úparse_known_intermixed_argsr‹rvr!)r"r\rõr{rr)r)r*Úparse_intermixed_argsÕs z$ArgumentParser.parse_intermixed_argsc sÈ| ¡‰dd„ˆDƒ}|r,td|djƒ‚‡fdd„|jDƒrHtdƒ‚�zl|j}z®|jdkrp| ¡dd…|_x(ˆD] }|j|_t|_|j|_ t|_qvW|  ||¡\}}xRˆD]J}t ||j ƒr°t ||j ƒgkr°ddlm}|d |j |fƒt||j ƒq°WWdxˆD]}|j|_|j |_�qWX| ¡}zRx|D]}|j|_d |_�q4Wx|jD]} | j| _d | _�qTW|  ||¡\}} Wdx|D]}|j|_�q†Wx|jD]} | j| _�q WXWd||_X|| fS) NcSsg|]}|jttgkr|‘qSr))r­rr)rZrwr)r)r*r]êsz>ArgumentParser.parse_known_intermixed_args..z3parse_intermixed_args: positional arg with nargs=%srcs&g|]}|jD]}|ˆkr|j‘qqSr))r¤rã)rZr±rw)r’r)r*r]ðsz;parse_intermixed_args: positional in mutuallyExclusiveGroupé)ÚwarnzDo not expect %s in %sF)rŠrUr­rGrlÚ format_usageÚ save_nargsrrµÚ save_defaultrr×rãrñÚwarningsrÚr�r�r¦Ú save_required) r"r\rõÚaÚ save_usagerwÚremaining_argsrÚr‘r±r«r))r’r*r×ÜsX               z*ArgumentParser.parse_known_intermixed_argscs†ˆjttgkr2y| d¡Wntk r0YnX|szˆjtkrzˆjrNˆj}nˆj}t |t ƒrvˆ  ˆ|¡}ˆ  ˆ|¡�n|s²ˆjt kr²ˆjs²ˆjdk r ˆj}n|}ˆ  ˆ|¡nÐt|ƒdkrìˆjdtgkrì|\}ˆ  ˆ|¡}ˆ  ˆ|¡n–ˆjtk�r‡‡fdd„|Dƒ}ntˆjtk�r@‡‡fdd„|Dƒ}ˆ  ˆ|d¡nBˆjtk�rRt}n0‡‡fdd„|Dƒ}x|D]}ˆ  ˆ|¡�qlW|S)Nz--rTcsg|]}ˆ ˆ|¡‘qSr))r·)rZÚv)rwr"r)r*r]M sz.ArgumentParser._get_values..csg|]}ˆ ˆ|¡‘qSr))r·)rZrã)rwr"r)r*r]Q srcsg|]}ˆ ˆ|¡‘qSr))r·)rZrã)rwr"r)r*r]Z s)r­rrrar=r r�rðrµrÌrÉr·Ú _check_valuerrqr)r"rwr$r(r¼rãr))rwr"r*r•) sB        zArgumentParser._get_valuesc CsÎ| d|j|j¡}t|ƒs0tdƒ}t|||ƒ‚y ||ƒ}WnŒtk r~t|jdt|jƒƒ}tt   ¡dƒ}t||ƒ‚YnLt t fk rÈt|jdt|jƒƒ}||dœ}tdƒ}t|||ƒ‚YnX|S)Nrz%r is not callablerrT)rr(z!invalid %(type)s value: %(value)r) rMrrTr‹rrrñrrÉr r‘rUr=)r"rwr¼rYrrÏr'r\r)r)r*r·a s   zArgumentParser._get_valuecCsF|jdk rB||jkrB|d tt|jƒ¡dœ}tdƒ}t|||ƒ‚dS)Nz, )r(rÐz3invalid choice: %(value)r (choose from %(choices)s))rÐr!Úmaprr‹r)r"rwr(r\rr)r)r*rä{ s zArgumentParser._check_valuecCs$| ¡}| |j|j|j¡| ¡S)N)r rprlrDrGrc)r"rWr)r)r*rÛ† s zArgumentParser.format_usagecCsx| ¡}| |j|j|j¡| |j¡x:|jD]0}| |j ¡| |j¡|  |j ¡|  ¡q0W| |j ¡| ¡S)N)r rprlrDrGrjr=rFrfrcr~r¤rgr|rc)r"rWÚ action_groupr)r)r*rcŒ s        zArgumentParser.format_helpcCs|j|jd�S)N)rO)r}rO)r"r)r)r*r £ szArgumentParser._get_formattercCs"|dkrtj}| | ¡|¡dS)N)r r r rÛ)r"Úfiler)r)r*Ú print_usage© szArgumentParser.print_usagecCs"|dkrtj}| | ¡|¡dS)N)r r r rc)r"rçr)r)r*r® szArgumentParser.print_helpcCs |r|dkrtj}| |¡dS)N)r ÚstderrÚwrite)r"rîrçr)r)r*r ³ szArgumentParser._print_messagercCs |r| |tj¡t |¡dS)N)r r rér)r"Ústatusrîr)r)r*r¼ szArgumentParser.exitcCs0| tj¡|j|dœ}| dtdƒ|¡dS)N)rOrîr4z%(prog)s: error: %(message)s )rèr rérOrr‹)r"rîr\r)r)r*rvÁ s  zArgumentParser.error)NN)NN)NN)NN)N)N)N)rN)"rr/r0rrSrrŒrVr�rŠrŽrr�r´rÅržr®r¶rÐrÉrØr×r•r·rärÛrcr rèrr rrvrür)r))rúr*rFsR4  #w;,1  M8    )/Ú __version__Ú__all__Úosr:ÚrerJÚsysr rr‹rrr rr rrrrårr3rrrrr rìÚ Exceptionrrr rørýrþrÿrrrrrr rr r6rZr\rr)r)r)r*Ú@sx{    [#&b65"