MZ@ !L!This program cannot be run in DOS mode. $(FFFGFFFF)FFFFRichFPELFcW  20@p @L0d@XPx@x.textq h.rdataT@H.data@INIT 0  .rsrcX@@B.relocP@Bh`@d5D$l$l$+SVWB1E3PeuEEEEdËMd Y__^[]Q̋US] Vs35BWEE{t N3 8kN F3 8kE@fMUS[ EMt_I[LDEEtE|@GE؃u΀}t$t N3 8kN V3 :kE_^[]EɋM E 9X thBWӋE MH t N3 8jN V3 :jEH%9S thBWATSVWT$D$L$URPQQhD@d5B3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhCCd_^[ËL$At3D$H3iUhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]ËjG33333USVWjjh@Qi_^[]Ul$RQt$ ]SQB SQBL$ KCk UQPXY]Y[USVjtBPLBu3EBFE$+t8HuEPhBrt uuSSSSSjEPjHB8^AtSf^@@B^[]UQQ BV3h BuuP MEPVVE`yPB^]USVu3W  B9^t#M D DAN>r$B_^[]V33@5BVPhBB5BhBhVhBXBV5B5B5B BV BBB BVP^UQQee}trS] ti3Ҹ4uVW=BhjCVjBVjB׋5Bja PjaiEEPjjUPBja$Pja_^[]USVuBW}  B9BsABjjj4BBhB<B BBA;#BTB$B_^2[]UEVWx(Lpef@t h}AfYFtu WDf@t h }AfYWMeu Wd_^]UESVWp(e@t h|AgfYL} jj@h|AEWPHB؅y)e@t h|A'fY2҉_BVdo~Xu?W؅x-EtWVЋ؅xde@t h}AeYVf2҉_BVcjWPLB_^[]UESVWx(e@t h6}AyeYu jjh|AVPHB؅y)d@t h|AEeY2҉^BW-c,f2҉^BWcjVQLB_^[]UESVWx(sd@t hB}AdYu jjh|AVPHB؅y)?d@t h|AdY2҉^BWb,f2҉^BWqbjVQLB_^[]UQQcy hADdYESVWxH +H+8E MXp+ڋ@ +Ɖ] uEuii iFiu E Ei@ Eƙ}ȋEi@  EƋu}~NF by6hAUcYYbyvhA=cYYbyvhA%cYYbyv hԍA cYY_^[] UuMuu APA PBI]UQQESVWE <f3ɋuB;~+F|ÚMB;~+A|tt Ǚ+S]Vu F +FiNFu+i}^;[_]UM 3@SI Vk Wj Yu}toB ZEBEB EBOEBOB+$B+B,rMrR2uEu P2mOB ZEBEB EBOEBOB+$B+B,rMrR%2uE􍆔Ou P2}|Yx+]E+E |EM+U E+‰((y+]E+E #MUE+ E+ƒ_(^[]UE S]VuWj_+;~;U}U_^[]UUVuW} €jY+~ ~M  UF $GF $GF$GF$G`t AGAG^yPhrAQ_YY^yGPhA7_YY^yGPhA_YY^yGPhA_YY^yGPhƒA^YYl^yGPhփA^YY_^]UES] Vp(EuW}t,VSPspslxjYu/u8CyV3ɋVAf KdMEB<w>BEPCxPC`Pu2 B}t]t hT}A^Y}tƆDVClHVCpLVƆ~_^Cy[]U ESVu Wx(E(PVH @EEF,EMU@$M}EEƃ}E‰Emmee$uU EtqumPBiM3ۉ `BAA9uU(B B^xƆ;}ȉEt tE;EE+;E;E+;] `BAA9uPB+3QRSPD\;|;sz8]8] E8wtC^x8~u8]tuU(F B FB~w^x~8ua8]n8] e8]u-8]u(8]u#EƇ^wƆƇ~Fx~`ƆƆu(a8]uM8] X8~tE8]t#U(F8B FPhARYYF |O"ˀɀ"ˊGGGG(PXPPjPP djY#dh#h4#э8#Љ4ˋ8$OG_WQ@thdhAQ jYX@󥋽xxTGGGG (PXP$PjPP dj^#dh#hP@thdhA*Q 4#֍8#Љ4ˋ8$O_l GW 9RP@t hAPYd+L؋h+P3+ڙ3+‰|P@t|Sh AuP dXjY@9L}Lȋ|P;h}hPfZLfBO@tPLh(AO xTxTGtƅHO@tPh\AOYY+O@tHhrAOYY O@tPhAjOYY H  ȋ| 3T@@| ȉTN@tThANYYB<wQBtPXP@PX\2 Btt0Nt hT}ANY`yQhxjPNfVfxzWPaNFPxPxlR] `BA~~A9~uRRPWSP tjpPShjhRWM ED9p_^QP(L[t h€AZMYM3L] UQQE @MEu1L@t hAMYL/h֋AMYW=B<v xL hALYVWLu@t6hALYYHS T}A$6@L@t hHALYujV ;<fBE PFPVuU2 B} `KPhT}A@K@t hXALYu3CSV:<^BE PFPVuU2 B9] ]K@t hlAKYuj[SVE::^8(K@t h~AKYju[SV:<^J@t hA]KYjJ@t hAEKYju9׾T}A<wBE@BME PAPQuU2 B} tJtVJYE`jY:}OBE PGPWuU2 B} 1JVJ@t hAJYju 9׾T}A<wBE@BME PAPQuU2 B} tItV/JYE`<9}G9I@t hΌAIYju|8jYT}A:wyuuuhȅA>pM<uJ= BuAEP ENNP}MVWuuVWpM}=yuuuh A >NENPEWP0=yuuuhLA= uVPtFXNuDPNtI=y hA=Y31=y hA=Y3G} ƃPN} =yuuuhAj=u)EujYPj|PPExP,}<yuuuhA=|Qu5u t,@u(F<_t<`u<@hBA<Yb<yuuuh`A<kU`P`NPuu؃xjYR<@t hAi<Yuj XuB3@9Nu78Pu/;@t hA8<YE3PE؋PE܊ @;@tFPhA;YYF<_tP<`tLA@;Y$`<`u}:@tFPhA;YYFN= BtO;u,}u&1@t hA1Y B 0@t hPAY1Y;u;u}u \wWj_;u9]Qu0;u9Eu9]9]>u ;u~} uuo9]uj \w\uL;u$}tG9]uH8^wu:Ɓ^w~/u+9]u&38~Hlj~ u_^[]UU$VJ BME;~΅y3;~^y3J B] U$SVu3WjC}N YU+uEE VM8: Q0W $(E,kE EEUMʉu+MЋE U+OE+OEMEu}+}+ȋƙ}ME}EEE΋EMu}+}+ȋƙ}ME}UuUMM _^E[]UUM VWz2+΋BR++֋M+_^+] UB3ʼnES]VWjYu t3p-y|hA>.YY-yuhA&.YY-yuhA.YY-yuhȁA-YYy-yuhA-YYa-yuhA-YYI-yuhA-YY1-yuh6A-YY89s/;&,yshTAd-YY3;ss,yvWhvA=- ,y6WhA$- ,yvWh‚A - ,yvWhA, r,yhA,YYW,yhA,YYFu9t Nu9Nu p&xt#EEFEEPtMPwt Eet Eet EeFt Eet+yuhA+YY\+yuh2A+YYD+yuhHA+YY,+yuh\A+YY;E|;E;E|;E~G;{p;s2M_^3[*]ˆU0e3S]VW}䫍s}𥥥s(}Х*y hA*YC t u S$,E+EEE+EhX@u EEPEPEPS_^[]U0S]3VW}ess(}Х}䫫 *y hPAu*YE+EEE+EhX@u EEPEPEPS_^[]U0S]3VW}ess(}Х})y h8A)YE+EM+MhX@u EEPEMPEPSM _^[]UA)y hA)YSVuWF>^EEF }]EE )y Wh4Aq)YY(y ShHA[)YY(yuh\AC)YY(yuhnA+)YYEH@t'y}VPtU'8} EPuW]G +GWK +K+EC+UMEt|txU+i™}+iMM}FCO+iMM}FCO+iMM}F 'y6hA*(YY'yvhA(YY'yvhA'YY}'yv hԎA'YY_^[]UEHwh$DU@u PwVu PDKu Pc@u PT5u P*u PLu Pu P* u P]IT@T@T@T@U@U@U@)U@4U@U03S]VW}ss(}Х}䫫&y hA&YM+MMEE+EhX@u EEPEPEPS_^[]U0S]3VW}ess(}Х}䫫&y hAy&YE+EEE+EhX@u EEPEPEPS_^[]U0S]3VW}ess(}Х}%y hA%YE+EM+MEhX@u EEPEMPEPS_^[]U03S]VW}ss(}Х}%y hȏA%YM+MU+UEhX@u EEPEMPEUPS_^[]U03S]VW}ss(}Х}䫫$y hhA%YM+MMEE+EhX@u EEPEPEPS_^[]U0S]VW}Ѝss(}𥥥s}॥#$y hA$Yh^Y@u EPEPEPS_^[]U0S]3VW}ess(}Х}䫫#y h A'$YE+EEE+EhX@u EEPEPEPS6_^[]UVu # F# FF# FF # F %#y6hA#YY#yvhAs#YY"yvhA[#YY"yv hԍAC#YY^]U "y hA##YSVuW} VN F++F^+^ UV$+VEMUi iM}iGiN E}GiGiN EGiG iN EG !y7hA7"YY!ywhA"YY!ywhA"YY!yw hԍA!YY_^[]Uf!t hM(fAE;~jxXfAE+;} fAE Ɔ~E{,u(jYCSPBiMԐc$C `BACCA9CtME}UEU}u}EUCyu@M܋u;~bU+;}\M;~R+;}LU(K8J Ct;hA.t+hAthAt h֓AYE;t2tHHtHt Hu<@ @ @tBWSV@t)tHtt@$֋@ϋ@ȋ@@ 뺻2ҋω_BVX_^[]UVu3@t6hA,YY^]UVu3W@At 6WYY|t 6WYY_^]UE SV5hB3W}SS3@_TGGG GGPLJy@SSG$PSSG4PSSGDP֍PhB_^[]UQSV3W]t hAMYutu VhA2 EPSSjShVB:EhjX(SE E Pu|Bǃ@BuDt hؖAYchlBSHVuPyt6hA)VhlBjjuyDt hABYtPB}t uBtVhHAIEVjhBH E`Bv6u [t h"AY_^[]UVu 3f BfFf BPjtBȉ Bu> t BPhԕAgYYt hARY BWPjQH Vh BpBjY3!Bh4A#u_t VhBAYY{@F4@FtFpFHFDF@F8F@.~@<t h^AY<3^]U袒= Bt0 t hlAoY5 BxB3! B BtuhA?YY]̸ BUQ}tCEPhjuBx+E PujhrAuh@lBuB] U(B3ʼnEVu3W}AMVE؋VE3fE䫫f9tTy hAYt#t h^A?Yjj6dB OuWSB_^[]US]VWPP3VuOQQPuV貂hj@d~PuV蓂P臂_^[]UVuPQ$PQ$d~PQ$^]UVuVPt h˜AEYVXV4VVVxPQ lPQ PQ VP8VPxwtPxBxwt PBxB2^t hAY]UVulPQPQ VuPQ uƆ3^]UVu Vu PQPQlPQ^]UQQESVu 2Wx(EEE9t9Au59Ju0B;tUuXQ192u u M9u7jY)u9qu u9JuUEBPQ9uΉ HMU;uF%P`Btf2ҋF BW9_^[]UQQESVu 2Wx(EEE9t9Au59Ju0B;tUuXQ192u u M9u7jY)u9qu u9JuUEBPQ9uΉ HMU;uF%P`Btf2ҋF BWa_^[]UQQE VW@`pEEEE PBu }EPPVu EPPVu EPPV|u `B1U9Pu99Au4MQHa2A BWEM;u_^]jY)U EVEEEWPBu9 t3S89Pu+9Gu&:]W}x9uE9 u[,jY)9Au9Ju}BU9Q9:uى M9uՍ'9Au9Ju}BU9Q9:u M9uu`B1U9Pu9AuMQHa2A BVEM;u_^]UE jjXPdB]UE jjHPdB] ̰UEt@(3QQQQ0PDB]UEt@(j0PB3]UtuhAYYVmut@t hAYW{M 2҉qBW_^]UESVWX(@t h*AcYt hu(@UuBrAMrƇUƇUE_^[]UQQU EEE9S]VW}29VuS9puNPF9Xu'EN!F3FG>F98u!0wEMF9u 0u9u+jY)u9pu9AuMqJH9uډBEM;u_^[]USVu3WPPPP0WDBjƨz[t jjPdB KuSWB_^[]USVWt hAXYuE ātāhA/YY30PPPPWDBj@~[>t#t hAYjj6dB KuSWB_^[]UVu39uT9tJ 9BuH9QuC¨A3ɍB8RVPPlhPB^]jY)UVu39uT9tJ 9BuH9QuC¨A3ɍB8RVP (PlhPB^]jY)US]VWhȁjSE E u$SEu(BEuxBEuBE uBlBSPBBSVPSP B0BhqjV8 xw<Bƃ|wSPT=hB@@j@HjPjjXPjjdP׃l35BSǃh`yp<P֋Sp@(P֋5pBP֍P33APQPj0PBSRE3hPf\w^wSfS~SwzPXw w3҉wwj@wYP@ PIu`{VRPV~jPXwW3ǃAMME BM3^] UXB3ʼnEjTEjP3E EEEEjYjjPh`AjE>AMME BM3|]U SVhnAEPlBE4PjEtB؅'tuhAYYWEPuESjPuBux-{ uKjQu\ u }jYu }jYu_t hAYSxB^[] U SVhnAEPlBu4VjtB؅Nt Vh0AYYcEWj_PVSjECPu{ Bux+9{ uKWQux u }jYu }jYu_t hhA0YSxB^[] UXB3ʼnEVuEjTjPE EE EEjYjjPVh@EhAMME BM3^P] UXB3ʼnEjTEjPE EEEEjYjjPh`AjEhAMME BM3]UXB3ʼnEjTEjP7E EEEEjYjjPh`AjEAMME BM3]U8j8EjPE EԋEE܍EjYjjPh`AjEЎAM؉ME B]UXB3ʼnEjTEjP{E EEEEjYjjPh`AjEFAMME BM3]U SVh AEPlBEPjEtB؅mtuh2AYYWEPuESjPuBux09C uKPQu u }j:Yu }j:Yu_t h`AWYSxB^[] U SVh AEPlBuVjtB؅t VhAYYcEWPVSjECPu{ Bux+9{ uKWQu u }j:Yu }j:Yu _t h(AoYSxB^[] U SVhAEPlBEEPjEtB؅tuh AYYcEWjx_PCE{ uSjPuBux+9{ uKWQu u }jYu }jYu_t hNAYSxB^[] U SVhAEPlBuƐVjtB؅t VhȥAYYcEWjx_PVSjECPu{ Bux+9{ uKWQu u }jYu }jYu7_t hAYSxB^[] UtB3ʼnESVuEWjpjPqU M ElAUj[B]EAj _EBEЍAjjE؍EPVh@M]}EA]]}E̖A]ԉ]܉}BM_^3[] UtB3ʼnEVWjpEjPU MElAUj_B}EAj ^EBEЍAjjE؍EPh`AjM}uEA}}uE̖A}ԉ}܉uBM_3^]U8j8EjP5E EԋEE܍EjYjjPh`AjEdAM؉ME B]UXB3ʼnEVuEjTjPE EE EEjYjjPVh@EAMME BM3^] UXB3ʼnEjTEjPkE EEEEjYjjPh`AjEAMME BM3]UXB3ʼnEVuEjTjPE EE EEjYjjPVh@EAMME BM3^H] UXB3ʼnEjTEjPE EEEEjYjjPh`AjEAMME BM3]UXB3ʼnEjTEjP/E EEEEjYjjPh`AjEتAMME BM3x]UXB3ʼnEjTEjPE EEEEjYjjPh`AjEAMME BM3]U,B3ʼnES]VWh`AjBVjP- DžPPpBhAPBjY3󫍅Dž3Ph?Dž@PB1SPh BPhBFxPhBSUPh@BxwWxwwtxwPhAYYXtxwph2AYY:txwphXAYYtxwp hA{YYtxwphA]YYtxwp$hڡA?YYBy`TPhBSPhBRPh B Ph!B^PhB VPh(B,(VPh4B7,VPh@!BR0VPh8Be4VPhD!BPP/PVPh<BTVPh !BWPh$!BwPh(!B4wPh,!BHwPh0!B)LwPh4!BdPwPh,BTwSh8!BM3hA謿YYjYjS BYBB`TjYj:xBYU@BBSh`Aj BR!BB(B V<BPV4B(V@!B,V8B0VD!B4V !BTV$!BW(!Bw,!B4w0!BHw4!BLw,BPwBh B hB hB hB h Bh!BjhB hB h@B h(B h4Bh@!Bh8BP hD!B P h<B 5 !B/ 5$!B0h8!BL M_^3[Q]UXB3ʼnEVuEjTjP蛽E EE EEjYjjPVh@EAMME BM3^] UXB3ʼnEjTEjP3E EEEEjYjjPh`AjEAMME BM3|]UXB3ʼnEVuEjTjPǼE EE EEjYjjPVh@EdAMME BM3^] UXB3ʼnEjTEjP_E EEEEjYjjPh`AjEdAMME BM3註]UB3ʼnESVuAuh@lBE]Ujujh>Ah`AjlB]Uju jhnAuh@lB]UjujhnAh`AjlB]Uju jhhAuh@lB]UjEPjhhAh`AjlB]Uu ]UVut6hA[YYjVjhAh`AjlB^]Uhu jh Auh@lB]Uhujh Ah`AjlB]Ujxu jhAuh@lB]UjxujhAh`AjlB]US]tKV5lBW} jWjhlASh@jGPjhASh@jGPjhASh@_^[]USV5lB`AW}jWjhlASjjGPjhASjjGPjhASj_^[]Uju jhAuh@lB]UjujhAh`AjlB]Uju jhAuh@lB]UjEPjhAh`AjlB]U}tju jhAuh@lBE]UjujhAh`AjlB]U}tju jhdAuh@lBE]UjujhdAh`AjlB]USV5lB3W}CjWjhAh`ASjGPjhAh`ASjGPjhAh`ASjG Pjh Ah`ASjGPjhAh`ASjGPjhAh`ASjGPjh&Ah`ASjGPjhHAh`AS_^[]USVu3WPPPP0FTWDBj@ƨw[~t+~t%tjjPdBgt hAϭY KuSWB_^[]UQSVWEPB}u5`BօtMˉC+|2%CBWZEPBWu_^[]UQSBEVPӋuVu`B|W8 xCX@t hZAY@8|vPV|GPB(PBt hAkYg2ҋBVR xCuɫ@t hA1YxAu詫@t h֚AYw菫@t hAY|+P9|EPӋ|Gu`BPB(PBt hAlYg2ҋBVSEPu`BPQ,_^[]U讪t hAYSVu3WPPPP0SDBjƤz_Nt~t>tdBf&f OuWSBG_^[t hƜA謪Y]U(t hA萪YSVu3WPPPP0WDBE ƨzj[;Fut dBE ff& KuSWB©_^[t h A'Y]U褩tuh̫AYY}t-M Vj ^jZtAtAJuNu^]UNtuhA谩YY}t5M VWj _j^t+At+ANuOu_^]U}riM 9CuaVu|:QuQAEAʈEfEjfNPdjPdB|yIA3@ t^] UQVuEUfMj?PZf@Ju3f;^]USVu3Wj[3kǃ| u|$uBf;|Af;|2_^[]UMPxR|TVXZ\^]UMSVW@UU U$U(U4U8U,U0U3jЋ[fA`fEGEB(Kuكf|_^[]UҦt hA:YSVu3WPPPP0SDB3`{9Ft89t49Ft/荦t6vWhANdB3FFG @rPSBM_^[t h0A貦Y]U.t h"A薦YSVu3WPPPP0SDB3~9Ft89t49Ft/t6vWhAKNdB3FFG @rPSB詥_^[t h@AY]U芥t hAYSVu3WPPPP0SDB3Ơw9Ft89t49Ft/Et6vWhtA觥NdB3FFG @rPSB_^[t hAjY]USVuW3WWWW0SDBE `{;Fu>>t9~t3贤t6vWhANdBf&fE G @rjSB_^[]USVuW3WWWW0SDBE ~;Fu>>t9~t32t6vWhA蔤NdBf&fE G @rjSB_^[]USVuW3WWWW0SDBE Ơw;Fu>>t9~t3谣t6vWhtANdBf&fE G @rjSB_^[]UQQSVW} G`pEEEE PBu ]EPPV%u `B5B-U9PuL9AuGMQHa2A SaEM;uɃg2҃gSC_^3[]jY)UEVWp(谢@t h>AY~Tt4薢t h|AYM 2҉yBV S] 3QQQC`Qx 0PE DBBlJ@;/ ;;  tUt)֡hA:Y蹡t hA!YSVP: 蕡t hAYSVP  qt hnA١YSVP Mt hVA赡YSV *t hʲA蒡YSVP $(tU,t)0Ҡ%h2A6Y赠t hAYSVP$6 葠t h AYSVP  mt hAՠYSVPIt h޲A豠YSVP%t hJA荠YSVP,; 8LPtUTt)X迟mhA#Y]袟t hA YSVP<#~t hAYSVP8Zt h|AŸYSVP46t hbA螟YSVP0t hAzYSVPD`dtyltQpt)t辞hDA"Y衞t h0A YSV&聞t hAYSVc at hAɞYSVAt hܳA詞YSVPHhдA聞Yo;;tstTt,謝t h$AYSV 1茝t hAYSVDlhAJUhA3>hA't hDA菝YSV t|tTt,לt hFA?YSV\跜t hAYSV <藜t hAYSVwt hAߜYSV WhfA軜Y:t hA袜YSV~ ;ty tQ t, כt hA?YSVC \跛hxAY蚛t h`AYSV zt h̶AYSVPTVt hA辛YSVPX2t hA蚛YSV # ' tkC tCG tWhAQYwӚt hA;YSV X賚t hvAYSV 8蓚t hAYSVshܵAךY;a;&;wR S[SVP $k(;, 0SVP(5\;wR8SL#PTXSVP@`dlpxthSV;;w^jtDt0SV 2SV&SVk t0SVSVSVS  ;wGG T uASVn # tS' *C G j0PBc2҉{BVݕSVE jPB[_^]UQMU S]VWE3`{;Pu ;uxu G @r\ t$H k 4k d{WhA[k h{dBH 3k !Md{h{ 讖t hAY3d{>t荖tv6WhAG @r֋E_^[] UQMU S]VWE3~;Pu ;uxu G @rS"tk ~~WhAx k dBk 3!M ~~ϕt hȱA7Y3~>t讕tv6WhAG @r֋E_^[] UQMU S]VWE3w;Pu ;uxu G @r\Dt$ k 4k wWhA蕕k wdB 3k !Mww t h:APY3w>tǔtv6WhA)G @r֋E_^[] UM`TPju Q]UMPju Q]UM`~EEPju Qj]UMxPj u QN]UMSPj u Q2]UQQEEPju E"9u ]UMPju Q]UMTwPju Q]U螓@tjh$AYYMāEEPju Q]UB3ʼnEES] VWj:YU󥍍QTwPhS5M_^3[]UMSPjxu Q ]UMRPj u Q ]UMPju Q ]U蠒t hAYVu WF`xHs#@u PQuf2ҋΉ~Bu踐_^]U6t h2A螒YVu WF`xHs# @u f2ҋΉ~Bu\9PQu f2҉~Bu5辑t hPA&Y_^]U螑t hAYVu WF`xHs#@u PQuf2ҋΉ~Bu趏_^]U4t hzA蜑YVu WF`xHs#@u PQusf2ҋΉ~BuL_^]UMPVPju Q ]UMTVPju Q ]UM~Pju Q ]UMWPju Q ]UMt hаA覐YVu WF`xHs#@u PQuf2ҋΉ~BuV_^]USVWя3Ct h$A6Yu ~`OsJ諏t h@AY藏twhnAYYtjhAYY# Gu4Zt hAYf2ҋΉ~Bu蟍9PQuf2҉~Buxt hAiY_^[]Ut hAHYVu WF`xHs#@u PQu9f2ҋΉ~Bu_^]Uvt h\AގYVu WF`xHs#@u PQuf2ҋΉ~Bu莌_^]UMh>@PVPju Qo ]UMh@TVPju QM ]UMh@WPju Q+ ]UMjt蔌tv6WhLAG @r֋E_^[] UQS]VWE3~ƃ8tG @r k jPEBj0juBEx@M Ek U~~t5Eu~Wh^AIE3ɉk ~~豋t hAY3>t薋tv6Wh^AG @r֋E_^[] UQQS]VWE3wƃ8tG @rk jEwPEBj0juBExBUM Ew k t:EuwWh̭AFE3ɉEw k 詊t hAY3>t莊tv6Wh̭AG @r֋E_^[] UMhL@`TPju Q]UMh*@Pju Q]UMh@xPj u Qy]UMh@SPj u QW]UMh@Pju Q5]UMh@TwPju Q]USVW}h^@UVhu WVTw 98tjY)0uw`B_^]UVW}3ɋ񍇤z9Hu 9u9HtF |_^] Sk zQPBj0juBEx/M E;z8 k 9臇t)hAY8 k 3ɉ;z;z 8E[UVuxw@WE3txwphA荇YYtxwph.AoYYtxwp h`AQYYԆtxwphA3YY趆_txwp$hƯAYYeEPju V^]UUxwtAHQPu RW3E}쫫EPju R`_]UQeS] VuWC`HM s #xw{ }tPxBxwM tvO;rkWjtBxw…t WhA&YYxwt9WuPM QVPLxxwu su PP}c2ҋˉ{BVÃ_^[]UMU S]W3z;Hu ;uxuG |_[] Vk zdB8 3k zz^ 3USVu 3W}F`9xs f#Wuv / ~2҉^Bu_^[]UMS]Vu W3F`9Hs#;Qv uބ 9}t'M QSPLxuu Uu PPf2ҋΉ~BS舂_^[]UMSuY(QPEM uBEuBV5BW33GPCXP{`{djPjP3pVW|tPxhBjVVhGATXPB3ɍ3f DTXfx|3E_^[]U(B3ʼnEEeS] VWx(]؉}轂t hA%Y#5tBjj֋؅EPSjjB#uSSxBuj֋؅fuUtuh0A跂YYEPSPEjBxft hxA肂Y5lBEhAPhAEPhAEP߁t h̷AGYE 't谁t hAYSxB蒁t hAYM_^3[芁]UESVWp(]t h:AŁYE $j[HAHHWhtBL/WSP荁LP!BL@!BL@!BL@ )ALXLǀBLǀHBLǀB8}EWhtBLWSPLBL@!BL@(BL@ =ALXLǀPBLǀHlBLǀBWhtBLu WSPTLBL@!BL@!BL@ RaAL@,ALǀBLǀH4BLǀ0BL PVBth$hHAYYyLtJPxBL;À!Bt À r&Ɔ!B~t VhAJYY_^[]U~t hA(YEVp(LtPxBL s)ƀ!Bz~tPhƸA~YY^]~US]VW3[(]=~t hA~Y3!E!EEE苃QP$5tBPjE։EhjPi~ 9}}thhA0~YY3j@fEXPjfE։Ej@jP~ 9}}tj h.A}YYEPjSBhbAEPBEPEPpB9>umV3EWWj"PhȁBhBWWX(WWSPu聞|t hzAT}Yt PB&]QP(}t uxB|t h A }Y}t uxB|t h2A|Y_^[]3ɃHu`fff ftPxBPjtB|tPhA`|YYu PjQJ| VPpBhAPBEPPBEEPPuQUPQM4VST0VXP jVBQ{t hA{Y>4*UESWx(zt hXAL{YSP$tFzt hfA{YVp(VPVB^SP(gz_[@t hAzY]UEVWp(Bzt hĺAzYWP$t&zt hfAzzYPWP(_^]U3PPPPuDB]UjuB]UEVWx(yt hкAzYu Ww_^]̡!BUB3ʼnEVupW3hWPlhdy DžxAlEA|dEhj YEdWWEpPVjtMBlh !BxM_3^x]UESVWX(} jjh|AWPHBy2҉wBSv$WSvjWPLB_^[]UESVWX(} jjh|AWPHBy2҉wBSyvw`F =tl= tU=t>=t'=twt[hлANwtKhA>wt;hA.wt+hfAwth@Awt hAwYF =tL=t<=t.W=t=t6SSWS7WS82҉wBSuujWPLB_^[]UE SVuX`WQP$QP$39tC<{s /C@B Ɔt RPQPQ(PQ(_^[]UVW}VP$VƇP(_3^]UVW}VP$VƇP(_3^]UU B`x s#DMVWjf  fXfjxXf3ǁz _B ^]USVuWFBPhB} 3Wu^^ ~~LtBFFut WhAuYYFPSFPXB39^_^[] UMA+A @]UVu2W~tF 3@;Vu_^]USVu3WNBE VPuFN E FF;Fr^U NB_^[]USVu3WNBE VPuN VE  F F ;Fr^ U NB}tVQ,_^[] UQSVu3ۍFȉEBE 9^tbW39]vYVPu8E N VC F FLN tHFL;Nrf VP,G;}rsy hAtYE _MB^[]UQSVu3WFȉEB3E 9]vWVPu6FNM  CFFLFLNV;vNL;rfG;}rsy h4AsYE MB_^[] UW}t8SVOB3ۍOЉ___ _LBGPSGPXB^[_]UVuFt PxBf^]USVW}OBwW ;w ON++Ny3ЍOB_^[]jh8B3EPjPEPTB%3@ËeBuhjEPXBEUqt hNAQrYSVWjjEPhB] jYs`F܋@MC`HM@%A@8B=u3PPPPEPDBC_^[]Ujqt hfAqYU MB#B`$8B]U} EVWx(t/u>r$lPu ql 2_^] UE@(]UESVWp(SP$pth~A#qYYjjuEtBptjhApYYEg gEGE GMtBtMHptjhApYYEEGE GgG xothA]pYYSP(_^[]UEVWp(WP$othApYY9U t R uB S3ۅu9ZuQxBtP9Zu2B RXxB6ot9h0AoY,tJtHJB A BX RxB[nthRARoYYWP(_^]3UE SV5hB3W}SSGGPf_@_ SSG PSSG0PSGPPB_^[]UEPQ]US]39C tP8CAuKWPPPP{PWDBjjCCAPdB3PPPPs DBK CAdBc jWB_[]UW}@ubSV5BGP3fG@֍G P֍G0P֋W0ESSSSPBy _ f_@SG PSShuBuB^[_]UESVp(ƈq;uv9qun]tQE ƆqqIm@tqPhAmYY,m@PhJAmY m@jhAߋE ;u19qtl@t hAKmY3@cl@tXhоAKq;ul@thA;uql@t hNAlYjX}l@t hAlY3^[] UQESVWp(EX(E`@l}@t7hAlYY3AtuIXwu9pTu3tTupTu9tTu \wE,AE t M7W7W7Wt'k@t hAkY3E7W7Wkk@tEPh\AkYYQk@tHhrAkYY6k@tPhAkYYvƃ  H]E E ȋEj SK5 Cj@tshA'kYY_^[]U<B3ʼnEU2MSEZ(VuW3UȉM؋@(E܉yfj@t6hĿAjYYtuJXwupTu39tTu 9pTutTu ƃ\wMAMԉúi@tEVPhAAj E 3AtEQƍQQut%i@t h*AiY2!QEQjYuQuuua8Dwt'8EuO*i@t hZAiYƃDw2*}u'E;iYYhuܨ@tHhA iYYh@tPhAiYYvƆM} H E΁ɀ ȋEj WOl2 G*h@twhAhYYh@tDwPh`ArhYYg@VhAXhYYu{VWEԍ}䋃VEċet hLA_fYEujYVƀW3jY2-<`#MWtet hfA fYuVWEƀWj@[t(qet hAeYFPjuuVW:Et ufpTE$etEPh\AeYY e}tHhrAieYYdtPhALeYYE jVN. FdtvhA eYY[_^]U(ES]V@(EWj}Y@(}UEEVVE+VU3E+‰EE+V3+‰Edu@tVuh Asd EVU;}‹UC ƋV;}c Ccc@tss hzAd E 3ɉKt3@E W W8WtM WWdc@tEPh\AcYYHcu@tHhrAcYY*c@tPhAcYY HȋE ȋE ȋEj SK- Cb@tshA&cYY_^[] UESVWP(Cu[N@sRfffFfOyIA3@ 88u<u6j Y^_] UM AtUHtDHt3Ht"HtHuRuQuDuQu'6uQu(uQuOuQu uQu] UB3ʼnEESV3ۉTp(W} PHL4Ny hANYQP$d@(\My hAUNYHPSSSGPDBMy h8A+NYhQWPMy hVAMYb`hhjPMdDT XBMy htAMYX`PhPWP:Ly hA`MYtvedjP\Sƅd hP\SLy hAMYhPV+yLy hALYhhjPL OLy hALY9`/LPy h ALYQP(L_^[y h(AjLYM3K]USVu^Kt hA:LY4u5u]EW@WP(;E}WPdjuu WPWPd_bKt h4AKY^[] UB3ʼnEE SVu`W}_dhhjPKD `\PdPhPVS7<u6}v0}tu苇hQWPphhjP&K \9duM_^3[J] UDB3ʼnESVW}3jU[GPVPJ DžXO֍6Bf@~r鋅ffB'PPpBhXAPBjY3󫍅DžPh?PDž@B/MPjtBIthrAtIYYPVGwG _I PWjPBwj Y3HtPWhAH G@r܋PxBVHj^t hAHY6HthAHYYyQHt hAHYBfI~r鋽WfBfPtǶj YM_^3[G]U B3ʼnESVuWW^jPG DžLtUVQxfWPpBhXAPBh6PjjlBM_^3[F]UQQS]VW3E`yMj@0PBuEGPVVPB|ыN`E _AF EaaA^[] UBt2VW3EWWPhBEPBu EPEPu$uuuuVu<Bt_Ћ8BEu"y hARFYWWWWEPDBuy hA0FYx M EE 82_^] U$B3ʼnEESVuW}E^jjEPhBE EEWuESEnV`EBNABB֋8B3ۍESSSSSjPjHB+tCHHuhDt hAZEYVBSSSSEPDBDt6hA1EY)Dt hAEYVBSSSSEPDBVBM_^3[D]U]U]UXDt hfADYSVuWLWP؅xUP؅y Dt h~A{DYWP ƆP@( VQ_^[]UCt hA.DYELPQCt hADY3]UCt hACYMVLPVPKC^t hACY3]UXB3ʼnEjTEjPCE EEEEjYjjPh`AjE@AMME BM3B]UBt hA,CYjjudB] UQQMSVW}3E`yGE{Bt hABYEj@0PBCu!EPVVPB|5Bt?hA2N`3APF AQQBt hAiBY_^[]UVuu>u5t dB t dB Ɔ^]UEVpBt2W3EWWPhBEPBEPEPWWWWWh4<BtrxЋ8B=u'Ay h AAYWWWWEPDBEEx@y h2AVAY@y hRA>AY2_^]U$B3ʼnESVu3W3ۍ}!]NE9<EPEPhP4B؅jjhuB؅y dB EM܉ E䉆@ AE@\A\ƆPVWu?th2A?t hJA/@YjjjVWu?thfA?t hxA?YMMj XEEEPVEWu]?thAM?t hA?Y9?t hpA?YM_^3[1?]U$SVu3Wv(L!]EEPhjBPjtBE>thhA ?YY9]u 9htuhZA>YYc3AKAC EPuESQPuBKE+PPu>fE f+CfE싎tQxBfEPjtB3fEf=tPhA=YY=thAhA=YYg=tuhA=YYO=tEPh0A=YY5=tPhJA=YYEPj= hAWB<thtAV=YYEPWpB<thtA0=YYE uE3fEjffEEPEP Bx,EEƀuu u!EƀuB}t$L<t hA<YuxBet$<t hA<YSxB_^[] UES] VWS(CBPQHSPQSVP3E %VE P W;t6hRA;YY3ɍ3BCChK(Kx5hB3PPP33@QPP_^3[]UMSVu3ۉ]EjF@EtBPLBBt :hA:Yz:t hA:YWEPSSSDB~M3ɍEQPjEPEQQhh<u-:tuhA:YYE tMEP3PPPWӅu9t hAg:Y3_9t hAP:YS^@@B^[]9t hA*:YjE3PESSSSh70<u9thjA{9thA9YyUXB3ʼnEE3ɃMMSWxQEEQMЉMEE`y_P}]hB3ɍ`djẺtBPLBBt8hDAA9Y8t h|A(9YVuEEuE8y hA8YEP3PPPVsdtih8t VhA8YYR8ts`h(A8YYEP3PPPEPDB8@hRA0t<t'7t hxAU8Y@(ǀ$PhA@6t>PhA6YYF;r}܋]6y hA6Yuu5y hA[6Yv(\wVE܋VEu5h֋A6YwxunEPjjPBdždwB<wEBEPxwP`wPuU2 B}t85t hT}A5YƆ\wEuP(WB}EP3PPPEPDBm4t hAE5Y^4_[y h|A.5YEj@@@BM34]4y hXA4YWBjjjjEPDBtWBUB3ʼnEE3Ƀ`SVpWhDžd 4FhLPDž\~jnXTHtBPLBBt3hA3t h8A&4Yhptx3y hjA3YjNhdjRQPwd3A;tG`Dž\;3t VhA3YY%3tw`hA3YY9tR`Dž\\P3PPPhPDB2hA`3PPPPPQpDž\PjHBHt$H6p2)h>A2YHH2toPhbA2YYLP3PPPhPDBdnu"o uwX3ƅnƅ| ^Xou3ۉX};~C;u/Qu=TCP|PRQDtƅnoQVP #CP|PhTƅnLP3PPPhPDB1t h|A~1Y1_^[t h|Ag1Yhj@@@BM30]0thA0t hA!1YUEM3RQ@RRju h]UE3RHEE E EEE EPRRjEPh ]UEM3RQ@RRju h]UB3ʼnE3ESEVuW}쫋N@ B@\B\Ɔ/t hA0YV PVSu/th2Az/t hJA/Yj3PPVSuX/thfAH/t hxA/YMMj XEEEPVESu/thA/t hAh/Y~PPW_u(VS$E.hA1/YFhQQP#uWP$VS$.hAhhPu-WP$NhQP$VS$EJ.tAh&A|VP@PQHPQu (QRME3_^[ .]U-t h\AN.YVuWu -t hpA&.Y(PQ PQ HPQ FPQ$FhPQ$PQ$VW$_^u^-t hA-Y]UE SVp:-j[t hA-YVt tgt@t,VhrA^-YsjjudB,tkhAjjudB,tNhA-YA,t+hA,thHA,t hA,YjjudB^[] UQEEUj?ZfEfIJu]UM AtUHtDHt3Ht"HtHuRuQu DuQu7 6uQu (uQu_uQu uQu ] UE VBu/uuPVuƆ Ɔ -Cu&uuPVuƆ2^] UB3ʼnEESV3ۉTp(W} PHL +y hAt+YQP$d@(\*y hA-+YHPSSSGPDB*y h:A+YhQWPk*y hZA*Yb`hhjP*dDT X*y hzA*YX`PhPWP)y hA8*YtvedjP\Sƅd hP\Sx)y hA)YhPVQ)y hA)YhhjP) ')y hA)Y9`)Py hAi)YQP((_^[y h:AB)YM3(]USVu^(t hdA)Yuu]EWWP(;E}WP(juu WPWP(_:(t hA(Y^[] UB3ʼnEE SVu\W}_`hhjP`(D gXP`PhPV\t8}v0}tu苇hQWP4hhjP' X9`ugM_^3[]'] UDB3ʼnESVW}3jU[GPVP' Dž ,֍Bf@~r鋅f:fB'PPpBhXAPBjY3󫍅DžPh?PDž@B)MPjtB%thA<&YYGPVwG -& PWjPBwj Y3U%tPWhA% G@r1%j^t hA%YxB %thAm%YY}Q$t hAO%YBfI~r鋽WfBf:P8<j YByM_^3[x$]UB3ʼnEE SVu2ۉ\W}Gd`hhjP$d DdP`PhPV\t8}v2}tu苇hQWPHhhjP*$ d9`uM_^3[#] UB3ʼnEE SVuX[#t ShڙA#YY@}s^EEfE EC]E#tEPEPShA|#?u"tEPhAZ#YYMjQVP,M^3["] UB3ʼnEMUVWVA}싁j RQfE EEP,M_3^"] UB3ʼnEMUVWVA}싁j RQfE EFP,M_3^A"] U B3ʼnEMUNAERAjERQfE EDP,M3!] UQEUjRPfE EAQ,] UQSVu ^] !tFPPhdA! ]uDu;u2u)U @}[fF<Wj YfS<_U @}2fFfS?u!!t hAy!YSP8U MjQSfE EXUP,^[] U B3ʼnESVuWW^jP(! Dž%tUVQYSP$y hAYy hAYSP$y hBAYly hhAYSP,Hy hAY4y hAYSP y hA|Y_y hAgYM^3[]UESVu 3WF(0$,dž Ɔ4583<VfBFFh@^(^xPPQHVPQ_^3[]UUE J`aAA"AB$]UB3ʼnE3!E!ES]EVWCsLExEEȍC Ẻ}F+ȉ}i'E؉U܋FE荅dPva}uhAYCEЍC Eft hTAYRtFPhAYY8tv hAYY tvhAYYut hAmYExXN{ADeej XffjHXfdE艅tEDž|EDžxtuhAYYdPWEG`Mċ@`xAH@E싈8B=u3PPPPPjEPjHBWh thhzAYYhItuhATYYE@EdvVP`u苆VP\3EEPjjPB|3Et WhAYYtvwt h AY3tFD5$AYYF;rWEPEu}䋆@QMPdC PBt hTA>YWB3PPPPC PDB'thAt hAYWBjC@@BM_^3[}]UPB3ʼnEE3SVWxM܉MMM؍whjMEQME A QMfEAGQPEtVWhAk ۋ]yzhNAjUԍFMEEJEB0MMčMEEȉEEЉMEt hAYtvhAYYjtvhAYYRtvhAYY:tv h AYY"t6h*AYY twxhApYYtwlhAXYYtwphA@YYtwth A(YYt6h*AYY5uMjjQVPEwt hFAY3PPPPPjEPjHBEЃxXEԀxAMjQVPE̅uthAY대5MjZjPfQZf3҉AEQ A3QHfALQQSQ$C`M@xAH@EЋ8B=ujt hAY3ɍEQPQQQjEPjHB=uSB3PPPPuDB@t hAY,t hAYEPjjPB}t(MEPjjEPBMEEűMQWPluBF t h(A%YSB3PPPPuDB t+hRA thAs t h~A Yu؅tX t hA YVxBt9 t hA YSBEj@@@BM_^3[ ]UEVW3 y hAS YPPPPPW FQQQQQ PW,Bu y hA Y_^]UEVW3 y hA YPPPPPWAPPPPPA PW,BȅuI y h"A Y_^]UQSVW}GEHt Ak$j$[S3VtBEtSuPo E Gw_^[]U y hA. YVuVP(tPxB ^y h A Y3]USVuW$(\ y hA Yt0tt PxB'Ku(xB( _^[y hAy Y3]U y h A\ YVu0tPxB0 ^y hJA+ Y3]UEPQ,3]U y htA YVuVP$VPd ^y hA Y3]UESVWx3SSEPhBEPEPjSSSSh"<Bu4W# 8BuSSSSEPDBWC_^[]U`MVjXQfEjXfEE EMQP8 x yhtA y hA Y^]USV3މuWuu9] m}bGEPVEtBEus y h*Ax YEtPxBtSxBy hZAK YEtPxBy h~A) Y_^[]uVP% y hAYy hAY9]dy Vh AYYPPPPPWW,BE;y Vh>AYY%9]uy VhAYYy VhAlYYEMAEy hAHY}tyh(A.름y h`AYuW4BEy hAY9]u|ZhAYJjVtB؅73sGy hAYGjWPW0B'y hvAYΉu9MvjU|tSu9w ~KEEGEEU@EU@EEsEE@E;G |EA;ErSxBy hAYEuu P8} ^y hAYE/t!}Ƌ]PQ@F;Er} EM"h AvYhDATY} E EyUME E3] USVuWjh~W u zy h"AYjh^hSُuWP$Jy hBAYjh@P規u WP$Sy hbA|YVP yyOhAXYBVPDyy)hA؋VP|PQHPQy VP,_^[]US}3Ct hAYft hAYVuHPQ PQ 6t hAY"t h:AYFPQ$FhPQ$@PQ$^t hZAWY[t hxABY3]UEVpt hAYjjVdB^t hAY] Utt hAYEjjpdBPt hAY] UVW3,t hAYU9ut$j^9u s#B(@E$E03jVPu Rlt hA9Y_^] UVWt hAYEp(E Mh6AuElBe_^t hVAY3]UVWDt hAYEjj%Pu u t hAuY_^]UVWt hrAOYEjjPu uMt hAY_^]USVWt hAYE3AQPp(8< dž$Bdž(jyAdž,xAdž0yAdž4.zA(B@t h2AzY_^[]Ut hTAWYju(B]UQSVW}(t hA#Yu jjh|AVPHB؅y2҉^BW.Xu3V^2ҋBWjVPLB_^[]EPVu PM؃tItF#փF`$ItI8B롡!BUE!B]; BuUQMj5B5Buh,Bj̋Uj5B5Buh,B%\B%TB%XB%\B%0B%<B%@BOnFDOCreate IoAcquireRemoveLock not success, Fail IRP Increase FDO Ref OnFDOClose DecreaseRef FDO Ref. OnFDORead FDODefaultWrite Mouse Point Lost WHEEL : GESTURE_ZOOM WHEEL : GESTURE_SLIDE_X (GestureValue == 0) WHEEL : GESTURE_SLIDE_X (GestureValue == 0) post up WHEEL : GESTURE_ZOOM X WHEEL : GESTURE_ZOOM Y GESTURE_ROTATE GESTURE_ROTATE : GestureValue = %d WHEEL : WHEEL_BUTTON_DOWN WHEEL : 0x%x (%d) WHEEL : GESTURE_SLIDE_X WHEEL : 0x%x (%d) WHEEL : GESTURE_SLIDE_Y IDP : Enter dispatch origin data routine IDP : Need to parsing length = 0x%x IDP : we got a command packet DispatchOriginalData : Get Button Status CMD(CMD length is not correct %d). DispatchOriginalData : Write to EDO Len %d. Multi-Input %02X Multi-Input 1: %d, %d Multi-Input 2: %d, %d do New rectangle gesture. ulWidth 0x%x,ulHigh 0x%x ReportMouseData.LastX %d,ReportMouseData.LastY %d ucTouchStatus 0x%x m_DeviceType 0x%x m_ucDeviceID 0x%x ReportMouseData.ExtraInformation 0x%x IDP : Leave dispatch origin data routine receive %d bytes points pkt(02) eTouch : ParsingInputData has an exception ! IDP : Enter dispatch command routine IDP : Leave dispatch command routine prcMonitor->left %d prcMonitor->right %d prcMonitor->top %d prcMonitor->bottom %d prcVirtualDesktop->left %d prcVirtualDesktop->right %d prcVirtualDesktop->top %d prcVirtualDesktop->bottom %d pActiveArea->ulNumsOfBoxes = %d pActiveArea->rcBoxArray[%d].left %d pActiveArea->rcBoxArray[%d].right %d pActiveArea->rcBoxArray[%d].top %d pActiveArea->rcBoxArray[%d].bottom %d cx %d cy %d rcBoxArray.left %d rcBoxArray.right %d rcBoxArray.top %d rcBoxArray.bottom %d pBuffer[ 0 ] 0x%x pBuffer[ 1 ] 0x%x pBuffer[ 2 ] 0x%x pBuffer[ 3 ] 0x%x pBuffer[ 4 ] 0x%x pBuffer[ 5 ] 0x%x IDP : Enter post mouse point routine IDP : Leave post mouse point routine.because EEPROM failed EDOPostMousePoint : m_ulTouchStatus = 0, set Touch Disable Enable EdgeBtn EdgeBtn : X %d EdgeBtn : Y %d Disable EdgeBtn 1 pMouseData->LastX %d , pMouseData->LastY %d PostMouseState %x Zfilter : disable Z filter Zfilter : enable Z filter 2 pMouseData->LastX %d , pMouseData->LastY %d PostMouseState %x 3 pMouseData->LastX %d , pMouseData->LastY %d PostMouseState %x 4 pMouseData->LastX %d , pMouseData->LastY %d PostMouseState %x 5 pMouseData->LastX %d , pMouseData->LastY %d PostMouseState %x 6 pMouseData->LastX %d , pMouseData->LastY %d PostMouseState %x TouchSeq enable touch TouchSeq disable touch 8 pMouseData->LastX %d , pMouseData->LastY %d PostMouseState %x 9 pMouseData->LastX %d , pMouseData->LastY %d PostMouseState %x do not limit in ActiveArea. 10 pMouseData->LastX %d , pMouseData->LastY %d PostMouseState %x Active Area : DisableTouch Active Area : Post last Point and Touch UP USER ID(Real Multi) %d Active Area : Post last Point and Touch UP(Retangle) last touch state is up Active Area : Post last Point and Touch UP (Real Multi) Active Area : Post last Point and Touch UP(Real Multi) Active Area : EnableTouch pDeviceParam->m_ActiveArea.m_LastX 0x%x pDeviceParam->m_ActiveArea.m_LastY 0x%x 11 npMouseData->LastX %d , pMouseData->LastY %d (EDOPostMousePoint)pFdoExtension->m_bLastButton4Down = %x (8)PostMouseState = %x RectangleAndRealMulti == TRUE bBranchSw : pFormatData[5] == 0x%x bBranchSw 2 : pFormatData[5] == 0x%x IDP : Leave post mouse point routine PackMouseInputData pFormatData[ 0 ] 0x%x ShiftBit 0x%x lTempX %d lTempY %d (FilterLostPacket)pFdoExt->m_bLastButton4Down = %x FilterLostPacket :pMouseData->ExtraInformation 0x%x FilterMouseTouchEvent :g_bDragWaitNextDown==TRUE , post left up FilterMouseTouchEvent :g_bDragWaitNextDown==TRUE , g_bDragWaitNextDown==FALSE , post Move DoPostMousePoint: We have lose the data eTouch : We have lose the data KeGetCurrentIrql() > DISPATCH_LEVEL!!! DoPostMousePoint: pPostMouseState 0x%x PostMouseMove PostMouseLeftDown PostMouseLeftUp PostMouseRightDown PostMouseRightUp PostMouseLeftClick PostMouseRightClick PostMouseLeftUpAndRightClick PostMouseDBRightClick PostMouseLeftUpAndDBRightClick PostMouseLeftClickSpecial PostMouseWheel PostMouseMoveAndLeftUp other DBG_TDI : Send reset frimware cmd pRectBox->left = %d pRectBox->right = %d pRectBox->top = %d pRectBox->bottom = %d OnActiveAreaSingleSplit ActiveAreaSplitMap OnActiveAreaMultiMapping RectBox.left = %d RectBox.right = %d RectBox.top = %d RectBox.bottom = %d ActiveAreaBox->left = %d ActiveAreaBox->right = %d ActiveAreaBox->top = %d ActiveAreaBox->bottom = %d OnActiveAreaMultiSplit OnActiveAreaMultiFull OnActiveAreaMultiUpper OnActiveAreaMultiLower OnActiveAreaMultiLeft OnActiveAreaMultiRight OnActiveAreaMultiQuad1 OnActiveAreaMultiQuad2 OnActiveAreaMultiQuad3 OnActiveAreaMultiQuad4 DetectTouchInSequenceState : lTempX = %d DetectTouchInSequenceState : lTempY = %d DetectTouchInSequenceState : lLastPostX = %d DetectTouchInSequenceState : lLastPostY = %d DetectTouchInSequenceState : TimeOut. state return to 0 DetectTouchInSequenceState : state 0 DetectTouchInSequenceState : state 0(out area) DetectTouchInSequenceState : state 1 DetectTouchInSequenceState : state 1(out area) DetectTouchInSequenceState : state 2 DetectTouchInSequenceState : state 2(out area) DetectTouchInSequenceState : state 3 DetectTouchInSequenceState : Switch to disable Touch Function. DetectTouchInSequenceState : Switch to enable Touch Function. DetectTouchInSequenceState : state 3(out area) BASEPrepareDelete : RefEvent OK! BASEPrepareDelete : WorkItemEvent OK! BASEPrepareDelete : DPCEvent OK! BASEPrepareDelete : IOEvent OK! xTouch : DispatchRoutine Called IRP_MJ_CREATE IRP_MJ_CLOSE IRP_MJ_READ IRP_MJ_WRITE IRP_MJ_PNP IRP_MJ_POWER IRP_MJ_DEVICE_CONTROL IRP_MJ_SYSTEM_CONTROL IRP_MJ_INTERNAL_DEVICE_CONTROL IRP MJ Others xTouch : Increaseing Reference yet =%d xTouch : Ref = %d, Decreasing Ref xTouch : ** OutStanding Ref Event triggered xTouch : Increaseing OutStanding IO yet =%d xTouch : OutStanding IO = %d, Decreasing IO xTouch : ** OutStanding IO Event triggered xTouch : OutStanding DPC = %d, Decreasing DPC xTouch : ** OutStanding DPC Event triggered xTouch : OutStanding WorkItem = %d, Decreasing WorkItem xTouch : ** OutStanding WorkItem Event triggered DriverEntry : g_ustrRegistryPath.Buffer ExAllocatePool size(%d) Leave driver entry ( fail ) xTouchEnter driver entry( 0x%x ) Leave driver entry NativeNameEnter add device routine DriverObject( 0x%x ) , PhysicalDeviceObject( 0x%x ) IoAttachDeviceToDeviceStack ruturn fail Identify fail FDO init fail Leave add device routine ( success ) Leave add device routine ( fail ) DriverUnload : g_ustrRegistryPath.Buffer FreePool Unload Driver( 0x%x ) EdgeBtnAction: TouchDown == pDeviceParam->m_LastTouchState EdgeBtnAction: pLastPostMouseData->Buttons = MOUSE_LEFT_BUTTON_UP; EdgeBtnAction Y EdgeBtnAction : WHEEL_UP 0x%x EdgeBtnAction : WHEEL_DOWN 0x%x HWEEL_LEFT 0x%x HWEEL_RIGHT 0x%x EdgeBtnAction X EDODestruct : call decreaseing Reference (EDONotifyDeviceRemoval) Leave EDODestruct Enter EDONotifyDeviceRemoval EDONotifyDeviceRemoval : complete m_WaitRemovalIrpLeave EDONotifyDeviceRemoval Write to EDO RxFifo = %d0x%02X EDOFireRemoveEvents EDONotifyToRemove Redirect : GetEEPROM Addr=%02X EDORedirect : Get EEPROM Addr = %02X Value = %02X %02X EDORedirect : Returned CheckSum = %04X EDO TX Thread : Get GETEEPROM CMD ,but first EEPROM CHECK not finish Write Complete EDO TX Thread : Get GETEEPROM CMD EDO TX Thread : Get H2D_LOOPBACK CMD EDO TX Thread : Write Data to FDO. EDO : Got Tx Thread Stop event EDO : Tx Thread is Close EDO:Read Timeout %d EDORxMoveData: CurrentIrp NULL EDORxMoveData: Fifo Empty EDORead : 0x%x EDO: Read %d bytes from Fifo Complete Read Irp - Read %d bytes EDO : Got Rx Thread Stop event EDO : Rx Thread is Close EDODefaultCreate EDODefaultCreate : call Increaseing Reference Increase EDO Ref EDO : Enter EdoCleanAllBeepEvent EDO : Leave EdoCleanAllBeepEvent (Enter EdoCleanBeepEventArray) (Leave EdoCleanBeepEventArray) EDODefaultClose EDODefaultClose : call decreaseing Reference EDODefaultRead xTouch : pEdoExt->m_BaseExt.m_bDeleted, Fail IRP EDODefaultRead: Read.Length == 0 EDODefaultWrite. EDODefaultRead: Write.Length == 0 EDODefaultPnp EDO IRP_MN_START_DEVICE EDO IRP_MN_STOP_DEVICE EDO IRP_MN_SURPRISE_REMOVAL EDO IRP_MN_REMOVE_DEVICE EDO IRP_MN_QUERY_CAPABILITIES EDO IRP_MN_QUERY_PNP_DEVICE_STATE EDO IRP_MN_QUERY_REMOVE_DEVICE EDO IRP_MN_CANCEL_REMOVE_DEVICE EDO IRP_MN_QUERY_STOP_DEVICE EDO IRP_MN_CANCEL_STOP_DEVICE EDO IRP_MN_QUERY_DEVICE_RELATIONS EDO IRP_MN_QUERY_INTERFACE EDO IRP_MN_QUERY_RESOURCE_REQUIREMENTS EDO IRP_MN_READ_CONFIG EDO IRP_MN_WRITE_CONFIG EDO IRP_MN_EJECT EDO IRP_MN_SET_LOCK EDO IRP MN Others EDOBeep : Beep Source: %d EDOBeep : m_ulTouchStatus: %d EDOBtn EDOFireBtnEvent : Set Btn event! EDOHWeel pEdoExt->m_ulHWeelStatus = 0x%x EDOFireHWeelEvent : Set HWeel event! EdoIoctlGetActiveAreaBoxNum : pEdoExt->m_pActiveArea == NULL pActiveAreaInfo->bEnable (%x) pActiveAreaInfo->ulNumsOfBoxes (%x) pActiveAreaInfo->rcBoxArray[1].left (%x) pActiveAreaInfo->rcBoxArray[1].right (%x) pActiveAreaInfo->rcBoxArray[1].top (%x) pActiveAreaInfo->rcBoxArray[1].bottom (%x) MonitorInfoEDOQueryMonitorInfo ExAllocatePool size(%d) EDOQueryMonitorInfo FreePool EdgeInfoEDOQueryEdgeInfo ExAllocatePool size(%d) EDOQueryEdgeInfo FreePool BeepFrequencyBeepDurationBeepModeBeepSourceConstRangeConstDurationConstModeMouseModeTouchSpeedTouchGridOrientBranchCalInfoEDOQueryCalInfo : ExAllocatePool size(%d) EDOQueryCalInfo : FreePool LinzInfoEDOQueryLinzInfo : ExAllocatePool size(%d) EDOQueryLinzInfo : FreePool EDOAuthenThreadRoutine-running EDOAuthenThreadRoutine-running stop since EEPROMOk EDOAuthenThreadRoutine-Register Fail ChallengeThread : Got Callenge Thread Stop event Other Status EDO : EEPROM Thread is Close xTouch\DeviceDefault\DeviceDefaultEnhanceLinear in Service(%d) EDOQueryMonitorInfoFromService : ExAllocatePool size(%d) EDOQueryMonitorInfoFromService : FreePool EDOQueryEdgeInfoFromService : ExAllocatePool size(%d) EDOQueryEdgeInfoFromService : FreePool EDOQueryCalInfoFromService : ExAllocatePool size(%d) EDOQueryCalInfoFromService : FreePool EDOQueryLinzInfoFromService : ExAllocatePool size(%d) EDOQueryLinzInfoFromService : FreePool CalSourceTouchHoldToResetTimeTouchHoldToResetFlagIdleToResetTimeIdleToResetFlagA0A1A2A3UppperLowFilter ThresholdFilterActiveAreaInfoEDOQueryActiveAreaInfo ExAllocatePool size(%d) EDOQueryActiveAreaInfo :Query Reg failed. error code = %x EDOQueryActiveAreaInfo :Query Reg failed. len = length%d EDOQueryActiveAreaInfo Buffer size too small. need buffer length is %d EDOQueryActiveAreaInfo Buffer size too small. need Data length is %d EDOQueryActiveAreaInfo(2) ExAllocatePool size(%d) EDOQueryActiveAreaInfo(2) Get data size(%d) %x EDOQueryActiveAreaInfo FreePool DesktopTouchDownTimeEnableDetectTouchSequenceFlgRectangleLimitInActiveAreaReportOlderRectangleFormatEdgeBtnRealMultiReportModeFireWheelEventOnlyReport1stContactEnhanceLinearSaveEnhanceLinearToService(%d) EnhanceLinearData(%d) EnhanceLinearDataSwTo8Bits(%d) EdoHookBeepEvent(%d)(%x)(%x) EDO Reference pkBeepEvent EDO Reference pkBeepEvent: Buffer too small EDO Reference pkBeepEvent: DeviceIoControl.InputBufferLength (%x) EDO Reference pkBeepEvent: sizeof(HANDLE) (%x) EDO Reference pkBeepEvent: (NULL == hEvent) Leave EDO Reference pkBeepEvent EDO Dereference pkBeepEvent Leave EDO Dereference pkBeepEvent SetRemoveEvent(%d)(%x)(%x) Enter EDOCleanAllRemoveEvent Leave EDOCleanAllRemoveEvent EDOReferenceRemoveEvent(%d)(%x)(%x) (EDOReferenceRemoveEventArray) EDODereferenceRemoveEvent(%d)(%x)(%x) (EDODereferenceRemoveEventArray) EDO Reference pkRemoveEvent EDO Dereference pkRemoveEvent EdoIoctlSetActiveArea : pEdoExt->m_pActiveArea ExAllocatePool size(%d) EdoIoctlGetActiveAreaBoxNum : pEdoExt->m_pActiveArea->ulNumsOfBoxes(%d) pEdoExt->m_pActiveArea->rcBoxArray[1].left (%x) pEdoExt->m_pActiveArea->rcBoxArray[1].right (%x) pEdoExt->m_pActiveArea->rcBoxArray[1].top (%x) pEdoExt->m_pActiveArea->rcBoxArray[1].bottom (%x) SetBtnEvent(%d)(%x)(%x) Enter EDOCleanAllBtnEvent Leave EDOCleanAllBtnEvent EDOReferenceBtnEvent(%d)(%x)(%x) (EDOReferenceBtnEventArray) EDODereferenceBtnEvent(%d)(%x)(%x) (EDODereferenceBtnEventArray) EDO Reference pkBtnEvent EDO Dereference pkBtnEvent SetHWeelEvent(%d)(%x)(%x) Enter EDOCleanAllHWeelEvent Leave EDOCleanAllHWeelEvent EDOReferenceHWeelEvent(%d)(%x)(%x) (EDOReferenceHWeelEventArray) EDODereferenceHWeelEvent(%d)(%x)(%x) (EDODereferenceHWeelEventArray) EDO Reference pkHWeelEvent EDO Dereference pkHWeelEvent reply ulHWeelStatus 0x%x EDODefaultDeviceIoctl IOCTL_SET_BRACNHFORMAT IOCTL_GET_BRACNHFORMAT IOCTL_GET_OIRENTATION IOCTL_SET_OIRENTATION IOCTL_SET_CALINFO IOCTL_GET_CALINFO IOCTL_SET_MOUSEMODE IOCTL_GET_MOUSEMODE IOCTL_SET_LINZINFO IOCTL_GET_LINZINFO IOCTL_SET_MONITORINFO IOCTL_GET_MONITORINFO IOCTL_UPDATE_MONITORINFOnIOCTL_SET_EDGEINFO IOCTL_GET_EDGEINFO IOCTL_SET_CONST_TOUCHINFO IOCTL_GET_CONST_TOUCHINFO IOCTL_GET_BEEPINFO IOCTL_SET_BEEPINFO IOCTL_QUERY_COMM_NAME IOCTL_GET_VERSION IOCTL_WAIT_REMOVAL IOCTL_CLEANUP_WAIT_REMOVAL IOCTL_REFERENCE_EVENT IOCTL_DEREFERENCE_EVENT IOCTL_REFERENCE_REMOVE_EVENT IOCTL_DEREFERENCE_REMOVE_EVENT IOCTL_HOOK_RAW_POINT IOCTL_HOOK_CALED_POINT IOCTL_HOOK_CMD IOCTL_REMOVEALL_HOOK IOCTL_GET_LAST_POINT_TICK_CONT IOCTL_GET_TOUCH_FUNCTION_STATUS IOCTL_SET_TOUCH_FUNCTION_STATUS IOCTL_SET_ACTIVE_AREA IOCTL_GET_ACTIVE_AREA_BOX_NUM IOCTL_GET_ACTIVE_AREA_INFO IOCTL_REFERENCE_BTN_EVENT IOCTL_DEREFERENCE_BTN_EVENT IOCTL_GET_ENABLE_DETECT_TOUCH_IN_SEQUENCE_FLAG IOCTL_SET_ENABLE_DETECT_TOUCH_IN_SEQUENCE_FLAG IOCTL_REFERENCE_HWEEL_EVENT IOCTL_DEREFERENCE_HWEEL_EVENT IOCTL_GET_HWEEL_STATUS IOCTL_GET_ENHANCE_LINEAR IOCTL_SET_ENHANCE_LINEAR IOCTL Others(0x%x) Enter identify device type FDOIdentifyDeviceType : ustrHardwareID.Buffer ExAllocatePool size(%d) We got a new hardware id , and compare it USB\SERENUM\ACPI\It is a SERIAL device FDOIdentifyDeviceType : ustrHardwareID.Buffer FreePool Leave identify device type FDOOpenPort FDOOpenPort : pFdoExt->m_pPort ExAllocatePool(NonPagedPoolNx) size(%d) FDOOpenPort : Internal DeviceID = %d FDOClosePort FDOClosePort : release DeviceID = %d FDOOpenEDO FDOOpenEDO : ustrDeviceName ExAllocatePool size(%d) FDOOpenEDO : ustrSerialNo ExAllocatePool size(%d) \Device\EDOFDOOpenEDO: init EDO failed. FDOOpenEDO : pEdoExt->m_ustrSymbolicName.Buffer ExAllocatePool size(%d) #EDOFDOOpenEDO: Create EDO failed FDOOpenEDO : ustrSerialNo FreePool FDOOpenEDO : ustrDeviceName FreePool FDOCloseEDO FDOCloseEDO : Decreaseing Reference call by NotifyToRemove and Destruct EDO PrepareDelete. FDOStopEDO OnFDODefaultHandler ForceRedirectedDebugLevelFDO: IOCTL_INTERNAL_MOUSE_CONNECT FDO: IOCTL_INTERNAL_MOUSE_DISCONNECT FDO: IOCTL_INTERNAL_MOUSE_ENABLE FDO: IOCTL_INTERNAL_MOUSE_DISABLE FDO: IOCTL_MOUSE_QUERY_ATTRIBUTES FDO: IOCTL Others FifoInit : pFifo->m_pBuffer ExAllocatePool size(%d) Write Fifo : fifo full Read Fifo : fifo empty helper:ForwardAndWait Helper:PassThroughIrp FDORegisterCallback begin--- Hooked=%d FDORegisterCallback : pTempList ExAllocatePool size(%d) FDORegisterCallback end--- Hooked=%d FDOUnRegisterCallback begin--- Hooked=%d FDOUnRegisterCallback : FreePool FDOUnRegisterCallback end--- Hooked=%d pMouseData->LastX %d,pMouseData->LastY %d IsNeedTransfer2Rectangle DO_NOT_REPORT_RECTANGLE (don't init ID1)(0x%x) IsNeedTransfer2Rectangle pDeviceParam->m_RealMultiRectangleStatus.m_bDropSecondUp(0x%x) IsNeedTransfer2Rectangle DO_NOT_REPORT_RECTANGLE (init ID1)(0x%x) IsNeedTransfer2Rectangle : is ID1 NEED_REPORT_RECTANGLE(has ID2) IsNeedTransfer2Rectangle : is ID1 DO_NOT_REPORT_RECTANGLE(no ID2) IsNeedTransfer2Rectangle : is ID2 NEED_REPORT_RECTANGLE IsNeedTransfer2Rectangle : is not ID2 NEED_REPORT_RECTANGLE IsNeedTransfer2Rectangle : end DO_NOT_REPORT_RECTANGLE RealMultiReportRectangle: pPostMouseState 0x%x RealMultiReportRectangle: ucUserID 0x%x ucID 0x%x RealMultiReportRectangle:m_bNeedPostUp ==TRUE RealMultiReportRectangle:Do not report this mouse event RealMultiReportRectangle:ucTouchStatus 0x%x RealMultiReportRectangle:m_DeviceType 0x%x RealMultiReportRectangle:m_ucDeviceID 0x%x RealMultiReportRectangle:ReportMouseData.ExtraInformation 0x%x RealMultiReportRectangle:pDeviceParam->m_RealMultiRectangleStatus.m_bDropSecondUp 0x%x RealMultiReportRectangle:Clean status RealMulti: pPostMouseState 0x%x m_bNeedPostUp ==TRUE pFormatData[0] & 0x60 pFormatData[0] & 0x20 pFormatData[5] == 0x5f pFormatData[5] == 0x60 pFormatData[0] & 0x40 pMouseData->ExtraInformation 0x%x ReportMouseData.ExtraInformation 0x%x (gesture) IRP_MN_START_DEVICE IRP_MN_STOP_DEVICE IRP_MN_SURPRISE_REMOVAL IRP_MN_REMOVE_DEVICE IRP_MN_QUERY_CAPABILITIES IRP_MN_QUERY_PNP_DEVICE_STATE IRP_MN_QUERY_REMOVE_DEVICE IRP_MN_CANCEL_REMOVE_DEVICE IRP_MN_QUERY_STOP_DEVICE IRP_MN_CANCEL_STOP_DEVICE IRP_MN_QUERY_DEVICE_RELATIONS IRP_MN_QUERY_INTERFACE IRP_MN_QUERY_RESOURCE_REQUIREMENTS IRP_MN_READ_CONFIG IRP_MN_WRITE_CONFIG IRP_MN_EJECT IRP_MN_SET_LOCK IRP MN Others Enter start device TouchSendSyncIrp is success GetCommName Failure GetCommName Success Do port start device Empty Port's StartDevice Going to Enable Device Interface Enable Device Interfce done Leave start device xTouch : Enter remove device xTouch : Do port remove device FDO PrepareDelete. xTouch : IoReleaseRemoveLockAndWait is called xTouch : Leave remove device Enter stop device Leave stop device Enter surprise remove device OnPnPSurpriseRemove : return status not success. Leave surprise remove device OnPnPQueryRemoveDevice Leave OnPnPQueryRemoveDevice OnPnPCancelRemoveDevice Power : Enter OnFDOPower Power : Enter OnFDOWaitWake Power : Leave OnFDOWaitWake Serial : Powering Up! Clear Power down Event Serial : Powering Down! Trigger Power down Event xTouch : Enter FDODefaultSetPower PS2 UsbFlushCmdPacket : Enter EDOMutex UsbFlushCmdPacket : Debug 0 UsbFlushCmdPacket : Debug 1 UsbFlushCmdPacket : Debug 2 UsbFlushCmdPacket : Debug 3 UsbFlushCmdPacket : Debug 4 UsbFlushCmdPacket : Debug 5 UsbFlushCmdPacket : Debug 6 UsbFlushCmdPacket : Debug 7 UsbFlushCmdPacket : Debug 8 UsbFlushCmdPacket : Leave EDOMutex 2.0V ResistiveRedirect : SetEEPROM Addr=%02X, Value=%04XRedirect : Update Data in Registry Redirect : Get EEPROM Addr = %02X Value = %02X %02X Redirect : Returned CheckSum = %04X UsbPort : Enter UsbInsertCmdPacket UsbPort : Leave UsbInsertCmdPacket \InformationQueryEEPROM : FullInfo ExAllocatePool size(%d) EEPROM : Query Addr=%02X, Value=%04X QueryEEPROM : FullInfo FreePool EEPROM : Query Value Returned=%d EEPROM : Query Value Fail! Update Registry again BaudRateBaudReate = %d !!! PnpSerialStartDevice() PnpSerialStartDevice: open edo failed PnpSerialStopDevice() Leave PnpSerialStopDevice() PnpSerialSurpriseRemove() Leave PnpSerialSurpriseRemove() SerialStartDevice !!! Set baud rate fail !!! Set baud rate success !!! Set LCR fail !!! Set LCR success !!! Set timeout fail !!! Set timeout success !!! SerialStartDevice:Fail to StartDevice - RxFifo !!! SerialStartDevice:Fail to StartDevice - TxFifo !!! SerialStartDevice:Fail to StartDevice - CmdFifo !!! SerialStopDevice! SerialStopDevice (m_IsPnpDevice)! Thread isn't stopped yet!!! DeviceSyncIoctl : status = STATUS_PENDING DeviceSyncIoctl : status != STATUS_PENDING SerialSetRTS : status = STATUS_PENDING SerialSetRTS : set RTS success SerialSetRTS : set RTS fail Leave init serial port SerialReleaseIrp Enter read completion routine SerialAllocateRxIrp :enter allocate rx IRP . SerialAllocateRxIrp : allocate rx IRP false. SerialAllocateRxIrp :Leave allocate rx IRP . kIrql > PASSIVE_LEVEL || NULL == pPortBase->pReadIrp SerialStartDevice:RxThreadRoutine --- Running !!! RxThread : EnterSerialStartDevice:RxThreadRoutine --- Stop Event fired !!! SerRxThread : Device Power Status is %X! SerRxThread : System Power Status is %X! SerRxThread : Stop Event was setted SerRxThread : Set m_ulTouchStatus =1 enable touch SerRxThread : Power Status is DeviceDo! RxThread : IoSetCompletionRoutineRxThread : allocate rx IRP false. RxThread : IoCallDriverRxThread : KeWaitForMultipleObjectsRxThread : Stop event is setting RxThread : read event is fired RxThread : ulReadBytes = 0x%x Rx : 0x%02x Rx : 0x%02x RxThread : Enter DispatchOriginalData RxThread : Leave DispatchOriginalData SerRxThread : Power Down Event Trigger SerRxThread : Power Down Event Trigger End RxThread : Leave Rx thread Enter write complete routine Write data to lower success Write data to lower timeout write complete: Cancel Write IRP write complete: Delete Pending Write IRP write complete: Device not connected. write complete: Other status = %x Tx Thread : cancel Irp Tx Thread : Power Down Event Trigger Tx Thread : Power Down Event Trigger End kIrql > PASSIVE_LEVEL || NULL == pPortBase->pWriteIrp SerialStartDevice:TxThreadRoutine --- running!!! TxThread : Enter SerTxThread : Stop Event fired! SerTxThread : Device Power Status is %X! SerTxThread : System Power Status is %X! SerTxThread : Stop Event was setted SerTxThread : Stop event is setting SerTxThread : get power down event SerTxThread : send 0x%x SerTxThread : Leave Tx thread IsDeviceExistingThread : Enter IsDeviceExistingThread : stop event is setting IsDeviceExistingThread : we got MSR %08x IsDeviceExistingThread : ( ulModemStatus & SERIAL_DSR_STATE ) != SERIAL_DSR_STATE IOCTL_INTERNAL_SERENUM_REMOVE_SELF is successIOCTL_INTERNAL_SERENUM_REMOVE_SELF is failSerialIsDeviceExistingThreadRoutine : Leave SerialGetCommName : ustrTempCommPortName.Buffer ExAllocatePool size(%d) NativePortNameSerialGetCommName : pFullInfo ExAllocatePool size(%d) SerialGetCommName : pFdoExt->m_ustrCommPortName ExAllocatePool size(%d) \DosDevices\_DEVICE_ = %ws ustrTempCommPortName get from PDO = %ws return length = %d bytes m_ustrCommPortName.MaximumLength = 0x%x m_ustrCommPortName = %ws SerialGetCommName : ustrTempCommPortName.Buffer FreePool SerialGetCommName : pFullInfo FreePool SerialFlushCmdPacket : Enter EDOMutex SerialFlushCmdPacket : Debug 0 SerialFlushCmdPacket : Debug 1 SerialFlushCmdPacket : Debug 2 SerialFlushCmdPacket : Debug 3 SerialFlushCmdPacket : Debug 4 SerialFlushCmdPacket : Debug 5 SerialFlushCmdPacket : Debug 6 SerialFlushCmdPacket : Debug 7 SerialFlushCmdPacket : Debug 8 SerialFlushCmdPacket : Leave EDOMutex SerialPort : Enter SerialInsertCmdPacket SerialPort : Leave SerialInsertCmdPacket SerialQueryEEPROM : FullInfo ExAllocatePool size(%d) SerialQueryEEPROM : FullInfo FreePool UsbPort : before set configuration NULL UsbPort : after set configuration NULL PnpUsbRemoveDevice : before abort and reset pipe PnpUsbRemoveDevice : after abort and reset pipe PnpUsbSurpriseRemove : before abort pipe PnpUsbSurpriseRemove : after abort pipe UsbPort : Init RX Fifo success UsbPort : Init TX Fifo success UsbPort : Init Cmd Fifo success UsbPort : Get usb information fail !!! UsbPort : Assign task usb infomation fail !!! UsbPort : Enter usb stop device UsbPort : Before stop thread UsbPort : After stop thread UsbPort : Before release fifo UsbPort : After release fifo UsbPort : Leave usb stop device UsbPort : Enter UsbGetUsbInfo UsbPort : UsbGetDeviceDescriptor Fail UsbPort : UsbGetConfigurationDescriptor Fail UsbPort : Enter SetConfiguration UsbPort : Leave SetConfiguration UsbPort : UsbSetConfiguration Fail UsbPort : Enter ReleaseInterfaceList UsbPort : Leave ReleaseInterfaceList UsbPort : Enter QueryTotalNumsOfInterfaces UsbPort : Leave QueryTotalNumsOfInterfaces UsbPort : Enter ReleasePipeResources UsbPort : Leave ReleasePipeResources UsbPort : Enter QueryTotalNumsOfPipes UsbPort : Leave QueryTotalNumsOfPipes UsbPort : Enter AllocatePipeResources UsbPort : Leave AllocatePipeResources UsbPort : Leave UsbGetUsbInfo UsbPort : Build DeviceIoControl Irp Fail UsbPort : Descriptor Allocate Fail !!! Get Device Descriptor Success UsbGetDeviceDescriptor : pDescriptor->bNumConfigurations = %d Get Device Descriptor Fail !!! UsbGetConfigurationDescriptor : Configuration descriptor length = %d UsbPort : CfgDescriptor Allocate Fail !!! UsbPort : Get CfgDescriptor ( 0x%x) Success UsbPort : Get CfgDescriptor Fail !!! UsbSetConfiguration : Enter UsbSetConfiguration : before USBD_ParseConfigurationDescriptorEx UsbSetConfiguration : i = %d UsbSetConfiguration : after call USBD_ParseConfigurationDescriptorEx UsbSetConfiguration : pIfDesc == NULL UsbSetConfiguration : we got a new pIfDesc and store it UsbSetConfiguration : after USBD_ParseConfigurationDescriptorEx UsbSetConfiguration : ulNumsOfEndPoints != 1 ( fail ) UsbSetConfiguration : before USBD_CreateConfigurationRequestEx UsbSetConfiguration : after USBD_CreateConfigurationRequestEx UsbSetConfiguration : pSelUrb == NULL ( fail ) UsbSetConfiguration : before USBD_ParseDescriptors UsbSetConfiguration : pEPtDesc == NULL ( fail ) UsbSetConfiguration : after USBD_ParseDescriptors UsbSetConfiguration : before submit select URB UsbSetConfiguration : after submit select URB UsbSetConfiguration : success UsbSetConfiguration : fail and free resources UsbSetConfiguration : free pSelUrb UsbSetConfiguration : Leave UsbPort : Enter UsbQueryTotalNusOfInterfaces UsbPort : Leave UsbQueryTotalNusOfInterfaces UsbPort : Enter UsbQueryTotalNumsOfPipes UsbPort : Leave UsbQueryTotalNumsOfPipes UsbPort : Enter UsbAllocatePipeResources UsbPort : Allocate pipe resources fail !!! UsbPort : Leave UsbAllocatePipeResources UsbPort : Enter UsbReleaseInterfaceList UsbPort : Leave UsbReleaseInterfaceList UsbPort : Enter UsbReleasePipeResources UsbPort : Leave UsbReleasePipeResources UsbPort : Enter UsbReleaseUsbInterfacePipeResources UsbPort : Leave UsbReleaseUsbInterfacePipeResources UsbPort : Enter UsbReleaseAllUsbResources UsbPort : Leave UsbReleaseAllUsbResources UsbAbortPipe : return success UsbAbortPipe : return fail UsbResetPipe : return successUsbResetPipe : return failUsbRxComplete : Enter UsbToComRxComplete UsbRxComplete : Leave UsbToComRxComplete UsbRxThread : UsbPortRxThreadRoutine Fail due to no more memory to allocate Irp. UsbRxThread : UsbPortRxThreadRoutine is Running UsbRxThread : Polling Interval=%dms UsbRxThread : Transfer Size=%d UsbRxThread : Pipe Handle = %x UsbRxThread : Rx thread loop start ! UsbRxThread : RxThread Terminated due to m_PnPState not started UsbRxThread : Receive the stop Event UsbRxThread : Usb urb error = %x UsbRxThread : Usb urb error = READ_URB_ERR UsbRxThread : PipeHandle = %x UsbRxThread : Receive %d bytes UsbRxThread : Copy read data to RxFifo 0x%02x 0x%02x UsbTxThread : AllocateUSBControlPipeIrpAndUrb failed for IRP UsbTxThread : AllocateUsbControlPipeIrpAndUrb Failed for URB UsbTxComplete : Enter UsbToComTxComplete UsbTxComplete : Leave UsbToComTxComplete UsbTxThread : pPortBase = 0x%x , pTxFifo = 0x%x UsbTxThread : AllocateUsbPipeIRPandUrb Fail !!! UsbTxThread : UsbToComTxThread is running UsbTxThread : m_pBuffer = 0x%x UsbTxThread : m_ulLen = 0x%x UsbTxThread : m_ulRead = 0x%x UsbTxThread : m_ulWrite = 0x%x UsbTxThread : m_pOP = 0x%x UsbTxThread : UsbToComTxThread enter Wait Data Objects UsbTxThread : Stop Event was setted UsbTxThread : USbToTxComThread Terminated due to device not started UsbTxThread : Read No Data UsbTxThread : Enter Pending Wait UsbTxThread : the stop event was setted UsbTxThread : Leave pending Wait ( exit thread ) UsbTxThread : Pending Wait - ok UsbTxThread : Write Done UsbTxThread : Free URB UsbTxThread : Free Write Irp OnFDOSystemIoctl : EnterxTouch : Enter FDOWmiRegistrationxTouch : Leave FDOWmiRegistrationFDOWmiUnRegistration : EnterFDOSetWmiDataItem : EnterFDOSetWmiDataItem : LeaveFDOSetWmiDataBlock : EnterFDOSetWmiDataBlock : LeaveFDOQueryWmiDataBlock : EnterFDOQueryWmiDataBlock : LeaveFDOQueryWmiRegInfo : EnterMofResourceNameFDOQueryWmiRegInfo : Leave|A 9882998888999N9d93334 44 4.4<4T4l44444445585B5\5t5555555b36&646N636666667747P7h777777788$8B8V8r88F3633222222j23f63V2>26(2FcWE;q@Oڗqe]IRP_MJ_CREATEIRP_MJ_CREATE_NAMED_PIPEIRP_MJ_CLOSEIRP_MJ_READIRP_MJ_WRITEIRP_MJ_QUERY_INFORMATIONIRP_MJ_SET_INFORMATIONIRP_MJ_QUERY_EAIRP_MJ_SET_EAIRP_MJ_FLUSH_BUFFERSIRP_MJ_QUERY_VOLUME_INFORMATIONIRP_MJ_SET_VOLUME_INFORMATIONIRP_MJ_DIRECTORY_CONTROLIRP_MJ_FILE_SYSTEM_CONTROLIRP_MJ_DEVICE_CONTROLIRP_MJ_INTERNAL_DEVICE_CONTROLIRP_MJ_SHUTDOWNIRP_MJ_LOCK_CONTROLIRP_MJ_CLEANUPIRP_MJ_CREATE_MAILSLOTIRP_MJ_QUERY_SECURITYIRP_MJ_SET_SECURITYIRP_MJ_POWERIRP_MJ_SYSTEM_CONTROLIRP_MJ_DEVICE_CHANGEIRP_MJ_QUERY_QUOTAIRP_MJ_SET_QUOTAIRP_MJ_PNPIRP_MJ_PNP_POWERIRP_MJ_MAXIMUM_FUNCTIONYi7N;$D4Ezb`[\B0BBRSDS+όM4M@@"@@<@B@@F@\@@@:@@@@<@9@H@r@@@@@@ؕ@d@r@r@r@ly@ AB AR A A. Ax@ A A A` AZ AZ Af@ A A A` AZ AZ A@ A A A` AZ AZ Af@F@L@@e@@JL@Vk@k@,y@tF@G@J@R/@6@@@N@`@@@,@D@@@ @(@p@J@F@(@@@@@R@b@l@nnnn22@ffffffff  @<@@\@@0AAzA*{A@AVA@@@@AN(ApAT{AAhA)A]A^A^A:]A]A8A7A7AHfA~vAwAcApAvqA$oAoA_A(qAqAVpAcAaA`ArAoA`A`vA$_A^rAqA-AB0A0A>-A4A,A1AgA A A A` AZ AZ A$@ALA6NAh;A>:AKAKAKAZ AfKAPAjSATAOAT[AOATAWAjPAjA A A A` AZ AZ ABA A A A` AZ AZ AGA A A A` AZ AZ AHAA A A A` AZ AZ A)A A A A` AZ AZ A)A A A A` AZ AZ AAA*ARAAAA. Av A A ABBBBB B<BTBdBtBBBBBBB<BLB`BpBBBBBBBBB(B<Bffffffff2ffffffff2dBDN@ U]OUQQBN@t;u15BUBuBУB]08H0F90x9<09, 9882998888999N9d93334 44 4.4<4T4l44444445585B5\5t5555555b36&646N636666667747P7h777777788$8B8V8r88F3633222222j23f63V2>26(2KeGetCurrentThreadRtlInitUnicodeStringKeInitializeEventKeInitializeSemaphorefKeReleaseSemaphoreKeDelayExecutionThreadKeSetPriorityThreadKeWaitForMultipleObjectsKeWaitForSingleObjectDPsTerminateSystemThreadIoBuildDeviceIoControlRequestIofCallDriver"IoGetDeviceObjectPointerObReferenceObjectByPointerObfDereferenceObject?DbgPrintIofCompleteRequestIoAcquireRemoveLockExdIoReleaseRemoveLockExRKeQueryTimeIncrement_allmulKmemcpyOmemsetKeTickCountKeSetEventKeInitializeSpinLockRtlWriteRegistryValueZRtlAppendUnicodeStringToStringpExAllocatePoolExFreePoolIoAttachDeviceToDeviceStackIoCreateDeviceIoDeleteDeviceIoDetachDeviceGIoOpenDeviceRegistryKeyYIoRegisterDeviceInterfaceMZwCloseMRtlQueryRegistryValuesRtlCreateRegistryKeydRtlCheckRegistryKey[RtlAppendUnicodeToStringKeInitializeDpcqKeRemoveQueueDpcKeClearEventKeInitializeMutexeKeReleaseMutexKeInitializeTimerKeCancelTimerKeSetTimerIoAcquireCancelSpinLockIoDeleteSymbolicLinkbIoReleaseCancelSpinLockZwOpenKeyZwQueryValueKeyObReferenceObjectByHandleExEventObjectTypeRtlIntegerToUnicodeStringIoCreateSymbolicLink:IoInitializeRemoveLockEx#IoGetDevicePropertyvIoSetDeviceInterfaceStatePsCreateSystemThreadRtlFreeUnicodeStringcIoReleaseRemoveLockAndWaitExPoCallDriverPoStartNextPowerIrpRtlUnicodeStringToAnsiStringIoAllocateIrpIoCancelIrpIoFreeIrpRtlFreeAnsiStringRtlxUnicodeStringToAnsiSizeNlsMbCodePageTagIoWMIRegistrationControlKeBugCheckExntoskrnl.exeRtlUnwindgREAD_PORT_UCHARmWRITE_PORT_UCHARExAcquireFastMutexExReleaseFastMutexaKfLowerIrqlbKfRaiseIrqlTKeGetCurrentIrql`KfAcquireSpinLockcKfReleaseSpinLockHAL.dllWmiCompleteRequestWmiSystemControlWMILIB.SYS USBD_ParseDescriptors USBD_ParseConfigurationDescriptorExUSBD_CreateConfigurationRequestExUSBD.SYS0H`@4VS_VERSION_INFO j; j;?VStringFileInfo2040904b0$CompanyName ^FileDescriptionSerial Touch Device Driver: FileVersion5.13.0.15210: InternalNameserTouch.sysTLegalCopyrightCopyright (C) 2000~2016B OriginalFilenameserTouch.sysFProductNameSerial Touchscreen> ProductVersion5.13.0.15210DVarFileInfo$Translation 00r0P11112 33@3G3S3k3333333+4@4G4L4R4X4c4i4p4v4|44444444575C5N5U5b5g5l5s5y5555555*6E6V6j6}666670787L7_7}7777777818M8<9T9l999:@=Z=t====O>[>t>>S?p? x05022223333h333>4i44445K5_555556666778S8999:g;;<<< ='======}>7?s???????0 010H0g0z0000141L1c1y1111 2"282R222223/3`3w33333+4P4j44445/5I5w5555566=6T6g6666666666666666T7j777@8Z8p88891:Q::[;u;;;Aq>>>>'?s???@(0Y0001Q1u111)2D2_2:3G3b33333 484444#596788889(949N9e9999!::;;8;>S>k>>>>>>>-?T?m?????P000111282222 363N3f3g44444D5H5L5P5T5X5\5`5d55564666 7,77788j889969N9n9Z:r::::3;;>> >>>,>>>>>>>>>>>9??`,0m00196b677|:;<<<=Y=u>>k??pm0a1t1|111111)2W2{222223E3i3v333333 4434`4m444455^55555646]66666667>7K7d7777739999 :0:T:x:::::;$;8;V;z;;;;<D>_>|>>>>>$?2?O?f?u???????0 0$0*0?0V0i0o0y00000001"1.141<1A1R1c1111112)2<2H2_2v2222.3I3Y3s333344=4^4p4z44444S5555636R6d6r6L77777:9S9:+:]::: ;;;<4>>>>>?)?D?`??????0)0M0Z000001.1E1111282u22223<3y33334%4<4S4j444444 55,5<5Z5j5z555555555556$7R7899:!:?:]:{::; <<9>4><>B>W>]>>>>6?y?00(1=1n111111242>2i2222223;3W3l3w33333424`4{44444R5b5r55556'676G6V6s666677,7G77777788X8k88888889,9K999999:1::::::;L;U;h;;;<'>}>>>>>> ?a?n?????T(010D0_000000 11L1U1h111111:2G2e2o2222"3/3M3W3n33344;4E4X4t44455G5555556.6>6M6666667+7\7e7x777770898L8g888889 99:9Q9Y9999 :4:K:b:y::::;4;R;e;;;;;;;;<<#=E=P=Z=h=s=~============>>>>'>1>;>E>O>Y>c>m>w>>>>>>>>>4?G?c?????0070h0q0000111112/2P2r22G3c33333333 484444445E5U55555)6Y6o66666666 757C7Z7h7}77777777888858C8W8\8d8}8888888888991969>9W9e9}999999999 ::.:O:]:u:z:::::::::::;6;G;L;T;l;z;;;;;;;;;;<<.> >%>5>:>J>O>_>d>>>>>>>2?B?i??? 00&0:0`0000 11%191U1{111112 2=2Y2j222t3W5v5555556F6W6r6666667'7N7{777778.8R8888889y9999W:p:::::[;t;;;;}>>>>>?R?r?????R0v00000@1V1v11144465N5{55636Z6667A7h788999.:U:k::::>;;4<[<~<<<<<=(=I====>9>[>>?E?z??? 0H0x000 1K11111 2/2Q2s22333U333334e4t445"5@5^5}5.6S6k66$778B8T8[888C9l9{99999::#:+:6:J:|::::;';4;A;N;g;w;;;;;;;<<"<8<`a>>>>>>??=?P?u?????010u0z00001E1u11112N2`2}22223?3S33333344U4e4u44445-566667b77778y888 99@9Y9k999999::@:W::::::n;;;;;4<}<<<<$=?=j=====>>1>^>>>>?$?F?_?y????0000j111P222S3q33449444444552666 7(7E778w8889k9:l::::%;A;>>.>>>N>l>|>>>>*?.?2?6?:?>?B?F?J?N?R?V?Z?^?b?f?j?n?r?v?z?~???????????? 005111I2c2q2222 33(363v3334#4L4k444444445Y55555 6@6J6a6|6666777H7U7m7777#868b8p888g99999:M:o::::;?;O;W;;P<==<>V>f>>>1????00'0W0001!2E2[2`2m2223t333334%4C4445535}555556'6?6S6a6666 7!777D7R7`7v777778c88888(919D9e9x99999(:c:z:::::: ;!;;;S;o;;;;RT>>>>>>> ?'?;?M?a?????@00P0000p1w1}11111*2A2Q2g22223-343:3P3i333334<4o444444455?5L5\5n55555666666666767L7c7x77777758<8B8X8k8889Q9k9999 ::;*;B;`;p;k>>>3?H?V?e?s?????P01d1~1112Y2223(3O333 44Y5}55555.6U66667$7B7U7s77788979k9}999::::;^;;;;;2>>?8?v??????`00011.1C1_1q111152G2[2t222 34333333 4I4444 5565S5w5555556*6677777 8$888889=9z99999@:S:`:p::::::&;G;;;;;; 0>Y>l>y>>>>>>>>> ?>?c?u????p"0c000001151P1f11112/2G22223-383F3Z3h333333 4%4I4c4s444444455556=666797_77778:8O8t8888889X9~99999:B:w::::::::;:;K;n;;;;;;<%<1<<