+
   51>}c                   s  a  R3 t0 t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ R	I
Ht ^ R
It^ R
It^ R
It^ R
It^ R
It^ R
It^ R
It^ R
It^ R
It^ R
It^ R
It^ R
It^ R
It^ R
It^ RIHt ]! RR4       ^ RIHt ]! RR4       ^ RIHt ]P>                  ! R4       ]P@                  ! R4       ^ RI!H"t"H#t#H$t$ ]	'       d	   ^ RIH#t#H"t" ^ RIH%t% ^ R
I&t&^ R
I't'^ R
I(t(^ R
I)t)^ RI*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtA ]P                  ! R4      tCR
tD] ^ k RtER R ltFR R ltGR R ltHR R  ltI]I! 4       tJ ! R! R"]#P                  4      tLR# R$ ltM ! R% R&4      tN]N! 4       tO] ^k R4R' R( lltP]QR)8X  Ed9   ]JP                  '       g   ]P                  ! 4       tTM]P                  ! ]P                  R*7      tW]P                  ! R+4      tY]WP                  ]Y4       ]CP                  ]P                  4       ]CP                  ]W4       ]CP                  R,4       ^ R
I_t_^ R
I`t`^ R
Iata]_P                  ! 4       tc]cP                  4        ]'P                  ! R4        ]P                  ! ]P                  R-4       ]P                  ! R04      tk]P                  ! ]E]k4       ]JP                  '       d*   ]n! ])P                  ! 4       4       ]P                  ! ^ 4       ]L! ]M! 4       ]JP                  ]JP                  ]JP                  ]JP                  ]JP                  ]JP                  ]JP                  ]JP                  ]JP                  ]JP                  R17      t{]P                  ! 4       tD]P"                  ! ]P                  ]P4       ]P"                  ! ]P                  ]P4        ]DP                  4        R
# R
#   ]P                   d3    ]CP                  R.4       ]P                  ! ]P                  R/4        EL~i ; i  ] d'    ]CP                  R24       ]DEP                  4         R
# i ; i)5    Any)List)Tuple)Iterable)Dict)Optional)Union)TYPE_CHECKING)	FrameTypeN)require_versionGLibz2.0)r   Pangoz1.0)r   Emoji Pickeremoji-picker)GdkGtk	GTK_MAJOR)r   r   )GObject)
is_wayland	add_childclear_childrenchildren_offorward_key_event_to_entryflowbox_get_childrenemoji_flowbox_get_labelsshow_allset_label_wrap_modeget_preferred_widthget_preferred_heightget_window_sizeget_toplevel_window	PopupKindPopupManagercreate_popover(clickable_event_box_compat_get_gtk_labelClickableEventBoxCompatFakeEventKeyHeaderBarCompatCompatButtonconnect_focus_signalgrab_focus_without_selectingzibus-typing-boosterc                0    V ^8  d   QhR\         R\         /#    textreturnstrformat   "5/usr/share/ibus-typing-booster/engine/emoji_picker.py__annotate__r6   l   s     . .C .C .    c                 s8    \         P                  ! \        V 4      # N)gettextZdgettext
DOMAINNAMEr.      &r5   _r=   l   s    J--r7   c                r+   r,   r0   r2   r4   r5   r6   r6   p   s      S S r7   c                 s    V # r8    r;   r<   r5   N_r?   p   s	    
 Kr7   c                sR    V ^8  d   QhR\         \        \        3,          R\        /# )r-   vr/   )r   boolr1   r2   r4   r5   r6   r6   w   s'     
@ 
@dCi  
@T 
@r7   c                 s    \        V \        4      '       d   V # V P                  4       R9   d   R# V P                  4       R9   d   R# \        P                  ! R4      h)yesTFzBoolean value expected.)rB   ZtrueZtZ1)ZnoZfalsefZ0)
isinstancerA   lowerargparseZArgumentTypeError)r@   r<   r5   str2boolrG   w   sL     !Twwy--wwy--

$
$%>
??r7   c                s$    V ^8  d   QhR\         /# r-   r/   r   r2   r4   r5   r6   r6      s     W WC Wr7   c                  sx   \         P                  ! R R7      p V P                  RRR\        RRRR7       V P                  R	R
R\        RRRR7       V P                  RRR\        RRRR7       V P                  RRR\
        RRRRR7       V P                  RRR\
        RRRRR7       V P                  RR\
        RRRRR7       V P                  RR\        RRRR7       V P                  RR\
        RRRRR7       V P                  R R\
        RRRR!R7       V P                  R"R\        RR#R$R7       R0p\        P                  ! R&4      pR%pV F  w  rEW$8  g   K  TpK  	  V P                  R'R\        RVR(R7       V P                  R)R*R\
        RRRR+R7       V P                  R,R-RR.R/7       V P                  4       # )1z'An emoji picker for ibus-typing-booster)descriptionz-lz--languagesZ?store zSet a list of languages to be used when browsing or searching for emoji. For example: "emoji-picker -l de:fr:ja" would use German, French, and Japanese. If empty, the locale settings are used to determine the languages.)nargstypeactiondefaulthelpz-fz--fontNzSet a font to display emoji. If not specified, the font is read from the config file. To use the system default font specify "emoji". default: "%(default)s"z-sz
--fontsizezSet a fontsize to display emoji. If not specified, the fontsize is read from the config file. If that fails 24 is used as a fall back fontsize. default: "%(default)s"z-mz--modalTFz;Make the window of emoji-picker modal. default: %(default)s)rL   rM   rN   ZconstrO   rP   z-az--allzLoad all Unicode characters. Makes all Unicode characters accessible, even normal letters. Slows the search down and is usually not needed. default: %(default)sz
--unikemetzILoad the Unikemet.txt file for Egyptian Hieroglyphs. default: %(default)sz--match-limit  zBLimit for the number of results for searches. default: %(default)sz
--fallbackaA  Whether to use fallback fonts when rendering emoji. If True, pango will use fallback fonts as necessary. If False, pango will use only glyphs from the closest matching font on the system. No fallback will be done to other fonts on the system that might contain the glyhps needed to render an emoji. default: "%(default)s"z--spellcheckz\Whether to add spellchecking suggestions automatically to search stringsdefault: %(default)sz--emoji-unicode-min0.0zgLoad only emoji which were added to Unicode not earlier than this Unicode version. default: %(default)s16.0z%Y%m%dz--emoji-unicode-maxzeLoad only emoji which were added to Unicode not later than this Unicode version. default: %(default)sz-dz--debugz7Print some debug output to stdout. default: %(default)sz	--versionZ
store_truez9Output version information and exit. default: %(default)s)rN   rO   rP   )
)Z20180605z11.0)Z20190305z12.0)Z20190507z12.1)Z20200701z13.0)Z20200915z13.1)Z20210914z14.0)Z20220913z15.0)Z20230912z15.1)Z20240910rS   )Z20250909z17.0)
rF   ZArgumentParserZadd_argumentr1   floatrG   inttimeZstrftime
parse_args)ZparserZunicode_versionsZcurrent_dateZcurrent_unicode_versionZdateversions         r5   rW   rW      s    $$=?F
m)  + h'  	) l'  	) i%  ' g%  ' %  ' %  ' '  
 %  ' %  ' ==*L$+&-# , '%  ' i%  ' %	  ' r7   c                   s0  a  ] tR tRt o RtV 3R lR lltV 3R lR ltV 3R lR ltV 3R	 lR
 ltV 3R lR ltV 3R lR lt	V 3R lR lt
]V 3R lR l4       tRuV 3R lR lltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR  ltV 3R! lR" ltV 3R# lR$ ltV 3R% lR& ltV 3R' lR( ltV 3R) lR* ltV 3R+ lR, ltV 3R- lR. ltV 3R/ lR0 ltV 3R1 lR2 lt]V 3R3 lR4 l4       tV 3R5 lR6 ltV 3R7 lR8 lt V 3R9 lR: lt!V 3R; lR< lt"V 3R= lR> lt#V 3R? lR@ lt$V 3RA lRB lt%V 3RC lRD lt&V 3RE lRF lt'V 3RG lRH lt(V 3RI lRJ lt)V 3RK lRL lt*V 3RM lRN lt+RvV 3RO lRP llt,V 3RQ lRR lt-V 3RS lRT lt.V 3RU lRV lt/V 3RW lRX lt0V 3RY lRZ lt1V 3R[ lR\ lt2V 3R] lR^ lt3V 3R_ lR` lt4V 3Ra lRb lt5V 3Rc lRd lt6V 3Re lRf lt7V 3Rg lRh lt8V 3Ri lRj lt9V 3Rk lRl lt:V 3Rm lRn lt;V 3Ro lRp lt<V 3Rq lRr lt=Rst>V t?R# )wEmojiPickerUIi  Nc                s   < V ^8  d   QhRS[ S[,          RS[RS[RS[RS[RS[RS[S[,          RS[S[,          R	S[S[,          R
S[RS[RR/# )r-   	languagesmodalunicode_data_allunikemetemoji_unicode_minemoji_unicode_maxfontfontsizefallbackmatch_limit
spellcheckr/   N)r   r1   rA   r   rT   rU   r3   __classdict__   "r5   r6   EmojiPickerUI.__annotate__"  s     u< u<$SMu<u< $(u<  	u<
 %(u< %(u<  }u< $E?u< $D>u< "u< "u< .2u<r7   c           	     s6,   \         P                  P                  V R \        R4      ,           R7       V P	                  R4       R\        4       '       d   RMR R2p\         P                  ! 4       p\        ^8  dh   VP                  V\        V4      4       \         P                  P                  \        P                  P                  4       V\         P                  4       MkVP                  VP!                  R4      4       \         P                  P#                  \        P$                  P                  4       V\         P                  4       V P'                  R	R
4       W n        V P+                  V P(                  4       V P-                  4       pRV n        V'       d   V^ ,          V n        RV n        RV n        \5        4       V n        RV n        RV n        RV n        \>        P@                  PC                  \D        PF                  ! R4      R4      V n$        V PK                  4        Ve   Wpn        Ve   Wn        V	e   \M        V	4      V n        V PO                  4        \        ^8  d   V PQ                  RV PR                  4       MV PQ                  RV PR                  4       \        ^8  d   V PQ                  RV PT                  4       Mt\         PV                  PY                  4       pVP[                  \         P\                  P^                  4       VPQ                  RV P`                  4       V Pc                  V4       Wn2        WPn3        W`n4        Wn5        Wn6        W0n7        W@n8        \r        Pt                  ! V Pd                  V Pn                  V Pp                  V Pf                  V Ph                  RR7      V n;        / V n<        \D        Pz                  ! V Pd                  4       F  p\|        P~                  ! \        V.R7      pV'       dU   RV,           R,           \        ,           R,           V9   d.    \|        P                  ! \        V.R7      V Px                  V&   K|  RV Px                  V&   K  	  RV nC        RV nD        RV nE        RV nF        RV nG        RV nH        RV nI        \         P                  ! 4       V nK        V P                  P                  \         P                  P                  4       V P                  P                  ^ 4       \        W P                  4       \        4       V nR        V P                  P                  R4       V P                  P                  R4       RV nU        \        RR7      V nW        V P                  P                  V P                  4       V P                  PQ                  RV P                  4       \        R\        R 4      R!7      V nZ        V P                  PQ                  RV P                  4       V P                  P                  V P                  4       \        V P.                  R"\        R#4      R$7      V n\        V P                  PQ                  RV P                  4       V P                  P                  V P                  4       \         P                  ! 4       V n_        V P                  P                  R4       V P                  P                  R4       V P                  P                  \        R%4      4       \        V P                  4       \        V P                  V P                  4       \         P                  ! 4       V ng        V P                  P                  ^4       V P                  P                  R&4       V P                  P                  V P0                  4       V P                  P                  ^4       V P                  P                  V P                  4       V P                  PQ                  R'V P                  4       V P                  P                  V P                  4       \         P                  ! 4       V no        V P                  P                  \        R(4      4       V P                  P                  \        R<4      4       V P                  P                  V P2                  4       V P                  PQ                  R)V P                  4       V P                  P                  V P                  4       \         P                  ! 4       V nt        V P                  P                  R4       V P                  P                  ^ 4       V P                  P                  ^R=4       V P                  P                  R4       V P                  P                  \         P                  P                  4       V P                  P                  ^
4       V P                  P                  ^
4       V P                  P                  V P                  4       V P                  P                  R4       V P                  V P                  4       ^ V n        \         EP                  ! 4       V n        V EP                  P                  R4       V EP                  P                  R4       V EP                  P                  R4       \        V EP                  4       \        ^8  d   \         PV                  PY                  4       pVP[                  \         P\                  P^                  4       VPQ                  RV EP                  4       V EP                  Pc                  V4       \         EP                  ! 4       V n        V EP
                  P                  R4       V EP
                  P                  R4       V EP
                  EP                  R4       V EP
                  EP                  R4       \        V EP
                  V EP                  4       V EP
                  EP                  V EP                  4       V EP                  PQ                  R*V EP                  4       \        V EP                  V EP                  4       \         EP                  ! \         P                  EP                  R+7      p\        V P                  V4       VEP                  R4       VP                  R4       VP                  R4       \         EP                  ! 4       V n        \         EP                   ! 4       V n        V EP"                  P                  R4       V EP"                  EP%                  R4       V EP"                  P                  R4       V EP"                  EP'                  4       PQ                  R,V EP(                  4       V EP"                  PQ                  R-V EP*                  4       \        V EP                  V EP"                  4       \         EP                  ! 4       V n        V EP,                  P                  R4       V EP,                  P                  R4       \        ^8  d   V EP,                  EP/                  R4       V EP,                  EP1                  R4       V EP,                  EP3                  R4       \         EP4                  ! 4       V n        \        V EP,                  V EP6                  4       \         P                  ! 4       V n        V EP8                  P                  \         P                  P                  4       V EP8                  P                  ^ 4       V EP8                  EP;                  R4       \        V EP8                  V EP
                  4       \        V EP8                  V EP                  4       \         P                  ! 4       V n        V EP<                  P                  \         P                  P                  4       V EP<                  P                  ^ 4       V EP<                  EP;                  R4       \        V EP<                  V EP,                  4       \        ^8  d`   VEP?                  V EP8                  4       VEPA                  V EP<                  4       VEPC                  R4       VEPE                  R4       M@VEPG                  V EP8                  RRR.7       VEPI                  V EP<                  RRR.7       \         EPJ                  ! E\L        E\L        E\L        E\L        4      V n        V EP"                  EPQ                  V EPN                  4       R/\        R04      ,           V n        V EPN                  EPU                  RV EPR                  RRV EPR                  .4      p/ V n        \>        P@                  PC                  \D        PF                  ! R4      R14      V n        ^dV n        V EP]                  4        V Pv                  EP_                  4       V n        \D        Pz                  ! V Pd                  4      pV Uu. uF  pVR>9  g   K  VNK  	  ppR=p^ pE\c        V4       EF  w  ppRpVV EP`                  9   d   V EPN                  EPU                  RVRRR.4      pV EPe                  R2V EPg                  R3V4      VV4      '       d   RpV^ 8  d
   VV,
          pV EPe                  R4V EPg                  R5V4      VV4      '       d   RpV EPe                  R6V EPg                  R7V4      VV4      '       d   RpV'       d   V EPN                  EPi                  V4       V'       g   EK  V^,          pEK  	  E\j        EPl                  '       d9   E\n        EPm                  R8\D        Pz                  ! V Pd                  4      VV4       V EP"                  EPq                  \         EPr                  ! R9\         EPt                  ! 4       ^ R:7      4       V EP"                  EPw                  R4       V EP"                  EPy                  4        V^ 8  d   V^,           pV EP"                  EP{                  \         EP|                  ! V.4      R4       V EP"                  EP{                  \         EP|                  ! V^ .4      R4       V EP"                  EP                  \         EP|                  ! V^ ^ .4      V EP"                  EP                  ^ 4      4       V EP"                  EP                  4        E\        V 4       E\        V EP                  4      w  ppE\        V EP
                  4      w  pp E\j        EPl                  '       d   E\n        EPm                  R;VV 4       VEP                  V 4       R#   \        3 d    RT Px                  T&    EK.  i ; iu upi )?u   🚀 r   )titleZEmojiPickera  
            #EmojiPicker {
            }
            flowbox {
            }
            flowboxchild {
                border-style: groove;
                border-width: 0.05px;
            }
            flowboxchild:selected {
                background-color: @theme_selected_bg_color;
                outline: 2px solid @theme_selected_fg_color;
                outline-offset: -2px;
            }
            row { /* This is for listbox rows */
                border-style: groove;
                border-width: 0.05px;
            }
            .font {
                padding: 2px 2px;
            }
            popover {
                border: 0;
                border-radius: 0;
                outline: none;
                background-color: Ztransparentz@theme_bg_colorz;
            }
            UTF-8i  i  emojig      8@TNr   Zoptionszclose-requestzdelete-eventzkey-press-eventzkey-pressed)rZ   r\   r]   r^   r_   Zvariation_selector)rZ   /z/LC_MESSAGES/z.morK   Fzopen-menu-symbolic)	icon_nameclickedzedit-find-symboliczSearch for emoji)rm   tooltip_textzpreferences-desktop-fontzSet the font to display emoji)labelrm   ro   zSet font sizei'  zvalue-changedZFallbackZtoggledzsearch-changed)ZorientationZchangedzrow-activated)ZresizeZshrinku   🕒 zRecently usedzrecently-used
