
    N                     z   S r SSKrSSKJrJrJrJrJrJrJ	r	J
r
  SSKJrJrJrJrJrJrJrJrJrJrJrJr  SSKJr  SSKJr  / SQr " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r  " S S\5      r!S r" " S S\5      r# " S S\5      r$ " S S\5      r% " S S\5      r& " S S\5      r' " S S\5      r( " S S \5      r) " S! S"\5      r* " S# S$\5      r+ " S% S&\5      r, " S' S(\5      r- " S) S*\5      r. " S+ S,\5      r/ " S- S.\5      r0 " S/ S0\5      r1 " S1 S2\5      r2 " S3 S4\5      r3g)5z
pygments.lexers.configs
~~~~~~~~~~~~~~~~~~~~~~~

Lexers for configuration file formats.

:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
    N)ExtendedRegexLexer
RegexLexerdefaultwordsbygroupsincludeusingline_re)TextCommentOperatorKeywordNameStringNumberPunctuation
WhitespaceLiteralErrorGeneric)	BashLexer)	JsonLexer)IniLexerSystemdLexerDesktopLexerRegeditLexerPropertiesLexerKconfigLexerCfengine3LexerApacheConfLexerSquidConfLexerNginxConfLexerLighttpdConfLexerDockerLexerTerraformLexerTermcapLexerTerminfoLexerPkgConfigLexerPacmanConfLexerAugeasLexer	TOMLLexerNestedTextLexerSingularityLexerUnixConfigLexerc                      \ rS rSrSrSr/ SQr/ SQrSS/rS\	4S	\
R                  4S
\" \\	5      4S\" \R                  \	\\	\\\	5      S4S\" \R                  \	\\	\5      4S\R                  4/S\	4S\" \	\\\	5      4S\S4/S.rS rSrg)r      z-
Lexer for configuration files in INI style.
INI)inicfgdosini)z*.iniz*.cfgz*.infz.editorconfigz
text/x-iniztext/inf\s+[;#].*z(\[.*?\])([ \t]*)$u0   (.*?)([  \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)valueu8   (.*?)([ \t]*)([=:])([  \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)z(.+?)$z(\s*)(.*)(\\)([ \t]*)z.*$#poprootr7   c                 ^    U R                  S5      nUS:  a  gU S   S:X  a  XS-
     S:X  a  gg)	N
   Fr   [   ]g?)find)textnposs     *lib/third_party/pygments/lexers/configs.pyanalyse_textIniLexer.analyse_text>   s7    yy!87c>d6lc1     N)__name__
__module____qualname____firstlineno____doc__namealiases	filenames	mimetypesr   r   Singler   r   r   	Attributer   r   r   tokensrE   __static_attributes__rH   rG   rD   r   r      s     D&GI z*I Z '"HWj$AB@dnnj(JJ( Idnnj(JOQ '
 Z %j&$
;=VV$	
F,rG   r   c                       \ rS rSrSrSrSrS/rS/rSS\	4S	\
" \R                  \	5      4S
\
" \\	5      4S\
" \R                  \R                   \	\\	\\	5      4/0rS rSrg)r   G   z3
Lexer for .desktop files.

.. versionadded:: 2.16
zDesktop filezXhttps://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.htmldesktopz	*.desktopr:   	^[ \t]*\nz
^(#.*)(\n)(\[[^\]\n]+\])(\n)zG([-A-Za-z0-9]+)(\[[^\] \t=]+\])?([ \t]*)(=)([ \t]*)([^\n]*)([ \t\n]*\n)c                     U R                  S5      (       a  g[        R                  " SU S S [        R                  5      b  gg)Nz[Desktop Entry]      ?z^\[Desktop Entry\][ \t]*$  ?        
startswithresearch	MULTILINErB   s    rD   rE   DesktopLexer.analyse_text]   s9    ??,--9914:r||LXrG   rH   N)rI   rJ   rK   rL   rM   rN   urlrO   rP   r   r   r   rR   r   r   rS   	Namespacer   r   rT   rE   rU   rH   rG   rD   r   r   G   s     D
dCkGI 	:&HW^^Z@A"HWj$ABWdnndnnj(JX^`jkm	
FrG   r   c                   <   \ rS rSrSrSrSrS/r/ SQrS\	4S\
" \R                  \	5      4S	\
" \\	5      4S
\
" \R                  \	\\	\\\	5      S4S\
" \R                  \	\\	\\	5      4/S\
" \R                  \	5      4S\
" \	\\\	5      4S\
" \	\\	5      S4/S.rS rSrg)r   e   z7
Lexer for systemd unit files.

.. versionadded:: 2.16
SystemdzDhttps://www.freedesktop.org/software/systemd/man/systemd.syntax.htmlsystemd)z	*.servicez*.socketz*.devicez*.mountz*.automountz*.swapz*.targetz*.pathz*.timerz*.slicez*.scoperY   z^([;#].*)(\n)rZ   z*([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\\)(\n)r7   z&([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\n)z([ \t]*)([^\n]*)(\\)(\n)z([ \t]*)([^\n]*)(\n)r8   r9   c                     U R                  S5      (       a  g[        R                  " SU S S [        R                  5      b  gg)Nz[Unit]r\   z^\[Unit\][ \t]*$r]   r^   r_   r`   re   s    rD   rE   SystemdLexer.analyse_text   s8    ??8$$99($t*bllCOrG   rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   r   r   r   rR   r   r   rS   r   r   r   rT   rE   rU   rH   rG   rD   r   r   e   s     D
PCkGI :&x
CD"HWj$AB:dnnj(JJ( 7dnnj(JPZ[]

 x
