<SECTION>
<FILE>spi_main</FILE>
;                                                    
</para>

@len: 
@keysyms: 
@keycodes: eycodes: eyc                             |              
</pBe  
</par
@i:A   c                                                                            a>

@len: @Retcsp
&tleRela    t     0000644 000175    @Retcsp
&tleR`RRENT   @RetR`RRENT
&tle>

</pa   @Ret>

</pa
&tle>
VI# -->
<ptle>
VI# --
&tle

<!-- essFO>
<ptle

<!-- essFO@
# --T   @# --T@
# --T --   ATIOAccessible# --T --   ATIOAccess@
# --T --   ATIOAra>

@ob# --T --   ATIOAra>
@
# KEssFO>
<p# KEssFO@
#SGFMT   @#SGFMT@
#SG         #SG     @
064@SPI_RE064@SP@
0RBITn: 
I_RE0RBITn: 
@
       I_RE                _BULATIORTI_RE       _BULATIORT         _NAM I_RE       _NAM          _      I_RE       _               _   NAM I_RE       _   NAM          _#### -->
<p       _#### --                >
<p                 KG ###FI I_RE KG ###FI    OPT          OPT     @
Lis       Lis   @
LEBUILD    LEBUILD@
LEG   RYD           LEG   RYD       @
LEG   RYD         LEG   RYD     @
ref ####    ref #####               #  etRe     etRe@
TESTS           TESTS       @
TESTS         TESTS        ### -->
<p#### --  W  N           W  N       @
X
VI          X
VI      @
XGETT@SPI_REXGETT@SP@
XINPUT         XINPUT     @
XTST         XTST     @
X           X       @
X               X           @
X         X     @
X             X         @
ac_ct_      ac_ct_  @
ac_ct_# -->
ac_ct_# @
ac_ct_#ELED_Bac_ct_#EL@
ac_ct_AST_DEFac_ct_AST@
ac_ct_Lis       ac_ct_Lis   @
ac_ct_ etRe    ac_ct_ etRe@     fastdepC: 
@SPI_REL    fastdepC: 
@SPI@     fastdepC: ra>

@ob    fastdepC: ra>
@     fastdepCXX 
@SPI_REL    fastdepCXX 
@SPI@     fastdepCXX ra>

@ob    fastdepCXX ra>
@     type: 
@@ob    type: 
@     leaI_KE_dot@@ob    leaI_KE_dot@     quot
@@ob    quot
@
bSPI_     bSPI_ @
b        b    @
b    _alias    b    _alias@
b    _cpu    b    _cpu@
b    _os    b    _os@
b    _vendor    b    _vendor@
          @       @
exec_prefix   @exec_prefix@                    alias         alias       cpu         cpu       os         os       vendor         vendor@
             @          @
  fo      @  fo                  @          @
         @      @
   exec      @   exec   @
 ocalin
li      @ ocalin
li   @
maPI_     maPI_ @
old             @old          @
prefix   @prefix@ 016563                   @pr6563                @
sbSPI_     sbSPI_ @
sharedin
li      @sharedin
li   @
sys## F      @sys## F   @
t: 
@R alias    t: 
@R alias@r: 
@modmask: 
@Returns: 


<!-- ##### FUNCTION AccessibleKeystrokeListener_unref ##### -->
<para>

</para>

@listener: 


<!-- ##### FUNCTION AcaraessibleKeystrokeListener_removeCallback ##### -->
<para>

araessibleKeysstener: 
@callback: 
@Returns: 


<!-- ##### FUNCTION AccessibleKeystrokeListener_addCallback ##### -           

</para>

@listener: 
@callback: 
@user_data: 
@Returns: 


<!-- ##### FUNCTION SPI_generateKeyboardEvent ##### -->
<para>

</para>

@keyval: 
@keystring: 
@synth_type: 
@Returns: 


<!-- ##### FUNCTION SPI_generate<para>

</para>

@x: 
@y: 
@name: 
@Returns: 


<!-- ##### STRUCT AccessibleDeviceEvent ###### -->
<para>
AccessibleDeviceEvent is a struct which encapsulates a device event.
</para>

@ke yID: 
@keystring : 
@timestamp:  
#### FUNCTION AccessibleRel-->
<pa# -->$(CC)00014_gener)000 <Sent ###>$(Cnt #####

</para>

@obj: 
<!-- # U-->
<pa# -->$(bj: 
<!) --ra>
=a>

@ke>$(CC)00014_gener)000 <Sent ###>$(Cnt ######## FUNCTION AccessibleRel-->
<paLD   $(CC)000 <Sent ###>$(Cnt ###>$(bDnt ######## FUNCTION Accessi- # U-->
<paLD   $(bj: 
<!) --ra>
=ned f$(CC)000 <Sent ###>$(Cnt ###>$(bDnt ####whiWe     OF: 
     ;k ####
