Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
§

iµµh·bãó—dZddlZddlZddlmZddlmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZddlmZe¦«Zd„ZGd„d	e
¦«ZeZeeefZeed
fZeeeeeeefd
ffZeZeeefZGd„d¦«Z Gd
„de e
ee
eeff¦«Z!dedefd„Z"e#d¦«e#d¦«e#d¦«e#d¦«e#d¦«e#d¦«e#d¦«e#d¦«e#d¦«e#d¦«iZ$e#d¦«e#d¦«gZ%e#d¦«e#d¦«gZ&dedefd„Z'dedefd„Z(dede)fd „Z*dede)fd!„Z+d"edefd#„Z,d"edeeeffd$„Z-Gd%„d&e!¦«Z.d'„Z/d(„Z0d)„Z1d*„Z2Gd+„d,e ¦«Z3d-ede
eeeeffd.„Z4d/e.de
eeeeffd0„Z5d6d/e d2e)de	eeeffd3„Z6d6d/e d4ed2e)defd5„Z7dS)7zÁReading and writing Git configuration files.

Todo:
 * preserve formatting when updating configuration files
 * treat subsection names as case-insensitive for [branch.foo] style
   subsections
éN)Úsuppress)ÚAnyÚBinaryIOÚDictÚIterableÚIteratorÚKeysViewÚListÚMutableMappingÚOptionalÚTupleÚUnionÚoverloadé)ÚGitFilecóæ—t|ttf¦«r| ¦«St|t¦«r+t|¦«t
t|¦«¦«S|S©N)Ú
isinstanceÚbytesÚstrÚlowerrÚtypeÚmapÚ	lower_key)Úkeys ú9/usr/local/lib/python3.11/site-packages/dulwich/config.pyrr4s]€Ý#s|Ñ$Ô$ð؏yŠy‰{Œ{Ðå#•xÑ Ô ð.؍tC‰yŒyY¨Ñ,Ô,Ñ-Ô-Ð-à€Jócó¤—eZdZdd„Zedd„¦«Zdefd„Zdee	e
dffd„Zd„Zd	„Z
d
„Zdd„Zdd„Zd
„Zefd„Zd„Zefd„ZdS)ÚCaseInsensitiveOrderedMultiDictÚreturnNcó"—g|_i|_dSr)Ú_realÚ_keyed©Úselfs rÚ__init__z(CaseInsensitiveOrderedMultiDict.__init__?s€Ø "ˆŒ
Ø&(ˆŒˆˆrcó¼—t||¦«r|S|¦«}|€|St|t¦«st‚| ¦«D]
\}}|||<Œ|Sr)rrÚ	TypeErrorÚitems)ÚclsÚdict_inÚoutrÚvalues     rÚmakez$CaseInsensitiveOrderedMultiDict.makeCsp€åg˜sÑ#Ô#ð	؈Nàˆc‰eŒeˆàˆ?؈Jå˜'¥>Ñ2Ô2ð	݈Oà!Ÿ-š-™/œ/ð	ð	‰JˆCØˆC‰HˆHàˆ
rcó*—t|j¦«Sr)Úlenr#r$s rÚ__len__z'CaseInsensitiveOrderedMultiDict.__len__Us€Ý4”;ÑÔÐr.có4—|j ¦«Sr)r#Úkeysr$s rr3z$CaseInsensitiveOrderedMultiDict.keysXs€ØŒ{×ÒÑ!Ô!Ð!rcó*—t|j¦«Sr)Úiterr"r$s rr)z%CaseInsensitiveOrderedMultiDict.items[s€ÝD”JÑÔÐrcó4—|j ¦«Sr)r#Ú__iter__r$s rr7z(CaseInsensitiveOrderedMultiDict.__iter__^s€ØŒ{×#Ò#Ñ%Ô%Ð%rcó4—|j ¦«Sr)r#Úvaluesr$s rr9z&CaseInsensitiveOrderedMultiDict.valuesas€ØŒ{×!Ò!Ñ#Ô#Ð#rcól—|j ||f¦«||jt|¦«<dSr)r"Úappendr#r©r%rr-s   rÚ__setitem__z+CaseInsensitiveOrderedMultiDict.__setitem__ds4€ØŒ
×Ò˜3 ˜,Ñ'Ô'Ð'Ø&+ˆŒ•I˜c‘N”NÑ#Ð#Ð#rcóؗt|¦«}|j|=ttt	|j¦«¦«¦«D]#\}\}}t|¦«|kr|j|=Œ$dSr)rr#ÚreversedÚlistÚ	enumerater")r%rÚiÚactualÚunused_values     rÚ__delitem__z+CaseInsensitiveOrderedMultiDict.__delitem__hsq€Ý˜‰nŒnˆØŒK˜ÐÝ)1µ$µyÀÄÑ7LÔ7LÑ2MÔ2MÑ)NÔ)Nð	"ð	"Ñ%ˆAÑ%˜Ý˜Ñ Ô  CÒ'Ð'Ø”J˜qMøð	"ð	"rcó6—|jt|¦«Sr)r#r)r%Úitems  rÚ__getitem__z+CaseInsensitiveOrderedMultiDict.__getitem__os€ØŒ{9 T™?œ?Ô+Ð+rcóx—	||S#t$rYnwxYw|turt|¦«¦«S|Sr)ÚKeyErrorÚSENTINELr©r%rÚdefaults   rÚgetz#CaseInsensitiveOrderedMultiDict.getrsU€ð	ؘ”9ÐøÝð	ð	ð	ØˆDð	øøøð•hÐÐØ•4˜‘:”:‘<”<Ðàˆs‚
Š
–c#ópK—t|¦«}|jD]\}}t|¦«|kr|V—ŒdSr)rr")r%rrCr-s    rÚget_allz'CaseInsensitiveOrderedMultiDict.get_all}sMèè€Ý˜‰nŒnˆØ!œZð	ð	‰MˆFEÝ˜Ñ Ô  CÒ'Ð'ؐøð	ð	rcóv—	||S#t$r| ||¦«||<YnwxYw||Sr)rJrNrLs   rÚ
setdefaultz*CaseInsensitiveOrderedMultiDict.setdefaultƒsS€ð	/ؘ”9ÐøÝð	/ð	/ð	/ØŸš  gÑ.Ô.ˆD‰IˆIˆIð	/øøøðCŒyÐs‚
Š#0¯0)r Nr)Ú__name__Ú
__module__Ú__qualname__r&Úclassmethodr.Úintr1r	r
rr3r)r7r9r=rErHrKrNrPrR©rrrr>s1€€€€€ð)ð)ð)ð)ððððñ„[ðð" ˜ð ð ð ð ð"h˜u U¨C ZÔ0Ô1ð"ð"ð"ð"ð ð ð ð&ð&ð&ð$ð$ð$ð,ð,ð,ð,ð"ð"ð"ð"ð,ð,ð,ð (ð	ð	ð	ð	ðððð'/ððððððrr.c
óN—eZdZdZdededefd„Zdededeefd„Z	e
dedededefd„¦«Ze
dedede
efd	„¦«Z	ddedede
ede
efd„Zdededeeefdd
fd
„Zdedeeeeffd„Zdeefd„Zdedefd„Zd
S)ÚConfigzA Git configuration.ÚsectionÚnamer có*—t|j¦«‚)aRetrieve the contents of a configuration setting.

        Args:
          section: Tuple with section name and optional subsection name
          name: Variable name
        Returns:
          Contents of the setting
        Raises:
          KeyError: if the value is not set
        )ÚNotImplementedErrorrN©r%r[r\s   rrNz
Config.get—ó€õ" $¤(Ñ+Ô+Ð+rcó*—t|j¦«‚)a4Retrieve the contents of a multivar configuration setting.

        Args:
          section: Tuple with section name and optional subsection namee
          name: Variable name
        Returns:
          Contents of the setting as iterable
        Raises:
          KeyError: if the value is not set
        )r^Úget_multivarr_s   rrbzConfig.get_multivar¤s€õ" $Ô"3Ñ4Ô4Ð4rrMcó—dSrrX)r%r[r\rMs    rÚget_booleanzConfig.get_boolean±ó€àˆrcó—dSrrXr_s   rrdzConfig.get_booleanµrerNcóâ—	| ||¦«}n#t$r|cYSwxYw| ¦«dkrdS| ¦«dkrdStd|z¦«‚)aRetrieve a configuration setting as boolean.

        Args:
          section: Tuple with section name and optional subsection name
          name: Name of the setting, including section and possible
            subsection.

        Returns:
          Contents of the setting
        ótrueTófalseFznot a valid boolean string: %r)rNrJrÚ