categories
CategoriesZucategoriesUnicode categorieskeywordsKeywordsz\expanded_languages  = %s
first_language_with_categories = %s
number_of_empty_languages = %s
ZBrowser;   z>natural_width_search_entry = %s natural_width_search_bar = %s
zuWhether to use font fallback for emoji or parts of emoji sequences which cannot be displayed using the selected font.)Zen_001Zes_419)r   Window__init__r=   Zset_namer   ZCssProviderr   Zload_from_datalenZStyleContextZadd_provider_for_displayr   ZDisplayZget_defaultZ#STYLE_PROVIDER_PRIORITY_APPLICATIONZencodeZadd_provider_for_screenZScreenZset_default_size_modalZ	set_modal_list_font_names_font	_fontsize	_fallbackr"   _popup_manager_font_popover_font_popover_scroll_font_popover_listboxospathjoinitb_utilZxdg_save_data_path_options_file_read_optionsrA   _save_optionsconnecton_closeon_main_window_key_press_eventEventControllerKeyZnewZset_propagation_phaseZPropagationPhaseZBUBBLEon_main_window_key_pressed_gtk4Zadd_controller
_languages_emoji_unicode_min_emoji_unicode_max_match_limit_spellcheck_unicode_data_all	_unikemet	itb_emojiEmojiMatcher_emoji_matcher_gettext_translationsexpand_languagesr9   Zfindr:   ZtranslationZOSError_currently_selected_label_query_string_emoji_selected_popover_emoji_info_popover_skin_tone_popover_skin_tone_selected_popover._skin_tone_popover_originated_from_emoji_labelBox_main_containerset_orientationOrientationVERTICALset_spacingr   r'   _header_barset_hexpandset_vexpand_main_menu_popoverr(   _main_menu_buttonZ
pack_starton_main_menu_button_clicked_toggle_search_buttonon_toggle_search_button_clicked_font_buttonon_font_button_clicked
SpinButton_fontsize_spin_buttonZset_numericset_can_focusset_tooltip_textr*   r)   "on_fontsize_spin_button_grab_focus
Adjustment_fontsize_adjustmentZ	set_lowerZ	set_upperZ	set_valueZset_step_incrementZset_adjustment$on_fontsize_adjustment_value_changedCheckButton_fallback_check_button	set_label
set_active on_fallback_check_button_toggledZProgressBar_progress_barZset_show_textZset_pulse_stepset_size_request
set_valignAlignZCENTERset_margin_startset_margin_endZpack_endset_visibleZset_titlebar_search_timeout_source_idSearchEntry_search_entryon_search_entry_key_pressedZ	SearchBar_search_barZset_show_close_buttonset_search_modeZconnect_entryon_search_entry_search_changedon_search_entry_grab_focusZPanedZ
HORIZONTALZset_wide_handleScrolledWindow_browse_treeview_scrollTreeView_browse_treeviewset_activate_on_single_clickget_selectionon_label_selectedon_row_activated_flowbox_scrollZset_capture_button_pressset_kinetic_scrollingset_overlay_scrollingFlowBox_flowbox
_left_paneset_homogeneous_right_paneZset_start_childZset_end_childZset_resize_start_childZset_resize_end_childZpack1Zpack2Z	TreeStorer1   _browse_treeview_modelZ	set_model_recently_used_labelappend_recently_used_emoji_recently_used_emoji_file_recently_used_emoji_maximum_read_recently_usedZemoji_by_label_emoji_by_label	enumerate_add_label_key_to_model_translate_keyremove_ARGSdebugLOGGERZappend_columnTreeViewColumnZCellRendererTextZset_headers_visibleZcollapse_allZ
expand_rowTreePath
set_cursorZ
get_columnZcolumns_autosizer   r   set_position)!selfrZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   ZcssZstyle_providerZavailable_fontsZ
controllerlanguageZmo_fileZentry_controllerZbrowse_panedZ_dummy_recent_iterZexpanded_languagesZlangZfirst_language_with_categoriesZnumber_of_empty_languagesZlanguage_indexZlanguage_emptylanguage_iterZfirst_path_componentZ_minimum_width_search_entryZnatural_width_search_entryZ_minimum_width_search_barZnatural_width_search_bars!   &&&&&&&&&&&&                     r5   rx   ZEmojiPickerUI.__init__"  s    	

D!N2C(CDm$#2 5?LL=FW"X Y38 *>))#s3x855'')779
 ))#**W*=>44