CD(j&$
;=$j&*5v?
F,rG   r   c                   :   \ rS rSrSrSrSrS/rS/rS/r	S\
4S	\4S
\R                  4S\" \\\R$                  \5      4S\" \R&                  \\\5      S4S\" \R&                  \\\5      S4/S\S4S\" \R(                  \\5      S4S\S4\" S5      /S.rS rSrg)r      zN
Lexer for Windows Registry files produced by regedit.

.. versionadded:: 1.6
regz8http://en.wikipedia.org/wiki/Windows_Registry#.REG_filesregistryz*.regztext/x-windows-registryzWindows Registry Editor.*r5   r6   z(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$z)("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)r7   z(.*?)([ \t]*)(=)([ \t]*)-r8   z1(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+).+r9   c                 $    U R                  S5      $ )NzWindows Registry Editor)ra   re   s    rD   rE   RegeditLexer.analyse_text   s    899rG   rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   rQ   r   r   r   rR   r   r   r   r   BuiltinrS   Variabler   r   r   r   rT   rE   rU   rH   rG   rD   r   r      s     D
DClG	I*+I *40Z '.gxw?A :dnnj(JG )dnnj(JG
  8V$Admm[&96C FF#FO
!F4:rG   r   c            	           \ rS rSrSrSrSS/rS/rS/rS\	R                  4S	\4S
\4\" S5      /S\R                  4\" S5      S\" \\\5      S4S\S4S	\S4/S\4\" S5      S	\S4/S\" \R&                  \5      4S\R&                  4/S.rSrg)r      z
Lexer for configuration files in Java's properties format.

Note: trailing whitespace counts as part of the value as per spec

.. versionadded:: 1.4

Properties
propertiesjpropertiesz*.propertiesztext/x-java-propertiesz[!#].*|/{2}.*\nz	^[^\S\n]+keyz
[^\\:=\s]+escapesz([^\S\n]*)([:=])([^\S\n]*))r8   r7   [^\S\n]+r8   z[^\\\n]+z(\\\n)([^\S\n]*)z\\(.|\n))r:   r   r7   r   rH   N)rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   rR   r   r   r   rS   r   r   r   r   EscaperT   rU   rH   rG   rD   r   r      s     D]+G I)*I
 w~~.J:&EN	
 DNN+I +j(J7  *&78J'
  &!IJ'
 !(6==*"EF&--(	
C'FrG   r   c                 b    SnUS:X  a  SnOSUS-
  -  nU S:X  a  SnOSU -  nSU< S	U< S
U< S3$ )N      +z{1,%d}r?    z{%s}z(?:\t| z\t| {z})z.*\nrH   )level	tab_widthspace_repeatlevel_repeats       rD   
_rx_indentr      sH     I A~9q=1z~*6	<PPrG   c                      \ rS rSrSrSr/ SQr/ SQrS/rSr	S r
S	 rS
\4S\R                  4\" SSS9\4S\S4S\R$                  4S\4S\4S\R,                  4S\R                  4S\R0                  4S\4/S\4\
" S5      \
" S5      \
" S5      \
" S5      \
" S5      \
" S5      \
" S5      \" S 5      /	\" S5      \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      S!.	rS"rg#)$r   i	  z7
For Linux-style Kconfig files.

.. versionadded:: 1.6
Kconfig)kconfig
menuconfigzlinux-configzkernel-config)zKconfig*z*Config.in*zexternal.in*zstandard-modules.inztext/x-kconfigr   c                 @    [        U 5      [        R                  SU -  4$ )Nzindent%s)r   r   Docr   s    rD   call_indentKconfigLexer.call_indent  s    5!6::zE/ABBrG   c                 \    [        U 5      [        R                  4S[        4[	        S5      /$ )N\s*\n#pop:2)r   r   r   r   r   r   s    rD   	do_indentKconfigLexer.do_indent  s/     

+tH
 	
rG   r5   #.*?\n)mainmenuconfigr   choice	endchoicecommentmenuendmenuz
visible ififendifsourcepromptselectz
depends onr   rangeoption\bsuffixz(---help---|help)[\t ]*\nhelpz;(bool|tristate|string|hex|int|defconfig_list|modules|env)\bz[!=&|]z[()][0-9]+z'(''|[^'])*'z"(""|[^"])*"\S+r               r=   r   r?   r8   )	r:   r   indent7indent6indent5indent4indent3indent2indent1rH   N)rI   rJ   rK   rL   rM   rN   rO   rP   rQ   flagsr   r   r   r   rR   r   r   r   rw   r   r   r   Integerr   Doubler   r   rT   rU   rH   rG   rD   r   r   	  sC    DHG(I!"IEC
 Z ' # ,1	2
  *7F;K\\!k"'fmm,fmm,TN#
. t NNNNNNNFO
  Q<Q<Q<Q<Q<Q<Q<Y-FrG   r   c                      \ rS rSrSrSrSrSS/rS/r/ r	S\
4S	\" \\\\\5      4S
\" \\\\\R                  \5      S4S\" \\\\\R                  5      4S\" \\R"                  \\\R$                  \\\5      4S\" \R(                  \\\5      4S\S4S\" \R                  \5      4S\" \R.                  \5      4S\" \R0                  \5      4S\R"                  4S\4S\4S\4S\R4                  4S\R6                  4S\R                  4S\4/S\R8                  S4S\R:                  4S\S4S \4S!\4/S\R8                  S"4S#\R8                  S4S$\R8                  4/S%\S4S&\4S\R"                  4S\4/S'.rS(rg))*r   iV  z:
Lexer for CFEngine3 policy files.

.. versionadded:: 1.5
	CFEngine3zhttp://cfengine.org	cfengine3cf3z*.cfr   z(body)(\s+)(\S+)(\s+)(control)z%(body|bundle)(\s+)(\S+)(\s+)(\w+)(\()arglistz!(body|bundle)(\s+)(\S+)(\s+)(\w+)z7(")([^"]+)(")(\s+)(string|slist|int|real)(\s*)(=>)(\s*)z(\S+)(\s*)(=>)(\s*)"stringz	(\w+)(\()z([\w.!&|()]+)(::)z(\w+)(:)z@[{(][^)}]+[})]z[(){},;]z=>z->z\d+\.\d+\d+\w+r5   z\$[{(]interpol\\.r8   r~   .#pushz[})]z	[^${()}]+z\),)r:   r   r   r   rH   N) rI   rJ   rK   rL   rM   rN   rg   rO   rP   rQ   r   r   r   r   r   Functionr   rx   Typer   Reservedr   r   ClassDeclarationr   Floatr   Interpolr   rT   rU   rH   rG   rD   r   r   V  s    D
CE"GII  .gz7JHJ5gz7J{[ 2gz7JNPGk4==+ ',,
HjRS $g&&
HdCE68$8DMM;?@!8DJJ#DE(7#6#6DE/+&HH&,,'V^^$T]]#Z 3
8 4V]]#66"FO6N
 1foov.6??+
 K(;T]]#Z 	