ValueError)r%r[r\rMr-s     rrdzConfig.get_boolean¹s„€ð	Ø—H’H˜W dÑ+Ô+ˆEˆEøÝð	ð	ð	؈NˆNˆNð	øøøà;Š;‰=Œ=˜GÒ#Ð#ؐ4Ø
[Š[‰]Œ]˜hÒ
&Ð
&ؐ5ÝÐ9¸EÑAÑBÔBÐBs‚™(§(r-có*—t|j¦«‚)aSet a configuration value.

        Args:
          section: Tuple with section name and optional subsection namee
          name: Name of the configuration value, including section
            and optional subsection
          value: value of the setting
        )r^Úset©r%r[r\r-s    rrlz
Config.setÐr`rcó*—t|j¦«‚)zÚIterate over the configuration pairs for a specific section.

        Args:
          section: Tuple with section name and optional subsection namee
        Returns:
          Iterator over (name, value) pairs
        )r^r)©r%r[s  rr)zConfig.itemsÝs€õ" $¤*Ñ-Ô-Ð-rcó*—t|j¦«‚)zRIterate over the sections.

        Returns: Iterator over section tuples
        )r^Úsectionsr$s rrqzConfig.sectionsçs€õ
" $¤-Ñ0Ô0Ð0rcó.—|| ¦«vS)z²Check if a specified section exists.

        Args:
          name: Name of section to check for
        Returns:
          boolean indicating whether the section exists
        )rq)r%r\s  rÚhas_sectionzConfig.has_sectionîs€ðt—}’}‘”Ð&Ð&rr)rSrTrUÚ__doc__ÚSectionLikeÚNameLikeÚValuerNrrbrÚboolrdrrÚ	ValueLikerlr
ÚNamer)ÚSectionrqrsrXrrrZrZ”s怀€€€ØÐð,˜;ð,¨hð,¸5ð,ð,ð,ð,ð5 Kð5°xð5ÀHÈUÄOð5ð5ð5ð5ðð ;ð°hðÈðÐRVðððñ„Xððð ;ð°hðÀ8ÈDÄ>ðððñ„XððOSðCðCØ"ðCØ*2ðCØ=EÀd¼^ðCà	$ŒðCðCðCðCð.,Ø"ð,Ø*2ð,Ø;@ÀÈDÀÔ;Qð,à	
ð,ð,ð,ð,ð.˜[ð.¨X°e¸DÀ%¸KÔ6HÔ-Ið.ð.ð.ð.ð1˜( 7Ô+ð1ð1ð1ð1ð' ð'¨Dð'ð'ð'ð'ð'ð'rrZcóà—eZdZdZ		ddeeeeeeffdfdee	dfddfd„Z
de	fd„Zdede
fd	„Zd
edeeeffd„Zd
edeeefddfd
„Zd
eddfd„Zdeefd„Zdefd„Zede	fd„¦«Zdededeeeffd„Zdededeefd„Zdededefd„Zdededeee
fddfd„Zdedeeeeffd„Z deefd„Z!dS)Ú
ConfigDictz)Git configuration stored in a dictionary.Nr9Úencodingr có|—|€tj¦«}||_t |¦«|_dS)zCreate a new ConfigDict.N)ÚsysÚgetdefaultencodingr~rr.Ú_values)r%r9r~s   rr&zConfigDict.__init__üs8€ðÐÝÔ-Ñ/Ô/ˆHØ ˆŒ
Ý6×;Ò;¸FÑCÔCˆŒˆˆrcó0—|jj›d|j›dS)Nú(ú))Ú	__class__rSr‚r$s rÚ__repr__zConfigDict.__repr__	s €Ø”.Ô)Ð=Ð=¨D¬LÐ=Ð=Ð=Ð=rÚothercóL—t||j¦«o|j|jkSr)rr†r‚)r%rˆs  rÚ__eq__zConfigDict.__eq__s"€Ý˜% ¤Ñ0Ô0ÐR°U´]ÀdÄlÒ5RÐRrrcó6—|j |¦«Sr)r‚rH©r%rs  rrHzConfigDict.__getitem__ó€ØŒ|×'Ò'¨Ñ,Ô,Ð,rr-có8—|j ||¦«Sr)r‚r=r<s   rr=zConfigDict.__setitem__s€ØŒ|×'Ò'¨¨UÑ3Ô3Ð3rcó6—|j |¦«Sr)r‚rErŒs  rrEzConfigDict.__delitem__rrcó4—|j ¦«Sr)r‚r7r$s rr7zConfigDict.__iter__s€ØŒ|×$Ò$Ñ&Ô&Ð&rcó4—|j ¦«Sr)r‚r1r$s rr1zConfigDict.__len__s€ØŒ|×#Ò#Ñ%Ô%Ð%rr\có¢—| d¦«}t|¦«dkr|d|d|dfS|dd|dfS)Nú.érré)Úsplitr0)r*r\Úpartss   rÚ_parse_settingzConfigDict._parse_settingsN€à—
’
˜3‘”ˆÝˆu‰:Œ:˜Š?ˆ?ؘ!”H˜e Aœh¨¨a¬Ð1Ð1à˜!”H˜d E¨!¤HÐ-Ð-rr[cóЇ—t|t¦«s|f}tˆfd„|D¦«¦«}t|t¦«s| ‰j¦«}||fS)Ncór•—g|]3}t|t¦«s| ‰j¦«n|‘Œ4SrX)rrÚencoder~)Ú.0Ú
subsectionr%s  €rú
<listcomp>z6ConfigDict._check_section_and_name.<locals>.<listcomp>-sRø€ð
ð
ð
ðõ" *­eÑ4Ô4ð 
×!Ò! $¤-Ñ0Ô0Ð0àð
ð
ð
r)rÚtuplerr›r~)r%r[r\Úchecked_sections`   rÚ_check_section_and_namez"ConfigDict._check_section_and_name&s‡ø€õ˜'¥5Ñ)Ô)ð	!ؐjˆGåð
ð
ð
ð
ð#*ð	
ñ
ô
ñ
ô
ˆõ˜$¥Ñ&Ô&ð	.Ø—;’;˜tœ}Ñ-Ô-ˆDà Ð$Ð$rcó
—| ||¦«\}}t|¦«dkr1	|j| |¦«S#t$rYnwxYw|j|df |¦«S©Nrr)r¡r0r‚rPrJr_s   rrbzConfigDict.get_multivar:s€Ø×4Ò4°W¸dÑCÔC‰
ˆåˆw‰<Œ<˜!ÒÐð
Ø”| GÔ,×4Ò4°TÑ:Ô:Ð:øÝð
ð
ð
ؐð
øøøðŒ|˜W QœZ˜MÔ*×2Ò2°4Ñ8Ô8Ð8s®AÁ
AÁAcó֗| ||¦«\}}t|¦«dkr$	|j||S#t$rYnwxYw|j|df|Sr£)r¡r0r‚rJr_s   rrNzConfigDict.getEs€ð
×4Ò4°W¸dÑCÔC‰
ˆåˆw‰<Œ<˜!ÒÐð
Ø”| GÔ,¨TÔ2Ð2øÝð
ð
ð
ؐð
øøøðŒ|˜W QœZ˜MÔ*¨4Ô0Ð0s®AÁ
AÁ
Acó—| ||¦«\}}t|t¦«r|rdnd}t|t¦«s| |j¦«}||j |¦«|<dS)Nrhri)r¡rrxrr›r~r‚rRrms    rrlzConfigDict.setTs‚€ð×4Ò4°W¸dÑCÔC‰
ˆåeTÑ"Ô"ð	3Ø$Ð2GG¨(ˆEå˜%¥Ñ'Ô'ð	0Ø—L’L ¤Ñ/Ô/ˆEà16ˆŒ×Ò Ñ(Ô(¨Ñ.Ð.Ð.rcóZ—|j |¦« ¦«Sr)r‚rNr)ros  rr)zConfigDict.itemsds&€ðŒ|×Ò Ñ(Ô(×.Ò.Ñ0Ô0Ð0rcó4—|j ¦«Sr)r‚r3r$s rrqzConfigDict.sectionsis€ØŒ|× Ò Ñ"Ô"Ð"r©NN)"rSrTrUrtrrr{rzrwrr&r‡ÚobjectrxrŠrHr=rErr7rWr1rVr˜rurvr
r¡rbrNryrlr)rqrXrrr}r}ùsÓ€€€€€Ø3Ð3ð
Ø%)ðDðDàØ˜7 N°4¸°;Ô$?Ð?Ô@À$ÐFô
ðDð
˜˜T˜	Ô"ðDð
ð
DðDðDðDð>˜#ð>ð>ð>ð>ðS˜FðS tðSðSðSðSð-˜wð-¨>¸$À¸+Ô+Fð-ð-ð-ð-ð4˜wð4¨~¸dÀE¸kÔ/Jð4Ètð4ð4ð4ð4ð-˜wð-¨4ð-ð-ð-ð-ð'˜( 7Ô+ð'ð'ð'ð'ð&˜ð&ð&ð&ð&ðð. #ð.ð.ð.ñ„[ð.ð%Ø"ð%Ø*2ð%à	ˆw˜ˆ}Ô	ð%ð%ð%ð%ð(	9 Kð	9°xð	9ÀHÈUÄOð	9ð	9ð	9ð	9ð
1àð
1ðð
1ð
ð	
1ð
1ð
1ð
1ð7àð7ðð7ðY _Ô%ð	7ð