&&(779 	c3't{{#//1
(+DJ*n48BF!<@"WW\\''7 	J%N!(^DN>LL$--8LL7q=LL*D,O,OP//335J,,S-A-A-H-HItCCE
+#"3"3'%!1!'44oo!33^^"55"55&( 68" 11$//BHll:(DG(No5
BUJ@;B;N;N"xj<:D..x8
 8<**84# C& JN&>B$:> 9=BF(SW;"wwy,,S__-E-EF((+$,,-*,$$T*$$U+9=!-8L!M##D$:$:;&&t77	9%1*;M9N&P"""**t;;	=##D$>$>?(**(B:;= 	!!)T-H-HI##D$5$56%(^^%5"""..t4""006""33o	 $T%?%?@T77!DD	F$'NN$4!!!++A.!!++E2!!++DNN;!!44Q7""11$2K2KL!!))TFF	H##D$>$>?&)oo&7# 	##--a
m<##44 ! "	# 	##..t~~>##++t<<	>##D$?$?@ __.((.))!,++C4&&t,%%cii&6&67++B/))"-!!$"4"45&&u-$**+./& __.&&u-&&u-((.$T%7%78>"5599;2233G3G3N3NO$$]D4T4TU--.>?==?$$U+$$U+..u5((/$""D$6$67&&t'9'9:""dAA	CT//1P1PQyyS__-G-GH$&&5$$T*  &  &'*'9'9';$ # 	++E2::4@))$/++-55t--	/%%T22	4$..0E0EF"113((.((.q=  99%@22592248$&&6'')''(@(@A##A&''.$//4#3#34$//4#?#?@779(()A)AB$$Q'((/$""D$8$89>((9&&t'7'78//5--d3 ttDIt//TJ&)mmCc3&G#''(C(CD$+a.@$@!!88??&&B0I0IJL BD!)+''7*& -0)  "#22AAC%66tG
 +1*// D* 	 1 *,&$%!(12D(E$NH!N4/// $ ; ; B B8RR0!2//$++L(C -1 1 &+N59*-FF 7//%++,@(K -1 1 &+N//"++JA -1 1 &+N!//66}E~)Q.)5 )F8 ;;;LL3 ))$//:.)+ 	++#..0q:	; 	11%8**,)Q.#AA#E !!,,234e=!!,,2A67@!!,,2Aq9:%%0035 	..0 (;4;M;M'N	%	$	#%89I9I%J	#	"	!;;;LL2*(	*
 	!!":;y  { @;?D..x8@f1s'   4*AW3I;	AXJ	AXW3AXXAXc                   < V ^8  d   QhRR/# r-   r/   Nr>   re   rg   r5   r6   rh     s     - -T -r7   c                <    V P                   P                  R 4       R# )TNr   r   r   r<   r5   _busy_startZEmojiPickerUI._busy_start  s    &&t,r7   c                $   < V ^8  d   QhRS[ RR/# )r-   fractionr/   N)rT   re   rg   r5   r6   rh     s     2 2u 2 2r7   c                s<    V P                   P                  V4       R # r8   )r   Zset_fraction)r   r      &&r5   _busy_fractionZEmojiPickerUI._busy_fraction  s    ''1r7   c                r   r   r>   re   rg   r5   r6   rh     s     . .D .r7   c                r   FNr   r   r<   r5   
_busy_stopZEmojiPickerUI._busy_stop  s    &&u-r7   c                s&   < V ^8  d   QhRS[ RS[ /# r-   rk   r/   r0   re   rg   r5   r6   rh     s      C C r7   c                s,   V P                   R 8X  g    V P                   P                  4       R8X  d   V P                  P                  VR 4      # V P                   R8X  d   V P                  P                  VR4      # V P                  P                  VR4      # )r.   ZsymbolaunqualifiedrK   rk   )r|   rE   r   variation_selector_normalizer   rk   r   r5   &_variation_selector_normalize_for_fontZ4EmojiPickerUI._variation_selector_normalize_for_font  s     ::4::#3#3#5#B&&CCv ::&&&CCr ""??7 	r7   c                r   r   r>   re   rg   r5   r6   rh     s     . .t .r7   c                sd    V P                   P                  4       P                  4        R V n        R # r8   )r   r   Zunselect_allr   r   r<   r5   _browse_treeview_unselect_allZ+EmojiPickerUI._browse_treeview_unselect_all  s'     	++-::<)-&r7   c          
      s8   < V ^8  d   QhRS[ RS[ RS[ RS[RS[/# )r-   	label_keylabel_key_displayr   r   r/   )r1   r   rA   re   rg   r5   r6   rh     s=        # 	
 
 $(r7   c                s   WP                   V,          9  d   R # V P                  V P                   V,          V,          V4      pV'       g   R # V P                  P                  WBRRR.4      pV Fc  p\	        V P                   V,          V,          V,          4      pV P                  P                  VVR,           \        V4      ,           W1V.4       Ke  	  R# )FrK    T)r   _sort_labelsr   r   ry   r1   )	r   r  r  r   r   labelsZlabel_key_iterrp   Znumber_of_emojis	   &&&&&    r5   r   Z%EmojiPickerUI._add_label_key_to_model  s     00::""  *95 44;;r2r:<E!$$X.y9%@BO''..s?33e-.  r7   c                sb   < V ^8  d   QhRS[ S[S[S[,          3,          RS[RS[S[,          /# )r-   r
  r   r/   )r   r1   r   re   rg   r5   r6   rh     s:      d3i(  #3ir7   c                s&   a \        VV3R  lR7      # )c                 s  < SP                  R 4      ;'       g    SP                  R4      ;'       d2    \        P                  ! V ^ ,          4      P                  R4      '       * SP                  R 4      ;'       d2    \        P                  ! V ^ ,          4      P                  R4      '       * \        P                  ! V ^ ,          4      P                  R4      V P                  4       3# )ZjaZzhZCJKZHIRAGANAZDIGIT)Z
startswithunicodedatanamerE   )xr      &r5   <lambda>Z,EmojiPickerUI._sort_labels.<locals>.<lambda>  s     $$T*GGh.A.A$.G A A#((1.99%@@##D) F F#((1.99*EE  1&11':		r7   key)sorted)Zclsr
  r   s   &&fr5   r	  ZEmojiPickerUI._sort_labels  s    
 	 	r7   c                s,   < V ^8  d   QhRS[ RS[ RS[ /# )r-   r  r   r/   r0   re   rg   r5   r6   rh     s"      #   r7   c                s    \        R 4      \        R4      \        R4      .pV P                  V,          '       d,   \        V P                  V,          P                  V4      4      # V# )rr   rs   ru   )r?   r   r1   r9   )r   r  r   Z_dummy_keys_to_translate   &&& r5   r   ZEmojiPickerUI._translate_key  s[    |#$zN$
 
 %%h//t11(;CCCHII
r7   c                s6   < V ^8  d   QhRS[ RS[S[ ,          /# r   )r1   r   re   rg   r5   r6   rh     s#     e e ec er7   c                s   . pTP                  R P                  V Uu. uF  pR\        V4      R 2NK  	  up4      4       \        R4      pV P	                  V4      p\
        P                  ! V P                  R ,           \        V P                  4      ,           VVR7       F  w  rgVR,          pRpV F  p	VR\        V	4      R 2,          pK  	  VRV P                   R	\        V4      P                  4        R
2V,           R,           RV R2,           ,          p\        P                  '       d   VRV 2,          pK  VRVR,           2,          pK  	  VP                  RR4      P                  RR4      p
\        P                  '       d   W8w  d   \
        P                  ! V P                  R ,           \        V P                  4      ,           V
VR7       F  w  rgVR,          pRpV F  p	VR\        V	4      R 2,          pK  	  VRV P                   R	\        V4      P                  4        R
2V,           R,           RV R2,           ,          pVRV 2,          pK  	  VP                  V4       \        P                  ! V P                   4       EFo  pV P"                  P%                  WR7      pRV R2pRpV'       d6   VR\&        P(                  ! RP                  V4      4      ,           ,          pRpV P"                  P+                  WR7      pV'       dT   VRV P-                  RV4      ,           R,           \&        P(                  ! RP                  V4      4      ,           ,          pRpV P"                  P/                  WR7      pV'       dT   VRV P-                  RV4      ,           R,           \&        P(                  ! RP                  V4      4      ,           ,          pRpV'       d   EK^  VP                  V4       EKr  	  V P"                  P1                  V4      '       dB   VP                  \        R4      R ,           V P"                  P1                  V4      ,           4       V P"                  P3                  V4      '       dB   VP                  \        R4      R ,           V P"                  P3                  V4      ,           4       V P"                  P5                  V4      '       dQ   VP                  \        R4      R,           RP                  V P"                  P5                  V4      4      ,           4       V P"                  P7                  V4      '       dQ   VP                  \        R4      R ,           R P                  V P"                  P7                  V4      4      ,           4       V P"                  P9                  V4      '       d>   VP                  \        R4      R V P"                  P9                  V4       2,           4       \        P                  '       d[   VP                  RV P"                  P;                  V4       24       VP                  RV P"                  P=                  V4       24       V# u upi ) r  zU+04Xz Fonts used to render this emoji:)rb   
rK   z U+<span font="" fallback="z" ></span>z<span fallback="true">: r`   u   ︎u   ️r   z<b>z</b>T, Fru   rr   zUnicode Version:zEmoji Version:zEmoji properties:zUnicode category:zUnicode block:zemoji_order = zcldr_order = )r   r   ordr=   _optimize_pango_fallback	itb_pangoZget_fonts_used_for_textr|   r1   r}   rE   r   r   replacer   r   r   r   nameshtmlescapert   r   rq   Zunicode_versionZemoji_version
propertiesZunicode_categoryZunicode_blockZemoji_order
cldr_order)r   rk   ZdescriptionsZ	characterZfonts_descriptionrb   r.   Z	font_dictZcode_pointsZcharZemoji_unqualifiedr   r   rI   Zdescription_emptyrt   rq   s   &&               r5   _emoji_descriptionsZ!EmojiPickerUI._emoji_descriptions  s    HHGI3y>#./GH	J@A007(@@

S 3t~~#66! #OD %KSYsO44 tzzl + ]002338"# +;-w?@A
 {{{!r)%55!!r)F*;)<%==! #  "MM(B7??"M;;;,5#,#D#DJJ$s4>>'::<M%$' "T)!  DST3#88K !!"4::, /!!$X!4!4!6 7s<&' /{m7CDE!
 "r)%55!$' 	-. 11$//BH''--e-GEz.K $tdkk$))E2B&CCC$)!**33E3MH4..z8DDtKkk$))H"5678 %*!,,77 8 *J4..|XFFMkk$))J"789: %*!$$##K0+ C, ..u55$%+%%55e<=> ,,U33"#c)%%33E:;< ))%00 %&-))D//::5ABC	D //66 %&,((4..??FGHI
 ,,U33 "#d))77>?@A	B ;;; !4!4!@!@!G HIK 3 3 > >u EFGIu Hs   Y:c                s>   < V ^8  d   QhRS[ RS[P                  RR/# )r-   rk   rp   r/   N)r1   r   Labelre   rg   r5   r6   rh   \  s-     - -- 99- "&-r7   c                s    \        R 4      R,           p\        V P                  P                  V4      4      ^8  d   V\        R4      R,           ,          pV\        R4      ,          pVP	                  V4       R# )Left click to copyr  z)Long press or middle click for skin toneszRight click for infoN)r=   ry   r   skin_tone_variantsr   )r   rk   rp   ro   r  r5   _emoji_label_set_tooltipZ&EmojiPickerUI._emoji_label_set_tooltip\  si     -.5t""55e<=A=>$FHL011|,r7   c                r   r   r>   re   rg   r5   r6   rh   m  s     \ \ \r7   c                s@   \        V P                  4       \        P                  ! 4       V n        V P                  P                  4       P                  R 4       \        V P                  V P                  4       V P                  P                  \        P                  P                  4       V P                  P                  ^4       V P                  P                  ^d4       V P                  P                  ^ 4       V P                  P                  ^ 4       V P                  P                  R4       V P                  P!                  \        P"                  P$                  4       V P                  P'                  R4       \(        ^8  d   V P                  P+                  R4       V P                  P-                  R4       V P                  P/                  R4       V P                  P1                  R4       V P                  P3                  RV P4                  4       R# )viewTFzselected-children-changedN)r   r   r   r   r   get_style_context	add_classr   r   r   STARTset_min_children_per_lineset_max_children_per_lineset_row_spacingset_column_spacingr   set_selection_modeSelectionModeSINGLEr   r   set_focusabler   r   r   r   on_emoji_selection_changedr   r<   r5   _clear_flowboxZEmojiPickerUI._clear_flowboxm  s\    	t++,'')33F;$&&6  1//2//4%%a(((+2248(():):)A)AB##D)>MM''-%%e,!!%(!!%(94;Z;Z[r7   c                r   r   r>   re   rg   r5   r6   rh     s     w wd wr7   c                sT   V P                   f   \        P                  R4       R # V P                   w  rp\        P                  '       d   \        P                  RWV4       V P	                  4        V P                  4        . pRpV P                  4       pW0P                  8X  d   RpTpWP                  9   dW   W P                  V,          9   d@   W0P                  V,          V,          9   d"   V P                  V,          V,          V,          pV P                  P                  V4       V'       d*   V P                  P                  R\        V4       R24       MV P                  P                  R4       V'       g   V P                  4        R # \        V4       EFl  w  rxV P                  V\        V4      ,          4       \         P"                  P%                  4       P'                  R4      '       dF   \(        P*                  '       g   KK  \        P-                  R4       \.        P0                  ! ^4       Kx  V P                   WV38w  d7   \        P                  R	WV3V P                   4       V P                  4         R # V P3                  V4      pV'       g{   V P4                  P7                  V4      p	\        V	4      ^8  dP   \        V4      p
V	 F&  pW9   g   K  \9        V
VP;                  V4      4      p
K(  	  V
\        V4      8  d	   Wj,          p\<        P>                  ! 4       pV PA                  V4      pR
V PB                   RV PD                   R\G        V4      PI                  4        R\J        PL                  ! V4       R2	p\N        PP                  ! V4      '       dH   VRV PD                  ^,           R\S        V4      R RV P4                  PU                  V4       R2,          pVPW                  V4       VPY                  R4       VP[                  R4       VP]                  R4       VP_                  R4       VPa                  R4       VPc                  R4       VPe                  R4       VPg                  \<        Ph                  Pj                  4       VPm                  \<        Ph                  Pj                  4       ^ pVPo                  V4       VPq                  V4       VPs                  V4       VPu                  V4       V Pw                  W4       \y        4       p\{        VV4       VP}                  RV P~                  4       VP}                  RV P                  4       VP}                  RV P                  4       \<        P                  ! 4       p\        ^8  d#   VP                  R4       VP[                  R4       \{        VV4       V P                  P                  VR4       \        V P                  4       EKo  	  \        V 4       V P                  4        R # )NzNo label is currently selectedz(language = %s label_key = %s label = %s
FT()rK   Control+C pressed, exiting ...z Selected label changed: %r -> %rr  r  r  ">r  z<span fallback="false" font="z"> U+r        ?rn   releasedlong-pressedrv   )Hr   r   r   r   r   r7  _sorted_recently_usedr   r   r   	set_titleset_subtitlery   r   r   r   r   MainContextrO   	iterationSIGNAL_HANDLERinterrupt_requestedinfosysexitr  r   r(  minindexr   r&  r  r|   r}   r1   rE   r!  r"  r   Zis_invisibler  r  set_textset_use_markupr   set_selectabler   r   
set_xalign
set_yalign
set_halignr   FILLr   r   r   set_margin_topset_margin_bottomr)  r%   r   r   !on_flowbox_event_box_button_press#on_flowbox_event_box_button_release'on_flowbox_event_box_long_press_pressedFlowBoxChildr   r5  r   insertr   )r   r   r  rp   Z
emoji_listZis_recently_usedZsorted_recently_usedrJ  rk   r(  Zrecently_used_indexskin_tone_variantZ	gtk_labelrb   r.   margin	event_boxflowbox_childs   &                 r5   _fill_flowbox_browseZ"EmojiPickerUI._fill_flowbox_browse  s   
 ))1LL9:'+'E'E$e;;;LL;U, 	
 #99;---#-J,,,!5!5h!??228<YGG--h7	B5IJ""5)))Ac*o->a*@A))"-OO%j1LEc*o 56 ""**,66u==!555KK @AHHQK--(u1MM 6%0224 !??FE#%)%8%8%K%K&")*Q.
 +..B*C'-?),D25 3 4 : :;L M3O/ .@
 +S1E-FF 4 I		I44U;H tzzl!DNN+; < ]00232;;u%&g/  $$U++3DNNQ4F3G He*S)4+>+>+C+CE+J*K t$$$T*##E*$$U+!!%(!!%(  %  %   0  0F&&v.$$V,$$V,''/))%;/1Ii+4AACDDDF L LN,,.MA~++D1++D1mY/MM  3T]]#a 2d 	r7   c                r   r   r>   re   rg   r5   r6   rh     s     '6 '6t '6r7   c                s>   / p\         P                  P                  V P                  4      '       d    \	        V P                  R R7      ;_uu_ 4       p\
        P                  ! VP                  4       4      pRRR4       \        P                  '       d!   \        P                  RV P                  4       \%        T\&        4      '       g/   \        P                  '       d   \        P                  RT4       / pRV9   dD   \%        VR,          \(        4      '       d'   VR,          V n        V P*                  R8X  d   R	V n        R
V9   d2   \%        VR
,          \,        \.        34      '       d   VR
,          V n        RV9   d0   \%        VR,          \2        4      '       d   VR,          V n        R# R# R#   + '       g   i     ELE; i  \        \        \        3 d7   p\        P                  RTP                  P                   T4        Rp?ELYRp?i\"         d7   p\        P                  RTP                  P                   T4        Rp?ELRp?ii ; i  \%        T\&        4      '       g0   \        P                  '       d   \        P                  RT4       / pi i ; i)rj   encodingN%File %s has been read and evaluated.
z"Error when reading options: %s: %sz-Unexpected error when reading options: %s: %sz$Not a dict: repr(options_dict) = %s
r`   rK   rk   ra   rb   )r   r   isfiler   openastliteral_evalreadr   r   r   PermissionErrorSyntaxErrorIndentationError	exception	__class____name__	ExceptionrD   dictr1   r|   rU   rT   r}   rA   r~   )r   options_dictoptions_fileerrors   &   r5   r   ZEmojiPickerUI._read_options  s    77>>$,,--&$,,#*, ,/;#&#3#3L4E4E4G#HL, ;;;LL@**, ",55{{{C(* $&Ll"|F3S99%f-DJzzR$
,&Z 83,GG)*5DN,&Z 8$??)*5DN @ '=, , , $[2BC B  !E!&!9!95B B 5  COO,,e5 55 ",55{{{C(* $&L 6se   G %F37G ?6I 3G	>	G I+HI II+II II ,JJc                r   r   r>   re   rg   r5   r6   rh   &  s     % %t %r7   c                s"   R V P                   RV P                  RV P                  /p\        V P                  RRR7      ;_uu_ 4       pVP                  \        V4      4       VP                  R4       RRR4       R#   + '       g   i     R# ; i)r`   ra   rb   wrj   Zmoder_  r  N)r|   r}   r~   rb  r   writerepr)r   rn  ro  s   &  r5   r   ZEmojiPickerUI._save_options&  s|    
 DJJ
 $$$"$ $'3tL12t$	$ $ $ $s   ,A==B	c                0   < V ^8  d   QhRS[ S[,          /# rH   r   r1   re   rg   r5   r6   rh   5  s     D DtCy Dr7   c                s:   a  \        S P                  V 3R  lR7      # )c                 p   < SP                   V ,          R ,          ) SP                   V ,          R,          ) 3# rV   countr   r  r   r  r5   r  Z5EmojiPickerUI._sorted_recently_used.<locals>.<lambda>:  s5     55a8@@ 55a8AA%Cr7   r  )r  r   r   s   fr5   r?  Z#EmojiPickerUI._sorted_recently_used5  s"     d//CD 	Dr7   c                r   r   r>   re   rg   r5   r6   rh   >  s     && &&T &&r7   c                s   / p\         P                  P                  V P                  4      '       d    \	        V P                  R R7      ;_uu_ 4       p\
        P                  ! VP                  4       4      pRRR4       \        P                  '       d!   \        P                  RV P                  4       \%        T\&        4      '       g/   \        P                  '       d   \        P                  RT4       / p/ V n        VP+                  4        F-  w  rEV'       g   K  VV P(                  V P-                  V4      &   K/  	  V P(                  '       g   V P/                  4        V P1                  4        R#   + '       g   i     EL; i  \        \        \        3 d7   p\        P                  RTP                  P                   T4        Rp?ELRp?i\"         d7   p\        P                  RTP                  P                   T4        Rp?ELZRp?ii ; i  \%        T\&        4      '       g0   \        P                  '       d   \        P                  RT4       / pi i ; i)rj   r^  Nr`  z)Error reading recently used emoji: %s: %sz4Unexpected error reading recently used emoji: %s: %sz+Not a dict: repr(recently_used_emoji) = %s
)r   r   ra  r   rb  rc  rd  re  r   r   r   rf  rg  rh  ri  rj  rk  rl  rD   rm  r   Zitemsr  _init_recently_used_cleanup_recently_used)r   Zrecently_used_emojiZrecently_used_filerp  rk   values   &     r5   r   Z!EmojiPickerUI._read_recently_used>  s    !77>>$8899-$88#*, ,/A*-*:*:*//1+3', ;;;LL@668 ""5t<<{{{J/1 +-'$&!/557LEuJO ))??FH 8
 ((($$&##%?, , , $[2BC B  !L!&!9!95B B 5  JOO,,e5 55 ""5t<<{{{J/1 +-' =se   F	 %E57F	 ?6H 5F	 	F	 	H+G
H HH+H	H HH ,IIc                r   r   r>   re   rg   r5   r6   rh   f  s     5 5 5r7   c                s   a  \        S P                  4      S P                  8  d?   \        S P                  V 3R  lR7      S P                  R  F  pS P                  V K  	  R# R# )c                 rw  rx  rz  r{  r  r5   r  Z6EmojiPickerUI._cleanup_recently_used.<locals>.<lambda>n  s4    33A6v>>33A6w??#r7   r  N)ry   r   r   r  r  s   f r5   r}  Z$EmojiPickerUI._cleanup_recently_usedf  sd    
 t(()D,M,MM--
 889; --e4; Nr7   c                r   r   r>   re   rg   r5   r6   rh   t  s     " "T "r7   c                s    / V n         V P                  4        V P                  R R V P                  38X  d   V P	                  4        R# R# )rK   N)r   _save_recently_used_emojir   r   r7  r   r<   r5   r|  Z!EmojiPickerUI._init_recently_usedt  sG     %'!&&(**R2234!4r7   c                8   < V ^8  d   QhRS[ P                  RR/# r-   _buttonr/   Nr   Buttonre   rg   r5   r6   rh     s!     # #::#*.#r7   c                s    \         P                  '       d   \        P                  R 4       V P                  P	                  4        V P                  4        R# )z(on_clear_recently_used_button_clicked()
N)r   r   r   r   popdown_currentr|  r   r  r   r5   %on_clear_recently_used_button_clickedZ3EmojiPickerUI.on_clear_recently_used_button_clicked  s8    
 ;;;LLDE++-  "r7   c                r   r-   rk   r/   Nr0   re   rg   r5   r6   rh     s     ) )3 )4 )r7   c                sR   WP                   9   dQ   V P                   V,          R ;;,          ^,          uu&   \        P                  ! 4       V P                   V,          R&   M&R ^R\        P                  ! 4       /V P                   V&   V P                  4        V P                  4        R# )ry  rV   N)r   rV   r}  r  r  r   r5   _add_to_recently_usedZ#EmojiPickerUI._add_to_recently_used  s     ---%%e,W5:57;yy{D%%e,V4 FDIIK01D%%e,##% 	&&(r7   c                r   r   r>   re   rg   r5   r6   rh     s     % %4 %r7   c                s    \        V P                  R RR7      ;_uu_ 4       pVP                  \        V P                  4      4       VP                  R4       RRR4       R#   + '       g   i     R# ; i)rq  rj   rr  r  N)rb  r   rs  rt  r   )r   Zrecents_files   & r5   r  Z'EmojiPickerUI._save_recently_used_emoji  s^     $00"$ $'3tD$=$=>?t$	$ $ $ $s   6A!!A2	c                r   )r-   r.   r/   Nr0   re   rg   r5   r6   rh     s     6 6C 6D 6r7   c                sp   \         ^8  d   \        P                  P                  \        P
                  4      p\        P                  P                  \        P                  4      pVP                  VR4       VP                  VR4       VP                  4        VP                  4        R# V P                  4       pVe1   \        P                  P                  V4      pVP                  V4       V P                  4       pVe3   \        P                  P                  V4      pVP                  V4       R# R# )i   Nrv   )r   r   Z	ClipboardZgetr   ZSELECTION_CLIPBOARDZSELECTION_PRIMARYrK  rJ   Zget_clipboardZContentProviderZnew_for_valueZset_contentZget_primary_clipboard)r   r.   Z	clipboardZprimaryZcontent_provider   &&   r5   _set_clipboardsZEmojiPickerUI._set_clipboards  s     q=))#*A*ABImm''(=(=>GtR(T2& OOMMO**,I$#&#6#6#D#DT#J %%&67002G"#&#6#6#D#DT#J ##$45	 #r7   c                r   r  r0   re   rg   r5   r6   rh     s     0 00!%0r7   c                s   TpR \        \        V P                  4      4       R2p\        P                  ! V P
                  4       FD  pV P                  P                  WR7      pV'       g   K)  VRRP                  V4       2,          p M	  \        P                  ! V P
                  4       FW  pV P                  P                  WR7      pV'       g   K)  VRV P                  RV4       RRP                  V4       2,          p M	  V P                  P                  V4       V P                  P                  V4       R# )r8  r9  r  r  r  ru   r  N)ry   r   r   r   r   r   r   r   r   rt   r   r   r@  rA  )r   rk   ri   Zsubtitler   r   rt      &&     r5   -_show_concise_emoji_description_in_header_barZ;EmojiPickerUI._show_concise_emoji_description_in_header_bar  s    4T]]CDEQG !11$//BH''--e-GEu1TYYu-.//	 C !11$//BH**33E3MHx++JAB"TYYxEXDYZ\ C 	""5)%%h/r7   c                r   r   r>   re   rg   r5   r6   rh     s     5 5 5r7   c                 s   \         P                  4        \        P                  ! 4       p \        P
                  ! \         V R 7      pVP                  4        VP                  R4       VP                  R^4       VP                  R^24       VP                  R^4       \        P                  RV P                  4       4       \        P                  R\        P                  P                  4       4       \        P                  R\        P                   P"                  P                  4       4       \        P                  R\        P                   P$                  P                  4       4       \        P                  R	\        P&                  P                  4       4       \        P                  R
\        P(                  P                  4       4       R# )ZstreamZ
cumulativeZemoji_pickerr   r  zProfiling info:
%sz(itb_util.remove_accents() cache info: %szDitb_emoji.EmojiMatcher.variation_selector_normalize() cache info: %sz;itb_emoji.EmojiMatcher.get_all_label_words() cache info: %sz)itb_emoji._match_classic() cache info: %sz+itb_emoji._match_rapidfuzz() cache info: %sN)PROFILEZdisableioZStringIOpstatsZStatsZ
strip_dirsZ
sort_statsZprint_statsr   rF  Zgetvaluer   Zremove_accentsZ
cache_infor   r   r  Zget_all_label_wordsZ_match_classicZ_match_rapidfuzz)Zstats_streamZstatss     r5   print_profiling_informationZ)EmojiPickerUI.print_profiling_information  sF    	{{}W\:&."-+r*+r*)<+@+@+BC6##..0	2 	R""??JJL	N 	I""66AAC	E 	7$$//1	3 	9&&113	5r7   c                &   < V ^8  d   QhRS[ RS[/# r-   _argsr/   r   rA   re   rg   r5   r6   rh     s      s t r7   c                s    \         P                  R 4       V P                  4        \        P                  '       d   V P
                  P                  4        \        e   \        P                  4        R# \        R4      h)z%Window deleted by the window manager.GLIB_MAIN_LOOP not initialized!F)
r   rF  r  r   r   rj  r  GLIB_MAIN_LOOPquitRuntimeErrorr   r     &*r5   r   ZEmojiPickerUI.on_close  sY    ;<&&(;;;NN668%!  @AAr7   c          
      s4   < V ^8  d   QhRRRS[ RS[ RRRS[/# )r-   _controllerzGtk.EventControllerKeykeyvalkeycodestatezGdk.ModifierTyper/   rU   rA   re   rg   r5   r6   rh     s=     8 818 8 	8
 &8 
8r7   c                s:    V P                  V \        W#V4      4      # r8   )r   r&   )r   r  r  r  r  s   &&&&&r5   r   Z-EmojiPickerUI.on_main_window_key_pressed_gtk4  s#    ( 22,v68 	8r7   c                s>   < V ^8  d   QhRS[ P                  RRRS[/# )r-   _window	event_keyzGdk.EventKeyr/   )r   rw   rA   re   rg   r5   r6   rh   *  s7     CI CIZZCI &CI 
	CIr7   c                st   \         P                  '       d!   \        P                  R VP                  4       \	        V P                  4       \        P                  4      '       d   R# VP                  \        P                  P                  ,          '       dD   VP                  R8X  d3   V P                  P                  R4       \        V P                  4       R# \!        \        P                  R4      '       d   \        P                  P"                  M\        P                  P$                  pVP                  \        P                  P                  V,          \        P                  P&                  ,          ,          '       d   R# VP                  '       g   R# V P                  P                  R4       \        V P                  4       V P(                  P+                  4       '       g   \,        P.                  P1                  4       pVP3                  4       '       dW   VP5                  R4       \6        P8                  '       g   K?  \        P;                  R4       \<        P>                  ! ^4       Kl  \@        ^8  d%   \C        V P                  PE                  V4      4      # \G        W P(                  4      # )zkeyval = %s
FrC   TALT_MASKr:  )$r   r   r   r  rD   Z	get_focusr   ZEditabler  r   ModifierTypeZCONTROL_MASKZstringr   r   r   Zhasattrr  Z	MOD1_MASKZ	META_MASKr   Zget_realizedr   rB  rO   ZpendingrC  rD  rE  rF  rG  rH  r   rA   Zhandle_eventr   )r   r  r  Zalt_maskZctxs   &&&  r5   r   Z,EmojiPickerUI.on_main_window_key_press_event*  s    ;;;LL)*:*:;dnn&55__s//<<<<  C' ,,T2T%%&s//<< $$--))33 	 ??c..;;''112 3 3((.!!". !!..00 ""**,C++--e$!555KK @AHHQKq=((55i@AA))5G5GHHr7   c                r  r-   buttonr/   Nr  re   rg   r5   r6   rh   o  s#     	D 	Dcjj 	DT 	Dr7   c                s    \         P                  '       d   \        P                  R 4       V P                  P	                  4        \
        P                  ! \        V4      R7       R# )zon_about_button_clicked()
)ZparentN)r   r   r   r   r  r   ZItbAboutDialogr    )r   r  r   r5   on_about_button_clickedZ%EmojiPickerUI.on_about_button_clickedo  s@     ;;;LL67++-':6'BCr7   c                r   r   r>   re   rg   r5   r6   rh   z  s     k k4 kr7   c           	     s   \         P                  '       d!   \        P                  R V P                  4       ^ V n        V P                  4        V P                  4        V P                  pV P                  P                  VV P                  V P                  R7      pV P                  4        V P                  P                  \        R4      4       V P                  P                  R\!        V4       R24       V'       g$   \"        P$                  ! R^\        R4      R7      .p\'        V4       EF  w  r4V P)                  V\!        V4      ,          4       \*        P,                  P/                  4       P1                  R4      '       dF   \2        P4                  '       g   KK  \        P7                  R	4       \8        P:                  ! ^4       Kx  V P                  V8w  d4   \        P                  R
WP                  4       V P=                  4         R# V P?                  VP@                  4      pVPB                  pVPD                  p\F        PH                  ! 4       pV PK                  V4      p	RV PL                   RV PN                   R\Q        V	4      PS                  4        R2\T        PV                  ! V4      ,           R,           RV PN                  ^,           R2,           R,           \T        PV                  ! V4      ,           R,           p
\         P                  '       d1   V
RV PN                  ^,           R2RVR 2,           R,           ,          p
VPY                  V
4       VP[                  R4       VP]                  R4       VP_                  R4       VPa                  R4       VPc                  R4       VPe                  ^ 4       VPg                  R4       VPi                  \F        Pj                  Pl                  4       VPo                  \F        Pj                  Pl                  4       ^ pVPq                  V4       VPs                  V4       VPu                  V4       VPw                  V4       V Py                  WX4       \{        4       p\}        W4       VP                  RV P                  4       VP                  RV P                  4       VP                  RV P                  4       \F        P                  ! 4       p\        ^8  d#   VP                  R4       VP]                  R4       \}        W4       V P                  P                  VR4       \        V P                  4       V^ 8X  g   EKB  V P                  P                  V4       \        V P                  4      pV P                  V^ ,          RR7       EK  	  \        V 4       V P=                  4        R# )z6_fill_flowbox_with_search_results() query_string = %s
)rc   rd   zSearch Resultsr8  r9  u   ∅zSearch produced empty result.)phrase	user_freqcommentFr:  zquery string changed: %r -> %rNr  r  r  r;  r  z" foreground="red">z0.2fTr<  rn   r=  r>  show_popoverrv   )Lr   r   r   r   r   r   r7  r   
candidatesr   r   r  r   r@  r=   rA  ry   r   ZPredictionCandidater   r   r   rB  rO   rC  rD  rE  rF  rG  rH  r   r  r  r  r  r   r&  r  r|   r}   r1   rE   r!  r"  rK  rL  r   rM  r   r   rN  rO  rP  r   rQ  r   r   r   rR  rS  r)  r%   r   r   rT  rU  rV  rW  r   r5  r   rX  r   select_childr   _emoji_label_selected)r   query_stringr  rJ  Z	candidaterk   Zscorer  rp   rb   r.   rZ  r[  r\  emoji_labelss   &              r5   !_fill_flowbox_with_search_resultsZ/EmojiPickerUI._fill_flowbox_with_search_resultsz  s   
 ;;;LLI""$ *+&))((33))'' 4 )

 	**,""1%5#67%%3z?)<A&>?"669:< =J
 !** 5Ec*o 56 ""**,66u==!555KK @AHHQK!!\1 4 "4"46 !??	@P@PQE''E$$DIIKE44U;Htzzl!DNN+; < ]002327++e$%  !!!3 4B7	8
 
 D)*   {{{"4>>A#5"66IJ%&' ! NN4   &&  'e$e$QS! SYY^^,SYY^^,F""6*  (  (##F+))%7/1Ii'4AACDDDF L LN,,.MA~++D1++D1m/MM  3T]]#z **=97F**<?*OY !6\ 	r7   c                @   < V ^8  d   QhRS[ P                  RS[RS[/# )r-   spin_buttonr  r/   )r   r   r   rA   re   rg   r5   r6   rh     s-        
	r7   c                    \         P                  '       d    \        P                  R \        V4      4       \	        V4       \
        ^8  d   \        P                  ! VR4       R# )z6on_fontsize_spin_button_grab_focus() spin_button = %s

grab-focusTr   r   r   rt  r*   r   r   Zsignal_stop_emission_by_name)r   r  r     &&*r5   r   Z0EmojiPickerUI.on_fontsize_spin_button_grab_focus  sJ     ;;;LLI[!# 	%[1 q=00lKr7   c          
      s`   < V ^8  d   QhRS[ P                  RS[RS[RS[P                  RS[/# )r-   r  r  _keycode_stater/   )r   r   rU   r   r  rA   re   rg   r5   r6   rh     sI     & &++& & 	&
   & 
&r7   c                s   V\         P                  39   d   V P                  P                  4       '       d   \	        V P
                  4      pV'       d   V^ ,          pV P
                  P                  4        V P
                  P                  V4       \        P                  P                  V P
                  V4       VP                  4        \        V P
                  4      pV P                  V^ ,          RR7       R# R# )r    Fr  T)r   ZKEY_Downr   get_search_moder   r   
grab_focusr  r   r   r   r   r  )r   r  r  r  r  ZchildrenZchildr  s   &&&&&   r5   r   Z)EmojiPickerUI.on_search_entry_key_pressed  s     s||o%  0022+DMM:H !((***51" &&t}}e<  "7F**<?*Or7   c                r  )r-   search_entryr  r/   )r   r   r   rA   re   rg   r5   r6   rh   &  s-      //  
	r7   c                r  )z/on_search_entry_grab_focus() search_entry = %s
r  Tr  )r   r  r  r  r5   r   Z(EmojiPickerUI.on_search_entry_grab_focus&  sJ     ;;;LLB\"$ 	%\2 q=00|Lr7   c                r  r-   r  r/   Nr   r   re   rg   r5   r6   rh   <  s!     '4 '4//'4.2'4r7   c                sl   VP                  4       p\        P                  '       d   \        P                  R V4       RV n        V P
                  P                  4       '       g   R# VP                  4       '       d   VRR pMVP                  4       pW P                  8X  d.   \        P                  '       d   \        P                  R4       R# W n	        V P                  '       d(   \        P                  ! V P                  4       ^ V n
        \        P                  ! ^dV P                  4      V n
        R# )z3on_search_entry_search_changed() query_string = %s
Nz;query string effectively unchanged (only whitespace change)rv   )get_textr   r   r   r   r   r  ZisspaceZstripr   r   r   Zsource_removetimeout_addr  )r   r  r     && r5   r   Z,EmojiPickerUI.on_search_entry_search_changed<  s     $,,.;;;LLF *.&//11 !! (,L
 (--/L---{{{QS))))t==>-.D*)-)9)922*4&r7   c                r  )r-   	selectionr/   N)r   ZTreeSelectionre   rg   r5   r6   rh   e  s#     1 1((1-11r7   c                s\   VP                  4       w  r#V'       g   R # \        P                  '       d8   \        P                  RW#,          R,          \	        V P
                  4      4       V P                  P                  R4       V P                  P                  R4       RV n
        V P                  P                  4        W#,          ^,          pW#,          ^,          pW#,          ^,          pV P
                  WEV38X  d   R # WEV3V n        \        P                  ! V P                  4       R # )Nz9model[iterator] = %s
self._currently_selected_label = %s
:NNNFrK   )Zget_selectedr   r   r   rt  r   r   r   r   rK  r   r   r  r   idle_addr]  )r   r  ZmodelZiteratorr   r  rp   r  r5   r   ZEmojiPickerUI.on_label_selectede  s     &224;;;LL8"T334	6 	((/##B'((*?1%OA&	"))h5-II*2u)E&d//0r7   c                sl   < V ^8  d   QhRS[ P                  RS[ P                  RS[ P                  RR/# )r-   treeviewtreepathcolumnr/   N)r   r   r   r   re   rg   r5   r6   rh     sA     > >ll> ll> &&	> ,0	>r7   c                s    \         P                  '       d6   \        P                  R \        V4      \        V4      \        V4      4       R# R# )zon_row_activated() %s %s %s
N)r   r   r   rt  )r   r  r  r  s   &&&&r5   r   ZEmojiPickerUI.on_row_activated  s4     ;;;LL/XXV> r7   c                r  r   )r1   rA   re   rg   r5   r6   rh     s      c d r7   c                s    V P                   '       g   R # \        P                  ! V P                  V4      '       g   R # R# )FT)r~   r  Zemoji_font_fallback_neededr|   r  r   r5   r  Z&EmojiPickerUI._optimize_pango_fallback  s-     ~~~33DJJFFr7   c                s<   < V ^8  d   QhRS[ RS[S[ S[ 3,          /# r,   )r1   r   re   rg   r5   r6   rh     s%       %c3hr7   c                s   R pR p\         P                  ! R4      pVP                  V4      pV'       db   \        P                  ! VP                  R4      4      pVP                  R4      '       d&   \        P                  ! VP                  R4      4      p\        P                  '       d   \        P                  RWV4       W#3# )rK   rk   r  ztext = %s emoji = %s name = %s
zJ<span[^<]*?>(?P<emoji>[^<]+?)</span>(<span[^<]*?>(?P<name>[^<]+?)</span>)?)	reZcompilematchr!  ZunescapeZgroupr   r   r   )r   r.   rk   r  Zpatternr     &&    r5   _parse_emoji_and_name_from_textZ-EmojiPickerUI._parse_emoji_and_name_from_text  s     **89 d#MM%++g"67E{{6""}}U[[%89;;;LL2T# }r7   c                s@   < V ^8  d   QhRS[ P                  RS[RS[/# )r-   emoji_labelr  r/   )r   r&  rA   re   rg   r5   r6   rh     s-     * ** * 
	*r7   c                s  a  VP                  4       p\        P                  '       d   \        P                  R V4       S P	                  V4      w  rEV'       g   \        \        P                  4      # S P                  V4       S P                  V4       S P                  V4       V'       g   R# \        V\        P                  P                  R7      S n        S P                  pVP!                  R4       \        P"                  ! 4       pVP%                  \'        R4      4       \)        Wg4       S P*                  P-                  V\.        P0                  4       \2        P4                  ! RV 3R l4       R# )z
text = %s
TZpointing_toZpositionCopied to clipboard!  c                  X   < S P                   P                  \        P                  R 7      # Zkindr   r  r!   EMOJI_SELECTEDr      r5   r  Z5EmojiPickerUI._emoji_label_selected.<locals>.<lambda>       //Y5M5M/Nr7   )	get_labelr   r   r   r  rA   r   EVENT_PROPAGATEr  r  r  r#   r   PositionTypeTOPr   r   r&  rK  r=   r   r   popupr!   r  r   r  )r   r  r  r.   rk   _namepopoverrp   s   f&&     r5   r  Z#EmojiPickerUI._emoji_label_selected  s   & $$&;;;LL-==dC++,,::5AU#""5)'5#c.>.>.B.B(D$..d#		q/01'!!!'9+C+CD O	P r7   c                sN   < V ^8  d   QhRS[ P                  RS[P                  /# )r-   flowboxr/   )r   r   r   r  re   rg   r5   r6   rh     s)     # #[[# 
		#r7   c                s   \         P                  '       d   \        P                  R 4       VP                  4       pV'       g<   \         P                  '       d   \        P                  R4       \        P
                  # V^ ,          p\        ^8  d    VP                  4       P                  4       pMVP                  4       P                  4       pV P                  VRR7       \        P
                  # )zon_emoji_selection_changed()zNothing selectedFr  )
r   r   r   Zget_selected_childrenr   r  r   	get_childZget_first_childr  )r   r  Zselectedr\  r  r  r5   r6  Z(EmojiPickerUI.on_emoji_selection_changed  s     ;;;LL78002{{{/0&&& >'113CCEK'113==?K"";U"C"""r7   c                r  r  r  re   rg   r5   r6   rh     s#     E E#** E Er7   c                s   \         P                  '       d   \        P                  R 4       \        V\        P
                  P                  R7      V n        V P                  pVP                  \        P
                  P                  4       VP                  R4       \        P                  ! 4       pVP                  \        P                  P                  4       VP                  ^ 4       \        P                  ! \!        R4      R7      pVP#                  RV P$                  4       \'        W44       V P(                  '       gH   \        P                  ! \!        R4      R7      pVP#                  RV P*                  4       \'        W54       \        P                  ! \!        R4      R7      pVP#                  RV P,                  4       \'        W64       \'        W#4       V P.                  P1                  V\2        P4                  R7       R	# )
zon_main_menu_button_clicked()
r  TzClear recently used)rp   rn   ZAboutZQuitr  N)r   r   r   r#   r   r  BOTTOMr   r   r   r   r   r   r   r   r  r=   r   r  r   rz   r  r   r   r  r!   Z	MAIN_MENU)r   r  r  vboxZclear_recently_used_buttonZabout_buttonZquit_buttonr  r5   r   Z)EmojiPickerUI.on_main_menu_button_clicked  sb    ;;;LL:;"0)9)9)@)@#B))S--445d#wwyS__556%(ZZa8M6N%O""**tAA	C$3{{{::AgJ7L  D,H,HId)jjqy1It}}5$$' !!'	0C0C!Dr7   c                r  r  r  re   rg   r5   r6   rh   "  s     	4 	4szz 	4d 	4r7   c                s    \         P                  '       d   \        P                  R 4       V P                  P	                  V P                  P                  4       '       * 4       R# )z"on_toggle_search_button_clicked()
N)r   r   r   r   r   r  r  r   r5   r   Z-EmojiPickerUI.on_toggle_search_button_clicked"  sC     ;;;LL>?((  0022	4r7   c                r   r   r>   re   rg   r5   r6   rh   -  s        d  r7   c           	     s   \        V P                  4       EF  pVP                  4       pV P                  V4      w  r4V'       g   K1  V P	                  V4      pV P                  V4      pR V P                   RV P                   R\        V4      P                  4        R2\        P                  ! V4      ,           R,           pV'       dA   VRV P                  ^,           R2\        P                  ! V4      ,           R,           ,          pVP                  V4       VP                  R4       EK  	  \        V P                  4       R# )r  r  r  r;  r  z<span fallback="true" font="TN)r   r   r  r  r  r  r|   r}   r1   rE   r!  r"  rK  rL  r   )r   rp   r.   rk   r  rb   new_texts   &      r5   _change_flowbox_fontZ"EmojiPickerUI._change_flowbox_font-  s   
 .dmm<E??$D @@FMUuCCEJ88?"4::,a/? @!!$X!4!4!6 7r;kk%()    
 6t~~7I6J"M++d+,#$%H x($$T*# =$ 	r7   c                R   < V ^8  d   QhRS[ P                  RS[ P                  RR/# )r-   r   r\  r/   N)r   r   rW  re   rg   r5   r6   rh   F  s8     9P 9Pkk9P ++9P 159Pr7   c                s  a  VP                  4       pVP                  4       p\        P                  '       d   \        P                  R V4       S P                  V4      w  rVV'       g   R# S P                  V4       S P                  V4       S P                  V4       S P                  f   \        P                  R4       R# S P                  pVP                  4       pS P                  V4      w  rV'       d   V	'       g   S P                  V4      p
RS P                   RS P                   R\        V
4      P                  4        R2\        P                   ! V4      ,           R,           pVP#                  V4       VP%                  R4       \'        V\(        P*                  P,                  R	7      S n        S P.                  p\(        P0                  ! 4       pVP#                  \3        R
4      4       \5        W4       S P6                  P9                  V\:        P<                  4       \>        P@                  ! RV 3R l4       R# )z"on_skin_tone_selected() text = %s
Nz;self._skin_tone_popover_originated_from_emoji_label is Noner  r  r  r;  r  Tr  r  r  c                  r  r  r  r   r  r5   r  Z5EmojiPickerUI.on_skin_tone_selected.<locals>.<lambda>~  r  r7   )!r  r  r   r   r   r  r  r  r  r   r  r|   r}   r1   rE   r!  r"  rK  rL  r#   r   r  r  r   r&  r=   r   r   r  r!   r  r   r  )r   r   r\  r  r.   rk   r  Zorig_emoji_labelZ	old_emojiZold_namerb   r  r  rp   s   f&&           r5   on_skin_tone_selectedZ#EmojiPickerUI.on_skin_tone_selectedF  s    $--/$$&;;;LL>E==dC::5AU#""5)
 >>FLLMONN))+ $ D DT JX 44U;Htzzl!DNN+; < ]002327++e$%  
 %%h/++D1+9(33C3C3G3G,I(22		q/01'!!!'9+C+CD O	Pr7   c                "   < V ^8  d   QhRRRR/# )r-   r[  r%   r/   Nr>   re   rg   r5   r6   rh     s     
0 
00
0 

0r7   c                s    \         P                  '       d   \        P                  R V4       V P                  V4       R# )z,on_flowbox_event_box_long_press_pressed() %rN)r   r   r   _show_skin_tone_popover)r   r[  r   r5   rV  Z5EmojiPickerUI.on_flowbox_event_box_long_press_pressed  s-     ;;;LL>	K$$Y/r7   c                *   < V ^8  d   QhRRRS[ RS[/# r-   r[  r%   r  r/   r  re   rg   r5   r6   rh     )     ) )0) ) 
	)r7   c                s    \         P                  '       d   \        P                  R W4       \        \        P
                  4      # zevent_box=%r button=%d)r   r   r   rA   r   r  r   r[  r     &&&r5   rT  Z/EmojiPickerUI.on_flowbox_event_box_button_press  s-     ;;;LL19EC''((r7   c                r  r  r  re   rg   r5   r6   rh     r  r7   c                s    \         P                  '       d   \        P                  R W4       V^8X  d   V P                  V4       V^8X  d   V P	                  V4       \        \        P                  4      # r  )r   r   r   r  _show_emoji_info_popoverrA   r   r  r  r  r5   rU  Z1EmojiPickerUI.on_flowbox_event_box_button_release  sW     ;;;LL19EQ;((3Q;)))4C''((r7   c                r  r-   r[  zGtk.EventBoxr/   Nr>   re   rg   r5   r6   rh     s%     lE lE+lE	lEr7   c                s   \        V4      pW n        VP                  4       pV P                  V4      w  rEV'       g   R # . pV P                  P                  V4       F#  pVP                  V P                  V4      4       K%  	  \        V4      ^8:  d   R # VP                  4       p\        V\        P                  4      '       d\   VP                  4       '       gF   V P                  P                  4        V P                  P!                  V4       VP                  4        \#        V\        P$                  P&                  R7      V n        V P(                  p	V	P+                  R4       V	P-                  R4       \        P.                  ! 4       p
^pV
P1                  V4       V
P3                  V4       V
P5                  V4       V
P7                  V4       \        P8                  ! 4       pVP;                  4       P=                  R4       VP?                  \        P@                  PB                  4       VPE                  ^4       VPG                  ^4       VPI                  ^ 4       VPK                  ^ 4       VPM                  R4       VPO                  \        PP                  PR                  4       VPU                  R4       VPW                  R4       VP-                  R4       VP+                  R4       VPY                  RV PZ                  4       V EF  p\        P\                  ! 4       pV P_                  V4      pVPa                  RV Pb                   RV Pd                   R\g        V4      Pi                  4        R	2\j        Pl                  ! V4      ,           R
,           4       VPo                  R4       VPU                  R4       VPq                  R4       VP-                  R4       VP+                  R4       VPs                  R4       VPu                  R4       VPw                  \        P@                  Px                  4       VP?                  \        P@                  Px                  4       ^ pVP1                  V4       VP3                  V4       VP5                  V4       VP7                  V4       VP{                  \}        R4      4       VPU                  R4       VP                  VR4       EK  	  \        P                  ! 4       pVP-                  R4       VP+                  R4       VP                  R4       VP                  R4       \        W4       V
P                  V^ ^ ^^4       \        W4       \        V
4       \        V4      w  pp\        V4      w  pp\        V 4      w  ppV
P                  \        RV,          V4      \        RV,          V4      4       V P                  P                  V	\        P                  R7       R # )Nr  Fr*  Tzchild-activatedr  r  r  r;  r  r<  r'  333333?r  rv   )Or$   r   r  r  r   r(  r   r  ry   Z
get_parentrD   r   rW  Zis_selectedr   r  r  r#   r  r  r   r   r   ZGridr   r   rR  rS  r   r+  r,  r   r   r-  r.  r/  r0  r1  r   r2  r3  r4  r   r   r   r  r&  r  rK  r|   r}   r1   rE   r!  r"  rL  rM  rN  rO  rP  rQ  r   r=   rX  r   r   r   r   Zattachr   r   r   r   r   rI  r   r  r!   Z	SKIN_TONE)r   r[  r  r.   rk   r  r(  rY  r\  r  ZgridrZ  r  rp   rb   scrollZ_min_width_flowboxZnatural_width_flowboxZ_min_height_flowboxZnatural_height_flowboxwindow_widthwindow_heights   &&                    r5   r  Z%EmojiPickerUI._show_skin_tone_popover  s    ?yI>I;$$&==dC!%!4!4!G!G!N%%;;<MNP "O !"a' ",,.mS%5%566 ,,..((***=9((*"0#c.>.>.B.B#D))E"E"xxzf%F#F#v&++-!!#--f5399??+))!,))!,"""1%,,T2""$$	&e$&D!D!)4+E+EF!3IIKE44U;HNNtzzl!DNN+; < ]002327++/01 
   &&  'e$e$S!S! SYY^^,SYY^^,F""6*  (  (##F+""1%9#:;&NN5"%5 "46 ##%4 4 $$U+$$T*&"FAq!Q'' 6I'6R3	28LW8U5	4(7(=%}l"$9:m#%;<	> 	!!'	0C0C!Dr7   c                r  r  r>   re   rg   r5   r6   rh   !  s'     ^F ^F%^F 
^Fr7   c           
     sn   \        V4      pVP                  4       pV P                  V4      w  rEV'       g   R # \        V\        P
                  P                  R7      V n        V P                  pVP                  R4       VP                  R4       \        P                  ! 4       pVP                  \        P                  P                  4       VP                  R4       VP                  R4       ^ pVP                  V4       VP                  V4       VP!                  V4       VP#                  V4       VP%                  V4       \        P&                  ! 4       p	\)        Wy4       \        P*                  ! 4       p
V
P-                  R4       V
P/                  R4       V
P                  R4       V
P                  R4       V
P1                  \        P2                  P4                  4       V
P7                  R4       \)        W4       \        P8                  ! 4       pVP                  R4       VP                  R4       VP;                  \        P<                  P>                  4       VPA                  \        P<                  P>                  4       V PC                  V4      pVPE                  RV PF                   RV PH                  ^,           R\K        V4      PM                  4        R2\N        PP                  ! V4      ,           R,           4       V
PS                  VR4       V PU                  V4       EF-  p\        P8                  ! 4       p^ pVP                  V4       VP                  V4       VP!                  V4       VP#                  V4       VPW                  R4       VP                  R4       VP                  R4       VP;                  \        P<                  P>                  4       VPA                  \        P<                  P>                  4       \Y        VR\Z        P\                  P^                  R	7       VPE                  V4       V
PS                  VR4       EK0  	  V P`                  Pc                  V4      R
8  g"   V P`                  Pe                  V4      '       d   \        Pf                  Pi                  \k        R4      4      pVPm                  RV,           R,           4       VP;                  \        P<                  P>                  4       V
PS                  VR4       \o        V
4       F6  pVPq                  R4       VPW                  R4       VP/                  R4       K8  	  \)        Wg4       \s        V4       \u        V4      w  pp\w        V4      w  pp\u        V
4      w  pp\w        V
4      w  pp\y        V 4      w  ppVP{                  \}        RV,          VV,           4      \}        RV,          VV,           4      4       V P~                  P                  V\        P                  R7       R # )Nr  FTr  r  r  r;  r  )ZwrapZ	wrap_model    zLookup on emojipediazhttp://emojipedia.org/emoji/rl   r  r  rv   )Cr$   r  r  r#   r   r  r  r   r   r   r   r   r   r   r   r   rR  rS  r   r   r   ListBoxr   r   r2  r3  ZNONEr   r&  rP  r   r-  r   r  Z
set_markupr|   r}   r1   rE   r!  r"  rX  r%  rM  r   r   ZWrapModeZ	WORD_CHARr   r$  r#  Z
LinkButtonZnew_with_labelr=   Zset_urir   Zset_activatabler   r   r   r   r   rI  r   r  r!   Z
EMOJI_INFO)r   r[  r  r.   rk   r  r  r  rZ  r  Zlistboxrp   rb   rI   Zlabel_descriptionZ
linkbuttonZrowZ_min_width_vboxZnatural_width_vboxZ_min_height_vboxZnatural_height_vboxZ_min_width_listboxZnatural_width_listboxZ_min_height_listboxZnatural_height_listboxr  r  s   &&                         r5   r  Z&EmojiPickerUI._show_emoji_info_popover!  s    ?yI$$&==dC#1#c.>.>.E.E$G **E"E"wwyS__556f%F#F#v& ##%$++-D!e$D!E"""3#4#4#9#9:,,T2&"		% % ))0074::,a(:'; <X,,./r3kk% ! 	
 	ub!33E:K #		F..v6,,V4,,V4//7,,T2))%0))%0((9((9!8P8PR((5NN,b1 ;  **51J>&&11%8866()+J.6<>!!#))//2NN:r*w'C&u%e$ ( 	' 0CD0I-,2Ft2L/	.6I'6R3	28LW8U5	4(7(=%}  l""%::<m##&<<>	?
 	!!'	0D0D!Er7   c                r  )r-   
adjustmentr/   N)r   r   re   rg   r5   r6   rh     s!     1 1!nn1151r7   c                s    VP                  4       p\        P                  '       d   \        P                  R V4       W n        V P                  4        \        P                  ! V P                  4       R# )z2on_fontsize_adjustment_value_changed() value = %s
N)	Z	get_valuer   r   r   r}   r   r   r  r  )r   r  r~  r  r5   r   Z2EmojiPickerUI.on_fontsize_adjustment_value_changed  sP     $$&;;;LLEuNd//0r7   c                r  )r-   check_buttonr/   N)r   r   re   rg   r5   r6   rh     s!     1 1 #1481r7   c                s    VP                  4       V n        \        P                  '       d!   \        P                  R V P                  4       V P                  4        \        P                  ! V P                  4       R# )z7on_fallback_check_button_toggled() self._fallback = %s
N)	Z
get_activer~   r   r   r   r   r   r  r  )r   r  r   r5   r   Z.EmojiPickerUI.on_fallback_check_button_toggled  sS     &002;;;LLJ  	d//0r7   c                ru  rH   rv  re   rg   r5   r6   rh     s     ; ;$s) ;r7   c                s*   . R	OpR\        R4      ,           R,           R\        R4      ,           R,           R\        R4      ,           R,           .pVP                  R4       V P                  4       pVP                  4       p\	        V Uu. uF  qUP                  4       NK  	  up4      pV FG  pVP                  R^R7      ^ ,          pW9   g   K%  VP                  V4       VP                  V4       KI  	  VP                  R4       W&,           pV# u upi )
   Noto Color Emoji 🎨u   emoji (zSystem defaultr9  u   text (u   unqualified (rK       )Zmaxsplit)r  u   Blobmoji 🎨u   OpenMoji Color 🎨u   Twitter Color Emoji 🎨u   Twemoji 🎨u   Toss Face Font Web 🎨u   Apple Color Emoji 🎨u   Emoji Two 🎨u   Emoji One 🎨u   JoyPixels 🎨u   Segoe UI Emoji 🎨u   OpenMoji Black 🙾u   Symbola 🙾u   Noto Emoji 🙾u   Android Emoji 🙾u   og-dcm-emoji 🙾)r=   r   Zget_pango_contextZlist_familiesr  Zget_namesplitr   )	r   Zgood_emoji_fontsZavailable_good_emoji_fontsZpango_contextZfamiliesZfamilyr   r`   r  s	   &        r5   r{   ZEmojiPickerUI._list_font_names  s    
$
N +,,s2*++c1q!122S8&
"
 	#))"-..0 ..0Af)AB$D::dQ:/2D}T"*11$7	 %
 	#))"-*2 Bs   	Dc                r   )r-   filter_textr/   Nr0   re   rg   r5   r6   rh     s     /% /%c /%d /%r7   c                s   \         P                  '       d   \        P                  R V4       V P                  f   \        P                  R4       R# \	        V P                  4       \
        P                  ! 4       V n        V P                  f   \        P                  R4       R# \        V P                  V P                  4       V P                  P                  R4       V P                  P                  R4       V P                  P                  \
        P                  P                  4       V P                  P                  R4       V P                  P                  RV P                   4       V P#                  4        Uu. uFJ  pVP%                  RR4      P'                  4       VP%                  RR4      P'                  4       9   g   KH  VNKL  	  ppV F  p\
        P(                  ! 4       pVP+                  V4       VP-                  ^ 4       ^pVP/                  V4       VP1                  V4       VP3                  V4       VP5                  4       P7                  R4       VP9                  V4       V P                  P;                  VR
4       K  	  V P<                  f   \        P                  R	4       R# \?        V P<                  4       R# u upi )z&_fill_listbox_font() filter_text = %s
Nz!self._font_popover_scroll is Nonez"self._font_popover_listbox is NoneTzrow-selectedr  rK   r`   zself._font_popover is Nonerv   ) r   r   r   r   r   r   r  r   r   r   r   r2  r3  r4  r   r   on_font_selectedr{   r  rE   r&  rK  rN  r   r   rR  r+  r,  rS  rX  r   r   )r   r  r`   Zfontsrp   rZ  r  r5   _fill_listbox_fontZ EmojiPickerUI._fill_listbox_font  s2    ;;;LL9;H$$,LL<=t001%([[]"%%-LL=>$++T-G-GH""..t4""..t4""55c6G6G6N6NO""??E""**D11	3 --/./""3+113||C$**,- D/ 	 .
 DIIKENN4 QF""6*  (  (##%//7##F+&&--eR8  %LL56##$'.s   AKKc                r  r  r  re   rg   r5   r6   rh   	  s!     - - #-48-r7   c                s    VP                  4       p\        P                  '       d   \        P                  R V4       V P	                  V4       R# )z7on_font_search_entry_search_changed() filter_text = %s
N)r  r   r   r   r  )r   r  r  r  r5   #on_font_search_entry_search_changedZ1EmojiPickerUI.on_font_search_entry_search_changed	  s=     #++-;;;LLJ 	,r7   c                r  )r-   _listboxlistbox_rowr/   N)r   r  Z
ListBoxRowre   rg   r5   r6   rh   	  s1     1 1kk1 1 -11r7   c                s   VP                  4       P                  4       P                  R 4      ^ ,          p\        P                  '       d    \
        P	                  R\        V4      4       VR8X  d   RpW0P                  8w  d+   VR9   d$   RV n        V P                  P                  R4       M"RV n        V P                  P                  R4       V P                  P                  4        W0n        V P                  P                  V P                  4       V P                  4        \         P"                  ! V P$                  4       R# )r  zon_font_selected() font = %s
rK   rk   TFN)rk   r.   r  )r  r  r  r   r   r   rt  r|   r~   r   r   r   r  r   r   r   r   r  r  )r   r  r   r`   r  r5   r  ZEmojiPickerUI.on_font_selected	  s     $$&//177=a@;;;LL94:F2:D::$*J"J!DN''2248"DN''2259++-
##DJJ/d//0r7   c                r  r  r  re   rg   r5   r6   rh   7	  s     -" -"SZZ -"D -"r7   c                s    \         P                  '       d   \        P                  R 4       \        V\        P
                  P                  R7      V n        V P                  p\        V 4      w  r4\        VR,          4      p\        VR,          4      pVP                  WV4       VP                  R4       VP                  R4       \        P                  ! 4       pVP                  \        P                  P                   4       ^pVP#                  V4       VP%                  V4       VP'                  V4       VP)                  V4       VP+                  V4       \        P,                  ! 4       p	V	P/                  \1        R4      4       V	P3                  R4       V	P5                  \        P6                  P8                  4       \;        Wy4       \        P<                  ! 4       p