Q.FrG   r   c                   ~   \ rS rSrSrSr/ SQr/ SQrS/r\	R                  \	R                  -  rS\4S\4S	\" \R"                  \\\R"                  5      4S
\" \R"                  \R"                  5      4S\R&                  S4S\4/S\4S\S4S\4S\4S\4S\4S\R,                  4S\4S\R0                  4S\4/
S.rSrg)r    i  z_
Lexer for configuration files following the Apache config file
format.

.. versionadded:: 0.6

ApacheConf)
apacheconfaconfapache)z	.htaccesszapache.confzapache2.confztext/x-apacheconfr5   z#(.*\\\n)+.*$|(#.*?)$z"(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)z(</[^\s>]+)(>)z[a-z]\w*r7   z\.+z\\\nz\n+r8   z\\r   \d+\.\d+\.\d+\.\d+(?:/\d+)?r   z/([*a-z0-9][*\w./-]+)z(on|off|none|any|all|double|email|dns|min|minimal|os|productonly|full|emerg|alert|crit|error|warn|notice|info|debug|registry|script|inetd|standalone|user|group)\bz"([^"\\]*(?:\\(.|\n)[^"\\]*)*)"z	[^\s"\\]+r9   rH   N)rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rb   rd   
IGNORECASEr   r   r   r   r   Tagr   rw   r   r   Otherr   r   rT   rU   rH   rG   rD   r    r      s    D/G<I$%ILL2==(E Z %w/2dhh
FDHH=?dhh)+$,,0TN	
 dOZ(DM*%+V4V%v||4  '( 0?4 
FrG   r    c                   j   \ rS rSrSrSrSr/ SQrS/rS/r	\
R                  rSrS	rS
rSrSrSrSrS\4S\S4\" \SSS9\4\" \SSS9\R2                  4\" \SSS9\4\" \SSS9\4\" \SSS9\4\" \SSS9\4\S-   \-   S-   \R8                  4S\4S\4/S\R<                  S4S\S4\" S5      /S.r Sr!g )!r!   i  z=
Lexer for squid configuration files.

.. versionadded:: 0.9
	SquidConfzhttp://www.squid-cache.org/)	squidconf
squid.confsquidr   ztext/x-squidconf)
access_logaclalways_directannounce_hostannounce_periodannounce_portannounce_toanonymize_headersappend_domainas_whois_serverauth_param_basicauthenticate_childrenauthenticate_programauthenticate_ttlbroken_postsbuffered_logscache_access_logcache_announce	cache_dircache_dns_programcache_effective_groupcache_effective_user
cache_hostcache_host_aclcache_host_domain	cache_log	cache_memcache_mem_highcache_mem_low	cache_mgrcachemgr_passwd
cache_peercache_peer_accesscache_replacement_policycache_stoplistcache_stoplist_patterncache_store_log
cache_swapcache_swap_highcache_swap_logcache_swap_low	client_dbclient_lifetimeclient_netmaskconnect_timeoutcoredump_dirdead_peer_timeoutdebug_optionsdelay_accessdelay_classdelay_initial_bucket_leveldelay_parametersdelay_pools	deny_infodns_childrendns_defnamesdns_nameserversdns_testnamesemulate_httpd_logerr_html_textfake_user_agentfirewall_ipforwarded_forforward_snmpd_portfqdncache_sizeftpget_optionsftpget_programftp_list_widthftp_passiveftp_userhalf_closed_clientsheader_accessheader_replacehierarchy_stoplisthigh_response_time_warninghigh_page_fault_warning
hosts_file	htcp_porthttp_accesshttp_anonymizerhttpd_accelhttpd_accel_hosthttpd_accel_porthttpd_accel_uses_host_headerhttpd_accel_with_proxy	http_porthttp_reply_access
icp_accessicp_hit_staleicp_porticp_query_timeoutident_lookupident_lookup_accessident_timeoutincoming_http_averageincoming_icp_averageinside_firewallipcache_highipcache_lowipcache_sizelocal_domainlocal_iplogfile_rotatelog_fqdnlog_icp_querieslog_mime_hdrsmaximum_object_sizemaximum_single_addr_triesmcast_groupsmcast_icp_query_timeoutmcast_miss_addrmcast_miss_encode_keymcast_miss_portmemory_poolsmemory_pools_limitmemory_replacement_policy
mime_tablemin_http_poll_cntmin_icp_poll_cntminimum_direct_hopsminimum_object_sizeminimum_retry_timeoutmiss_accessnegative_dns_ttlnegative_ttlneighbor_timeoutneighbor_type_domain
netdb_high	netdb_lownetdb_ping_periodnetdb_ping_ratenever_directno_cachepassthrough_proxypconn_timeoutpid_filenamepinger_programpositive_dns_ttlprefer_direct
proxy_authproxy_auth_realm
query_icmpquick_abortquick_abort_maxquick_abort_minquick_abort_pctrange_offset_limitread_timeoutredirect_childrenredirect_programredirect_rewrites_host_headerreference_agerefresh_patternreload_into_imsrequest_body_max_sizerequest_sizerequest_timeoutshutdown_lifetimesingle_parent_bypasssiteselect_timeoutsnmp_accesssnmp_incoming_address	snmp_portsource_ping	ssl_proxystore_avg_object_sizestore_objects_per_bucketstrip_query_termsswap_level1_dirsswap_level2_dirstcp_incoming_addresstcp_outgoing_addresstcp_recv_bufsizetest_reachabilityudp_hit_objudp_hit_obj_sizeudp_incoming_addressudp_outgoing_addressunique_hostnameunlinkd_programuri_whitespaceuseragent_logvisible_hostname
wais_relaywais_relay_hostwais_relay_port)z
proxy-onlyweightttlzno-queryr   zround-robinzmulticast-responderonoffalldenyallowviaparentz	no-digestheaplrurealmchildrenq1q2credentialsttlnonedisableoffline_togglediskd)shutdowninfo	parameterserver_listclient_listr   )objects
vm_objectsutilizationipcache	fqdncachedns
redirectorioreply_headersfiledescriptorsnetdb)statusenabler  clear)	url_regexurlpath_regexreferer_regexportprotoreq_mime_typerep_mime_typemethodbrowserusersrcdsttime	dstdomainidentsnmp_communitya  (?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|:(?=:))(?:[0-9a-f]{0,4}(?:(?<=::)|(?<!::):)){6}(?:[0-9a-f]{0,4}(?:(?<=::)|(?<!::):)[0-9a-f]{0,4}(?:(?<=::)|(?<!:)|(?<=:)(?<!::):)|(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))r5   #r   r   prefixr   zstats/zlog/=z(?:/(?:z|\b\d+\b))?z(?:\b\d+\b(?:-\b\d+|%)?)r   z	\s*TAG:.*r8   rt   )r:   r   rH   N)"rI   rJ   rK   rL   rM   rN   rg   rO   rP   rQ   rb   r   r   keywordsoptsactionsactions_statsactions_logaclsip_rer   r   r   r   r   Constantr   r   r   r   r   r   rT   rU   rH   rG   rD   r!   r!     s?    D
'C2GI#$IMME9HvDG
M
 ;KD	 
 Z 7I&8E%8'B4e4dmmD757@=5A6J;wt<fE4e4g>Z%'.8&,,G(&1TN
 6==&1GV$FO
FrG   r!   c                      \ rS rSrSrSrSrS/rS/rS/r	S\
" \\\5      4S	\S
4\" S5      /S\S4S	\R                   S
4\" S5      /S\S4S\S4\" S5      /S\R$                  4S\R&                  4S\R(                  4S\
" \\\R,                  5      4S\4S\R,                  4S\
" \\\R0                  5      4S\4S\4S\4S\4S\4/S.rSrg )!r"   iB  z>
Lexer for Nginx configuration files.

.. versionadded:: 0.11
zNginx configuration filezhttp://nginx.net/nginxz
nginx.confztext/x-nginx-confz(include)(\s+)([^\s;]+)z[^\s;#]+stmtbase\}r   \{block;r8   #.*\nzon|offz\$[^\s;#()]+z([a-z0-9.-]+)(:)([0-9]+)z[a-z-]+/[a-z-+]+z[0-9]+[km]?\bz(~)(\s*)([^\s{]+)z[:=~]z[^\s;#{}$]+z	/[^\s;#]*r5   z[$;])r:   r  r  r  rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   rQ   r   r   r   r   r   r   rh   r   rR   r  rx   r   r   r   Regexr   rT   rU   rH   rG   rD   r"   r"   B  s6   
 &D
CiGI$%I (':t)LM'6*FO
 K*'++V4FO
 K);'FO
 w~~&&dmm,(dK8: &)v~~.!8KV\\#RS{#V$4 Z dO
! FrG   r"   c                       \ rS rSrSrSrSrSS/rS/rS/r	S	S
\
R                  4S\4S\4S\4S\4S\4S\R                   4S\4S\R&                  4S\4/
0rSrg)r#   iq  zA
Lexer for Lighttpd configuration files.

.. versionadded:: 0.11
zLighttpd configuration filezhttp://lighttpd.net/lighttpdlightyzlighttpd.confztext/x-lighttpd-confr:   r  z/\S*z[a-zA-Z._-]+r   r   z=>|=~|\+=|==|=|\+z\$[A-Z]+z[(){}\[\],]z"([^"\\]*(?:\\.[^"\\]*)*)"r5   rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   rQ   r   rR   r   r   r   r   rw   r   r   r   r   rT   rU   rH   rG   rD   r#   r#   q  s    
 )D
 C8$G !I'(I 	w~~&dOg&+V4!8,$,,'[)*FMM:Z 