ð7ð7ð7ð7ð 1Øð1à	%˜˜e˜Ô$Ô	%ð1ð1ð1ð1ð
#˜( 7Ô+ð#ð#ð#ð#ð#ð#rr}r-r có¦—| d¦«s| d¦«sd|vrdt|¦«zdzSt|¦«S)N)ó ó	ó#ó")Ú
startswithÚendswithÚ
_escape_value©r-s rÚ_format_stringr³ms]€à
×Ò˜Ñ'Ô'ð$à>Š>˜-Ñ(Ô(ð$ð5ˆ=ˆ=à•m EÑ*Ô*Ñ*¨TÑ1Ð1å˜UÑ#Ô#Ð#ró\r®ónó
ótr¬óbór­ó;r«có–—t| ¦«¦«}t¦«}t¦«}d}d}|t|¦«krU||}|td¦«kr¥|dz
}	t||}nP#t
$r}t
d||fz¦«|‚d}~wt$r!}t
d||||fz¦«|‚d}~wwxYw|r#| |¦«t¦«}| 	|¦«n||td¦«kr|}ne|tvr|snr|tvr| 	|¦«n:|r#| |¦«t¦«}| 	|¦«|dz
}|t|¦«k°U|rt
d¦«‚t|¦«S)	NFrr´rz1escape character in %r at %d before end of stringz=escape character followed by unknown character %s at %d in %rr®zmissing end quote)
Ú	bytearrayÚstripr0ÚordÚ
_ESCAPE_TABLEÚ
IndexErrorrjrJÚextendr;Ú_COMMENT_CHARSÚ_WHITESPACE_CHARSr)r-ÚretÚ
whitespaceÚ	in_quotesrBÚcÚvÚexcs        rÚ
_parse_stringrʃsö€Ýe—k’k‘m”mÑ$Ô$€EÝ
‰+Œ+€CÝ‘”€JØ€IØ	€AØ
c%‰jŒjŠ.‰.Ø!ŒHˆØ•E‘
”
Š?ˆ?Ø
‰FˆAð

