PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  lYH @sdddddddddd d d g Zd d lmZd dlmZed dZddZGdddZ ddddZ ddZ GdddZ d dl Z e jdjddZdddZddZd d d d dd!d"dZd#d$Zd d d d dd!d%dZd&d'Zd(d(d(d(dd)d*d Zded+dZdded,d-Zd.Zd/Zd0Zd1ZGd2d d eZ[ d3dZ d4d5Z!e"d6kre!dS)7get_close_matchesndiffrestoreSequenceMatcherDifferIS_CHARACTER_JUNK IS_LINE_JUNK context_diff unified_diff diff_bytesHtmlDiffMatch)nlargest) namedtupleza b sizecCs|rd||SdS)Ng@g?)matcheslengthrr&/opt/python35/lib/python3.5/difflib.py_calculate_ratio&s rc@seZdZddddddZddZdd Zd d Zd d ZddZddZ ddZ dddZ ddZ ddZ ddZdS)rNTcCs6||_d|_|_||_|j||dS)N)isjunkabautojunkset_seqs)selfrrrrrrr__init__s;  zSequenceMatcher.__init__cCs|j||j|dS)N)set_seq1set_seq2)rrrrrrrs zSequenceMatcher.set_seqscCs0||jkrdS||_d|_|_dS)N)rmatching_blocksopcodes)rrrrrrs zSequenceMatcher.set_seq1cCsC||jkrdS||_d|_|_d|_|jdS)N)rrr fullbcount_SequenceMatcher__chain_b)rrrrrrs   zSequenceMatcher.set_seq2c CsP|j}i|_}x9t|D]+\}}|j|g}|j|q#Wt|_}|j}|rx-|jD]}||r~|j |q~Wx|D] }||=qWt|_ }t |} |j rL| dkrL| dd} x9|j D]+\}} t | | kr|j |qWx|D] }||=q;WdS)Nd)rb2j enumerate setdefaultappendsetbjunkrkeysaddZbpopularlenritems) rrr&ieltindicesZjunkrZpopularnZntestZidxsrrrZ __chain_b)s,        zSequenceMatcher.__chain_bcCs|j|j|j|jjf\}}}}||d} } } i} g} xt||D]}| j}i}x|j||| D]q}||krq||krP||ddd}||<|| kr||d||d|} } } qW|} q]Wxm| |krw| |krw||| d rw|| d|| dkrw| d| d| d} } } q Wx_| | |kr| | |kr||| |  r|| | || | kr| d7} q{Wxl| |krH| |krH||| drH|| d|| dkrH| d| d| d} } } qWx^| | |kr| | |kr||| | r|| | || | kr| d} qLWt| | | S)Nr r%)rrr&r+ __contains__rangegetr )raloahiblobhirrr&ZisbjunkZbestiZbestjZbestsizeZj2lenZnothingr0Zj2lengetZnewj2lenjkrrrfind_longest_matchPsB8-    ( $# $#z"SequenceMatcher.find_longest_matchcCs|jdk r|jSt|jt|j}}d|d|fg}g}x|r|j\}}}}|j||||\} } } } | rS|j| || kr|| kr|j|| || f| | |krS| | |krS|j| | || | |fqSW|jd} }}g}xt|D]l\}}}| ||kr|||kr||7}qD|r|j| ||f|||} }}qDW|r|j| ||f|j||dftt t j ||_|jS)Nr ) rr.rrpopr=r)sortlistmapr _make)rlalbqueuerr7r8r9r:r0r;r<xi1j1Zk1Z non_adjacenti2j2Zk2rrrget_matching_blockss8 %  %   z#SequenceMatcher.get_matching_blockscCs|jdk r|jSd}}g|_}x|jD]\}}}d}||krp||krpd}n'||krd}n||krd}|r|j|||||f||||}}|r:|jd||||fq:W|S)Nr rreplacedeleteinsertequal)r rKr))rr0r;Zansweraibjsizetagrrr get_opcodess$       zSequenceMatcher.get_opcodesc cs|j}|sdg}|dddkr{|d\}}}}}|t||||t||||f|d<|dddkr|d\}}}}}||t||||t|||f|d<||}g} x|D]\}}}}}|dkr|||kr| j||t||||t|||f| Vg} t|||t|||}}| j|||||fqW| rt| dko| dddk r| VdS)NrOr r%)rOr r%r r%rVrV)rTmaxminr)r.) rr3ZcodesrSrGrIrHrJnngrouprrrget_grouped_opcodes<s(  33 6' -z#SequenceMatcher.get_grouped_opcodescCsBtdd|jD}t|t|jt|jS)Ncss|]}|dVqdS)r%NrVr).0Ztriplerrr sz(SequenceMatcher.ratio..)sumrKrr.rr)rrrrrrationszSequenceMatcher.ratiocCs|jdkrJi|_}x+|jD] }|j|dd|| 0: %rgg?z cutoff must be in [0.0, 1.0]: %rcSsg|]\}}|qSrr)r\ZscorerFrrr s z%get_close_matches..) ValueErrorrrrrar`r_r) _nlargest)ZwordZ possibilitiesr3cutoffresultsrFrrrrs     cCsDdt|}}x*||kr?|||kr?|d7}qW|S)Nr r%)r.)linechr0r3rrr_count_leadings rmc@sjeZdZddddZddZddZdd Zd d Zd d ZddZ dS)rNcCs||_||_dS)N)linejunkcharjunk)rrnrorrrrMs zDiffer.__init__c cst|j||}x|jD]\}}}}}|dkrd|j||||||} n|dkr|jd|||} na|dkr|jd|||} n:|dkr|jd|||} ntd|f| EdHq"WdS) NrLrM-rN+rO zunknown tag %r)rrnrT_fancy_replace_dumprf) rrrcruncherrSr7r8r9r:grrrcompareds" !   zDiffer.compareccs1x*t||D]}d|||fVqWdS)Nz%s %s)r5)rrSrFlohir0rrrrtsz Differ._dumpc cs||||krG|jd|||}|jd|||}n0|jd|||}|jd|||}x||fD]} | EdHqWdS)Nrqrp)rt) rrr7r8rr9r:firstsecondrvrrr_plain_replaceszDiffer._plain_replaceccsd\}}t|j} d\} } xt||D]} || } | j| xt||D]}||}|| kr| dkrd|| } } qd| j|| j|krd| j|krd| j|krd| j|| }}}qdWq7W||krU| dkr>|j||||||EdHdS| | d}}}nd} |j ||||||EdH||||}}| dkrd}}| j ||x| j D]\}}}}}||||}}|dkr|d|7}|d|7}q|dkr6|d|7}q|d krS|d |7}q|d kr~|d |7}|d |7}qt d |fqW|j ||||EdHn d|V|j ||d|||d|EdHdS)NGz??g?rrL^rMrprNrqrOrrzunknown tag %rz r%)r}r~)NN)rror5rrrar`r_r| _fancy_helperrrTrf_qformat)rrr7r8rr9r:Z best_ratiorhruZeqiZeqjr;rQr0rPZbest_iZbest_jZaeltZbeltatagsbtagsrSZai1Zai2Zbj1Zbj2rCrDrrrrssX         "  !!  "     zDiffer._fancy_replaceccsg}||krZ||kr?|j||||||}q~|jd|||}n$||kr~|jd|||}|EdHdS)Nrprq)rsrt)rrr7r8rr9r:rvrrrrs  ! zDiffer._fancy_helperccstt|dt|d}t|t|d|d}t|t|d|d}||dj}||dj}d|V|rdd||fVd|V|rdd||fVdS)N rrz- z? %s%s z+ )rXrmrstrip)rZalineZblinerrcommonrrrr s""  zDiffer._qformat) rbrcrdrrwrtr|rsrrrrrrrs ^ )   ^ Nz \s*#?\s*$cCs||dk S)Nr)rkpatrrrr>sz cCs ||kS)Nr)rlZwsrrrrNscCsM|d}||}|dkr-dj|S|s=|d8}dj||S)Nr%z{}z{},{})format)startstop beginningrrrr_format_range_unifiedes     rr ccst|||||||d}xtd||j|D]z} |sd}|redj|nd} |rdj|nd} dj|| |Vdj|| |V| d| d} } t| d| d }t| d | d }d j|||Vx| D]\}}}}}|d krTx!|||D]}d|Vq>Wq |dkrx!|||D]}d|VqqW|dkr x!|||D]}d|VqWq Wq>WdS)NFTz {}rz --- {}{}{}z +++ {}{}{}r r%rUz@@ -{} +{} @@{}rOrrrLrMrprNrqrV>rLrM>rLrN) _check_typesrr[rr)rrfromfiletofile fromfiledate tofiledater3linetermstartedrZfromdatetodaterzlast file1_range file2_rangerSrGrIrHrJrkrrrr ps0)"     cCsU|d}||}|s$|d8}|dkr=dj|Sdj|||dS)Nr%z{}z{},{})r)rrrrrrr_format_range_contexts     rc cst|||||||tdddddddd}d } xtd||j|D]} | sd } |rd j|nd } |rd j|nd } d j|| |Vdj|| |V| d| d} }d|Vt| d|d}dj||Vtdd| DrxQ| D]I\}}}}}|dkr5x%|||D]}|||VqgWq5Wt| d|d}dj||Vtdd| Dr_xQ| D]I\}}}}}|dkrx%|||D]}|||VqWqWq_WdS)NrNz+ rMz- rLz! rOz FTz {}rz *** {}{}{}z --- {}{}{}r r%z***************rz *** {} ****{}css*|] \}}}}}|dkVqdS)rLrMN>rLrMr)r\rS_rrrr]szcontext_diff..rUrz --- {} ----{}css*|] \}}}}}|dkVqdS)rLrNN>rLrNr)r\rSrrrrr] srV)rdictrr[rrany)rrrrrrr3rprefixrrZrrrzrrrSrGrIrrkrrHrJrrrrs4,!"   cGs|rAt|dt rAtdt|dj|df|rt|dt rtdt|dj|dfx0|D](}t|tstd|fqWdS)Nr z)lines to compare must be str, not %s (%r)z"all arguments must be str, not: %r) isinstancestr TypeErrortyperb)rrargsargrrrrs!! rs c csdd} tt| |}tt| |}| |}| |}| |}| |}| |}|||||||||} x| D]} | jddVqWdS)NcSshy|jddSWnMtk rc}z-dt|j|f}t||WYdd}~XnXdS)Nasciisurrogateescapez(all arguments must be bytes, not %s (%r))decodeAttributeErrorrrbr)rjerrmsgrrrr-s zdiff_bytes..decoderr)r@rAencode) Zdfuncrrrrrrr3rrlinesrkrrrr "s      ! cCst||j||S)N)rrw)rrrnrorrrr@s#c #sddl}|jdt||||ddgfddfddfdd}|}|dkr|EdHnN|d 7}d}x;ddg|} } d } xi| d kr+yt|\} } } Wntk rdSYnX| |}| | | f| |<| d 7} qW| |krFd V|}n | }d} x1|r| |}| d 7} | |V|d 8}qUW|d }xJ|rt|\} } } | r|d }n |d 8}| | | fVqWqWdS) Nr z (\++|\-+|\^+)c s>||d7<|dkr;|||jdddfS|dkr|jd|jd}}g}|dd}j||xXt|D]J\}\} } |d| d||| | d|| d}qW|dd}n7|jddd}|sd }d||d}|||fS) Nr%r r?cSs3|j|jdd|jg|jdS)Nr%r )r)rZspan)Z match_objectsub_inforrrrecord_sub_infos&z3_mdiff.._make_line..record_sub_inforr)r>subreversed) rZ format_keysideZ num_linestextZmarkersrrkeyZbeginend) change_rerr _make_lines  ! <z_mdiff.._make_linec3s4g}d\}}xx,t|dkrC|jtdqWdjdd|D}|jdrx|}nO|jdr|dd|dd d fVqn|jd r|d 8}|d ddd fVqn|jdr(|d dd}}|d d}}n|jdrc|dd|dd d fVqnd|jdr|dd|dd d fVqn)|jd r|d 8}|d ddd fVqn|jdr|d 7}d|dd d fVqn|jdrLd|dd }}|d d}}n{|jdr|d 7}d|dd d fVqnB|jdr|dddd|dd dfVqx|dkr|d 7}dVqWx|dkr |d 8}dVqW|jdrdS||d fVqWdS) Nr rXrcSsg|]}|dqS)r r)r\rkrrrres z2_mdiff.._line_iterator..z-?+?rr%Tz--++rp--?+--+- z-+?z-?+z+--rq+ +-rrFr)r r )rrr)rrrr)NrTrr)rNT)r.r)nextjoin startswith)rZnum_blanks_pendingZnum_blanks_to_yieldrj from_lineto_line)rdiff_lines_iteratorrr_line_iteratorsf  & &&   0    z_mdiff.._line_iteratorc 3s}gg}}xxt|dks@t|dkryt|\}}}Wntk rqdSYnX|dk r|j||f|dk r|j||fqW|jd\}}|jd\}}|||p|fVqWdS)Nr )r.r StopIterationr)r>)Z line_iterator fromlinestolinesrr found_diffZfromDiffZto_diff)rrr_line_pair_iterators  '    z#_mdiff.._line_pair_iteratorr%F)NNN)recompilerrr)rrcontextrnrorrZline_pair_iteratorZlines_to_writeindexZ contextLinesrrrr0r)rrrrr_mdiffesN" 8X!                 ran %(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@seZdZeZeZeZeZdZdddeddZ ddddd d d d Z d dZ ddZ ddZ ddZddZddZddZddddddZdS)r r NcCs(||_||_||_||_dS)N)_tabsize _wrapcolumn _linejunk _charjunk)rtabsizeZ wrapcolumnrnrorrrrs   zHtmlDiff.__init__rFcharsetzutf-8cCs_|jtd|jd|jd|j||||d|d|d|j|dj|S)NZstylesZlegendtablernumlinesrxmlcharrefreplace)_file_templater_styles_legend make_tablerr)rrrfromdesctodescrrrrrr make_files    zHtmlDiff.make_filecsNfddfdd|D}fdd|D}||fS)NcsO|jdd}|jj}|jdd}|jddjdS)Nrrrrr)rL expandtabsrr)rk)rrr expand_tabssz2HtmlDiff._tab_newline_replace..expand_tabscsg|]}|qSrr)r\rk)rrrres z1HtmlDiff._tab_newline_replace..csg|]}|qSrr)r\rk)rrrres r)rrrr)rrr_tab_newline_replaces  zHtmlDiff._tab_newline_replacec Css|s|j||fdSt|}|j}||ks[||jdd|krr|j||fdSd}d}d}x||kr ||kr ||dkr|d7}||}|d7}q||dkr|d7}d}q|d7}|d7}qW|d|} ||d} |rI| d} d|| } |j|| f|j|d| dS)NrrUr rr%r>)r)r.rcount _split_line) rZ data_listZline_numrrRrWr0r3markZline1Zline2rrrrs8   )       zHtmlDiff._split_linec csx|D]\}}}|dkr3|||fVq||\}}\}}gg} } |j| |||j| ||xZ| s| r| r| jd}nd}| r| jd}nd}|||fVqWqWdS)Nr rrr)rrr)rrr)rr>) rdiffsfromdatatodataflagZfromlineZfromtextZtolineZtotextfromlisttolistrrr _line_wrapper7s   zHtmlDiff._line_wrapperc Csggg}}}x|D]\}}}y<|j|jd|||j|jd||Wn,tk r|jd|jdYnX|j|qW|||fS)Nr r%)r) _format_liner)rrrrflaglistrrrrrr_collect_linesSs   zHtmlDiff._collect_linesc Csy%d|}d|j||f}Wntk r?d}YnX|jddjddjdd }|jd d j}d |||fS) Nz%dz id="%s%s"r&z&rz>%s%s)_prefixrrLr)rrrZlinenumridrrrrhs   *zHtmlDiff._format_linecCs<dtj}dtj}tjd7_||g|_dS)Nzfrom%d_zto%d_r%)r _default_prefixr)rZ fromprefixtoprefixrrr _make_prefixs  zHtmlDiff._make_prefixcCsP|jd}dgt|}dgt|}d \} } d} xt|D]u\} } | r| sd} | } td| |g} d|| f|| <| d7} d|| f|| nz2 No Differences Found z( Empty File z!fz#t)r F)rr.r'rW)rrrrrrrnext_id next_hrefZnum_chgZ in_changerr0rrrr_convert_flagss:           zHtmlDiff._convert_flagsc Cs|j|j||\}}|r1|}nd}t|||d|jd|j}|jrs|j|}|j|\} } } |j| | | ||\} } } } } g}dd}xzt t | D]f}| |dkr |dkr>|j dq|j || || || || || |fqW|sN|roddd |dd |f}nd }|j t d d j|d |d |jd}|jddjddjddjddjddS)Nrnroz1 %s%sz%%s%s r z) z %s%s%s%sz!
z+%srZ data_rows header_rowrr%z+zz-zz^zrzrz )rrrrrrrrrr5r.r)_table_templaterrrrL)rrrrrrrZ context_linesrrrrrrrjfmtr0rrrrrrsJ    $      zHtmlDiff.make_table)rbrcrdrrrrrrrrrrrrrrrrrrrrr s$    7    / c csy ddddit|}Wn"tk rDtd|YnXd|f}x3|D]+}|dd|krX|ddVqXWdS)Nr%z- rz+ z)unknown delta choice (must be 1 or 2): %rz )intKeyErrorrf)ZdeltawhichrSprefixesrkrrrrs    cCs%ddl}ddl}|j|S)Nr )doctestdifflibtestmod)r r rrr_test(sr__main__)#__all__heapqrrg collectionsrZ _namedtupler rrrrmrrrmatchrrrr rrrr rrrrrrobjectr rrrbrrrrsP   0 N  H K %  `