V
P                  R4       V
P3                  R4       V
P5                  \        P6                  P8                  4       V
P?                  R4       V
P                  R4       V
PA                  RV PB                  4       \;        Wz4       \        PD                  ! 4       V n#        V PI                  R4       \;        WpPF                  4       \;        W'4       V PJ                  PM                  V\N        PP                  R	7       V
PS                  4        R
# )zon_font_button_clicked()
r  g?g?TzSet FontFZsearch_changedrK   r  N)*r   r   r   r#   r   r  r  r   r   rU   r   r   r   r   r   r   r   r   r   rR  rS  r   r&  rK  r=   r   rP  r   rQ  r   r   r   r   r  r   r   r  r   r  r!   ZFONT_SELECTIONr  )r   r  r  r  r  Zdesired_widthZdesired_heightr  rZ  rp   r  s   &&         r5   r   Z$EmojiPickerUI.on_font_button_clicked7	  s,    ;;;LL,.+)9)9)@)@B$$(7(=%L3./]S01  ?d#D!wwyS__556f%F#F#v& 		q}%$($(""4(  &		/  '  'dFF	H$%$'$6$6$8!#$112' !!'	0H0H!I!r7   )2r   r   r   r   r   r   r   r   r   r   r~   r   r   r   r|   r   r   r   r   r}   r   r   r   r   r   r   r   r   r   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ))en_USFFTrR   z100.0NNNrQ   T)Zen)T)@rk  
__module____qualname____firstlineno__rx   r   r   r   r  r  r   Zclassmethodr	  r   r%  r)  r7  r]  r   r   r?  r   r}  r|  r  r  r  r  r  Zstaticmethodr  r   r   r   r  r  r   r   r   r   r   r   r  r  r  r6  r   r   r  r  rV  rT  rU  r  r  r   r   r{   r  r  r  r   __static_attributes____classdictcell__rf      @r5   rY   rY     sw    u< u<n- -2 2. .
 $. . 0  " e eN- -"\ \.w wr'6 '6R% %D D&& &&P5 5" "# #) )"% %6 6B0 0< 5 5> 8 8.CI CIJ	D 	Dk kZ .& &P ,'4 '4R1 1<> >   4* *X# #:E E<	4 	4   29P 9Pv
0 
0) )&) )&lE lE\^F ^F@1 11 1 ; ;z/% /%b- -1 16-" -"r7   rY   c                s:    V ^8  d   QhR\         \        ,          /# rH   rv  r2   r4   r5   r6   r6   f	  s      tCy r7   c                  s   \         P                  '       d)   \        \         P                  P                  R 4      4      # \        P
                  ! R4      p V '       g   \        P
                  ! R4      p V '       g   \        P
                  ! R4      p V '       g   \        P
                  ! R4      p V '       g   R.# . pV P                  R 4       F*  pVP                  \        P                  ! RRV4      4       K,  	  V# )Z:ZLANGUAGELC_ALLZLC_MESSAGESZLANGr  z[.@].*rK   )	r   rZ   Zlistr  r   getenvr   r  Zsub)Zenvironment_variablerZ   r   s      r5   get_languagesr  f	  s     EOO))#.//99Z0!yy2!yy7!yy0yI(..s3	2x89 4r7   c                   sr   a  ] tR tRt o V 3R lR lt]V 3R lR l4       tV 3R lR ltV 3R lR	 ltR
