+
   Xdmc                   s   ^ 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HtHtHt ^ RIHt ]! RR	4       ^ R
IHt ]! RR4       ^ RIHt ]! RR4       ^ RIHt ^ RIt^ RIt]
P.                  ! R4      tR R lt]]n        ]! ^ 4      t ]! ]! ]P<                  ! R4      4      4      t]P<                  ! R4      '       d4   ]PB                  PE                  ]! ]P<                  ! R4      4      R4      t#M+]PB                  PE                  ]PH                  ! 4       R4      t#]P<                  ! R4      '       d4   ]PB                  PE                  ]! ]P<                  ! R4      4      R4      t%M+]PB                  PE                  ]PH                  ! 4       R4      t%R R lt&]&! 4       t']'PP                  '       d   ^ RI)t)^ RI*t*^ RI+t+])PX                  ! 4       t-]'P\                  '       d   ^ RI/H0t0H1t1H2t2 M^ RI3t3 ! R R4      t4R R  lt5R(R! R" llt6R# R$ lt7R% R& lt8]9R'8X  d
   ]8! 4        R# R#   ]] 3 d    ]! ^ 4      t ELi ; i))    Any)Union)Type)OptionalN)signalSIGTERMSIGINT)require_versionIBusz1.0)r
   Gioz2.0)r   GLib)r   ibus-typing-boosterc                s    V ^8  d   QhR\         \        ,          R\        R\        \        P                  ,          RR/# )   exc_type	exc_valueexc_tracebackreturnN)r   ZBaseExceptionr   typesZTracebackTypeformat   "-/usr/share/ibus-typing-booster/engine/main.py__annotate__r   2   s@      =! E//0 
	    c                 s    \        V \        4      '       d   \        P                  ! WV4       R # \        P                  RWV3R7       R # )NzUnhandled exception)Zexc_info)Z
issubclassKeyboardInterruptsysZ__excepthook__LOGGERZerror)r   r   r   s   &&&r   log_unhandled_exceptionr   2   sA     (-..8>
LL}5  r   ZIBUS_TYPING_BOOSTER_DEBUG_LEVELZIBUS_TYPING_BOOSTER_LOCATIONZiconszshare/ibus-typing-booster/iconsZ IBUS_TYPING_BOOSTER_LIB_LOCATIONzibus-setup-typing-boosterz!libexec/ibus-setup-typing-boosterc                s$    V ^8  d   QhR\         /# )r   r   r   r   r   r   r   r   Y   s     $ $C $r   c            	      s2   \         P                  ! 4       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7       V P                  RRRRRRR7       V P                  4       # )z--daemonz-dZ
store_truedaemonFz#Run as daemon, default: %(default)s)ZactionZdestdefaultZhelpz--ibusz-iibusz+Set the IME icon file, default: %(default)sz--xmlz-xxmlz1output the engines xml part, default: %(default)sz
--no-debugz-nno_debugz	--profilez-pprofilezXDo not write log file ~/.local/share/ibus-typing-booster/debug.log, default: %(default)szWprint profiling information into the debug log. Works only when --no-debug is not used.)argparseZArgumentParserZadd_argument
parse_args)Zparsers    r   r%   r%   Y   s    $$&F
D2  4 $:  < @  B d!  " T4  5 r   )Element
SubElementtostringc                   sl   a  ] tR t^t o V 3R lR ltV 3R lR ltV 3R lR ltRV 3R lR	 lltR
tV t	R# )IMAppc                $   < V ^8  d   QhRS[ RR/# )r   exec_by_ibusr   N)Zboolr   __classdict__   "r   r   IMApp.__annotate__   s     .< .<T .<d .<r   c                s   \         ^8  d   \        P                  RV4       \        P                  ! 4       V n        \        P                  ! 4       V n        V P                  P                  RV P                  4       \        P                  ! V P                  4      V n        RV n        V'       d   V P                  P                  R^ 4       R# \        P                   ! RR\"        P$                  ! 4       RRRRR	7      V n        R
pRpRpRpRp\(        P*                  P-                  \.        R4      p\(        P0                  ! V\(        P2                  4      '       g   RpRpRp	\        P4                  ! VVVVRVVVV	R7	      p
V P&                  P7                  V
4       V P                  P9                  V P&                  4       R# )   z IMApp.__init__(exec_by_ibus=%s)
ZdisconnectedFz&org.freedesktop.IBus.IbusTypingBoosterzTyping Booster ComponentGPLz0http://mike-fabian.github.io/ibus-typing-boosterr   )namedescriptionZversionlicenseauthorZhomepageZ
textdomaintyping-boosterTyping Booster,A completion input method to speedup typing.tibus-typing-booster.svg r      🚀)	r2   longnamer3   languager4   r5   iconlayoutsymbolNIMike FABIAN <mfabian@redhat.com>, Anish Patil <anish.developer@gmail.com>)DEBUG_LEVELr   debugr   ZMainLoop_IMApp__mainloopr
   ZBusZ_IMApp__busZconnect_IMApp__bus_destroy_cbfactoryZEngineFactory_IMApp__factory	destroyedZrequest_nameZ	Componentitb_versionZget_versionZ_IMApp__componentospathjoinICON_DIRaccessF_OKZ
EngineDescZ
add_engineZregister_component)selfr+   r2   r=   r3   r>   r5   r?   r@   rA   engines   &&         r   __init__ZIMApp.__init__   sh   ?LL<lK--/XXZ