FrG   r#   c                      \ rS rSrSrSrSrSS/rSS/rS	/r	S
r
SrSr\R                  \R                  -  rSS\4S\" \\\\\\\5      4S\< S3\" \\\" \5      5      4S\< S\< S3\" \\\" \5      5      4S\< S3\" \\\" \5      \" \5      5      4S\< S\< S3\" \\\" \5      5      4S\
-  \" \\\5      4S\< S3\" \\5      4S\" \5      4/	0rSrg)r$   i  z>
Lexer for Docker configuration files.

.. versionadded:: 2.0
Dockerzhttp://docker.iodocker
dockerfile
Dockerfilez*.dockerztext/x-dockerfile-configz-(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)z-(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)z(?:\s*\\?\s*)r:   z#.*z1(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?z(ONBUILD)(\s+)()z(HEALTHCHECK)(\s+)((z	--\w+=\w+z)*)z#(VOLUME|ENTRYPOINT|CMD|SHELL)(\s+)(z
)(\[.*?\])z(LABEL|ENV|ARG)(\s+)((z\w+=\w+z(%s|VOLUME)\b(\s+)(.*)(z)(\s+)z(.*\\\n)*.+rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   rQ   	_keywords_bash_keywords_lbrb   r   rd   r   r   r   r   r   r   r	   r   r   rT   rU   rH   rG   rD   r$   r$     s9   
 D
C&Gz*I+,IAIFN
CMMBLL(E 	WAgz6:w
TZ[]&)+Xgz5QZK[-\]8;SA*eI.>?ACFH*eI.>i@PQS8;SA*eI.>?A&)4hw
TZ6[\+-x/LMU9-.
FrG   r$   c                   `   \ rS rSrSrSrSr/ SQrSS/rSS	/r	S
r
SR                  SR                  \
5      5      rSrSrSrSrSrSrSrSrSrSr\\-   \-   \-   \-   \-   \-   \-   \-   rSR                  SR                  \5      5      rS r\" S5      \" S5      S\" \R<                  5      4\" SSSS9\ RB                  4\" \SSS9\"RF                  4\" S5      \" S5      S \$4/S!\%RL                  S"4S#\%RN                  4\" S5      S$\" \(\ RR                  \(\*\(\+5      4S%\" \(\ RX                  \(\*\(5      4S&\" \(\-R:                  R<                  \(\*\(5      4\S'-   \" \ R\                  \+5      4S(\" \+\ RR                  \+5      4\S)-   \" \"R^                  \(\ R`                  \(\ Rb                  \(\+5      4S*\4/
S+\" \ Rb                  5      4S,\" \ Rb                  5      4/S-\+4/S.\%RL                  4S/\%RL                  S04S1\%RL                  S24S3\%RL                  4/S4\(4S5\(4S6\" \2\(5      4/S7.r3S8r4g9):r%   i  z<
Lexer for terraformi ``.tf`` files.

.. versionadded:: 2.1
	Terraformzhttps://www.terraform.io/)	terraformtfhclz*.tfz*.hclzapplication/x-tfzapplication/x-terraform)backenddatamoduleoutputproviderprovisionerresourcevariablez({})|)	r   numberboollisttuplemapsetobjectnull)	absceilfloorlogmaxmixparseintpowsignum)chompformat
formatlistindentjoinlowerregexregexallreplacesplitstrrevsubstrtitletrim
trimprefix
trimsuffix	trimspaceupper)alltrueanytrue	chunklistcoalescecoalescelistcompactconcatcontainsdistinctelementflattenindexkeyslengthr  lookupr  	matchkeysmerger   reversesetintersection
setproductsetsubtractsetunionslicesortsum	transposevalueszipmap)base64decodebase64encode
base64gzip	csvdecode
jsondecode
jsonencodetextdecodebase64textencodebase64	urlencode
yamldecode
yamlencode)	abspathdirname
pathexpandbasenamefile
fileexistsfileset
filebase64templatefile)
formatdatetimeadd	timestamp)base64sha256base64sha512bcryptfilebase64sha256filebase64sha512filemd5filesha1
filesha256
filesha512md5
rsadecryptsha1sha256sha512uuiduuidv5)cidrhostcidrnetmask
cidrsubnetcidrsubnets)	candefaultstobooltolisttomaptonumbertosettostringtryc              #     #    UR                  S5      nU[        UR                  S5      4v   UR                  S5      [        R                  UR                  S5      4v   UR                  S5      Ul        UR                  S5      Ul        UR
                  [        R                  UR                  S5      4v   UR                  5       Ul        UR                  S5      nSn/ n[        R                  " UR                  UR
                  5       H  nU(       a  UR                  5       R                  5       nOUR                  5       R                  5       nXt:X  a  U H4  nUR                  5       [        R                  UR                  5       4v   M6     UR                  5       [        R                  UR                  5       4v   UR                  5       Ul          OEUR                  U5        M     U H*  nUR                  5       [        UR                  5       4v   M,     [        UR                  5      Ul        g 7f)Nr?   r   r=   T)startr   groupr   	DelimiterposendHeredocr
   finditerrB   striprstripappendr   len)	selfmatchctxrw  hdnametolerantlinescheckamatchs	            rD   heredoc_callbackTerraformLexer.heredoc_callback  s     AXu{{1~--kk!nf..A>>++a.))A,ggv~~u{{1~55))+Q%%chh8E++-,,.#F ,,.&..&,,.HH $kkmV%5%5u{{}DD))+U# 9  llneV\\^;;  chh-s   H<H>basic
whitespacez(".*"))truefalser   r  
identifierpunctuationr   z\s*/\*r   z\s*(#|//).*\nz'(\s*)([0-9a-zA-Z-_]+)(\s*)(=?)(\s*)(\{)z"(\s*)([0-9a-zA-Z-_]+)(\s*)(=)(\s*)z(\s*)("\S+")(\s*)([=:])(\s*)z(\()z(\[)([a-z_,\s]+)(\])z8(\s+)("[0-9a-zA-Z-_]+")?(\s*)("[0-9a-zA-Z-_]+")(\s+)(\{)z(<<-?)\s*([a-zA-Z_]\w*)(.*?\n)z\b(var\.[0-9a-zA-Z-_\.\[\]]+)\bz.\b([0-9a-zA-Z-_\[\]]+\.[0-9a-zA-Z-_\.\[\]]+)\bz[\[\]()\{\},.?:!=]z[^*/]z/\*r   z\*/r8   z[*/]r~   r5   z(\\)(\n))r:   r  r  r  r   r  rH   N)5rI   rJ   rK   rL   rM   rN   rg   rO   rP   rQ   classesr  r  
classes_retypesnumeric_functionsstring_functionscollection_functionsencoding_functionsfilesystem_functionsdate_time_functionshash_crypto_functionsip_network_functionstype_conversion_functionsbuiltinsbuiltins_rer  r   r   r   r   r   r   r  r   r   r   r   	MultilinerR   r   rw   r   r   rS   r   r   r   r   rx   r   rT   rU   rH   rG   rD   r%   r%     s!    D
%C(G!I#%>?I6Gzz'23JYE=W[ A` T!I !#336JJM__235JKMab!"H --

8 45K# N GL! /0 $U5A4==Q 5u5w||DL!M"
$ ))95w~~.L! 8j$,,
HjR]^` 3j$..*h
SU
 -j'.."7"7XzZ\ 7"HT]]K$HI %h{DLL+&VW UUg&&
DJJ
DMM[egrsu /0@A? 
D 0$--1HI>dmm$&
 #K0
 w(()W&&0W&&/g''(	
 JZ (445
CFFrG   r%   c            	          \ rS rSrSrSrS/rSS/r/ rS\	4S\
R                  S4S	\4/S
\S4S\S4S\4S\
R                  4/S\" \\5      4S\S4S\" \\5      4S\S4S\4S\
R&                  4/S\4S\S4S\4S\4/S.rSrg)r&   i\  z]
Lexer for termcap database source.

This is very simple and minimal.

.. versionadded:: 2.1
Termcaptermcapztermcap.src^#.*z
^[^\s#:|]+namesr5   r~   r8   :defs\|z[^:|]+z(\\)(\n[ \t]*)z\n[ \t]*r   (#)([0-9]+)r  r  z	[^\s:=#]+z\\072z[^:\\]+r   r:   r  r  r  rH   N)rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   r   r   r   r   rS   r   r   r   r   r   r   rT   rU   rH   rG   rD   r&   r&   \  s     DkGM*II gDHHg.Z 
 J';'K '	
 z :;*h/Xh788V$;4::&
 w;'!7O	
)FrG   r&   c                   "   \ rS rSrSrSrS/rSS/r/ rS\	4S\
R                  S4S	\4/S
\S4S\" \\5      S4S\4S\
R                  4/S\4S
\S4S\" \\5      4S\S4S\" \\5      4S\
R$                  4/S\4S\" \\5      S4S\4S\4/S.rSrg)r'   i  z^
Lexer for terminfo database source.

This is very simple and minimal.

.. versionadded:: 2.1
Terminfoterminfozterminfo.srcz^#.*$z
^[^\s#,|]+r  r5   r~   r8   z(,)([ \t]*)r  r  z[^,|]+z\n[ \t]+r   r  r  r  z	[^\s,=#]+z\\[,\\]z[^\\,]+r   r  rH   N)rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   r   r   r   r   r   rS   r   r   r   r   rT   rU   rH   rG   rD   r'   r'     s    DlG^,II wDHHg.Z 
 J'Xk:>GK '	
 *%J)Xh788V$Xk:>?4::&
 !Xk:>G!7O	
)FrG   r'   c            
       f   \ rS rSrSrSrSrS/rS/r/ r	S\
R                  4S\" \R                  \5      4S	\" \R                   \5      S
4\" S5      S\4S\4S\4/S\4S\R,                  S4/S\R,                  S4S\R                  4/\" S5      S\
R                  S4S\S4S\4S\4S\4/S.rSrg)r(   i  zp
Lexer for pkg-config
(see also `manual page <http://linux.die.net/man/1/pkg-config>`_).

.. versionadded:: 2.1
	PkgConfigz4http://www.freedesktop.org/wiki/Software/pkg-config/	pkgconfigz*.pc#.*$z	^(\w+)(=)z^([\w.]+)(:)spvalueinterpr5   z[^${}#=:\n.]+r   z\$\$z\$\{curlyr  r8   r   r~   z[^${}#\n\s]+)r:   r  r  r  rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   rQ   r   rR   r   r   rS   r   r   r   r   r   r   r   r   rT   rU   rH   rG   rD   r(   r(     s    D
@CmGII gnn% 8DNNH=> dhh,i9 H Z t$4L!
( dO foow/
 FOOV,T^^$

 Hgnnf-J' Z d#4L

=)FrG   r(   c            
           \ rS rSrSrSrSrS/rS/r/ r	SS\
R                  4S	\" \\\5      4S
\" \R                   \\5      4S\" \\R                   \5      4\" SSS9\R&                  4S\4S\4/0rSrg)r)   i  a+  
Lexer for pacman.conf.

Actually, IniLexer works almost fine for this format,
but it yield error token. It is because pacman.conf has
a form without assignment like:

    UseSyslog
    Color
    TotalDownload
    CheckSpace
    VerbosePkgLists

These are flags to switch on.

.. versionadded:: 2.1

PacmanConfz3https://www.archlinux.org/pacman/pacman.conf.5.html
pacmanconfzpacman.confr:   r  z^(\s*)(\[.*?\])(\s*)$z(\w+)(\s*)(=)z^(\s*)(\w+)(\s*)$)z$repoz$archz%oz%ur   r   r5   r   rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   rQ   r   rR   r   r   r   r   rS   r   r   rx   r   rT   rU   rH   rG   rD   r)   r)     s    $ D
?CnGII 	gnn% &x
GZ'PQ dnnj(;= "j$..*=?  
  ! ]] Z 4L7