t	V t
R# )SignalHandleri}	  c                r   r   r>   re   rg   r5   r6   SignalHandler.__annotate__	  s     & &$ &r7   c                sH    R V n         \        P                  ! 4       V n        R# r   )_interrupt_requested	threadingZLock_lockr   r<   r5   rx   ZSignalHandler.__init__	  s     +0!^^%
r7   c                s    < V ^8  d   QhRS[ /# rH   )rA   re   rg   r5   r6   r  	  s     - -T -r7   c                s    V P                   ;_uu_ 4        V P                  uuR R R 4       #   + '       g   i     R # ; ir8   )r  r  r   r<   r5   rE  Z!SignalHandler.interrupt_requested	  s"    
 ZZZ,, ZZZs   ,=	c                r  r  r  re   rg   r5   r6   r  	  s     	 	C 	D 	r7   c                    \         P                  R 4       V P                  ;_uu_ 4        RV n        RRR4       R#   + '       g   i     R# ; i)SIGINTTNr   rF  r  r  r  r  r5   handle_sigintZSignalHandler.handle_sigint	  s4     	HZZZ(,D%  Z	   <A	c                r  r  r  re   rg   r5   r6   r  	  s     	 	S 	T 	r7   c                r  )SIGTERMTNr  r  r  r5   handle_sigtermZSignalHandler.handle_sigterm	  s4     	IZZZ(,D%  Zr  )r  r  N)rk  r  r  r  rx   ZpropertyrE  r  r  r  r  r  r  r5   r  r  }	  s7     & & - -	 		 	r7   r  c                sJ    V ^8  d   QhR\         R\        \        ,          RR/# )r-   signum_framer/   N)rU   r   r
   r2   r4   r5   r6   r6   	  s)     > >>%i0><@>r7   c                 s   V e8    \         P                  ! V 4      P                  p\
        P                  RW4       \        e   \        P                  4        R # \        R4      h  \         d    \	        T 4      p LWi ; i)Nz#Received signal %s (%s), exiting...r  )
