HOME


Mini Shell 1.0
DIR: /usr/lib/python3/dist-packages/pygments/lexers/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/configs.cpython-312.pyc
�

|�e����z�dZddlZddlmZmZmZmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZmZmZddlmZddlmZgd�ZGd�d	e�ZGd
�de�ZGd�d
e�ZGd�de�Z Gd�de�Z!d�Z"Gd�de�Z#Gd�de�Z$Gd�de�Z%Gd�de�Z&Gd�de�Z'Gd�de�Z(Gd�d e�Z)Gd!�d"e�Z*Gd#�d$e�Z+Gd%�d&e�Z,Gd'�d(e�Z-Gd)�d*e�Z.Gd+�d,e�Z/Gd-�d.e�Z0Gd/�d0e�Z1Gd1�d2e�Z2Gd3�d4e�Z3y)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
��eZdZdZdZgd�Zgd�ZddgZdefde	jfd	eee�fd
ee
jeeeeee�dfdee
jeeee�fd
e
jfgdefdeeeee�fdedfgd�Zd�Zy)rz5
    Lexer for configuration files in INI style.
    �INI)�ini�cfg�dosini)z*.iniz*.cfgz*.infz
.editorconfigz
text/x-iniztext/inf�\s+�[;#].*z(\[.*?\])([ \t]*)$u0(.*?)([  \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)�valueu8(.*?)([ \t]*)([=:])([  \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)z(.+?)$z(\s*)(.*)(\\)([ \t]*)z.*$�#pop��rootr6c�Z�|jd�}|dkry|ddk(r||dz
dk(ryy)	N�
�Fr�[��]g�������?)�find)�text�nposs  �9/usr/lib/python3/dist-packages/pygments/lexers/configs.py�analyse_textzIniLexer.analyse_text>s9���y�y�����!�8����7�c�>�d�4��6�l�c�1���N)�__name__�
__module__�__qualname__�__doc__�name�aliases�	filenames�	mimetypesrr�Singlerrr�	Attributer
rr�tokensrD�rErCrrs�����D�&�G��I��z�*�I��Z� �
����'�
"�H�W�j�$A�B�
@�
�d�n�n�j�(�J���J�(�
�
�I�
�d�n�n�j�(�J��
O�
Q�����'�
��Z� �
%�
�j�&�$�
�
;�
=�
�V�V�$�	
��F�,rErc��eZdZdZdZdZdgZdgZddefde	e
je�fd	e	ee�fd
e	e
je
jeeeee�fgiZd�Zy)
rz?
    Lexer for .desktop files.

    .. versionadded:: 2.16
    zDesktop filezXhttps://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html�desktopz	*.desktopr9�	^[ \t]*\nz
^(#.*)(\n)�(\[[^\]\n]+\])(\n)zG([-A-Za-z0-9]+)(\[[^\] \t=]+\])?([ \t]*)(=)([ \t]*)([^\n]*)([ \t\n]*\n)c�z�|jd�rytjd|ddtj��yy)Nz[Desktop Entry]��?z^\[Desktop Entry\][ \t]*$����������?���
startswith�re�search�	MULTILINE�rAs rCrDzDesktopLexer.analyse_text]s6���?�?�,�-��
�9�9�1�4���:�r�|�|�L�X��rEN)rFrGrHrIrJ�urlrKrLrrrrNrrrO�	Namespacer
rrPrDrQrErCrrGs�����D�
d�C��k�G��
�I�	�
�:�&�
�H�W�^�^�Z�@�A�
"�H�W�j�$A�B�
W�
�d�n�n�d�n�n�j�(�J�X^�`j�
k�
m�	
��F�rErc
�4�eZdZdZdZdZdgZgd�Zdefde	e
je�fde	ee�fd	e	e
jeeeeee�d
fde	e
jeeeee�fgde	e
je�fde	eeee�fd
e	eee�dfgd�Zd�Zy)rzC
    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*.scoperTz
^([;#].*)(\n)rUz*([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\\)(\n)r6z&([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\n)z([ \t]*)([^\n]*)(\\)(\n)z([ \t]*)([^\n]*)(\n)r7r8c�z�|jd�rytjd|ddtj��yy)Nz[Unit]rWz^\[Unit\][ \t]*$rXrYrZr[r`s rCrDzSystemdLexer.analyse_text�s5���?�?�8�$��
�9�9�(�$�t��*�b�l�l�C�O��rEN)rFrGrHrIrJrarKrLrrrrNrrrOr
rrrPrDrQrErCrres�����D�
P�C��k�G��I��:�&�
�x����
�C�D�
"�H�W�j�$A�B�
:�
�d�n�n�j�(�J���J�(�
�
�7�
�d�n�n�j�(�J��PZ�
[�
]�

��x����
�C�D�
(�
�j�&�$�
�
;�
=�
$�
�j�&�*�
5�v�
?�
��F�,rErc�2�eZdZdZdZdZdgZdgZdgZde	fde
fd	ejfd
e
eeej"e�fde
ej$e
ee
�dfd
e
ej$e
ee
�dfgdedfde
ej&ee�dfdedfed�gd�Zd�Zy)rzZ
    Lexer for Windows Registry files produced by regedit.

    .. versionadded:: 1.6
    �regz8http://en.wikipedia.org/wiki/Windows_Registry#.REG_files�registryz*.regztext/x-windows-registryzWindows Registry Editor.*r4r5z(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$z)("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)r6z(.*?)([ \t]*)(=)([ \t]*)�-r7z1(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)�.+r8c�$�|jd�S)NzWindows Registry Editor)r\r`s rCrDzRegeditLexer.analyse_text�s�����8�9�9rEN)rFrGrHrIrJrarKrLrMrrrrNrrr
r�BuiltinrO�VariablerrrrrPrDrQrErCrr�s�����D�
D�C��l�G��	�I�*�+�I�*�4�0�
�Z� �
����'�
.�
�g�x����w�
?�
A�:�
�d�n�n�j�(�J�
G�
�
�)�
�d�n�n�j�(�J�
G�
�
�
� �8�V�$�
A�
�d�m�m�[�&�
9�6�
C��F�F�#��F�O�

�!�F�4:rErc	��eZdZdZdZddgZdgZdgZdejfde
fd	e
fed
�gdejfed�d
ee
ee
�dfde
dfde
dfgdefed�de
dfgdeej$e
�fdej$fgd�Zy)rz�
    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*.propertiesztext/x-java-propertiesz
[!#].*|/{2}.*�\nz	^[^\S\n]+�keyz
[^\\:=\s]+�escapesz([^\S\n]*)([:=])([^\S\n]*))r7r6�[^\S\n]+r7z[^\\\n]+z(\\\n)([^\S\n]*)z\\(.|\n))r9rtr6ruN)rFrGrHrIrJrKrLrMrrNrrrrOrrr
r�EscaperPrQrErCrr�s�����D��]�+�G�� �I�)�*�I�
�w�~�~�.�
�J��
�:�&��E�N�	
��D�N�N�+��I��+�
�j�(�J�
7�
�
 ��*�&7�8�
�J��'�

� �&�!��I��
�J��'�

�!�(�6�=�=�*�"E�F�
�&�-�-�(�	
�C'�FrErc�X�d}|dk(rd}nd|dz
z}|dk(rd}nd|z}d|�d	|�d
|�d�S)N���+z{1,%d}r>�z{%s}z(?:\t| z\t| {z})z.*\nrQ)�level�	tab_width�space_repeat�level_repeats    rC�
_rx_indentr��sH���I��A�~����9�q�=�1����z�����~���*6�	�<�P�PrEc���eZdZdZdZgd�Zgd�ZdgZdZd�Z	d�Z
d	efd
ejfedd�
�efdedfdej"fdefdefdej*fdejfdej.fdefgdefe	d�e	d�e	d�e	d�e	d�e	d�e	d�ed�g	e
d�e
d�e
d�e
d�e
d�e
d�e
d�d �	Zy!)"rzC
    For Linux-style Kconfig files.

    .. versionadded:: 1.6
    �Kconfig)�kconfig�
menuconfigzlinux-configz
kernel-config)zKconfig*z*Config.in*zexternal.in*zstandard-modules.inztext/x-kconfigrc�@�t|�tjd|zfS)Nzindent%s)r�r�Doc�r}s rC�call_indentzKconfigLexer.call_indents���5�!�6�:�:�z�E�/A�B�BrEc�\�t|�tjfdtft	d�gS)N�\s*\n�#pop:2)r�rr�rrr�s rC�	do_indentzKconfigLexer.do_indents/����
��
�
�+�
�t���H��
�	
rEr4�#.*?\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<rzr>r7)	r9r��indent7�indent6�indent5�indent4�indent3�indent2�indent1N)rFrGrHrIrJrKrLrM�flagsr�r�rrrNrrrrmr
rr�Integerr�DoublerrrPrQrErCrr	sC����D�H�G�(�I�!�"�I�
�E�C�
��Z� �
����'�
�#�,1�	2�
�
�*�7�F�;�
K�
�\�\�
�
��!�
�k�"�
����'�
�f�m�m�,�
�f�m�m�,�
�T�N�#
�.�t��
��N���N���N���N���N���N���N��F�O�
� �Q�<��Q�<��Q�<��Q�<��Q�<��Q�<��Q�<�Y-�FrErc��eZdZdZdZdZddgZdgZgZde	fde
eeeee�fd	e
eeeee
je�d
fde
eeeee
j�fde
ee
j eeej"eee�fd
e
ej&eee�fdedfde
e
je�fde
e
j,e�fde
ej.e�fde
j fdefdefdefdej2fdej4fde
jfdefgdej6dfdej8fdedfdefd efgdej6d!fd"ej6dfd#ej6fgd$edfd%efde
j fdefgd&�Zy')(rzF
    Lexer for CFEngine3 policy files.

    .. versionadded:: 1.5
    �	CFEngine3zhttp://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+r4z\$[{(]�interpol�\\.r7rs�.�#pushz[})]z	[^${()}]+z\)�,)r9r�r�r�N)rFrGrHrIrJrarKrLrMrrrrr�Functionrrn�Typer
�Reservedrr�Class�Declarationr�Floatr��InterpolrwrPrQrErCrrVs
����D�
�C��E�"�G���I��I��� �
.�
�g�z�7�J��
H�
J�
5�
�g�z�7�J��
�
�{�
[�
�
�2�
�g�z�7�J��
�
�
N�
P�
G�
�k�4�=�=�+� �'�,�,�
�H�j�R�
S�$�
�g�&�&�
�H�d�
C�
E�
�6�8�$�
�8�D�M�M�;�?�@�
!�8�D�J�J��#D�E�
�(�7�#6�#6��D�E�
����/�
�+�&�
�H��
�H��
�&�,�,�'�
�V�^�^�$�
�T�]�]�#�
�Z� �3
�8�����4�
�V�]�]�#�
�6�6�"�
�F�O�
�6�N�
������1�
�f�o�o�v�.�
�6�?�?�+�
��K��(�
�;��
�T�]�]�#�
�Z� �	
�Q.�FrErc�v�eZdZdZdZgd�Zgd�ZdgZejejzZdefde
fdeej eeej �fd	eej ej �fd
ej$dfdefgd
efdedfdefdefdefdefdej*fdefdej.fdefg
d�Zy)r zo
    Lexer for configuration files following the Apache config file
    format.

    .. versionadded:: 0.6
    �
ApacheConf)�
apacheconf�aconf�apache)z	.htaccesszapache.confzapache2.confztext/x-apacheconfr4z#(.*\\\n)+.*$|(#.*?)$z"(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)z(</[^\s>]+)(>)z[a-z]\w*r6z\.+z\\\nz\n+r7z\\rv�\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"\\]+r8N)rFrGrHrIrJrKrLrMr]r_�
IGNORECASEr�rrrr�Tagrrmrr�Otherrr�rPrQrErCr r �s����D�/�G�<�I�$�%�I��L�L�2�=�=�(�E��Z� �
%�w�/�
2�
�d�h�h�
�F�D�H�H�
=�
?�
�
�d�h�h����
)�
+�
�$�,�,��0�
�T�N�	
��d�O�
�Z��(�
�D�M�
�*�%�
+�V�4�
�V��
%�v�|�|�4�� '�
(�0����?�
�4� �
��FrEr c��eZdZdZdZdZgd�ZdgZdgZe	jZdZdZ
d	Zd
ZdZdZd
Zde�de�d�ZdZde�de�d�Zde�de�d�Ze�de�d�Zdefdedfeedd��efee
dd��ej:feedd��efeedd��efeedd��efeedd��efeej@fd efd!e!fgd"ejDd#fd$ed#fe#d#�gd%�Z$y&)'r!zI
    Lexer for squid configuration files.

    .. versionadded:: 0.9
    �	SquidConfzhttp://www.squid-cache.org/)�	squidconf�
squid.conf�squidr�ztext/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�ttlzno-queryrzround-robinzmulticast-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_communityz(\d+|0x[0-9a-f]+)�(z(\.z){3})z([0-9a-f]{0,4})z(:z){1,7})�|�)z(/(z|\d+))?r4�#r�r���prefixr�zstats/zlog/�=z(?:\b\d+\b(?:-\b\d+|%)?)r�z	\s*TAG:.*r7rk)r9r�N)%rFrGrHrIrJrarKrLrMr]r�r��keywords�opts�actions�
actions_stats�actions_log�acls�
ipv4_group�ipv4�
ipv6_group�ipv6�bare_ip�iprrrrr�Constantrrr�rrwrrPrQrErCr!r!�s�����D�
'�C�2�G���I�#�$�I��M�M�E�9�H�v�D��G�
�M�
;�K��D�&�J��
�|�3�z�l�'�2�D�#�J��
�|�2�j�\��3�D��4�&��$��q�!�G��I�S��	��	)�B��Z� �
�7�I�&�
�8�E�%�
8�'�B�
�4��e�
4�d�m�m�D�
�7�5��
7��@�
�=��5�
A�6�J�
�;�w�t�
<�f�E�
�4��e�
4�g�>�
�����
(�&�1�
�T�N�

��6�=�=�&�1�
�G�V�$��F�O�
��FrEr!c��eZdZdZdZdZdgZdgZdgZde	e
ee�fde
d	fe
d
�gdedfde
jd	fe
d
�gd
edfdedfe
d
�gdej"fdej$fdej&fde	eeej*�fdefdej*fde	eeej.�fdefdefdefdefdefgd�Zy)r"zJ
    Lexer for Nginx configuration files.

    .. versionadded:: 0.11
    zNginx configuration filezhttp://nginx.net/�nginxz
nginx.confztext/x-nginx-confz(include)(\s+)([^\s;]+)z[^\s;#]+�stmt�base�\}r��\{�block�;r7�#.*\nzon|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;#]*r4z[$;])r9r�r�r�N)rFrGrHrIrJrarKrLrMrrrrrrrbrrNr�rnrr�r�RegexrrPrQrErCr"r"As6���
&�D�
�C��i�G���I�$�%�I�(��'�:�t�)L�M�
�'�6�*��F�O�
��K��*�
�'�+�+�V�4��F�O�
��K��)�
�;��'��F�O�
��w�~�~�&�
��
�
�&�
�d�m�m�,�
(�
�d�K����
8�
:�
 �&�)�
�v�~�~�.�
!�8�K��V�\�\�#R�S�
�{�#�
�V�$�
�4� �
�Z� �
�d�O�
�! �FrEr"c��eZdZdZdZdZddgZdgZdgZdd	e	jfd
efdefde
fd
e
fdefdejfdefdej$fdefg
iZy)r#zM
    Lexer for Lighttpd configuration files.

    .. versionadded:: 0.11
    zLighttpd configuration filezhttp://lighttpd.net/�lighttpd�lightyz
lighttpd.confztext/x-lighttpd-confr9r�z/\S*z[a-zA-Z._-]+r�r�z=>|=~|\+=|==|=|\+z\$[A-Z]+z[(){}\[\],]z"([^"\\]*(?:\\.[^"\\]*)*)"r4N)rFrGrHrIrJrarKrLrMrrNrrrr
rmrrr�rrPrQrErCr#r#ps����
)�D�
 �C��8�$�G� �!�I�'�(�I�	�
�w�~�~�&�
�d�O�
�g�&�
+�V�4�
���
!�8�,�
�$�,�,�'�
�[�)�
*�F�M�M�:�
�Z� �
��FrEr#c��eZdZdZdZdZddgZddgZdgZd	Z	d
Z
dZejejzZdd
efdeeeeeeee�fde�d�eeeee��fde�de�d�eeeee��fde�d�eeeee�ee��fde�de�d�eeeee��fde	zeeee�fde
�d�eee�fdee�fg	iZy)r$zJ
    Lexer for Docker configuration files.

    .. versionadded:: 2.0
    �Dockerzhttp://docker.io�docker�
dockerfile�
Dockerfilez*.dockerztext/x-dockerfile-configz-(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)z-(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)z
(?:\s*\\?\s*)r9�#.*z1(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?z(ONBUILD)(\s+)(r�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+)(.*)r�z)(\s+)z(.*\\\n)*.+N)rFrGrHrIrJrarKrLrM�	_keywords�_bash_keywords�_lbr]r�r_r�rrrrrr	rrrPrQrErCr$r$�s9���
�D�
�C���&�G��z�*�I�+�,�I�A�I�F�N�
�C��M�M�B�L�L�(�E�	�
�W��
A�
�g�z�6�:�w�
�TZ�
[�
]�&)�
+�X�g�z�5�QZ�K[�-\�]�8;�S�
A���*�e�I�.>�?�
A�CF�
H���*�e�I�.>��i�@P�Q�
S�8;�S�
A���*�e�I�.>�?�
A�
&�)�
4�h�w�
�TZ�6[�\�+�
-�x���/L�M�
�U�9�-�.�
��FrEr$c�d�eZdZdZdZdZgd�ZddgZddgZd	Z	d
jdje	��ZdZ
d
ZdZdZdZdZdZdZdZdZeezezezezezezezezZd
jdje��Zd�Zed�ed�deej:�feddd��ej@fee
dd��e!jDfed�ed�de#fgd e$jJd!fd"e$jLfed�d#ee'ejPe'e)e'e*�fd$ee'ejVe'e)e'�fd%ee'e,j8j:e'e)e'�fed&zeejZe*�fd'ee*ejPe*�fed(zee!j\e'ej^e'ej`e'e*�fd)efg
d*eej`�fd+eej`�fgd,e*fgd-e$jJfd.e$jJd/fd0e$jJd1fd2e$jJfgd3e'fd4e'fd5ee1e'�fgd6�Z2y7)8r%zH
    Lexer for terraformi ``.tf`` files.

    .. versionadded:: 2.1
    �	Terraformzhttps://www.terraform.io/)�	terraform�tf�hclz*.tfz*.hclzapplication/x-tfzapplication/x-terraform)�backend�data�module�output�provider�provisioner�resource�variablez({})r�)	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#�hK�|jd�}|t|jd�f��|jd�tj|jd�f��|jd�|_|j
d�|_|j
tj|jd�f��|j
�|_|jd�}d}g}tj|j|j
�D]�}|r|j�j�}n|j�j�}||k(r�|D]3}|j�tj|j�f���5|j�tj|j�f��|j
�|_nA|j|���|D])}|j�t|j�f���+t|j�|_y�w)Nr>rzr<T)�startr
�groupr�	Delimiter�pos�end�Heredocr
�finditerrA�strip�rstrip�appendr�len)	�self�match�ctxrp�hdname�tolerant�lines�check�amatchs	         rC�heredoc_callbackzTerraformLexer.heredoc_callback�s��������A����X�u�{�{�1�~�-�-��k�k�!�n�f�.�.����A��>�>��+�+�a�.����)�)�A�,����g�g�v�~�~�u�{�{�1�~�5�5��)�)�+������Q��������%�%�c�h�h����8�	<�E�����
�+�+�-�����
�,�,�.�����#�I�F� �,�,�.�&�.�.�&�,�,�.�H�H�I��k�k�m�V�%5�%5�u�{�{�}�D�D��)�)�+�������U�#�	<� �
<���l�l�n�e�V�\�\�^�;�;�
<��c�h�h�-���s�H0H2�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\*/r7z[*/]rsr4�(\\)(\n))r9r�r�r�r�r�N)3rFrGrHrIrJrarKrLrM�classesrr�
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�rrrr�rrr�rr�rr�	MultilinerNrrmr
rrOrr�r�r�rnrrPrQrErCr%r%�s!����D�
%�C�(�G���!�I�#�%>�?�I�6�G�����z�z�'�2�3�J�Y�E�=������W��[��A��`��T��!I��!�#3�3�6J�J�M_�_���2�3�5J�K�Ma�b�!�"�H��-�-��
�
�8� 4�5�K�# �N
�G���L�!������/�0��$�U�5�
A�4�=�=�Q��5��u�
5�w�|�|�D��L�!��M�"�
���
�$��)�)�9�5�
�w�~�~�.��L�!�8�
�j�$�,�,�
�H�j�R]�
^�
`�3�
�j�$�.�.�*�h�
�
S�
U�
-�
�j�'�.�.�"7�"7��X�z�
Z�
\��7�
"�H�T�]�]�K�$H�I�%�h�{�D�L�L�+�&V�W��U�
U�
�g�&�&�
�D�J�J�
�D�M�M�[e�gr�
s�
u�/�0@�A�? 
�D0��$�-�-�1H�I�
>�
�d�m�m�
$�
&�
�#�K�0�
��w�(�(�)�
�W�&�&��0�
�W�&�&��/�
�g�'�'�(�	
��J��
�Z� �
�(�4��4�5�
�CF�FrEr%c	��eZdZdZdZdgZddgZgZdefde	jdfdefgd	ed
fdedfd
efde	jfgdeee�fdedfdeee�fdedfdefde	j$fgdefded
fdefdefgd�Zy)r&zm
    Lexer for termcap database source.

    This is very simple and minimal.

    .. versionadded:: 2.1
    �Termcap�termcapztermcap.src�^#.*z
^[^\s#:|]+�namesr4rsr7�:�defs�\|z[^:|]+z(\\)(\n[ \t]*)z\n[ \t]*r��(#)([0-9]+)r�r�z	[^\s:=#]+z\\072z[^:\\]+r��r9r�r�r�N)rFrGrHrIrJrKrLrMrrr�rrrOrrr
rr�rrPrQrErCr&r&[s�����D��k�G��M�*�I��I��g��
�D�H�H�g�.�
�Z� �
��J��'�
�;��'�
�K� �
����'�	
����z� :�;�
�*�h�/�
�X�h��7�8�
�8�V�$�
�;��
�4�:�:�&�

��w��
�;��'�
��!�
�7�O�	
�)�FrEr&c��eZdZdZdZdgZddgZgZdefde	jdfdefgd	ed
fdee
e�dfd
e
fde	jfgdefd	edfdeee�fdedfdee
e�fde	j"fgdefdee
e�d
fdefdefgd�Zy)r'zn
    Lexer for terminfo database source.

    This is very simple and minimal.

    .. versionadded:: 2.1
    �Terminfo�terminfozterminfo.srcz^#.*$z
^[^\s#,|]+r�r4rsr7z(,)([ \t]*)r�r�z[^,|]+z\n[ \t]+r�r�r�r�z	[^\s,=#]+z\\[,\\]z[^\\,]+r�r�N)rFrGrHrIrJrKrLrMrrr�rrrrOr
rr�rrPrQrErCr'r'�s����D��l�G��^�,�I��I��w��
�D�H�H�g�.�
�Z� �
��J��'�
�X�k�:�>��G�
�K� �
����'�	
��*�%�
�J��)�
�X�h��7�8�
�8�V�$�
�X�k�:�>�?�
�4�:�:�&�

���!�
�X�k�:�>��G�
��!�
�7�O�	
�)�FrEr'c
�^�eZdZdZdZdZdgZdgZgZde	jfdeeje�fdeeje�d	fed
�defdefd
efgdefdej*dfgdej*dfdejfged
�de	jdfdedfdefdefd
efgd�Zy)r(z�
    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�interpr4z
[^${}#=:\n.]+r�z\$\$z\$\{�curlyr�r7r�rsz[^${}#\n\s]+)r9r�r�r�N)rFrGrHrIrJrarKrLrMrrNrrrOr
r�rrrrrr�rPrQrErCr(r(�s����D�
@�C��m�G���I��I��g�n�n�%��8�D�N�N�H�=�>��
�d�h�h��
,�i�
9�
�H���Z� �
�t�$�
�4�L�!
�(�d�O��f�o�o�w�/�
��F�O�O�V�,�
�T�^�^�$�
�

�H��
�g�n�n�f�-�
�J��'��Z� �
�d�#�
�4�L�

�=)�FrEr(c
���eZdZdZdZdZdgZdgZgZdde	jfdeee
e�fd	eejee�fd
eeeje�fedd�
�ej$fdefdefgiZy)r)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�
pacmanconfzpacman.confr9r�z^(\s*)(\[.*?\])(\s*)$z
(\w+)(\s*)(=)z^(\s*)(\w+)(\s*)$)z$repoz$archz%oz%ur�r�r4r�N)rFrGrHrIrJrarKrLrMrrNrrrrrOr
rrnrrPrQrErCr)r)�s����$�D�
?�C��n�G���I��I�	�
�g�n�n�%�&�x�
�G�Z�'P�Q��
�d�n�n�j�(�
;�
=�"�
�j�$�.�.�*�
=�
?���
 �!��]�]�

��Z� �
�4�L�7
��FrEr)c���eZdZdZdZdZdgZdgZdee	jeej�fdee	jeej�fdeeje�fd	eeejee	j"e�fd
ej&dfdefd
efdej,dfdej.dfdeejeej�fdejfdefgdej0fdej,fdej,dfgdej0fdej.fdej.dfgdej&fd
ej&dfdej&dfdej&fgd�Zy)r*z6
    Lexer for Augeas.

    .. versionadded:: 2.4
    �Augeaszhttp://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\/rz([A-Z]\w*)(\.)(\w+)r�r4r�z[^"]r7z[^/]z[^*)]r�z\*\)z[)*])r9r�rr�N)rFrGrHrIrJrarKrLrrrbrrr�rnrmrr�rr�r
rr�r�rwrPrQrErCr*r*-s����
�D�
�C��j�G��	�I�'���1B�1B�J�PT�P^�P^�(_�`�
#�X�g�.A�.A�:�t�}�}�%]�^�
f�hp�qu�q}�q}�@J�iK�
L�
H�(�S^�`d�`m�`m�oz�}D�}I�}I�KV�KW�
X�
�g�'�'��3�
�X�&�
�H�%�
�6�=�=�(�+�
�F�L�L�'�*�
#�X�d�n�n�k�4�=�=�%Y�Z�
�4�=�=�!�
�Z� �

��V�]�]�#�
�f�m�m�$�
�6�=�=�&�)�
��V�]�]�#�
�f�l�l�#�
�F�L�L�&�)�
��w�(�(�)�
�g�'�'��1�
�g�'�'��0�
�g�'�'�(�	
�3�FrEr*c��eZdZdZdZdgZgd�ZdgZdZdZ	de	�d	�Z
d
efdejfed�d
eee�dfdedfgdefdej(dfdejdfdefgdefdej(dfdejdfdefdedfdefge
ej.dfe	ej.dfdej2dfdej2dfdej2dfdej4dfdej6dfdej8dfd ej:dfd!ej(d"fdej(d#fd$ejd%fdejd&fd'ej<dfd(ed)fd*ed+fgd
efdejfd,efd-edfed�gdefed�d
eee�dfd,efd.edfgdej(dfed/�d0ej(fgd1ejdfgd!ej(dfd2eej@e�fed/�d0ej(fdej(fgd$ejdfd3ejfdejfgd4ej@fd5ej@fgd6�Z!y7)8r+zX
    Lexer for TOML, a simple language for config files.

    .. versionadded:: 2.4
    �TOML�toml)z*.toml�Pipfilezpoetry.lockzapplication/tomlzhttps://toml.ioz\d\d:\d\d:\d\d(\.\d+)?zm(?x)
                  \d\d\d\d-\d\d-\d\d # date, e.g., 1988-10-27
                (
                  [Tt ] z� # optional time
                  (
                    [Zz]|[+-]\d\d:\d\d # optional time offset
                  )?
                )?
              r4r�rtz(=)(\s*)r6z\[\[?�	table-keyz[A-Za-z0-9_-]+r��basic-string�'�literal-stringz\.z\]\]?r7�[ \t]+z [+-]?\d[0-9_]*[eE][+-]?\d[0-9_]*z.[+-]?\d[0-9_]*\.\d[0-9_]*([eE][+-]?\d[0-9_]*)?z[+-]?(inf|nan)z
-?0b[01_]+z-?0o[0-7_]+z-?0x[0-9a-fA-F_]+z[+-]?[0-9_]+z""")r7�multiline-basic-string)r7r�z''')r7�multiline-literal-string)r7r�z
true|false�\[)r7�arrayr�)r7�inline-tabler��\]r�ruz[^"\\]+z.*?'r�z[^']+z#\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}r�)r9rtr�r6r�r�r�r�r�r�ruN)"rFrGrHrIrJrKrLrMra�_time�	_datetimerrrNrrr
rrrr�rr�Daterr��Bin�Oct�Hexr�r�rrwrPrQrErCr+r+ZsX����D��h�G�4�I�#�$�I�
�C�

&�E���� ��I�*�Z� ��W�^�^�$�
�E�N��(�8�Z�8�'�B��w��,�-
�4��%�
�6�=�=�.�1�
�6�=�=�"2�3�
�K� �
���(�
�6�=�=�.�1�
�6�=�=�"2�3�
�G��
�w��'��
�#�
�"����f�-�
�G�L�L�&�)�1�&�,�,��G�
>�
�\�\�6�
#�����f�5��F�J�J��/�
�V�Z�Z��0�
!�6�:�:�v�6�
�f�n�n�f�5��V�]�]�$F�G�
�6�=�=�":�;�
�V�]�]�$H�I�
�6�=�=�"<�=��G�,�,�f�5��K�!2�3��K�!9�:�C"
�L�Z� �
�W�^�^�$��;���K��(�
�G��
�$�
�#�
�E�N��(�;�
�;�W�E��;���K��(�
�$�6�=�=�&�)��I��
����'�
��f�m�m�V�,�
��V�]�]�F�+�
�(�6�=�=�*�=�>��I��
����'�
�6�=�=�!�#
��V�]�]�F�+�
�v�}�}�%�
�6�=�=�!�%
�4�V�]�]�C�
�V�]�]�#�
�QL�FrEr+c�>�eZdZdZdZdZddgZdgZdee	e
�fdee	e�d	fd
ee	e�dfdee	e�fd
ee	ee	ee	�fdee	e�fdee	ee	ee	�fdee	e�fdee	ee	e
je	�fdee	e
je�fdee	e
jee	ee	�fged�defed�defdedfdedfged�de
jfdedfdedfdedfged�defed�dedfdedfged�d ed	fd!edfgd"e	fgd#�Zy$)%r,z�
    Lexer for *NextedText*, a human-friendly data format.

    .. versionadded:: 2.9

    .. versionchanged:: 2.16
        Added support for *NextedText* v3.0.
    �
NestedTextzhttps://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�r�r7rsz[^\{\}\[\],:\s]+r��inline_dict_valuer�r�r�r�r�)r9r�r�r�r�r�N)rFrGrHrIrJrarKrLrrrrrrr�rrrPrQrErCr,r,s����D�
"�C��T�"�G���I�
�x�
�G�<�=��X�j�+�>�
�N��X�j�+�>�
�N��X�j�+�>�?�,�X�j�+�z�[_�ak�-l�m��X�j�+�>�?�,�X�j�+�z�[_�ak�-l�m��X�j�+�>�?�0��*�k�S]�_c�_g�_g�is�1t�u�*�8�J����+�+V�W�:�8�J�PT�PX�PX�Ze�gq�sw�zD�<E�
F�A!
�F
�L�!�
��&��N�#�
�;��
�K��(�
�E�6�"�

�
�L�!�
 �$�(�(�+�
�;� 3�4�
�K��(�
�E�6�"�
�
�L�!�
 �$�'��N�#�
�;��'�
�K��*�
�
�L�!�
�K��/�
�K��/�
��
�#�
�}A�FrEr,c�$�eZdZdZdZdZdgZddgZejejzejzZdZ
dZdZeeej$e�d	feeej$e�d	fe
eeee�fd
efdefdefd
efgdee�dfgd�Zd�Zy)r-zL
    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*%))|(.*)r7)r9r�c��d}tjd|tj�r|dz
}tjtjdd|�r|dz
}|S)zlThis is a quite simple script file, but there are a few keywords
        which seem unique to this language.rz&\b(?:osversion|includecmd|mirrorurl)\bg�?r>Ng\��(\�?)r]r^r�r-�_section)rA�results  rCrDzSingularityLexer.analyse_textvsQ����
�9�9�>��b�m�m�T��c�M�F�
�9�9�%�.�.�q�r�2�D�9��d�N�F��
rEN)rFrGrHrIrJrarKrLr]r�r_�DOTALLr��_headersr��_appsectrr�Headingrrrrrr	rrPrDrQrErCr-r-Vs�����D�
M�C��o�G��-�(�I��M�M�B�L�L�(�2�9�9�4�E�e�H�f�H�H�H��x�����<�h�G�
�x�����<�h�G�
�x�
�G�T�:�;�
�7�#�
2�F�;�
�
�#�
�D�!�
�$�U�9�%5�v�>�
�
�F�
rEr-c�L�eZdZdZdZddgZgZddefdefde	fd	e
fd
efdefgiZ
y)
r.z�
    Lexer for Unix/Linux config files using colon-separated values, e.g.

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

    .. versionadded:: 2.12
    zUnix/Linux config files�
unixconfig�linuxconfigr9r�rsr�r�z"((?!\n)[a-zA-Z0-9\_\-\s\(\),]){2,}z[^:\n]+N)rFrGrHrIrJrKrLrrrrrrrPrQrErCr.r.�s^���%�D��]�+�G��I�	�
�g��
�J��
�;��
���
2�D�9�
�� �

�	�FrEr.)4rIr]�pygments.lexerrrrrrrr	r
�pygments.tokenrrr
rrrrrrrrr�pygments.lexers.shellr�pygments.lexers.datar�__all__rrrrrr�rrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.rQrErC�<module>r�sl���
�&�&�&�=�=�=�=�+�*�E��(�z�(�V�:��<*�:�*�Z(:�:�(:�V5�j�5�pQ�(J�:�J�Z;�Z�;�|(�j�(�V�Z��D,�Z�,�^�
��:!�*�!�Hg�'�g�T,�:�,�^,�J�,�^7�Z�7�t7�j�7�t*�*�*�Zg�
�g�RP�j�P�f*�z�*�Z�j�rE