</paras   maPtic4 0001GNU</parFUNC ####siblmeLi lik: 
/para/par's      , -->
<siblemtentoFUNC e/paraa## FUNCTurns: tabit: 
@R 


one r###: ta/para>
searchlistenein      /OF: 
.
#
G       $(x: 
@y:

   GET## -   $(ers # --)/@Returns: 




      D   ate<p	$(ID: 
@keystri)		<p	$(
@timestamp)			<p	$(##### -->
<para>

)		<p	$(#####s: 


GET: 
@SPI_LA	<p	$(#####s: 


G#### -->
<par###llbacTAMPpara>: 
-eDevi.       Tit-eDevi.      : 
@-eDevi.      ht
@-eDevi.      <p	eDevinerateKe Tit.      vinerateKe: 
@.      vinerateKeht
@.     ###SCAN064_->
<para<p	$(#####s: 


.: 
s 	a<p	$(#####s: 


.hierarchy a<p	$(#####s: 


.##### -->sa<p	$(#####s: 


.prerequisit>sa<p	$(#####s: 


.srok


<

C
</N->
<para$(SCAN064_->
<p)
@Returns: 


-u     <par
@ReturcTAMPp)
su       the events to be li        _M4ON SPI_generateKeac ocal.m4
mk       atesara$(S    ) SPI_generateKemk       ates
###FI 0001750 0000sibleDeviceEven# FUN #####FI 0C
</N_->
<par
D   ack ###par
D   aCOMM-->
<vinerateKe FUNCTION SPis_text: 

<!-- ##### TYPEa<p	rns: 


<!-
   :    -!-

.SUFFIXES:
vinerateKe FUNCTION S:ob# --T --   ATIOAra>
@urns: 


<!-Pis_text: 

<!-- ##### TYPEaSPI_generateKey# FUNCTIN SPis       _M4)
	cdaSPI_generateK    <p	eDis 
@modma) --gnu  the events to be listener fo
tener fo:ob# --T --   ATIOAra>
@uvinerateKe FUNCTION SP000sibleDeviceEven# FUN in
lus
	cdaSPI_ge ##### STR   $(S    ) .en# FUN in
lusuvinu      $@uvi    r: ystri_maybref
m   ly    n-s atool:
	-rm -f *.lo

    n-s atool:
	-rm -rf .     _    

back    n-s atool:
	-rm -f s atool
un       -  fo-!-:
t:    T ##
T ##:

 t:    CT ##
CT ##:

D   ->
<para$(D   aCOMM--)a$(D   ack ###p)a$(T@SssFOp)a$(      D   ef
I_geback               back      SPI_geback   )/@R       )-$(#### --)
 back   :a$(D   ->
<p)p	$(mk       ates)a$(back   )/         	       ck: p=`echo "vinerateK" | @lis's|.|.|g'`; <p	I_g      ck: p=`echo "viI_generateK" | @lis's|.|.|g'`; <p	FUNC='$(D   ->
<p)';stenea>

@ SPi$FUNC; th <p	eDca# F$$a>

@ SP<p	eDeuvinerateKe*)ea>

=`echo "v$a>

" | @lis"s|^$$      ck: p/||"`;;P<p	eDeuviI_generateKe*)ea>

=`echo "v$a>

" | @lis"s|^$$I_g      ck: p/|00sibleDeviceEve|"`;;P<p	eDesac;P<p	eD: 
t>st -f $$a>

@||
t>st -d $$a>

ceEven d=.; el# FU=vinerateK;sti;P<p	eDate=`echo "v$a>

" | @lis-es's,/[^/]*$$,,'`; <p	eD: 
t>st "v$ate" != "v$a>

"    t>st "v$ate" != "."ceEven <p	eDeuate="/v$ate";P<p	eDeuvimk       ates)a"$(back   )v$ate";P<p	eDel# F<p	eDeuate='';P<p	eDti;P<p	eD: 
t>st -d $$d/$$a>

ceEven <p	eDeu: 
t>st -d $inerateKe$$a>

@   t>st $$d != vinerateK;sEven <p	eDeueDcp -pR $inerateKe$$a>

@$(back   )v$ate@||
ssib 1;P<p	eDeuti;P<p	eDeDcp -pR $$d/$$a>

@$(back   )v$ate@||
ssib 1;P<p	eDel# F<p	eDeut>st -f $(back   )/$$a>

@<p	eDeu||
cp -p $$d/$$a>

@$(back   )/$$a>

@<p	eDeu||
ssib 1;P<p	eDti;P<p	donep	$(odma) 00 <Sodmant ###><p	eDI_geback   ="SPI_geback   )" back   ="SPback   )" <p	eDatst-hook
Event-!-:    -!-
Event: Event-!-
   -!-:urns: 


    - ocal

       ates:
       :        -!-
       -exec:        -exec-!-
       -ink_is       -ink_-!-
un       : un       -!-

       -!-:    -!-
	@$(odma) 00 <Sodmant ###>       -exec-!-s       -ink_-!-

       Event:        Event-!-
       -ck: p:p	$(odma) 00 <Sodmant ###>->
<para>

</pa="SPelation_getRelationTy)" <p	eDe/cspi/tmpl/spi_re="SPelation_getRelationTy)" elation_getRelnt #=-s <p	eD`t>st -z '$(getRe)'u||
<p	eDeuecho "->
<para>

</pa_ENV=getRe>

<='$(getRe)'"`De/cspi/
m   ly    n-       :

    n-       :
	-t>st -z "SPC
</N->
<pK" || rm -f SPC
</N->
<pK

back    n-       :
	-rm -f SPC##FI 0C
</N_->
<pef
maiKeyster-    n-       :
	@echo "listelemmbleAts ####

@ostenemaiKeyster        "
	@echo "ib @obj: istenesTurns:may requiLi ->


al tool     reeDevi."
    n: E   n-!-

E   n-!-: E   n-            n-s atool     n-socal m   ly    n-!-

back    n: back    n-!-
	-rm -f tener fo
back    n-!-: E   n-!- back    n-        back    n-s atool

bvi: bvi-!-

bvi-!-:

  fo:   fo-!-

  fo-!-:

       -ink_-!-is       -ink_- ocal

       -exec-!-:

       -  fo:        -  fo-!-

       -mbl:

       Event-!-:

maiKeyster-    n: maiKeyster-    n-!-
	-rm -f tener fo
maiKeyster-    n-!-: back    n-!- maiKeyster-    n-       
<p	maiKeyster-    n- ocal

m   ly    n: m   ly    n-!-

m   ly    n-!-: m   ly    n-       
m   ly    n-s atool

pdf: pdf-!-

pdf-!-:

p   ps-!-

ps-!-:

un       -!-: un       -  fo-!- un       - ocal

.PHONY:        -!-    - ocal Event Event-!- E   n     n-       
<p	    n-s atool     n-socal back    n back    n-        <p	dack    n-s atool back    bvi bvi-!-   fo   fo-!-         <p	       -!-s       -ink_s       -ink_-!-s       -ink_- ocal <p	       -exec>       -exec-!-s       -  fo        -  fo-!- <p	       -mbl        -ck: p        Event        Event-!- <p	       atesamaiKeyster-    n maiKeyster-    n-       
<p	maiKeyster-    n- ocal
m   ly    n m   ly    n-       
<p	m   ly    n-s atool pdf pdf-!- ps ps-!- un        un       -!-
<p	un       -  fo-!- un       - ocal


SPI_RELATION_POPUP_FO   - ocal: ht
@-eDevi.     tener:al: 
@      SPI_RELATION_POPUP_FO>: 
-eDevi.     :a$(: 
@user_d#>$(Cn
@user_d# SPI_RELATION_POPUP_FO	@echo '- #####: S: 
<!-- hssiblstenes' SPI_RELATION_POPUP_FO	@-chmois-R u+w $(x: 
@y:
SPI_RELATION_POPUP_FO	: 
grep -l '^..*$$' $inerateKe$Returns: 


<!-- ##> /dev/nu   2>&1 ;sEven <pSPI_RELATION_POPUP_FO	eDeuCC="SP-->
<pa# K" LD="SP-->
<paLDK" Cnt ##="SP-->
<pa#nt ###"<para>

="SP-->
<paLIB##"<ch enca>: 
gobja$(SCANG064_ara>

@) --ra>u

=$Returns: 


 --output-   =$inerateK ; <pSPI_RELATION_POPUP_FO	el# F<pSPI_RELATION_POPUP_FO	eDeucd $inerateK ; <pSPI_RELATION_POPUP_FO	eDeutenei@ SPi(SCAN064_->
<p)
; th <pSPI_RELATION_POPUP_FOvent ##### -->
t>st -f $$i@||
touch $$i@; <pSPI_RELATION_POPUP_FO	eDeudone <pSPI_RELATION_POPUP_FO	fipSPI_RELATION_POPUP_FO	cd $inerateK    <pSPI_RELATION_POPUP_FO	eDch enca>: 
 --ra>u

=$Returns: 


 --# FUNC-   =$illback ##### -
 --rokeLi-hssibls="SPe##### -->
<p#"<i(SCAN_ara>

@) $(      -->
<p#pSPI_RELATION_POPUP_FO	touch >: 
-eDevi.       SPI_RELATION_POPUP_FO@Returns: 


-UNCT<par
@RSCAN064_->
<p): >: 
-eDevi.      SPI_RELATION_POPUP_FO	@truetener:atemps a s@      SPI_RELATION_POPUP_FO Tit-eDevi.     : @Returns: 


-UNCT<par
@RSCAN064_->
<p) $(#####s: 


GET: 
@SPI_LA $(#####s: 


G#### -->
<par#S