§
    F¾jf  ã                   ób   — d Z dZdZddlZdd„Zedk    r ej         e¦   «         ¦  «         dS dS )z1Merge content of several hex files into one file.z2.3.0a  hexmerge: merge content of hex files.
Usage:
    python hexmerge.py [options] FILES...

Options:
    -h, --help              this help message.
    -v, --version           version info.
    -o, --output=FILENAME   output file name (emit output to stdout
                            if option is not specified)
    -r, --range=START:END   specify address range for output
                            (ascii hex value). Both values are inclusive.
                            Range can be in form 'START:' or ':END'.
    --no-start-addr         Don't write start addr to output file.
    --overlap=METHOD        What to do when data in files overlapped.
                            Supported variants:
                            * error -- stop and show error message (default)
                            * ignore -- keep data from first file that
                                        contains data at overlapped address
                            * replace -- use data from last file that
                                         contains data at overlapped address

Arguments:
    FILES       list of hex files for merging
                (use '-' to read content from stdin)

You can specify address range for each file in the form:

    filename:START:END

See description of range option above.

You can omit START or END, so supported variants are:

    filename:START:     read filename and use data starting from START addr
    filename::END       read filename and use data till END addr

Use entire file content:

    filename
or
    filename::
é    Nc                 ó(  — dd l }d }d }d }d}d}| €t          j        dd …         } 	 |                     | dg d¢¦  «        \  }} |D ]ö\  }}	|dv rt	          t
          ¦  «          dS |dv rt	          t          ¦  «          dS |d	v r|	}ŒB|d
v r…	 |	                     d¦  «        }
|
d         dk    rt          |
d         d¦  «        }|
d         dk    rt          |
d         d¦  «        }Œ¡# t          t          f$ r |                     d¦  «        ‚w xY w|dk    rd}ŒÔ|dk    r|	dv r|	}Œá|                     d¦  «        ‚Œ÷t          | ¦  «        dk    r|                     d¦  «        ‚n€# |j        $ rs t          j        ¦   «         d         }t          j                             t!          |¦  «        dz   ¦  «         t          j                             t
          dz   ¦  «         Y dS w xY wdd l}|                     ¦   «         }d„ }| D �]P}	 |                     |¦  «        \  }}}n[# |j        $ rN t          j                             d|z  ¦  «         t          j                             t
          dz   ¦  «         Y  dS w xY w|dk    rt          j        }|                     |¦  «        }||fdk    r|| ||¦  «        …         }	 |                     ||¦  «         ŒÓ# |j        $ rr t          j        ¦   «         d         }t          j                             d|z   dz   ¦  «         t          j                             t!          |¦  «        dz   ¦  «         Y  dS w xY w||fdk    r|| ||¦  «        …         }|€t          j        }|                     ||¦  «         dS )Nr   TÚerroré   zhvo:r:)ÚhelpÚversionzoutput=zrange=zno-start-addrzoverlap=)z-hz--help)z-vz	--version)z-oz--output)z-rz--rangeú:Ú é   zBad range value(s)z--no-start-addrFz	--overlap)r   ÚignoreÚreplacezBad overlap valuezYou should specify file listú
c                 ó   — | �| dz   S | S )Nr   © )Úaddrs    ú`/home/lighthouse/esp32-dev/tools/mac/.venv/lib/python3.11/site-packages/../../../bin/hexmerge.pyÚend_addr_inclusivez main.<locals>.end_addr_inclusive�   s   € ØÐØ˜!‘8ˆOØˆó    zBad argument: "%s"
ú-)NNz	Merging: )ÚgetoptÚsysÚargvÚ
gnu_getoptÚprintÚUSAGEÚVERSIONÚsplitÚintÚ
ValueErrorÚ
IndexErrorÚGetoptErrorÚlenÚexc_infoÚstderrÚwriteÚstrÚintelhexÚIntelHexÚ_get_file_and_addr_rangeÚ_BadFileNotationÚstdinÚmergeÚAddressOverlapErrorÚstdoutÚwrite_hex_file)Úargsr   ÚoutputÚstartÚendÚwrite_start_addrÚoverlapÚoptsÚoÚaÚlÚer&   Úresr   ÚfÚfnameÚfstartÚfendÚihs                       r   Úmainr@   V   sB  € Ø€M€M€Mà€FØ€EØ
€CØÐØ€Gà€|ÝŒx˜˜˜Œ|ˆð(Ø×&Ò& t¨Xð()ð ()ð ()ñ*ô *‰
ˆˆdð ð 	Bð 	B‰CˆAˆaØÐ$Ð$Ð$Ý•e‘”�Ø�q�qØÐ)Ð)Ð)Ý•g‘”�Ø�q�qØÐ(Ð(Ð(Ø��ØÐ'Ð'Ð'ðCØŸš ™œ�AØ˜”t˜r’z�zÝ # A a¤D¨"¡¤˜Ø˜”t˜r’z�zÝ! ! A¤$¨™mœm˜øøÝ"¥JÐ/ð Cð Cð CØ ×,Ò,Ð-AÑBÔBÐBðCøøøàÐ'Ò'Ð'Ø#(Ð Ð Ø�kÒ!Ð!ØÐ6Ð6Ð6Ø�G�Gà ×,Ò,Ð-@ÑAÔAÐAð	 "õ ˆt‰9Œ9˜Š>ˆ>Ø×$Ò$Ð%CÑDÔDÐDð øð Ôð ð ð ÝŒL‰NŒN˜1ÔˆÝŒ
×Ò�˜Q™œ ™Ñ%Ô%Ð%ÝŒ
×Ò�˜t™Ñ$Ô$Ð$Øˆqˆqð	øøøð €O€O€Oð ×
Ò
Ñ
Ô
€Cðð ð ð
 ð ñ ˆð	Ø"*×"CÒ"CÀAÑ"FÔ"FÑˆE�6˜4˜4øØÔ(ð 	ð 	ð 	ÝŒJ×ÒÐ3°aÑ7Ñ8Ô8Ð8ÝŒJ×Ò�U 4™ZÑ(Ô(Ð(Ø�1�1�1ð	øøøð �CŠ<ˆ<Ý”IˆEØ×Ò˜uÑ%Ô%ˆØ�Dˆ>˜\Ò)Ð)Ø�FÐ-Ð-¨dÑ3Ô3Ð3Ô4ˆBð	Ø�IŠI�b˜'Ñ"Ô"Ð"Ð"øØÔ+ð 	ð 	ð 	Ý”‘”˜qÔ!ˆAÝŒJ×Ò˜[¨Ñ.¨tÑ3Ñ4Ô4Ð4ÝŒJ×Ò�S ™VœV D™[Ñ)Ô)Ð)Ø�1�1�1ð		øøøð 	ˆs€|�|Ò#Ð#Ø�%Ð*Ð*¨3Ñ/Ô/Ð/Ô0ˆØ€~Ý”ˆØ×Ò�vÐ/Ñ0Ô0Ð0Øˆ1s^   ¦<E$ Á$E$ Á?E$ ÂAC%Ã$E$ Ã%'DÄAE$ Å$A9G!Ç G!ÈHÈAI7É6I7Ê=KËA7MÍMÚ__main__)N)Ú__doc__r   r   r   r@   Ú__name__Úexitr   r   r   ú<module>rE      sr   ððH 8Ð 7à
€ð)	€ðV €
€
€
ðXð Xð Xð Xðv ˆzÒÐØ€C„HˆTˆT‰VŒVÑÔÐÐÐð Ðr   