signalZSignalsr  Z
ValueErrorr1   r   rF  r  r  r  )r  r  Zsignal_namer  r5   quit_glib_main_loopr  	  sl     	& ..055K 	96O!<==  	&f+K	&s    A% %A>=A>Z__main__r  zP%(asctime)s %(filename)s line %(lineno)d %(funcName)s %(levelname)s: %(message)sz********** STARTING **********rK   z.IBUS-WARNING **: Using the fallback 'C' localeZCZIBUS_LOCALEDIR)rZ   r`   ra   rb   r[   r\   r]   r^   r_   rc   rd   r:  c                s    V ^8  d   Qh/ ^ \         9   d   \        \        P                  ,          ;R&   ^\         9   d
   \        ;R&   # )r-   r  rD  )__conditional_annotations__r   r   MainLoopr  r2   r4   r5   r6   r6      s;      ` / .' .a rL 0 / /sL r7   r8   )r  Ztypingr   r   r   r   r   r   r   r	   Ztypesr
   rG  r   r  r  rc  r  rF   ZlocalerV   r9   r  r!  ZloggingZlogging.handlersZgir   Zgi.repositoryr   r   Zset_application_nameZset_prgnameZitb_gtkr   r   r   r   r   r   r  Zitb_versionZg_compat_helpersr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Z	getLoggerr   r  r:   r=   r?   rG   rW   r   rw   rY   r  r  rD  r  rk  r   ZNullHandlerZLOG_HANDLER_NULLZStreamHandlerZstdoutZLOG_HANDLER_STREAMZ	FormatterZLOG_FORMATTERZsetFormatterZsetLevelZDEBUGZ
addHandlerrF  ZcProfiler  r  ZProfiler  ZenableZset_program_nameZ	setlocaler	  ZErrorrp  r
  Z	LOCALEDIRZbindtextdomainrX   ZprintZget_versionrH  r`   ra   rb   r[   Zallr]   r^   r_   rc   rd   ZEMOJI_PICKER_UIr  r  r  ZrunZKeyboardInterruptr  r6   )r  r  r5   <module>r     s_  0            
 	 	  
                
   . )      ( ' ' !          4 
		0	1*. ."
.
@Wr 	F!"CJJ F!"PB.2 2h !. />$ z;;;"..0$22#**E)) 	''6&,-45""$n--+
 		*+I:y1}}}k%%'(#/ZZkk1111%%##%O ]]_N
MM&.."56
MM&--!45q . << -EF,-D  45s$   9O >P ?PP)QQ