�
]�g� � � � d dl Z d dlmZ d dlmZ d dlmZmZmZm Z m
Z
mZmZm
Z
ddlmZ ddlmZ ddlmZ dd lmZ dd
lmZmZ e j de j � � Z e j d� � Z G d
� de
� � Ze e Zeegef Zeeegef Z e j d� � j! fdede defd�Z"dedeee#ee ee f fd�Z$ d#dede
eef de%dee def
d�Z&e'dk rOg d�Z(d dl)m*Z* d dl+m,Z, e,dd d!�"� � Z-e(D ]!Z.e-�/ ee.� � e.� � �" e*e-� � dS dS )$� N)�literal_eval)�
attrgetter)�Callable�Iterable�List�Match�
NamedTuple�Optional�Tuple�Union� )�_emoji_replace)�EmojiVariant)�MarkupError)�Style)�Span�Textz((\\*)\[([a-z#/@][^[]*?)])z^([\w.]*?)(\(.*?\))?$c �` � e Zd ZU dZeed<