grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B €Çª¨9•ûÉã @s4dddddddddd d d g Zd d lmZd dlmZed dƒZdd„ZGdd„dƒZ d7dd„Z dd„Z Gdd„dƒZ d dl Z e  d¡jfdd„Zd8dd„Zdd„Zd9d"d„Zd#d$„Zd:d%d„Zd&d'„Zd;d*d „Zdefd+d„Zddefd,d-„Zd.Zd/Zd0Zd1ZGd2d „d eƒZ[ d3d„Z d4d5„Z!e"d6k�r0e!ƒdS)<Úget_close_matchesÚndiffÚrestoreÚSequenceMatcherÚDifferÚIS_CHARACTER_JUNKÚ IS_LINE_JUNKÚ context_diffÚ unified_diffÚ diff_bytesÚHtmlDiffÚMatché)Únlargest)Ú namedtupleza b sizecCs|rd||SdS)Ng@gð?©)ÚmatchesÚlengthrrú,/opt/alt/python37/lib64/python3.7/difflib.pyÚ_calculate_ratio&s rc@speZdZddd„Zdd„Zdd „Zd d „Zd d „Zdd„Zdd„Z dd„Z ddd„Z dd„Z dd„Z dd„ZdS)rNÚTcCs(||_d|_|_||_| ||¡dS)N)ÚisjunkÚaÚbÚautojunkÚset_seqs)ÚselfrrrrrrrÚ__init__—s; zSequenceMatcher.__init__cCs| |¡| |¡dS)N)Úset_seq1Úset_seq2)rrrrrrr×s zSequenceMatcher.set_seqscCs$||jkrdS||_d|_|_dS)N)rÚmatching_blocksÚopcodes)rrrrrrãs zSequenceMatcher.set_seq1cCs2||jkrdS||_d|_|_d|_| ¡dS)N)rrr Ú fullbcountÚ_SequenceMatcher__chain_b)rrrrrrýs   zSequenceMatcher.set_seq2c Csü|j}i|_}x*t|ƒD]\}}| |g¡}| |¡qWtƒ|_}|j}|rŠx"| ¡D]}||ƒr\|  |¡q\Wx|D] }||=q|Wtƒ|_ }t |ƒ} |j rø| dkrø| dd} x*|  ¡D]\}} t | ƒ| krÂ|  |¡qÂWx|D] }||=qêWdS)NéÈédé)rÚb2jÚ enumerateÚ setdefaultÚappendÚsetÚbjunkrÚkeysÚaddZbpopularÚlenrÚitems) rrr&ÚiÚeltÚindicesZjunkrZpopularÚnZntestZidxsrrrZ __chain_b)s,          zSequenceMatcher.__chain_bcCsJ|j|j|j|jjf\}}}}||d} } } i} g} x�t||ƒD]‚}| j}i}xn| ||| ¡D]Z}||krpqb||krzP||ddƒd}||<|| krb||d||d|} } } qbW|} qBWx`| |k�r(| |k�r(||| dƒ�s(|| d|| dk�r(| d| d| d} } } qÊWxV| | |k�r€| | |k�r€||| | ƒ�s€|| | || | k�r€| d7} �q,Wxb| |k�rä| |k�rä||| dƒ�rä|| d|| dk�rä| d| d| d} } } �q„WxV| | |k�r<| | |k�r<||| | ƒ�r<|| | || | k�r<| d} �qèWt| | | ƒS)Nr r%)rrr&r+Ú __contains__ÚrangeÚgetr )rÚaloÚahiÚbloÚbhirrr&ZisbjunkZbestiZbestjZbestsizeZj2lenZnothingr0Zj2lengetZnewj2lenÚjÚkrrrÚfind_longest_matchPsB8$  "z"SequenceMatcher.find_longest_matchcCs„|jdk r|jSt|jƒt|jƒ}}d|d|fg}g}x”|rÌ| ¡\}}}}| ||||¡\} } } } | r:| | ¡|| kr˜|| kr˜| || || f¡| | |kr:| | |kr:| | | || | |f¡q:W| ¡d} }}g}x^|D]V\}}}| ||k�r|||k�r||7}qì|�r2| | ||f¡|||} }}qìW|�r\| | ||f¡| ||df¡tt t j |ƒƒ|_|jS)Nr ) rr.rrÚpopr=r)ÚsortÚlistÚmapr Ú_make)rÚlaÚlbZqueuerr7r8r9r:r0r;r<ÚxÚi1Új1Zk1Z non_adjacentÚi2Új2Zk2rrrÚget_matching_blocks¾s8    z#SequenceMatcher.get_matching_blockscCs´|jdk r|jSd}}g|_}xŒ| ¡D]€\}}}d}||krP||krPd}n||kr^d}n ||krjd}|r‚| |||||f¡||||}}|r,| d||||f¡q,W|S)Nr rÚreplaceÚdeleteÚinsertÚequal)r rJr))rr0r;ZanswerÚaiÚbjÚsizeÚtagrrrÚ get_opcodess$  zSequenceMatcher.get_opcodeséc csr| ¡}|sdg}|dddkrZ|d\}}}}}|t|||ƒ|t|||ƒ|f|d<|dddkr¢|d\}}}}}||t|||ƒ|t|||ƒf|d<||}g} x’|D]Š\}}}}}|dk�r*|||k�r*|  ||t|||ƒ|t|||ƒf¡| Vg} t|||ƒt|||ƒ}}|  |||||f¡q´W| �rnt| ƒdk�rh| dddk�sn| VdS)N)rNr r%r r%r rNéÿÿÿÿr%)rSÚmaxÚminr)r.) rr3ZcodesrRrFrHrGrIÚnnÚgrouprrrÚget_grouped_opcodes<s(&&(&z#SequenceMatcher.get_grouped_opcodescCs0tdd„| ¡Dƒƒ}t|t|jƒt|jƒƒS)Ncss|]}|dVqdS)rUNr)Ú.0Ztriplerrrú „sz(SequenceMatcher.ratio..)ÚsumrJrr.rr)rrrrrÚrationszSequenceMatcher.ratiocCs²|jdkr8i|_}x"|jD]}| |d¡d||<qW|j}i}|jd}}xH|jD]>}||ƒrl||}n | |d¡}|d||<|dkrV|d}qVWt|t|jƒt|jƒƒS)Nr r%)r!rr6r4rrr.)rr!r1ZavailZavailhasrZnumbrrrÚ quick_ratio‡s         zSequenceMatcher.quick_ratiocCs*t|jƒt|jƒ}}tt||ƒ||ƒS)N)r.rrrrW)rrCrDrrrÚreal_quick_ratio¤sz SequenceMatcher.real_quick_ratio)NrrT)rT)Ú__name__Ú __module__Ú __qualname__rrrrr"r=rJrSrZr^r_r`rrrrr+sl @ ,'nG7 2rTç333333ã?cCs´|dkstd|fƒ‚d|kr*dks:ntd|fƒ‚g}tƒ}| |¡xL|D]D}| |¡| ¡|krT| ¡|krT| ¡|krT| | ¡|f¡qTWt||ƒ}dd„|DƒS)Nr zn must be > 0: %rggð?z cutoff must be in [0.0, 1.0]: %rcSsg|] \}}|‘qSrr)r[ZscorerErrrú Þsz%get_close_matches..) Ú ValueErrorrrrr`r_r^r)Ú _nlargest)ZwordZ possibilitiesr3ÚcutoffÚresultÚsrErrrr°s       cCs4dt|ƒ}}x ||kr.|||kr.|d7}qW|S)Nr r%)r.)ÚlineÚchr0r3rrrÚ_count_leadingàs  rmc@sFeZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dS)rNcCs||_||_dS)N)ÚlinejunkÚcharjunk)rrnrorrrrMszDiffer.__init__c cs²t|j||ƒ}xž| ¡D]’\}}}}}|dkrD| ||||||¡} n\|dkr^| d|||¡} nB|dkrx| d|||¡} n(|dkr’| d|||¡} ntd|fƒ‚| EdHqWdS) NrKrLú-rMú+rNú zunknown tag %r)rrnrSÚ_fancy_replaceÚ_dumprf) rrrÚcruncherrRr7r8r9r:ÚgrrrÚcomparedszDiffer.compareccs*x$t||ƒD]}d|||fVq WdS)Nz%s %s)r5)rrRrEÚloÚhir0rrrrt�sz Differ._dumpc csr||||kr2| d|||¡}| d|||¡}n | d|||¡}| d|||¡}x||fD]} | EdHq\WdS)Nrqrp)rt) rrr7r8rr9r:ÚfirstÚsecondrvrrrÚ_plain_replace’szDiffer._plain_replaceccsFd\}}t|jƒ} d\} } xžt||ƒD]�} || } |  | ¡xxt||ƒD]j}||}|| krp| dkrH|| } } qH|  |¡|  ¡|krH|  ¡|krH|  ¡|krH|  ¡|| }}}qHWq&W||krú| dkrè| ||||||¡EdHdS| | d}}}nd} |  ||||||¡EdH||||}}| dk�rd}}|   ||¡x´|   ¡D]¨\}}}}}||||}}|dk�r–|d|7}|d|7}nb|dk�r®|d|7}nJ|d k�rÆ|d |7}n2|d k�rê|d |7}|d |7}nt d |fƒ‚�qRW|  ||||¡EdHn d|V|  ||d|||d|¡EdHdS)N)g®Gáz®ç?gè?)NNgð?rrKú^rLrprMrqrNrrzunknown tag %rz r%)rror5rrr`r_r^r|Ú _fancy_helperrrSrfÚ_qformat)rrr7r8rr9r:Z best_ratiorhruZeqiZeqjr;rPr0rOZbest_iZbest_jZaeltZbeltÚatagsÚbtagsrRZai1Zai2Zbj1Zbj2rCrDrrrrs sX                zDiffer._fancy_replaceccsbg}||kr<||kr*| ||||||¡}qT| d|||¡}n||krT| d|||¡}|EdHdS)Nrprq)rsrt)rrr7r8rr9r:rvrrrr~þszDiffer._fancy_helperccsªtt|dƒt|dƒƒ}t|t|d|…dƒƒ}t|t|d|…dƒƒ}||d… ¡}||d… ¡}d|V|r†dd||fVd|V|r¦dd||fVdS)Nú rrz- z? %s%s z+ )rWrmÚrstrip)rZalineZbliner€r�Úcommonrrrr s    zDiffer._qformat)NN) rarbrcrrwrtr|rsr~rrrrrrïs^ )^ Nz \s*(?:#\s*)?$cCs ||ƒdk S)Nr)rkZpatrrrr>sú cCs||kS)Nr)rlZwsrrrrNscCs:|d}||}|dkr"d |¡S|s.|d8}d ||¡S)Nr%z{}z{},{})Úformat)ÚstartÚstopÚ beginningrrrrÚ_format_range_unifiedes rŠrÚ ccsht|||||||ƒd}�xHtd||ƒ |¡D�]0} |s€d}|rJd |¡nd} |r\d |¡nd} d || |¡Vd || |¡V| d| d} } t| d | d ƒ}t| d | d ƒ}d  |||¡Vx˜| D]�\}}}}}|dk�rx|||…D]}d|VqòWqÌ|dk�r2x |||…D]}d|V�qW|dkrÌx |||…D]}d|V�qHWqÌWq.WdS)NFTz {}rz --- {}{}{}z +++ {}{}{}r rUr%érTéz@@ -{} +{} @@{}rNrr>rLrKrp>rMrKrq)Ú _check_typesrrZr†rŠ)rrÚfromfileÚtofileÚ fromfiledateÚ tofiledater3ÚlinetermÚstartedrYÚfromdateÚtodaterzÚlastÚ file1_rangeÚ file2_rangerRrFrHrGrIrkrrrr ps0)  cCsB|d}||}|s|d8}|dkr.d |¡Sd |||d¡S)Nr%z{}z{},{})r†)r‡rˆr‰rrrrÚ_format_range_context¹s ršccsªt|||||||ƒtddddd�}d} �xztd||ƒ |¡D�]b} | s�d} |rZd |¡nd } |rld |¡nd } d  || |¡Vd  || |¡V| d | d } }d|Vt| d|dƒ}d ||¡Vtdd„| Dƒƒ�r&xD| D]<\}}}}}|dkræx$|||…D]}|||V�q WqæWt| d|dƒ}d ||¡Vtdd„| Dƒƒr>xH| D]@\}}}}}|dk�r^x$|||…D]}|||V�q„W�q^Wq>WdS)Nz+ z- z! z )rMrLrKrNFTz {}rz *** {}{}{}z --- {}{}{}r rUz***************r%rŒz *** {} ****{}css |]\}}}}}|dkVqdS)>rLrKNr)r[rRÚ_rrrr\szcontext_diff..rMrTr�z --- {} ----{}css |]\}}}}}|dkVqdS)>rMrKNr)r[rRr›rrrr\ srL)rŽÚdictrrZr†ršÚany)rrr�r�r‘r’r3r“Úprefixr”rYr•r–rzr—r˜rRrFrHr›rkr™rGrIrrrrÅs4,  cGsŠ|r0t|dtƒs0tdt|dƒj|dfƒ‚|r`t|dtƒs`tdt|dƒj|dfƒ‚x$|D]}t|tƒsftd|fƒ‚qfWdS)Nr z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r)Ú isinstanceÚstrÚ TypeErrorÚtypera)rrÚargsÚargrrrrŽs  rŽóó c cs‚dd„} tt| |ƒƒ}tt| |ƒƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}| |ƒ}|||||||||ƒ} x| D]} |  dd¡VqhWdS)Nc SsPy | dd¡Stk rJ}z dt|ƒj|f}t|ƒ|‚Wdd}~XYnXdS)NÚasciiÚsurrogateescapez(all arguments must be bytes, not %s (%r))ÚdecodeÚAttributeErrorr¢rar¡)rjÚerrÚmsgrrrr©-s  zdiff_bytes..decoder§r¨)r@rAÚencode) Zdfuncrrr�r�r‘r’r3r“r©Úlinesrkrrrr "s  cCst||ƒ ||¡S)N)rrw)rrrnrorrrr@s#c#sšddl}| d¡‰t||||ƒ‰ddgf‡fdd„ ‰‡‡fdd„‰‡fdd„}|ƒ}|dkrj|EdH�n,|d 7}d}�xddg|} } d } xR| d kràyt|ƒ\} } } Wntk r¾dSX| |}| | | f| |<| d 7} q�W| |kröd V|}n| }d} x.|�r,| |}| d 7} | |V|d 8}�qW|d }yDx>|�rvt|ƒ\} } } | �r^|d }n|d 8}| | | fV�q:WWqztk �r�dSXqzWdS) Nr z (\++|\-+|\^+)c sú||d7<|dkr2||| d¡dd…fS|dkrÄ| d¡| d¡}}g}|fdd„}ˆ ||¡xHt|ƒD]<\}\} } |d| …d||| | …d|| d…}qvW|dd…}n*| d¡dd…}|sÞd }d||d}|||fS) Nr%r rŒú?cSs&| | d¡d| ¡g¡| d¡S)Nr%r )r)rYÚspan)Z match_objectÚsub_inforrrÚrecord_sub_info°sz3_mdiff.._make_line..record_sub_infoúúrr)r>ÚsubÚreversed) r®Z format_keyÚsideZ num_linesÚtextZmarkersr±r²ÚkeyZbeginÚend)Ú change_rerrÚ _make_line�s   4z_mdiff.._make_linec3s€g}d\}}�xlx t|ƒdkr0| tˆdƒ¡qWd dd„|Dƒ¡}| d¡rX|}�nÄ| d¡r„ˆ|dd ƒˆ|dd ƒd fVq�n˜| d ¡r°|d 8}ˆ|d d ƒdd fVq�nl| d¡rÞˆ|d d ƒd}}|d d }}�n>| d¡�r ˆ|dd ƒˆ|dd ƒd fVq�n| d¡�r8ˆ|dd ƒˆ|dd ƒd fVqnä| d ¡�rd|d 8}ˆ|d d ƒdd fVqn¸| d¡�r�|d 7}dˆ|dd ƒd fVqnŒ| d¡�r¾dˆ|dd ƒ}}|d d }}n^| d¡�rê|d 7}dˆ|dd ƒd fVqn2| d¡�rˆ|dd…dd ƒˆ|dd ƒdfVqx|d k�r:|d 7}dV�qWx|d k�rZ|d 8}dV�q>W| d¡�rldS||d fVqWdS)N)r r r�ÚXrcSsg|] }|d‘qS)r r)r[rkrrrreÝsz2_mdiff.._line_iterator..z-?+?r¯r r%Tz--++rp)z--?+z--+z- z-+?z-?+z+--rq)z+ z+-rrF)N)rr‹T))rr‹NT)r.r)ÚnextÚjoinÚ startswith)r®Znum_blanks_pendingZnum_blanks_to_yieldrjÚ from_lineÚto_line)r¼Údiff_lines_iteratorrrÚ_line_iteratorÇsf           $     z_mdiff.._line_iteratorc3s¸ˆƒ}gg}}x¢xpt|ƒdks,t|ƒdkr‚yt|ƒ\}}}Wntk rRdSX|dk rj| ||f¡|dk r| ||f¡qW| d¡\}}| d¡\}}|||pª|fVqWdS)Nr )r.r¾Ú StopIterationr)r>)Z line_iteratorÚ fromlinesÚtolinesrÁrÂÚ found_diffZfromDiffZto_diff)rÄrrÚ_line_pair_iterators  z#_mdiff.._line_pair_iteratorr%F)NNN)ÚreÚcompilerr¾rÅ)rÆrÇÚcontextrnrorÊrÉZline_pair_iteratorZlines_to_writeÚindexZ contextLinesrÈrÁrÂr0r)rÄr¼r»rÃrÚ_mdiffesT" 8X !    rÎan %(table)s%(legend)s aH table.diff {font-family:Courier; border:medium;} .diff_header {background-color:#e0e0e0} td.diff_header {text-align:right} .diff_next {background-color:#c0c0c0} .diff_add {background-color:#aaffaa} .diff_chg {background-color:#ffff77} .diff_sub {background-color:#ffaaaa}aZ %(header_row)s %(data_rows)s
aõ
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op
c@s„eZdZeZeZeZeZdZdddefdd„Z dd d œd d „Z d d„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zddd„ZdS)r r éNcCs||_||_||_||_dS)N)Ú_tabsizeÚ _wrapcolumnÚ _linejunkÚ _charjunk)rÚtabsizeZ wrapcolumnrnrorrrrÁs zHtmlDiff.__init__rFézutf-8)Úcharsetc Cs:|jt|j|j|j||||||d�|d� |d¡ |¡S)N)rÌÚnumlines)ZstylesZlegendÚtablerÖÚxmlcharrefreplace)Ú_file_templaterœÚ_stylesÚ_legendÚ make_tabler­r©)rrÆrÇÚfromdescÚtodescrÌr×rÖrrrÚ make_fileÒs  zHtmlDiff.make_filecs8‡fdd„‰‡fdd„|Dƒ}‡fdd„|Dƒ}||fS)Ncs6| dd¡}| ˆj¡}| dd¡}| dd¡ d¡S)Nrrr³r‚r‹)rKÚ expandtabsrÐrƒ)rk)rrrÚ expand_tabs÷s   z2HtmlDiff._tab_newline_replace..expand_tabscsg|] }ˆ|ƒ‘qSrr)r[rk)rârrresz1HtmlDiff._tab_newline_replace..csg|] }ˆ|ƒ‘qSrr)r[rk)rârrresr)rrÆrÇr)rârrÚ_tab_newline_replaceís zHtmlDiff._tab_newline_replacec Cs|s| ||f¡dSt|ƒ}|j}||ksB|| d¡d|krT| ||f¡dSd}d}d}xd||krÄ||krÄ||dkr˜|d7}||}|d7}qb||dkr²|d7}d}qb|d7}|d7}qbW|d|…} ||d…} |rö| d} d|| } | || f¡| |d| ¡dS)Nr³rTr rr%r´ú>)r)r.rÑÚcountÚ _split_line) rZ data_listZline_numr¸rQrVr0r3ZmarkZline1Zline2rrrræs8        zHtmlDiff._split_linec cs¨x¢|D]š\}}}|dkr&|||fVq||\}}\}}gg} } | | ||¡| | ||¡x@| sh| rž| rx|  d¡}nd}| rŒ|  d¡}nd}|||fVq`WqWdS)Nr )rrr)rær>) rÚdiffsÚfromdataÚtodataÚflagZfromlineZfromtextZtolineZtotextÚfromlistÚtolistrrrÚ _line_wrapper;s      zHtmlDiff._line_wrapperc Cs–ggg}}}xz|D]r\}}}y4| |jd|f|žŽ¡| |jd|f|žŽ¡Wn(tk r|| d¡| d¡YnX| |¡qW|||fS)Nr r%)r)Ú _format_liner¡)rrçrërìÚflaglistrèrérêrrrÚ_collect_linesWs zHtmlDiff._collect_linescCsryd|}d|j||f}Wntk r6d}YnX| dd¡ dd¡ dd ¡}| d d ¡ ¡}d |||fS) Nz%dz id="%s%s"rú&z&räz>ú%s%s)Ú_prefixr¡rKrƒ)rr·rêZlinenumr¸Úidrrrrîls zHtmlDiff._format_linecCs0dtj}dtj}tjd7_||g|_dS)Nzfrom%d_zto%d_r%)r Ú_default_prefixró)rZ fromprefixÚtoprefixrrrÚ _make_prefixƒs  zHtmlDiff._make_prefixcCsø|jd}dgt|ƒ}dgt|ƒ}d\} } d} xbt|ƒD]V\} } | rŽ| s’d} | } td| |gƒ} d|| f|| <| d7} d|| f|| <qnFz2 No Differences Found z( Empty File z!fz#t)rór.r'rV)rrërìrïrÌr×röÚnext_idÚ next_hrefZnum_chgZ in_changer—r0rêrrrÚ_convert_flagsŽs:    zHtmlDiff._convert_flagsc CsV| ¡| ||¡\}}|r"|}nd}t||||j|jd�}|jrL| |¡}| |¡\} } } | | | | ||¡\} } } } } g}d}x`t t | ƒƒD]P}| |dkr²|dkrÞ|  d¡qŽ|  || || || || || |f¡qŽW|sì|�rddd|dd|f}nd}|j t d |¡||jd d �}| d d ¡ d d¡ dd¡ dd¡ dd¡S)N)rnrozV %s%s%s%s r z) z %s%s%s%sz!
z+%srr%)Z data_rowsÚ header_rowržz+zz-zz^zr´zr‚z )r÷rãrÎrÒrÓrÑrírðrúr5r.r)Ú_table_templaterœr¿rórK)rrÆrÇrÞrßrÌr×Z context_linesrçrërìrïrùrørjZfmtr0rûrØrrrrݽsH       zHtmlDiff.make_table)rrFrÕ)rrFrÕ)rarbrcrÚrÛrürÜrõrrràrãrærírðrîr÷rúrÝrrrrr «s$ 7 /ccsrydddœt|ƒ}Wn"tk r8td|ƒd‚YnXd|f}x*|D]"}|dd…|krH|dd…VqHWdS)Nz- z+ )r%rŒz)unknown delta choice (must be 1 or 2): %rz rŒ)ÚintÚKeyErrorrf)ZdeltaZwhichrRÚprefixesrkrrrr s cCsddl}ddl}| |¡S)Nr )ÚdoctestÚdifflibZtestmod)rrrrrÚ_test,srÚ__main__)rTrd)r…)rrrrrTr‹)rrrrrTr‹)r¥r¥r¥r¥rTr¦)#Ú__all__ÚheapqrrgÚ collectionsrZ _namedtupler rrrrmrrÊrËÚmatchrrrŠr ršrrŽr rrÎrÚrÛrürÜÚobjectr rrrarrrrÚs\     0O   H  K % !  a