Ý! %¨¤(Ô+øÝð
ð
ð
Ý ØGÈ5ÐRSÈ*ÑTñôàðøøøøõð
ð
ð
Ý ð%Ø(-¨a¬°!°UÐ';ñ<ñôððøøøøð
øøøð
ð
)Ø—
’
˜:Ñ&Ô&Ð&Ý&™[œ[
ØJŠJq‰MŒMˆMˆMØ
•#d‘)”)Š^ˆ^Ø%˜
ˆIˆIØ
•.Ð
 Ð
 ¨Ð
 àØ
Õ#Ð
#Ð
#Ø×Ò˜aÑ Ô Ð Ð àð
)Ø—
’
˜:Ñ&Ô&Ð&Ý&™[œ[
ØJŠJq‰MŒMˆMØ	ˆQ‰ˆð?c%‰jŒjŠ.‰.ðBð.ÝÐ,Ñ-Ô-Ð-吉:Œ:Ðs$Á7BÂ
CÂB*Â*
CÂ7CÃCcóâ—| dd¦«}| dd¦«}| dd¦«}| dd¦«}| d	d
¦«}|S)zEscape a value.r´s\\ó
s\rr¶s\nr¬s\tr®s\")Úreplacer²s rr±r±°sf€àMŠM˜% Ñ)Ô)€EØMŠM˜% Ñ(Ô(€EØMŠM˜% Ñ(Ô(€EØMŠM˜% Ñ(Ô(€EØMŠM˜$ Ñ'Ô'€EØ€Lrr\có˜—tt|¦«¦«D],}|||dz…}| ¦«s	|dkrdSŒ-dS)Nró-FT©Úranger0Úisalnum©r\rBrÇs   rÚ_check_variable_namerÔºsU€Ý
•3t‘9”9Ñ
Ô
ððˆØQ˜‘UŒOˆØyŠy‰{Œ{ð	˜q Dšy˜yؐ55øØˆ4rcó”—tt|¦«¦«D]*}|||dz…}| ¦«s|dvrdSŒ+dS)Nr)rÏó.FTrÐrÓs   rÚ_check_section_namer×ÂsW€Ý
•3t‘9”9Ñ
Ô
ððˆØQ˜‘UŒOˆØyŠy‰{Œ{ð	˜q¨Ð4Ð4ؐ55øØˆ4rÚlinecóà—td¦«td¦«h}td¦«}d}tt|¦«¦«D]!\}}||kr|}Œ|s||vr|d|…cSŒ"|S)Nr­rºr®F)r¾rAr¼)rØÚ
comment_bytesÚquoteÚstring_openrBÚ	characters      rÚ_strip_commentsrÞÊs†€Ý˜‘Y”Y¥ D¡	¤	Ð*€MÝ‰IŒI€EØ€Kå!¥)¨D¡/¤/Ñ2Ô2ðð‰ˆˆ9à˜ÒÐØ)˜/ˆKˆKØð	 ¨mÐ!;Ð!;ؘ˜˜”8ˆOˆOˆOøØ€Krcó¸—t|¦« ¦«}d}d}t|¦«D]N\}}|rd}Œ
|td¦«kr|}|td¦«krd}|td¦«kr|s|}nŒOt	d¦«‚|d|… dd¦«}||dzd…}t
|¦«d	kr‘|ddd…dks|dd
d…dkrt	d|dz¦«‚|ddd
…|d<t|d¦«st	d
|dz¦«‚|d|df}nvt|d¦«st	d
|dz¦«‚|d dd¦«}t
|¦«d	kr|d|df}n	|df}||fS)NFr®r´Tó]zexpected trailing ]rr«r•éÿÿÿÿzInvalid subsection %rrzinvalid section name %rrÖ)rÞÚrstriprAr¾rjr–r0r×)rØrÆÚescapedrBrÇÚlastÚptsr[s        rÚ_parse_section_header_lineræØsú€å˜4Ñ Ô ×'Ò'Ñ)Ô)€DØ€IØ€Gݘ$‘”ð0ð0‰ˆˆ1Øð	؈GØØ•D‘	”	Š>ˆ>Ø%˜
ˆIØ•E‘
”
Š?ˆ?؈GØ•D‘	”	Š>ˆ> )ˆ>؈DØˆEøåÐ.Ñ/Ô/Ð/Ø
ˆqˆvŒ,×
Ò
˜T 1Ñ
%Ô
%€Cؐq‘