>4+@+@A ..tzz:JJ##8!=  $~~=6#//1DK0 2D $D'HHKH>  77<<*CDD99T277++FF__$.61<.6-2,2*.,2,24F ''/JJ))$*:*:;r   c                   < V ^8  d   QhRR/# r   r   N r,   r.   r   r   r/      s        T  r   c                s    \         ^8  d   \        P                  R4       \        P                  '       d   \
        P                  4        V P                  P                  4        V P                  4        R# )r0   zIMApp.run()
N)
rC   r   rD   _ARGSr#   _PROFILEZenablerE   runrF   rQ      &r   rY   Z	IMApp.run   sD    ?LL)===OOr   c                rT   rU   rV   r,   r.   r   r   r/      s        d  r   c                sf    \         ^8  d   \        P                  R4       V P                  4        R# )r0   zIMApp.quit()
N)rC   r   rD   rF   rZ   r[   r   quitZ
IMApp.quit   s"    ?LL)*r   Nc                r*   )r   busr   Nr   r,   r.   r   r   r/      s     H HC H4 Hr   c                s   \         ^8  d   \        P                  RV4       V P                  '       d   R# \        P	                  R4       V P
                  P                  4        RV n        V P                  P                  4        \        P                  '       d   \        P                  4        \        P                  ! 4       p\        P                   ! \        VR7      pVP#                  4        VP%                  R4       VP'                  R^4       VP'                  R^4       VP'                  R	^4       VP'                  R
^4       VP'                  R^4       \        P	                  RVP)                  4       4       R# R# )r0   zIMApp.__bus_destroy_cb(bus=%s)
Nzfinalizing:)T)ZstreamZ
cumulativeZ	tabsqliteZhunspell_suggestZhunspell_tableitb_utilZ	itb_emojizProfiling info:
%s)rC   r   rD   rI   inforH   Z
do_destroyrE   r\   rW   r#   rX   ZdisableioZStringIOpstatsZStatsZ
strip_dirsZ
sort_statsZprint_statsZgetvalue)rQ   r]   Zstats_streamZstatss   &&  r   Z__bus_destroy_cbZIMApp.__bus_destroy_cb   s   ?LL;SA>>>N#!!#===;;=LLL,?E\*k2.0"5.3j"-k2.KK-|/D/D/FG r   )Z__busZ__componentZ	__factoryZ
__mainlooprI   N)
__name__Z
__module__Z__qualname__Z__firstlineno__rS   rY   r\   rF   Z__static_attributes__Z__classdictcell__)r-   s   @r   r)   r)      s6     .< .<`      H H Hr   r)   c                s(    V ^8  d   QhR\         RR/# )r   ima_insr   N)r)   r   r   r   r   r      s      U t r   c                 sP    V P                  4        \        P                  ! 4        R # rb   )r\   r   exit)rd   r[   r   cleanuprf      s     LLNHHJr   c                s4    V ^8  d   QhR\         R\        RR/# )r   elementlevelr   N)r   intr   r   r   r   r      s!      C  D r   c                 s   R VR,          ,           pV f   R# \        V 4      '       d   V P                  '       d!   V P                  P                  4       '       g   VR,           V n        RpV  FY  pTp\        WA^,           4       VP                  '       d#   VP                  P                  4       '       d   KK  VR,           Vn        K[  	  Ve=   VP                  '       d!   VP                  P                  4       '       g	   W#n        R# R# R# V'       d=   V P                  '       d!   V P                  P                  4       '       g	   W n        R# R# R# )
z    N)ZlentextZstripindentZtail)rg   rh   ZiZlast_subelementZ
subelements   &&   r   rl   rl      s    uV|A
7|||||7<<#5#5#7#7v:GL!J(O:Qw'???*//*?*?*A*A"#f*
	 "
 '$)))1E1E1K1K1M1M#$  2N ( ',,,gll.@.@.B.BL /C5r   c                    V ^8  d   QhRR/# rU   rV   r   r   r   r   r     s     C; C;4 C;r   c                  s(   \         P                  ! 4       p \        V P                  4       4      p\        R .4      p\	        W,
          4      R.,           pR7pR8R9R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRRP                  V4      ,           R,           ^3RKRLRMRNRORPRQ.pRR.p\        R4      pV EF  p\        VR4      p	Rp
R	pR
pRpRpRpRpRp\        P                  P                  \        R4      pRpRp\         P                  ! R4      '       d   \         P                  ! 4       RR8  d   RpRp^ pRpVR8w  d   VP                  R^R7      w  ppRV RV 2p
RV RV R2p^ pV F'  w  pp\        P                  ! VV
4      '       g   K%  Tp M	  RpV F$  p\        P                  ! VV
4      '       g   K"  Rp M	  Rp\         P                    F'  w  pp\        P                  ! VV
4      '       g   K%  Tp M	  V R2pTpV P#                  V4      pV P%                  V4      p\&        RV
 2,           p\(        P*                  ! RVR 7      p\         P,                  ! VP/                  R!4      4      pVe   Tp\        V	R#4      p V
V n        \        V	R$4      p!VV!n        \        V	R%4      p"VV"n        \        V	R&4      p#VV#n        \        V	R'4      p$VV$n        \        V	R(4      p%VV%n        \        V	R)4      p&VV&n        \        V	R*4      p'VV'n        \        V	R+4      p(VV(n        \        V	R,4      p)VV)n        \        V	R-4      p*VV*n        \        V	R.4      p+VV+n        \        V	R/4      p,VV,n        \        V	R04      p-\3        V4      V-n        EK  	  \5        V4       \7        VR1R2R37      P9                  R44      p.\        P:                  ! R54      p/V/P=                  RV.4      p.\>        P@                  PB                  PE                  V.R6,           PG                  R44      4       R"# )SZNoIMEr6   ztb:(Z|z):[^:]+ztb:[^:]+:.*inscript.*ztb:si:.+ZenginesrR   r7   r9   r1   rB   r   r;   r:   r8   r<   Zgnomeu   🚀︎Z	InputModez,/org/freedesktop/ibus/engine/typing-booster/Z-)Zmaxsplitztb:Z:z /org/freedesktop/ibus/engine/tb/Z/zlv3:ralt_switchz (tb)z --engine-name z*org.freedesktop.ibus.engine.typing-booster)ZschemarL   ZinputmodetruesymbolNr2   r=   r>   r4   r5   r?   r@   layout_variantlayout_optionr3   rA   setupicon_prop_keyrankZutf8r!   )encodingZmethodzutf-8z
<\?.*\?>\nrj   )ZasZbnZbrxZdoiZdraZdvZguZhiZknZksZmaiZmlZmniZmrZneZnewZorZpaZsaZsatZsdZsiZtaZte)ztb:si:samanalar    )ztb:[^:]+:.*inscript2.*i   )ztb:te:inscript   )ztb:ta:tamil99rt   )ztb:si:wijesekarart   )ztb:sd:inscriptrt   )ztb:sa:harvard-kyotort   )ztb:pa:inscriptrt   )ztb:or:inscriptrt   )z	tb:ne:romrt   )ztb:mr:inscriptrt   )ztb:ml:inscriptrt   )ztb:mai:inscriptrt   )z	tb:ks:kbdrt   )z	tb:kn:kgprt   )ztb:hi:inscriptrt   )ztb:gu:inscriptrt   )ztb:bn:inscriptrt   )ztb:as:inscriptrt   )z	tb:ar:kbdr   )ztb:ja:anthy)ztb:zh:pyru   )ztb:zh:py-gbru   )ztb:zh:py-b5ru   )z
tb:ko:han2ru   )ztb:ko:romajaru   )i0   rt   )$r^   Z
M17nDbInfoZsetZget_imesZsortedrM   r&   r'   rK   rL   rN   Z
is_desktopZget_gnome_shell_versionZsplitreZ	fullmatchZM17N_IME_SYMBOLSZget_iconZget_description
SETUP_TOOLr   ZSettingsZvariant_to_valueZget_user_valuerk   strrl   r(   ZdecodeZcompileZsubr   ZstdoutZbufferZwriteZencode)0Zm17n_db_infoZm17n_input_methodsZm17n_input_methods_skipZsupported_input_methodsZindic_languagesZrank_patternsZralt_switch_patternsZegsZimeZ_enginer2   r=   r>   Zengine_licenser5   r@   rn   ro   r?   r3   rA   rq   rr   Zschema_pathZ	m17n_langZ	m17n_nameZpatternZpattern_rankZpattern_symbolrp   Z	gsettingsZuser_symbolZ_nameZ	_longnameZ	_languageZ_licenseZ_authorZ_iconZ_layoutZ_layout_variantZ_layout_optionZ_descZ_symbolZ_setupZ_icon_prop_keyZ_rankZegsoutZpatts0                                                   r   	write_xmlry     so    &&(L\2245!#  %4	OD 	 	' 	 # 
C::o.	.	;Q? 	[.Mb 	!
 )
C&  #> ww||H&?@D((002g= "F#D""#&99S19#= Iy1YK0D='[)A7KD)6%<<..'D *7 F/<<.. %6M 0 F+3+D+D'<<..+F ,E e}H H ))#.D&66s;Ktf55LL?	 //$$%:;=" F7F+
w
3	!	w
3	!	gy1&Wh/7F+
Wh/$W.>?-#G_=+7M2 
Wh/GW-#G_=+7F+Y
{ '@ 3KfU,,2F7O ::m$DXXb&!FJJVD[009:r   c                rm   rU   rV   r   r   r   r   r     s     - -d -r   c                  sr  a \         P                  '       d   \        4        R # \        P                  ! 4       p \         P
                  '       g   \        P                  ! \        P                  P                  R4      \        P                  4      '       g   \        P                  ! R4       \        P                  P                  R4      p\        P                  P                  VR^^RRRR R7      p \        P                  ! R4      pV P                  V4       \         P#                  \        P$                  4       \         P'                  V 4       \         P)                  R	4       \*        P,                  ! R
4       \         P.                  '       d1   \        P0                  ! 4       '       d   \2        P4                  ! 4        \7        \         P8                  4      o\;        \<        V3R l4       \;        \>        V3R l4        SPA                  4        R #   \B         d    SPE                  4         R # i ; i)Nz"~/.local/share/ibus-typing-boosterz+mkdir -p ~/.local/share/ibus-typing-boosterz,~/.local/share/ibus-typing-booster/debug.logZmidnightzUTF-8F)ZwhenZintervalZbackupCountrs   ZdelayZutcZatTimezP%(asctime)s %(filename)s line %(lineno)d %(funcName)s %(levelname)s: %(message)sz********** STARTING **********zibus-engine-tbc                    < \        S4      # rb   rf   ZsignumZstack_frameima   &&r   <lambda>main.<locals>.<lambda>  s	    r   c                 rz   rb   r{   r|   r~   r   r   r     s	    ws|r   )#rW   r!   ry   loggingZNullHandlerr"   rK   rO   rL   Z
expanduserrP   ZsystemZhandlersZTimedRotatingFileHandlerZ	FormatterZsetFormatterr   ZsetLevelZDEBUGZ
addHandlerr_   r^   Zset_program_namer   Zforkr   re   r)   r    r   r   r   rY   r   r\   )Zlog_handlerZlogfileZlog_formatterr}   s      @r   mainr     s   yyy !  >>>yy""#GH  IICD''$$:<&&?? @  %%	M ]+
OOGMM"
k"
KK01./|||7799HHJ



C
7<=
6;<	   

s   H H65H6Z__main__)r    ):Ztypingr   r   r   r   r   rK   r   r$   rv   r   Zlogging.handlersr   r   r   Zgir	   Zgi.repositoryr
   r   r   r^   rJ   Z	getLoggerr   r   Z
excepthookri   rC   rx   ZgetenvZ	TypeErrorZ
ValueErrorrL   rM   rN   Z
get_prefixrw   r%   rW   r#   ZcProfilera   r`   ZProfilerX   r!   Zxml.etree.ElementTreer&   r'   r(   rG   r)   rf   rl   ry   r   rc   rV   r   r   <module>r      s  .      	 
  	   * *     u       			0	1 )!fc"))$EFGHK 99+,,ww||BII456H ww|| "CEH 99/00BII89:#%J  +-J$L 	===!H999CC$ UH UHn*C;J-^ zF } 	: a&Ks   "H? ?II