FrG   r)   c                      \ rS rSrSrSrSrS/rS/rS\	" \
R                  \\R                  5      4S\	" \
R                  \\R                  5      4S	\	" \R                   \5      4S
\	" \\R                  \\
R$                  \5      4S\R(                  S4S\4S\4S\R.                  S4S\R0                  S4S\	" \R                  \\R                  5      4S\R                  4S\4/S\R2                  4S\R.                  4S\R.                  S4/S\R2                  4S\R0                  4S\R0                  S4/S\R(                  4S\R(                  S4S\R(                  S4S\R(                  4/S.rSrg )!r*   i.  z*
Lexer for Augeas.

.. versionadded:: 2.4
Augeaszhttp://augeas.netaugeasz*.augz(module)(\s*)([^\s=]+)z(let)(\s*)([^\s=]+)zV(del|store|value|counter|seq|key|label|autoload|incl|excl|transform|test|get|put)(\s+)z8(\()([^:]+)(\:)(unit|string|regexp|lens|tree|filter)(\))z\(\*r   z[*+\-.;=?|]z
[()\[\]{}]r   r   z\/r  z([A-Z]\w*)(\.)(\w+)r   r5   r   z[^"]r8   z[^/]z[^*)]r   z\*\)z[)*])r:   r   r  r   rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   r   r   rh   r   r   r   rx   rw   r   r   r   r  r   r   r   r  r   rT   rU   rH   rG   rD   r*   r*   .  s   
 D
CjG	I '1B1BJPTP^P^(_`#Xg.A.A:t}}%]^fhpquq}q}  @J  iK  LH(S^`d`m`moz  }D  }I  }I  KV  KW  Xg''3X&H%6==(+FLL'*#Xdnnk4==%YZ4==!Z 
 V]]#fmm$6==&)
 V]]#fll#FLL&)
 w(()g''1g''0g''(	
3FrG   r*   c                   6   \ rS rSrSrSrSrS/r/ SQrSS\	" \
\5      4S	\
4S
\
4S\R                  4S\4S\4S\4S\R                  4S\4S\R$                  4S\R&                  4S\R&                  4S\R&                  4S\R$                  4S\4S\4S\4/0rSrg)r+   i[  zL
Lexer for TOML, a simple language
for config files.

.. versionadded:: 2.4
TOMLz!https://github.com/toml-lang/tomltoml)z*.tomlPipfilezpoetry.lockr:   z^(\s*)(\[.*?\])$[ \t]+r~   z#.*?$z"(\\\\|\\[^\\]|[^"\\])*"z\'\'\'(.*)\'\'\'z
\'[^\']*\'z(true|false)$z[a-zA-Z_][\w\-]*z>\d{4}-\d{2}-\d{2}(?:T| )\d{2}:\d{2}:\d{2}(?:Z|[-+]\d{2}:\d{2})z'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?z\d+[eE][+-]?[0-9]+j?z[+-]?(?:(inf(?:inity)?)|nan)z[+-]?\d+z[]{}:(),;[]z\.r  rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   r   r   r   r   rR   r   r  r   r   r   r   r   r   rT   rU   rH   rG   rD   r+   r+   [  s     D
-ChG4I 	 (:w"?@ 
#Jw~~&(&1 &)F#w//0 $'
 OPVP^P^_ 8F$fll3,fll;&..) [)K  8C#
%FrG   r+   c                   F   \ rS rSrSrSrSrSS/rS/rS\	" \
\5      4S	\	" \
\5      S
4S\	" \
\5      S4S\	" \
\5      4S\	" \
\\
\\
5      4S\	" \
\5      4S\	" \
\\
\\
5      4S\	" \
\5      4S\	" \
\\
\R                  \
5      4S\	" \
\R                  \5      4S\	" \
\R                  \\
\\
5      4/\" S5      S\4\" S5      S\4S\S4S\S4/\" S5      S\R                  4S\S4S\S4S\S4/\" S5      S\4\" S5      S\S4S\S 4/\" S5      S!\S
4S"\S4/S#\
4/S$.rS%rg&)'r,   i  z
Lexer for *NextedText*, a human-friendly data format.

.. versionadded:: 2.9

.. versionchanged:: 2.16
    Added support for *NextedText* v3.0.

NestedTextzhttps://nestedtext.org
nestedtextntz*.ntz^([ ]*)(#.*)$z^([ ]*)(\{)inline_dictz^([ ]*)(\[)inline_listz^([ ]*)(>)$z^([ ]*)(>)( )(.*?)([ \t]*)$z^([ ]*)(-)$z^([ ]*)(-)( )(.*?)([ \t]*)$z^([ ]*)(:)$z^([ ]*)(:)( )([^\n]*?)([ \t]*)$z^([ ]*)([^\{\[\s].*?)(:)$z)^([ ]*)([^\{\[\s].*?)(:)( )(.*?)([ \t]*)$r  z[^\{\}\[\],\s]+inline_valuer   z\]r8   r~   z[^\{\}\[\],:\s]+r  inline_dict_valuer  r   r  z\[r  )r:   r  r  r  r  r  rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   r   r   r   r   r   r   r   r   r   rT   rU   rH   rG   rD   r,   r,     s    D
"CT"GI
 x
G<= Xj+>N Xj+>N Xj+>? ,Xj+z[_ak-lm Xj+>? ,Xj+z[_ak-lm Xj+>? 0*kS]_c_g_gis1tu *8J++VW :8JPTPXPXZegqsw  zD  <E  FA!
F L!&N#;K(E6"
 L! $((+; 34K(E6"
 L! $'N#;'K*
 L!K/K/
 
#
}AFrG   r,   c                   ,   \ rS rSrSrSrSrS/rSS/r\	R                  \	R                  -  \	R                  -  rSrSrS	r\\" \R&                  \5      S
4\\" \R&                  \5      S
4\\" \\\5      4S\4S\4S\4S\4/S\" \5      S4/S.rS rSrg)r-   i  z@
Lexer for Singularity definition files.

.. versionadded:: 2.6
SingularityzAhttps://www.sylabs.io/guides/3.0/user-guide/definition_files.htmlsingularityz*.defzS^(\s*)(bootstrap|from|osversion|mirrorurl|include|registry|namespace|includecmd)(:)zT^(%(?:pre|post|setup|environment|help|labels|test|runscript|files|startscript))(\s*)z6^(%app(?:install|help|run|labels|env|test|files))(\s*)scriptz	\s*#.*?\nz"\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))\br  z
(?!^\s*%).z(.+?(?=^\s*%))|(.*)r8   )r:   r  c                     Sn[         R                  " SU [         R                  5      (       a  US-  n[         R                  " [        R                  SS U 5      (       a  US-  nU$ )zdThis is a quite simple script file, but there are a few keywords
which seem unique to this language.r   z&\b(?:osversion|includecmd|mirrorurl)\bg      ?r?   Ng\(\?)rb   rc   r   r-   _section)rB   results     rD   rE   SingularityLexer.analyse_text  sW     99>bmmTTcMF99%..qr2D99dNFrG   rH   N)rI   rJ   rK   rL   rM   rN   rg   rO   rP   rb   r   rd   DOTALLr   _headersr  _appsectr   r   Headingr   r   r   r   r   r	   r   rT   rE   rU   rH   rG   rD   r-   r-     s     D
MCoG-(IMMBLL(2994EeHfHHH x<hGx<hGx
GT:;7#2F;
#D!
 $U9%5v>
F
rG   r-   c                   T    \ rS rSrSrSrSS/r/ rSS\4S\	4S	\
4S
\4S\4S\4/0rSrg)r.   i  z
Lexer for Unix/Linux config files using colon-separated values, e.g.

* ``/etc/group``
* ``/etc/passwd``
* ``/etc/shadow``

.. versionadded:: 2.12
zUnix/Linux config files
unixconfiglinuxconfigr:   r  r~   r  r   z"((?!\n)[a-zA-Z0-9\_\-\s\(\),]){2,}z[^:\n]+rH   N)rI   rJ   rK   rL   rM   rN   rO   rP   r   r   r   r   r   r   rT   rU   rH   rG   rD   r.   r.     s^     %D]+GI 	gJ;2D9 
	FrG   r.   )4rM   rb   pygments.lexerr   r   r   r   r   r   r	   r
   pygments.tokenr   r   r   r   r   r   r   r   r   r   r   r   pygments.lexers.shellr   pygments.lexers.datar   __all__r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   rH   rG   rD   <module>r     sj   
& & &= = = = + *E(z (V: <*: *Z(:: (:V5j 5pQ(J: JZ;Z ;|(j (V@Z @F,Z ,^
 :!* !Hg' gT,: ,^,J ,^7Z 7t7j 7t** *Z2
 2hPj Pf*z *Zj rG   