Ô€Då
ˆ3x„x1‚}€}؈qŒ6"1"Œ:˜ÒР Q¤¨¨¨¤°Ò!4Ð!4ÝÐ4°s¸1´vÑ=Ñ>Ô>Ð>à˜”V˜A˜b˜D”\ˆC‰FÝ" 3 q¤6Ñ*Ô*ð	AÝÐ6¸¸Q¼Ñ?Ñ@Ô@Ð@ؐq”6˜3˜qœ6Ð"ˆˆå" 3 q¤6Ñ*Ô*ð	AÝÐ6¸¸Q¼Ñ?Ñ@Ô@Ð@ؐ!ŒflŠl˜4 Ñ#Ô#ˆÝˆs‰8Œ8qŠ=ˆ=ؘ1”v˜s 1œvÐ&ˆGˆGà˜1”viˆGؐDˆ=Ðrcó䇗eZdZdZ		d
deeeeeeffdfdee	dfddfˆfd„
Z
ededdfd„¦«Z
ed	e	ddfd
„¦«Zdd	ee	ddfd„Zdeddfd„ZˆxZS)Ú
ConfigFilez;A Git configuration file, like .git/config or ~/.gitconfig.Nr9r~r có\•—t¦« ||¬¦«d|_dS)N)r9r~)Úsuperr&Úpath)r%r9r~r†s   €rr&zConfigFile.__init__s-ø€õ	‰Œ×Ò °ÐÑ:Ô:Ð:Ø#'ˆŒ	ˆ	ˆ	rÚfcót—|¦«}d}d}d}t| ¦«¦«D]\}}|dkr| d¦«r
|dd…}| ¦«}|€Rt	|¦«dkr:|dd…dkr,t|¦«\}}|j |¦«t|¦« 	¦«dkrŒµ|€td|z¦«‚	| d	d¦«\}}n#t$r|}d
}YnwxYw| 	¦«}t|¦«std|z¦«‚| 
d¦«r|dd
…}ŒN| 
d¦«r|dd…}Œod}t|¦«}||j||<d}Œ”| 
d¦«r||dd
…z
}Œ¸| 
d¦«r||dd…z
}ŒÜ||z
}t|¦«}||j||<d}d}Œ|S)z+Read configuration from a file-like object.Nrsr”ró[rzsetting %r without sectionó=rhzinvalid variable name %rs\
éþÿÿÿs\
éýÿÿÿ)rAÚ	readlinesr¯Úlstripr0rær‚rRrÞr½rjr–rÔr°rÊ)	r*rìrÄr[ÚsettingÚcontinuationÚlinenorØr-s	         rÚ	from_filezConfigFile.from_file
sp€ðˆc‰eŒeˆØ%)ˆØˆØˆÝ% a§k¢k¡m¤mÑ4Ô4ð'	#ñ'	#‰LˆFDؘŠ{ˆ{˜tŸš¨Ñ?Ô?ˆ{ؘA˜B˜B”xØ—;’;‘=”=ˆD؉ݐt‘9”9˜q’== T¨"¨1¨"¤X°Ò%5Ð%5Ý$>¸tÑ$DÔ$D‘MG˜TØ”K×*Ò*¨7Ñ3Ô3Ð3Ý" 4Ñ(Ô(×.Ò.Ñ0Ô0°CÒ7Ð7ØØ?Ý$Ð%AÀDÑ%HÑIÔIÐIð$Ø%)§Z¢Z°°aÑ%8Ô%8‘NG˜U˜UøÝ!ð$ð$ð$Ø"GØ#EEEð$øøøð"Ÿ-š-™/œ/Ý+¨GÑ4Ô4ðKÝ$Ð%?À'Ñ%IÑJÔJÐJØ—>’> 'Ñ*Ô*ð#Ø#(¨¨"¨¤:L‘LØ—^’^ IÑ.Ô.ð#Ø#(¨¨"¨¤:L‘Là#'LÝ)¨%Ñ0Ô0EØ49C”K Ô(¨Ñ1Ø"G‘Gà—=’= Ñ)Ô)ð	#Ø  D¨¨"¨¤IÑ-L‘LØ—]’] 9Ñ-Ô-ð#Ø  D¨¨"¨¤IÑ-L‘Là  DÑ(LÝ)¨,Ñ7Ô7EØ49C”K Ô(¨Ñ1Ø#'LØ"G‘G؈
sÃ<DÄD'Ä&D'rëcó’—t|d¦«5}| |¦«}||_|cddd¦«S#1swxYwYdS)z'Read configuration from a file on disk.ÚrbN)rr÷rë)r*rërìrÄs    rÚ	from_pathzConfigFile.from_path>s€õT˜4Ñ
 Ô
 ð	 AØ—-’- Ñ"Ô"ˆC؈CŒHØð	ð	ð	ð	ñ	ô	ð	ð	ð	ð	ð	ð	øøøð	ð	ð	ð	ð	ð	s‘<¼AÁAcó”—|€|j}t|d¦«5}| |¦«ddd¦«dS#1swxYwYdS)z&Write configuration to a file on disk.NÚwb)rërÚ
write_to_file)r%rërìs   rÚ
write_to_pathzConfigFile.write_to_pathFs“€àˆ<Ø”9ˆDÝ
T˜4Ñ
 Ô
 ð	" AØ×Ò˜qÑ!Ô!Ð!ð	"ð	"ð	"ñ	"ô	"ð	"ð	"ð	"ð	"ð	"ð	"ð	"øøøð	"ð	"ð	"ð	"ð	"ð	"sš=½AÁAcó—|j ¦«D]«\}}	|\}}n#t$r	|\}d}YnwxYw|€| d|zdz¦«n!| d|zdz|zdz¦«| ¦«D]5\}}t	|¦«}| d|zdz|zdz¦«Œ6Œ¬dS)	z*Write configuration to a file-like object.Nrîs]
s "s"]
r¬s = r¶)r‚r)rjÚwriter³)r%rìr[r9Úsection_nameÚsubsection_namerr-s        rrýzConfigFile.write_to_fileMs€à#œ|×1Ò1Ñ3Ô3ð	>ð	>‰OˆGVð
'Ø07Ñ-˜o˜oøÝð
'ð
'ð
'Ø")‘Ø"&ð
'øøøðÐ&Ø—’˜˜|Ñ+¨fÑ4Ñ5Ô5Ð5Ð5à—’˜˜|Ñ+¨eÑ3°oÑEÈÑOÑPÔPÐPØ$Ÿlšl™nœnð
>ð
>‘
UÝ& uÑ-Ô-Ø—’˜ ™ fÑ,¨uÑ4°uÑ<Ñ=Ô=Ð=Ð=ð
>ð	>ð	>s &¦9¸9r¨r)rSrTrUrtrrr{rzrwrr&rVrr÷rúrrþrýÚ
__classcell__)r†s@rrèrès?ø€€€€€ØEÐEð
Ø%)ð(ð(àØ˜7 N°4¸°;Ô$?Ð?Ô@À$ÐFô
ð(ð
˜˜T˜	Ô"ð(ð
ð
(ð(ð(ð(ð(ð(ðð.˜(ð. |ð.ð.ð.ñ„[ð.ð`ð˜Sð \ðððñ„[ðð"ð" (¨3¤-ð"¸4ð"ð"ð"ð"ð>˜xð>¨Dð>ð>ð>ð>ð>ð>ð>ð>rrècóª—tj dtj d¦«¦«}tjj|g|¢RŽS)NÚXDG_CONFIG_HOMEz
~/.config/)ÚosÚenvironrNrëÚ
expanduserÚjoin)Ú
path_segmentsÚxdg_config_homes  rÚget_xdg_config_home_pathr^sI€Ý”j—n’nØÝ
Œ×Ò˜<Ñ(Ô(ñô€OõŒ7Œ<˜Ð8¨-Ð8Ð8Ð8Ð8rc#ó®K—dD]Ï}tj dd¦« d¦«D]™}tj tj ||¦«¦«rZtj |¦«\}}|V—tj |¦«\}}|dks|dkr|V—nŒšŒÐdS)N)zgit.exezgit.cmdÚPATHÚú;Úmingw32Úmingw64)rrrNr–rëÚexistsr	)ÚexerëÚgit_dirÚ_bin_dirÚ
parent_dirÚbasenames      rÚ_find_git_in_win_pathrfsÙèè€Ø%ððˆÝ”J—N’N 6¨2Ñ.Ô.×4Ò4°SÑ9Ô9ð	ð	ˆDÝŒw~Š~bœgŸlšl¨4°Ñ5Ô5Ñ6Ô6ð

õ
%'¤G§M¢M°$Ñ$7Ô$7Ñ!˜Ø


Ý')¤w§}¢}°WÑ'=Ô'=Ñ$
˜HؘyÒ(Ð(¨H¸	Ò,AÐ,AØ$Ð$Ð$Ð$ؐð

øððrc#ózK—ddl}ddl}| ¦«dkrd}nd}|j|jfD]„}tt¦«5| ||¦«5}| |d¦«\}}||j	kr|V—ddd¦«n#1swxYwYddd¦«n#1swxYwYŒ…dS)NrÚAMD64zGSOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Git_is1z;SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Git_is1ÚInstallLocation)
ÚplatformÚwinregÚmachineÚHKEY_CURRENT_USERÚHKEY_LOCAL_MACHINErÚOSErrorÚOpenKeyÚQueryValueExÚREG_SZ)rrÚsubkeyrÚkÚvalÚtyps       rÚ_find_git_in_win_regr*vsaèè€Ø€O€O€OØ€M€M€Mà×ÒÑÔ˜WÒ$Ð$ð
1ð	ˆð
WˆàÔ(¨&Ô*CÐDððˆÝ
•gÑ
Ô
ð	ð	Ø—’  VÑ,Ô,ð
°Ø!×.Ò.¨qÐ2CÑDÔD‘Sؘ&œ-Ò'Ð'ؐIIIð
ð
ð
ñ
ô
ð
ð
ð
ð
ð
ð
øøøð
ð
ð
ð
ð	ð	ð	ñ	ô	ð	ð	ð	ð	ð	ð	øøøð	ð	ð	ð	øððs6ÁB/Á#)BÂB/ÂBÂB/ÂB B/Â/B3	Â6B3	c#ó\K—dtjvr3tj tjddd¦«V—t	¦«D]%}tj |dd¦«V—Œ&t¦«D]%}tj |dd¦«V—Œ&dS)NÚPROGRAMDATAÚGitÚconfigÚetcÚ	gitconfig)rrrër	rr*)rs rÚget_win_system_pathsr1s®èè€Øœ
Ð"Ð"ÝŒglŠl2œ: mÔ4°e¸XÑFÔFÐFÐFÐFå(Ñ*Ô*ð8ð8ˆÝŒglŠl˜7 E¨;Ñ7Ô7Ð7Ð7Ð7Ð7Ý'Ñ)Ô)ð8ð8ˆÝŒglŠl˜7 E¨;Ñ7Ô7Ð7Ð7Ð7Ð7ð8ð8rcó—eZdZdZ	ddeedeeddfd„Zdefd„Z	e
dd„¦«Ze
deefd	„¦«Zd
e
dedefd„Zd
e
dedeefd
„Zd
e
dedeeefddfd„Zdeefd„ZdS)Ú
StackedConfigz6Configuration which reads from multiple config files..NÚbackendsÚwritabler có"—||_||_dSr)r4r5)r%r4r5s   rr&zStackedConfig.__init__s€ð!ˆŒ
Ø ˆŒ
ˆ
ˆ
rcó2—d|jj›d|j›dS)Nú<z for ú>)r†rSr4r$s rr‡zStackedConfig.__repr__£s"€ØC4”>Ô*ÐCÐC°´ÐCÐCÐCÐCrcó<—|| ¦«¦«Sr)Údefault_backends)r*s rrMzStackedConfig.default¦s€àˆs3×'Ò'Ñ)Ô)Ñ*Ô*Ð*rcóì—g}| tj d¦«¦«| t	dd¦«¦«dtjvrF| d¦«tjdkr!| t¦«¦«g}|D]C}	t |¦«}n#t$rYŒ*wxYw| |¦«ŒD|S)zjRetrieve the default configuration.

        See git-config(1) for details on the files searched.
        z~/.gitconfigÚgitr.ÚGIT_CONFIG_NOSYSTEMz/etc/gitconfigÚwin32)
r;rrërrrr€rrÁr1rèrúÚFileNotFoundError)r*Úpathsr4rëÚcfs     rr;zStackedConfig.default_backendsªsö€ðˆØ
Š•R”W×'Ò'¨Ñ7Ô7Ñ8Ô8Ð8Ø
ŠÕ-¨e°XÑ>Ô>Ñ?Ô?Ð?à ­¬
Ð2Ð2ØLŠLÐ)Ñ*Ô*Ð*ÝŒ|˜wÒ&Ð&Ø—’Õ1Ñ3Ô3Ñ4Ô4Ð4àˆØð	 ð	 ˆDð
Ý×)Ò)¨$Ñ/Ô/øÝ$ð
ð
ð
ؐð
øøøàOŠO˜BÑÔÐÐ؈sÂ3CÃ
CÃCr[r\có´—t|t¦«s|f}|jD]*}	| ||¦«cS#t$rYŒ'wxYwt	|¦«‚r)rrŸr4rNrJ©r%r[r\Úbackends    rrNzStackedConfig.getÂsw€Ý˜'¥5Ñ)Ô)ð	!ؐjˆGØ”}ð	ð	ˆGð
Ø—{’{ 7¨DÑ1Ô1Ð1Ð1Ð1øÝð
ð
ð
ؐð
øøøåt‰nŒnÐs£;»
AÁAc#ó¨K—t|t¦«s|f}|jD]/}	| ||¦«Ed{V—†Œ #t$rYŒ,wxYwdSr)rrŸr4rbrJrDs    rrbzStackedConfig.get_multivarÌsŠèè€Ý˜'¥5Ñ)Ô)ð	!ؐjˆGØ”}ð	ð	ˆGð
Ø"×/Ò/°¸Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>øÝð
ð
ð
ؐð
øøøð	ð	s¥AÁ
AÁAr-cóp—|j€t|j¦«‚|j |||¦«Sr)r5r^rlrms    rrlzStackedConfig.setÕs6€ðŒ=Ð Ý% d¤hÑ/Ô/Ð/ØŒ}× Ò  ¨$°Ñ6Ô6Ð6rc#ó¢K—t¦«}|jD]6}| ¦«D]}||vr| |¦«|V—Œ Œ7dSr)rlr4rqÚadd)r%ÚseenrEr[s    rrqzStackedConfig.sectionsÜsqèè€Ý‰uŒuˆØ”}ð	"ð	"ˆGØ"×+Ò+Ñ-Ô-ð
"ð
"Ø $Ð&Ð&Ø—H’H˜WÑ%Ô%Ð%Ø!MMMøð
"ð	"ð	"rr)r r3)rSrTrUrtr
rèrr&rr‡rVrMr;rurvrwrNrrbrryrxrlr{rqrXrrr3r3šs{€€€€€Ø@Ð@ðLPð!ð!ؘZÔ(ð!Ø4<¸ZÔ4Hð!à	
ð!ð!ð!ð!ðD˜#ðDðDðDðDðð+ð+ð+ñ„[ð+ðð  jÔ!1ðððñ„[ðð.˜;ð¨hð¸5ððððð Kð°xðÀHÈUÄOððððð7Ø"ð7Ø*2ð7Ø;@ÀÈDÀÔ;Qð7à	
ð7ð7ð7ð7ð"˜( 7Ô+ð"ð"ð"ð"ð"ð"rr3rëcóT—t |¦«}t|¦«S)zRead a .gitmodules file.)rèrúÚparse_submodules)rëÚcfgs  rÚread_submodulesrNås#€å
×
Ò
˜tÑ
$Ô
$€CݘCÑ Ô Ð rr.c#óØK—| ¦«D]R}|\}}|dkrE	| |d¦«}| |d¦«}|||fV—ŒB#t$rYŒNwxYwŒSdS)zÝParse a gitmodules GitConfig file, returning submodules.

    Args:
      config: A `ConfigFile`
    Returns:
      list of tuples (submodule path, url, name),
        where name is quoted part of the section's name.
    s	submodulespathóurlN)r3rNrJ)r.r[Úsection_kindrÚsm_pathÚsm_urls      rrLrLës¦èè€ð—;’;‘=”=ððˆØ%,Ñ"ˆlؘ<Ò'Ð'ð
Ø Ÿ*š* W¨gÑ6Ô6ØŸš G¨VÑ4Ô4Ø ¨Ð5Ð5Ð5Ð5Ð5øÝð
ð
ð
ðð	
øøøð(ððs¥3AÁ
A&Á%A&FÚpushc#óÔK—| ¦«D]Ð}|ddkrŒ|d}	t| |d¦«¦«}n#t$rg}YnwxYw|r8	|t| |d¦«¦«z
}n#t$rYnwxYw|D]E}t	|t
¦«sJ‚| d¦«| d¦«fV—ŒFŒÑdS)z.Iterate over insteadOf / pushInsteadOf values.rrPrÚ	insteadOfÚ
pushInsteadOfzutf-8N)rqr@rbrJrrÚdecode)r.rTr[ÚreplacementÚneedlesÚneedles      rÚiter_instead_ofr\s<èè€à—?’?Ñ$Ô$ðFðFˆØ1Œ:˜ÒÐØؘa”jˆð	ݘ6×.Ò.¨w¸ÑDÔDÑEÔEˆGˆGøÝð	ð	ð	؈GˆGˆGð	øøøàð	ð
؝4 × 3Ò 3°G¸_Ñ MÔ MÑNÔNÑNøÝð
ð
ð
ؐð
øøøàð	Fð	FˆFݘf¥eÑ,Ô,Ð,Ð,Ð,Ø—-’- Ñ(Ô(¨+×*<Ò*<¸WÑ*EÔ*EÐEÐEÐEÐEÐEð	FðFðFs#¯#AÁA"Á!A"Á(&BÂ
BÂBÚorig_urlcóޗd}|}t||¦«D]W\}}| |¦«sŒt|¦«t|¦«kr|}||t|¦«d…z}ŒX|S)z)Apply insteadOf / pushInsteadOf to a URL.rN)r\r¯r0)r.r]rTÚlongest_needleÚupdated_urlr[rYs       rÚapply_instead_ofrasƒ€à€NØ€KÝ.¨v°tÑ<Ô<ð@ð@шØ×"Ò" 6Ñ*Ô*ð	Ø݈~ÑÔ¥ V¡¤Ò,Ð,Ø#ˆNØ%¨µ°V±´°°Ô(?Ñ?ˆKøØÐr)F)8rtrr€Ú
contextlibrÚtypingrrrrrr	r
rrr
rrÚfilerr©rKrrrrzrrvr{rurwryrZr}r³r¾r¿rÂrÃrÊr±rxrÔr×rÞrærèrrr*r1r3rNrLr\rarXrrú<module>res!ðð*ðð
€	€	€	Ø
€
€
€
ØÐÐÐÐÐð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ð
ðÐÐÐÐÐàˆ6‰8Œ8€ððððKðKðKðKðK nñKôKðKð\
€Ø˜Ô€Ø
s
Ô
€ØE˜3  e¨E°3¨JÔ&7¸Ð&<Ô =Ð=Ô>€Ø
€Ø%˜*Ô€	ðb'ðb'ðb'ðb'ðb'ñb'ôb'ðb'ðJq#ðq#ðq#ðq#ðq#˜¨°ÀÀeÀÔ1LÐ(LÔMñq#ôq#ðq#ðh$˜%ð$ Eð$ð$ð$ð$ð€CˆJ„JE‘
”
Ø€CˆI„Iˆsˆs4‰yŒyØ€CˆI„Iˆsˆs5‰zŒzØ€CˆI„Iˆsˆs5‰zŒzØ€CˆI„Iˆsˆs5‰zŒzð€
ð#d‘)”)˜S˜S ™YœYÐ'€ØS˜‘Z”Z   T¡¤Ð+Ðð*˜ð* 5ð*ð*ð*ð*ðZ˜ð 5ððððð˜uð¨ððððð˜eð¨ððððð˜%ð Eððððð% Uð%¨u°W¸e°^Ô/Dð%ð%ð%ð%ðP[>ð[>ð[>ð[>ð[>ñ[>ô[>ð[>ð|9ð9ð9ð
ð
ð
ð ððð48ð8ð8ðH"ðH"ðH"ðH"ðH"FñH"ôH"ðH"ðV!˜#ð! (¨5°¸¸uÐ1DÔ+EÔ"Fð!ð!ð!ð!ð˜Zð¨H°U¸5À%ÈÐ;NÔ5OÔ,Pððððð.FðF˜FðF¨$ðF¸8ÀEÈ#ÈsÈ(ÄOÔ;TðFðFðFðFð(
ð
˜Vð
¨sð
¸$ð
È3ð
ð
ð
ð
ð
ð
r