lib/win32ole/win32ole.jar in jruby-win32ole-0.8.0 vs lib/win32ole/win32ole.jar in jruby-win32ole-0.8.1

- old
+ new

@@ -1,21 +1,21 @@ PK -0]S= META-INF/PK -/]S==META-INF/MANIFEST.MFManifest-Version: 1.0 +qi= META-INF/PK +qi==META-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.8.1 Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) Class-Path: lib/jruby.jar lib/racob.jar PK -0]S=jruby-win32ole/PK -0]S=org/PK -0]S= +mi=jruby-win32ole/PK +mi=org/PK +mi= org/jruby/PK -0]S=org/jruby/ext/PK -0]S=org/jruby/ext/win32ole/PK -0]S= win32ole/PK -0]S=P|jruby-win32ole.rbrequire 'java' +mi=org/jruby/ext/PK +mi=org/jruby/ext/win32ole/PK +mi= win32ole/PK +mi=?£OOjruby-win32ole.rbrequire 'java' # Set location so the loader can find the native dll it needs arch = ENV_JAVA['sun.arch.data.model'] == '32' ? 'x86' : 'x64' java.lang.System.set_property 'racob.dll.path', File.dirname(__FILE__) + "/racob-#{arch}.dll" @@ -23,551 +23,152 @@ require 'racob.jar' require 'win32ole/win32ole' # <- java native impl of WIN32OLE require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE -java_import java.util.Calendar +java_import org.racob.com.Variant # Needed for static native initializer :( -java_import org.racob.com.Variant -java_import org.racob.com.Automation -java_import org.racob.com.ComFailException -java_import org.racob.com.ComThread -java_import org.racob.com.Dispatch -java_import org.racob.com.DispatchEvents -java_import org.racob.com.EnumVariant -java_import org.racob.com.FuncDesc -java_import org.racob.com.TypeInfo -java_import org.racob.com.TypeLib -java_import org.racob.com.VarDesc -java_import org.racob.com.VariantUtilities - java_import org.jruby.ext.win32ole.RubyWIN32OLE java_import org.jruby.ext.win32ole.RubyInvocationProxy - require 'win32ole/win32ole_error' require 'win32ole/win32ole_method' require 'win32ole/win32ole_variant' require 'win32ole/win32ole_variable' require 'win32ole/win32ole_event' require 'win32ole/win32ole_param' require 'win32ole/win32ole_type' require 'win32ole/win32ole_typelib' PK -0]S=??jruby-win32ole/version.rbmodule JRuby +qi=R??jruby-win32ole/version.rbmodule JRuby module WIN32OLE - VERSION = "0.8.0" + VERSION = "0.8.1" end end PK -0]S=S60org/jruby/ext/win32ole/RubyInvocationProxy.class1< +mi=S60org/jruby/ext/win32ole/RubyInvocationProxy.class1< % & ' ( )*+ ,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lorg/racob/com/Variant;)Lorg/racob/com/Variant;iI methodNameLjava/lang/String; variantArgs[Lorg/racob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxyorg/racob/com/InvocationProxy()V getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;!   T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -0]S=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 +mi=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1  <init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /*    H Y+,      PK -0]S=>'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLorg/racob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/racob/com/Dispatch;)V getDispatch()Lorg/racob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLorg/racob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLorg/racob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; +mi=_B(()org/jruby/ext/win32ole/RubyWIN32OLE.class1 +V 4 +4 + + + + + +4 + + + +4 + + +4 + + +4 + +4 +4  +A +A +A +4 +4 + + +4 + +4 + +4 + 4 4 + + + +  +1 + + +4 +4 +  +: + += +9 + + + + + + + + + + + + + +! +"# +A$%& +S) 4*+EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLorg/racob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/racob/com/Dispatch;)V getDispatch()Lorg/racob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLorg/racob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLorg/racob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; objectArgs dispatchIdIrequired initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke typesArraymethod_missing methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; rubyObject fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJorg/racob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lorg/racob/com/EnumVariant;org/racob/com/EnumVarianthasMoreElements()Z nextElement()Lorg/racob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lorg/racob/com/Dispatch;I)Ljava/lang/Object;callD(Lorg/racob/com/Dispatch;ILjava/lang/Object;)Lorg/racob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lorg/racob/com/Dispatch;Ljava/lang/String;)Lorg/racob/com/Variant;put?(Lorg/racob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lorg/racob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lorg/racob/com/Variant;H(Lorg/racob/com/Dispatch;II[Ljava/lang/Object;[I)Lorg/racob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lorg/racob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lorg/racob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lorg/racob/com/Variant; booleanValue +SourceFileRubyWIN32OLE.java _` ]^, -./ 0 123 45 67 8 9 :; <=> ?@ A BC DE FG HIJ KLorg/racob/com/Dispatch _M = NO P QR ST UV W X YZ WXjava/lang/ObjectY P Z[ D\ ]^ java/lang/Boolean _5 `a#org/jruby/ext/win32ole/RubyWIN32OLEb cd _jjava/util/Date java/lang/Numberjava/lang/Double ef ghjava/lang/Float iP jkjava/lang/String lmn op q5 kl rs tP uf vw xL yz{ |} ~  {{ O}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses _ [\org/jruby/RubyObjectorg/jruby/runtime/ThreadContext +getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lorg/racob/com/EnumVariant;org/racob/com/EnumVarianthasMoreElements()Z nextElement()Lorg/racob/com/Variant;org/jruby/runtime/Blockyield safeReleaseorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lorg/racob/com/Dispatch;I)Ljava/lang/Object;callD(Lorg/racob/com/Dispatch;ILjava/lang/Object;)Lorg/racob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String;getC(Lorg/racob/com/Dispatch;Ljava/lang/String;)Lorg/racob/com/Variant;put?(Lorg/racob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lorg/racob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lorg/racob/com/Variant;H(Lorg/racob/com/Dispatch;II[Ljava/lang/Object;[I)Lorg/racob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lorg/racob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lorg/racob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lorg/racob/com/Variant; booleanValue newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;org/racob/com/VariantgetType()S getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': +startsWith!4VWXYZ [\]^_`aR *+,*b$! %c  de fg hi_ja\ *+,*-b(* +c* de fg hi ]^kla/*b.c de]ma@ +*b4c de nopqrsa6+N*::,+- +W - b"9:>?@)A,B1Dc> tu6de6no6vw1fg(xypqz{aA- :*:,6+*+* bJKLNO.RcRAdeAnoA|}A~}A}91X*p qIam,2N*Y-*bX Z\c*deno~ pqIZaE*+,bac deno~pqIZ{a\ +*+,--bgc4 +de +no +|} +~} +}pqa|,,2N-*+--d,*+-, bl n$qc*,de,no,~ #pqIZmaG*!+ b +vxcdenopqac,N+*-" b +}c*deno}pq[sIaw,:*-#$+ bc4deno}t}pq[sI{a] *+,-bc4 de no |} ~} }pqa],2N*+-,b + c*deno~ pqIZa%*-%: +:*,&W+ bc>%de%no%%~XZa ;- :,6*:*': * (: + - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK -0]S= -** racob.jarPK -\S= META-INF/PK -\S=@META-INF/MANIFEST.MFPAj0 =RRT7PH 4% ˛X`KFk:i;3N=aL!ZH.(ڴ36k.)) +.WBZ<~tPY|Ą}3b]_G=%Qg57D %o;ƞi>lf=/w(O 宂"挿t -ڔe4Mx͡M?tأK;[,?ws ' ۙk l!)rPK -\S=]mMETA-INF/version.propertiesS)MQ0TO.Q0204P04226P5050*K-*ϳ534J*I,I-J,RKRm -uF'B@PK -WUS=org/PK -US= -org/racob/PK -\S=org/racob/activeX/PK -\S=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classŗ xW7d7@CIhUDB@o:LݝeBVЪ}>*ZbnRPVZZ_֪33;lfPɝιso> `E5fqn…,q/>O)/p؃{Yϰ}|E>o,<Y n|fX|كYaN#| =A܃nz<x̃ ֱ,| gxO0IO:s,fϰo,ƳjgAm۩cb@@8[(PPڰM)Wp[X4n7mVmQhtC 4vh7/?/]'7ѶʨW+e,SXX_"j'mQ9T¸~ƔZ@~5T$cv͵IQ6DHD!(!<,MjަcK9S]᎘؅) -^`]w_j"kJGLiYPAK)kcJ9܍P6S 0ͩIM<KЈ(dmQ51QЂZaNN OG9Tu}w -M]C`4lR(zvR= --8qVQrkc$Sm+txbN^$gjXIwkV+͔Nb?-ŪUUrF_EGZQ^Br"фH#@x]Y,i*UCXT/*U)Qfk>{.\.f -N9s|E3 R+6D.k9FBr~<NY}aJk tY /;&'C})v{ƍлV$lS,d/B ρy6!7+{xt-ϖ ͧ$ $`\vJ $?c'lw+T;0/H~%K -aE ~p ~,^yO] gd%A b {2|Я~FGr񊄿lAX ǫ,^c#Ayr_wȤ.:TG:(͝muZx[;6VewB=X]JCOLM_j{ha{2NﴂpX eOksod^k]Zi5ELjkLꢂHtR{<ѿRϰv [;uStK/lHKnn * iEC52OA]M`ݥq9.;K/ؾ=o2xI-P *XjM6I$BYV 0p5I4j1 -u-ԠZKPG f-c%ꈵԁ ˉn'VҤ5+(`0ie'љڛ i,4Uyަ \P^GqL\)z93ȢoXIq ,მlr -NzCCP1T!TBc0JLUx/)6!XFƑmNj oQA;yw/hU6WQrW~df3K(KX+u#/csLl5 ϲ Z$cT2QZTA2 >Ta%52٫A@S2p+z0*_$Kf֐ s0n)h%mƶ}]n` jCXDYm8$p\G&}{AfOۍ"éoM\6\R zؑ>Ά>)Uv4iƊgPrT8{/F[tڝ|-1}Uq>qcEkFggX&(p1.c@AFGcc՜B@>>2^"7K1!yPAU;4u t:ӢSG!ar2-: ?r}ĭm#g_g0Z99Waߺd^q'~jlhZԙH(1O1W+Ȧ_,Qy>iXWD=+[jHII[b8!焬%rJ GZd!Dlwt.NDJRkڅOa7KNbH1ΧHUcƼQo c$ tQi{ƈg ƾ7zՉ+{-k"s $3i,>NkWeO?tm3>ܨѹu5;0zd"hf|Ri)߰ĭR˥ټٰ^ET3>Y]0V MB*nVivV~]iVGN橴87躥#6'澻83aG8)U| o0R,b }U2%MtΦiϦZ~uS7ralle]V͵N:ں7XֵՈ!Luix8M;&,{LdzEq֖ɫAf'-%5^5^3fuѕ_N<. )Qn=xwBL[iK2mI-,4Rhs9|$v.|va&f;,Gͅ}%Z M%| -KL%yfPK -\S=4n2.-org/racob/activeX/ActiveXDispatchEvents.classn@M81iSZZT,PT((% $wlIVpC%x -1kV.aK37;c+бe+X5pWu\q!{KBfX/5<1}ڦEgISoXZc-v ņp6wvv&mu[/:dGC ˖b_w`]ٯ3#;Y1ri -.ÝNSuf{l3</d.{!ڄtvTV)<?f(%e$ Uޮ\sHpF3ȖPO S9LatfGReTCaXHqۻ2 tRe[XA"h!OAGNӜTk#)ѠؠMZ0@'"&HEY1IJw*} )y]'Ԩ9? +c,󑰲.`PsZŽg0b3dib.P*8+~A ǵ'djbxpO : լc'KXj(\PK -\S=<v.org/racob/activeX/ActiveXInvocationProxy.classWslrw,$8. !J)/$QH (Z6n Ikh`*ն֪ 7igtI:j:08~޽elMf߯y>(Fц:aF 'dL*DBV-\l2( -q21#Q„9?NϢQldB(T(%ҿRpF lqN+2f%D4-}XBmP=nHh2-c3Q},Ñ!;g);a%NSXr)㩮R=hMqkǞ&&/>tBһ2Ji4lv-3.%;b2{g7.*b섑ª;io>8PWiksg p=)W>{|_F 7QKD?Fc)#'@;a;YHM4ؖ񤑜 Q;Z|w3#gzt!kX_lKX*e~PGfה.%[ k,>XvA}IUYt~=q2xU2,Ƨ=itU`K[#Vѓ5eCcVV6h ͷ -Y?xAFU_6]k[oj`fX1S ݜ Nk!8lJTCyTFݞdp5yG+Kx\u ʖ-ƫ -c*~*~*J xC&xUGtHt&i`f =d .je`,Y[x[BMwpAE BLQ&zͶ23Iۙk'MwB-Mw}FcN"7T*%tyF1tklkp|o͝] PpABojWdB* hu- ܈RY{oj]mvǗxP -#kfL]"w[>oHG9<s9Y+%C*ŵ_*H7x%؋ٲzm6gSJ21zWOC$ muX!}F :YF]R- P^Ԏ⚋TVDZoQsaCјCm"q+>AHSxϷ-dk6%iEQc<h" _N)BO,2zvP"ǔ/ 5+8PSbJOf`Ցy45CsBn 9)d]% %3!}/߻/a,sh<X_ \6;Y!=Qc/яu=⊃#xI yQ<b9!cuN#3l,kSJ~xWǿ -.7@=w´at#x73x,Wv!>0e"q;œaeI)"Z}<#58 fV<N qiQ/c:ؿm1, 8AeHopp+РÏxґG"ܖk2 -3\ֿcpPK:ZB;%$%h|MD؍ECRƷd^^^"SXvwF,e^%Y"hD(hb4 $`yWw5>ok^qcՈF J0TR vw"-l_w=Z =.:tV&[xx˄}!,rş#3IR2(=(TS(OyPf+PNx܀HʑCdpSq/M PK -\S=org/racob/com/PK -\S=%eL /org/racob/com/ActiveXComponentFactoryTest.classV[oG6c`!h (B`p)=ػzޯ/}C+U**}VET~-f׉M'ڙ9s.wΙo'A HA,Q?ߦ aDE<Qw\*PqR. -b#^Sqx=.KodP1D'&Ȫ0T\Rа0 gͧbVF(HN9J"#VZϝmC+B5 -G,{2jik<iǘcV`tcs)Qt,w8K9(İYtt3-ΠGm>Gs96aۥ#2.E1,BHr=Ъ6I6Ij5[l{Xkү`ISq2u5bD -Ifnn\CJœ6=LSPÜ2CRH%E23Mi"Vv -F^(^K" EZ n3*'‹ؤ"M -Z,;W,TL`[좱QN ](PL'fd_)m6(07Cx ox'wWQ,H쩢fLh&YhM4=g =3%d>UU}L/jcii/rOYajY=cnrKRYMUL[\F3-ּFR?|Y.]Z0^S98V:} -1RsQb.?I*j=;NVw4( E&dW=%CXjdbqMT;es_%<rU]Y(N#vU5bma&C:̻1r)qDBVO/wմ<č/(tqaXS{Bs#O<HDInZ? 5Uj<UKbQNr\nK4r=JlJAm抎-c=90qwB<*߂\524$,\y_H]oZA]\E9*[n@I6 -ϐnp^0ӗ˨ԏtG2ԫz"? xMcikt҂hGnd>4񹂫6X*jd֢wb+c;Hp õT`6p5c09!>;TTPT XGc&龁f3-\+Wv"=\`J+ j-AuNJw/PC`O`VzYD) ֝J2~Hduz {^hʱ[޻hUvo/<kESdUW&VsWފ5̤oA[Y.eЮ;k~9}#7/jh ?^c|7X9ޖxo쎷;ck+Wn#~~b3GXc,Z{1_ߡp!pyC :O)q|4@_c8qߡH4L&׷K SMWq7d$0E+>-b}m.mdrqg$hī(JFډ?txCò!8Vq toCPK -\S=8n_org/racob/com/Automation.classuOJ@}ӤM=7o ^+<=I%ٕu#Y~%Nb 87;oޛ~}|$A481!F!քn!ʹQM+y$vޑτ̺R8Y\7ښ9aXYY>L焋i/RTҔb6|Ǿ7YNae{c}ل>!ߪ =|[=Pgx܉{֭cƨ#0~ h!3a>PK -\S=<% org/racob/com/ComException.class]OPǟuekd(c -Ao7iBD,&wtuZuȍGB/~(;%1M?.(KMPgVx:Akd2JuFhq:!#-o]Lud]k;azuF~6\ ҕ#eoauzA vVw -\>JqM?he vCTw[<Wi ӷW1&]hn+Ɏ m':-Cąr922[&݁Ƌ&;rZDӧrc4E#gy*d<1*92=B?e<,tr^1jĸ iad3 oHR4#R."GE4KE0' CJ(J#Ay SOi.$]8d@ ԍ `f ]c.<ǮS_g0bFmH:1!#;.{P|k|?"ʥXD Bgedi]_E*|F (6˝(Ƽ"dPmmhuzĊc?ey<[~™"2,#-JguygCJXSJJhY}'KRQF3_ǚ'6HTN+Ll+Jl%nPK -\S=..$org/racob/com/ComFailException.classoPƿ -Pݜ9 &i$tCWK@Mig[tOM|wc?d6}(1$==={ʏ?_x2pee.K@`#t'v:vL@02hbK[=~8)PzxNPZl -S;xcN]l}&9M* C?iSF_ԲO"+΃l'pMoff]6v3R >o5#Q -e`imn'GO[٧@h+vh@Źjkrdj~9G%lXvY,M/XRDES:J1ez+Yc/2iYfbm%U(:<̠H28fl-ž!T^UQ̓8\F]9NQQF7"vS7,ѩێRUc(ý%鸙ҹ(#vVdΪtnΏ:C[RORK4WAR0w|K^:ߒ=PK -\S=#+yorg/racob/com/ComThread.class}TmSU~.yMRZPjD@,մ( ho7 .l괣:34Q,I=L`'aǑ5& LX#17d>d ܎Cb>Le2~j3+q7ʢ5X7p_ _ĢT}k\B %`lVN[WQ3YL{E^j(fscW)JjlM ,ެXwkUL[T5°eWD_t+-R%od(ƯoM8ιE*&fDWŝ%{ DRq+VRUEmlUCJ`ci̹b9hB<ּu=:lJ-$`\"d -;6VM\xoH|^HJk|Cpr69߳5\<͔3#kafD[(&"J6$> EkQ.G+R{¶U6%v(?6`KlkjxF^OV`Ofqj]aj7uI&sTZS٣;& -J;8L @!YDJ )1-Õ,i[-<l e]]K 0LsCx ?7Fm/ FtDLjK)\z].j2cΣZCP]{a8)}CGͧ|ZG'I!56|Q#D:DC#LKC}Ƚ>~齦tPo)#X Euą $Ni_'3CO :ut?KH”Gor'qdtp& ¾8 -ti̻TdPh ÷M%f;A);MI3;pFG.Ғ#эC??b?ѲL qw"!b0b\xDhdFWPkr}p܃04%4i0WPK -\S=ך[Pworg/racob/com/Currency.classuSRQ=7ې0,$F!P0U`J| -L&.~C*MJ*?ʲ0!}9}?LI qLD%c4WuPpSn)N *&:pWߓ1y)R0%6VE$JnVCo~Y[l޶ʷ" p2se K,TY&E]f;<fl2 mux^l8*#KC<"au !iaI`2EjYA-QT#mÔfInpvmWE2WE^ry<WUnn!dW1dv.U1 0tmK^fXUqU!CmYenw ao0>U, !n[;ںsr4F]#̪cyXP(ڇmߗlߠwW**1^|ə|sS"&zAJi 1(T7hӵw| ӗ/яDV!VC -JwX}C P!Mj&y8a<{Nؒcˑi |)c8C9N{| ʑ=v"PGS5G<$u'G -7g=< ,?b&__<IR*3u(ut0n6[Q"yhi?/D?hf:b5:?#FPlse J]Zw=D[I8AOEӴ!oETS2@jF!z5ǼI}/no4qD8T ؖzJ -6ɦeDwPK -\S=7X!org/racob/com/DateUtilities.class}TMsU=/I'C$!!g(*H$p`%b|iNwظqa$%U_OqEq^O&z}{νQ6>(.1Fwc|2R2ӧfjc~(ຉ/EK6#׃( Jx3^- -ilƞ $0hAWT3NZ"UNmUj@{MGTvtVlVVF2&׃0 Wm2F1B0r+P@_2dnȆaBU5> 60YJcU 9 $O Қ(E1L 2p⌹Z`7ltp?G82k0T HS:#OFQQ/ ]]M&S:n;86,pE{|@y_ 8+݈ZF 1UWRN^fo24 SW-ˬ)ΦNOǏ54~_qS|v06O5Xv!~sI1;Nr;8_Ez<н=vaz2LL!0~$0c[{Fg!?mMULvิO//as7bE<qfșd!b{^= -,}IoC|j/po?v0&f.S,@\+fg/ir&:XYQyR 'I-jO1?4nSa_PK -\S=%%org/racob/com/DateUtilitiesTest.classUmSF~ RL 2& mp!NH!%˜:WaK:~N??5=ټ3>? aFc3>jw5|f@Ì{JΪs_()<5<2c,XT4,iXf~zn0i'7"(f]O+yxLxVxyڷg0~yA杂8i-+j9Q R }6C,wS'}I(Eɹ$ai]Q UѵvjHz0R,yWZzzEWS\kĒj8W݌ob# hxb"&F30 2JUn(|m-TkSeb Hof"u &^;˂Ty&6M: e_$M[eye{0qKnY{Xu -ΐ{MT{ :Lg'Gyf0gr,HoWiɶI&쳇->q8IeU-~2o  |I^R#ON%ϩZ' ux=M5<53L ; -No]<'p@.W(^5VUGۙLFEJ"hv=n_^P"uWQ9$ɮ}Ёh1j6$N·"6љ:@$c~dj(@8F6=~cI@o\{SVcQ ʣw,@DDn&1unat|L(:ުFq!R*!}N'6DZ%F*6}#&ۤ,}rp7nҵ:r$bLߧ0d(PK -\S=+#t+org/racob/com/DeadlockTest$TestThread.classT[WUN2C:@ 7-N І@jBz0$5˳s]Xv-}\.;R˕}콿}? 8p 5MX&74y|pBBcaQ޳~~ɒe +r!(x s7DVtn-SZ8E*kPsVoIe:2]rjQYWAA{$2pVvn] ^P(ɜvZUAƓ̒Ӂ,_I/痞j~3FШ4 -tCYz,kdSKO3d·[-huY@yԢ#ĤmLx oHb v6Tplb Cׯ&mPlbƻku~M$۟ :M<1 d(zW7'D8Wk2,mjiSLm{&vlH(?<Nɉm1ebS>:ed&^7Cvc9TVTEE>:Wv1z&˅[TkٙKN@!ꡪ)P[\?}iB&SdݥF^'b[mYaġ%[qc|V $Kei@pON!633B c8M:ć8˛p=8~L N)q:89q:|^̿Pֶ1;gKYFgli6:?xn'aS0v4C%zWm{$( t_DXt/EbD 5:1's -9nDu ] ˘lWSlW?uL횾m4O15`!֕&9ohś'9?Knbd}Oƃɧ} {ȴn"[ӝR4/yoPK -\S=` org/racob/com/DeadlockTest.class}T]WE~&eCMMkEC - -l0jR<,lvx^y_ =?lvϙyߙyyޙ'(&1E -jHQ(X"E7ݔ'nE1>3-E,m!iW%ؚ5V ϯ^mp y'UU.0Zplm[چM6[춀Rp꜍Ll7w ZInm)ǽI7yB{yW9̯0 ˩Ȥ.}prnlF+dSo f]}T3Z4U1={؋$imI0[ّԄF*78R!)3ȡkFܮQKz|w/ɍV|vI4\'vkƚ)%!1d1+xQ`Z^WYư.@) lR>\w)r۴{B#C[#4tXNA i_WiZ5Ǯ{1TP./OPBQ&{\) -\W}u-ߨ^@t <pL캬fzK.)+4ZMfK/2^=5Jg^^rwSӁP1;ɧN 1F8 -AJ%ܠj QZ58Ћufz`1r-SBD=}sְ̀8 %zxW$ ['K=xN ʙ;Oo#95KAĽ)|Q]4eW Jx^MSʳ1=ԧP#9`U`aZýO=Ƚ#ĒKē zAX2IǘK5da Mn3W yo -pw%0LsxE+zd.w9'*O ^^g={Nu8; o k!c/ğXyNA4WLzPK -\S=$zForg/racob/com/Dispatch.class՚y`՝O3:,(0V.!nh8A4cb&L-"KFm=&BY,ch m] -Biw{v](ldœ8ѓ(=Hu:; -4m|/3ax9BCh</R;?4B ,?C<Gۿ/o D?_W5-~C9~ZJ5ZN?  !а~SOޝ}}v]۽u}? PՓj8f5 E Zq$:H>ngU`u6D[!Ji{6ZZl!]LOh*:H[:.ɨ%}|:;@M;7gu}n7u۴ --Yns@DF_𒼚Z̍.Pi;Wbێn.HgUAk'B9Ym.-߯h1T3rq$]@EtaL-&GPթkWk<5U}E5{:I'Zl6FU@GPӰVN>;jmWcLkbz( 4&s=5 8MklQN\$ք*ѕc1#0ո]2We˥ *אj^ɠȯ i"aIG#dbhkV-Lh)8mqD۔EKHDn7kŮ\vD"3wjqCq3kIi Lͨø08~q.Sԉl$v<qm} tu;ˍt1&lp_t -UnKGaء̟oЁ@0݇•N)Nk6;v"뾲lŗ)9͠I}'ze*/KG}$CL xpsg+^֎O8">%Eo a9ovoH & y< -_"#\{+eB۝ko`ƋS3Eꪙ"{xي il O|4ioCuY3bK ;=@gڄKa1CٶΙ(7=6\jB<')zHe VO5<>J;/m&O*oF"Ί %qV8}q9>'C? ~ܓĖ?NppF7刌͎Eiv83[\G`c !ˍ4}WexZQ`\vEd?H - J)D& -IjcKuV=$R915I{ŲL,٘6:V+1Sccj^ՊZ"m$_ҩXoy-VW`-"A.w). - hPA˱!SH X`󬯨5[-FHgX1LgSBlT*0 IART)<- -jZw/=iqX{>aw> -z -\ :pGEŤ@1GyU.$fwgs8|5S5e,;er bvR**GIpiJTΰwxMb:.[Z}B 9~@ϛ6#9B!ˠ,[M?+}6l:~jXG?#tJY ?/H,غ~H;9  #ql)zoXFn>\),i3$Z9MP5{(@nzBuG!(rK_(q߉Ce(GM8X/a @x>/`@OrIqļsUR.F h#:h|&R(Bm0'Ss܎0w"]s`~!کF9`d2\% W4a &[#;`'760{jVdZgnmaM]T=zjp<b RV.q$7:ȍFnZo]:%QY ?2DLRX2 q% 8)30 Fڿ\.@Mƣu]#[hxŤWCu :\Z܍A6*ǠXh#HD. <(LEͰ[H-=Z)+5rXYm #ծ8`PyU@~+T"T3BE*ʠsNP9E$ 3B-p.m.l9bks@<[CcJ〒PGtLMHυ 1IGIfUeVLep~ivBa8cP37,#tt\!&zQ] -GjAkoij>]QtfeMjB  >+lSqYA#x$* -f'˸2qﴧOw}UbJ^ pkxcan1E -o"rDE䈊!ՌȁY4WZ}`/ ðރ LV -ZYkjf㳣hT]^xE7ګ#qϲ -?VgnRʘfh)Op=|6?cp3h Ġ>MR2(-s"i ub ίOr]@^ -"'PeҮ%TJ#W&1Oq+Q/U<`Gd'PurWhڧ&3p|."~_d_%cX/b!&b!hX3q-)Zt#`0pBHQSiH-E ‘hFMg\M`(tB#BE7%1.1.1idaeyb`k*D!S7(;r@C wLk7c-ob0~vq2?XT8Ї.觌!ݬpK%\.t  ]….Bw> -̭Q0z=Yw N(8X1 -Fn^!s1 -F6 Tts1 -FMj% -'w8F[1܀ rQ0Z6 -ڐnG;\t2Q.(F!F#.Q@<(xcN; -ڐpLEuQQ .Qpa3>Z?g1KIJ524~e]MI&"]_{K٤^AWQ5)clsxRT0Œ0JsLҞҚ ՋL^dBJ az/~:ȹF3ڐY:K_kJx,rpkAeCjx(C+jq#[+?G( _ </5''mCA=c3,=2GX "Qn8Ɓ2|0x45q+n@5 sd EH\LCʦ )EP.Sr%x+'υVя>P'H@K"msK@m??}nIh *CPt'4HwD"Z Q!~IO)-#%6"c@z|D7xHHmXCgOJK%xԆsK<i ́dbj~Kߐ_|SX!׽ j qQ)Y19$%q 斤l[VnvZ#%Q)J+A:dsQ)U(;ZkQ5EHå!$f!p>t[g(Y-#ddՆB, Αf<a-#tVbNB4&%c~jӍ׿!k <#dնwnem);~Sw -N)"cO n`sb &~郦hDh6*Z_!ɏG]hS[Z.4O®se$xE˖dϣ ~bZ!k -f6jc!8Wz(|S!bH??PK -\S=g{ "org/racob/com/DispatchEvents.classVkSU~6 p!4X*T*P(*HMr twåV:8ՙӆZf|4@q89?8~X&Ƥ)!]m\QCW$k~`Vu=żP`f, ->~,aY`Ҋ[~¤/T>P1779k[; l-e%c)+0^MeW`'u'ĺ f<厜]dLXiH&&}CKL cQu^kp66:NcY; rd^77#>2\=3ں1l+O/3\_[TܝOIļ6̠qRAJp'# S=DWT`|DX#:ca8q OXV:,sU> 9yY˺qNpEX2" -2*֠3WF ] Cs<;.ul V-;$[ʡ,Ln3>1*^ 4-7dCf0!4tN g4c䳄N0 +W-#bT96#@u2Up.e9xG7Oe{*VAw&y22EGe7,FPt`剢Q%hWq3-=wd -#<u' |49fPZ&&-!!EWLll{@I9)v ^C]@F}N蟦V^<O vT鋲=I‹ ~/ImR:QB jo?WU-I)ľ2D,s@E-v#{<B}}(K{}U -/!+| 5!H#ɑ 6=BpK=Lgh+];={(SU-㺀zZ)ww(w1i ->Rj>2>G_ɗ2CH9-`R -IUt/2S`PW\?# ]YTI>NQv\yk -囧(;M 0SÇ71*;@HohFFel&3h dRс HRra-}oPK -\S=L4M4 &org/racob/com/DispatchIdentifier.classWwG`0j5 Lz-ckfdBd!@,{yM/y9y'H5R ?cYs%qNs,ܽ3{gvg1}Ǻه^1gl' -Ly~;-*Z\fY#3cF)@#~ 8$̮뺞 -/I5Ζ7B1b!Wu8Lȿl؂\-ufG7؏Ӳl?g+aӰp*259W~hy5GH^ٴo eY5,ӭ#6o-l,#~(Kԯf -0]a.z*Dv56(c1.g_%c{2\ң9Zni#i?D;^,ԺkncI -ruCYCaع(;uP"{PMGmrkLF%e=_3;rLV9O~ HuN|։_~FzBCPg:d oTU H.jyg%]#iUԛ<8ux=6?ኹ>٦4i -kQ?`[R$K$\<8F:g~5ÎN#mn<gGCDmWl RFloTlˍlD1WAζWJ(xf<yOCΞ>:Џ;48[679FB;1o4" tЉs2mg ʥ{ g=Vl[*jBdS|$.9V燫BebP8l/k bV:W*V}QeZ(:SvO/MᩕSabXmɿ&d=l . /"^ /ˈ+Wīkă@xx xf[ۈowww &"CG>@|>D|>B|>F|>A|>El&!S|a؇{8cgq|>~ |#>_ .S2qD\%k3eGLj ~~ig爟_ ~~eW׈_o]=ϷًOC?0Jy?bJbPK -\S=L"g)org/racob/com/DispatchNullProgramId.classS[OA-ݥ,"ܺ@Q.Š bL5!t;ݝfwjb4#)3KEmf\}g̗o?P1o܋\qE,Xb㦅U k 2Cvq!a"# -k">ീ<Ŋypci3e°PQqËjBL\{ ؏U#n}aXD_r2Fd55e PVrb*wv@4x0nB'o|RE_7S<CZ/J#x5S ƺbö>ns8ZXikWDGQB4fÕ-SbXXwF76.YO<61T`"l7Imw{?L,3&#ПatHմ0<Iaʪ&9L*o04(#] VXAYz;0_a<ӹg 4 iͧ' -Fan`Y'd^!p*`-:}A)~x* Tj[$Ę!>S$e]%(s%/fP.֩Ż(7ImԏS>#M ڕ.|>Rl25W0e EPK -\S=+vK!org/racob/com/DispatchProxy.class}R[OA]X ([xn[ /&<nvL ?xf[(>̜3ws?PC̓ -X+><<GCk=ck=q3 Jɰ4ޯjv5Ru= M{X^*ɞGteauV߾{ʰ8Ϩo)(gNuyswEHj4JU Z& -ZPG̺J8p(x"9xqKPD76>_R5ev5CJ;~Mb4F~l4|vN͓HdGxFr:k!,<F.,#'IP3t4!!|1K?meE 30.q,z&6ԧ+5*5E95[}覽B[tVPK -\S=&t org/racob/com/DispatchTest.classuON1]\Wo$6 ӆ {6RtC6$f23Lϯkr4KHo[B|BHQ:Yr^i7Ռ*9Hg^pRZ$TŽ_Wӱ}Px)`BoY Z' ǿaw!0 `x PcLY fbn]b1,Ў)_Fí"mEPK -\S=:[,)*-org/racob/com/DispatchValidDispatchTest.classRA !B0A0A  x(*X^N6KMm&^kT>e9 *=;tӻ~ `/BC"n1B/n)4!(H$einKs'F -VXUTX3mS<bh'2 3i6v+ŬE+s+]Sk~Q0 5NVӝiK\ ɾQIq:v,skW->FIM(&CkZ+-\<&*x}baje"5\D%\a9W7MY_Tc@CPۜ‰ - muJaz(XWxOߨVpR/YW*6%Ͷx`GsI2мp S-T7(,EjNyYec=W6xِw㭚b˽w=?S3EOw꧲0_NO&-/R/ ;0,bRfuWC*?A.1mBȠ̲OP L6Ai42g!oQŰg=F0J#͟)kߛYW!p1*BsUtVVu[;mF(,@L)x<2%ƽ +*#vƴtn"Nz"Mz)е8e&M$ y(4PEI$ HaMy.fLK?PK -\S=a5!org/racob/com/Documentation.classQn@}8q )IC P'$BT¡(J\9^:~PG!fmٙ޼`UDOTU -m ,<g0C> )?né{G~8}PH/)f"Ҟ c5f` #? o;r|ubEmNz<Wu -?ch d4u#ɱɹۗb.˜Ǿ iTu"x7wYп]$t"'voe6PQR eXui|*mz2^DMRVS,'ә*u.`4o`jz 4_ӭ C3@LEB*m)%BΔ3Йrәc&n\:U޹A!vҐaneN&y;[%3ɍLJ~InꮝPK -\S=ZZhorg/racob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4K!?_|D шQs:`m9ޞ}|n805]q NMK~2!xc Odxs2%,0rݨ1 N)h]Lv%]S 3id)v޴LwALfSrkp=gZfR4WZL;9[M5'vfݪWΩmZ0IIvچebX. Zg [ơ1 %Sm -;[wamI dB#*ҨG{ځ.kV)g3o,xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϓڴu}yP7<?N`{3D˭j\̥:[@$%EEKe?\2]5} +{#0AEq  -Gh(F Qccjcρ{H -cph YFjowOH*B'8;AS!_ -_R`ʛ?L#a4L> 6#|6a6n'~B>Ew,Jsf@-QQMe{6x) % ?ARs{JyAK9j6-}TNPK -\S=қ%y org/racob/com/FuncDesc.class}T[sV^"_8!&\mbH ز 0(Lm)#iԇv?l+췻9ߑ-x) 42{d^44ɴȴɼJ xj.U.7"5 -d[װܶQ<`aVZ$S<,^VRYeY /[x\QLJVƞZzMlJ.NRKmNkyT*rO9X[ +7Nr;5,o +TSKT]uU5QqIIL^%Z 5(5eoLf{k:0 ѵN~D#=hAp7c;v7I>Jtq?Q]=\DL+=hg:q ~ku ->unBQ -mb}Ϋ]ˬӤNRkNﻃ}UVb:Wtc2(cmxmt"*, LVѠs&WOefR>i~Wtcuԝ.87Qlqb~KJdlC.l -P{'"o?Pڱ3"ڰ%d՟_~9Ë/%Y&e8ˈV|xU>x݇!7[op;F_$غwd+j^|RW|>B/S>NFWFWG .fc#\| 1Ǐ )f#HFCiRl5x8 l&v  `0F&0ƌ21F3G&GOq,_/8۴iE֌0.`' 7C߅AV(i(9$? %Bɩ q( R9{Jw7#i-#Gb;,ϳWnH#`#FM%y" jlgN"Ttd=PK -\S=org/racob/com/IUnknown.classTmWE~& l Vm1IԊKh -HniX즛 [59;%㇝{>e<N5<X4>#[ѱ5y˺=&_D/5|cYGO)ŭ0k;jؕ{k_Mp=~𣆟cڞpF3[LFɥN)8XdZK=a`L1}ЪS }RNF"M, kpM)ʐwhV"mǶҦP>}ê`ʲeEXTbGX¨.jVDZLےF*Ha892NeTsM؀+J(40f=#(izNڮTHOm[Fs/_V=TݼX7Ee$ ۱ )Yx74a 1~sEJCmOnjZjxQ!#cX 78J8`s808xOe]>2,xNEEVq%/0y2/nD<pvgk!b -Ӝ3i%JnÍNjJQaQZ{H:|u]Cv+6h7hTQ. f; 5%r {NC0؁RA"Mf],\aZEհ*EqŪ掗fd̜k(קǢIEL 9f[$-"D;7yv#PGrU?Ň cđJ@i -4&; @L * /I&%o/1c_È`0[M쨪&J?UڭS-醛i퓫Lgu |SA¿?K[T_q z=Cc$!VàTpQ}B)A*i, c1xd#:FdK-؃tbtwUhbc3L0;"gzݬAt:F?I=PK -\S=<. #org/racob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg\L-d-w#w6)8[ےEk2&CE,pJױ rS *,vz&07뗒mJ/>k#[,>-6 !5ႆhe:%aNmr'PP#<fha""ňN"ЃN]c\&5LaZS<S/hC?miyU2e䠙uױr` Kl[{b\J7LSfhO5YwTV'yRrᆮ*2w?a2\Q[s'>UM8HEY_l*JѴ&dAs1h2Cya_A !|f%y^zYȖ+I$}hCN(t]^/d%Ag>7%~cҪDA1\Bwr8!QxuNC\?k#QG(Jsj};PwpfZOtA?!泻h I/A5!TEr8!HZXLk0*FޮZخDgݯ2nPK -\S=ʼn8 .org/racob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#@!!tf:&=COOBnbKf@I)*׮XErmuϘMe{޹⦅~Q8_ݸ \ C^\F-F«aDp%B&!c - -Q=qL`(&L*0CH`Ia~!dPz;e( -(5 uI]ǰ\zLw13U=vB35ǐ2w I8ZkInk`װǾ1frmA\ӦSR-cXEr + lH_ݜcykzB#tWw'"k -RRPOÝ9u#g bكĄ/^U6M=mN*-cX"gŠe;=9W=:}ZZ_#XȀYRjݮ]`k|E )"*]-1٫eb{2bg显tk9 ː9ml'Ep@t70C‹w=gI-W=SzRl75ouH:m\T}WլFތ-܊m>;(KLlT?Ion 4f"c uf$صUUֲJW)>eqI1P,e3@`piϠxa:vZV4T%۳'ͫe"ƴxFeRjuuKwԘؤg=j3.E곪Tcvp :]<!53D{-L&i1϶U<V:_>, E/Z=Mkl>Kd'{2o--~6/s+4,+Ϗk8Ė$=ry -GJd5JEWe/6V.c~tuF^xZt#vбzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=RZ9l+h@X;RK9|Es4>6i`$JѠYRGץ9lE*Xk<y>Y}mX }Tv"w5V/9?s5 5'NJ`}hH`?q|s6vgۊiD\B'fp,>A?nc_p=MWWǏw$td4!ja͘$+SD=lq6w]xDIn~r z?y@owL0G*s ^e˔˧FpPB'k):D_c4*OPb_8"Юt3 tsp (87S<GAJSBA~bPK -\S=+R#org/racob/com/JacobObjectTest.class}RQOA^9X-JO0&!M|ܻ.uےM(X03;|3skcKSX U9,qj5qxXxhaBFRd-j OFm!yʞ -x4Kg^ ê@ng"'" A_했"X@Pe,yϹf,<rPGaܐGX2D0vɤ`-<qM O<6C)ns-4V;CuY9ѢKT}J[RD*=qDfت{s7.G BAN[r~)j 7`+ - 7GzE{r7f~Yz /)<G:Q&dG4%br//OP@v -B#T9h?PK -\S=@|s !org/racob/com/LibraryLoader.classWwg~%3 LJ\7BD P&HhU'C2dw&K/V[[Q.K{N_G?r<i}ޙ مxrv/>z}=(F!Fd_Rra ,8`d*(<R,TzT1Gq__W ߌ"oxX*="Jc*q'T<! Ox* - OgY -N -50?9HLݵ8b53===}yMY5+9DJm}zcûMnޯe}my;­m'`mSߘʘ2'ed& ג1X9 ǝv3՝r k5 H.SpW"Ѭɧn LϚYM AwqV.Dz3sNMC)s$,VҟS}Nf$3nz1gx3 [LchvGV{Fj6i>|OHӦ5kQ?[ZۖT]ngҲ[z-okppSL/:c4SqiTyK1r3@% ?5SNUxMÏpiix57\3cxs\@L&.'~ ?Y ?/] cs4 -  oӒZƏ<3/-%~);W".TP$i8pz5-(U2]rrsy;.OrB32_ h,\HJk2ѬG;TWv -TQ#fJ"w54<k-;⒇#"9@%H9h6 e"Dw-e|[WLA^@rL}M"s/1W^eu3F.Pۜ̚J9hF:ȓ3]>=>Viտ+9xn^&eo 5؞aٹj89f]JǞxV^,ٳs8Z6וaѶ|[ _mvߴUCy##9 9H9?vx0~*RƧ!H]x);7so9ֲsϟ-;o!g>&ສE_d$ދ/؁\yϔC'9a1B_B8QH7JH{ˈ -B#756uC8IuEIv~+h.cmtj$;`{[u4tGE,/F&_G"6"9 5icӒ>EĨ7Xd6k2Z}We]E~eae#|>̶<Bc؀DZ'AV<=Eg4q-{"f^sx3ܽο7pK8#wU% -ky o6#Q{=PS.)(b!N2vܐPlN 3.!7 \IQJ׉ڏQ^_RClW0Iۿ*t. XCZ`%hT/w\ZF\!?}_ajoؒ3q7y]SX9׮9&: -ЉĮW%5r7)m O,؟ r_ZY ,\!|8z븐e?PK -\S=Bx%org/racob/com/LibraryLoaderTest.classU][D~$ va t(lv`SBWt}w>=Ma-<^9sΙ=ٿih$nhƄ)N;j3bVg:>7|N]~kXP/u,X2Ѕe <WdEC 4|rh97Zb`]_e!7x#Mt9Uf2 ہKm,<^!Fs W#ZSu#D%!C7}P]=R˞E( Zg9{?C+*tヤG.#% -l*n!#!EvDrѯ0bKG<p[}g(LM|A U1\9T.ŮG =2}RXoݞ^rjkca4lOړNV<o'D7 *V?VYߊ}Ԋ#Z/ܨj)+V/NA_:Lp i"U 26DsK 0mD],nHzE J]!媳IP &z߸A~jQߧfi§'r=JkKѩVǤdm1 . -GA]E͓;kH`ɣ=աu:KXMuAʖfUŎRT9a"*}2)E=F@*EK,|G̩< T}ka @2`jDI)O+kWiE%Qv` !>a1}h՝;Dd/1Za~4n;y0C4uWmY˛5g;j|m!*_"gНȒ?F/-^Q8D.MޠM#z0Afb+2@n{$-#dr LQ(H mS*Yb<eS; -YZ5|Su;:>!0V,Db>k 5nA]w<'oPK -\S=Ldorg/racob/com/MainSTA.classm -@gML4_+ ;0`"XEhΟ,|JD]v>f`@6J6k(cyvgE0'jʾDz)=B_ -i+"T72^,PgFS/E0%6 _ -dd۬;/@{]fRD i}PK -\S=5h.porg/racob/com/Parameter.classuR]OA=eiPȇ`;(+UQECBBeZ2_&nL|/26(Їs3<`˨`CM<RŖ' v(N8P e8x`ɐ2qP>&2 -Őa"qvpLd޲ڱ>0^yGsQ<cяz~?:""LhW e_!vරUtDveO{ANWC=J졝C3wSI H.;iWwizO8KS$RHVb\JRhwh_]z7A4T~7nԃIU<L)VPW0Y ]'W0~$ԧ>B]]-u*Ygδj6 =o),SؼapxIQb -7%,(!شLjd5 I*)X훴&ߟo")GLwʓ;媠;֝rNy+NsueTս Ep^21^1<yH;)G^1Wf 5#\ȓ2<yHnN1\̓u=uPK -\S=OR[org/racob/com/Pointer.classmn0?7icc [DA DܹRgJ,{nv@\< UHϟ>OOL {8`=Ju4Lǂa/xOG"{G )[4ɐgKgr$x8oRȞ2E:IN~1gx+g8sjcy|_\Oz|<c 0 ͳXJ}s`~]40a/Ctv[/Cs-UgP::8!"x2\-ͰJ[O/`ZuB?P;nJYEߪb ʚ kf$K֩ӮkT.|kt ;c}lDȒd6V~\-5Z5hUT~zJ`_E+ PK -\S=zM(org/racob/com/PointerWeakReference.class[KQ'm2M`-at<lOZ+}h*ݰ ̜̞קgș ƣŸ L20-`\)k/*+*.v$Yu=&<.<uF5qU'ϡ&54w$^W'$+m5/+JOeڑ]wÍ3.0۝{ *4? ^kQJ{T#Ygy(}p5X7B32 ZH ) XߢKOAhi$!#o0yg!X8Q(s] x qN2veW؏5aN8t S2:Wh!Gnw ` ur2PK -\S=ϦF|qorg/racob/com/ROT$1.classmKO@HPvccѭD&&C1u&ߥ5.(me&{>bBkX``Ħ-BK*ra+"OJWLǢdZ)t|ZWpWW?9w3%a2yǏ4;>Ws/"[~7xnDr'=ţ8 h[ z:\q%TqF/P*FD#=4m6PfdBg3,ϸ)ýf&M?Ѣ(^n4J^2RjH}XcЩ1|<̽L c.!7 gXI]TӳTӾ@"vXPK -\S=org/racob/com/ROT$2.classRJ@=WXg.\ #.a48DK7 - -~%Ds+md`aA (XX̐)I%=z!uۂ!_J7-a2Q L]cC0>!m:nqkg]EdI_\[\[\]\5q)P"eG 4D^Z>WJߩ= -4C|ֺ^@pq&R9uOhF6)=:'"궅, ߲0q!#I-a|-{ѓCyioYiHo<=%l&1B6I ' -"V67'$G~"LR"20Ә,bt([PK -\S="m* org/racob/com/ROT.classW xTL< 5Hd *E$d2y<27 j.jWb+$Lk醭fbw}_4ΒL2ڒw=sr<CXfa+^6[=(kTA>k]wNV^.1^AX7ͅx *>w/N8)x&x.4Ã{qƒN|X[#>U>!w?%(xA|Ha >i0aXG=򴄊⸊<X#Q5|B{X'=8Oih *`3{y|Aţ*؈N V2B1[Bac `m{c~;`ja#wLU'v4u)]@,`n#B{vgSuUk[l+3jusm9䵷vp3?`1JOC]!=Uv7@-ԣ`=K͸9٥Ǝp_>"lV[ f46PVlwN"+o8Xy^+*<>f,ieso)!PX3eɜ?`ytx0ǜN -\V)yэd2bým1#G/$Z* -Mg7C!b+(있3F/Ȏ`$mXiLN.َI.gk!k[Qb0'ePEaX<v:nʙ|g6z_)p^Z%e9V*#?j m1 -s0Wx> -%0wZ"˳F{tt`]حx-xmq+m: -n:o -VR-}|V'?(Lo wu|W, ?c:~(X\;N:~&|zJ|]UB/pW}hц -JfJotт&{Ѥ: 7 BјA>>RgDzk| #VGYc s8őS_7?d5 -l (BF4jҎÁCWb n#U0oJ Wf;I5O<Î٪Ycpu<\4h|Gdb01BQ.tgJg~R㸽w8+YdE][`D"f격uV>*a#Kgbvڬⲩ-l"Ul3 ̼)I٦I@ }&(r6,Bca1S\<uD#9-Sv6Oo¶</ -Y^HgHМ\O̩hgd׈IzfHH EڬHl2*bBP>%Xa{e.trY\cZ;b:Ib&x]Vhd?A#>j6''9KT4;~1Amț0Iw9l㯬Y+vk,nqqDt}ѻ95Frmvv)p_q3EH -t'pJ5)!OOfl^,MIp2<N9X1γ( hz$r>ْ:G9y -y ?UV%pɩOJ -niJ:"U@ʈG# ǝIG_7N( t!=WQr6z U.l:,N"zCX!(=\aIKPryg ţvVTe?p> a9g( ̻aXJIjVlpn-Ґ$ J3o9?%ڊIPWf>#c'ڈ9MtbK` --2a7x M}LM@]+pԣNeK,1Uq㳌|/1r&zPt+ϡ\S*y Ë;H%ͬHj&Ab\K5I4'ú\o$(w-\&YNJ4T2BRPQ8(jX85sE, C<9]frxU{*a\bQ@R6+%roi{~o6 d0dyPbT2 -\u:\͎mdgXS"[XۈLz\&L!3ı1Mcrf-`D]Ax PK -\S=iQz6 +org/racob/com/ROT2Test$ROT2TestThread.classVSW\$,xZ$ jJPjkd n٨Vkڇ>ta:Ӈک uO}F^N8~{wﻜo__BhyJ( >WpAqސ!ICPp0"hop9x;+xi?ʿh( &|OEN+'COM) Pԯ걢kfc I3cn1"U] =eRv.6;n[gZkف4oPYԸfa>UÚ.yT3PFV2V&ui:Z0-3A},KNCN:+LB V˩P{,pz`| v-#pdIg+ ԚIWwnh^h%ZϸVI52|[[br )]#}zȻmQTpz|)f+]&7N8mD-D)%UE'N8>-CTAXiՈjߓE36ۥE\eW⚊8ຊiP˥  {ݣaM`KxCiS&VZˤ4|Dϕ[cx hlgR>N%^|Stp09]p\'} +Bŗp|%3T^Yn1>=Ǣa4V*aks-rf -Wy#U(^N +RjH5G"v7-c0>W yފo!kys23KsY""2 L;v s_fre4^\o#/ 8Q>T@}f% %R<m혃'o^~foA^ȏzjh -^+}-p'W#Uv)CF;}x8CF"4d,fn{)X1z1ɘhohHTo$YF2hkA] -5xyB+B8lWJȋGZCK?-%ŗVӿZg]rZ(@[*c-/<DVDVy[Hǹ:ɪ<b=s︈Ŀ -.:\kH6dh5-א7a[K]sEel{Ef'h-<8Ab'qԷ+g;G8?*x1gCTଯ|o?:]?-xM9]B*<D+inXx?PK -\S=ɉ7org/racob/com/ROT2Test.classR]oA=Ga)B?t[]ƗV1`M4> ]/G__wZX&{̽g=s~@7Pqc50VbK"͚4qpUkGavmx~{5DAiض-y0eڦ!v"ug0m :<֮pM8#I9]u:z9OJn2}mvf9/I$J=9#)abH1[L))yrT< -R8ϰ_n |״i TkYA%i6QueſaXk3dNH æeg”k:jc3v1kDbTmݐ|XEQ~!0`i$d!؛ !+D 9Z)c@H};Mh5w+KB{#DGQG#҉8zb|S%:B<}"<bd"ȢBx j$fDoDMGMI^"9T_Df3Z', PK -\S= -+org/racob/com/ROT3Test$ROT3TestThread.classVsU$)h"` m ltiw7ZoU]g|a"Rq'l3ow}=ß V!NB^np/z}W゜ABW5N5A^bS^>$!`5h ͋^ ٌYt(9 oxazaUљC#BY ֌VSQ=>Y!ڥjb5L8Yv+CUU;or㶘aæ4ᤑ :ݤT5[S3yG;O,Pi hvwŷǹ㰲Mhfh ,&TQt65= 2x"F-i:g܌ qjcFR8h_dzYZʁunF2eq:߸zܣ<t Zv6DtǰrR4F2Q榙Q!M:JYnYjpspڃkd uBx}=FLԒR-BRƳ&c;.^)zNt8S&lf_0$uy-+-qoSbqIapY;xW(cK3aRWb;EJI[R! JHƘ0Z;4LdzJI'Icr\(5"AJ0(gW:H(0.SgakFmP& JϐϤsPDO -͡S_JJ׸  UiYUjp,LvTs9- icL]'KO8^:mCCuPqe9+z, -6pF:+ARQgSN+pkV4EdS{βy(d2D>|<9/XЌQJM)j4dTe.=ѵ F-s4@MgG=Gttg}hM)Bp\wL$q ÇXF&U$ huzj7 {#n6<BMT*vކ)T&DuLqK&t -:Hr4j\elr5v66G}2S[G -O`I,NcUA|51Ќ5$U%!)sqBP.=w<'5&Gģ{kr OOQѼFІ"G<C/^cl]zXKtuKq:Fo~q7ǯ8Ї{g58a)AEb> ]0蒻d7`ߐg`3NgvӗW+ ~崎P?2_7!<ۃj4_".d&mpŘi}&pa}25V0=*BS03UU.(3v`=}t^PK -\S=7^3org/racob/com/ROT3Test.classS]o`~+2nn2- ԍ+8 _*kI[ozOufؤ9Ob'2، 0^"+vnqS&#ǰq4\w ePje8w]eXkZw!Z 5u2FGmi<ɺwLaϜAoRtvz;v[G -5nkVd'Dsrv;/' c!ҰGNxh -Bӊs+ca3D>VOoxiFk8g\ -(qKA%_Wp[ !  }T i|84,^\3F U]{Ű'RFI;gi\;63&L2AV~8IR#(!,VHSIX%BYOX{j5z 0dhu yp"N]Mx%7??juw"|&[L4bBӸ @#} U-Eq jl:կ Y+~,Ce_ AWc_#=Jc/PK -\S=>/8f^ org/racob/com/ROTTest.classWoWw;lNR;Iudb'.SiIi={;23i-@x @R* !~wggOJ;s=;9w~sa\8& <xRdQa$PY5Ԑ \0p)qX 4NZ5|DkhǴ <$fpMS tc/ kxA'WQ^§pQç 8>';lڦ'Iw DX7bdqr5nZQhzFw*9'9Scc{9?hZGg<_NNYSӮc4l|MT| l\vlF9tlwh,Wh[/eFA1COɨ=<* +VL+O;j'-H΋ f9Ny;-ղ2?o 4e2%Мd\12aOeF}״zU%yT2ĨSqsR"bO &']A=pUq)ZIa7W$b_—J_ ӪG YypK^b؞nں놧{c9,t12^ddZwiˊ(=z_7Mvݰᱡp֧t ܚ6<%-,}Ey1-IbAh͹kOWWWI_` ٰbTJ_aqG}IxAx6:%]S tUեEeHC4V3 tɡA6%ǝ}G'sRW^4;U10:<)uOK=ǛVrz%ES!;,Y塠C,S -L7WnHHvWʼɸH 88Pˀr)i[V`T<$]eUAI-N1+~] -+t`,xOVr\N#Zt;h3/IJ5/) ueIP)8-;xIdיQJR -&ۿ끺>Ą<ϚQt(گvm}tŒ'H{zr2;vn+=r+mĭ8^O{;MnU+k^"QޠN|@5&6)4J<ۘ\7-uB0PBt2|fP/x0岴I+ ˶FImw;|Va$ؐ&C#+AZt*GӁB06_d>oFw*ZD$WqY~m.57`*ewQ7Qr*Ypn=#~4c,\UAgGkb"4jDgx>z o@Ki<Vik} wTrkZg6mz/\I[zS$80S+ ۰i"@=vj' -؍24= -]7" GFG@=W"GxkE,=r8r$6untRDТHXu;7Ǜo]4OO6aSE#b-s2h`Z]>ߋ'9vm5$y| j[6~4jkCUc&'jJ'^ՙÎ'ugj-㮀9a;,m*|lAu F'gwG)ɳagZLM7Z /յo%XQ!F:*&Ҫ$l%INR K `* cx#x'p '&%a 9' pQ$hO.L^,r"2xQsp_P\5g<%(c5oFCq|_bSG t/DNv JgoWk[?I/UX{> iqNƷ_)\J[^:ڎc;80Lz==Yw!&8xMqb4hcPK -\S=YI7M org/racob/com/ReleaseInfo.class}TmsU=MɲijBZ t( )Ҧ&ΠR /LqtƏ2#۴i!e2/=9?<aউ𥉯u -op'of91pW)TM. :}RA@T>+sK cVe2f~xVr_0^%>ϓωK[MkxjQA[v\]n1g~cw쮿k7dj\_=D`~o՟DQ~Wa=> $0>9=CQ^b3V$e/&c>cFE<],9{:lAW9Z#:,jw 8#0{ZXx:3bE׫k5~)XXdž9=0 lt1a(E|´G}Dߋ:PFF~dzguTa܁ hnJ'\vGc!{{E908gaV+S f835cHp<KYp(xCqLFq8 q؋Cc{^a^%`/YΥ?44|ߑMƋHlD5Rh`}T`L.2'Y\)̓}rneJ =KT,w.16.c -sM(X&`@iLi&,`PtPHT#|:?sy*]CbPK -\S=&<'org/racob/com/STA.classeR]OA=.vٖZX -1iІIYvqښS41GLץM=gsط`c4YXŚUBIq -nZ&tL -ެd`Uԡ{S6Ìw~!d7b)i.üʖ#6/l;C#~tdixWl3<.o95 (UUC/:ja_z╯d6f]fFnڸ -T"g6سy+a+I'Sc&W:.7OD x[ 7M!J"tw6]7]꒲4et* SV@b@ 99$)c=ڌkE H0Dt0i75TZBG.?%gcaAױ4j+JfSI$&q;+dqb\vT2 vuD_E{ߍE0z!6kұ1Kg/PK -\S==A org/racob/com/SafeArray.class}V |Wlb6hHK5RɆCS6 ,KXHv*jIkQUiՠj]^xU]K̼73wGy8V}g!,_B DOAÿx7 x*Nt'Y XHhp/v, -X_eK-xۖl`[2z̕cÙBjx$Mtjtcoڥm٢|aJ;djkfM\E&m Y`%,"31"I \VX%蟨G- H[Th*7ґ,UlfyN15FNSE#pVےɶ.YJwOf}|.s*ox{&]"NB~+ͤry NTLYcR<w'(lY͚zGRYgE\8FFOr[PAH9fnP KBaTPB#ɋA]蠦am٦(ן4 -:BRf2 jк\ŔSZńVCRsحn%v-TZJdTUTi wh|w\}Mxp\M͐Jsj*a6KzpO3zգ6ph= vqř95 -ͩЭHITI }uaժp.HTW\ܕ8Vn ;&iZXk’g&Π-G-kn+ 9L3|!c&-mZ)_+e -Lr0T(:iH~ڈNfR[@)6bt9.!`ѭ767EF1<sbLB*%CÈ; U/jS<3Az_=gNQgI"&b҉5z$G>kBŊ7m[8읗R 8XGn[2č]"xXH񶱘i|XJ0Tʗ_5%kœWg,$ބvΞ5~&{~9B%'VP6*):ę6mmd~ij\0n/ga0ނa| _X^vO ̶k, Ȇ=<܎;hDjNuMdGd -a+dұ Uc -N,}2&!#S #JwOga/4.{y(vrĹl$,>WϥuM<8!gU!dUCm糃BЀ'雂^T5\˳&K:K4fZ)%pO(<]cS,Y&}>o^T-Zb:5>ܘnVwh5&13l/]V%؈Z\S)F -)LVh 5RAt1Gjw}qN.=ی.]^\zyjU+yX!Ux/Iwc59:_㜻᳎{ !W6wQvWNl$%Ƣkg&XEjR\& RBL1Nx=x`/ ^>būt;v ^8 8!MNq7Й2әܢ܊m -nWAGcpL1'|f| ݷbIp;oK'o|^.KR?fBsKxguxe[ -W*JV&jF񵊯|= GWGWD]^w - o+6%VM߁)S]z{V/x@o8> ~@o+~PCދ+~DGnh~v ~PR<*IOc ->}Vg?y|A_|X# =ׂ7ŷ~>~ <i*|M5Bfiwڋ:}_>шo -u+)i=~ GHmNS , S{f7[}֡awo?&WӎRNÂN@$:`Qpei1j*b)ƣ-&@{]p+k㨳סɾγ{{qi76jn'>{#=A<da{ {3NNIALBj1?G]ȃ5Oif巈] %Eɂ -#@%7 c/qKw -W4UkZ}48n~Ӵ%~c4iJ)w騂e+cŠiz(ʆ~/x?PK -\S=X#8org/racob/com/TypeInfo.classXwGkey8e'qER -%ZZ9ۮRZU"INBiʻ-}(PZh U>8;F㍝sg{H#oÿ~1 -__ykD~CD^'7;}woDDDwr>5y++K7v:bx0[KvHzdY*:G|F[2$@Bv &alH1JS;N$Yl}P GLFrI/-붩b*҉K -d6mnQ^݂ Af",RzS *&ֹ0ف|&,sYİ)f -i/Cqc(g=s*6E@0zS`z*fDNʔIgy8bT]7ؚ +k1nDzU@ĠA {V(XKi{颎%pP3z42<rqxܦC-kȘ0(c6z1XeZٶrib_7#d\ԗ5޷xޟ!~ *zԟy=o;# Gto>_R֩ -ex|x?&e ǫz)Ŧ (8c(b wJPu˔y9,Xj^VJچN77NI^@1viᵺSm7j^Uq[Z#`ԩלvGy= -ܖ46c  =<b͚7+nvV.%\uU#̙5 llU[jseqXD oFכ5ZR gRvq9۱Ž&[*<l AW -E"^.]N.b0D^nΌ3T1xUWF_[UɰY[ې42 cu2  -Oꕆ͸UM})O+LFy"kX*kn 0q y.,ѽWl~s9q`G-[ (p*dIޠ8>z?2^jnVlD_VrBS4QNTh49KEM"5 -SpI[*< Ϩ,<O - *V2wT -$$0yU?9f 9&xq6LtvKި ؏=8 {>fG(܄}~?x~ #opS?* -Vċ |;;qğ?)O!KR~T{${%{G!^A 8xYGR<J'cJ$yɞ% ~E%ԿԿԿq' -!ğIğxEOI$\Cx>rp?EBl_|]Yfs*>TJ@FR0JJ%].DRhD Tb cD Tb ohϳdς09݉L`oW`bO>܅?5Ћ."(ٯJV}wa{wlGՈc"qR"0[zO+˜P*Nc@尬\ T*|-@y I@@o* TyT@'=GeϏoVVF V|_lG[k `Οqw?{zWu!''4mhxFMm)y/|]LS7wѵM;ؙ+h*~Ĭ|^,G[=%m~~r~[F7-G6O0{usW1ͽ??PK -\S=|QHorg/racob/com/TypeLib.classT]se~^nI`BP+llШ6JHגrㅳ![ܖfǭ//LigpFs^H`|9yyߗ tT,|I차Up[%m;hbŁC_ 0v7fnv* Du<:fhXW̓CIQ9H.F뎱WޭǸ@7Rwfo:RNoK j;H뛽3ļ:vvmgʍݴ c֠_C+ŜmYyԷ5s`#޷6upG{Rjxj5#⪜Y=sD"HU&}F-$-=TQ..:…"B]˅b6/4I޹ȹ5.Pv'㙞 B3,ϥPl@$ S˩O5R0J|rU4dyhjx) d5"b)`` :5RpnSa 7~މ9Dqww/m!ZaMT,ROO_ iʿJ6mFe_:UT[$&aI=;BH>BXOGGQ=!&ɼK!JLT$i!]y2c| ?[8$-!,-f֊Dg'IgPZǚ?O͕y"ʲ .ec\h>{!e%E%frOWIh"曣2}qʺuZ"OC_ -пO4O%&5B'⣀Ùb=ΡśűOb'5@J僖 :qn6m 8NܱYBޓ%fv^5yrB{N^\ssPK -\S= -Eeorg/racob/com/VarDesc.classu[OAϴ[zaR -xk+P@T[dv[ٖ.g?HL|0>lfho ۠ RF KLB\ӥS` `Ln=իX ;\QR\UZYP -)nedf5E+ 92HSՠ\YdEsû]Wu5f$zY"P 2=PIJ‡ל7CifcӒz-mj9M7"X-jFɔ )F+&3yJ'/gu R3֮fjfbuvdžU2wZN-vK* }f[iEjwLޮY 7[zhԭ# &S/Åʠi|X}ѩ9 ^s6!*: [ū5 Nyժg -ssW`WO~x1z0,r<|q8 '8Fq< /"x 9^A^C!? rrP~r<A~7=r!݆g83Ɯ~?׮ ^`z -p)Cp}ϳ Tv;.;mhF^ -^{n2zLAw1^{:7YNM~NM~FPK -\S=-2org/racob/com/Variant.classZ xE>'t$ &"+A ! B$_dLLW]eU|T^& -kŷ{u}]{w=3ӝ{LwSԩSU=`&AlJ qםɏT<[ *c:QKVq~VSG\bLŸp5?z5<GCGcq@sU<Oɸu</҅ xDi$%N`sT4.0=*^jW0 pxWѯְB*^aHZ*n:ဆi|k𐆳4G~#& O O`}%cmd 6k8WUnprV~Lp\stwqnޣާ/4_í>5ܦ#>cnp;5ܥn pqG_k{yǯ<(åiv>*>W/olEOtH;3:g'X -A_z֒ԁuHAlA_%nE?⡨<Uڲ&Hrͺ{aQCd]mGX"D$1չiõT[h+th_o8ٱ}%&c\/5Ҷtjm#>,QfZ3h2-J+6c%%eh,Jh, CT'aIu5Hͧچeg՝zI˛jiBX4MF=#T -!'IF<Ƶp{9PWS8 =OŴ4BZWac4i_IiNq-pǺ%^)nsVd[ka@c##F=dh28w깊z#],VJ4FFExc W՘UfU-W՚UfU=W՛USlb).2;,E\,,ׇkfDeT =Ӕ Z\s򊌥Z,&!Ene &R Jb K%rh ^&tN')2:L#-ᮈX&&7erhӍ 1"Vtcb aґ -cq,2$BYOE{z"BS8GkM<iǔ<Ѿj3)/hHH@lOI"$$SO -3TLsJ$c:THaΥHv?[Z`77XѱF]xtfUdI'E]@xN Yd[E6>7"V@5R(]Ut5զTkѶ6ei"kxD&"D dt}dE/Jcx:jXPMJ-'#خO͢8]sǴMMT1|rg[ciY`d[y@kC݄,,7+bogVhy1SMP+ԍd`Eڔiz")ޞ.Nk=D8)-h9rMLF'#uuDzyJiD8uĢ_nӗQVwll Cs:z!7\Fx#RyO}fH~ ƀW<op MZQirr{t 5b)]BQLS՟q՟0J$#r,r&,>pxŴ`<3~ ƻ| R -Қ yq1 q M,, _d[t5t粢 | _IYg`' -r ?0U|VS*30*a8{ф/X\i^pfWqaNy<:zNw |)|yՅH\k\\s> Ҡ &Z\㢞r ` -Y"+r']%'Z:M ""2 30#Rp7obsc"fSsjښi=ShΥÅH 85")DTLSj% E1!91& x>~Sn1]h+t<ś?4\DhS)B{xl H:R O1YTF9RZ_M,L0@kf\@NrUVHьuf.֔A-)OMNH9&8⢻O#R&*L t84Io}3B|+񀟑|MDf|;w;I&Ms|M$?`$!0l#$?j#yMAN6ql0{l/I~&%I+OL?f.houstyU;7 p(;Dz^p9!_p_+$Pu/0a*PD P@ ^Q%拢@fޔfS, |Eir<lK -=7B1},%%E"y覂rAUKt59+O # 5=tmRX3ԓtLh/hme;`Iι>54?K@Q{OBJ{^?gX댚/rbPpeAXXo#G\Y YV -^jM|mԝ..|$#ՌX/$xHx'C?l Ϡ8XmG ChjlgџZMG8#??s+:q~@w|K8Kx'%WηH9ŹN_#]9{މAە~*4WIIۤa/q - *4*Z<c*BD],= U |%mt} t}6UWK `' /l<K%N<Lpq-;tW7&0Oϯ ?]x~M-< Oˁc oP&ox:f O[5Jz(DQzlDu OASmD5s Y1FfuDOs fG0, B < '+vIξ!ǁs,s)"ᢒg^۶Ƶ !(Q\(Ghʇ`6 2K,2VIkzHHɕvn#MKÇm:V!ZVJiy[{YyJ<i[S/P&)3kgP/(3Ĝ!s[3*l8ٗKB 7f"eC-?9ٞ> PW- ^ܾ4Ja8b;[,mcDܾ݈Ẁ'`#aA&*AQ7ޢwWl 0!8rfBͳAӹjpFji35TF7P94r.j:)a['%0T$6!/[`%>8*u-VR[Lyx#NE—y)遣-tmfl0p:6# Pa8)@Q1c-4!]di`40!M8.pe`V! }B6xD)Fy!8Xtplvj'Yfg]6:#q=0 v8i -RN̵dw#itv!F-ə я}LFy4ݰ`j36<kGAOF>#U~_v>J) <Vͤ ð0sz0;:bgp, i)h\h 2flES-J /YxB_h)> p5^LW&(yU!X-85L֕ć3| 8߄-cli)CZTA?#$+f$孖@-\Hj٘m&3%_Ͷw)0fi$>mSZ-ǑlNaM |e4kbF+8z̥:+Y -2:#)>(Rs|I`o? #gδ38`dګk3 ΧI\d8M..H 93hP0>ZY ^tЕ3lSgMmW- kG=;@ thO|_-E,t8pF*;OIBL;G}:kzzNGO -|'19@Υw3 _ۀo@@c18O(S P8PX -o`Io8>SiV@YR^|w85(e,n*-un*JRYY*17-Jʠr -K%rT.*rRpSjrrJRtSkRV,U.4(O\Yae"na Ve}Up@*?Tـ'+7Mxr3ޯ܊/*_Jr2SKYlQSQnWSRW>U(y*<G=vOӫ _&ݳpI0;اb|cd;Sd6.MP/~r@nGɯmKXjl;9)^1kvkIQw>CTMYeJ>U0a&LU10Kyf+\CV>zcX|bh.&l/?-q OL2STlS<Toң4\nTwLe:3 W1? vj rN.įš]p]=J߀ca<a* ·*JUgL+OPK -\S=J#org/racob/com/VariantDateTest.class}TSU|6,_h mB -)h|T,hDi$+l YL68|ptFg8vHgDw7|&6;9gﹿs9syc05υ0. ҒV0k*nH=)Ŕ)̜,T %̫xYR WTd֒eB7L u7Z3V\lgҚ-9n,ΖUKrQEkfٙ`<2]#UqBJ mمYnd:%52Hc_2vܬHy=s䚽ȣng9G)OSmW lEb:RQVX0)ϝ)zڕRΜ$g -/rPh$WakdU]ܜX?.<=yu a]"}`7.)xS[x[}(ͼw4{XƠ>+ k%Xn]"9-3?3.W%4!)cǏ{j(;s&it\x= b8x$$`żI׭D3ÀO8jz ILam'sЮ6u40 (;rUМStVG%_]7 3 CAyA<(C:ijGΏ,@}6{.]"BCP{.)Yi *Z~FC4H{Gn~2P(;]|i4dbT`CLq YJA6?Dwi -rX jOW~/-,/\:/qNY+T;K\ҡXi%cd_<7+W=UĎ[Dr% Kd2WqreI~xDZM>3L+L[L{HFŜ -# c0N\^(m!zqoǙ <OGٓ>Dy5A3#PK -\S=hqu5org/racob/com/VariantTest$VariantInitTestThread.classSRQ=LQDE  (>g|T,JCinn0L] Z.}-\*RJӷݧ7vtLK ۥ $')c69`CS)eWJ ͎焎垯z%>, -+NO>O/Xcyᨪ ɇe↯ZSV޵|) ob}A`qkv<u:9Qka߶ڡ 25"j+fTPpJE1i:]"PL/lZx Rhaz fAՋ|9-*PU9t|O,]]U6q,NqjYݾ6bpe۪aq\a ZAl_ luNث՘hFXeLal6qGK%88)A?%?2ٿǧ(T*{&zM&&T807wڜS- o} i2 fhWs.c\, D#YFǠ{H}Z.ZUuTFrf3* -D9"uPDB@ P k ćڙo<9$P</ϢaRi/ySΠgHN+5{HEaSKd5: [dy+[>Drl[tybz@y_3/ɹ$kD/G+z"vF\S3q]wPK -\S=e}g(org/racob/com/VariantTest.classX{|T?gf 0䑐o0BP`- Ѐ&̍3wU+j$Z]nwumۭnmkVfw̄<~y{}Y"ZOVzKoz߲l|U|䦷K?Q.!3)_h||R_ikb~aU@-dh -#G͠w'_/YgyEfyI<ɟ>_}Tn 5Ej Y,حq|dC>ji#Cƹ2zyv4/;gr}Cf'h/B''[h<I^Tmfi<]ϔw4e{Ƴޕ9ϕ<a.2*ոL.rƕ>b'/bY\"^^&Le+^ū5>[WGky5>Gsej7jIu '@ǟ^nFxy1MGB1kC,b5 =nZb1#^ %F)V3K2yji\03F1L^ 'IA3VʰQ, ݛFsc+t^N#l1qӤwbWv”+kp#e*ʎ^YisArҊD+kC1 V(.ԩdVv~ˤ kFՅ\e&pXK4"tcTiۈYݍf2BɧNM`iYpZj0>B28.27FM{(flm^]5fˈ[H[$#b@iΓeB$5ZKHFrC4j2 VČD1M>f^7-Gٓ l,/iG(f84q#Z )fim-2b jCbfAe]hOΟPR3~#"B@p|.#hdrE>X';a{- ,1z1ڱ=71;:+5xX R!v:kxH>j,s] "/_K8PNQD[91;B 4t?rP3e|i.tSeutMO: ?Gx'TZk&~QnY6ͨB&wSHȜ`n͸ntq)i^KffIQ2{/2:@Qō8%1t -?_ Z"=ל -`b0f\o3,:*C("N?櫙J3=[}LK%6w]8`' wUX*;PB JT՛jJzlVk [t 7}wj9΂UjgD~=y;B pn'PGb.qSص 0bMXms2fE:2HvY%:JNz Zs↕ǰ0_iuA,#&>"13m[N$a@*S($[72LZN߄!Js6ambCSfT)өbpvAd$M oN9O*['4ĭ(J65\&Y7ː;u|3߂D Vɜi0Ϸ!vcY1uC$-,#uUֿ;1?绠G[?N(R8mㄴP*L=n&c-^`EKD}|EAVPa>r䇤<̔cJRG[^1g8-X2-t$ 5Sv&c P*1n7j6'ϠY*Wn$WiT%ct"wFK{UjTW3v2-F\8 mQl -rI|Doĝuh@a'0FE)7#^ʗ18}GpveHj̬ qeu(aJMHFZTn E%Gq/^])7A=)lҤjp'Q].'fJSڳrA -uvr(/<|wac*Jӊ7#9j3@n2 -8 -O<34ۅfCA^b)A78  V0LjaJȗD_<Q^9Ҵd$(mT@pվKb94Yg2FpN ( oCɨiţ9Z#i:*;@!s۝R<TA]gOwh(UHO -69*Wrumɺ絊O|ZmK6F6CK]';APh4O}VP Bb4^i% ͢0fE[*ע*pf]C&<n4bQ*3S"f@fFC~ITYkql2#%'Ia [ #vW4&j'-iu?Rb,YbPf%)>v9*ȴ4grA/NEt r|-[~P͚GI_PD.<Ǔo;Inc1=xS6=\4&wS>y(>҂fJ{) {w<MM}^74>/2g<^柳6^ -f*t^S{i2OM}4tS:>f)gl4'8t4ʛ L}r0oI r/Ss/dž*p,ye{'.Vvsl:yh&M! JW,2v"#TLoREJ^Ky+-]i?JU,9rMT*ruFW6.szK -5ޤF۴.muϦ&Kv>w݃ ܞ{>rV_\>$K yZOPx.C0x Kɧն'.j*Ž&X2[,s[xzi9 +R6A|t&[G^:{[ޚL^\</%P4 -È-0Ab]HQSp%K'8*8%ڍG,>3~^`z}zp͵M*[f6 45KIkѴkoٞ OC˽JsC7kZÍɁӎj -i$ a2J×B:@+ -j`@^ =N7Ыtx3v4į!~9 w 7+ۃSz5qZ~f)=ϓ5óӆ/ -e҉R 8s/U6z f|ym'?~k2  2ZM<? )Hg ϣmGP7q `}PJHc)G_WF R?F 1Ot+'P&f(*z6!*롱uBU$Єm`2蘶Z "GD`9ʣoG(]P t28İ!AbsFPI6H>IyPz;qXz&HMAhȽ(e;J;6(;zLv ee4ϷR?SD?CHDOF d# *qAzKT8t}&Mc Mhw{mv/nG%SmGH-#QʼRRttWQ ~jmbzS!e TH'>4@m(1vmX - { -[!1՗uT7F`rfj… ~ňT'߮7OS)og GjU::ePtIhWeWez -ǎSI,Uy dsV]WV/uVe BeUivKqʛW<j-cio>]z'iOʠ0hK{H@^\n"?qqZT6%fJff?,EJ')A]t)J]0x^Kn:GA4'RP)OBW<VTh O x<y%xuZO7r9¥t/DiYXF/zWЛ\E*f,%|&Hr>?Λ!6F~[;Uͮ0ݵ#*D߂"-NQ^@({%jңS#~Hh:G};ՆJ$"E7ɩHCK]QC`p:lhg\賗I"UEe?K?m8I%H"kcF#g̡6HC e^It=M /;$YiWk]mi>@KQ6O_iߡkgiz:5g,ݫܫ馣 CnPguٛ2:}Xot|s3C8eEy7-=Ԁw0>$)W>>D*:JkaIйUw^EsF霬86G4aP$kc22r_T[h",PK -\S=~t $org/racob/com/VariantUtilities.classX |Td;\HL $yAx(*QjB &$@n00 _UK/k+J}P-eV׵պ]kku_uݪ({<&4|sw>Ի= -`|5𤁧ig0:?ggx^7b_u_PuK%`6M71[_6Ti4_:WtO:^Eß8 /x=7]5 F(1={Nj1q#(ܯ)pMd&"M -u0t@R&ź2i4T:0/tҔR~ssi2U$2/ )\SuXdi~Y?jVSz,?eh_+ -T -`u8ǐ~i<]1/(nMs q7lbV4((iotAkg-k:;+A+9<bIK;o@[xn8NWllF{x!=kE[Ď [͉p$üyZoܶW2F@ƞvoq[͔:\iEF)N8Ed&_ xOga yX7O}qjF -o7NZkъIY6ZtXaTLbiM5\v Ţv45:Dygd 6b +SϞBN ܐ&2pNkL,ޞC#R!3s=q 쥁]W%p qM.nHnƓcT>>)V*sp^8JZXmjI)A=`iՂफ:ni<6utzҩ*yTLS)3D8j%±h4GptaxItح k'Rq"sgSe-O c$'Liu%P9VdWNFK"7Ln]$fr.eamLϺr4Aҥ)MeXt1<kGq;;[wS䱢?tݡnXf.4M='[y$YZM(5h, -EAClKLT.\!uaA0Wg- ( +z/쒈)8hJTb2e0 uSnO3&>2jƔkuu\oʇ8\`ʍW7z+l-1S>Nr![Or@6Ӿ5QO26S>%,{ \S>#5snneKu5}iqy4-9+*ۉx4erwNg]V0+#{4FkVmْX42bjZxpd0468;dEBvh͈…!vXz"M)|2ƬW/{|M[UbC`*dHoLs,:I]u4Y7]ёH$vZ)+Rx|IPő5"V|v}r͛ªGu* -G nX,5n3qaddb1^'r@lz*S_сU!'ބzLzPgZbsmڳ]2NEu:[v̩mzj,sKע~-:EsPsg4űY5;YޱtqTM~ ڊ7y>j,.rw-h>N_ nNxY]9$$ 1v:\"R#<̬ɂ сĎI|R1JU|8ЖZXFH?걫?/jY{B>'h]yŁ4;^$yqᾗdK} cPgW{g?~(s~07;'QjO 6L]nλNy˦q7Sj[I\0i՛^"iN?dƚ|["/mT5{ z/[Uv[ܣJJ 20ܟS=O Uƍ_usʟYkEQN,;D>ȸ!:N\~vW$?ʘf"xj<.wWL/">i?LNWrSj9Փ5Lj7G@\Շ3Ed|sAQ.p+G_: >'2]"܆O9,w˄VG=C?of%QP9B"+V!5Ftd%I<CepY3 `qrΐNb -!KXª2UIKi1?C: - e`!NQ l!a*,/#lѡ#8pU'QS?uIԏa_Kayt|X6lF5lZv qϡ22+4sqg2|NWt@Y^>\??\@yIZ~U+}5iGy.`ن% -5| -Upjm`WVp0*9x#uUAVNJ 9zu Ʊ23d[S0Τ y?}Uc8;|TdpsavF~ܣ9O.M5'9O.Oq~F&~<qg<ڐDshg5nN]Wlv口PuґvQ43Z0X6,…A;hn"62э5Kq?烄}W໰z z -`ܾ~c@b4 ,gc4c\1(qD:G0"s~{I\+?NT? )ÝBJU} `1檀p!;pG9q|+liػ=r+~nH=J"je<d ay;Z)!|U<ed/*dWhk_-x P"yw2pw\.0ИY$hr0MܿR-Nzk Q|յGih=T{qWU{jV0:1~<siRG]Rn1a⼘ʨBAGMTQ6,MC~;0 t(c+Z^5E굛@ܬ;rF{kP|N][aܿ+G$>~: !3_<4>%=/[kN{^ww:wj) \68_eGqy86|INkuiv8(x vv7ư]R2%qVWWVndU&3W`al'bLwl=G"O=^?4ľIx&yFJS 9Ye~.E&-MVڍo>\1/J桼f>"_QTTD;^@ -J)G`w{o_J5aD;N b^1N)"Chz p#/ 7Xl3.fFo<MovB3#yPoE_櫤 䘦#BcMQW!w4OP0䞉LFkv1 |r:KH=:e.S<d`cЙt&oq1\aUU<gհI.7$Hg*^Iq}iռ$qww Y؁"h K7eVe8_,l`W*;qDbpÎgw2ueOt^s,2ٔ ##@4NMg j#1\??$`78ģN)lZJaURA菜rPK -\S=9] (org/racob/com/VariantUtilitiesTest.classVwZF$H%!6#;P;6 "X@YۤKi6iwMlprOo9'"+rXF&{/ݸ^R ˜D.x$Ge0qzoWa4cJ  -2yΨ B8+}QsҜqc.+ (S[Feii*aL 4=\_࠺"gTLA@,:≓ -VPp{h#)S%DV^/̽EsXV-mI[[Sɼ5tQs)N(gӧ6ecAݡ9}VOV%)+Lպq4p*i5cLcN*m9j,R۲DC5Rsqضu}m+hʥ9IsE Luzo:d:ӦsY4b߀*Lt 6@-KӖ9] 3f D'7:.ɼ}Gt)_h%~`πU)bX5unli\v$bYMN+vɲk5^^&g"_!De*~U*(tr±tR, Ӻ,T3Kz75.TQ[x[ßg ]ixhi*wyyk5|d/.+DA2H8ˆX+tkLw2gRO/dԵ%VP -0tSgx 4.VyE\Uo}IP!runs4WvSBE+{b:b3Tp0y{HܴP -|-CU]R $bmdV2Wr!RTJUr.i$uSߩu0f#J~;@|hHB5NYIOxcR{A񄼞GR?VBرI7䂆rCjqG ܠUk '&_ֽO(yY>*4a4.c@mCe54e—^yF"y ]Cs6UhN?<Zz:yN^CD"kytc2kB-hGGul$;fiG<xIc8~z!暏>q% o;$HMOϟl /`=9Aksa]>&l^@lY.a 6!_qM`D*Of+ۣ;BCM9LHXM7b8k}7@>}Tt?R!Y ԩTEuڊAUTT]1\T(~2Gqx6BJxv4uhYm&mdh?c 2u<]dUӵu*&j:\\#DWϘJ5*n a˒$H4={BtW b ;^&eq[TG)"PK -\S=GH3#org/racob/com/VariantViaEvent.class}OMK@}OMc#Rf=УSE}.day<I$7̓qG!!BRk{,ޭJBVnQ5oNr]F wgJ<eFT*dwl !zНfы|^'<R8N\F#wBw`<?"23XLFe PK -\S= AMETA-INF/PK -\S=@+META-INF/MANIFEST.MFPK -\S=]m_META-INF/version.propertiesPK -WUS=Aorg/PK -US= -Aorg/racob/PK -\S=A?org/racob/activeX/PK -\S=v;Ѿ -y!(oorg/racob/activeX/ActiveXComponent.classPK -\S=4n2.-s org/racob/activeX/ActiveXDispatchEvents.classPK -\S=<v.org/racob/activeX/ActiveXInvocationProxy.classPK -\S=Aorg/racob/com/PK -\S=%eL /org/racob/com/ActiveXComponentFactoryTest.classPK -\S=8n_org/racob/com/Automation.classPK -\S=<% org/racob/com/ComException.classPK -\S=..$"org/racob/com/ComFailException.classPK -\S=#+y%org/racob/com/ComThread.classPK -\S=ך[Pwg)org/racob/com/Currency.classPK -\S=7X!,org/racob/com/DateUtilities.classPK -\S=%%0org/racob/com/DateUtilitiesTest.classPK -\S=+#t+n4org/racob/com/DeadlockTest$TestThread.classPK -\S=` {8org/racob/com/DeadlockTest.classPK -\S=$zF<org/racob/com/Dispatch.classPK -\S=g{ "zMorg/racob/com/DispatchEvents.classPK -\S=L4M4 &iRorg/racob/com/DispatchIdentifier.classPK -\S=L"g)Worg/racob/com/DispatchNullProgramId.classPK -\S=+vK!7Zorg/racob/com/DispatchProxy.classPK -\S=&t B\org/racob/com/DispatchTest.classPK -\S=:[,)*-g]org/racob/com/DispatchValidDispatchTest.classPK -\S=a5!`org/racob/com/Documentation.classPK -\S=ZZhborg/racob/com/EnumVariant.classPK -\S=қ%y eorg/racob/com/FuncDesc.classPK -\S= -jorg/racob/com/IUnknown.classPK -\S=<. #[norg/racob/com/InvocationProxy.classPK -\S=ʼn8 .qorg/racob/com/InvocationProxyAllVariants.classPK -\S=+R#worg/racob/com/JacobObjectTest.classPK -\S=@|s !yorg/racob/com/LibraryLoader.classPK -\S=Bx% -org/racob/com/LibraryLoaderTest.classPK -\S=Ld_org/racob/com/MainSTA.classPK -\S=5h.p\org/racob/com/Parameter.classPK -\S=OR[org/racob/com/Pointer.classPK -\S=zM( org/racob/com/PointerWeakReference.classPK -\S=ϦF|qیorg/racob/com/ROT$1.classPK -\S=org/racob/com/ROT$2.classPK -\S="m* Iorg/racob/com/ROT.classPK -\S=iQz6 +org/racob/com/ROT2Test$ROT2TestThread.classPK -\S=ɉ7'org/racob/com/ROT2Test.classPK -\S= -+org/racob/com/ROT3Test$ROT3TestThread.classPK -\S=7^3org/racob/com/ROT3Test.classPK -\S=>/8f^ org/racob/com/ROTTest.classPK -\S=YI7M org/racob/com/ReleaseInfo.classPK -\S=&<'=org/racob/com/STA.classPK -\S==A org/racob/com/SafeArray.classPK -\S=X#8org/racob/com/TypeInfo.classPK -\S=|QHorg/racob/com/TypeLib.classPK -\S= -Eeorg/racob/com/VarDesc.classPK -\S=-2Iorg/racob/com/Variant.classPK -\S=J#iorg/racob/com/VariantDateTest.classPK -\S=hqu5org/racob/com/VariantTest$VariantInitTestThread.classPK -\S=e}g('org/racob/com/VariantTest.classPK -\S=~t $borg/racob/com/VariantUtilities.classPK -\S=9] (org/racob/com/VariantUtilitiesTest.classPK -\S=GH3##org/racob/com/VariantViaEvent.classPK==~4PK -0]S=||win32ole/Win32oleService.class1I + b 1cp ;de;no;|};~};};3,$X Z 1 +u +aB ) +bcdea5+>d*d+:6d+2#Sb ,2c>5de552 Xa4+,=*+N6+-#:-S-b" &,2c>&4de4/"Xa|,-+*,.+*,*-%/ bc*,de,no,,~a9*bcde a4 +*+0bc  +} a+* +1*+123+4Y*5+6+7 *+78+95+:*+:;<+=*+=><*+9?@+A *+AB*+bB #3:CJQ]dp|cfg a+* +C~ YYkb~Pu@~7*+D34Y*5+E6*+F8*+G@*+H<*+I<*+JB*+Kb* + DM]foxcfgu aXLM,+M*,NOb   c fg aV$*!*PQ*R**d*b"c $a8+* +)SYTUb ( +SPK +mi=||win32ole/Win32oleService.class1I ) *+ ,-. / ,01 23 @@ -576,16 +177,16 @@ Exceptions; getMetaClass()Lorg/jruby/RubyClass; SourceFileWin32oleService.java < => ?&WIN32OLE @A BC#org/jruby/ext/win32ole/RubyWIN32OLE DEjava/lang/ref/WeakReference F  GHorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionorg/racob/com/LibraryLoader loadLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/*  '+M+,N- Y- %*'' !"!#$ %&" '(PK -0]S=ewin32ole/utils.rbrequire 'win32ole/win32ole_variant' +mi=cj22win32ole/utils.rbrequire 'win32ole/win32ole_variant' class WIN32OLE module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) + java_import org.racob.com.ComFailException + java_import org.racob.com.Dispatch def SafeStringValue(str) return str if str.kind_of?(::String) if str.respond_to?(:to_str) str = str.to_str @@ -597,48 +198,10 @@ def WIN32OLE_TYPEValue(value) raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE value end - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - def methods_with_flag(flag) members = [] all_methods(typeinfo_from_ole) do |typeinfo, old_typeinfo, desc, docs, i| if desc.invkind & flag members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) @@ -701,11 +264,11 @@ def load_typelib(path_reg, arch) path = path_reg.open(arch) { |r| r.read(nil) }[1] # puts "PATH = #{path}" begin - Automation.loadTypeLib(path) + org.racob.com.Automation.loadTypeLib(path) rescue ComFailException => e # puts "Failed to load #{name} fom #{path} because: #{e}" nil end end @@ -789,28964 +352,14 @@ # TODO: Add detail logic end type_details ? type_details : type_string end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end end end PK -0]S=!M.#?<?<win32ole/win32ole.jarPK -US= META-INF/PK -US==META-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.8.1 -Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/racob.jar - -PK -US=jruby-win32ole/PK -US=org/PK -US= -org/jruby/PK -US=org/jruby/ext/PK -US=org/jruby/ext/win32ole/PK -US= win32ole/PK -US=P|jruby-win32ole.rbrequire 'java' - -# Set location so the loader can find the native dll it needs -arch = ENV_JAVA['sun.arch.data.model'] == '32' ? 'x86' : 'x64' -java.lang.System.set_property 'racob.dll.path', - File.dirname(__FILE__) + "/racob-#{arch}.dll" - -require 'racob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import org.racob.com.Variant -java_import org.racob.com.Automation -java_import org.racob.com.ComFailException -java_import org.racob.com.ComThread -java_import org.racob.com.Dispatch -java_import org.racob.com.DispatchEvents -java_import org.racob.com.EnumVariant -java_import org.racob.com.FuncDesc -java_import org.racob.com.TypeInfo -java_import org.racob.com.TypeLib -java_import org.racob.com.VarDesc -java_import org.racob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -US=??jruby-win32ole/version.rbmodule JRuby - module WIN32OLE - VERSION = "0.8.0" - end -end -PK -US=S60org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lorg/racob/com/Variant;)Lorg/racob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lorg/racob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxyorg/racob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -US=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -US=>'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLorg/racob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/racob/com/Dispatch;)V getDispatch()Lorg/racob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLorg/racob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLorg/racob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJorg/racob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lorg/racob/com/EnumVariant;org/racob/com/EnumVarianthasMoreElements()Z nextElement()Lorg/racob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lorg/racob/com/Dispatch;I)Ljava/lang/Object;callD(Lorg/racob/com/Dispatch;ILjava/lang/Object;)Lorg/racob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lorg/racob/com/Dispatch;Ljava/lang/String;)Lorg/racob/com/Variant;put?(Lorg/racob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lorg/racob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lorg/racob/com/Variant;H(Lorg/racob/com/Dispatch;II[Ljava/lang/Object;[I)Lorg/racob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lorg/racob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lorg/racob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lorg/racob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;org/racob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK -US=QULL racob.jarPK -US= META-INF/PK -US=@DMETA-INF/MANIFEST.MFPAj0 =ɖIVPH54%"[`KFk:i;3N9a>g%R7vRGX|ₒңز|<kG;* q SRfWˌRƲrP!Hp^ipFLPF!)9Lh\a߶e]TP޴VѶKcd,;Ꙡ]C%?6qpD oz94k -΂xfAϲT Ry"PK -US=bw META-INF/JacobVersion.properties5̱ -0F=wՔ@',tib%>Qt?kMvNBX2왵j.,'[:oK3-:-b"zSul~T,s̝VoPK -WUS=org/PK -US= -org/racob/PK -WUS=org/racob/activeX/PK -WUS=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classŗ xW7d7@CIhUDB@o:LݝeBVЪ}>*ZbnRPVZZ_֪33;lfPɝιso> `E5fqn…,q/>O)/p؃{Yϰ}|E>o,<Y n|fX|كYaN#| =A܃nz<x̃ ֱ,| gxO0IO:s,fϰo,ƳjgAm۩cb@@8[(PPڰM)Wp[X4n7mVmQhtC 4vh7/?/]'7ѶʨW+e,SXX_"j'mQ9T¸~ƔZ@~5T$cv͵IQ6DHD!(!<,MjަcK9S]᎘؅) -^`]w_j"kJGLiYPAK)kcJ9܍P6S 0ͩIM<KЈ(dmQ51QЂZaNN OG9Tu}w -M]C`4lR(zvR= --8qVQrkc$Sm+txbN^$gjXIwkV+͔Nb?-ŪUUrF_EGZQ^Br"фH#@x]Y,i*UCXT/*U)Qfk>{.\.f -N9s|E3 R+6D.k9FBr~<NY}aJk tY /;&'C})v{ƍлV$lS,d/B ρy6!7+{xt-ϖ ͧ$ $`\vJ $?c'lw+T;0/H~%K -aE ~p ~,^yO] gd%A b {2|Я~FGr񊄿lAX ǫ,^c#Ayr_wȤ.:TG:(͝muZx[;6VewB=X]JCOLM_j{ha{2NﴂpX eOksod^k]Zi5ELjkLꢂHtR{<ѿRϰv [;uStK/lHKnn * iEC52OA]M`ݥq9.;K/ؾ=o2xI-P *XjM6I$BYV 0p5I4j1 -u-ԠZKPG f-c%ꈵԁ ˉn'VҤ5+(`0ie'љڛ i,4Uyަ \P^GqL\)z93ȢoXIq ,მlr -NzCCP1T!TBc0JLUx/)6!XFƑmNj oQA;yw/hU6WQrW~df3K(KX+u#/csLl5 ϲ Z$cT2QZTA2 >Ta%52٫A@S2p+z0*_$Kf֐ s0n)h%mƶ}]n` jCXDYm8$p\G&}{AfOۍ"éoM\6\R zؑ>Ά>)Uv4iƊgPrT8{/F[tڝ|-1}Uq>qcEkFggX&(p1.c@AFGcc՜B@>>2^"7K1!yPAU;4u t:ӢSG!ar2-: ?r}ĭm#g_g0Z99Waߺd^q'~jlhZԙH(1O1W+Ȧ_,Qy>iXWD=+[jHII[b8!焬%rJ GZd!Dlwt.NDJRkڅOa7KNbH1ΧHUcƼQo c$ tQi{ƈg ƾ7zՉ+{-k"s $3i,>NkWeO?tm3>ܨѹu5;0zd"hf|Ri)߰ĭR˥ټٰ^ET3>Y]0V MB*nVivV~]iVGN橴87躥#6'澻83aG8)U| o0R,b }U2%MtΦiϦZ~uS7ralle]V͵N:ں7XֵՈ!Luix8M;&,{LdzEq֖ɫAf'-%5^5^3fuѕ_N<. )Qn=xwBL[iK2mI-,4Rhs9|$v.|va&f;,Gͅ}%Z M%| -KL%yfPK -WUS=4n2.-org/racob/activeX/ActiveXDispatchEvents.classn@M81iSZZT,PT((% $wlIVpC%x -1kV.aK37;c+бe+X5pWu\q!{KBfX/5<1}ڦEgISoXZc-v ņp6wvv&mu[/:dGC ˖b_w`]ٯ3#;Y1ri -.ÝNSuf{l3</d.{!ڄtvTV)<?f(%e$ Uޮ\sHpF3ȖPO S9LatfGReTCaXHqۻ2 tRe[XA"h!OAGNӜTk#)ѠؠMZ0@'"&HEY1IJw*} )y]'Ԩ9? +c,󑰲.`PsZŽg0b3dib.P*8+~A ǵ'djbxpO : լc'KXj(\PK -WUS=?,.org/racob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t xn=횓ݽ~К:״=5C&E\:OYNi픶sݞ=i_D.-peMoQ#-UWw wf1 }:q$K7뎞3\)^ywgB~_ߓR]"0EtJyql}Oکb:Sίd[CF*ccv|7٬1g{bΰ\t(J]ͣ?׏<ǓT.U%Z Zsg1XtAcy{} $=z6#&2vxE2,槗=it5`K{#1m*eV6hS ݷ9?xANU_4]o5I峆`#%#Ne:&lTtSilW*^#MSf3 RI+3Mxr:խZO]:FUT7w77̪@dxGJ*:%F6W4c-5rzvvάxGB]wqFY ڵLa|Ͷ1ۙ(hL7閦;>G|α<^/} ~Xukmkp|N͝}T1aQ=cqFB^Y,Wz{smb 5Wt.<PIqU7nwi^Wvf~P -kfMU]D[oHW%%5&jY< DDVkE5POvkh*kW3f&]ﱕb"X(dq>ſ$Qnᬛ>1 ԡmގlղUob/^m+/;( %;K XB[³|en&YǖY(HG,2 uDXK %"3hD9EJ:|m1XBACLTF400 c_`Y,Ak'-ml -3XIWadU Vn`m<M|?OOآ/cǗq)\϶ Јb7Va1+0#H<i F4g|yO¤)zk%797=?A-4qۡm0} =؉H{p'S\ك8ŭ{oǖ4PDqG Da?XO<I/'O^BKX!cϒAFRƃ2RN}2HɄ ͗i,\80(c^92`fyV_TybWw;%o ־ζ6Ahj INcԉT|@%ۘ"3<ѳd sE`%l"x:$yËn>B4"\M4p1(V1+;̯uqzɕ/Q8IX]zՉ7G - a Dğ^Mm\rC%6ɍb\M=:V*&pޝC#B1)OSW}F8Rr'Ic̃rABy -q\ʌo5T_rE.LPK -US=org/racob/com/PK -US=I /org/racob/com/ActiveXComponentFactoryTest.classV[oG6YL @Z=P`b!JؓxkN/S_؇VCyDUT"U*Zͮ;R,kg̹|9gf 28# Gp뛃8A*qxBIHG: 13 p!7\ -@#dJ;b4vSaqa~ :7V[Y <h"Y.;) Z=Z -}N()챘gX*21!ĭB2DzҢU(f͌XltmEǰL/.y#@VB٤0ǨШzުa{cIE)Gό'M8)X* !s6)}sT2MA s߰KK)#R>6-Xe)Pyռ3z-_,`oȺiϩPLf`B&+hlw]CPTq%,ݚrlﲹ@n2C$ -m -v2_%MBX"mҲK1%Rdq79-fMTA0`^d52^4r'srz\h%Y9A9n6U2cYʹzjK4\3g'lwkLhVz~Oe裬VńaK2sdN9VXprI%i(!|$-R%rJh)^*ᑫʂ%!wٴo(Ik}+7 -ލt˕I1Y;;x6U<_ QQ<*/FÜ%(zDInZ= 5Vk<5RINr|~4r=Jl:IA}J(-c=90qwB腽3+ߢ\52tIB7L7X)N oZA\8*ltKϐ.lS=k'@OwTY0U/!+PYGoixsmZA4c9Ѝ ڍ&>\$6VSCZJ)YGJ& BNmm --db׃m$mn|TTKn#;*-,:5Œg8s\5>`-ak!IE{}%J0}` # {g6J -|HdMx '6E^hʱ[X -Vt^CSdem*Vq+yojfUGw6#/q -Κv:͈6zhO724!;274*x[[^پv03ᇙ(SI''G8wY\y\@QF)21/1o`i-os}?.?0S+S8n$0E ` ɶcmqHscvƙRc!^G{VL6.Aw">Bl 6Nk@~ƃttнQPK -WUS=8n_org/racob/com/Automation.classuOJ@}ӤM=7o ^+<=I%ٕu#Y~%Nb 87;oޛ~}|$A481!F!քn!ʹQM+y$vޑτ̺R8Y\7ښ9aXYY>L焋i/RTҔb6|Ǿ7YNae{c}ل>!ߪ =|[=Pgx܉{֭cƨ#0~ h!3a>PK -WUS=[K org/racob/com/ComException.classR]OAn-EPJ]>&D(eY5..ȋOA(㹳꒘M=3{9̯?~meP4D5F&hy,AV(H4tvZn{5#(d5 -xkVfz~sEP BEuAjm[awtg]7ܲwcvZmjQ -la -m'صcGy5`[j_O\PsN6Aw$w|©3Y?3'KM7Z?)CąvldZK^݃6T31N2ii FE*H -d*}?2J~kx^y<A %* K2$Vwr<& C(xM<P1. Df)EJ5QR,b,ad s^TQÝs񘲩O`f I:'EhSg$}Y:\N,=̥aRW+0KoCX_K1S\N4#U]_M|F kTò֤͜\{`rMhz̕$~*$(?L夳Y嬮V7lqN\hRtItyƮՔׁR3S*kʟRoȪPK -WUS=..$org/racob/com/ComFailException.classoPƿ -Pݜ9 &i$tCWK@Mig[tOM|wc?d6}(1$==={ʏ?_x2pee.K@`#t'v:vL@02hbK[=~8)PzxNPZl -S;xcN]l}&9M* C?iSF_ԲO"+΃l'pMoff]6v3R >o5#Q -e`imn'GO[٧@h+vh@Źjkrdj~9G%lXvY,M/XRDES:J1ez+Yc/2iYfbm%U(:<̠H28fl-ž!T^UQ̓8\F]9NQQF7"vS7,ѩێRUc(ý%鸙ҹ(#vVdΪtnΏ:C[RORK4WAR0w|K^:ߒ=PK -WUS=#+yorg/racob/com/ComThread.class}TmSU~.yMRZPjD@,մ( ho7 .l괣:34Q,I=L`'aǑ5& LX#17d>d ܎Cb>Le2~j3+q7ʢ5X7p_ _ĢT}k\B %`lVN[WQ3YL{E^j(fscW)JjlM ,ެXwkUL[T5°eWD_t+-R%od(ƯoM8ιE*&fDWŝ%{ DRq+VRUEmlUCJ`ci̹b9hB<ּu=:lJ-$`\"d -;6VM\xoH|^HJk|Cpr69߳5\<͔3#kafD[(&"J6$> EkQ.G+R{¶U6%v(?6`KlkjxF^OV`Ofqj]aj7uI&sTZS٣;& -J;8L @!YDJ )1-Õ,i[-<l e]]K 0LsCx ?7Fm/ FtDLjK)\z].j2cΣZCP]{a8)}CGͧ|ZG'I!56|Q#D:DC#LKC}Ƚ>~齦tPo)#X Euą $Ni_'3CO :ut?KH”Gor'qdtp& ¾8 -ti̻TdPh ÷M%f;A);MI3;pFG.Ғ#эC??b?ѲL qw"!b0b\xDhdFWPkr}p܃04%4i0WPK -WUS=ך[Pworg/racob/com/Currency.classuSRQ=7ې0,$F!P0U`J| -L&.~C*MJ*?ʲ0!}9}?LI qLD%c4WuPpSn)N *&:pWߓ1y)R0%6VE$JnVCo~Y[l޶ʷ" p2se K,TY&E]f;<fl2 mux^l8*#KC<"au !iaI`2EjYA-QT#mÔfInpvmWE2WE^ry<WUnn!dW1dv.U1 0tmK^fXUqU!CmYenw ao0>U, !n[;ںsr4F]#̪cyXP(ڇmߗlߠwW**1^|ə|sS"&zAJi 1(T7hӵw| ӗ/яDV!VC -JwX}C P!Mj&y8a<{Nؒcˑi |)c8C9N{| ʑ=v"PGS5G<$u'G -7g=< ,?b&__<IR*3u(ut0n6[Q"yhi?/D?hf:b5:?#FPlse J]Zw=D[I8AOEӴ!oETS2@jF!z5ǼI}/no4qD8T ؖzJ -6ɦeDwPK -WUS=7X!org/racob/com/DateUtilities.class}TMsU=/I'C$!!g(*H$p`%b|iNwظqa$%U_OqEq^O&z}{νQ6>(.1Fwc|2R2ӧfjc~(ຉ/EK6#׃( Jx3^- -ilƞ $0hAWT3NZ"UNmUj@{MGTvtVlVVF2&׃0 Wm2F1B0r+P@_2dnȆaBU5> 60YJcU 9 $O Қ(E1L 2p⌹Z`7ltp?G82k0T HS:#OFQQ/ ]]M&S:n;86,pE{|@y_ 8+݈ZF 1UWRN^fo24 SW-ˬ)ΦNOǏ54~_qS|v06O5Xv!~sI1;Nr;8_Ez<н=vaz2LL!0~$0c[{Fg!?mMULvิO//as7bE<qfșd!b{^= -,}IoC|j/po?v0&f.S,@\+fg/ir&:XYQyR 'I-jO1?4nSa_PK -US=:+s%org/racob/com/DateUtilitiesTest.classURG=]/+,$1YAƎM6(`%28Aj$ ʂVPT!Uyʳ (S?ŕ-fvzNw=;OFBGj{4tW>?3p :xy O t,*XF4,3>t=7xm'7"$\O4yBxNyeZg0~yQ:+yQ ғ{ 6N'%VŒWeL_+vE)4E^yk!èJ ʮ^yu^]b*\aX (\y蜺obc Z4<5ŗ&B30 -) R>ÍЖZY*)u2jJoM>"7X3Ǻ /-eAj^% &^ba/ʒ:-JWj3=~`:.%Va*cgp #p}A'yUIQE^ř~x򲣓 aKfNNAR*L4xR \-lbN$ը vL>? -Ȗ}HGD腏ZD^K٠t8 /qAU#v6UZUp$]d#Pn0j8N+fFs>+z{4Lhf CSzGwn}Hc+M3MMzP}MDxW!=nU`:ю<X͐4"*w'dE̢t]-"["70y,O"9bH4q-?0~dM u?J%cT̒-9ܡ?{!wp(qBL܇ak1f0PK -WUS=spm@bHorg/racob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΙ{o~V?W@;~(<K?c#? y?;')"A'|s/KB~_^^~ ZJk^#m hAhᢅ@ nZxzK*O sSp`_:o'@*|A,zKY.eB@(hՅ-JU>X&Ж%Fi\rɧ -)@D.;IMWJSҊ]Wȥ2k T^pQwWp綍}jtzw^)' -46й-٣kڔ͍I)B?"]CT&UX4 I;mS*#LsδL )6R,h\OH*;Q`NzR8TU <$=DN -r\#hij xG -rLp}9SHDRxi뤜g -rnD_, !Bϗ7ݵ]韞@,Ʈ5i*UD6E]TiPJ}F&,t0lH19ǡ-ɽJE*, m/mm̂B].H9!ĉҳ"cTf*{7sEfRCa"kCZ-%NuFq^&;r[! 3le,bqu•g^ !1'鮋Qr$40 $V*6lflwF֢6 %N--t;DV!$2dw%1lAgɑFuL r/uNVU_qJXHعb]F`;[E`zAS i5;$ggA@:^C̑qękXU.ݹ&'g0 3N a'R{[ʉ^ ', @'_XN0)&pA||2JV6Ь3nD.|V`x~ 0{7'ۚO4ʥp2gI2?7yI9޹u8L ]8Jr fe}/֚I@gs;m~ F2So߷0\厅b wB& 5ZJwn"+!E_VjE-"\] @@dRK4HxK "NˣR37:9.g -ݻhfY S-dVG3BTJ^d:R&*OycTG脔傜H[ ԳT2GTNN8CxT`\ dԐj2o-|>ʨ]4 cI-& -RAֹoe̖]L2+dzi7{d LINR3ҥ\0pK$DiZ!Pm^Z3C#x`=tx笻ԅ ^1MT!HEkp! ,8/t!=sU& =I}/%`{[7kM[WBԡt*F|gZYxMnB*ۄQC?ˮ bwȇ7C;?lX:?lMklյy:lk۝wэt3LTi&l j= <; *@= -?Wm,݉][jszN -r; 5wk0xw?T`0QiA>X2Ke2X R1Zۆz5]^v - -]46u }Co=C"ʥ9PZn,B%N3ܨl-(B 1N s7܃0f`GWdTTiQV:Õp% SF]eH]V[@3{VuP- l%xU^9 5KIUXҁ.⠋@V65:Œ2֘VKA6g*\n?FN&e05*3)&Bi!n -73ݜDhl]*A C1x#[`)ӉU[ Uո0/D;t<Gq0> f&b+ sYe\wTfu/q23іْ7İ;왁%4HH+b7s0 CAYi65AMaMTjpnjAѪ%`hՄPg"TP@ hG,9:d-XnV̳l޴ѣ8P: AM'SejL-\ede.C(s6n%w{_׊#>A!7o޼L8>㧣Mơduu\R3pC؄UlFЙyr\{/ITL<+17߫ hxb |l޿z0q}S'QK Ԟa؇<1YD#)A(5Rţpo"<Ex<x#[i ik5.YNADa}A 5P -JM xԷpQ@Eg# tyћ#Lt3ZBȋd~׭1o[ʘVblLߪTGn~PR9o5| M<바%63ςKP5yPXga5:rA>Aw0@^f -r F8WҪUJ=S#ӻ|_<:AwXGʲWhڝX3kPCI=aT֩s(gr(g2Z knhF&gI3 {F5pđ8RGjHM!?)3C>¶?c*\iJt -E+nSMqGqGqG1DZk^ -<@`'B<u|j#q6Ƒ8rGnm Oa?~v02@?X WXASƈj].tp: ܅Bw@kV8seh5"N#(X -b#(h{ڽ& -~QSQ02; -TnBmb?m#Q$z~& -jNjYF]41|ܣg,`l4!=Hlt"QQ02(hB|E-`dQЄDMԐ+ ->`#ɅWЅWm|Gc؇Zk` -f4IwUB t7<,"jQm)I1=,)xDcHVݦ4繴eBu<P2SfB>맯=ƕaJmֆp:],m|*I#Un8ތڽTƫnH?*2R@mF@ʏQxiKIrˣp)0glZ&]r'GQfdey/Μ5cʺ 0)߂ʷGmKrEx)-F{PtI@<]bl?C眄 Le\jR:JE @"Z/2&&PXx"|!\7dcx -SBZ/38HHMXF yOJ8qRj ZE&Ex<Ԅ]!X)6.iI%&7p1X#."|2RFH҈?3bs1$d59'Ee4$&-BHVu9"eeU0ԋW"Rl۠߰ :<%Ex2BOVMXBk yOXeKj¼ 1oy)LZM9ՄqF{_ĵO38i5# -G)2sv9~;o#3Fa/_0~R/{-FY+$hYZ?^F퇩|-_®u%}VĠeJWPUzFVbiZ泰>پtw{tcd~t`$ A8?V QhL:U$gPK -WUS=g{ "org/racob/com/DispatchEvents.classVkSU~6 p!4X*T*P(*HMr twåV:8ՙӆZf|4@q89?8~X&Ƥ)!]m\QCW$k~`Vu=żP`f, ->~,aY`Ҋ[~¤/T>P1779k[; l-e%c)+0^MeW`'u'ĺ f<厜]dLXiH&&}CKL cQu^kp66:NcY; rd^77#>2\=3ں1l+O/3\_[TܝOIļ6̠qRAJp'# S=DWT`|DX#:ca8q OXV:,sU> 9yY˺qNpEX2" -2*֠3WF ] Cs<;.ul V-;$[ʡ,Ln3>1*^ 4-7dCf0!4tN g4c䳄N0 +W-#bT96#@u2Up.e9xG7Oe{*VAw&y22EGe7,FPt`剢Q%hWq3-=wd -#<u' |49fPZ&&-!!EWLll{@I9)v ^C]@F}N蟦V^<O vT鋲=I‹ ~/ImR:QB jo?WU-I)ľ2D,s@E-v#{<B}}(K{}U -/!+| 5!H#ɑ 6=BpK=Lgh+];={(SU-㺀zZ)ww(w1i ->Rj>2>G_ɗ2CH9-`R -IUt/2S`PW\?# ]YTI>NQv\yk -囧(;M 0SÇ71*;@HohFFel&3h dRс HRra-}oPK -WUS=L4M4 &org/racob/com/DispatchIdentifier.classWwG`0j5 Lz-ckfdBd!@,{yM/y9y'H5R ?cYs%qNs,ܽ3{gvg1}Ǻه^1gl' -Ly~;-*Z\fY#3cF)@#~ 8$̮뺞 -/I5Ζ7B1b!Wu8Lȿl؂\-ufG7؏Ӳl?g+aӰp*259W~hy5GH^ٴo eY5,ӭ#6o-l,#~(Kԯf -0]a.z*Dv56(c1.g_%c{2\ң9Zni#i?D;^,ԺkncI -ruCYCaع(;uP"{PMGmrkLF%e=_3;rLV9O~ HuN|։_~FzBCPg:d oTU H.jyg%]#iUԛ<8ux=6?ኹ>٦4i -kQ?`[R$K$\<8F:g~5ÎN#mn<gGCDmWl RFloTlˍlD1WAζWJ(xf<yOCΞ>:Џ;48[679FB;1o4" tЉs2mg ʥ{ g=Vl[*jBdS|$.9V燫BebP8l/k bV:W*V}QeZ(:SvO/MᩕSabXmɿ&d=l . /"^ /ˈ+Wīkă@xx xf[ۈowww &"CG>@|>D|>B|>F|>A|>El&!S|a؇{8cgq|>~ |#>_ .S2qD\%k3eGLj ~~ig爟_ ~~eW׈_o]=ϷًOC?0Jy?bJbPK -US=Yo-h)org/racob/com/DispatchNullProgramId.classTN@=lR,P$Q&$+!YѶig<M|G1)\tj܏sϹ~3;(`32Q*sʽ 7 `Ƣ%,,[Xa?ܖ n+<>? S*<n;sX& U7Umˤɵ -X5b7H%'CodlNx_s/QëXF e%'rGh'DF+~M-UD5Wx3H3j4'J[1 ba{+&1lc>SѺیvNDp*tMc&`8\YO6%JoªCota_(ca]C,¦>q; vwGt0L2c=ا=F+F:%I SV4aRy{ф<Af -"ҷ3sei0h&ˣ'+zNp|y` ]"K}V̋3dsNBG#P4OSXSM`2GRe]# )j(uRv anv3 ow6YӅPK -WUS=+vK!org/racob/com/DispatchProxy.class}R[OA]X ([xn[ /&<nvL ?xf[(>̜3ws?PC̓ -X+><<GCk=ck=q3 Jɰ4ޯjv5Ru= M{X^*ɞGteauV߾{ʰ8Ϩo)(gNuyswEHj4JU Z& -ZPG̺J8p(x"9xqKPD76>_R5ev5CJ;~Mb4F~l4|vN͓HdGxFr:k!,<F.,#'IP3t4!!|1K?meE 30.q,z&6ԧ+5*5E95[}覽B[tVPK -US=&t org/racob/com/DispatchTest.classuON1]\Wo$6 ӆ {6RtC6$f23Lϯkr4KHo[B|BHQ:Yr^i7Ռ*9Hg^pRZ$TŽ_Wӱ}Px)`BoY Z' ǿaw!0 `x PcLY fbn]b1,Ў)_Fí"mEPK -US=*-org/racob/com/DispatchValidDispatchTest.classRA !B0AbP4UPldqL<Ox,|(˞$rALUzvw -^0xc>~RЅEh -PcY+ܖNwqO} `nڦxI'k0Sm =VB)GV"o)i.ם;m,inٿ$ QAAu>Zֆ+ [lԍ0PLNRG=,nvZ -س/%/V $0;! JDm&Jwʮn옲$ᶇ_T bHCPc;d#‰ iwJaz(P$x_,Vp鶒ˋY"*-͎x`WsI2Ժp mx7(,EjMyYac?W6yɐ$wVbb˫-{{HfT߅O%a2 &-/P</ ;˰*bRf W#*?~ԖbBR dPrfو'h&[04s'`Y_ud՚cCcu|M+&R;PW -+P+9['m(GAiKQ2|ixxDF=cRgZ>E/S5fP ~ -t M1E\䋑wbH$_~"$%t5eҴI:[qPK -WUS=a5!org/racob/com/Documentation.classQn@}8q )IC P'$BT¡(J\9^:~PG!fmٙ޼`UDOTU -m ,<g0C> )?né{G~8}PH/)f"Ҟ c5f` #? o;r|ubEmNz<Wu -?ch d4u#ɱɹۗb.˜Ǿ iTu"x7wYп]$t"'voe6PQR eXui|*mz2^DMRVS,'ә*u.`4o`jz 4_ӭ C3@LEB*m)%BΔ3Йrәc&n\:U޹A!vҐaneN&y;[%3ɍLJ~InꮝPK -WUS=ZZhorg/racob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4K!?_|D шQs:`m9ޞ}|n805]q NMK~2!xc Odxs2%,0rݨ1 N)h]Lv%]S 3id)v޴LwALfSrkp=gZfR4WZL;9[M5'vfݪWΩmZ0IIvچebX. Zg [ơ1 %Sm -;[wamI dB#*ҨG{ځ.kV)g3o,xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϓڴu}yP7<?N`{3D˭j\̥:[@$%EEKe?\2]5} +{#0AEq  -Gh(F Qccjcρ{H -cph YFjowOH*B'8;AS!_ -_R`ʛ?L#a4L> 6#|6a6n'~B>Ew,Jsf@-QQMe{6x) % ?ARs{JyAK9j6-}TNPK -WUS=қ%y org/racob/com/FuncDesc.class}T[sV^"_8!&\mbH ز 0(Lm)#iԇv?l+췻9ߑ-x) 42{d^44ɴȴɼJ xj.U.7"5 -d[װܶQ<`aVZ$S<,^VRYeY /[x\QLJVƞZzMlJ.NRKmNkyT*rO9X[ +7Nr;5,o +TSKT]uU5QqIIL^%Z 5(5eoLf{k:0 ѵN~D#=hAp7c;v7I>Jtq?Q]=\DL+=hg:q ~ku ->unBQ -mb}Ϋ]ˬӤNRkNﻃ}UVb:Wtc2(cmxmt"*, LVѠs&WOefR>i~Wtcuԝ.87Qlqb~KJdlC.l -P{'"o?Pڱ3"ڰ%d՟_~9Ë/%Y&e8ˈV|xU>x݇!7[op;F_$غwd+j^|RW|>B/S>NFWFWG .fc#\| 1Ǐ )f#HFCiRl5x8 l&v  `0F&0ƌ21F3G&GOq,_/8۴iE֌0.`' 7C߅AV(i(9$? %Bɩ q( R9{Jw7#i-#Gb;,ϳWnH#`#FM%y" jlgN"Ttd=PK -WUS=org/racob/com/IUnknown.classTmWE~& l Vm1IԊKh -HniX즛 [59;%㇝{>e<N5<X4>#[ѱ5y˺=&_D/5|cYGO)ŭ0k;jؕ{k_Mp=~𣆟cڞpF3[LFɥN)8XdZK=a`L1}ЪS }RNF"M, kpM)ʐwhV"mǶҦP>}ê`ʲeEXTbGX¨.jVDZLےF*Ha892NeTsM؀+J(40f=#(izNڮTHOm[Fs/_V=TݼX7Ee$ ۱ )Yx74a 1~sEJCmOnjZjxQ!#cX 78J8`s808xOe]>2,xNEEVq%/0y2/nD<pvgk!b -Ӝ3i%JnÍNjJQaQZ{H:|u]Cv+6h7hTQ. f; 5%r {NC0؁RA"Mf],\aZEհ*EqŪ掗fd̜k(קǢIEL 9f[$-"D;7yv#PGrU?Ň cđJ@i -4&; @L * /I&%o/1c_È`0[M쨪&J?UڭS-醛i퓫Lgu |SA¿?K[T_q z=Cc$!VàTpQ}B)A*i, c1xd#:FdK-؃tbtwUhbc3L0;"gzݬAt:F?I=PK -WUS=<. #org/racob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg\L-d-w#w6)8[ےEk2&CE,pJױ rS *,vz&07뗒mJ/>k#[,>-6 !5ႆhe:%aNmr'PP#<fha""ňN"ЃN]c\&5LaZS<S/hC?miyU2e䠙uױr` Kl[{b\J7LSfhO5YwTV'yRrᆮ*2w?a2\Q[s'>UM8HEY_l*JѴ&dAs1h2Cya_A !|f%y^zYȖ+I$}hCN(t]^/d%Ag>7%~cҪDA1\Bwr8!QxuNC\?k#QG(Jsj};PwpfZOtA?!泻h I/A5!TEr8!HZXLk0*FޮZخDgݯ2nPK -WUS=ʼn8 .org/racob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#@!!tf:&=COOBnbKf@I)*׮XErmuϘMe{޹⦅~Q8_ݸ \ C^\F-F«aDp%B&!c - -Q=qL`(&L*0CH`Ia~!dPz;e( -(5 uI]ǰ\zLw13U=vB35ǐ2w I8ZkInk`װǾ1frmA\ӦSR-cXEr + lH_ݜcykzB#tWw'"k -RRPOÝ9u#g bكĄ/^U6M=mN*-cX"gŠe;=9W=:}ZZ_#XȀYRjݮ]`k|E )"*]-1٫eb{2bg显tk9 ː9ml'Ep@t70C‹w=gI-W=SzRl75ouH:m\T}WլFތ-܊m>;(KLlT?Ion 4f"c uf$صUUֲJW)>eqI1P,e3@`piϠxa:vZV4T%۳'ͫe"ƴxFeRjuuKwԘؤg=j3.E곪Tcvp :]<!53D{-L&i1϶U<V:_>, E/Z=Mkl>Kd'{2o--~6/s+4,+Ϗk8Ė$=ry -GJd5JEWe/6V.c~tuF^xZt#vбzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=RZ9l+h@X;RK9|Es4>6i`$JѠYRGץ9lE*Xk<y>Y}mX }Tv"w5V/9?s5 5'NJ`}hH`?q|s6vgۊiD\B'fp,>A?nc_p=MWWǏw$td4!ja͘$+SD=lq6w]xDIn~r z?y@owL0G*s ^e˔˧FpPB'k):D_c4*OPb_8"Юt3 tsp (87S<GAJSBA~bPK -US=C0org/racob/com/JacobDeadlockTest$TestThread.classT]WE~&KM@TZk"R P45@mR*ԪCölfS?G#c Q٤pby?y?f~7L1ku3 ´Yi& ,,&pK&M +ZᖾCMV-YXp;pD]# r[u*-_na -ti<tnk҆@GQ=ymGM2!WmeGEUiUd=Y+~PogJ~%sKs<G‘4iE]PZ;et|,330pYaVT.7ZqM'Lho`8g#Q1*0ۖr2tjiMlxtͱĮob#Ra6>,P[#HU8^e^aiWNwd6>ø@ͯ}e m%k&uT)VHL|aIobPuZMUɌs'TeܿoXɃ<1xy֯dƬopӭg,=Dʪc"~6Ä dJ PJt8fYk/<>sQwWc g\RmvsMJbC8C{9{0=t<><98э "uZHӎqEȱӱu1z"BY6o#<ǩ}t&&&M$qt9Iqnrѳi='y -_M'KiӵI -\%ibI\'"f9~SX<b!kbXel6f0@LLZn];Ebxgkt&WrKje.nLdkcV|9NADh|6(PK -US=G%org/racob/com/JacobDeadlockTest.classrDƿquдuh 5M!@R -P'Nk7LßVb0W\ -r57N}ށ)843svov׿S, ő{A -bAEAnC 7\ IlcXò+ 5jM4zqL`oZR[%т1nXfg6hl9zmz5cH {,*Ae{FV$eb2mխNV2lWv`1G EOXU]f+ל99رʽ#g֖OXN8aqG$u`Ftv˵ j}㡑 g7[FQfC]4\c%UUK4qLc -td1#|+{.I3:J):ְNejQe7Lﰠ -6ds[ 1m#73Faeۖo]먢.腗d)pv!*d) -$Yt:l#FZ*ْ<Hm^\ؐnU-?_̱<lӥM7$0=EJuOJk||bb/ *}^9rVЪ}_ l2Azz/BE"!`1r.S>"d#)$x^ϻOR.{''rJ4$+' K_'Nqc95+Iu;Fȷգ,8WsjZTI%>r/NۇZ.W1\ 'ơu1܏ۇTZ"J NRt{X k?qŜAc6[a&yO籪~{c"pHE#kTgPư.H;;Puf3PK -WUS=o\"org/racob/com/JacobException.class}MKBAi}a2n 7AfYv !vm?Z'sRDbΜs={׏g5,'QJ!rp$J.X!z|K!' f!mK%:/ R'a96c޵tVڱM[oZzdPg(V7|!Wzfr;0w,q(OvnGO'r i0ǰR ߆H|=b QST#AAUI:f(րQͳGDBQbn`F70KYz"CK N RDuI;!4QM AG LPK -US=SW#org/racob/com/JacobObjectTest.class}R]OQ=nY|hwU4fFHnfğhGbKJ>̝33gfv.W6f:۸cj#"fcƪٸE<0YxPx##2C~_Ü'#E|<eO<lX3ȄaSqǍy|7P]>G"Ї"ѻ ^_했"@@Pe,yď,<qPGaܐG@2D̰vɤ`O-<sM 6C)ns-Зh2w7{<'M]gE䥈TjYSwi!뉨ͰUmp]J*BAm|+u1JfAT*'4`+ -Kkqqeu9t3<\ҌI -/,YI:YQ!MdIkSLF -HP`dЭ!4+Q!A(^vgHFPK -WUS= w$org/racob/com/JacobReleaseInfo.classUmSU~. eY) - Z%U[m(Pӆ+n6t鲛nU} ̨ߜ?x&Rܗy99w `s*{HXPUЅPAK2fEjx$cMy -U6)kØ%m1]N!GMBA-T װ-pn_;Ԓfy1R,h'jfm}kw1./ezҶzmhf@2Y@,LE /W -Y - ٺfnh!uc{b ќ픒ۅn$7gS\NB_u2w<k'RKŰٕs=z fAB9\;8Cd+^7'i%N唠S15$۩w:_ͺpJޮ8:_4"Nb.|WOBQ鼔Y./0`S. %O`0'߅e4kO `5k‹VgG+.=nj b6N,. kwkuŅN*¤8IPafo-!UoDPqEX2bp@ - EXdY*|ݨ -1%<W P~T7RS=@_$޳z1\<ӘMjk1C<vo6vXZ0 Dn.݇q3OMT(YF~z2pi5z!\E7DW<Ղod+^용MPɘtBYE3AOئOL@fZ)ih&i݁:iMdILM#W>dƐoT1>W1&NBV9F3BM^{ѵVT*{&ýU7 Oփ`|j׸pab _ޫ*F_Q7!EqaI-Bޡq)>yc>;HE\&FIk$L/ >3?ngQzuQS*~ Uqg~Ev/O[F7Vhȧ QVm"ڡ2O5co ,|?%B%%y?PK -WUS=@|s !org/racob/com/LibraryLoader.classWwg~%3 LJ\7BD P&HhU'C2dw&K/V[[Q.K{N_G?r<i}ޙ مxrv/>z}=(F!Fd_Rra ,8`d*(<R,TzT1Gq__W ߌ"oxX*="Jc*q'T<! Ox* - OgY -N -50?9HLݵ8b53===}yMY5+9DJm}zcûMnޯe}my;­m'`mSߘʘ2'ed& ג1X9 ǝv3՝r k5 H.SpW"Ѭɧn LϚYM AwqV.Dz3sNMC)s$,VҟS}Nf$3nz1gx3 [LchvGV{Fj6i>|OHӦ5kQ?[ZۖT]ngҲ[z-okppSL/:c4SqiTyK1r3@% ?5SNUxMÏpiix57\3cxs\@L&.'~ ?Y ?/] cs4 -  oӒZƏ<3/-%~);W".TP$i8pz5-(U2]rrsy;.OrB32_ h,\HJk2ѬG;TWv -TQ#fJ"w54<k-;⒇#"9@%H9h6 e"Dw-e|[WLA^@rL}M"s/1W^eu3F.Pۜ̚J9hF:ȓ3]>=>Viտ+9xn^&eo 5؞aٹj89f]JǞxV^,ٳs8Z6וaѶ|[ _mvߴUCy##9 9H9?vx0~*RƧ!H]x);7so9ֲsϟ-;o!g>&ສE_d$ދ/؁\yϔC'9a1B_B8QH7JH{ˈ -B#756uC8IuEIv~+h.cmtj$;`{[u4tGE,/F&_G"6"9 5icӒ>EĨ7Xd6k2Z}We]E~eae#|>̶<Bc؀DZ'AV<=Eg4q-{"f^sx3ܽο7pK8#wU% -ky o6#Q{=PS.)(b!N2vܐPlN 3.!7 \IQJ׉ڏQ^_RClW0Iۿ*t. XCZ`%hT/w\ZF\!?}_ajoؒ3q7y]SX9׮9&: -ЉĮW%5r7)m O,؟ r_ZY ,\!|8z븐e?PK -US=Bx%org/racob/com/LibraryLoaderTest.classU][D~$ va t(lv`SBWt}w>=Ma-<^9sΙ=ٿih$nhƄ)N;j3bVg:>7|N]~kXP/u,X2Ѕe <WdEC 4|rh97Zb`]_e!7x#Mt9Uf2 ہKm,<^!Fs W#ZSu#D%!C7}P]=R˞E( Zg9{?C+*tヤG.#% -l*n!#!EvDrѯ0bKG<p[}g(LM|A U1\9T.ŮG =2}RXoݞ^rjkca4lOړNV<o'D7 *V?VYߊ}Ԋ#Z/ܨj)+V/NA_:Lp i"U 26DsK 0mD],nHzE J]!媳IP &z߸A~jQߧfi§'r=JkKѩVǤdm1 . -GA]E͓;kH`ɣ=աu:KXMuAʖfUŎRT9a"*}2)E=F@*EK,|G̩< T}ka @2`jDI)O+kWiE%Qv` !>a1}h՝;Dd/1Za~4n;y0C4uWmY˛5g;j|m!*_"gНȒ?F/-^Q8D.MޠM#z0Afb+2@n{$-#dr LQ(H mS*Yb<eS; -YZ5|Su;:>!0V,Db>k 5nA]w<'oPK -WUS=Ldorg/racob/com/MainSTA.classm -@gML4_+ ;0`"XEhΟ,|JD]v>f`@6J6k(cyvgE0'jʾDz)=B_ -i+"T72^,PgFS/E0%6 _ -dd۬;/@{]fRD i}PK -WUS=EF5+org/racob/com/NotImplementedException.classP=KA}h"6&H8Do.K\ { AK K+8w "̼y;abV  TciFJGgc 厎b+";\ޞ^/7m;ޅn ;FE$T<<Ks*35O$8/2kULhzL]#|=v}m{,\rf8oT:&n 8C=7$`DX"ֿ^?AD? #<OQĵL 6)quRvM5> -*SZYPK -WUS=5h.porg/racob/com/Parameter.classuR]OA=eiPȇ`;(+UQECBBeZ2_&nL|/26(Їs3<`˨`CM<RŖ' v(N8P e8x`ɐ2qP>&2 -Őa"qvpLd޲ڱ>0^yGsQ<cяz~?:""LhW e_!vරUtDveO{ANWC=J졝C3wSI H.;iWwizO8KS$RHVb\JRhwh_]z7A4T~7nԃIU<L)VPW0Y ]'W0~$ԧ>B]]-u*Ygδj6 =o),SؼapxIQb -7%,(!شLjd5 I*)X훴&ߟo")GLwʓ;媠;֝rNy+NsueTս Ep^21^1<yH;)G^1Wf 5#\ȓ2<yHnN1\̓u=uPK -WUS=OR[org/racob/com/Pointer.classmn0?7icc [DA DܹRgJ,{nv@\< UHϟ>OOL {8`=Ju4Lǂa/xOG"{G )[4ɐgKgr$x8oRȞ2E:IN~1gx+g8sjcy|_\Oz|<c 0 ͳXJ}s`~]40a/Ctv[/Cs-UgP::8!"x2\-ͰJ[O/`ZuB?P;nJYEߪb ʚ kf$K֩ӮkT.|kt ;c}lDȒd6V~\-5Z5hUT~zJ`_E+ PK -WUS=zM(org/racob/com/PointerWeakReference.class[KQ'm2M`-at<lOZ+}h*ݰ ̜̞קgș ƣŸ L20-`\)k/*+*.v$Yu=&<.<uF5qU'ϡ&54w$^W'$+m5/+JOeڑ]wÍ3.0۝{ *4? ^kQJ{T#Ygy(}p5X7B32 ZH ) XߢKOAhi$!#o0yg!X8Q(s] x qN2veW؏5aN8t S2:Wh!Gnw ` ur2PK -WUS=ϦF|qorg/racob/com/ROT$1.classmKO@HPvccѭD&&C1u&ߥ5.(me&{>bBkX``Ħ-BK*ra+"OJWLǢdZ)t|ZWpWW?9w3%a2yǏ4;>Ws/"[~7xnDr'=ţ8 h[ z:\q%TqF/P*FD#=4m6PfdBg3,ϸ)ýf&M?Ѣ(^n4J^2RjH}XcЩ1|<̽L c.!7 gXI]TӳTӾ@"vXPK -WUS=org/racob/com/ROT$2.classRJ@=WXg.\ #.a48DK7 - -~%Ds+md`aA (XX̐)I%=z!uۂ!_J7-a2Q L]cC0>!m:nqkg]EdI_\[\[\]\5q)P"eG 4D^Z>WJߩ= -4C|ֺ^@pq&R9uOhF6)=:'"궅, ߲0q!#I-a|-{ѓCyioYiHo<=%l&1B6I ' -"V67'$G~"LR"20Ә,bt([PK -WUS="m* org/racob/com/ROT.classW xTL< 5Hd *E$d2y<27 j.jWb+$Lk醭fbw}_4ΒL2ڒw=sr<CXfa+^6[=(kTA>k]wNV^.1^AX7ͅx *>w/N8)x&x.4Ã{qƒN|X[#>U>!w?%(xA|Ha >i0aXG=򴄊⸊<X#Q5|B{X'=8Oih *`3{y|Aţ*؈N V2B1[Bac `m{c~;`ja#wLU'v4u)]@,`n#B{vgSuUk[l+3jusm9䵷vp3?`1JOC]!=Uv7@-ԣ`=K͸9٥Ǝp_>"lV[ f46PVlwN"+o8Xy^+*<>f,ieso)!PX3eɜ?`ytx0ǜN -\V)yэd2bým1#G/$Z* -Mg7C!b+(있3F/Ȏ`$mXiLN.َI.gk!k[Qb0'ePEaX<v:nʙ|g6z_)p^Z%e9V*#?j m1 -s0Wx> -%0wZ"˳F{tt`]حx-xmq+m: -n:o -VR-}|V'?(Lo wu|W, ?c:~(X\;N:~&|zJ|]UB/pW}hц -JfJotт&{Ѥ: 7 BјA>>RgDzk| #VGYc s8őS_7?d5 -l (BF4jҎÁCWb n#U0oJ Wf;I5O<Î٪Ycpu<\4h|Gdb01BQ.tgJg~R㸽w8+YdE][`D"f격uV>*a#Kgbvڬⲩ-l"Ul3 ̼)I٦I@ }&(r6,Bca1S\<uD#9-Sv6Oo¶</ -Y^HgHМ\O̩hgd׈IzfHH EڬHl2*bBP>%Xa{e.trY\cZ;b:Ib&x]Vhd?A#>j6''9KT4;~1Amț0Iw9l㯬Y+vk,nqqDt}ѻ95Frmvv)p_q3EH -t'pJ5)!OOfl^,MIp2<N9X1γ( hz$r>ْ:G9y -y ?UV%pɩOJ -niJ:"U@ʈG# ǝIG_7N( t!=WQr6z U.l:,N"zCX!(=\aIKPryg ţvVTe?p> a9g( ̻aXJIjVlpn-Ґ$ J3o9?%ڊIPWf>#c'ڈ9MtbK` --2a7x M}LM@]+pԣNeK,1Uq㳌|/1r&zPt+ϡ\S*y Ë;H%ͬHj&Ab\K5I4'ú\o$(w-\&YNJ4T2BRPQ8(jX85sE, C<9]frxU{*a\bQ@R6+%roi{~o6 d0dyPbT2 -\u:\͎mdgXS"[XۈLz\&L!3ı1Mcrf-`D]Ax PK -US=Q5 +org/racob/com/ROT2Test$ROT2TestThread.classVsU\IRrkeA(IZDE r+-4m [ݰpUĻ>0qq2>.ÀIKow}m|ov0dm8%W)'7 -N+8Ar5Yd8jq#vCx'w#jKX) Kr\DKQ -lEg&[OMWD5YrᴙtE])%=c%2v!1;nɃ[eZk6oPYԸҶ]i4<5]R@gt% -ni1\'6$足t:eZF_0f8X:̀BV+P{,pzd| - -#vIgK ԚiWwnl~lF%ZϸZM2|[gr )]#{Z(mQT)pf.E/f!׮hƖIe'c3ef#픒*vSEvt}G.CT@Tiوbf>k8RK*ʸ¨/Up\5qCM/KKT/vF5 1cv MfM[Y-|>T|*n㎊qW'XUth8eyQONТk:[g\*+x5Z5[ϦrzW#%g}zEыEâi,aUkhZ8!"\qWɛ -k1!?[`_1xaefNϥW-E.CdvA4U,v4u,.Ni^‰QO^q;|xzy< 2<o/gb7i3䷠4FJF4h^죞\k0C_(/!0iߵInǞGPF!42p| -)6$P7UXK0|WgH 0D{CCjZ9ih$fڥP!g"*4c7owZ -y@whi E3(c=|w#6=D$Qn^ Ch嶬$3Rɧ݇h1Ċ*c!V0WGXIsu}g;g/ F5 &8&D?bqq/D- {e oWmVyV-V9T;f0 ~Tp ¢1'c Q i445NT=V;³:PK -US=d45org/racob/com/ROT2Test.classRnQ.?RJu(7.hc$6i\]Ng̠/q]|ƿsZI|s>xqXVpEJa,ǰ*y) - - -}W.ZmnY0iڦ!v"[NW0-vmx"Mt]S'ʈoR wq ipގ,>33(~@OȐ=%L6}y - -Mgv}SRJGT\E -+;CV{FwMWVW'\*(Io!\<CAvèqOH! ¦ew”jˆ:c3V1ӎQϚ۴w].Gc ZDdIvF#9CR#!<褎0 ԷuB]tŒv^"3t皯BTIt_$p@b1Y*$.Bx9lBCrEddŎODjB8m_$9!}704_^ *~PK -US=` -+org/racob/com/ROT3Test$ROT3TestThread.classVsU$)h*i%zINӥn - -Vuf*"-g|q`&)鍱|{w AtBXtM E}byL>H  /Nyq$|H{1P8BCB6EFw3^^XtfðpNÚaT݊\y2 jV Uma5tMCEU;gr6LM5a #uLۑV[隭鮜ޭ'ec(YVUs4:{vpayleh -,&VT65={<Q#Ii:eQiT 5}Xgj1rL׹M|" gpj -g1TjݶjQ# n3 Еj?[HE2J\VJtf.K<p.f$+ee)^BnCj Zyjm1 u93j"SK6 I۰]\IS3MuDt8K&lf]0$u9-+mq(Sb8"᲌+xW(cK3!RWb;E錟 [TA JHƘ0Z;80LdzRI%Hcr\(5$AJp*D Q&O :Luʑ7"a\Ƨ"9ڧ׌ڠMA#N*ʡ (IϥC'Cojj𕌯qA7 WҘ?AY6)5CQf\'#[Ҙ*Ortۆ&0Wđ1e9+z, -4MwuXK%2+yAbQgSN+pkV4dS;b<C]J0Yiγ"E>F-hF(%æp5)l6 +viꟺKutrp%e \hM/PU%ّ`4xI{Yt ,y -ܡ"7A>[nᖑ2q2I""TfXp{];r )B^laHwBEhITVD'dK7OʅQ&i,_g樯 2#BfkṍI56 iʋ&Q廎Dʚ?#$u`!X[ -A(RZ/~*{hpTO<_vhn(<i -m(~s8 06U9D-?b8H6G;}t`]^>E8Ϊpգv"΢HX/O`]F"`3l6aβ?p3+J~崎R?275b{PX˄҅$-ϽBzR` -b>bx@ƙ -S'AYh -fa^qyeHv즧΂8PK -US=3org/racob/com/ROT3Test.classS]oP~+2N7tqePG!a3BxNZ~^S5~[ly?}؉BŪ5Q6%lE -tY'pFàV-K8>w]25-ӻԳMPDʹ%oɒmorǔ1LT2qڲL<b:7㚶Ub`&UQ?Sx| PfM)(~Q|_r 3lWuEc5cZݽLkAEy TP ekn퐳0+BL烁yAݾ=g*Ihz2wij'&| E\q:b -&T"fNe mBP\%YZa@@-xO˟׎8#x8F(aFA!棽gc_؛9;BԷ}J DS4Ȑ4`GXHB"H{r'Ol:*IݾCQFe+9Fm/PK -US=L[ org/racob/com/ROTTest.classWoW]zw<: ciG:%ljgwz'q- (-$))|A6!!!U R;;~R,>=s~qgO`?~Aj8@7>XOB‡W#xZxQa$PY5Ԑ \0p1KqX Q`' Gmj4*.1J))\Q Zq 4<ye >Ẇ>̟JE >gp396HmT !Ӗ*tGEJj֨j~6 9DklG)u;=2"=qM"yxe딥O 9?㚎;(1HK7?oES\`j7rNаށch\nK`";u]c -^{UyLWVz%-$$XVN<L@:8q,s) yL3CFeþkU %yDİSqs#bݮx =piUgp!ZIa5$b_—J_ Ӫ+t:ᖺH=ݴu OVs[Yce^ddԚwa*QI|P7놝 >YMISۖcOْ6/L:-9W>л:vvvpU d6,WXQ˳I|r5a$Ykּr#vQthغ PFrՕaY<.syWZNʒN龣3sRWIvqtTX}yWrY'U-9=גJavXPCADY.n ݖ5J iح^)&=s2c_->VOwlYMI/HZUZL!9nzeU XƓb= JRJeoS?]nMWwi%~s]e5{T*oˎcLdיRBb -&ۿ<Ā<5Cy#dQ_ -v+Q隅)eOޑizr&2;vn+=&V;Uۺ;qp}FW,3+x: nZ3}1OHQLr-iE -X}g -+DeW- /Q.Koa )lԺ93nǚԊ138^RdPfph<H[@Nhz&Д&͗Zc:|mKtx*ZD$WqY~m*QXβ]o3P!Cup@ pcʀ,xMX#Bu+YD!:Y~8-N9rѱ95l+Sij.6s1_"ճ%:\[rS$k8ГmI&;.tb7=з6~@`ʤN#|" S7"CoFǸj^qq!Avv DMk#ݱ:eѴBtØn[ƻcx:n[lC&56`4޳Iۖz\}p?2t6אܼo S[H1jmjChUc6vCc5J&^%κ1=5] ;Hֱ 2s0tGkmJst^,fMGU!luFgثپveYG_6RA)\oL L((Ƥ[4Zͤib43qZЏ`20H0uY a'p_i\G R_90(c ? Ib;ry ) Ρ(.pQDIxψ3pES>p5g<'烒(c%-JџqWWҘa4/U:QzJ'FO qj{bi)bAaêTqZTѝDocϿpscSiJ~͇-,/PmǏ|qAO=A>Gb3pQ1) AS 8/PK -WUS=&<'org/racob/com/STA.classeR]OA=.vٖZX -1iІIYvqښS41GLץM=gsط`c4YXŚUBIq -nZ&tL -ެd`Uԡ{S6Ìw~!d7b)i.üʖ#6/l;C#~tdixWl3<.o95 (UUC/:ja_z╯d6f]fFnڸ -T"g6سy+a+I'Sc&W:.7OD x[ 7M!J"tw6]7]꒲4et* SV@b@ 99$)c=ڌkE H0Dt0i75TZBG.?%gcaAױ4j+JfSI$&q;+dqb\vT2 vuD_E{ߍE0z!6kұ1Kg/PK -WUS==A org/racob/com/SafeArray.class}V |Wlb6hHK5RɆCS6 ,KXHv*jIkQUiՠj]^xU]K̼73wGy8V}g!,_B DOAÿx7 x*Nt'Y XHhp/v, -X_eK-xۖl`[2z̕cÙBjx$Mtjtcoڥm٢|aJ;djkfM\E&m Y`%,"31"I \VX%蟨G- H[Th*7ґ,UlfyN15FNSE#pVےɶ.YJwOf}|.s*ox{&]"NB~+ͤry NTLYcR<w'(lY͚zGRYgE\8FFOr[PAH9fnP KBaTPB#ɋA]蠦am٦(ן4 -:BRf2 jк\ŔSZńVCRsحn%v-TZJdTUTi wh|w\}Mxp\M͐Jsj*a6KzpO3zգ6ph= vqř95 -ͩЭHITI }uaժp.HTW\ܕ8Vn ;&iZXk’g&Π-G-kn+ 9L3|!c&-mZ)_+e -Lr0T(:iH~ڈNfR[@)6bt9.!`ѭ767EF1<sbLB*%CÈ; U/jS<3Az_=gNQgI"&b҉5z$G>kBŊ7m[8읗R 8XGn[2č]"xXH񶱘i|XJ0Tʗ_5%kœWg,$ބvΞ5~&{~9B%'VP6*):ę6mmd~ij\0n/ga0ނa| _X^vO ̶k, Ȇ=<܎;hDjNuMdGd -a+dұ Uc -N,}2&!#S #JwOga/4.{y(vrĹl$,>WϥuM<8!gU!dUCm糃BЀ'雂^T5\˳&K:K4fZ)%pO(<]cS,Y&}>o^T-Zb:5>ܘnVwh5&13l/]V%؈Z\S)F -)LVh 5RAt1Gjw}qN.=ی.]^\zyjU+yX!Ux/Iwc59:_㜻᳎{ !W6wQvWNl$%Ƣkg&XEjR\& RBL1Nx=x`/ ^>būt;v ^8 8!MNq7Й2әܢ܊m -nWAGcpL1'|f| ݷbIp;oK'o|^.KR?fBsKxguxe[ -W*JV&jF񵊯|= GWGWD]^w - o+6%VM߁)S]z{V/x@o8> ~@o+~PCދ+~DGnh~v ~PR<*IOc ->}Vg?y|A_|X# =ׂ7ŷ~>~ <i*|M5Bfiwڋ:}_>шo -u+)i=~ GHmNS , S{f7[}֡awo?&WӎRNÂN@$:`Qpei1j*b)ƣ-&@{]p+k㨳סɾγ{{qi76jn'>{#=A<da{ {3NNIALBj1?G]ȃ5Oif巈] %Eɂ -#@%7 c/qKw -W4UkZ}48n~Ӵ%~c4iJ)w騂e+cŠiz(ʆ~/x?PK -WUS=X#8org/racob/com/TypeInfo.classXwGkey8e'qER -%ZZ9ۮRZU"INBiʻ-}(PZh U>8;F㍝sg{H#oÿ~1 -__ykD~CD^'7;}woDDDwr>5y++K7v:bx0[KvHzdY*:G|F[2$@Bv &alH1JS;N$Yl}P GLFrI/-붩b*҉K -d6mnQ^݂ Af",RzS *&ֹ0ف|&,sYİ)f -i/Cqc(g=s*6E@0zS`z*fDNʔIgy8bT]7ؚ +k1nDzU@ĠA {V(XKi{颎%pP3z42<rqxܦC-kȘ0(c6z1XeZٶrib_7#d\ԗ5޷xޟ!~ *zԟy=o;# Gto>_R֩ -ex|x?&e ǫz)Ŧ (8c(b wJPu˔y9,Xj^VJچN77NI^@1viᵺSm7j^Uq[Z#`ԩלvGy= -ܖ46c  =<b͚7+nvV.%\uU#̙5 llU[jseqXD oFכ5ZR gRvq9۱Ž&[*<l AW -E"^.]N.b0D^nΌ3T1xUWF_[UɰY[ې42 cu2  -Oꕆ͸UM})O+LFy"kX*kn 0q y.,ѽWl~s9q`G-[ (p*dIޠ8>z?2^jnVlD_VrBS4QNTh49KEM"5 -SpI[*< Ϩ,<O - *V2wT -$$0yU?9f 9&xq6LtvKި ؏=8 {>fG(܄}~?x~ #opS?* -Vċ |;;qğ?)O!KR~T{${%{G!^A 8xYGR<J'cJ$yɞ% ~E%ԿԿԿq' -!ğIğxEOI$\Cx>rp?EBl_|]Yfs*>TJ@FR0JJ%].DRhD Tb cD Tb ohϳdς09݉L`oW`bO>܅?5Ћ."(ٯJV}wa{wlGՈc"qR"0[zO+˜P*Nc@尬\ T*|-@y I@@o* TyT@'=GeϏoVVF V|_lG[k `Οqw?{zWu!''4mhxFMm)y/|]LS7wѵM;ؙ+h*~Ĭ|^,G[=%m~~r~[F7-G6O0{usW1ͽ??PK -WUS=|QHorg/racob/com/TypeLib.classT]se~^nI`BP+llШ6JHגrㅳ![ܖfǭ//LigpFs^H`|9yyߗ tT,|I차Up[%m;hbŁC_ 0v7fnv* Du<:fhXW̓CIQ9H.F뎱WޭǸ@7Rwfo:RNoK j;H뛽3ļ:vvmgʍݴ c֠_C+ŜmYyԷ5s`#޷6upG{Rjxj5#⪜Y=sD"HU&}F-$-=TQ..:…"B]˅b6/4I޹ȹ5.Pv'㙞 B3,ϥPl@$ S˩O5R0J|rU4dyhjx) d5"b)`` :5RpnSa 7~މ9Dqww/m!ZaMT,ROO_ iʿJ6mFe_:UT[$&aI=;BH>BXOGGQ=!&ɼK!JLT$i!]y2c| ?[8$-!,-f֊Dg'IgPZǚ?O͕y"ʲ .ec\h>{!e%E%frOWIh"曣2}qʺuZ"OC_ -пO4O%&5B'⣀Ùb=ΡśűOb'5@J僖 :qn6m 8NܱYBޓ%fv^5yrB{N^\ssPK -WUS= -Eeorg/racob/com/VarDesc.classu[OAϴ[zaR -xk+P@T[dv[ٖ.g?HL|0>lfho ۠ RF KLB\ӥS` `Ln=իX ;\QR\UZYP -)nedf5E+ 92HSՠ\YdEsû]Wu5f$zY"P 2=PIJ‡ל7CifcӒz-mj9M7"X-jFɔ )F+&3yJ'/gu R3֮fjfbuvdžU2wZN-vK* }f[iEjwLޮY 7[zhԭ# &S/Åʠi|X}ѩ9 ^s6!*: [ū5 Nyժg -ssW`WO~x1z0,r<|q8 '8Fq< /"x 9^A^C!? rrP~r<A~7=r!݆g83Ɯ~?׮ ^`z -p)Cp}ϳ Tv;.;mhF^ -^{n2zLAw1^{:7YNM~NM~FPK -WUS=#H*3org/racob/com/Variant.classZ |UүI=&LBd@0QP@B I$d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhUM U c:RňyJ:KnU1CxqF0aCal~C1x0|/ 3[j7/QR `;sL<~ Pr63 - .dUK h[ū5,^~q\uxk5Ah npkxy7qܢL yW0z gkI9lU׬IJ ~lqެ-~ܪf hxn . phxiH$i]4|Pp5|HÇ5pP=q^ 9>G4|UOLǓSi3,>ˏT|A\Zߌ0>Zź- #hA_|Ƣԁƥ5j+뛨iHD?6!&H,PbBkb6Sء -'eU ]yX_k𐍐/p9)աTSݛHZ{u'h[jm|x,:!Obp(ܔVHZܺ*&#RHwH#/ŴdZ2E;eHR%H4JRh / -&u*$)]U<A+kZrFK*+5,n]&ED$97NY rg_*&4+frǗJD֐l2 BkH47hN)pMPE)n251>C[VbeAY<w깂f7>/VFv -U"Q(3-ʪ/VTUjVUZSU˪ZSe*k2:)֙V-fdJVIR!vS08[!qKҖzrZF"uqt\PE3]X.wQ$GؗtMumBgS.%BaF)qj0Kf1sz0tHݸWFX̍5$RNEB8;ֻÉP78W1%On Z"+ -EzzN"$$N2Mq*$#ad -,KnΥ@vm]ݻ$ւ_gUv -GJb6PBCwUi4,̞H:Č"ZTprIg-͒ ,V!@bq|UEjXuN,;̱Zۙmo3]&F[@pO<FhMD"WQê"mR}T"f~xbĞn6BʝC:gB64jPˆ[J[0S˝}ɦIVo] tc2BJH/YOY]lXH'eWF"0"9-#oi -u&i>HW{8^A.1>K`3mF84u=]0R{U19Kk"¿닷k#STfc x< Y|obKk_G'4 ZǬ*-KE^!?)qJI ŗCr+OlX2[&M Ģ]љ@#U-ǀy^4p1%HYKI\ U|i8@/f#G,6_ dM4pN4 U <5M|S33p$ |RKO([d}6644׷/i0],3=<9T8nH^`㨅 ?G2x3)>̧{WU(Sx>SidAI8^f&7dXX 0HΊ[^-9fj4̋@(EFenF̥*4g4KWGcgGEͤUgU4zKVFoJ9<T`GaRu-gˆt="A6]sFc:Xkx2`??5zkLk~e[69p6ÝUw^M[i4K)st[,&O,Dcg6S7-IG-MٌV3mM.kN`͑ټ:̕j:?^I.r[;8B/ )XlAɗXr]NM*ҋ;0d.e tu` 'puF+XOMn"yMH&|3ɷ[Il|M;l$e&yM{m}$o&?@6y;m.wH~&<h{m$?f' dZBGK]:"+zn=^y |e8)CPƓOa -> HWbp-QGtEVphA#P7k?Kmo\,E!gBuPH>fGHDI(n1ɠf6 <;<&KhPPKrZ=APSC7*81L;I1ޑ2vR[(8糆wi(Z< 3|I _Iwz;!M |F}߁Ψ'[ WdЁu߉6#zd'Te 9L咩2SaO$| w<@6Ι 9k9xU@Kn?q6 މ>ҕg}<{N%\9{މ~ѕz80lj+28Y;q~vk̫e 9%{}UG*4+kf[<cuQD](# b9/lt t-+e/ 6 "'"?+wqo.<M`ց׉7w^'.<M`΁c  <ӱzD\x / W/y8E-< ۈ($Qف)jcx?9DTs"i:$xQ= 8%&0)< '~+tI^3ˁijG9 -pɳ|/Q-0zƍ@aC,rVv9j=?I+Țɕ챛i_:^,>n9 RBsSKlZ=' 7OY $<f/0hMibcnK F ';yDђ.=qut &}֎G8b!΋HK6B6  -%0qC8rXb1/y7[L z4ӫ8vQ7ƢwWh38t&CͱAҙ)+5QcLu7FŶRR'%,qI# @F XγK]FĖS^YY$K$6Ӷ98 -4ҡ -x d:(H:8@cxptD:$?r0#=>gz܆>&`Z&th4C rɟ3٩IvLgw1dxvigLcw#)ddwnN:ٕS@&+-  }T>C\{C0ofV5iDГV"}ߙYϨ1‘ NpGRkW 5-A_ݛY`1fQb j诳Bh Ӣ|h(Eԓ-~*/cxE niO~YGyo<`]%ۂ]I J|8נ_C oڜasNL!iygfPEz}fLf(&-R.ݞi6~6*d;o Q8Kx>.KۦmmjxrlpJO.n?çY_a98%)^(PkQ%VI%z 3DS[NNa2$04|*ygUrF0ΧI`܈\q.H9+h` :Z9SAWNMm5t^$t$ЕÁ?O-'EI[v{ ʅˮNq0YͫoAh'sHk1?N<*<@\98Mpl>Ux]h~,ҕy2I(E@Y|KMǜg -Q0gtUZUT0[kɷ(ʘXPRI2Yf2YfRftd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&-sLƖ3[M+*s=X_5T-\%>rد\o)WX\'( xr#ޭ/F%_Yܪ,U((+;Ǖϔ{<Y}6OӪ<QR'+Yt)3oaOwb*oZAWR֝.jVP(٬Y[ 3ʧmXyzs -ȥ;;DɦJRL޹P A%Ԉ_33Exꫠ)/Wy 5m 3aT*A1W> \'fQ|Mt:um/*.RF*}4<K䵺YA|7}_Wwp%ŭ}:eZ צ\Vi0H 1 4sΣ0.6 -"2+O7PK -US=͉\#org/racob/com/VariantDateTest.class}U]Se~|6,B@&[R(ԯMv!^9^Ǚ:юtFywgb3sv7s'F`Eу -" QpC%`4 -UI}SqLn%̨xYQ1+WTdѼw"cvv@cZ-Yh-T6sViheQX1J|C]8uJ钑wr鼳PEwpe2K}tECcHW\vB#NJ],d[ۖ 4/Fyc˫7)9{`]&ک@./ӢVJEٹWc(}w l~gTJykƖt9tЋ>h؝D*5,a,&_b2.5)^4U kM omz-\Lhx!,rA#G@ȳVxK<4="ҹ BA+ -`z<u8s鞞2mj]޴nr/ i}P1 -\D&$0)0tOk4Yg p~?S&ZHDH~BmGe=t*N.],c-VcxU%Þ3 BAyoijA܁ẋQF<c tJ0ij0Xzvv\Ed!5TvT,ZES --iU-ZcmU{B/l'EM[da~Za*&q, 7pJ'C ^;=L(T^ħVKpr|oɄd{p<T<y~}ZwtL3GQ|3Eţs򭻊!sQ ;Ir6H!gM\'gWǷ#~Ŵ"#]==^0mzrpn9FX <O69^D4#A+y?PK -US=5org/racob/com/VariantTest$VariantInitTestThread.classS]OQ=n)*RQDE-)(~M hFߖWfEQ?F_csΝ{̙sf~ 8ymSh€vko6IMb_ -دm&1İ T -LU%A9c^ɹStt>l2o3VX^8*Æu@v+֬w-o:_ -Ǜ*ZFOWg&U0aM<imˍ S.(kJ`=OתTӽ$4yfܚh[B+ ~ l;^STafoE/TAP-jjdV=t:yEY4]ƙ?N9rduUAsm -q 0ek9J~5)G;[bVc-&ZDHc#b( :W-IL7q'1)A?%?2ٿǧ(T*{&zM&U887wڜS/ ]o} i2 fhp>b 4O":uEB!%"w&.]ڱd6C5X9U&rO!~Ӈ84jRK^ .6`q;hGCcPz#uM> J{B!I ]hWX%o(52NyY{ۖdImN/^ f>Xc br6|ƺt=vK+nъ0]CLbPK -US=g(org/racob/com/VariantTest.classZ{|T?g&LB HHH $Wo&7dnP 睊6jVnVۮnwۺm]wfBh?=|DmѿehK?ǿC!gszS()K~>zO"*~#l4~/|G?͠w'GiE'5@|t:>O"}8J$b5c,bS8q|dA?ii-C9Bcc}<OkeJ2y! {5d 𦏧h<O[8iOx3e벼PY"4gM -qs=O"cJ4.Lr?BXɋX&h{+4>]J>#WjVuQj^q4>KH}I5ոNz?8|.oqP5m>4q Q{c4l7q=f-LѨg:# LޢmLUV465fh[koa!cjk+!<du;ˮ+-fk2674C6w1My%Veu%L9 ;S~N(0u6~of -: ;)6lcl#T:t;eDpmCFr̅^d*PYF%1!,`?odkwQJ4dxR'ˌ2#O*saV6s[#ꪲ]f6ߊQ83:pkXl,kF%F$|z㰴6#͈W\;dva+Y4E4Z v xU[f޲]@p=X]>>ik3]ΘODl7 -d@uZkKtZvjoLJƨm1pYgNjU2&O~P̔Rq.I& 7hfd$' &@X, g Vgegs*3b}x̚pp2&@w!xkĽ`fZ㚈e`etA/||q?<źD8b̡04DEZa2umΔ#u-UAXaV7=ntN޴J #^,=β"h-%'!9I(4[1E -p7Th7T^lb@TdRK%J(^=WFhU -G/= -.]+W~窓T<FՊmP[UbwG3W5L%D[cVW^m٦%gVlk]eB6Ji@zsBV*[kEtӻv;fo -j KҨ z".vqQpp.sص]lQ]MI{mK"j;HvE:J .z+ Z}bE1 -_iBNO#'>03m[6'B!D*U('7"ԭi mCnɔPխz`U#,Htr9;YT)><f'!qD2Zӌđ7q'ӜS%/%nf{JVJ7BYt7ː'u7|+DST QA||7`Zŭ!hxq**d;Gom|7?|6}7*TDDӁ8.-صBՙǬDE5ZY+*/Z"E}|{|`/ Žzg !d嘎#a~DG}WIe_ crf i0N)4 -(d Ԃag$ swPs$u a:f^E{P\Qphщ_-e~\U7 (ЪQR\QbZp q4B*¶ 17Nzt[X!Ja̲TO@K2WUiƩ;@נB͖ԏj1R0='댸)3U4 -n7Er%dfD%p/!SM^Q~Ρ<It3˼$܉EWˉTdU.HFg)Eçp.,Tǁ2ഢbΐ5D EWipjNF[<<;g˳Q^r)=Q7 q\̢5?NjbJȗD5W4nI^Ҵ5$mR p -|չKb׻4^03<F) 8ކQӊFs*sT8mwJPwW:!J8զ8T!9+d } FEյ.?onO6$F6CK^'U8N#f6Z0>o/xт/Mhkqv(H%p#FV -1(F!}KE\8*Q3]V9@f!?$Xkql#')aqǖ #vW$*f'mm ?RLYdb̌GLSbr<> ӒS1xAaZ9IRL<(Inc=&d,,;k4=C&,짬>yIFK+RG#ichl8<0\K(o&:Bh2*FūjJdMihz^?mf4>ұOaP"6*l6dGќڡDl4(w.ϫu: -{^.R%~~z 2C$d@xy3O+]̫NLN4iTAi5T$OQ E;`- -⵴rE+Ni?G :ߦ5 TA=TYN<TSgm\Kxѹiy{~Ayޥ&l@%'dxO{^{iOyE=H/w.i壇<FǨ]k<N|zsBGQ:'5>Z,B/ֹ.}tzrҝ] :Ñ谭JKյ%>:s{t],<&iJӨ ki'E x.Qp'K‰ '$*8!E )`?V&\=^~rڦ|@2Kf r4 *ߢGhZj'4HG5rR'dspA>:ۅɂuij{^PTt%-h%F_ n7"n'VznWoJKA%2 ҷ+;Wk #zlϓsg)'9GGRO9$_S[+\Q21T'N̸ʓi=3>wsi֏_"s>V8<E H)4z6#vn -(GQ$ZRC/N+'kgi &3t#g5XVO]O*^*|!*륱u‘M$ ҄<<?VQE5x;,B{D<f_\G|\߅WCpFTKb8U ş&hq& iI`@Y)O_o71SL!>aS2F Oc1;\#G8(хq\4T@:v<$z/q -ר9j"~*.R -|ll9q -T>#$gL tq?}.utzi$@3RI`>ok -op`4dSpx{qzP>{"f.l":q* 3)Y(on+,t)C -]|RA'P)>'d$bd\7}P)wg0Oj8uQI?uˠ钊$.\PUQ>zSRiH6WjYYxeQgeV\ȷJ鳂3('Ur㈣ԌlkSBͥxz$r%[AFN:- er@^R8nIlW\&Lup)2 O_YITvSڧt3ZKӋt _|;8*(D -$̓ Rx:T3i+tɳPn.xtv^e)RtzKUa 7q+C~B<i_ |MOÞ.wo!:gqTJoKݞ([RM:q0M?aBEqГSQ-l9{gس`_}aϥ8D)h ZA>u~O{$py<S1Ԙ+uM#1JMEߤ4Jr5NKVC4gIk0͉;t]>dڢ>^J u޻ʻz&L_4@,oHުb)i/Չ-348/˨&CEC|Y|%%]^ut%_O AzoS1t){|h^E9Yu% -y0%+ B|>r>'?xW~Dr2=`j ~%PK -WUS=r  $org/racob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@*$00 Ej[k_V*P-eV׵պ]kku_uݢ{<&4|sw>ӧ{R)O?3g`'t~|0n}(¿E/~~tn~c:b}3Cito;^3?^au]Q?0/xÇ7]ՇNp } -9ûT -7t#ú!S!I^H -tݤPW& t5Ƒ"]0Eze~RJu5+3t.a&M&庪dWf{eW^9\r >g^JWU%BWN{eR,2 -^`rȅ -H Yz=Rj!0RAas6lhŬhW]wn YxaeۚW5 -J[wX~+1[a:6e(VVmxVG{3  -:0!%n+lʽ ķm¡x(8ț'uǂV<ba+WkG;^jBv[![3N5!+-=nul\ 6UG4usM'8'joVfk-:4鰖à%(Ƕ 6bps%?#;%CakPmgN>}90rCQx01rk'<KLrLu4vwQ6pvUٸC`4l#H0dmg"=!ը2{k"oHע1n?PM[Ez:m.Bh{'ʸIzIeccu `<h$u`-D( +nmvkByH21|Ȭ>a}ŔFYSX.Jc۷GcqSe.y2p%TplFA+b2s*1CQSZM\&xzBqW -e6&g\9'vP$j&cíh1<b`{X73&cEM+޽]:.K.o`Oz77jP(d7VV"x flLZ6S bm0[cJPzMSR_M)aSqĔD1`.aD *.CnO3&>} 3&zQn2Ì!n6[MO|Tn3v) CPNe~jE)'Uw)O w)Ϛ9'X2r2`{祅4hp*88&^ ĂX$swoʽZ07#`n )׌`۴)D#|0`BCAho`E+oؗ(\(r`'Rgc5הT Y&]lvt|lWEMƍz`Ad(V=)zG> _TmeG :>Kb9^bMvUݯκV`Aw#1,yixbMwauW+!S˗MyP_Gݚf+:*<,SoqLKlru|yWٲE۷oPMծvUtsc0F>EOm=vI\֫m&Z56jFt 386F3=8΁dqгƣOǓ=AO䲱@0ң3Wu8 ]wM2]-}R;IH -6tKfFdA :S@q[q|1ʊUO\e9ВŚ_Dj0zGU:ѻWWut^̳]CVxpuxOh{)[tMIr!CZ'$&AǮ+A_߫^lFū\YK+0vO<&Ɔ;Ll$q)To;^T9k:򙝌t:%CS&+T1H>rU-Rp*(egKRF儿*T':<I:g5Z6SE1z4P[ <P`(rS֊;g}4&T7yJ{ʳI&]e´;:Ԕ.[˱aR<;U#|pŃX[p+\L}8\y'[Y8U@"wp`i$WC;)yP8r:G{TVG`# 6\`~`a -3Ӥf4(b($ .I`*O3Vi L3Ӥ3 +WXE"YI-fIg6Ga4,@9 -%\a9;z;c w^IeU S@~d pEWƹ`FT"jE B-`!g<;,;X"STc\;Kw Cf -ҩ?;E#ύ7JG헯Ik(.q-T(n]]ϫ8syX", o7{ɑw_>@gY`ik\0죇Q^Ӎ j8A=}DJJ|?ΧcR1ŖOǟGG_?_ -29V&O:K'Wf=$$Oåiqqŝh]ɣ:C5~Oߓ}ҾZ;:ME1FHk 4c.Z0 -/p֣WvۈkfB'֠X$!GwaItYtURɸ=^Ob!$a4b\/1DFD{G1$Op~{)앟&;_Fu>*~ qJ8lحqG _ʃ0݅=I4q?֜Qn",f=L(ạ_ƃL*9a~ރJ$Zl97;5'QfKvf1u!ќw -E8$rAܕr9@}z]^$y 3JL:Q-IQs9WVh'Ӛ{IE(XPjߗ@}F̤IAtItA*N -n -u:o7Pذ"4 0pMh[h9M.<rfen kP-v][a+Gm~O !³_<h7>e=[v{ްN;Wڵud~\6TŶEkGqέhy(|WAvkthv(6)x vz'[FUWj%WRkd7؍ߊz+0LM o1Gc;x ߧ bO{$J1~*~</se1^dײ hUmGK/6F,4y`ÿS)4 - - -Q| _8QaZCOqŃ88)m{ۓTOMs`,3بC׎㵃dH=\;` M۷ ;+[$E(9iЌ8mhC)xb-U5igrLRJv*SȈKSɀU\@Lg(z qerX&CI 593W2# 30wh1ƜWTW7j85zvjGq]-+<eYUl{:g`8R)…׺qRX[\1+ljs]쭰srV$v Ay%5ڄ҉Jقr . 6l;_n|G|u:=IrXC2}k5<Ef ]6<xP<a;]Ӏ rYG8vX\<FLf.w؅MZ1 ZB]N7PK -US= DX (org/racob/com/VariantUtilitiesTest.classVW<&B XmShm --imkȔN 3dBŷoセ۷އ,7r_/p!P絿.ŗv8v⨊R-81xcxPVNq RG ?Kg?S"0pRL8)MiNKpŮKvqY:2IJScLeht{ѽ/b^=&#)F|@Г*Re{2GG슡ʂic))SU$ -^=;̃Ű{ʬ)VOSi{6,kVM4jE)e?b[sd!^8:deIǞ9[w,[kqyl;aMsW`Ɩej]l1gwG':;03!pVDO{.2EyQ GKrx &gי,@xK 5vݙ6r^f']2av.=h%~Y yj%mnPMSwN37[M7sk oIHi=!De*E)LvuLkfnV+{:^96gE4WT5Uw ?UKÿ7𦆷d4]E45|e>UDpvXba`Oeih&JN=PA&<O7=Kdz/Ql]J7xj`EN]AQ L^: \ -ά:r4_sYSNҝ~X.0Ϝ1,&$z/[ -Jhh 1$3 C32Zkr̐is9fcjuK`)bq]T:&&<9HɌJV -v]+VL+G͔R(W q^y$eߨ- -͵/yrNUs3c/N -E^?re)--0! -hla_@K<BEܸX"?u h-%?m0 -0IE6M\ - ~tH\,w.k+F!fd:Ҥøf\'0Ro^zM>͵} -b;rF5Iƾ诈5.JpKh1L@jlEl -}mlp˖EW$nf)p=Տy;(f'IBDNN ~J}ԓ)D/a4$}H.Kp8e7]_@UOU#In)ϵ<di$asL_Q5J?Tan|U9UTM4T]1]RK$;T -'qR$5[_Wo<MdIq&)GWtuy񦆮m ]k@?!&DWvY&vs lGae;NbR z¦X -1XJ3~RU6I=a–p?U#PK -WUS=GH3#org/racob/com/VariantViaEvent.class}OMK@}OMc#Rf=УSE}.day<I$7̓qG!!BRk{,ޭJBVnQ5oNr]F wgJ<eFT*dwl !zНfы|^'<R8N\F#wBw`<?"23XLFe PK -WUS=qQ]"(org/racob/com/WrongThreadException.classJ@ƿZmABUl@R,Uk=o%]Y٤ŗ | -O'ag7 j3Ų UB)F/Mtx}zDa(aHN<v. Ov;T[LcOȶ' Ů -n MO ]2V0I2UDw#\=p\};~p}̛ʍ '\FA2D_qJfU6.ҹ^;Q$|vaXyka?E.c>1@a9-0Ï,gmzs*cs&+|PD)D6a7SBK5!$Ef-Ҟ'PK -US=org/racob/test/PK -US=$(!org/racob/test/BaseTestCase.classWkS~.H,kCX|AsuBvq` l|S@-IMzu/6qӴ)NgS3 IJbYÚLy%|xN 2.%P\N0QO#"f̉)F,@ .*K)/:_AY\I` -V<9__N+ +~S~K[w -^Pb+%/Kh8fڦ\B笄S0$̙1V^1I}Ƣ$suVwM I؟sٌ睙ox~uPBgS%(:*lgɦb,Pܼ~EX==7i)u\*6Oz~)B%4 -_YßKqv|"%qO]- {{'|״g GLIgY9e7ϰvo5 Y O˖n%kin?/Rg_^ň9m@^BK`)(Q]kə3HZۆ:i0Oxߓp 3킳mC:_E"Oy#,фB +͖ƠW$%<:CUH8?Cd!UOLn\,ˌDЗs/d!1d.haѪGp mwa+~~N~_“#: ڌyyhW4YmH|-ohINQD{tyyxU ?f͂5X4,|Gs˶4EL;Й=5H_=dHŏqͤ'9~!*~kdqsINM+trsgg5㺊_ 7T-d_I-`ofC"f7甭f;6ch6Q%iIDuf8qV4`-h -ZW W YP+OV)xQ?cTDU sN>+|WşDV1D*nrBHWZwdػ|f.-w!ղj<&5%# ^4E3jAL lm֋۹ɋ#'<MvX>] r6z/ -{t]dbVu TxE}FjNf> } zd Z)oEmOCw9]іēeӇeسbe\w;Od3~VI kNtnCFkwo9(S.mvM!^_Ki -$1~O1[nG6? x Q>n!J2~7ИKʼX'JX}2N4BC3KD^ -|jm#8J6z4> Ē'e sX%'vlDuFn;HBIZD؍z(G鈪XquQW@ -MRP5$-khz$Ƥ:vMXk| bv-J&װ;5YC+ڮ3=\B,o֧[.dBjRhR#۰7J~S љjX BV;rYJ^ 9(sq`)I!f<zqCd`|\+xW <> G Ē}'I!ʤnXz#_qɷvh{@G$erj)9IAo zj@޾÷p? i$ -f]X}˄}<ZVn-c'Ƃp,|zfR*mZMEfzdV1BUY =`I0d0lMNBdLPm 0o=TcW_k W(%躞]Zoލ8MLLJbHpƧuS -o`??& 6}nUӕdq6Jv:J6,Luwa͈49PK -US=org/racob/test/errors/PK -US=3a9,org/racob/test/errors/UnicodeErrorTest.classTWG&Ye]P"`UZ *YkmOچbm h2Ags_}%x9}C ('BkN2w~s3?(\v4ӯ|bl\q0 -n{˅f6|k`E6J C6?`tM0.K%*֚VZ<ysGҬwVҐ1CzP@DG%C[0d8k;RSN"J1K"yx&tkE(ډԊv)Cn RnbR^[+C5vZ4uJoU=&TuW>[\;ܪDXF cp䑎j3nqa[l5N=Xn B{ i~҈ss]<|oHO,ñ~-;Ybz< -JTW\& S5'L -PeTHSCT?*1XH, -jR6+?QHE\~ wϨp7HR"k&m0oM]:ܻg5J'ѻRċԢ+8&VNz2)d+8MWis'izLYOw,oyn*_ t1+rlCrkz77~.%E.1vٴi 8;JwꛂOIZRUӸL};&pGQYeg?] QMKy;f6뵉3F@,;RPK -US=org/racob/test/events/PK -US=D6org/racob/test/events/ExcelEventTest$ExcelEvents.classSkOA=m -<}U 屈oh$? i鴁~TD?xg!L;s;~ `O8l]c& wPHÂcvc®Ixr06CW FB-k^êb E!)%ZO4Eh–/_%VP9bl%5ؼ* %Fm]U+S<XZY [S.do>tLrGZ+edE -MeTow>ת_ռHjhSpdM U^5p]5Ʋ ֑*WTC♴C9d*sqi=&\t#஋{0 -es L4LEZ<dh f]<œ S;[i>7R%shܦ [a'/W" ^on0q[T7j"e8ٴYC,u~nJËF/>^PNk_alB}8/ӈQ|RTs* . -Y!\=D`)Ft܃"Q-$1s.|H0>Ed6dFd,eȱz#KQ=)E?PK -US=RM<*org/racob/test/events/ExcelEventTest.classXy|IzDDBH"N! b@4]e2mڤ =iwýVvcH[& WM߬$,2?{]7Ђ*؍aqBƈWȸ[I T U -xu5k$VA e+dNp/&攂 -ވ7xEiѿUŃ2.!N»e>? 2>$2Qq2>!Bاd|Z>#B$|^F<"㬌G /H| y c -/KxLA  -vhx\W$|UjZO$xuNA&ci=4l\YIPn37n?M+v+{tI$v z9<넸+4V71,TwpRqsd:e# -Xe#d&N#ѝD%6_6Ź0G 0,׵xdi5$S~TCi Mv.d9[ GLڸŠœ"Zۻ0iwCv 2R?`XUfpa~0-do2.GO3G~/&B -ü*i7g-3"Pr>u WgZՙӄY f - -fUE:%<ItN,%d7w@>9R &ft Zg`H#{pHXk{sRm )&, U|$lN莜Nc%o1H=XgqYwT|O /A!ŹE*~ɤŀ)%ΈFRE1KQ"(~NXE\dhni+p#|X4҄~u{hX/Q.Yn;bﰞq0KR6PIk-'"mMd|e] Uieb 7⢑<am47#SI-SI +q&ѱJ/g8±1,r]N@KjPĈ"TUQT̺z)RW!sҏaUe7ohr*՜m7,jll\l͕+rfrHob,Ub&il;,S`W1!8u*R.Ʈ( X !/(׬oXQ MTI⌥bi5{) -ixU]cV(. -Q2bؠ.ff&[y}/ P4{3ժ8$NX"IX&|iXJ]9n&ՇyD#83p|y2-_x zf6V=L&:EX!DtPE;%aKY˦9gw g<")xmʥZU}m4/wLCu3} c`gi0{UG#袞$OZ<9~Ou:' 5AxƦ1T? -e5}cPsk yXP<+d/QO<G|?2,TKcL2! t_Ǎg\F iMf -]y}.9e7 mr92RPH h ThPfN0.#z*yk<cGr%@zRl{cmzG$bǭ%)F.%B= Ǧ:lQ(-=KXNcؓq0. -Ta%qԢ4jec3XS@{7nGxzng X-lvcAdaYfNvȢ=r`;nvɺ"zc␋0v=ܓlziTSLAI h${hWIS=KRHy9bTKOYPM@eO I#l ?ĻUYBJQ=*XxFٙ^KPɦb>G5]D`;'kX3chxGx@r[^<;>XV]54[%,Q;Hn ɐmR0o." ">2 1Rl7@bTPR!TNBv19nʡݭDt+PPK -US=vFQ"org/racob/test/events/IETest.classU][G~lܰ, -E i#a[Z (P`&ɐ,lvf_}lO{ًS{fC"Ɣ9sμs1??2&R&cz'FpCaZg0#99ܔ|?u,۝X E*rY+RKL NyêԬɫаaCALx;Um8ĔↂHu+pҶ˗rYsh/噳|[ʇ(ل<峼}ᮨZY{?p\gOVee٢bBn%F祿 -yaQ-~P08+\rk@<^  -AXsVP0v,!ugo/JJ&勼x JWȄQZW, QIYV5<I {[<OoIW3E+:|" QHjxhKyn% |1_ `Q*@+v -Wpynʬ_d>,G5RΘkM `¶ @%$UG-uHLY5GG,(\3p -ELޠ^V5 ):.T -[ԳVWZʄ5dc~h(RamVѪy3~GѺ٫ -^Iz۞u/(e;Ji7&:>o8?j,2+V{^Oq*Rr\E"uHgwQo,f.z''[ȯdK^$tzhҚwIGV@bJ"3:#}̺ڧf~D::dFLJ>1q1O4!"x>N,_MKmP"rP۠tȗ$_)zrb\N֠qO_R@>N35Ej8{sG ~ ba1D -Uy`yuÔSN2I$WHn\F"iN&ܤ-JmzG!'`SyqyBQJ77z5\Y - w_PK -US=D>֙Gorg/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classVkhU=lv'ͣiV֦vmlM6_l&&oWbAA" (  7ݝY%do=Μ|ׇ؈71UjHdal*Apи<4#4cr,[yvw]<q{q<#<Gy<h>)j]8Ć5S2ә4u-6؟ٶ.Nrh692!C[7o1R_\I3C̆q&q"CJJU4vga` e%A-זMWLM(*Ō:L)X=534%L 1I3ruajEpfɲ֫(dS†%nyqϫ!Y{B2UruA0}@AS4O]2$EJ T_ȞR+٬ :Dx,>ɖIT>Ks)]33PYRt/ˈ21mh xAWUEae!0F5p3ݢVf(IˉH&u Ǫy FyW^94 3S3ܨ#r\3uYDl(]c<"hq 41#c>[,H0=RyQ90R*K,oآUlHCz))R͖qI\TD)mIWSl@4]Q{VH$ :x24tLo`iJG I: <s!<BxF7+^8p,!WHZr h'8,/LaǑ -(;\yŽ-;mň}N6 -8Kf3dAsnX2!ש=2lY hϋƣy;W -: H -j&WJa1;2Ql~ %O^Jj:RTt:1IfɒL_ B.nj6r -&)cr$I ,EwV⫏kL5!䌙D绣ZcXxV]&r<Κh -^\E\[ h :Bkhv Y5P갖~Z:q`"<FGBCH ]*M7)LQ 0FS~9#W1b>s =h0G)7G[}3}6eZg6eiΠ6ʴxhG߼y[=zxOV*ġ6(6ura%N;|W_SW3qU5'ۧmڼGhᡨwa",3$j&-5\oF>s6a[O~Ir|rllΓӓkpwبO!QbOo;v}l -)wKKl-ߓ V<VCUxVqRn=5-d~uak\O߈wlk`;ϓbӅ&Zr7Vr\wK s>WCVRkj.ָ㐪մR5 VWN_Ryz\j-#5azs$b.8PK -US=0 u -3org/racob/test/events/IETestActiveProxyThread.classW]tT 7FVL -hB!$IB K Pjov'K6^ bVEժVkjЇzއ>xSMiKS?_`ޏv 1A)P66D`D#Ș π -&N60Uo,S71aZNIg v3&R'L|ē&RRfiϚ`9M<o - &fh܋MM|j+]ϫ^3@]g{tlk2tdoOX+ʬ9'kL kt Tt I野 -:a;efd@Nu][*ۼX帲'7:(bvyI;oa!x ; C Rw'8*!q׊ GLB5Wq8]mi7-b72=-)FZ!7$ӲhbEh:PAeXUJflzCtr5Dz#GڼQs/#ݶm=Y-˜ ҝL>/$e X#Z&nYZ |&pڹ2l3^ V8I[i@wE~hG~pk*lvdǞ}aûsN&%k 6,\ ^;L[9~oZ \K.BslBS8'()u˅Ћ=o$t@2N6NWKa0ίPM)yTiZ\ ױ_`͍\{CY|Cԁ7{ -30&"wB&iJe;d=\F<5aRm&ښ0_ K?e`g." Q^Haxö2c97t2Sr2)ɗiSj.<-_`I٬%W\ʕh:(3ʘŻ[e=e%- IkY;Y,]]ZZT51<P} - Q`RDTNjryH!UGh1 HJaImK@1;oYmm^$pkBƖ-Q~e=PWBX'xIVe3R*QV;7"=VBJiU Sd.hٌ+G(,b" 5'Յm{𿇣l#[ w^J\\YCJGVc9+`tӨA@j - Qc@ji./]5SX]5[ӈNnNbuC6]3O噣kIĻgwLaa5kTOkwjwi4gH_4*E/RĹu==hLM$]Fgk#8xY}s|廫ߩ6WQh7>|jznθqc74F^ -_Nğg[/)*{8[ACm(Έp?cE_G3]nF@#b8~ t| yǓxau.axD4p0Ic| $_qY|sDO_g:cb#NMs-k\ǽxO ϊω3x]>$Ms`Uk1\o8s5Jiia5[A5E+{*ĕB&Urc.Պ׸sQe0pA{L l6 Ks~XmlV9Z[ͣ:ῌ|7,PK -US=Q{.org/racob/test/events/IETestActiveXProxy.classUWG$,U( Ukkk"h&EunE|m>s9}o}c{j9'3~wib: \H#.R -'gಁ8 ]m5-~u|~օ\7B^[nq |yMzR]gHdk ɼ_ VA]|k<ZV&Նl0Lj˶ eMᩆ8_")()W,ÈF,H[ bZ|.Du%*[+{्@ -)*J5!] R>Xy]3E1LUj71f -L,capVM|]`Qҫ΅ҭތ~ :g*Kh`5hS1D%_cmuwM|{&Nq+rH=Äꆲgت 8XM"Jv=̛ >oN ٵ:~DTdtR!42s)|4wv;L5\!4ԙ&A7+X<ҷW(5N^ Mg -k6{@}z$0B3{;kTZ5KoהHZr=t>'ZTnK3;]h?ivCC'Pt'i4z:5u$vF{j<AkgE(im;zHyda};A {ɫ~Es9x~4@ {~ l#ɠUM'{ #O!5k -38J8ICRC8C,,iOB=Ez|:4`ߧ|+&ЍeSPK -US=u^ 1org/racob/test/events/IETestThread$IEEvents.class]lUS -{t"[ -,TQ/.]`" tv;0;̶׃&jb4_5j⫉&ُnI{;sg0O:0W؅tNb6LH ~OqYxSzq..pQ 7H,tK )` c`;C -5r4]'53[V1 -v',S>aiݔҼsڼA/m5cNuϮ^B -ԔO:cҞ04Ǒ4W3r嬶5W*ؚ#oR~[MWlyJ%,d]ƛX",ҥ5i-eQ7}ROkʶ-n]n|V.͂LC͘m)#cfe\J1OWtWAgR8ܕ1s!~$gY?w-#O(K۽Vz|Ŗ,噼Jɫnݭ3F\OE&kU켜=fgh/iK'[EN -l&R#(Hf^,$*q5k*;*u M4@AxZl;*Wq({PωBSb7\溦5SF)Ph?._o{}Cc^_lD-5}U덆]}Ȫ'(:Rgk$5L-5}Cm$µQvNfZKz׻i"{qeViFRi.Mj%,œL=RC֐Hy 6l(YvfC `[radZUMP,w~1 >mޠ+$~vxA(|4܆nj^>U>  XG swo -bA8#wW٧rtR'4XV#y%7CC0&3=!{?3y8//2`0F`3اX@f/c!L09LӬ1GrfxdP{#M{~>~ qrBY2O0_y̋! d̉B0m2+C0oy39;B0?'K;C0$'B0&Cm׼J|PK -US=-(org/racob/test/events/IETestThread.classW[XvauPY)4ڊ -- SDlHEQa#:; 5&iIKn5$hhLO</~}}C.Vaϙ?6]pT-}jqb臫ӑt1Đb İGcZpJ:N+qjzRS1V⌎8Y%*P4</* /x9xE -E t5+7G.kxK@ojln0\W NK}tdR@t 6h~72!l#K8VO@ ,G*U6r{jl(z}i%wY6UvAoL -MhAۑ)fv]ʮ9; mR`ILە@KX˷9G6iJx5L52BMSc;O!Pe[J+Xw(3Tv̇= "dWB5rM6"l Xk&SFe>A4L*x -ұN(S2w+0g?TN}bȅ@5|S,@V %-eeH/ʂިh@z0WiyhXʠx|oO;a)i;LsU&@ i>'LwX ?cَ$/xzL?/=Vk⚆ (D11Ȥq儙=YBUn/gz^_&e7;HWC:ʨaNYAwW.ԍ10wV1]k,FfIǯ9^h:<MjR1Wj31 T̶7iUIw vp(J̌\; M?7M5CC7Ԅ4 0 w| zm# #?s>ފ%m+iifv^3o  |:_CyIʶ->`8SZ˕ .-9RS:LOSsjP<iJ"zm)ksma{қl7[*g3nl|o:9۵7RU0ϓ{U´#eJZx}2L,2%lِޒDh)&?jj)ްΗ,w^#|jN<=RQCT\E*WH-.QաnQ-Rͬ4C>O"|zv ܌ȟ)F(.6quƵQ-Uq:X4*^24X9īpF|Vſxr9^A8VtҧZDZ:jf -/Go)l)*+*+| ˣeEinrˤPZ1OkC(Olea]cF>D![W3#Z) +^ྼaD.b"ԄKcNzC7P"oZ::;Ge1| -t7kWD퇘wC,Z=~N\bkIQuvNP$VQy58Ї'0Ӥ<Kx >8Kɳ;n< B(槪sϋ8^q^:m]-^w%Qv]:yw#<$^8.=xGM ?U<xVf.q߃6zxG%~}hgTzysq(!b<nОשP|(vQVT|8.|.LPm kLP>Ŀ &'"GCRV #1rI$rwD9NDn0ÑFw;([qůU:PK -US=J>i4org/racob/test/events/WordEventTest$WordEvents.classSmOA~*G)&$ 6B aem+5$Q٣Q^J3X"9\D-0C f>~wr9+Eي6 Hl(B$&z 2.S3}P,)ɐYё`H%Z0|ABExc1(1*%J' u,g8RG_)V>6\uk/=Wq2RD;2N RUn -0~Z[-Sdڕ#e,8l>.{}, d;EK6"h Q%xotlIOI4N|,Ow桇G>㉇ k,ђV5nVU?1 ⺗XӁnYуIVKqfSaǸJ'L)pH#y 5PDWFa G^y72hnCϓDzw>>W-=y,(SCƻ(O lBao;Ȳ/`068:iTM~PK -US=~ )org/racob/test/events/WordEventTest.classVwU I:C -(i-T<R 'dh23L -%7=# WH=薣 pߝIj@k;{ϾQ<H#FU\H"*TDFHM9\\^<UL$Q:]U9\K: -&5-a4ܐM rᶆwT+W喝^P - yJg -Rl[x5]g, -)eM):%`s޲D^ޤQQ;Q2<K[xPq0xgN1?ȉ0Vn1$C -K Otni t Y轾䘍zal5+n憣yԩM32,Cp˱kd~wY#W3Jx]js0犼UKkM aΌnȃ -ՙ b -[€Bla׭Ymt2cK5TD"Yr̄6)zP{^l V%x#fPUQK&c9# VB4ڜndJSp< dڬ|nu*zLY|̧pڝ>,@h#|`%Od嶍m( >d>(8ur%?+tB}2GaG:y\7fDd'Q.UuSIc O3~%HaEe 0bb2<~>r` yD,)9̬<2 -fs: -3WC-; YrrWSuRJVcQ 6/2+ iudWj<5[٩W=^07ִoqWн-IL(SZ-eٳ jtUN9/]7"7$Mr6>"Q:Y8<q lGqOY pVk(?bOy HLg5=u`;eG~0 w{EjݔĖ~xtb+&/jx;M &zOw2{x#de&^j}fH?K c _+BjH "W{I>j">epH xg88ϩC&Y|Mop`C|JOzzȘGY2=N)o#$wtۄ3 -g"ljS/7U[TCQqA^a/VPK -US=org/racob/test/excel/PK -US=fHg 4org/racob/test/excel/ControllerTest$Controller.classX xTofy/ !$(0&!<ɼq%K[njn[V֥2"RmUJmXmMޛ$djss=wx@,.FbM|[qܭ9}O -H.}Wql *A<n#*/Uq01iq?RqHrѓ*~r?S -`QqX>GT\ByV/TRZzNůUFo;W+xA%4wl$AYJQqTɑUX?7&-VfV1 -(v3 6{+k%룝qI3M/u1=YJFK-k("7i6FFOYzڨz 7 &9ꊦf8Lv%v2RV݈ь4c1#jXKLjT7 -x#f]+iƍ6Nm1v=QOFeJHACZc<n$#1=287o4[wӰ"3QulTg{.nuҘz01S(XhwfTg$j> z_hUR'b 5<2;Ls'#=1'fwhAijf"e _cUbHXQ3^M%xT>-V\vڈٝ0FZ2RCPEddɈG4#Gَxlfe 3r{6a\&`P ntؕ+0!"F@sc}3RhcHqPz dpɤ'rl -B;)ǂ3j4 :?2$PO~h'8Ue(5vLLz'n8E=n(u͕4]CP4`i؄a30Bvc"(@;y417HĢ,U12D1`S41FhTe9IqE51N)\y &=ЂP$M$& r)*2%ۙl}2bLC,G^隨'3#&f@2^h1S`cJ 1COU51Kj8kLUqXIzc&~wb~̛6l4Q-*伫},\:5m;vk0U[F 5uzw-tffx2BQ֭P4!BX-f -$B#j51WI_vB A Ȃأb&B8U~M&N%D2ګ[FȮ]I>yFk|^ Si"^EA7tdPg=ː0eNZv%]?~da 8o$Am)B,c};U3aaw5EisaM #i!(xܳ3wY͈|7^2}TA<NFykKpn+5&+;.o] /"uU\4 wm$"ǁ/ܓcX/4aѐw/daABb N 'Qͤ/3,;0h+-|x/dܶ<[几w#Z~bS>FmZ֘_OZgj9#^XZ`k}jj3x'GmC`2*M )*< -Nt(_ C^mC8gv\륥mF9ngo -hu>>m5@l9(bl*iaB{+k!`ϜFV;+]+R2p>d~vQkTJ<-o\=' 5XF@Fc0&t q~wU2Ecu0xnBQG~h[}R,QZF0q -oߏrO?ƫlcUQ!e=<)յ4Tvd~x0hlU69_OUr|6k՞JfHK\{q;nkWש;\2T<p).,ml9r!<lu錋r-_SDDX!"l9RM\^#5QL݌U,fg+K`h/b]ĹIp|9 D׍Yw2ua,CQyoQ |@R"1.z]TSBTaGLI*Y]G =e_ğF22#BO.dbY_LOo| >۳t$+TJ 2DvIJ(GqYTJH\n(m򳁟5 0!*xʇٓL |e2d0e: BRx[JvJq5&WHQ]Rt1+[cꎥc\@*ƋH$qjW& !D (x7 % JQ 3$^]D1*r<[ >[<5QOjKd=r(^ڇ1U;\LSy&!8K,Xic+}~?stE0FH+dOgaKX\؇aw-mmJ>f;e$w<J_==zVnO%~[׺pSY_&,؊1WG{qtigVN`L^ߨ&7WsG~V2 Aqml^"𪫃jX^(c0$'O*^ ;D$/4_s /^m˨s}Fi>a6 -PK -US=mG)org/racob/test/excel/ControllerTest.classmOA[ZZj - hA-blE ƗcS;*L|H~(ii5›}wgv~$µ8rIDf<e.bד仡88U <WJ1h5^Ur>߼z [7ط47Șoo +c }za!Zuði;isNGx]%cܳ midI+Ð -z"+CHˍf`Kô#ٓHbWZ{ɝx(*uYⱭ #'XR 0ΖIuꦆ41 /84,▆۸a qpe +a SH1wEU/J3vwED2~D/td24Rsvw75n \aJ" -1TFoSC'-|?rD<z䒞k5PSh)jNFFUT}nfFsx\Q&(( -YZi \h;C *~GQ># %X(ubt RO3?@L/}$/$ \L -lpDϐ8E0[͓W4?sD!#tW) Q7PK -US=org/racob/test/powerpoint/PK -US= i- Corg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classWoUnۙ-  -rq,";j[ -Aۙuv/h r*^_ vCƒOD_L 1wݶՇ~9_wz~ =Y(F- -ҰUFu,@4Wh`[U;mx]& -ehU 22:d -LDKBT<؂)&cq![ o -3ox["#a}2+ۻ0!k ڴ;#n m.֌V]2ZSdeXaj1܊a3̮4V&?hD!̴CztRGmdHXWQ*5 މ󢰞!l ٕcMܪ1+͠,]Ӆ 3-9I`PrZ;auY1J+x&BS:[SOJfPMI;ɅIZkk*-{R'Q0(f - -]$ezBxaְZҍ 1=-`Ôh=*!>P!:GRU,œ*S8 -T1ɐUښef 8!ObS*N sj'`sɕbLJ3*✄* {s$HĦ,.1L0`ؼ?U\ a3圊/Jz80]#_`gx!ʴ'nZCiQꦏQ>rjeG7<ybH+(cX:0i >mnjA;ɩeAE($QLm:z1xY'ʔw4#qe>=Qw1{h*t_C6pCLE0fY1'[ZDG-Lh Ǣ!Q0hB -«[0s-F>9rxknl':[ 6wLmMU0b䍳)8h2,$] lƣbhvάŤ< cw1#:KТ3D+S?_ i+s-JeѲE_G 󡄾;ĚSؔe %^H(#\2L@z+Ŕ+A&A!E; "t(Nk$|JsN+y}q TϺ -uБHK Rӈ%wVYvQ"(A`n0C0'ܹ}lAy$Fw$s  E1u Sq'=eynO4RQ|+/Az6`r*EUb񨘖;7g%Ĥx}wao^^9W=pw}.ˢX;U{bN,&BX(Db4M؁=bYON.J<wqX&.#Lle8<AD?DNd]8Ŏ4,A =6YC#w&żN4ߢl&:uxƇf`^??F)[F%!$/=@d*cNKi"ތՄRXLGPK -US=hX.org/racob/test/powerpoint/PowerpointTest.classUoG&j0!@@& ) 8q1u&= vުs%g$ ʩHRO=B7AHyoyߏ~?8Eg d"A |jɫ圎Ň( -c8E#Qq:%\Rh[pYb`U{sK4+mK/[3uYX3|iF`f( mYǮ폚 1]`˗G2l?%JвNE -+XnLKdȉY5=K}35j1M=쌧}ƙv ;<~$ ƒ]3]3t5\_V[M]gj Xܬ՚1W%D=Rv&]ǖ*%n̲oݕWҙ&.HVUyV5rU}|gt Jg \3pb@4Y - ˣ?0{ |#Cشh`ukVT*S7b SBTY=1Tn0ח]ta  c@R,{LêU'l6&~a,TR.JZv"&aʼn'1x*Ϻ+y -l]!zƬKu%%E[8}8p<P)#HVfޯedBo3_-}n\/cUfGģ7êgjl`Bv_[^I鲐s ` W_% nVG9rK'QXg괚+mֽ/[|ʇ}N,H '#&3t;vc/ډmص{7B]s{yT95 ykTp)bM!C-1{6ŵh -?1Z{Nhau%4dL#&ľ1W  o%uJI7b,ڦ~ӧ~>_7J!zi$4Yl6)k%h}/$o]9' 4 )mHS1#8pS\38G?Fpq7x2*O'= >g8p?CG(~¥a;qE(-Ft/Q׎!ƚkRUlCF˚%(B7pq}px/"^ *ϡI9@D O >ZI; PK -US=org/racob/test/safearray/PK -US=Հ+I$1org/racob/test/safearray/SafeArrayBasicTest.classy`df1d#҄\ @b41 !"Kv6qw#/Zz^EZ5m=k֫d# -f޼7ofxQhpvt2Nn6nwFCIw؏9k}:Et?'}s=cAntcl= % -Yq=G8kӖ|"eHVn?qe#DJuf8~AOpINbOs\%'qïN/8E'䤗 -׽k,:~}o9V)N=oܛ\K䏜Ef⏿8鯜8;}uj4NS `8_,ȑ_*H7Áj#P/oRo 7FJx /:hԷ\Z;ZиXyc$ ~\Ho#Pe7  12XG;9뢑yqNI/P镆f -:$dŠ&Ղm:6-Hp}6N:m 3b&OʤrUc$aP :\'5j. W.3NrqY$ -CtPA\Vł&HG)&w4 o(5[t55IRK[cHN w7Xl51{Pds ,89xjjW\!c- Ń)J`($\Mu ҃a#7K oP:<s{7á- AǜǠOSgP({:}Ǡ d!21t .PjM,4DpcC581Y Cd <{d䉄=A^ w1[`1yb!&)8D<tC3Y~!so1 Q"JD"DXH 1G5D(gUHSA'/b8?bXjp`KO#Gzg=_7@dz{zF,c5ie:q4:gU50|w4R(ǀd F<Zp|u؏ -Qe$bjvb4krG -Bbh{}!쩃ӌ,'˙ 0iW<bH}&)j91~ &S4r{j{0iFKiZIS#W(<11Q I4 hA`a,qJ5H#㑔ZАXס֌Y,eB4q̰pIYZӨ$d+;L]*tYcZURsthnKob¼.$6!x1j,)<@Mjj Y^c14E,iNJcAlx5KPwМy+7W!d+O͓{$t4w׷כ>5/r]vF}݁͑ҥ2`Xe-fm F*Xӹnj7Mõ/HtJ ~'qf#?JdǶ.ڄ\P(9NTM3ի^UkmC,C'>RH]RJ]4o?>t+}1n2+f-T+>*(@qTn5 Ѡ&4y[-*T^-PU[Smnme{ Z~G9S\]ǡJwy ѣ'+4^G=_`I4&8!Jh*C+ O'S]**먘nzTFoQ9Gb<'W@)L -֩XTȒFo\Yy./ܝc(~ng190(NwNf{*i mS9cXUtN#/ȭ6 NgXDi<1^]^Gv^WɞU'7 )xtۋJ؋AUr5Lh-:,j|*Q-ђn&XhT-~h5C!iˇPeGW6IhIN0*A68ȡCWz94}poLppo:l$Ç(O(eJ☍:rʅ+NpU0x5\ Jl$U)Hz,$h9k:4H2$Uvɹ_ I7dL Ôt .DrDj:#f$%Gx~R2n8WlfL+0|`W.aڑ4lbO%LN͒IͤZ72)!!E#$>:7d;:|ۉ`y'Bv$IFB2FR8I(Hη;V@] jePW!VP+< мb3y$7JIF&~:MIQXSFj;V lÿmIP{>2U-^hn|r]>@ `!)#I9Hp%8ըCU4.ʡpM3f ܊{ O# Lwa w ty ";܄F l.,0rE"A~(3_$_r'^e]udxkjV_3"Z|`^1@K+x5oH`[3Ce "2? D^7'%*wYp&ʳbX3>}qͱ\"\bGKm[^w-~[֌VӌVղjN$>02(c$ʘD=W+\դu'`pO#<CGгص`>R/{ enzv6Xl͓wʹ]Deg͵8_.9_kyCtױOZOM+iՈX@ h1`>Ovx} B|_.M;,r -S+c`<Rייv4¦t`{jTGS5- EfVGt"٠|U_fuyqn+§u=q~rJd "E :1ֈ,$|h.ƌR<ZM<YpZ^=נ:5T<WnuK<60? )$ )[kE|)[ǧӭf7,un}];^wK}t".2shynp^&*s3h]nl zCJ{$6\"HLn.TF IbpFXO]b6uB)sE1B[)\VnQNwC~ك -ىZ,.)x^_q|[6Q7Q1{oxWZuP.x }oqPK -US= K .0org/racob/test/safearray/SafeArrayContents.classW |T̝LnB ! `XâN&H2 ->+nRvmH]>i_E\Z>UZ}O[sdݜ{Ч0|h3i1~A~g-&9y3?E W"{#> K^,Wtν:J7tx - "~#5GS톏j.ϼi/:bOeپK+K"Gě"yQѻ[2uw=:ט7;qE#]/ ?JO"g}UP?/>8./NXzqK+il#]!eׇ&JTjΟ|"ҽd;C‡,"r4\l/b^Rb+Т"F<#^6`TG[„HGxIW{s1HN}4lk -vFF|}$F(v p,^ - :wcM̲ի0Em*BFC<ڸ8ɭŎu⨭s FӨJ6FMQ4jZB~ `Ǻ8X7K P3r(S:Y'qJ'poZ$#m7#ΦECބ`Dog!FKnŁ[nM­:pIYf J!C,-ܒDĒ19f7'ov5K]9Y[[db∅k,ha>c: ,b<]pmDF)<EFi ZmXQ aꊴ;٫ئR/Υ24J(brELauqN: 1`p{q,5i*g l&b:Ͱ|i4eM'xlBG͢6]Ljۢ8dsҦyTeS5:ѶpC\6T#b>ڴڼZ_6-q ۴شpNƵ6-V@6F;BBnny"v$R̦i5ZeU%=FZ4Dl"MQ%6E:SĦ ݌n)GCxh}qMPpiLѧ_g2* 7R}%vI$wHb`;oyM<M-Ƀ9:LܲSruHW9t~ߵy]է3eu. ױshidvFz4_<je8}/'ZezLɐ\n\F<گ-yDq$ޓII6gpxoSrƹ'U*-$d[ГoUb} Q67:=Ӓ\|jz9=DX/|=oS4$Ё{5~a|rS=߯ǹ2QTޱu4(Iˏ^@!ﶸh྽CrwDԐiIWV%DОE cKr*M6'=Ċcq,t!49`?0ah9z>p{1O 'J;pzin"-eul_˽y9Pr>*\퐚-wi'pv$q csX<$kxYs<l80R892scِX9I̱9Nf̱9N s~K`sg0 xspH785389f3q.s9<kX1jX3渀9.9p:c0z渘93ǥqِogqFg̱962Ǖ̱9^/gNHl,,{TjO`xcGn}yLmR/X0rF. 9jiStqy7 -''Pޣ{.[GOvo~$>F=¢eu4ٟs1vEEɊ+\QnLP$0Q&-eꖲzK*k a6ef9igX=4u9y˹-Ubr q?]qt=S3*f+۵\Texf џЍƀ7L~{F05 5,r!vg .ɅgLTRYbNs\N=RvJf@ - Y+fVheղҟr1We+2υ8?\es\J g,U,W庖j -V5X dןUZ@i -M3;)WݘJ Gpjc#HRF٢1LA5G)\s[Kxn-mn,SJ$\bVD \A2ا^*rM(&V0Q)?؏Kl?V1O_lEYkn\F \!t!IF11,0؇J*vMͪ8&C=ϱI?0yIxxIXqj\7ZX5.;KX.\…שT*Ui*MERÝ<s"p?L@Z3jvbcrצ ~-rp9 -J,BϢfCׇ٣-X|_w75(nnΖ30[_|,/}>$P.B\GNe&Z.ԅ[hnYډN_p'lM EE:=6FWL|U=^_ mO[ok+j[m7{}>><=Ga"xR{Oi„> ?/3z%~A}~7Y=;3 ?׷v<ߎ+ %(^яU=ZoL·͛Fex˘[q1v]62=^ٸS >4G 8w3, saf9Id"\@L2kgnt3Jf'fit-1m<8w!þ֬5鈙vk<k&3/-ìwFX36lt -{XKa,W_%i~_fMGZз<ۆiJ_fikZ[{_JO;{Y[s&kydm!ſVE$Elγ?YSAڇo-@?Fw -O*<";hkcxZcXˣԊ8uxsGZܰA;KyG-<f!<9~IΓ<IqIO8ORySΓ8c O˯:?OPK -US=وv4org/racob/test/safearray/SafeArrayDispatchTest.classURV]ؖPM%\l(i -qBҴ5iR $%5 zˆH/Ä~@o#.e=N={i_㯷A8B= u|i 9@Ǣ ⑎ ,᱁+ZCI)5|JAjxf`XEXSZ^aCw黮F5䂿\Ym:ܬRc|[Vd2T -BQ!ێ PnNaMF*Y;=w3@Ohn-ZBʆ,TW)*tTG=\(e!m8/ -sǒjx*r:pz5:B\[  D(e ,I"p */S\#I岬Ŕ eCWQkb$qU53y{"t͗c;* 1tR"uYa6?d#~"ۋ I`Mج쎆 lgP@[2GTwQw3x ރKLXֆ-'`t @RWMViy`^,Plbs9lZN[梻s'F6ek8Z~]VVNcme:APt@YSҒFD'٩G:$C+9ksFbrV+ Xa*>-k5G}:Ag[g3>Zsrׅ% sLM@׸ce>9#|L)`>,|^8Խ6%ku3uJԮBϛS0lwL=xSG_N,lKM\.jY c&0~kb&;؛8}DǺzS?k3! AŧeˑYb?Wįs <j'+/w DiSL$}q#L&4cuEm|1rC ۟ߍğ4|ٿPK -US=E} ,org/racob/test/safearray/SafeArrayLeak.classW tՙ~d&Ik ԆDJ i$C2f2f&,k)hMҪzZz<=zxv]۳d@~y>}7u7nƽ։:7u` h0VAB!HC؅ -hB.Ĝ1q V76Åpbix]&` {؋}-]xЅo~=A6'q#68467r@`K*g~.2˂@t6oYG4xc0&S6Gux Ϗ7Ѩk~%e* -d㍕xe< 7pmYCbI$)EBA֘  Xiη -~Ye ˷ZH>WK$4YՐ)qz]<).Y?D["+us$T4QI`k4&Ƭl $ -I^J-v81'sqqHk.ݽkaYK9'Nx8NR)n Qf*ٛ+pgpփs8yJ󅷕򅛗tƚ --Z -yM֑HYozpfO`,h31k؄0zڃN|S[-Le΃Kxrwl`k'ZٿATc*QE}:y\j x^dIU{cÃ%3.۶T s߃nx]|KB;W<x7LzpŸ֠׉<i՝%D .bLFD hds18pk,hxJ;3S< -CҔ_;YXa"76|  }xE];I]a!!kIMXwF#-hjΰkޟi.\m r0C0Gn'78S &JrF,+M 7E%՟u5C)y4ĝJF9`S#&uNRӣt4ScWo95j19ϰarϼyChd 2P4,畳C_3RZ8u -?%wغ柄07dDAt,膸lݟ36N-|z&:g\(b(Ԣ! -SDȗ.g\]HU,9.L}i^O7u`p7 c0W2UnBVwuN,_yVN0>wCiʗZ_q`qR3}tgrlͳ0A9NiWJUTkUQYYX -]v|Qs<޹]7Ct7ϟ=!<o/r.; v&}.,$0 ]b}cz}AA4&H =8H /{3LLHDv+}zҿˍ(}KrԫׅۅE٠NeƗ%|Y=X! 8FWeQe§2Ѩ2STdT)*QTLU&2峪2Lӆ27 3 3 -dA -4*H" -22:A" )[AP9 tUNVd7wKt|2jCAvk{C!9_"J<g%mu#!K;]Ň#Pbe̔k1|b1[β+ JD.x,x+ep[-[fX*br7^<c|⋲G^W-)߲K+k ~@k;-~ro0 P.i1KM8SU kwZ[,PX\7XE~ZeJW!_lߩ[< 8AuZ=:oS]حk'm KwտZ~=>RB+z!ע }:<c&]opR]lq.ZW 6Z :h1wPxœ 1u¬_3xgCO,b69\x<,`BXQ4ƻ}ove:ZC1>r -R1ebT%Sb(] -pe5_lA؁Yyb!6vch,a(/,:ϑ@UױYOEL?S]}#$3yI'4xTE;+a9mr -4l 8,sqD\ƣR"[+pJށӲ -Xgd {qAi̋ <JJ܎gN\bU{5y~a4ȣhdgϓ_$^B|Ͳ)ekM?U寰M;Z`@?씟`اϊݭأ2ɽYi8f⠚G hg>M-&Xj8V+*1UXgFUpAݏvt/]PɿA~xϪ#LӨSOAu\A@]&y7MhV?Fg07!hUf{lS-ت>& Tإaz -lp@߄k׬ Vúm6ĕ8W:`UqLגד788wލA\\nC'+>}8Iy<7$<Lee!CLh.ì"Yp+4h5+VX6r|qIQb=$Uޤxz-i&a1¤U6&]Ik:5a!aqVQZv'C K -|'z'Jze#%܎;FgPr)+i) G?;i9bxXJZ}<PSˉ*'^FGƈ~'w3”?=ZQS=Ί >j4VHj-Qy=}̹x?']m((wkPK -US=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classUSW.IuY*Ai][jڪ -$HKMXfl;}c:3}Ӈ>3mi!sw=;n~_\,T1a#ㆂ1`LEZ[RW1!rT)wdLkh59宊{*f1=TW0 輀4=n0g:5+>a۵%{io8]+W-`jYd:soKyG V@*ob*AjXORyFir,jh8%ays5@yQ@WA?.p=ɕQK0N{n-\n J^ F>0K͵+彚_&lY[Q_qu|n:(` ?ݲ!2V<ߨ:Ēt|nfLq27؝ϓ%&/咎e0[[sȪ߫=٣c:2#af|ೞ,[>U 3mj|kt–CHnLy#8:*X8̐CK:?Vy`ol/u52+CP֤䐍d0C_ګVL ta#d$VZ^1+]c^R{HT.kkl?7T;]dfVS$#s wӀap?G'S5){wE9ϵ1T^\m :mϗhGFl"J<Z\d B:oKܿhg4Z;ohO2ߗhDsжS::8?/Nxw^.]f׃kkqDB.nE6IwPƦ c#`>w - я *EZ vtDïSJP^A,TlRg|+awPK -US=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classVyWU=aJ M[Jt[]Bi@[4PڤPDC2M$Lj*KUZ.jVM9bT?/_#7HC޻{o~營l /`@1 Eq$lý8.("E%,C@NN ("$BI#""|KX~1>?ȇ8" <)bT9󔈇aE<GE<&qN>! w O xg%49^𢀗JhQ`q3Xz@e(hQ7V>e8LG+~% jCG]qů 5a UǕS./QהqnesM^iE˕sSK"R/|P@/KȰP,P*JL:J?*9* xf1Cӣh4'7Q==HLQtx ?ңLL,,타W(WO~<m<ͰC2TcWxU``p^kx]2.MBʨȠ$-os3롘Js3wp>> dp vCY:u/PXIOUM-M2> +*^#EI-'i >es -Я+\&G@fWW' %n8X<_1ȜF3J׸RVa-u*esƇpNjT}~+jjcӈ2=QV)f[? ;#M3ueGP"ׄYo) 7ȶ.'/> -0lB \s{*a9`THl Bt&DJVtTR{I6€ c }}t!(A0><8/ȣBE/8}wUEGvu;ԽH%FwO!o 3Zgp)/zŰ̙wkH#{srD8өEח^sOZI;::lz˝y\ۚ*lacA=#98haO]E`vZhf4fdBV@+6klI@@~BѠrVO8u*&צ$&QΥ\Kmq^IUz-64$!)VէPj21mQYG* )8RX֚#e6n3[ Xff\J]y >k`KʚK'JY؜dn30K5E!2uB`&Dp@"RrRp \ƞb5ͦ= $vSlkX%| VHloR>OcWy3,f*HX;Ҹ;d `+%:\D=Ѐ?/ M̎l%v걋h@; 7AvݔI';.vUMopٟ1-^~<6NSaE耛3ij"XUBy>M*xMxwt~Pj 4$W!}##3M3.)EAQZ &HHcz_PK -US=org/racob/test/vbscript/PK -US=ø{E (org/racob/test/vbscript/ScriptTest.classV[lUNw3.NYZeb--R)e:;ۊxxy`bRmc>ᓉ`L^n97􇿿|axHA) ᐊ^ 㰊>G#Q 5܁ -аFV11"萜-2TV0Nd%ܖVsrxJyRP0`Ttܝ^`=` -TtZY0o:=FN^ñzJtNL8FOfMӎs)oꡬYJBHLs@_mes1rHfIf/FڵFÉnsvJ/jκX6C#m'XᦇZr]F+쒂5264\z/괏<s]gFFvC6 -8 z/u|!gEKjF:9h: -:[1K?6segedV.TYF -ៀ NkV܈{#:Գ@!<U,!0s - K" >bi x/)x9Wp*W@(1o@^Wp:7pF頙6@,[dbCf6:'kҒf,kn0Ivq6e[ VftB&s mc;b0ޓ)Ui}i0>D}geknxIDeQrcrXV{ ,j5i,xvvK.Y{3أ1Rælt7ӌ~5+n!\3$aG)vZ𝭞'4xJ(<dS=- dSOù{o^_%<g`v̶Ȼ0h2F|e'4d8\bFL˙ȋ9wy~ U.-X!sgr堙1=?U.zE)aMṵ2X͛o'!4JpC@\C 8z*4r ıJQ; qަtN Ч 84C 4# Ae6O.xH_P9. :`-g Nql܅zk?[nj޽DDQ2IՐ$ΜSt4[ qE8EzI28\2 1F]N+HN`q_c -*;GEz4eqT>2cXOr*crj&pg_!GuGld7Wkqf%U, 6iM—xpd)G˦X4qi\c/Go/^ǎG%e#6Ķ{}5H y9lg?' —؍ h&\f߿b$'b~!WW?kHB#"cX]b=vzST0ΓL*1-Ș3B\*u uEa~Fdݟ"@Kƨ=Y$K*y.}$ˤx~d0{|O2BױJnϻ9ɌoGAW\$[ΒPK -US=C 7org/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classUmSW~nvKQlC"b[*F `" -Yam0N%NoND -NL9yy=q8I|!LՏr!I´1 Qp3ruW=?ՠg5bN+XЏ)PAI UL(XRX n -z~M˫W78A M <7CD%$J!{p F\vFhLٸ4r\'!te1\ -d[t\A^YQ.zY[2}G„LI螗RyZ@u]/ M}>d,gFWfUKs4(V e(3{66f^Yv#t<7/ وxttX'5}˾2:x\u#qgt9_aXXQ)</d,q%p~iΦĘޙ ^d[vɀkCh# 0Nf, gTO_EbR Q#Y^] yplX`l۬ߧ_,4k8w*oh巚O⇨+/m+<e{:kHz758Ïu)oFF ]! N@Ȼ!y#TJ㔌"ǯG?T6"B,+".Fe pL9pICpѓVr~6P]D )t__na`pL0(x e~9QLXfa<ױ*5O)]#<yD#KzD -ҸJ_1bzp FqV$_eS36 ZHdRR>E{ӢB[2:rV@1)?PK -US=@> -)org/racob/test/vbscript/ScriptTest2.classV]pUn~a%4?(B)TR%ݒdfS?+0hGfgw|rttPڦS3={9=ܻ:6ᨎЧ?G:U4 x'CHĩU³Q! +||A gt*K!~T0c2J tl@*10@U"X9wPF_6+޴˼@>+khː@q++2#4GԄvLwb-qI3i\M佤]XRu,Fhf,mfS+sKIs-;KR,+Iyr^UڙU ˘p+"ȗO -ϋ3CV>g1B0^A.!O`MيRQV̗毳*f+}4in4z.8IyR寙*ئ!c mwT[C8{s (`BEp-qx$՗ W5fu\aʋSң9Qo*[7kބa[nmJv`Z6_(X܊Ջؿ5rX| 5Is\ش 4z̼T^Jv1ǾX:3u8(MvǓhtE'JؚI8|Z=)&L.-JGlG@meY˜Ǿtk٩=F0ѲkP-p*b4'Fe*O<wb.q9 /AΊXvlA]fFf.'=8Jo2^C]R6B*lItH>5,EzLKYsY,u346]{ 1nJAl[8ꔠCG'B)Y)B9 m'EpM[X%"*oӨ |nzx -5E (Hkۊ#,\go -7|mnBc|'nNqMXNφmfRil\Q]AYأE4UЈFlgŤF7T ;XaDU*>]|IWԏVζѳnZ@#v{y' <X88m˛3tp7h)"w)~6wUq ߉]FtC|d12o'f9p7Rvt'7XidUƹTG }5_SF_QHze(S0IHMphַnK%WlfPK -US=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classUmSX~n[IꊺRތv_PV(ַ4\KM:-#/HŸ7gM+T)2;&ssrooi8k1uP1&nimbR*jc*idЉ)W`VC -ЋRi*p*(*X`N0pa[W4Q lߩ -#򴗞Nmu$: -C,q.q|R~*i'izU^|G͘$з,bg]̦Af--Rr #bPܒdڰ )9;nL#(}GߟȉO_ +W㹤 ~9gUa!ZOy5Ys$ugVc 9yXQ! -Rԕ,фx{/x𽲌@u<S=۫j {}^mJg:_ԤkVPd9DNP05PqzڔXs1aFh@ -5ͫv;@#h~UBm*K~S'%P~֨3v_Ԑ7 nq+Bcd -zA6q4J g G@\к}0ئ*4v`Uț><qDv?,VQ~9"B?@y6\G I:xõqQa&GX~h2#~m(IA8}8.Z$#APGzv-6Iy2: ;y8DCRidbX/XV1N$ -0<4L`hh*RYJs 8 `02iPFCZe?P{:nX /*.2PK -US=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classVoUv.S -KRZqR-RV RZN;ζO -!/`66jbbBHLw?MLl_l[ٽs~s޽W؍OAᘊ-)S؊~?S~i?\<W硫c-z|K:胐!u0ZfUHHIRZTԞc -m^vvcL(:Iaz:- -<6Qz9ldvOHYIt -6-ƭD䐑NN|}4QtTp -:uFp((qW%F$ݫV\7tېY6E6426vOYzx\-1c1+'"IGv&Sqr +)}iUzM c:$MAy/bm$][3& SS [Jy4l%1Gv)7n6Y^*U7gY;.: g!N4N7jR/hx/o1[5l/kxJg5s10U<.i栰 -[Zj -9jxk@Fa)]$_҉冋>68 KD%S6ʤB3" 4Hئ@yV=-$wm| -vnn]奰[´)D\2Uǚ0$vAex%aH81=2E_O˖eZ\#9f20M⥜|{QbӎH´2`NaEz¡"'e=Fپ奾rc;+ǚ[]aSre˹"/\+xÝr\cn핦rya2X!8&6᫑/ZqV,ޥrW+. UH &\gʼ8B@x*35s -iS7Z)WFq5X5 .m۳(m^ÚiD .22A,gQņ,* l\zFU$ reW4{ryNj)}w`WCPݣU -РJlCфJ/W^eP4t :7Qͱzț7P t51k 5~ZGFqt,(- L[L}I:Mw}Ou~ '~&IoNtS<<LF чFg{S{-dyތJ,QF8g-vFj=*:T:r(p|fdM!c䱏ЈO.Q[>ã*9]-rv_uk}yκ>9+5ĭCPK -US=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classV[WU J.-JS,V+ P!bN&00Lv-l}.,KwZrW4d>g}eN_~:p7"`0,cD;%cT˜wH0 2S0i )a% q; -1+]A>#q<W'PEOd|*ASpi C?oxW.&m7s5N|Ǧ"ٵ25,gFOd6P3TҰD>nJK$$m]3g4aeԲˠ<ajIItC9yh4fjVV YЖĦ}װWDv%n1imxEoL89A -:IAG Q_T\k*.KBVż,RW&QjSE<3Xg8_}c߉ŋ<a"Y-ߵMŒ`ppO O<MRJy-KT,c?쮶nbCh>_<axUƃfFLAA٧s|!ȗ****~@Cݲ.rşwi+PwDoT<gUSA}"}qI^.N{PKJ.$T|s4v1gM1|ĵ\O)~19tΤhw2\8AZx 俏! e?^:m%n?)ʥ29^'TGc z|H -t2q5cN[zRЗ}4nÊQq/oP]J!QtL"Mqk]8Z'~KX8,.!Zs Q0ѪBw ־gN;*n\FLxUt=0 <B:*"TE6HhQ]uDj;pjM4, /ond:8i, rMqg[xUjĎk'Jߞl|r_〗Nh/P~bMISփT!a:F`KU:NG1#گA A-4oU=A^%uN]ߢbN o>G D6Dz'%)dthWлO;PK -US=ˆSk)org/racob/test/vbscript/ScriptTest3.classVmWG~7l(TAъԚh\!,nv `mˇK~zN j4;w~;11O \2ъ1=\N#mS !+\5) PF `B˛LjyKM|/2R*1w &`*GcMEi`@UDn*2V|_FV"2h " -y9YnbP _jR` -83;2OV* -<]*u*q[`Ywy|W>J6%=Q-MؑW)52-OI&x* Wg˜dC%G*7iKfN]˹Fd\s #I4 ]Jh/+۹;nII/XfIY[e,ȑ`-ÀOPO,Xͤ<y۳P@z^!U uכeܕϝ7ho-|%w,⶜. GpTf~nEl{o$[A[v:rr 確k3W+~ĒC8,pp4 -Ycu^*R -le6 -5s\1|TKʎXcOʐ/k]Uv-ĵh &%'"[n7֣5iNIG o=MJxu@q5*BK;C3ׇZCk_}F Ջ -s7ϧori0KO&6v}خoNBzY.Df_ Ly -8@> άN O?0E<C-JGށ-+<Bj7ٷ,ZA;_>Cǭn[FV)9[Ǝet-Fٝ'إ9_A#k}+~ەׁ?Ntc7&1KgxhĻ`)C| 8`rw5y"B;LJ BI N@%1!?~_8%ңD&pE$'-DiÇJ~JY>}H?-8a#<NۑIH@vo1[$q:֭L b[j: PK -US=(YHorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classU[WUNL2 vUmSjk ZpDa$@KwZ$eI{go_9SWc1U|(F`L8&"N*"="´V0 -Tb8K2/ry忬J>T@ŻJ -ah+}7x93L' Mr>4鮍*~7`ٖbxi!tLʲt^IK97<KeXQ 6icpt6xpްs2UdRg9 5|{x§MA4+,Ǧ9akS[}Ь - u)z&dmN(e=tkxSej܌=ISӰ!2?ZapQ+I:6/ -<'/X -V5!O`)ʧh丆=( ùCk)c\)/KO˝-Z_ lP_ ljwкxk+7]|Ӓ! ? ZӁcr2Ǣ +g|:zRPdK#| 4NQ7gɇ O(W]W+<u=^;P$^tJ$CwNjj{b OEtt|dV):_Qm0\m2/W}D8k "^ls*~WynRu]+$MYqky)WND/tq5XbǁMhHKD[E} 0A8V:@d1݃;hi=h:@Le{x bkś]E@;xWhm8swNZyD#ȮCyq2魓|:J AM4zeo,X i05^l&$-c9H& Jf, ->"U\zR>cD_H+fs4)-U94eA5PK -US=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classVmsU~ni\l By X$m R@kol{@8SLȌ~+n--={syι_5|~381$O!%`g D4&33 3B11Gz`X$O1<]fm`΀-ۡԱ[9M9=y20cYt(@GT/aZ?[ޅ]E0}爼w g(]k)WZQWF*9<ߨʰbͺdKmSV1j<<t -(έ1ECH5&U5Wj5ky„d6%n2PbS_s5^(Ku -F{*_沲I+<vbH3erqG5&1dj!FtL\հ &\,&D?cM57@dBW*thqt#$wM4qS90qS|aKbGR)n4ǀ@grW:3okS՚ʭ]yqH`(kIQغrסwC\֜1OVF -,J"elΌaS+e@jg玪TerbluHN~LPpN7bl < -ɠ|3Rݗ<a[  $VHyZufJ[=?Qi B!%ʸ9N> *A?'-'?_4ԗZnX<ÜKT:pcAqvBP -@H$mw$KC-ziHNL6stGwvK ٶ9p =-lka;{ءԗw'4G{ii{sr~K۱4ӘSEEDez{8q~Zp}1P"9M^̓*Y mڿ{Dg~$hF36uC}oV[x;f -'?Ca`I25lFS1{@þI]Z^֐;`/+:lPK -US=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classV]lUnݙn-'@Y*X݅JQu;;.T|bBb l5dLĄ>ٶ`6ssιw>^fi xFó:qBɓq Z$13lˆBB8E%_qNɗj4`ІM=GCjx5024CeՑ谀 qӒ'tTPNa1zFŝdbS1WX)UH;fލ%=1DѴk.e@YʨM%#VBy[L^;-i -28}%wde-v.UdJ 4KpreF:M/eV}2SnX9fˤ> #蔆Ni@.:io>Y.g[UC6,}gMͦCږYf8k/D5YzjG^͆K/I+:kӎ4\~0RT/c<p]8Y=E3;*Ih$a 8uQUom ]l =lX|P@lQ -K)ja-1ǾT9-QO}r(+U9)}]AK6-Zگ#̰ǟLiϯio$)lM;6.Fkլ+VYNڌtF.ÃmGM@S$E7}^Y~#֨GnLb,9=;6ΣW;-EMu!_aKWfO?|> q3o)CvJ^ UUKU.D<To$T3 } -#tP7D0kF}2:BPgr߉B#4XSѯ ZS2ZI$|uBH$'&Lb]<zWWެ+tB7wj:ߪ9ERnu=v=y?z#GoD%|ͯ_{_gI9zN`'؍O׉[7٬ݡs⾢GOBa^Q}"^gnWx4"1ְ#af}X~*3>Ixs;s֟Y%45R3$]\45i8[SH7O4MUoʶ;-kgh86ej#/PK -US=Ж1org/racob/test/vbscript/ScriptTestErrEvents.classQ]OA=ӯk[V -K$bL)OCҦ/<ͮc!&,|?xgh"!u{sx&dO`Nʾg^MjCY2ƪy"D$1X" -\$kT obmf܈T'ERF[>0!ndh! [2)ц?8U{Qy! C0QsܤHzt=8 B-<s9.D_/D  ja/c1( \;bJ+szs?foFvl9qMK,+n߲Dh:mUqBFX}vA -B OxDu# l2t,@ -a;*%j BѦ>ou#\}ۭ]/voPK -US=org/racob/test/windowsmedia/PK -US=-m"*org/racob/test/windowsmedia/WMPlayer.classS[OAf[, -ԂUTp411Y"<-)w%`@dϙ9|sf43Ɛ4g``70jf) Qz,q&lMaHI_Dql!Y -*ˑx^Eη]䜠 I?2&Վ1:AT#^m%jޓ~%ثy"jy"eޕP6&F{^0r/++6'M] -0N7<`Ȭ,JWq|[Aaߥ̕ҦN6q=glU{MEү.ե[$Ԏ(B=r V0 C<2,L[X4c8kb% sY=Sԉ]/{yxHC0Lxtě;BFA("02/r o`HW<N-X0޹>EC=^٤d*6f'i5p.$C 9K ${c:K7>4рE:Ⱦ5؇4h"L ,OP307R,Kihأ Fp%n&v-(PK -US= AMETA-INF/PK -US=@D+META-INF/MANIFEST.MFPK -US=bw `META-INF/JacobVersion.propertiesPK -WUS=Aorg/PK -US= -A7org/racob/PK -WUS=A_org/racob/activeX/PK -WUS=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classPK -WUS=4n2.- org/racob/activeX/ActiveXDispatchEvents.classPK -WUS=?,. org/racob/activeX/ActiveXInvocationProxy.classPK -US=Aorg/racob/com/PK -US=I /org/racob/com/ActiveXComponentFactoryTest.classPK -WUS=8n_org/racob/com/Automation.classPK -WUS=[K org/racob/com/ComException.classPK -WUS=..$"org/racob/com/ComFailException.classPK -WUS=#+y0%org/racob/com/ComThread.classPK -WUS=ך[Pw)org/racob/com/Currency.classPK -WUS=7X!-org/racob/com/DateUtilities.classPK -US=:+s%0org/racob/com/DateUtilitiesTest.classPK -WUS=spm@bH4org/racob/com/Dispatch.classPK -WUS=g{ "Forg/racob/com/DispatchEvents.classPK -WUS=L4M4 &Jorg/racob/com/DispatchIdentifier.classPK -US=Yo-h)Porg/racob/com/DispatchNullProgramId.classPK -WUS=+vK!Rorg/racob/com/DispatchProxy.classPK -US=&t Torg/racob/com/DispatchTest.classPK -US=*-Uorg/racob/com/DispatchValidDispatchTest.classPK -WUS=a5!(Yorg/racob/com/Documentation.classPK -WUS=ZZh([org/racob/com/EnumVariant.classPK -WUS=қ%y Y^org/racob/com/FuncDesc.classPK -WUS=borg/racob/com/IUnknown.classPK -WUS=<. #forg/racob/com/InvocationProxy.classPK -WUS=ʼn8 .3jorg/racob/com/InvocationProxyAllVariants.classPK -US=C0Lporg/racob/com/JacobDeadlockTest$TestThread.classPK -US=G%`torg/racob/com/JacobDeadlockTest.classPK -WUS=o\"sxorg/racob/com/JacobException.classPK -US=SW#zorg/racob/com/JacobObjectTest.classPK -WUS= w$8|org/racob/com/JacobReleaseInfo.classPK -WUS=@|s !org/racob/com/LibraryLoader.classPK -US=Bx%org/racob/com/LibraryLoaderTest.classPK -WUS=Ldhorg/racob/com/MainSTA.classPK -WUS=EF5+eorg/racob/com/NotImplementedException.classPK -WUS=5h.porg/racob/com/Parameter.classPK -WUS=OR[org/racob/com/Pointer.classPK -WUS=zM(org/racob/com/PointerWeakReference.classPK -WUS=ϦF|qborg/racob/com/ROT$1.classPK -WUS= -org/racob/com/ROT$2.classPK -WUS="m* Иorg/racob/com/ROT.classPK -US=Q5 +/org/racob/com/ROT2Test$ROT2TestThread.classPK -US=d45org/racob/com/ROT2Test.classPK -US=` -+org/racob/com/ROT3Test$ROT3TestThread.classPK -US=33org/racob/com/ROT3Test.classPK -US=L[ org/racob/com/ROTTest.classPK -WUS=&<'4org/racob/com/STA.classPK -WUS==A org/racob/com/SafeArray.classPK -WUS=X#8 org/racob/com/TypeInfo.classPK -WUS=|QHorg/racob/com/TypeLib.classPK -WUS= -Eeorg/racob/com/VarDesc.classPK -WUS=#H*3@org/racob/com/Variant.classPK -US=͉\#org/racob/com/VariantDateTest.classPK -US=5org/racob/com/VariantTest$VariantInitTestThread.classPK -US=g(Norg/racob/com/VariantTest.classPK -WUS=r  $org/racob/com/VariantUtilities.classPK -US= DX (org/racob/com/VariantUtilitiesTest.classPK -WUS=GH3#Forg/racob/com/VariantViaEvent.classPK -WUS=qQ]"(Worg/racob/com/WrongThreadException.classPK -US=Aorg/racob/test/PK -US=$(!'org/racob/test/BaseTestCase.classPK -US=A>'org/racob/test/errors/PK -US=3a9,r'org/racob/test/errors/UnicodeErrorTest.classPK -US=A+org/racob/test/events/PK -US=D6Q+org/racob/test/events/ExcelEventTest$ExcelEvents.classPK -US=RM<*-.org/racob/test/events/ExcelEventTest.classPK -US=vFQ",7org/racob/test/events/IETest.classPK -US=D>֙G;org/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classPK -US=0 u -3Borg/racob/test/events/IETestActiveProxyThread.classPK -US=Q{.Jorg/racob/test/events/IETestActiveXProxy.classPK -US=u^ 1^Norg/racob/test/events/IETestThread$IEEvents.classPK -US=-(Sorg/racob/test/events/IETestThread.classPK -US=J>i4[org/racob/test/events/WordEventTest$WordEvents.classPK -US=~ )M^org/racob/test/events/WordEventTest.classPK -US=Acorg/racob/test/excel/PK -US=fHg 4corg/racob/test/excel/ControllerTest$Controller.classPK -US=mG)oorg/racob/test/excel/ControllerTest.classPK -US=Arorg/racob/test/powerpoint/PK -US= i- Csorg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classPK -US=hX.yorg/racob/test/powerpoint/PowerpointTest.classPK -US=A~org/racob/test/safearray/PK -US=Հ+I$1~org/racob/test/safearray/SafeArrayBasicTest.classPK -US= K .0@org/racob/test/safearray/SafeArrayContents.classPK -US=وv4Iorg/racob/test/safearray/SafeArrayDispatchTest.classPK -US=E} ,org/racob/test/safearray/SafeArrayLeak.classPK -US=f -!3\org/racob/test/safearray/SafeArrayReleaseTest.classPK -US=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classPK -US=Aeorg/racob/test/vbscript/PK -US=ø{E (org/racob/test/vbscript/ScriptTest.classPK -US=C 7&org/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classPK -US=@> -)!org/racob/test/vbscript/ScriptTest2.classPK -US=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classPK -US=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classPK -US=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classPK -US=ˆSk)<org/racob/test/vbscript/ScriptTest3.classPK -US=(YH$org/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classPK -US=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classPK -US=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classPK -US=Ж1 org/racob/test/vbscript/ScriptTestErrEvents.classPK -US=Aorg/racob/test/windowsmedia/PK -US=-m"*+org/racob/test/windowsmedia/WMPlayer.classPKjjV"PK -US=||win32ole/Win32oleService.class1I -) -*+ -,-. / -,01 - 23 - 4 5 - 6789: win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -Exceptions; getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java < => ?&WIN32OLE @A BC#org/jruby/ext/win32ole/RubyWIN32OLE DEjava/lang/ref/WeakReference F  GHorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionorg/racob/com/LibraryLoader loadLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* - '+M+,N- Y- - %*'' !"!#$ %&" - '(PK -US=ewin32ole/utils.rbrequire 'win32ole/win32ole_variant' - -class WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def methods_with_flag(flag) - members = [] - all_methods(typeinfo_from_ole) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & flag - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - tdocs = type_lib.get_documentation(i) - return type_lib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = WIN32OLE::VARIANT.variant_to_string(vt) || "Unknown Type #{vt}" - - type_details << type_string if type_details - - if vt == WIN32OLE::VARIANT::VT_PTR && type_details - # TODO: Add detail logic - end - - type_details ? type_details : type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -US=ɴА9А9win32ole/win32ole.jarPK -SS= META-INF/PK -SS==META-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.8.1 -Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/racob.jar - -PK -hSS=jruby-win32ole/PK -hSS=org/PK -hSS= -org/jruby/PK -hSS=org/jruby/ext/PK -hSS=org/jruby/ext/win32ole/PK -SS= win32ole/PK -hSS=P|jruby-win32ole.rbrequire 'java' - -# Set location so the loader can find the native dll it needs -arch = ENV_JAVA['sun.arch.data.model'] == '32' ? 'x86' : 'x64' -java.lang.System.set_property 'racob.dll.path', - File.dirname(__FILE__) + "/racob-#{arch}.dll" - -require 'racob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import org.racob.com.Variant -java_import org.racob.com.Automation -java_import org.racob.com.ComFailException -java_import org.racob.com.ComThread -java_import org.racob.com.Dispatch -java_import org.racob.com.DispatchEvents -java_import org.racob.com.EnumVariant -java_import org.racob.com.FuncDesc -java_import org.racob.com.TypeInfo -java_import org.racob.com.TypeLib -java_import org.racob.com.VarDesc -java_import org.racob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -hSS=??jruby-win32ole/version.rbmodule JRuby - module WIN32OLE - VERSION = "0.8.0" - end -end -PK -hSS=S60org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lorg/racob/com/Variant;)Lorg/racob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lorg/racob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxyorg/racob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -hSS=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -hSS=>'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLorg/racob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/racob/com/Dispatch;)V getDispatch()Lorg/racob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLorg/racob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLorg/racob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJorg/racob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lorg/racob/com/EnumVariant;org/racob/com/EnumVarianthasMoreElements()Z nextElement()Lorg/racob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lorg/racob/com/Dispatch;I)Ljava/lang/Object;callD(Lorg/racob/com/Dispatch;ILjava/lang/Object;)Lorg/racob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lorg/racob/com/Dispatch;Ljava/lang/String;)Lorg/racob/com/Variant;put?(Lorg/racob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lorg/racob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lorg/racob/com/Variant;H(Lorg/racob/com/Dispatch;II[Ljava/lang/Object;[I)Lorg/racob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lorg/racob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lorg/racob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lorg/racob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;org/racob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK -hSS=`9  racob.jarPK -ZR= META-INF/PK -YR=ѷMETA-INF/MANIFEST.MFPAj0 =VZT7PH 4% [`KFi;3N9c>g%R;$fl&7\PRzTV\}J:]aP]Cb2}_'%2 -A-Jk72QBɛ06gUs}vSAiq^B(rny&hPɏv{|ゥß^E\CS΂ذFVHA*/_PK -ZR=ِy META-INF/JacobVersion.propertiesSQ0PO.Q0204P04222T5050ROMQN-P04U04225Rpv *K-*ϳ534J*IKI,I5Z 57hp d̒Ԣf3c^PK -ȉR=org/PK -ɉR= -org/racob/PK -AR=org/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classŗ xW7d7@CIhUDB@o:LݝeBVЪ}>*ZbnRPVZZ_֪33;lfPɝιso> `E5fqn…,q/>O)/p؃{Yϰ}|E>o,<Y n|fX|كYaN#| =A܃nz<x̃ ֱ,| gxO0IO:s,fϰo,ƳjgAm۩cb@@8[(PPڰM)Wp[X4n7mVmQhtC 4vh7/?/]'7ѶʨW+e,SXX_"j'mQ9T¸~ƔZ@~5T$cv͵IQ6DHD!(!<,MjަcK9S]᎘؅) -^`]w_j"kJGLiYPAK)kcJ9܍P6S 0ͩIM<KЈ(dmQ51QЂZaNN OG9Tu}w -M]C`4lR(zvR= --8qVQrkc$Sm+txbN^$gjXIwkV+͔Nb?-ŪUUrF_EGZQ^Br"фH#@x]Y,i*UCXT/*U)Qfk>{.\.f -N9s|E3 R+6D.k9FBr~<NY}aJk tY /;&'C})v{ƍлV$lS,d/B ρy6!7+{xt-ϖ ͧ$ $`\vJ $?c'lw+T;0/H~%K -aE ~p ~,^yO] gd%A b {2|Я~FGr񊄿lAX ǫ,^c#Ayr_wȤ.:TG:(͝muZx[;6VewB=X]JCOLM_j{ha{2NﴂpX eOksod^k]Zi5ELjkLꢂHtR{<ѿRϰv [;uStK/lHKnn * iEC52OA]M`ݥq9.;K/ؾ=o2xI-P *XjM6I$BYV 0p5I4j1 -u-ԠZKPG f-c%ꈵԁ ˉn'VҤ5+(`0ie'љڛ i,4Uyަ \P^GqL\)z93ȢoXIq ,მlr -NzCCP1T!TBc0JLUx/)6!XFƑmNj oQA;yw/hU6WQrW~df3K(KX+u#/csLl5 ϲ Z$cT2QZTA2 >Ta%52٫A@S2p+z0*_$Kf֐ s0n)h%mƶ}]n` jCXDYm8$p\G&}{AfOۍ"éoM\6\R zؑ>Ά>)Uv4iƊgPrT8{/F[tڝ|-1}Uq>qcEkFggX&(p1.c@AFGcc՜B@>>2^"7K1!yPAU;4u t:ӢSG!ar2-: ?r}ĭm#g_g0Z99Waߺd^q'~jlhZԙH(1O1W+Ȧ_,Qy>iXWD=+[jHII[b8!焬%rJ GZd!Dlwt.NDJRkڅOa7KNbH1ΧHUcƼQo c$ tQi{ƈg ƾ7zՉ+{-k"s $3i,>NkWeO?tm3>ܨѹu5;0zd"hf|Ri)߰ĭR˥ټٰ^ET3>Y]0V MB*nVivV~]iVGN橴87躥#6'澻83aG8)U| o0R,b }U2%MtΦiϦZ~uS7ralle]V͵N:ں7XֵՈ!Luix8M;&,{LdzEq֖ɫAf'-%5^5^3fuѕ_N<. )Qn=xwBL[iK2mI-,4Rhs9|$v.|va&f;,Gͅ}%Z M%| -KL%yfPK -AR=4n2.-org/racob/activeX/ActiveXDispatchEvents.classn@M81iSZZT,PT((% $wlIVpC%x -1kV.aK37;c+бe+X5pWu\q!{KBfX/5<1}ڦEgISoXZc-v ņp6wvv&mu[/:dGC ˖b_w`]ٯ3#;Y1ri -.ÝNSuf{l3</d.{!ڄtvTV)<?f(%e$ Uޮ\sHpF3ȖPO S9LatfGReTCaXHqۻ2 tRe[XA"h!OAGNӜTk#)ѠؠMZ0@'"&HEY1IJw*} )y]'Ԩ9? +c,󑰲.`PsZŽg0b3dib.P*8+~A ǵ'djbxpO : լc'KXj(\PK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t xn=횓ݽ~К:״=5C&E\:OYNi픶sݞ=i_D.-peMoQ#-UWw wf1 }:q$K7뎞3\)^ywgB~_ߓR]"0EtJyql}Oکb:Sίd[CF*ccv|7٬1g{bΰ\t(J]ͣ?׏<ǓT.U%Z Zsg1XtAcy{} $=z6#&2vxE2,槗=it5`K{#1m*eV6hS ݷ9?xANU_4]o5I峆`#%#Ne:&lTtSilW*^#MSf3 RI+3Mxr:խZO]:FUT7w77̪@dxGJ*:%F6W4c-5rzvvάxGB]wqFY ڵLa|Ͷ1ۙ(hL7閦;>G|α<^/} ~Xukmkp|N͝}T1aQ=cqFB^Y,Wz{smb 5Wt.<PIqU7nwi^Wvf~P -kfMU]D[oHW%%5&jY< DDVkE5POvkh*kW3f&]ﱕb"X(dq>ſ$Qnᬛ>1 ԡmގlղUob/^m+/;( %;K XB[³|en&YǖY(HG,2 uDXK %"3hD9EJ:|m1XBACLTF400 c_`Y,Ak'-ml -3XIWadU Vn`m<M|?OOآ/cǗq)\϶ Јb7Va1+0#H<i F4g|yO¤)zk%797=?A-4qۡm0} =؉H{p'S\ك8ŭ{oǖ4PDqG Da?XO<I/'O^BKX!cϒAFRƃ2RN}2HɄ ͗i,\80(c^92`fyV_TybWw;%o ־ζ6Ahj INcԉT|@%ۘ"3<ѳd sE`%l"x:$yËn>B4"\M4p1(V1+;̯uqzɕ/Q8IX]zՉ7G - a Dğ^Mm\rC%6ɍb\M=:V*&pޝC#B1)OSW}F8Rr'Ic̃rABy -q\ʌo5T_rE.LPK -AR=org/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classV[oG6YL @Z=P`b!JؓxkN/S_؇VCyDUT"U*Zͮ;R,kg̹|9gf 28# Gp뛃8A*qxBIHG: 13 p!7\ -@#dJ;b4vSaqa~ :7V[Y <h"Y.;) Z=Z -}N()챘gX*21!ĭB2DzҢU(f͌XltmEǰL/.y#@VB٤0ǨШzުa{cIE)Gό'M8)X* !s6)}sT2MA s߰KK)#R>6-Xe)Pyռ3z-_,`oȺiϩPLf`B&+hlw]CPTq%,ݚrlﲹ@n2C$ -m -v2_%MBX"mҲK1%Rdq79-fMTA0`^d52^4r'srz\h%Y9A9n6U2cYʹzjK4\3g'lwkLhVz~Oe裬VńaK2sdN9VXprI%i(!|$-R%rJh)^*ᑫʂ%!wٴo(Ik}+7 -ލt˕I1Y;;x6U<_ QQ<*/FÜ%(zDInZ= 5Vk<5RINr|~4r=Jl:IA}J(-c=90qwB腽3+ߢ\52tIB7L7X)N oZA\8*ltKϐ.lS=k'@OwTY0U/!+PYGoixsmZA4c9Ѝ ڍ&>\$6VSCZJ)YGJ& BNmm --db׃m$mn|TTKn#;*-,:5Œg8s\5>`-ak!IE{}%J0}` # {g6J -|HdMx '6E^hʱ[X -Vt^CSdem*Vq+yojfUGw6#/q -Κv:͈6zhO724!;274*x[[^پv03ᇙ(SI''G8wY\y\@QF)21/1o`i-os}?.?0S+S8n$0E ` ɶcmqHscvƙRc!^G{VL6.Aw">Bl 6Nk@~ƃttнQPK -AR=8n_org/racob/com/Automation.classuOJ@}ӤM=7o ^+<=I%ٕu#Y~%Nb 87;oޛ~}|$A481!F!քn!ʹQM+y$vޑτ̺R8Y\7ښ9aXYY>L焋i/RTҔb6|Ǿ7YNae{c}ل>!ߪ =|[=Pgx܉{֭cƨ#0~ h!3a>PK -ZR=[K org/racob/com/ComException.classR]OAn-EPJ]>&D(eY5..ȋOA(㹳꒘M=3{9̯?~meP4D5F&hy,AV(H4tvZn{5#(d5 -xkVfz~sEP BEuAjm[awtg]7ܲwcvZmjQ -la -m'صcGy5`[j_O\PsN6Aw$w|©3Y?3'KM7Z?)CąvldZK^݃6T31N2ii FE*H -d*}?2J~kx^y<A %* K2$Vwr<& C(xM<P1. Df)EJ5QR,b,ad s^TQÝs񘲩O`f I:'EhSg$}Y:\N,=̥aRW+0KoCX_K1S\N4#U]_M|F kTò֤͜\{`rMhz̕$~*$(?L夳Y嬮V7lqN\hRtItyƮՔׁR3S*kʟRoȪPK -AR=..$org/racob/com/ComFailException.classoPƿ -Pݜ9 &i$tCWK@Mig[tOM|wc?d6}(1$==={ʏ?_x2pee.K@`#t'v:vL@02hbK[=~8)PzxNPZl -S;xcN]l}&9M* C?iSF_ԲO"+΃l'pMoff]6v3R >o5#Q -e`imn'GO[٧@h+vh@Źjkrdj~9G%lXvY,M/XRDES:J1ez+Yc/2iYfbm%U(:<̠H28fl-ž!T^UQ̓8\F]9NQQF7"vS7,ѩێRUc(ý%鸙ҹ(#vVdΪtnΏ:C[RORK4WAR0w|K^:ߒ=PK -ZR=3org/racob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++ٌm<Up[N-9۱k%9.^t@wvrr*_"Io-Һla߶+Ǣ/ܶg"7^7&\!HIy~|P\";L"ɍ]ָUd -ݺ6*ُ! {X-sP -ϺU`ݶ9EW;ꡒx IH1´x$^_48\TlgF.-O\#Ht=kkI^M1CZ|Ԧoy -o%c-m$ۦ]s8,O ;?6,F?^sv;oWnZ-g]ԻIU{{CdxgNGmn]$З<iH"áaKLKuh%+9V 5yOy2s)e"<J0a 5!~cstJѦ#.E3r9ľvL4x;p +tц:j B5tdždc37"i}<0$9;D>VNZE.iEȴ0Ҟ %"# F&.Ӻ -~#A0BbMu { L;}9Ɵd@>5k|)uT C5>;iED7 (4ʔӥ1QFE h6"@n4 NjfJZCܹ;rxDyN|O}g ; G㗈&@ 2D#4륅)(H/PK -ZR=ך[Pworg/racob/com/Currency.classuSRQ=7ې0,$F!P0U`J| -L&.~C*MJ*?ʲ0!}9}?LI qLD%c4WuPpSn)N *&:pWߓ1y)R0%6VE$JnVCo~Y[l޶ʷ" p2se K,TY&E]f;<fl2 mux^l8*#KC<"au !iaI`2EjYA-QT#mÔfInpvmWE2WE^ry<WUnn!dW1dv.U1 0tmK^fXUqU!CmYenw ao0>U, !n[;ںsr4F]#̪cyXP(ڇmߗlߠwW**1^|ə|sS"&zAJi 1(T7hӵw| ӗ/яDV!VC -JwX}C P!Mj&y8a<{Nؒcˑi |)c8C9N{| ʑ=v"PGS5G<$u'G -7g=< ,?b&__<IR*3u(ut0n6[Q"yhi?/D?hf:b5:?#FPlse J]Zw=D[I8AOEӴ!oETS2@jF!z5ǼI}/no4qD8T ؖzJ -6ɦeDwPK -AR=7X!org/racob/com/DateUtilities.class}TMsU=/I'C$!!g(*H$p`%b|iNwظqa$%U_OqEq^O&z}{νQ6>(.1Fwc|2R2ӧfjc~(ຉ/EK6#׃( Jx3^- -ilƞ $0hAWT3NZ"UNmUj@{MGTvtVlVVF2&׃0 Wm2F1B0r+P@_2dnȆaBU5> 60YJcU 9 $O Қ(E1L 2p⌹Z`7ltp?G82k0T HS:#OFQQ/ ]]M&S:n;86,pE{|@y_ 8+݈ZF 1UWRN^fo24 SW-ˬ)ΦNOǏ54~_qS|v06O5Xv!~sI1;Nr;8_Ez<н=vaz2LL!0~$0c[{Fg!?mMULvิO//as7bE<qfșd!b{^= -,}IoC|j/po?v0&f.S,@\+fg/ir&:XYQyR 'I-jO1?4nSa_PK -AR=:+s%org/racob/com/DateUtilitiesTest.classURG=]/+,$1YAƎM6(`%28Aj$ ʂVPT!Uyʳ (S?ŕ-fvzNw=;OFBGj{4tW>?3p :xy O t,*XF4,3>t=7xm'7"$\O4yBxNyeZg0~yQ:+yQ ғ{ 6N'%VŒWeL_+vE)4E^yk!èJ ʮ^yu^]b*\aX (\y蜺obc Z4<5ŗ&B30 -) R>ÍЖZY*)u2jJoM>"7X3Ǻ /-eAj^% &^ba/ʒ:-JWj3=~`:.%Va*cgp #p}A'yUIQE^ř~x򲣓 aKfNNAR*L4xR \-lbN$ը vL>? -Ȗ}HGD腏ZD^K٠t8 /qAU#v6UZUp$]d#Pn0j8N+fFs>+z{4Lhf CSzGwn}Hc+M3MMzP}MDxW!=nU`:ю<X͐4"*w'dE̢t]-"["70y,O"9bH4q-?0~dM u?J%cT̒-9ܡ?{!wp(qBL܇ak1f0PK -ZR=spm@bHorg/racob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΙ{o~V?W@;~(<K?c#? y?;')"A'|s/KB~_^^~ ZJk^#m hAhᢅ@ nZxzK*O sSp`_:o'@*|A,zKY.eB@(hՅ-JU>X&Ж%Fi\rɧ -)@D.;IMWJSҊ]Wȥ2k T^pQwWp綍}jtzw^)' -46й-٣kڔ͍I)B?"]CT&UX4 I;mS*#LsδL )6R,h\OH*;Q`NzR8TU <$=DN -r\#hij xG -rLp}9SHDRxi뤜g -rnD_, !Bϗ7ݵ]韞@,Ʈ5i*UD6E]TiPJ}F&,t0lH19ǡ-ɽJE*, m/mm̂B].H9!ĉҳ"cTf*{7sEfRCa"kCZ-%NuFq^&;r[! 3le,bqu•g^ !1'鮋Qr$40 $V*6lflwF֢6 %N--t;DV!$2dw%1lAgɑFuL r/uNVU_qJXHعb]F`;[E`zAS i5;$ggA@:^C̑qękXU.ݹ&'g0 3N a'R{[ʉ^ ', @'_XN0)&pA||2JV6Ь3nD.|V`x~ 0{7'ۚO4ʥp2gI2?7yI9޹u8L ]8Jr fe}/֚I@gs;m~ F2So߷0\厅b wB& 5ZJwn"+!E_VjE-"\] @@dRK4HxK "NˣR37:9.g -ݻhfY S-dVG3BTJ^d:R&*OycTG脔傜H[ ԳT2GTNN8CxT`\ dԐj2o-|>ʨ]4 cI-& -RAֹoe̖]L2+dzi7{d LINR3ҥ\0pK$DiZ!Pm^Z3C#x`=tx笻ԅ ^1MT!HEkp! ,8/t!=sU& =I}/%`{[7kM[WBԡt*F|gZYxMnB*ۄQC?ˮ bwȇ7C;?lX:?lMklյy:lk۝wэt3LTi&l j= <; *@= -?Wm,݉][jszN -r; 5wk0xw?T`0QiA>X2Ke2X R1Zۆz5]^v - -]46u }Co=C"ʥ9PZn,B%N3ܨl-(B 1N s7܃0f`GWdTTiQV:Õp% SF]eH]V[@3{VuP- l%xU^9 5KIUXҁ.⠋@V65:Œ2֘VKA6g*\n?FN&e05*3)&Bi!n -73ݜDhl]*A C1x#[`)ӉU[ Uո0/D;t<Gq0> f&b+ sYe\wTfu/q23іْ7İ;왁%4HH+b7s0 CAYi65AMaMTjpnjAѪ%`hՄPg"TP@ hG,9:d-XnV̳l޴ѣ8P: AM'SejL-\ede.C(s6n%w{_׊#>A!7o޼L8>㧣Mơduu\R3pC؄UlFЙyr\{/ITL<+17߫ hxb |l޿z0q}S'QK Ԟa؇<1YD#)A(5Rţpo"<Ex<x#[i ik5.YNADa}A 5P -JM xԷpQ@Eg# tyћ#Lt3ZBȋd~׭1o[ʘVblLߪTGn~PR9o5| M<바%63ςKP5yPXga5:rA>Aw0@^f -r F8WҪUJ=S#ӻ|_<:AwXGʲWhڝX3kPCI=aT֩s(gr(g2Z knhF&gI3 {F5pđ8RGjHM!?)3C>¶?c*\iJt -E+nSMqGqGqG1DZk^ -<@`'B<u|j#q6Ƒ8rGnm Oa?~v02@?X WXASƈj].tp: ܅Bw@kV8seh5"N#(X -b#(h{ڽ& -~QSQ02; -TnBmb?m#Q$z~& -jNjYF]41|ܣg,`l4!=Hlt"QQ02(hB|E-`dQЄDMԐ+ ->`#ɅWЅWm|Gc؇Zk` -f4IwUB t7<,"jQm)I1=,)xDcHVݦ4繴eBu<P2SfB>맯=ƕaJmֆp:],m|*I#Un8ތڽTƫnH?*2R@mF@ʏQxiKIrˣp)0glZ&]r'GQfdey/Μ5cʺ 0)߂ʷGmKrEx)-F{PtI@<]bl?C眄 Le\jR:JE @"Z/2&&PXx"|!\7dcx -SBZ/38HHMXF yOJ8qRj ZE&Ex<Ԅ]!X)6.iI%&7p1X#."|2RFH҈?3bs1$d59'Ee4$&-BHVu9"eeU0ԋW"Rl۠߰ :<%Ex2BOVMXBk yOXeKj¼ 1oy)LZM9ՄqF{_ĵO38i5# -G)2sv9~;o#3Fa/_0~R/{-FY+$hYZ?^F퇩|-_®u%}VĠeJWPUzFVbiZ泰>پtw{tcd~t`$ A8?V QhL:U$gPK -ZR=g{ "org/racob/com/DispatchEvents.classVkSU~6 p!4X*T*P(*HMr twåV:8ՙӆZf|4@q89?8~X&Ƥ)!]m\QCW$k~`Vu=żP`f, ->~,aY`Ҋ[~¤/T>P1779k[; l-e%c)+0^MeW`'u'ĺ f<厜]dLXiH&&}CKL cQu^kp66:NcY; rd^77#>2\=3ں1l+O/3\_[TܝOIļ6̠qRAJp'# S=DWT`|DX#:ca8q OXV:,sU> 9yY˺qNpEX2" -2*֠3WF ] Cs<;.ul V-;$[ʡ,Ln3>1*^ 4-7dCf0!4tN g4c䳄N0 +W-#bT96#@u2Up.e9xG7Oe{*VAw&y22EGe7,FPt`剢Q%hWq3-=wd -#<u' |49fPZ&&-!!EWLll{@I9)v ^C]@F}N蟦V^<O vT鋲=I‹ ~/ImR:QB jo?WU-I)ľ2D,s@E-v#{<B}}(K{}U -/!+| 5!H#ɑ 6=BpK=Lgh+];={(SU-㺀zZ)ww(w1i ->Rj>2>G_ɗ2CH9-`R -IUt/2S`PW\?# ]YTI>NQv\yk -囧(;M 0SÇ71*;@HohFFel&3h dRс HRra-}oPK -AR=L4M4 &org/racob/com/DispatchIdentifier.classWwG`0j5 Lz-ckfdBd!@,{yM/y9y'H5R ?cYs%qNs,ܽ3{gvg1}Ǻه^1gl' -Ly~;-*Z\fY#3cF)@#~ 8$̮뺞 -/I5Ζ7B1b!Wu8Lȿl؂\-ufG7؏Ӳl?g+aӰp*259W~hy5GH^ٴo eY5,ӭ#6o-l,#~(Kԯf -0]a.z*Dv56(c1.g_%c{2\ң9Zni#i?D;^,ԺkncI -ruCYCaع(;uP"{PMGmrkLF%e=_3;rLV9O~ HuN|։_~FzBCPg:d oTU H.jyg%]#iUԛ<8ux=6?ኹ>٦4i -kQ?`[R$K$\<8F:g~5ÎN#mn<gGCDmWl RFloTlˍlD1WAζWJ(xf<yOCΞ>:Џ;48[679FB;1o4" tЉs2mg ʥ{ g=Vl[*jBdS|$.9V燫BebP8l/k bV:W*V}QeZ(:SvO/MᩕSabXmɿ&d=l . /"^ /ˈ+Wīkă@xx xf[ۈowww &"CG>@|>D|>B|>F|>A|>El&!S|a؇{8cgq|>~ |#>_ .S2qD\%k3eGLj ~~ig爟_ ~~eW׈_o]=ϷًOC?0Jy?bJbPK -AR=Yo-h)org/racob/com/DispatchNullProgramId.classTN@=lR,P$Q&$+!YѶig<M|G1)\tj܏sϹ~3;(`32Q*sʽ 7 `Ƣ%,,[Xa?ܖ n+<>? S*<n;sX& U7Umˤɵ -X5b7H%'CodlNx_s/QëXF e%'rGh'DF+~M-UD5Wx3H3j4'J[1 ba{+&1lc>SѺیvNDp*tMc&`8\YO6%JoªCota_(ca]C,¦>q; vwGt0L2c=ا=F+F:%I SV4aRy{ф<Af -"ҷ3sei0h&ˣ'+zNp|y` ]"K}V̋3dsNBG#P4OSXSM`2GRe]# )j(uRv anv3 ow6YӅPK -AR=+vK!org/racob/com/DispatchProxy.class}R[OA]X ([xn[ /&<nvL ?xf[(>̜3ws?PC̓ -X+><<GCk=ck=q3 Jɰ4ޯjv5Ru= M{X^*ɞGteauV߾{ʰ8Ϩo)(gNuyswEHj4JU Z& -ZPG̺J8p(x"9xqKPD76>_R5ev5CJ;~Mb4F~l4|vN͓HdGxFr:k!,<F.,#'IP3t4!!|1K?meE 30.q,z&6ԧ+5*5E95[}覽B[tVPK -AR=&t org/racob/com/DispatchTest.classuON1]\Wo$6 ӆ {6RtC6$f23Lϯkr4KHo[B|BHQ:Yr^i7Ռ*9Hg^pRZ$TŽ_Wӱ}Px)`BoY Z' ǿaw!0 `x PcLY fbn]b1,Ў)_Fí"mEPK -AR=*-org/racob/com/DispatchValidDispatchTest.classRA !B0AbP4UPldqL<Ox,|(˞$rALUzvw -^0xc>~RЅEh -PcY+ܖNwqO} `nڦxI'k0Sm =VB)GV"o)i.ם;m,inٿ$ QAAu>Zֆ+ [lԍ0PLNRG=,nvZ -س/%/V $0;! JDm&Jwʮn옲$ᶇ_T bHCPc;d#‰ iwJaz(P$x_,Vp鶒ˋY"*-͎x`WsI2Ժp mx7(,EjMyYac?W6yɐ$wVbb˫-{{HfT߅O%a2 &-/P</ ;˰*bRf W#*?~ԖbBR dPrfو'h&[04s'`Y_ud՚cCcu|M+&R;PW -+P+9['m(GAiKQ2|ixxDF=cRgZ>E/S5fP ~ -t M1E\䋑wbH$_~"$%t5eҴI:[qPK -AR=a5!org/racob/com/Documentation.classQn@}8q )IC P'$BT¡(J\9^:~PG!fmٙ޼`UDOTU -m ,<g0C> )?né{G~8}PH/)f"Ҟ c5f` #? o;r|ubEmNz<Wu -?ch d4u#ɱɹۗb.˜Ǿ iTu"x7wYп]$t"'voe6PQR eXui|*mz2^DMRVS,'ә*u.`4o`jz 4_ӭ C3@LEB*m)%BΔ3Йrәc&n\:U޹A!vҐaneN&y;[%3ɍLJ~InꮝPK -ZR=ZZhorg/racob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4K!?_|D шQs:`m9ޞ}|n805]q NMK~2!xc Odxs2%,0rݨ1 N)h]Lv%]S 3id)v޴LwALfSrkp=gZfR4WZL;9[M5'vfݪWΩmZ0IIvچebX. Zg [ơ1 %Sm -;[wamI dB#*ҨG{ځ.kV)g3o,xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϓڴu}yP7<?N`{3D˭j\̥:[@$%EEKe?\2]5} +{#0AEq  -Gh(F Qccjcρ{H -cph YFjowOH*B'8;AS!_ -_R`ʛ?L#a4L> 6#|6a6n'~B>Ew,Jsf@-QQMe{6x) % ?ARs{JyAK9j6-}TNPK -ZR=қ%y org/racob/com/FuncDesc.class}T[sV^"_8!&\mbH ز 0(Lm)#iԇv?l+췻9ߑ-x) 42{d^44ɴȴɼJ xj.U.7"5 -d[װܶQ<`aVZ$S<,^VRYeY /[x\QLJVƞZzMlJ.NRKmNkyT*rO9X[ +7Nr;5,o +TSKT]uU5QqIIL^%Z 5(5eoLf{k:0 ѵN~D#=hAp7c;v7I>Jtq?Q]=\DL+=hg:q ~ku ->unBQ -mb}Ϋ]ˬӤNRkNﻃ}UVb:Wtc2(cmxmt"*, LVѠs&WOefR>i~Wtcuԝ.87Qlqb~KJdlC.l -P{'"o?Pڱ3"ڰ%d՟_~9Ë/%Y&e8ˈV|xU>x݇!7[op;F_$غwd+j^|RW|>B/S>NFWFWG .fc#\| 1Ǐ )f#HFCiRl5x8 l&v  `0F&0ƌ21F3G&GOq,_/8۴iE֌0.`' 7C߅AV(i(9$? %Bɩ q( R9{Jw7#i-#Gb;,ϳWnH#`#FM%y" jlgN"Ttd=PK -AR=8uorg/racob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;;?}`'`xc_-XƊ:HeU)o"Xc Xԑ+q#MN5(]嵧>t? ?kEï Z6,W: C)]Lm:VKS2 ChKaJ1+5I9a P Fa%ڮud/, -J)Xfh=fMXzeWY<[ҔLQ^J!m)yJ(DDP)Bju P+rY40to"wD];mU^[OO$Z(7Y /L]qrr+3X߶IL:LJ7, R#|q) 9<5a楣G9`2](Pa{(9T=wT {Ȅ ȴc /8~u=9*seۭZ'1gM'eWiv - [nةM*K8at4GݹH=V鮋l5h T(E9]bkZ]o%T Mf7$a\1"Z sKEwrr32FIyL<V=@0hڍo4 i!3` <IZu!Q|J;^7FSW@I(M@X{^{@>pHn3 -CBɛ#y 8"&&h;UBu}YOɿQǛ 7ҽըíNB#c{'@5"/=d9;eAO;u -x3OX$}UīSt\{(5Q"]/e,# z5 0gK2{4!*Fn{aGN1ZDN1Q:$u4VIPK -ZR=<. #org/racob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg\L-d-w#w6)8[ےEk2&CE,pJױ rS *,vz&07뗒mJ/>k#[,>-6 !5ႆhe:%aNmr'PP#<fha""ňN"ЃN]c\&5LaZS<S/hC?miyU2e䠙uױr` Kl[{b\J7LSfhO5YwTV'yRrᆮ*2w?a2\Q[s'>UM8HEY_l*JѴ&dAs1h2Cya_A !|f%y^zYȖ+I$}hCN(t]^/d%Ag>7%~cҪDA1\Bwr8!QxuNC\?k#QG(Jsj};PwpfZOtA?!泻h I/A5!TEr8!HZXLk0*FޮZخDgݯ2nPK -ZR=ʼn8 .org/racob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#@!!tf:&=COOBnbKf@I)*׮XErmuϘMe{޹⦅~Q8_ݸ \ C^\F-F«aDp%B&!c - -Q=qL`(&L*0CH`Ia~!dPz;e( -(5 uI]ǰ\zLw13U=vB35ǐ2w I8ZkInk`װǾ1frmA\ӦSR-cXEr + lH_ݜcykzB#tWw'"k -RRPOÝ9u#g bكĄ/^U6M=mN*-cX"gŠe;=9W=:}ZZ_#XȀYRjݮ]`k|E )"*]-1٫eb{2bg显tk9 ː9ml'Ep@t70C‹w=gI-W=SzRl75ouH:m\T}WլFތ-܊m>;(KLlT?Ion 4f"c uf$صUUֲJW)>eqI1P,e3@`piϠxa:vZV4T%۳'ͫe"ƴxFeRjuuKwԘؤg=j3.E곪Tcvp :]<!53D{-L&i1϶U<V:_>, E/Z=Mkl>Kd'{2o--~6/s+4,+Ϗk8Ė$=ry -GJd5JEWe/6V.c~tuF^xZt#vбzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=RZ9l+h@X;RK9|Es4>6i`$JѠYRGץ9lE*Xk<y>Y}mX }Tv"w5V/9?s5 5'NJ`}hH`?q|s6vgۊiD\B'fp,>A?nc_p=MWWǏw$td4!ja͘$+SD=lq6w]xDIn~r z?y@owL0G*s ^e˔˧FpPB'k):D_c4*OPb_8"Юt3 tsp (87S<GAJSBA~bPK -AR=C0org/racob/com/JacobDeadlockTest$TestThread.classT]WE~&KM@TZk"R P45@mR*ԪCölfS?G#c Q٤pby?y?f~7L1ku3 ´Yi& ,,&pK&M +ZᖾCMV-YXp;pD]# r[u*-_na -ti<tnk҆@GQ=ymGM2!WmeGEUiUd=Y+~PogJ~%sKs<G‘4iE]PZ;et|,330pYaVT.7ZqM'Lho`8g#Q1*0ۖr2tjiMlxtͱĮob#Ra6>,P[#HU8^e^aiWNwd6>ø@ͯ}e m%k&uT)VHL|aIobPuZMUɌs'TeܿoXɃ<1xy֯dƬopӭg,=Dʪc"~6Ä dJ PJt8fYk/<>sQwWc g\RmvsMJbC8C{9{0=t<><98э "uZHӎqEȱӱu1z"BY6o#<ǩ}t&&&M$qt9Iqnrѳi='y -_M'KiӵI -\%ibI\'"f9~SX<b!kbXel6f0@LLZn];Ebxgkt&WrKje.nLdkcV|9NADh|6(PK -AR=G%org/racob/com/JacobDeadlockTest.classrDƿquдuh 5M!@R -P'Nk7LßVb0W\ -r57N}ށ)843svov׿S, ő{A -bAEAnC 7\ IlcXò+ 5jM4zqL`oZR[%т1nXfg6hl9zmz5cH {,*Ae{FV$eb2mխNV2lWv`1G EOXU]f+ל99رʽ#g֖OXN8aqG$u`Ftv˵ j}㡑 g7[FQfC]4\c%UUK4qLc -td1#|+{.I3:J):ְNejQe7Lﰠ -6ds[ 1m#73Faeۖo]먢.腗d)pv!*d) -$Yt:l#FZ*ْ<Hm^\ؐnU-?_̱<lӥM7$0=EJuOJk||bb/ *}^9rVЪ}_ l2Azz/BE"!`1r.S>"d#)$x^ϻOR.{''rJ4$+' K_'Nqc95+Iu;Fȷգ,8WsjZTI%>r/NۇZ.W1\ 'ơu1܏ۇTZ"J NRt{X k?qŜAc6[a&yO籪~{c"pHE#kTgPư.H;;Puf3PK -AR=o\"org/racob/com/JacobException.class}MKBAi}a2n 7AfYv !vm?Z'sRDbΜs={׏g5,'QJ!rp$J.X!z|K!' f!mK%:/ R'a96c޵tVڱM[oZzdPg(V7|!Wzfr;0w,q(OvnGO'r i0ǰR ߆H|=b QST#AAUI:f(րQͳGDBQbn`F70KYz"CK N RDuI;!4QM AG LPK -AR=SW#org/racob/com/JacobObjectTest.class}R]OQ=nY|hwU4fFHnfğhGbKJ>̝33gfv.W6f:۸cj#"fcƪٸE<0YxPx##2C~_Ü'#E|<eO<lX3ȄaSqǍy|7P]>G"Ї"ѻ ^_했"@@Pe,yď,<qPGaܐG@2D̰vɤ`O-<sM 6C)ns-Зh2w7{<'M]gE䥈TjYSwi!뉨ͰUmp]J*BAm|+u1JfAT*'4`+ -Kkqqeu9t3<\ҌI -/,YI:YQ!MdIkSLF -HP`dЭ!4+Q!A(^vgHFPK -AR= w$org/racob/com/JacobReleaseInfo.classUmSU~. eY) - Z%U[m(Pӆ+n6t鲛nU} ̨ߜ?x&Rܗy99w `s*{HXPUЅPAK2fEjx$cMy -U6)kØ%m1]N!GMBA-T װ-pn_;Ԓfy1R,h'jfm}kw1./ezҶzmhf@2Y@,LE /W -Y - ٺfnh!uc{b ќ픒ۅn$7gS\NB_u2w<k'RKŰٕs=z fAB9\;8Cd+^7'i%N唠S15$۩w:_ͺpJޮ8:_4"Nb.|WOBQ鼔Y./0`S. %O`0'߅e4kO `5k‹VgG+.=nj b6N,. kwkuŅN*¤8IPafo-!UoDPqEX2bp@ - EXdY*|ݨ -1%<W P~T7RS=@_$޳z1\<ӘMjk1C<vo6vXZ0 Dn.݇q3OMT(YF~z2pi5z!\E7DW<Ղod+^용MPɘtBYE3AOئOL@fZ)ih&i݁:iMdILM#W>dƐoT1>W1&NBV9F3BM^{ѵVT*{&ýU7 Oփ`|j׸pab _ޫ*F_Q7!EqaI-Bޡq)>yc>;HE\&FIk$L/ >3?ngQzuQS*~ Uqg~Ev/O[F7Vhȧ QVm"ڡ2O5co ,|?%B%%y?PK -AR=ᚹq !org/racob/com/LibraryLoader.classWwg~fwL6C&)41׍B %d7ABR-q;ILfY^[kҋ@ښZ˦(_=?@稧|3d"d}{-+vJqQ(tLDBZ(&1%>0qB|fdX-Q0}pbl8XO)(oo*oGw/= -Aߋ!<*xL -/3 -Bœ -*xJlVX %=(AKOꝖnOuxiO}A^xV(95?SwwPB& ߵsgPwW1m+!2*!FU´',CxtkTwMAoHؖpܩNWO9)g3aN{:ie, ڌdJ5HK3~;;kg:6IpG43f툑qnOsшR-`t궢Gzv2<gD2#'9ݛPSvύKm;J#qS3I}η!9x ޖP=ex]cp]#BܲV?Ueߵø&LGt7#~:AeJU|TyzfHRxQ98%Pŏ2Q -.1^eX*~c*^l#`*~ o^wN H<mYqQ7oTs,X/^כɚ}q4 VC_Wl00r:qѻDtUo .!hBݭn[R[(T䄺2_C%yq -:Xy1y1ՙeuOr^$>Ю* iU?9TqYh,`;~_RF5]orث% -a˚>\k6ZwȊ3&v2$l-"^yI:Z>1 7Kﱪi=t\2f [am{Qca=fo@ߨ_Μz[ֈz+CI9v&reܜaՎbaa XoKo9>ڐ6&SץaYxx/(X R+tİ =c ؓw -}5܌߻헛̸/[žpNn/OL;mODa+킄.R!TL]G'":FzwHsEtHrw9\%Z/A|wC0_5>|k9/=0A/#t‰jDrؐGP[s(O/!*iBu,acc HRcS]Է^EmV!تUD*/nѶP?V~rck{-4QU:3Zvb+d~ݪ>A@M/վ6"c\4 {Q}G_dbLs/*XQq;,ykt;mx}(ex}x -43s|Oe^#.u +{|87q R:>|Z! dT~ -Ӌѳ>b8Y,N IwR~HTG!|p t qH S0vT~2,㈌GQ:H]נqPCx= Pw/Ύ|og!2~4ik= D%c`30&/{+滵Ojy jlsYlڃmxQD[q3O$E_0Đ1f_yO/b~QDq+NnWqV!| Up!~DPK -AR=nis%org/racob/com/LibraryLoaderTest.classT][D~$ph嫩u)+PZjإEQg N~^^}x&Zx\̙9900VQfWr$gj20 Y/ 㞆9uc^ǂcI2ycYc _3u}7М)1d`]_e!y#Mt9Uf2\S '/nYrydB"fF$Su#D%!C7}Hz<oQ5X]fٻ/x)<C+*tK.#% -d*bGC0 _Ia0 x誻zPȫM bHmb WN#; =C}V[ n4gVL<oL<EQM<CIÆo}W%!_OpᡉM|g{ 1AU*!GP-r^QRV⽥"]:?p&|; -E)vƫ eG7lS/*b53'e*J5uunLZؖt@zΆb$CQ|z}5QD|.rv*-9_FN['0ۼ(u5O!YtCA;P'<T6,͜cNɜGvb[H)*DvW6=\ϱ1Rg0$2Vy͑6eԜzNo^Ӧ -np$Szm?74o^:FK 1càiv EjoĿy/j"m˚5\ި=QC+dl[ T -9@l7-!A`5щ.z$`yz~Lٌ Od3MD~0ȷ-QiNw8%KeEZe>k-J_X%LRjBVm!Q>ǮԮnr_K5ЊZwIC `g4&PK -ZR=Ldorg/racob/com/MainSTA.classm -@gML4_+ ;0`"XEhΟ,|JD]v>f`@6J6k(cyvgE0'jʾDz)=B_ -i+"T72^,PgFS/E0%6 _ -dd۬;/@{]fRD i}PK -AR=EF5+org/racob/com/NotImplementedException.classP=KA}h"6&H8Do.K\ { AK K+8w "̼y;abV  TciFJGgc 厎b+";\ޞ^/7m;ޅn ;FE$T<<Ks*35O$8/2kULhzL]#|=v}m{,\rf8oT:&n 8C=7$`DX"ֿ^?AD? #<OQĵL 6)quRvM5> -*SZYPK -ZR=5h.porg/racob/com/Parameter.classuR]OA=eiPȇ`;(+UQECBBeZ2_&nL|/26(Їs3<`˨`CM<RŖ' v(N8P e8x`ɐ2qP>&2 -Őa"qvpLd޲ڱ>0^yGsQ<cяz~?:""LhW e_!vරUtDveO{ANWC=J졝C3wSI H.;iWwizO8KS$RHVb\JRhwh_]z7A4T~7nԃIU<L)VPW0Y ]'W0~$ԧ>B]]-u*Ygδj6 =o),SؼapxIQb -7%,(!شLjd5 I*)X훴&ߟo")GLwʓ;媠;֝rNy+NsueTս Ep^21^1<yH;)G^1Wf 5#\ȓ2<yHnN1\̓u=uPK -ZR=OR[org/racob/com/Pointer.classmn0?7icc [DA DܹRgJ,{nv@\< UHϟ>OOL {8`=Ju4Lǂa/xOG"{G )[4ɐgKgr$x8oRȞ2E:IN~1gx+g8sjcy|_\Oz|<c 0 ͳXJ}s`~]40a/Ctv[/Cs-UgP::8!"x2\-ͰJ[O/`ZuB?P;nJYEߪb ʚ kf$K֩ӮkT.|kt ;c}lDȒd6V~\-5Z5hUT~zJ`_E+ PK -ZR=zM(org/racob/com/PointerWeakReference.class[KQ'm2M`-at<lOZ+}h*ݰ ̜̞קgș ƣŸ L20-`\)k/*+*.v$Yu=&<.<uF5qU'ϡ&54w$^W'$+m5/+JOeڑ]wÍ3.0۝{ *4? ^kQJ{T#Ygy(}p5X7B32 ZH ) XߢKOAhi$!#o0yg!X8Q(s] x qN2veW؏5aN8t S2:Wh!Gnw ` ur2PK -ZR=ϦF|qorg/racob/com/ROT$1.classmKO@HPvccѭD&&C1u&ߥ5.(me&{>bBkX``Ħ-BK*ra+"OJWLǢdZ)t|ZWpWW?9w3%a2yǏ4;>Ws/"[~7xnDr'=ţ8 h[ z:\q%TqF/P*FD#=4m6PfdBg3,ϸ)ýf&M?Ѣ(^n4J^2RjH}XcЩ1|<̽L c.!7 gXI]TӳTӾ@"vXPK -ZR=org/racob/com/ROT$2.classRJ@=WXg.\ #.a48DK7 - -~%Ds+md`aA (XX̐)I%=z!uۂ!_J7-a2Q L]cC0>!m:nqkg]EdI_\[\[\]\5q)P"eG 4D^Z>WJߩ= -4C|ֺ^@pq&R9uOhF6)=:'"궅, ߲0q!#I-a|-{ѓCyioYiHo<=%l&1B6I ' -"V67'$G~"LR"20Ә,bt([PK -ZR=wN+ org/racob/com/ROT.classW |Wn&% r`h+l͐vv7JnAm=GxQWj=]&ԟJ~{{{s= `䙁-x8!f(kdܦ"'.; -q'^+fSp_/ o,ěBoeܣ‡2N Pq/Nw=^r ӂ~Cbχ|D38`Pi TT㈊+qVI)VU9pQ#*qBb=;>Ê5Zfq[_ V1õf!KCBUnq䭶6tuƢf'913\WpoW6.`;G]5A60VVШ[m%ͱ/!A;n$HԆ@PCsGSegCz*oho>\MZG¾1d,7D;^>*lVԙ @oY~`w(2}]ӮwIGSSļXgNE!#9` C rdqڼ`*<cNZd <F21̶.Z2Mef7adK(Fˎ@$mXiҶLN.ގ .g+aQb0+ePE3caX8v:n|7z_)pP`ЈFKW^-Ჲ}C S -ow[1`هBA_dwS_ayvcװ4|OԻ5n D~ _e|C7-x\Jc-;iEsGtQ?)m<;2GxLÏ ˞T ?rIτOOO_h%. -ְڰMBt wZФa/d^fAqz6|4S>L? _]m*5CtS}:l8pj+[FXF֣QvРm]4dhSWœI&\} <iXi'a_lQY8:zjV4#21#|rzV/69vptMnY, f1یxh%Zc{ -#ⲺlrO"*D@|׸ZY%e*1;mVqdF^*Vk fN{l\@6/} &&,w6,yCBcaT?lZx>@csY7}m*m[x*과N-v7LyN3#qj^Csry>>1/r]!"nI2ճ0s=Q싄&O<"v8, ܁lv?WB'Ņ<ű# 6efuF㐸F518i=yeI)Xp#0غ{9-vSyKe+ì*:<v<A -̺%"9ؒymC7$HȦsuY^oK\N~$Zp=p g&'$M8D 'FI,A~9j=P}\' cK%<f]qEN?|^@ު']y^tD(F;4^ǿn:*Sfr#P $\M-#3Yܣ)g3d`HGi'> BEa,zX<S;;%ܿ0- y80P4eEN`/3!A*%XɅsKɽؔt!H`ee)VL2Y7v庩X0aP6Ђ(ӬE/p##Aܔi$(ű'G=T$)R.,Z7>˨/T%8q\D:.bA5@uey"-Jȸnm(ywfV$5&#Nz]nXɟ:ݐgiKdB,E -yiJ2q I$eE*Nq00k8[;$2N9$ytjWxip͞aBoiJAtiK}U4S!, *hu -Ũl'pֱ6jq ;ⷑlbM3E60=2/+E_əDYxgbxG;7bn˽]DoaG# ³PK -AR=Q5 +org/racob/com/ROT2Test$ROT2TestThread.classVsU\IRrkeA(IZDE r+-4m [ݰpUĻ>0qq2>.ÀIKow}m|ov0dm8%W)'7 -N+8Ar5Yd8jq#vCx'w#jKX) Kr\DKQ -lEg&[OMWD5YrᴙtE])%=c%2v!1;nɃ[eZk6oPYԸҶ]i4<5]R@gt% -ni1\'6$足t:eZF_0f8X:̀BV+P{,pzd| - -#vIgK ԚiWwnl~lF%ZϸZM2|[gr )]#{Z(mQT)pf.E/f!׮hƖIe'c3ef#픒*vSEvt}G.CT@Tiوbf>k8RK*ʸ¨/Up\5qCM/KKT/vF5 1cv MfM[Y-|>T|*n㎊qW'XUth8eyQONТk:[g\*+x5Z5[ϦrzW#%g}zEыEâi,aUkhZ8!"\qWɛ -k1!?[`_1xaefNϥW-E.CdvA4U,v4u,.Ni^‰QO^q;|xzy< 2<o/gb7i3䷠4FJF4h^죞\k0C_(/!0iߵInǞGPF!42p| -)6$P7UXK0|WgH 0D{CCjZ9ih$fڥP!g"*4c7owZ -y@whi E3(c=|w#6=D$Qn^ Ch嶬$3Rɧ݇h1Ċ*c!V0WGXIsu}g;g/ F5 &8&D?bqq/D- {e oWmVyV-V9T;f0 ~Tp ¢1'c Q i445NT=V;³:PK -AR=d45org/racob/com/ROT2Test.classRnQ.?RJu(7.hc$6i\]Ng̠/q]|ƿsZI|s>xqXVpEJa,ǰ*y) - - -}W.ZmnY0iڦ!v"[NW0-vmx"Mt]S'ʈoR wq ipގ,>33(~@OȐ=%L6}y - -Mgv}SRJGT\E -+;CV{FwMWVW'\*(Io!\<CAvèqOH! ¦ew”jˆ:c3V1ӎQϚ۴w].Gc ZDdIvF#9CR#!<褎0 ԷuB]tŒv^"3t皯BTIt_$p@b1Y*$.Bx9lBCrEddŎODjB8m_$9!}704_^ *~PK -AR=` -+org/racob/com/ROT3Test$ROT3TestThread.classVsU$)h*i%zINӥn - -Vuf*"-g|q`&)鍱|{w AtBXtM E}byL>H  /Nyq$|H{1P8BCB6EFw3^^XtfðpNÚaT݊\y2 jV Uma5tMCEU;gr6LM5a #uLۑV[隭鮜ޭ'ec(YVUs4:{vpayleh -,&VT65={<Q#Ii:eQiT 5}Xgj1rL׹M|" gpj -g1TjݶjQ# n3 Еj?[HE2J\VJtf.K<p.f$+ee)^BnCj Zyjm1 u93j"SK6 I۰]\IS3MuDt8K&lf]0$u9-+mq(Sb8"᲌+xW(cK3!RWb;E錟 [TA JHƘ0Z;80LdzRI%Hcr\(5$AJp*D Q&O :Luʑ7"a\Ƨ"9ڧ׌ڠMA#N*ʡ (IϥC'Cojj𕌯qA7 WҘ?AY6)5CQf\'#[Ҙ*Ortۆ&0Wđ1e9+z, -4MwuXK%2+yAbQgSN+pkV4dS;b<C]J0Yiγ"E>F-hF(%æp5)l6 +viꟺKutrp%e \hM/PU%ّ`4xI{Yt ,y -ܡ"7A>[nᖑ2q2I""TfXp{];r )B^laHwBEhITVD'dK7OʅQ&i,_g樯 2#BfkṍI56 iʋ&Q廎Dʚ?#$u`!X[ -A(RZ/~*{hpTO<_vhn(<i -m(~s8 06U9D-?b8H6G;}t`]^>E8Ϊpգv"΢HX/O`]F"`3l6aβ?p3+J~崎R?275b{PX˄҅$-ϽBzR` -b>bx@ƙ -S'AYh -fa^qyeHv즧΂8PK -AR=3org/racob/com/ROT3Test.classS]oP~+2N7tqePG!a3BxNZ~^S5~[ly?}؉BŪ5Q6%lE -tY'pFàV-K8>w]25-ӻԳMPDʹ%oɒmorǔ1LT2qڲL<b:7㚶Ub`&UQ?Sx| PfM)(~Q|_r 3lWuEc5cZݽLkAEy TP ekn퐳0+BL烁yAݾ=g*Ihz2wij'&| E\q:b -&T"fNe mBP\%YZa@@-xO˟׎8#x8F(aFA!棽gc_؛9;BԷ}J DS4Ȑ4`GXHB"H{r'Ol:*IݾCQFe+9Fm/PK -AR=L[ org/racob/com/ROTTest.classWoW]zw<: ciG:%ljgwz'q- (-$))|A6!!!U R;;~R,>=s~qgO`?~Aj8@7>XOB‡W#xZxQa$PY5Ԑ \0p1KqX Q`' Gmj4*.1J))\Q Zq 4<ye >Ẇ>̟JE >gp396HmT !Ӗ*tGEJj֨j~6 9DklG)u;=2"=qM"yxe딥O 9?㚎;(1HK7?oES\`j7rNаށch\nK`";u]c -^{UyLWVz%-$$XVN<L@:8q,s) yL3CFeþkU %yDİSqs#bݮx =piUgp!ZIa5$b_—J_ Ӫ+t:ᖺH=ݴu OVs[Yce^ddԚwa*QI|P7놝 >YMISۖcOْ6/L:-9W>л:vvvpU d6,WXQ˳I|r5a$Ykּr#vQthغ PFrՕaY<.syWZNʒN龣3sRWIvqtTX}yWrY'U-9=גJavXPCADY.n ݖ5J iح^)&=s2c_->VOwlYMI/HZUZL!9nzeU XƓb= JRJeoS?]nMWwi%~s]e5{T*oˎcLdיRBb -&ۿ<Ā<5Cy#dQ_ -v+Q隅)eOޑizr&2;vn+=&V;Uۺ;qp}FW,3+x: nZ3}1OHQLr-iE -X}g -+DeW- /Q.Koa )lԺ93nǚԊ138^RdPfph<H[@Nhz&Д&͗Zc:|mKtx*ZD$WqY~m*QXβ]o3P!Cup@ pcʀ,xMX#Bu+YD!:Y~8-N9rѱ95l+Sij.6s1_"ճ%:\[rS$k8ГmI&;.tb7=з6~@`ʤN#|" S7"CoFǸj^qq!Avv DMk#ݱ:eѴBtØn[ƻcx:n[lC&56`4޳Iۖz\}p?2t6אܼo S[H1jmjChUc6vCc5J&^%κ1=5] ;Hֱ 2s0tGkmJst^,fMGU!luFgثپveYG_6RA)\oL L((Ƥ[4Zͤib43qZЏ`20H0uY a'p_i\G R_90(c ? Ib;ry ) Ρ(.pQDIxψ3pES>p5g<'烒(c%-JџqWWҘa4/U:QzJ'FO qj{bi)bAaêTqZTѝDocϿpscSiJ~͇-,/PmǏ|qAO=A>Gb3pQ1) AS 8/PK -ZR=Ձ*org/racob/com/STA.classeR]OA=.vݖZX -1YiÃn8mM)_l|w&{;sس`cܵU)sOg++aaMlpҽS)xUR~=cHOJ Ӯ톐u(2NF2̹l9{a¶S?'B0dk=}<gQIMJZo -m-qoQ#*<1JUh έZؗx+4o}iml#obǦ6n*Ceٸ&vm<Bai x=.JarXwloH.!o -I29n%@nKJ^<:BzȔϑH`lI+0JEk#dq4i!&zH&-S0kR"MhvIeOB!Ru,GA~$I%oq)Q$&q?+dqB\Gc*G VFT<"{+=;1"F15Ђ|M:ȢY PK -ZR==A org/racob/com/SafeArray.class}V |Wlb6hHK5RɆCS6 ,KXHv*jIkQUiՠj]^xU]K̼73wGy8V}g!,_B DOAÿx7 x*Nt'Y XHhp/v, -X_eK-xۖl`[2z̕cÙBjx$Mtjtcoڥm٢|aJ;djkfM\E&m Y`%,"31"I \VX%蟨G- H[Th*7ґ,UlfyN15FNSE#pVےɶ.YJwOf}|.s*ox{&]"NB~+ͤry NTLYcR<w'(lY͚zGRYgE\8FFOr[PAH9fnP KBaTPB#ɋA]蠦am٦(ן4 -:BRf2 jк\ŔSZńVCRsحn%v-TZJdTUTi wh|w\}Mxp\M͐Jsj*a6KzpO3zգ6ph= vqř95 -ͩЭHITI }uaժp.HTW\ܕ8Vn ;&iZXk’g&Π-G-kn+ 9L3|!c&-mZ)_+e -Lr0T(:iH~ڈNfR[@)6bt9.!`ѭ767EF1<sbLB*%CÈ; U/jS<3Az_=gNQgI"&b҉5z$G>kBŊ7m[8읗R 8XGn[2č]"xXH񶱘i|XJ0Tʗ_5%kœWg,$ބvΞ5~&{~9B%'VP6*):ę6mmd~ij\0n/ga0ނa| _X^vO ̶k, Ȇ=<܎;hDjNuMdGd -a+dұ Uc -N,}2&!#S #JwOga/4.{y(vrĹl$,>WϥuM<8!gU!dUCm糃BЀ'雂^T5\˳&K:K4fZ)%pO(<]cS,Y&}>o^T-Zb:5>ܘnVwh5&13l/]V%؈Z\S)F -)LVh 5RAt1Gjw}qN.=ی.]^\zyjU+yX!Ux/Iwc59:_㜻᳎{ !W6wQvWNl$%Ƣkg&XEjR\& RBL1Nx=x`/ ^>būt;v ^8 8!MNq7Й2әܢ܊m -nWAGcpL1'|f| ݷbIp;oK'o|^.KR?fBsKxguxe[ -W*JV&jF񵊯|= GWGWD]^w - o+6%VM߁)S]z{V/x@o8> ~@o+~PCދ+~DGnh~v ~PR<*IOc ->}Vg?y|A_|X# =ׂ7ŷ~>~ <i*|M5Bfiwڋ:}_>шo -u+)i=~ GHmNS , S{f7[}֡awo?&WӎRNÂN@$:`Qpei1j*b)ƣ-&@{]p+k㨳סɾγ{{qi76jn'>{#=A<da{ {3NNIALBj1?G]ȃ5Oif巈] %Eɂ -#@%7 c/qKw -W4UkZ}48n~Ӵ%~c4iJ)w騂e+cŠiz(ʆ~/x?PK -ZR=X#8org/racob/com/TypeInfo.classXwGkey8e'qER -%ZZ9ۮRZU"INBiʻ-}(PZh U>8;F㍝sg{H#oÿ~1 -__ykD~CD^'7;}woDDDwr>5y++K7v:bx0[KvHzdY*:G|F[2$@Bv &alH1JS;N$Yl}P GLFrI/-붩b*҉K -d6mnQ^݂ Af",RzS *&ֹ0ف|&,sYİ)f -i/Cqc(g=s*6E@0zS`z*fDNʔIgy8bT]7ؚ +k1nDzU@ĠA {V(XKi{颎%pP3z42<rqxܦC-kȘ0(c6z1XeZٶrib_7#d\ԗ5޷xޟ!~ *zԟy=o;# Gto>_R֩ -ex|x?&e ǫz)Ŧ (8c(b wJPu˔y9,Xj^VJچN77NI^@1viᵺSm7j^Uq[Z#`ԩלvGy= -ܖ46c  =<b͚7+nvV.%\uU#̙5 llU[jseqXD oFכ5ZR gRvq9۱Ž&[*<l AW -E"^.]N.b0D^nΌ3T1xUWF_[UɰY[ې42 cu2  -Oꕆ͸UM})O+LFy"kX*kn 0q y.,ѽWl~s9q`G-[ (p*dIޠ8>z?2^jnVlD_VrBS4QNTh49KEM"5 -SpI[*< Ϩ,<O - *V2wT -$$0yU?9f 9&xq6LtvKި ؏=8 {>fG(܄}~?x~ #opS?* -Vċ |;;qğ?)O!KR~T{${%{G!^A 8xYGR<J'cJ$yɞ% ~E%ԿԿԿq' -!ğIğxEOI$\Cx>rp?EBl_|]Yfs*>TJ@FR0JJ%].DRhD Tb cD Tb ohϳdς09݉L`oW`bO>܅?5Ћ."(ٯJV}wa{wlGՈc"qR"0[zO+˜P*Nc@尬\ T*|-@y I@@o* TyT@'=GeϏoVVF V|_lG[k `Οqw?{zWu!''4mhxFMm)y/|]LS7wѵM;ؙ+h*~Ĭ|^,G[=%m~~r~[F7-G6O0{usW1ͽ??PK -ZR=|QHorg/racob/com/TypeLib.classT]se~^nI`BP+llШ6JHגrㅳ![ܖfǭ//LigpFs^H`|9yyߗ tT,|I차Up[%m;hbŁC_ 0v7fnv* Du<:fhXW̓CIQ9H.F뎱WޭǸ@7Rwfo:RNoK j;H뛽3ļ:vvmgʍݴ c֠_C+ŜmYyԷ5s`#޷6upG{Rjxj5#⪜Y=sD"HU&}F-$-=TQ..:…"B]˅b6/4I޹ȹ5.Pv'㙞 B3,ϥPl@$ S˩O5R0J|rU4dyhjx) d5"b)`` :5RpnSa 7~މ9Dqww/m!ZaMT,ROO_ iʿJ6mFe_:UT[$&aI=;BH>BXOGGQ=!&ɼK!JLT$i!]y2c| ?[8$-!,-f֊Dg'IgPZǚ?O͕y"ʲ .ec\h>{!e%E%frOWIh"曣2}qʺuZ"OC_ -пO4O%&5B'⣀Ùb=ΡśűOb'5@J僖 :qn6m 8NܱYBޓ%fv^5yrB{N^\ssPK -ZR= -Eeorg/racob/com/VarDesc.classu[OAϴ[zaR -xk+P@T[dv[ٖ.g?HL|0>lfho ۠ RF KLB\ӥS` `Ln=իX ;\QR\UZYP -)nedf5E+ 92HSՠ\YdEsû]Wu5f$zY"P 2=PIJ‡ל7CifcӒz-mj9M7"X-jFɔ )F+&3yJ'/gu R3֮fjfbuvdžU2wZN-vK* }f[iEjwLޮY 7[zhԭ# &S/Åʠi|X}ѩ9 ^s6!*: [ū5 Nyժg -ssW`WO~x1z0,r<|q8 '8Fq< /"x 9^A^C!? rrP~r<A~7=r!݆g83Ɯ~?׮ ^`z -p)Cp}ϳ Tv;.;mhF^ -^{n2zLAw1^{:7YNM~NM~FPK -AR=#H*3org/racob/com/Variant.classZ |UүI=&LBd@0QP@B I$d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhUM U c:RňyJ:KnU1CxqF0aCal~C1x0|/ 3[j7/QR `;sL<~ Pr63 - .dUK h[ū5,^~q\uxk5Ah npkxy7qܢL yW0z gkI9lU׬IJ ~lqެ-~ܪf hxn . phxiH$i]4|Pp5|HÇ5pP=q^ 9>G4|UOLǓSi3,>ˏT|A\Zߌ0>Zź- #hA_|Ƣԁƥ5j+뛨iHD?6!&H,PbBkb6Sء -'eU ]yX_k𐍐/p9)աTSݛHZ{u'h[jm|x,:!Obp(ܔVHZܺ*&#RHwH#/ŴdZ2E;eHR%H4JRh / -&u*$)]U<A+kZrFK*+5,n]&ED$97NY rg_*&4+frǗJD֐l2 BkH47hN)pMPE)n251>C[VbeAY<w깂f7>/VFv -U"Q(3-ʪ/VTUjVUZSU˪ZSe*k2:)֙V-fdJVIR!vS08[!qKҖzrZF"uqt\PE3]X.wQ$GؗtMumBgS.%BaF)qj0Kf1sz0tHݸWFX̍5$RNEB8;ֻÉP78W1%On Z"+ -EzzN"$$N2Mq*$#ad -,KnΥ@vm]ݻ$ւ_gUv -GJb6PBCwUi4,̞H:Č"ZTprIg-͒ ,V!@bq|UEjXuN,;̱Zۙmo3]&F[@pO<FhMD"WQê"mR}T"f~xbĞn6BʝC:gB64jPˆ[J[0S˝}ɦIVo] tc2BJH/YOY]lXH'eWF"0"9-#oi -u&i>HW{8^A.1>K`3mF84u=]0R{U19Kk"¿닷k#STfc x< Y|obKk_G'4 ZǬ*-KE^!?)qJI ŗCr+OlX2[&M Ģ]љ@#U-ǀy^4p1%HYKI\ U|i8@/f#G,6_ dM4pN4 U <5M|S33p$ |RKO([d}6644׷/i0],3=<9T8nH^`㨅 ?G2x3)>̧{WU(Sx>SidAI8^f&7dXX 0HΊ[^-9fj4̋@(EFenF̥*4g4KWGcgGEͤUgU4zKVFoJ9<T`GaRu-gˆt="A6]sFc:Xkx2`??5zkLk~e[69p6ÝUw^M[i4K)st[,&O,Dcg6S7-IG-MٌV3mM.kN`͑ټ:̕j:?^I.r[;8B/ )XlAɗXr]NM*ҋ;0d.e tu` 'puF+XOMn"yMH&|3ɷ[Il|M;l$e&yM{m}$o&?@6y;m.wH~&<h{m$?f' dZBGK]:"+zn=^y |e8)CPƓOa -> HWbp-QGtEVphA#P7k?Kmo\,E!gBuPH>fGHDI(n1ɠf6 <;<&KhPPKrZ=APSC7*81L;I1ޑ2vR[(8糆wi(Z< 3|I _Iwz;!M |F}߁Ψ'[ WdЁu߉6#zd'Te 9L咩2SaO$| w<@6Ι 9k9xU@Kn?q6 މ>ҕg}<{N%\9{މ~ѕz80lj+28Y;q~vk̫e 9%{}UG*4+kf[<cuQD](# b9/lt t-+e/ 6 "'"?+wqo.<M`ց׉7w^'.<M`΁c  <ӱzD\x / W/y8E-< ۈ($Qف)jcx?9DTs"i:$xQ= 8%&0)< '~+tI^3ˁijG9 -pɳ|/Q-0zƍ@aC,rVv9j=?I+Țɕ챛i_:^,>n9 RBsSKlZ=' 7OY $<f/0hMibcnK F ';yDђ.=qut &}֎G8b!΋HK6B6  -%0qC8rXb1/y7[L z4ӫ8vQ7ƢwWh38t&CͱAҙ)+5QcLu7FŶRR'%,qI# @F XγK]FĖS^YY$K$6Ӷ98 -4ҡ -x d:(H:8@cxptD:$?r0#=>gz܆>&`Z&th4C rɟ3٩IvLgw1dxvigLcw#)ddwnN:ٕS@&+-  }T>C\{C0ofV5iDГV"}ߙYϨ1‘ NpGRkW 5-A_ݛY`1fQb j诳Bh Ӣ|h(Eԓ-~*/cxE niO~YGyo<`]%ۂ]I J|8נ_C oڜasNL!iygfPEz}fLf(&-R.ݞi6~6*d;o Q8Kx>.KۦmmjxrlpJO.n?çY_a98%)^(PkQ%VI%z 3DS[NNa2$04|*ygUrF0ΧI`܈\q.H9+h` :Z9SAWNMm5t^$t$ЕÁ?O-'EI[v{ ʅˮNq0YͫoAh'sHk1?N<*<@\98Mpl>Ux]h~,ҕy2I(E@Y|KMǜg -Q0gtUZUT0[kɷ(ʘXPRI2Yf2YfRftd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&-sLƖ3[M+*s=X_5T-\%>rد\o)WX\'( xr#ޭ/F%_Yܪ,U((+;Ǖϔ{<Y}6OӪ<QR'+Yt)3oaOwb*oZAWR֝.jVP(٬Y[ 3ʧmXyzs -ȥ;;DɦJRL޹P A%Ԉ_33Exꫠ)/Wy 5m 3aT*A1W> \'fQ|Mt:um/*.RF*}4<K䵺YA|7}_Wwp%ŭ}:eZ צ\Vi0H 1 4sΣ0.6 -"2+O7PK -AR=͉\#org/racob/com/VariantDateTest.class}U]Se~|6,B@&[R(ԯMv!^9^Ǚ:юtFywgb3sv7s'F`Eу -" QpC%`4 -UI}SqLn%̨xYQ1+WTdѼw"cvv@cZ-Yh-T6sViheQX1J|C]8uJ钑wr鼳PEwpe2K}tECcHW\vB#NJ],d[ۖ 4/Fyc˫7)9{`]&ک@./ӢVJEٹWc(}w l~gTJykƖt9tЋ>h؝D*5,a,&_b2.5)^4U kM omz-\Lhx!,rA#G@ȳVxK<4="ҹ BA+ -`z<u8s鞞2mj]޴nr/ i}P1 -\D&$0)0tOk4Yg p~?S&ZHDH~BmGe=t*N.],c-VcxU%Þ3 BAyoijA܁ẋQF<c tJ0ij0Xzvv\Ed!5TvT,ZES --iU-ZcmU{B/l'EM[da~Za*&q, 7pJ'C ^;=L(T^ħVKpr|oɄd{p<T<y~}ZwtL3GQ|3Eţs򭻊!sQ ;Ir6H!gM\'gWǷ#~Ŵ"#]==^0mzrpn9FX <O69^D4#A+y?PK -AR=5org/racob/com/VariantTest$VariantInitTestThread.classS]OQ=n)*RQDE-)(~M hFߖWfEQ?F_csΝ{̙sf~ 8ymSh€vko6IMb_ -دm&1İ T -LU%A9c^ɹStt>l2o3VX^8*Æu@v+֬w-o:_ -Ǜ*ZFOWg&U0aM<imˍ S.(kJ`=OתTӽ$4yfܚh[B+ ~ l;^STafoE/TAP-jjdV=t:yEY4]ƙ?N9rduUAsm -q 0ek9J~5)G;[bVc-&ZDHc#b( :W-IL7q'1)A?%?2ٿǧ(T*{&zM&U887wڜS/ ]o} i2 fhp>b 4O":uEB!%"w&.]ڱd6C5X9U&rO!~Ӈ84jRK^ .6`q;hGCcPz#uM> J{B!I ]hWX%o(52NyY{ۖdImN/^ f>Xc br6|ƺt=vK+nъ0]CLbPK -AR=g(org/racob/com/VariantTest.classZ{|T?g&LB HHH $Wo&7dnP 睊6jVnVۮnwۺm]wfBh?=|DmѿehK?ǿC!gszS()K~>zO"*~#l4~/|G?͠w'GiE'5@|t:>O"}8J$b5c,bS8q|dA?ii-C9Bcc}<OkeJ2y! {5d 𦏧h<O[8iOx3e벼PY"4gM -qs=O"cJ4.Lr?BXɋX&h{+4>]J>#WjVuQj^q4>KH}I5ոNz?8|.oqP5m>4q Q{c4l7q=f-LѨg:# LޢmLUV465fh[koa!cjk+!<du;ˮ+-fk2674C6w1My%Veu%L9 ;S~N(0u6~of -: ;)6lcl#T:t;eDpmCFr̅^d*PYF%1!,`?odkwQJ4dxR'ˌ2#O*saV6s[#ꪲ]f6ߊQ83:pkXl,kF%F$|z㰴6#͈W\;dva+Y4E4Z v xU[f޲]@p=X]>>ik3]ΘODl7 -d@uZkKtZvjoLJƨm1pYgNjU2&O~P̔Rq.I& 7hfd$' &@X, g Vgegs*3b}x̚pp2&@w!xkĽ`fZ㚈e`etA/||q?<źD8b̡04DEZa2umΔ#u-UAXaV7=ntN޴J #^,=β"h-%'!9I(4[1E -p7Th7T^lb@TdRK%J(^=WFhU -G/= -.]+W~窓T<FՊmP[UbwG3W5L%D[cVW^m٦%gVlk]eB6Ji@zsBV*[kEtӻv;fo -j KҨ z".vqQpp.sص]lQ]MI{mK"j;HvE:J .z+ Z}bE1 -_iBNO#'>03m[6'B!D*U('7"ԭi mCnɔPխz`U#,Htr9;YT)><f'!qD2Zӌđ7q'ӜS%/%nf{JVJ7BYt7ː'u7|+DST QA||7`Zŭ!hxq**d;Gom|7?|6}7*TDDӁ8.-صBՙǬDE5ZY+*/Z"E}|{|`/ Žzg !d嘎#a~DG}WIe_ crf i0N)4 -(d Ԃag$ swPs$u a:f^E{P\Qphщ_-e~\U7 (ЪQR\QbZp q4B*¶ 17Nzt[X!Ja̲TO@K2WUiƩ;@נB͖ԏj1R0='댸)3U4 -n7Er%dfD%p/!SM^Q~Ρ<It3˼$܉EWˉTdU.HFg)Eçp.,Tǁ2ഢbΐ5D EWipjNF[<<;g˳Q^r)=Q7 q\̢5?NjbJȗD5W4nI^Ҵ5$mR p -|չKb׻4^03<F) 8ކQӊFs*sT8mwJPwW:!J8զ8T!9+d } FEյ.?onO6$F6CK^'U8N#f6Z0>o/xт/Mhkqv(H%p#FV -1(F!}KE\8*Q3]V9@f!?$Xkql#')aqǖ #vW$*f'mm ?RLYdb̌GLSbr<> ӒS1xAaZ9IRL<(Inc=&d,,;k4=C&,짬>yIFK+RG#ichl8<0\K(o&:Bh2*FūjJdMihz^?mf4>ұOaP"6*l6dGќڡDl4(w.ϫu: -{^.R%~~z 2C$d@xy3O+]̫NLN4iTAi5T$OQ E;`- -⵴rE+Ni?G :ߦ5 TA=TYN<TSgm\Kxѹiy{~Ayޥ&l@%'dxO{^{iOyE=H/w.i壇<FǨ]k<N|zsBGQ:'5>Z,B/ֹ.}tzrҝ] :Ñ谭JKյ%>:s{t],<&iJӨ ki'E x.Qp'K‰ '$*8!E )`?V&\=^~rڦ|@2Kf r4 *ߢGhZj'4HG5rR'dspA>:ۅɂuij{^PTt%-h%F_ n7"n'VznWoJKA%2 ҷ+;Wk #zlϓsg)'9GGRO9$_S[+\Q21T'N̸ʓi=3>wsi֏_"s>V8<E H)4z6#vn -(GQ$ZRC/N+'kgi &3t#g5XVO]O*^*|!*륱u‘M$ ҄<<?VQE5x;,B{D<f_\G|\߅WCpFTKb8U ş&hq& iI`@Y)O_o71SL!>aS2F Oc1;\#G8(хq\4T@:v<$z/q -ר9j"~*.R -|ll9q -T>#$gL tq?}.utzi$@3RI`>ok -op`4dSpx{qzP>{"f.l":q* 3)Y(on+,t)C -]|RA'P)>'d$bd\7}P)wg0Oj8uQI?uˠ钊$.\PUQ>zSRiH6WjYYxeQgeV\ȷJ鳂3('Ur㈣ԌlkSBͥxz$r%[AFN:- er@^R8nIlW\&Lup)2 O_YITvSڧt3ZKӋt _|;8*(D -$̓ Rx:T3i+tɳPn.xtv^e)RtzKUa 7q+C~B<i_ |MOÞ.wo!:gqTJoKݞ([RM:q0M?aBEqГSQ-l9{gس`_}aϥ8D)h ZA>u~O{$py<S1Ԙ+uM#1JMEߤ4Jr5NKVC4gIk0͉;t]>dڢ>^J u޻ʻz&L_4@,oHުb)i/Չ-348/˨&CEC|Y|%%]^ut%_O AzoS1t){|h^E9Yu% -y0%+ B|>r>'?xW~Dr2=`j ~%PK -ZR=r  $org/racob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@*$00 Ej[k_V*P-eV׵պ]kku_uݢ{<&4|sw>ӧ{R)O?3g`'t~|0n}(¿E/~~tn~c:b}3Cito;^3?^au]Q?0/xÇ7]ՇNp } -9ûT -7t#ú!S!I^H -tݤPW& t5Ƒ"]0Eze~RJu5+3t.a&M&庪dWf{eW^9\r >g^JWU%BWN{eR,2 -^`rȅ -H Yz=Rj!0RAas6lhŬhW]wn YxaeۚW5 -J[wX~+1[a:6e(VVmxVG{3  -:0!%n+lʽ ķm¡x(8ț'uǂV<ba+WkG;^jBv[![3N5!+-=nul\ 6UG4usM'8'joVfk-:4鰖à%(Ƕ 6bps%?#;%CakPmgN>}90rCQx01rk'<KLrLu4vwQ6pvUٸC`4l#H0dmg"=!ը2{k"oHע1n?PM[Ez:m.Bh{'ʸIzIeccu `<h$u`-D( +nmvkByH21|Ȭ>a}ŔFYSX.Jc۷GcqSe.y2p%TplFA+b2s*1CQSZM\&xzBqW -e6&g\9'vP$j&cíh1<b`{X73&cEM+޽]:.K.o`Oz77jP(d7VV"x flLZ6S bm0[cJPzMSR_M)aSqĔD1`.aD *.CnO3&>} 3&zQn2Ì!n6[MO|Tn3v) CPNe~jE)'Uw)O w)Ϛ9'X2r2`{祅4hp*88&^ ĂX$swoʽZ07#`n )׌`۴)D#|0`BCAho`E+oؗ(\(r`'Rgc5הT Y&]lvt|lWEMƍz`Ad(V=)zG> _TmeG :>Kb9^bMvUݯκV`Aw#1,yixbMwauW+!S˗MyP_Gݚf+:*<,SoqLKlru|yWٲE۷oPMծvUtsc0F>EOm=vI\֫m&Z56jFt 386F3=8΁dqгƣOǓ=AO䲱@0ң3Wu8 ]wM2]-}R;IH -6tKfFdA :S@q[q|1ʊUO\e9ВŚ_Dj0zGU:ѻWWut^̳]CVxpuxOh{)[tMIr!CZ'$&AǮ+A_߫^lFū\YK+0vO<&Ɔ;Ll$q)To;^T9k:򙝌t:%CS&+T1H>rU-Rp*(egKRF儿*T':<I:g5Z6SE1z4P[ <P`(rS֊;g}4&T7yJ{ʳI&]e´;:Ԕ.[˱aR<;U#|pŃX[p+\L}8\y'[Y8U@"wp`i$WC;)yP8r:G{TVG`# 6\`~`a -3Ӥf4(b($ .I`*O3Vi L3Ӥ3 +WXE"YI-fIg6Ga4,@9 -%\a9;z;c w^IeU S@~d pEWƹ`FT"jE B-`!g<;,;X"STc\;Kw Cf -ҩ?;E#ύ7JG헯Ik(.q-T(n]]ϫ8syX", o7{ɑw_>@gY`ik\0죇Q^Ӎ j8A=}DJJ|?ΧcR1ŖOǟGG_?_ -29V&O:K'Wf=$$Oåiqqŝh]ɣ:C5~Oߓ}ҾZ;:ME1FHk 4c.Z0 -/p֣WvۈkfB'֠X$!GwaItYtURɸ=^Ob!$a4b\/1DFD{G1$Op~{)앟&;_Fu>*~ qJ8lحqG _ʃ0݅=I4q?֜Qn",f=L(ạ_ƃL*9a~ރJ$Zl97;5'QfKvf1u!ќw -E8$rAܕr9@}z]^$y 3JL:Q-IQs9WVh'Ӛ{IE(XPjߗ@}F̤IAtItA*N -n -u:o7Pذ"4 0pMh[h9M.<rfen kP-v][a+Gm~O !³_<h7>e=[v{ްN;Wڵud~\6TŶEkGqέhy(|WAvkthv(6)x vz'[FUWj%WRkd7؍ߊz+0LM o1Gc;x ߧ bO{$J1~*~</se1^dײ hUmGK/6F,4y`ÿS)4 - - -Q| _8QaZCOqŃ88)m{ۓTOMs`,3بC׎㵃dH=\;` M۷ ;+[$E(9iЌ8mhC)xb-U5igrLRJv*SȈKSɀU\@Lg(z qerX&CI 593W2# 30wh1ƜWTW7j85zvjGq]-+<eYUl{:g`8R)…׺qRX[\1+ljs]쭰srV$v Ay%5ڄ҉Jقr . 6l;_n|G|u:=IrXC2}k5<Ef ]6<xP<a;]Ӏ rYG8vX\<FLf.w؅MZ1 ZB]N7PK -AR= DX (org/racob/com/VariantUtilitiesTest.classVW<&B XmShm --imkȔN 3dBŷoセ۷އ,7r_/p!P絿.ŗv8v⨊R-81xcxPVNq RG ?Kg?S"0pRL8)MiNKpŮKvqY:2IJScLeht{ѽ/b^=&#)F|@Г*Re{2GG슡ʂic))SU$ -^=;̃Ű{ʬ)VOSi{6,kVM4jE)e?b[sd!^8:deIǞ9[w,[kqyl;aMsW`Ɩej]l1gwG':;03!pVDO{.2EyQ GKrx &gי,@xK 5vݙ6r^f']2av.=h%~Y yj%mnPMSwN37[M7sk oIHi=!De*E)LvuLkfnV+{:^96gE4WT5Uw ?UKÿ7𦆷d4]E45|e>UDpvXba`Oeih&JN=PA&<O7=Kdz/Ql]J7xj`EN]AQ L^: \ -ά:r4_sYSNҝ~X.0Ϝ1,&$z/[ -Jhh 1$3 C32Zkr̐is9fcjuK`)bq]T:&&<9HɌJV -v]+VL+G͔R(W q^y$eߨ- -͵/yrNUs3c/N -E^?re)--0! -hla_@K<BEܸX"?u h-%?m0 -0IE6M\ - ~tH\,w.k+F!fd:Ҥøf\'0Ro^zM>͵} -b;rF5Iƾ诈5.JpKh1L@jlEl -}mlp˖EW$nf)p=Տy;(f'IBDNN ~J}ԓ)D/a4$}H.Kp8e7]_@UOU#In)ϵ<di$asL_Q5J?Tan|U9UTM4T]1]RK$;T -'qR$5[_Wo<MdIq&)GWtuy񦆮m ]k@?!&DWvY&vs lGae;NbR z¦X -1XJ3~RU6I=a–p?U#PK -ZR=GH3#org/racob/com/VariantViaEvent.class}OMK@}OMc#Rf=УSE}.day<I$7̓qG!!BRk{,ޭJBVnQ5oNr]F wgJ<eFT*dwl !zНfы|^'<R8N\F#wBw`<?"23XLFe PK -AR=qQ]"(org/racob/com/WrongThreadException.classJ@ƿZmABUl@R,Uk=o%]Y٤ŗ | -O'ag7 j3Ų UB)F/Mtx}zDa(aHN<v. Ov;T[LcOȶ' Ů -n MO ]2V0I2UDw#\=p\};~p}̛ʍ '\FA2D_qJfU6.ҹ^;Q$|vaXyka?E.c>1@a9-0Ï,gmzs*cs&+|PD)D6a7SBK5!$Ef-Ҟ'PK -AR=org/racob/test/PK -AR=$(!org/racob/test/BaseTestCase.classWkS~.H,kCX|AsuBvq` l|S@-IMzu/6qӴ)NgS3 IJbYÚLy%|xN 2.%P\N0QO#"f̉)F,@ .*K)/:_AY\I` -V<9__N+ +~S~K[w -^Pb+%/Kh8fڦ\B笄S0$̙1V^1I}Ƣ$suVwM I؟sٌ睙ox~uPBgS%(:*lgɦb,Pܼ~EX==7i)u\*6Oz~)B%4 -_YßKqv|"%qO]- {{'|״g GLIgY9e7ϰvo5 Y O˖n%kin?/Rg_^ň9m@^BK`)(Q]kə3HZۆ:i0Oxߓp 3킳mC:_E"Oy#,фB +͖ƠW$%<:CUH8?Cd!UOLn\,ˌDЗs/d!1d.haѪGp mwa+~~N~_“#: ڌyyhW4YmH|-ohINQD{tyyxU ?f͂5X4,|Gs˶4EL;Й=5H_=dHŏqͤ'9~!*~kdqsINM+trsgg5㺊_ 7T-d_I-`ofC"f7甭f;6ch6Q%iIDuf8qV4`-h -ZW W YP+OV)xQ?cTDU sN>+|WşDV1D*nrBHWZwdػ|f.-w!ղj<&5%# ^4E3jAL lm֋۹ɋ#'<MvX>] r6z/ -{t]dbVu TxE}FjNf> } zd Z)oEmOCw9]іēeӇeسbe\w;Od3~VI kNtnCFkwo9(S.mvM!^_Ki -$1~O1[nG6? x Q>n!J2~7ИKʼX'JX}2N4BC3KD^ -|jm#8J6z4> Ē'e sX%'vlDuFn;HBIZD؍z(G鈪XquQW@ -MRP5$-khz$Ƥ:vMXk| bv-J&װ;5YC+ڮ3=\B,o֧[.dBjRhR#۰7J~S љjX BV;rYJ^ 9(sq`)I!f<zqCd`|\+xW <> G Ē}'I!ʤnXz#_qɷvh{@G$erj)9IAo zj@޾÷p? i$ -f]X}˄}<ZVn-c'Ƃp,|zfR*mZMEfzdV1BUY =`I0d0lMNBdLPm 0o=TcW_k W(%躞]Zoލ8MLLJbHpƧuS -o`??& 6}nUӕdq6Jv:J6,Luwa͈49PK -AR=org/racob/test/errors/PK -AR=3a9,org/racob/test/errors/UnicodeErrorTest.classTWG&Ye]P"`UZ *YkmOچbm h2Ags_}%x9}C ('BkN2w~s3?(\v4ӯ|bl\q0 -n{˅f6|k`E6J C6?`tM0.K%*֚VZ<ysGҬwVҐ1CzP@DG%C[0d8k;RSN"J1K"yx&tkE(ډԊv)Cn RnbR^[+C5vZ4uJoU=&TuW>[\;ܪDXF cp䑎j3nqa[l5N=Xn B{ i~҈ss]<|oHO,ñ~-;Ybz< -JTW\& S5'L -PeTHSCT?*1XH, -jR6+?QHE\~ wϨp7HR"k&m0oM]:ܻg5J'ѻRċԢ+8&VNz2)d+8MWis'izLYOw,oyn*_ t1+rlCrkz77~.%E.1vٴi 8;JwꛂOIZRUӸL};&pGQYeg?] QMKy;f6뵉3F@,;RPK -AR=org/racob/test/events/PK -AR=D6org/racob/test/events/ExcelEventTest$ExcelEvents.classSkOA=m -<}U 屈oh$? i鴁~TD?xg!L;s;~ `O8l]c& wPHÂcvc®Ixr06CW FB-k^êb E!)%ZO4Eh–/_%VP9bl%5ؼ* %Fm]U+S<XZY [S.do>tLrGZ+edE -MeTow>ת_ռHjhSpdM U^5p]5Ʋ ֑*WTC♴C9d*sqi=&\t#஋{0 -es L4LEZ<dh f]<œ S;[i>7R%shܦ [a'/W" ^on0q[T7j"e8ٴYC,u~nJËF/>^PNk_alB}8/ӈQ|RTs* . -Y!\=D`)Ft܃"Q-$1s.|H0>Ed6dFd,eȱz#KQ=)E?PK -AR=RM<*org/racob/test/events/ExcelEventTest.classXy|IzDDBH"N! b@4]e2mڤ =iwýVvcH[& WM߬$,2?{]7Ђ*؍aqBƈWȸ[I T U -xu5k$VA e+dNp/&攂 -ވ7xEiѿUŃ2.!N»e>? 2>$2Qq2>!Bاd|Z>#B$|^F<"㬌G /H| y c -/KxLA  -vhx\W$|UjZO$xuNA&ci=4l\YIPn37n?M+v+{tI$v z9<넸+4V71,TwpRqsd:e# -Xe#d&N#ѝD%6_6Ź0G 0,׵xdi5$S~TCi Mv.d9[ GLڸŠœ"Zۻ0iwCv 2R?`XUfpa~0-do2.GO3G~/&B -ü*i7g-3"Pr>u WgZՙӄY f - -fUE:%<ItN,%d7w@>9R &ft Zg`H#{pHXk{sRm )&, U|$lN莜Nc%o1H=XgqYwT|O /A!ŹE*~ɤŀ)%ΈFRE1KQ"(~NXE\dhni+p#|X4҄~u{hX/Q.Yn;bﰞq0KR6PIk-'"mMd|e] Uieb 7⢑<am47#SI-SI +q&ѱJ/g8±1,r]N@KjPĈ"TUQT̺z)RW!sҏaUe7ohr*՜m7,jll\l͕+rfrHob,Ub&il;,S`W1!8u*R.Ʈ( X !/(׬oXQ MTI⌥bi5{) -ixU]cV(. -Q2bؠ.ff&[y}/ P4{3ժ8$NX"IX&|iXJ]9n&ՇyD#83p|y2-_x zf6V=L&:EX!DtPE;%aKY˦9gw g<")xmʥZU}m4/wLCu3} c`gi0{UG#袞$OZ<9~Ou:' 5AxƦ1T? -e5}cPsk yXP<+d/QO<G|?2,TKcL2! t_Ǎg\F iMf -]y}.9e7 mr92RPH h ThPfN0.#z*yk<cGr%@zRl{cmzG$bǭ%)F.%B= Ǧ:lQ(-=KXNcؓq0. -Ta%qԢ4jec3XS@{7nGxzng X-lvcAdaYfNvȢ=r`;nvɺ"zc␋0v=ܓlziTSLAI h${hWIS=KRHy9bTKOYPM@eO I#l ?ĻUYBJQ=*XxFٙ^KPɦb>G5]D`;'kX3chxGx@r[^<;>XV]54[%,Q;Hn ɐmR0o." ">2 1Rl7@bTPR!TNBv19nʡݭDt+PPK -AR=vFQ"org/racob/test/events/IETest.classU][G~lܰ, -E i#a[Z (P`&ɐ,lvf_}lO{ًS{fC"Ɣ9sμs1??2&R&cz'FpCaZg0#99ܔ|?u,۝X E*rY+RKL NyêԬɫаaCALx;Um8ĔↂHu+pҶ˗rYsh/噳|[ʇ(ل<峼}ᮨZY{?p\gOVee٢bBn%F祿 -yaQ-~P08+\rk@<^  -AXsVP0v,!ugo/JJ&勼x JWȄQZW, QIYV5<I {[<OoIW3E+:|" QHjxhKyn% |1_ `Q*@+v -Wpynʬ_d>,G5RΘkM `¶ @%$UG-uHLY5GG,(\3p -ELޠ^V5 ):.T -[ԳVWZʄ5dc~h(RamVѪy3~GѺ٫ -^Iz۞u/(e;Ji7&:>o8?j,2+V{^Oq*Rr\E"uHgwQo,f.z''[ȯdK^$tzhҚwIGV@bJ"3:#}̺ڧf~D::dFLJ>1q1O4!"x>N,_MKmP"rP۠tȗ$_)zrb\N֠qO_R@>N35Ej8{sG ~ ba1D -Uy`yuÔSN2I$WHn\F"iN&ܤ-JmzG!'`SyqyBQJ77z5\Y - w_PK -AR=D>֙Gorg/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classVkhU=lv'ͣiV֦vmlM6_l&&oWbAA" (  7ݝY%do=Μ|ׇ؈71UjHdal*Apи<4#4cr,[yvw]<q{q<#<Gy<h>)j]8Ć5S2ә4u-6؟ٶ.Nrh692!C[7o1R_\I3C̆q&q"CJJU4vga` e%A-זMWLM(*Ō:L)X=534%L 1I3ruajEpfɲ֫(dS†%nyqϫ!Y{B2UruA0}@AS4O]2$EJ T_ȞR+٬ :Dx,>ɖIT>Ks)]33PYRt/ˈ21mh xAWUEae!0F5p3ݢVf(IˉH&u Ǫy FyW^94 3S3ܨ#r\3uYDl(]c<"hq 41#c>[,H0=RyQ90R*K,oآUlHCz))R͖qI\TD)mIWSl@4]Q{VH$ :x24tLo`iJG I: <s!<BxF7+^8p,!WHZr h'8,/LaǑ -(;\yŽ-;mň}N6 -8Kf3dAsnX2!ש=2lY hϋƣy;W -: H -j&WJa1;2Ql~ %O^Jj:RTt:1IfɒL_ B.nj6r -&)cr$I ,EwV⫏kL5!䌙D绣ZcXxV]&r<Κh -^\E\[ h :Bkhv Y5P갖~Z:q`"<FGBCH ]*M7)LQ 0FS~9#W1b>s =h0G)7G[}3}6eZg6eiΠ6ʴxhG߼y[=zxOV*ġ6(6ura%N;|W_SW3qU5'ۧmڼGhᡨwa",3$j&-5\oF>s6a[O~Ir|rllΓӓkpwبO!QbOo;v}l -)wKKl-ߓ V<VCUxVqRn=5-d~uak\O߈wlk`;ϓbӅ&Zr7Vr\wK s>WCVRkj.ָ㐪մR5 VWN_Ryz\j-#5azs$b.8PK -AR=0 u -3org/racob/test/events/IETestActiveProxyThread.classW]tT 7FVL -hB!$IB K Pjov'K6^ bVEժVkjЇzއ>xSMiKS?_`ޏv 1A)P66D`D#Ș π -&N60Uo,S71aZNIg v3&R'L|ē&RRfiϚ`9M<o - &fh܋MM|j+]ϫ^3@]g{tlk2tdoOX+ʬ9'kL kt Tt I野 -:a;efd@Nu][*ۼX帲'7:(bvyI;oa!x ; C Rw'8*!q׊ GLB5Wq8]mi7-b72=-)FZ!7$ӲhbEh:PAeXUJflzCtr5Dz#GڼQs/#ݶm=Y-˜ ҝL>/$e X#Z&nYZ |&pڹ2l3^ V8I[i@wE~hG~pk*lvdǞ}aûsN&%k 6,\ ^;L[9~oZ \K.BslBS8'()u˅Ћ=o$t@2N6NWKa0ίPM)yTiZ\ ױ_`͍\{CY|Cԁ7{ -30&"wB&iJe;d=\F<5aRm&ښ0_ K?e`g." Q^Haxö2c97t2Sr2)ɗiSj.<-_`I٬%W\ʕh:(3ʘŻ[e=e%- IkY;Y,]]ZZT51<P} - Q`RDTNjryH!UGh1 HJaImK@1;oYmm^$pkBƖ-Q~e=PWBX'xIVe3R*QV;7"=VBJiU Sd.hٌ+G(,b" 5'Յm{𿇣l#[ w^J\\YCJGVc9+`tӨA@j - Qc@ji./]5SX]5[ӈNnNbuC6]3O噣kIĻgwLaa5kTOkwjwi4gH_4*E/RĹu==hLM$]Fgk#8xY}s|廫ߩ6WQh7>|jznθqc74F^ -_Nğg[/)*{8[ACm(Έp?cE_G3]nF@#b8~ t| yǓxau.axD4p0Ic| $_qY|sDO_g:cb#NMs-k\ǽxO ϊω3x]>$Ms`Uk1\o8s5Jiia5[A5E+{*ĕB&Urc.Պ׸sQe0pA{L l6 Ks~XmlV9Z[ͣ:ῌ|7,PK -AR=Q{.org/racob/test/events/IETestActiveXProxy.classUWG$,U( Ukkk"h&EunE|m>s9}o}c{j9'3~wib: \H#.R -'gಁ8 ]m5-~u|~օ\7B^[nq |yMzR]gHdk ɼ_ VA]|k<ZV&Նl0Lj˶ eMᩆ8_")()W,ÈF,H[ bZ|.Du%*[+{्@ -)*J5!] R>Xy]3E1LUj71f -L,capVM|]`Qҫ΅ҭތ~ :g*Kh`5hS1D%_cmuwM|{&Nq+rH=Äꆲgت 8XM"Jv=̛ >oN ٵ:~DTdtR!42s)|4wv;L5\!4ԙ&A7+X<ҷW(5N^ Mg -k6{@}z$0B3{;kTZ5KoהHZr=t>'ZTnK3;]h?ivCC'Pt'i4z:5u$vF{j<AkgE(im;zHyda};A {ɫ~Es9x~4@ {~ l#ɠUM'{ #O!5k -38J8ICRC8C,,iOB=Ez|:4`ߧ|+&ЍeSPK -AR=u^ 1org/racob/test/events/IETestThread$IEEvents.class]lUS -{t"[ -,TQ/.]`" tv;0;̶׃&jb4_5j⫉&ُnI{;sg0O:0W؅tNb6LH ~OqYxSzq..pQ 7H,tK )` c`;C -5r4]'53[V1 -v',S>aiݔҼsڼA/m5cNuϮ^B -ԔO:cҞ04Ǒ4W3r嬶5W*ؚ#oR~[MWlyJ%,d]ƛX",ҥ5i-eQ7}ROkʶ-n]n|V.͂LC͘m)#cfe\J1OWtWAgR8ܕ1s!~$gY?w-#O(K۽Vz|Ŗ,噼Jɫnݭ3F\OE&kU켜=fgh/iK'[EN -l&R#(Hf^,$*q5k*;*u M4@AxZl;*Wq({PωBSb7\溦5SF)Ph?._o{}Cc^_lD-5}U덆]}Ȫ'(:Rgk$5L-5}Cm$µQvNfZKz׻i"{qeViFRi.Mj%,œL=RC֐Hy 6l(YvfC `[radZUMP,w~1 >mޠ+$~vxA(|4܆nj^>U>  XG swo -bA8#wW٧rtR'4XV#y%7CC0&3=!{?3y8//2`0F`3اX@f/c!L09LӬ1GrfxdP{#M{~>~ qrBY2O0_y̋! d̉B0m2+C0oy39;B0?'K;C0$'B0&Cm׼J|PK -AR=-(org/racob/test/events/IETestThread.classW[XvauPY)4ڊ -- SDlHEQa#:; 5&iIKn5$hhLO</~}}C.Vaϙ?6]pT-}jqb臫ӑt1Đb İGcZpJ:N+qjzRS1V⌎8Y%*P4</* /x9xE -E t5+7G.kxK@ojln0\W NK}tdR@t 6h~72!l#K8VO@ ,G*U6r{jl(z}i%wY6UvAoL -MhAۑ)fv]ʮ9; mR`ILە@KX˷9G6iJx5L52BMSc;O!Pe[J+Xw(3Tv̇= "dWB5rM6"l Xk&SFe>A4L*x -ұN(S2w+0g?TN}bȅ@5|S,@V %-eeH/ʂިh@z0WiyhXʠx|oO;a)i;LsU&@ i>'LwX ?cَ$/xzL?/=Vk⚆ (D11Ȥq儙=YBUn/gz^_&e7;HWC:ʨaNYAwW.ԍ10wV1]k,FfIǯ9^h:<MjR1Wj31 T̶7iUIw vp(J̌\; M?7M5CC7Ԅ4 0 w| zm# #?s>ފ%m+iifv^3o  |:_CyIʶ->`8SZ˕ .-9RS:LOSsjP<iJ"zm)ksma{қl7[*g3nl|o:9۵7RU0ϓ{U´#eJZx}2L,2%lِޒDh)&?jj)ްΗ,w^#|jN<=RQCT\E*WH-.QաnQ-Rͬ4C>O"|zv ܌ȟ)F(.6quƵQ-Uq:X4*^24X9īpF|Vſxr9^A8VtҧZDZ:jf -/Go)l)*+*+| ˣeEinrˤPZ1OkC(Olea]cF>D![W3#Z) +^ྼaD.b"ԄKcNzC7P"oZ::;Ge1| -t7kWD퇘wC,Z=~N\bkIQuvNP$VQy58Ї'0Ӥ<Kx >8Kɳ;n< B(槪sϋ8^q^:m]-^w%Qv]:yw#<$^8.=xGM ?U<xVf.q߃6zxG%~}hgTzysq(!b<nОשP|(vQVT|8.|.LPm kLP>Ŀ &'"GCRV #1rI$rwD9NDn0ÑFw;([qůU:PK -AR=J>i4org/racob/test/events/WordEventTest$WordEvents.classSmOA~*G)&$ 6B aem+5$Q٣Q^J3X"9\D-0C f>~wr9+Eي6 Hl(B$&z 2.S3}P,)ɐYё`H%Z0|ABExc1(1*%J' u,g8RG_)V>6\uk/=Wq2RD;2N RUn -0~Z[-Sdڕ#e,8l>.{}, d;EK6"h Q%xotlIOI4N|,Ow桇G>㉇ k,ђV5nVU?1 ⺗XӁnYуIVKqfSaǸJ'L)pH#y 5PDWFa G^y72hnCϓDzw>>W-=y,(SCƻ(O lBao;Ȳ/`068:iTM~PK -AR=~ )org/racob/test/events/WordEventTest.classVwU I:C -(i-T<R 'dh23L -%7=# WH=薣 pߝIj@k;{ϾQ<H#FU\H"*TDFHM9\\^<UL$Q:]U9\K: -&5-a4ܐM rᶆwT+W喝^P - yJg -Rl[x5]g, -)eM):%`s޲D^ޤQQ;Q2<K[xPq0xgN1?ȉ0Vn1$C -K Otni t Y轾䘍zal5+n憣yԩM32,Cp˱kd~wY#W3Jx]js0犼UKkM aΌnȃ -ՙ b -[€Bla׭Ymt2cK5TD"Yr̄6)zP{^l V%x#fPUQK&c9# VB4ڜndJSp< dڬ|nu*zLY|̧pڝ>,@h#|`%Od嶍m( >d>(8ur%?+tB}2GaG:y\7fDd'Q.UuSIc O3~%HaEe 0bb2<~>r` yD,)9̬<2 -fs: -3WC-; YrrWSuRJVcQ 6/2+ iudWj<5[٩W=^07ִoqWн-IL(SZ-eٳ jtUN9/]7"7$Mr6>"Q:Y8<q lGqOY pVk(?bOy HLg5=u`;eG~0 w{EjݔĖ~xtb+&/jx;M &zOw2{x#de&^j}fH?K c _+BjH "W{I>j">epH xg88ϩC&Y|Mop`C|JOzzȘGY2=N)o#$wtۄ3 -g"ljS/7U[TCQqA^a/VPK -AR=org/racob/test/excel/PK -AR=fHg 4org/racob/test/excel/ControllerTest$Controller.classX xTofy/ !$(0&!<ɼq%K[njn[V֥2"RmUJmXmMޛ$djss=wx@,.FbM|[qܭ9}O -H.}Wql *A<n#*/Uq01iq?RqHrѓ*~r?S -`QqX>GT\ByV/TRZzNůUFo;W+xA%4wl$AYJQqTɑUX?7&-VfV1 -(v3 6{+k%룝qI3M/u1=YJFK-k("7i6FFOYzڨz 7 &9ꊦf8Lv%v2RV݈ь4c1#jXKLjT7 -x#f]+iƍ6Nm1v=QOFeJHACZc<n$#1=287o4[wӰ"3QulTg{.nuҘz01S(XhwfTg$j> z_hUR'b 5<2;Ls'#=1'fwhAijf"e _cUbHXQ3^M%xT>-V\vڈٝ0FZ2RCPEddɈG4#Gَxlfe 3r{6a\&`P ntؕ+0!"F@sc}3RhcHqPz dpɤ'rl -B;)ǂ3j4 :?2$PO~h'8Ue(5vLLz'n8E=n(u͕4]CP4`i؄a30Bvc"(@;y417HĢ,U12D1`S41FhTe9IqE51N)\y &=ЂP$M$& r)*2%ۙl}2bLC,G^隨'3#&f@2^h1S`cJ 1COU51Kj8kLUqXIzc&~wb~̛6l4Q-*伫},\:5m;vk0U[F 5uzw-tffx2BQ֭P4!BX-f -$B#j51WI_vB A Ȃأb&B8U~M&N%D2ګ[FȮ]I>yFk|^ Si"^EA7tdPg=ː0eNZv%]?~da 8o$Am)B,c};U3aaw5EisaM #i!(xܳ3wY͈|7^2}TA<NFykKpn+5&+;.o] /"uU\4 wm$"ǁ/ܓcX/4aѐw/daABb N 'Qͤ/3,;0h+-|x/dܶ<[几w#Z~bS>FmZ֘_OZgj9#^XZ`k}jj3x'GmC`2*M )*< -Nt(_ C^mC8gv\륥mF9ngo -hu>>m5@l9(bl*iaB{+k!`ϜFV;+]+R2p>d~vQkTJ<-o\=' 5XF@Fc0&t q~wU2Ecu0xnBQG~h[}R,QZF0q -oߏrO?ƫlcUQ!e=<)յ4Tvd~x0hlU69_OUr|6k՞JfHK\{q;nkWש;\2T<p).,ml9r!<lu錋r-_SDDX!"l9RM\^#5QL݌U,fg+K`h/b]ĹIp|9 D׍Yw2ua,CQyoQ |@R"1.z]TSBTaGLI*Y]G =e_ğF22#BO.dbY_LOo| >۳t$+TJ 2DvIJ(GqYTJH\n(m򳁟5 0!*xʇٓL |e2d0e: BRx[JvJq5&WHQ]Rt1+[cꎥc\@*ƋH$qjW& !D (x7 % JQ 3$^]D1*r<[ >[<5QOjKd=r(^ڇ1U;\LSy&!8K,Xic+}~?stE0FH+dOgaKX\؇aw-mmJ>f;e$w<J_==zVnO%~[׺pSY_&,؊1WG{qtigVN`L^ߨ&7WsG~V2 Aqml^"𪫃jX^(c0$'O*^ ;D$/4_s /^m˨s}Fi>a6 -PK -AR=mG)org/racob/test/excel/ControllerTest.classmOA[ZZj - hA-blE ƗcS;*L|H~(ii5›}wgv~$µ8rIDf<e.bד仡88U <WJ1h5^Ur>߼z [7ط47Șoo +c }za!Zuði;isNGx]%cܳ midI+Ð -z"+CHˍf`Kô#ٓHbWZ{ɝx(*uYⱭ #'XR 0ΖIuꦆ41 /84,▆۸a qpe +a SH1wEU/J3vwED2~D/td24Rsvw75n \aJ" -1TFoSC'-|?rD<z䒞k5PSh)jNFFUT}nfFsx\Q&(( -YZi \h;C *~GQ># %X(ubt RO3?@L/}$/$ \L -lpDϐ8E0[͓W4?sD!#tW) Q7PK -AR=org/racob/test/powerpoint/PK -AR= i- Corg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classWoUnۙ-  -rq,";j[ -Aۙuv/h r*^_ vCƒOD_L 1wݶՇ~9_wz~ =Y(F- -ҰUFu,@4Wh`[U;mx]& -ehU 22:d -LDKBT<؂)&cq![ o -3ox["#a}2+ۻ0!k ڴ;#n m.֌V]2ZSdeXaj1܊a3̮4V&?hD!̴CztRGmdHXWQ*5 މ󢰞!l ٕcMܪ1+͠,]Ӆ 3-9I`PrZ;auY1J+x&BS:[SOJfPMI;ɅIZkk*-{R'Q0(f - -]$ezBxaְZҍ 1=-`Ôh=*!>P!:GRU,œ*S8 -T1ɐUښef 8!ObS*N sj'`sɕbLJ3*✄* {s$HĦ,.1L0`ؼ?U\ a3圊/Jz80]#_`gx!ʴ'nZCiQꦏQ>rjeG7<ybH+(cX:0i >mnjA;ɩeAE($QLm:z1xY'ʔw4#qe>=Qw1{h*t_C6pCLE0fY1'[ZDG-Lh Ǣ!Q0hB -«[0s-F>9rxknl':[ 6wLmMU0b䍳)8h2,$] lƣbhvάŤ< cw1#:KТ3D+S?_ i+s-JeѲE_G 󡄾;ĚSؔe %^H(#\2L@z+Ŕ+A&A!E; "t(Nk$|JsN+y}q TϺ -uБHK Rӈ%wVYvQ"(A`n0C0'ܹ}lAy$Fw$s  E1u Sq'=eynO4RQ|+/Az6`r*EUb񨘖;7g%Ĥx}wao^^9W=pw}.ˢX;U{bN,&BX(Db4M؁=bYON.J<wqX&.#Lle8<AD?DNd]8Ŏ4,A =6YC#w&żN4ߢl&:uxƇf`^??F)[F%!$/=@d*cNKi"ތՄRXLGPK -AR=hX.org/racob/test/powerpoint/PowerpointTest.classUoG&j0!@@& ) 8q1u&= vުs%g$ ʩHRO=B7AHyoyߏ~?8Eg d"A |jɫ圎Ň( -c8E#Qq:%\Rh[pYb`U{sK4+mK/[3uYX3|iF`f( mYǮ폚 1]`˗G2l?%JвNE -+XnLKdȉY5=K}35j1M=쌧}ƙv ;<~$ ƒ]3]3t5\_V[M]gj Xܬ՚1W%D=Rv&]ǖ*%n̲oݕWҙ&.HVUyV5rU}|gt Jg \3pb@4Y - ˣ?0{ |#Cشh`ukVT*S7b SBTY=1Tn0ח]ta  c@R,{LêU'l6&~a,TR.JZv"&aʼn'1x*Ϻ+y -l]!zƬKu%%E[8}8p<P)#HVfޯedBo3_-}n\/cUfGģ7êgjl`Bv_[^I鲐s ` W_% nVG9rK'QXg괚+mֽ/[|ʇ}N,H '#&3t;vc/ډmص{7B]s{yT95 ykTp)bM!C-1{6ŵh -?1Z{Nhau%4dL#&ľ1W  o%uJI7b,ڦ~ӧ~>_7J!zi$4Yl6)k%h}/$o]9' 4 )mHS1#8pS\38G?Fpq7x2*O'= >g8p?CG(~¥a;qE(-Ft/Q׎!ƚkRUlCF˚%(B7pq}px/"^ *ϡI9@D O >ZI; PK -AR=org/racob/test/safearray/PK -AR=Հ+I$1org/racob/test/safearray/SafeArrayBasicTest.classy`df1d#҄\ @b41 !"Kv6qw#/Zz^EZ5m=k֫d# -f޼7ofxQhpvt2Nn6nwFCIw؏9k}:Et?'}s=cAntcl= % -Yq=G8kӖ|"eHVn?qe#DJuf8~AOpINbOs\%'qïN/8E'䤗 -׽k,:~}o9V)N=oܛ\K䏜Ef⏿8鯜8;}uj4NS `8_,ȑ_*H7Áj#P/oRo 7FJx /:hԷ\Z;ZиXyc$ ~\Ho#Pe7  12XG;9뢑yqNI/P镆f -:$dŠ&Ղm:6-Hp}6N:m 3b&OʤrUc$aP :\'5j. W.3NrqY$ -CtPA\Vł&HG)&w4 o(5[t55IRK[cHN w7Xl51{Pds ,89xjjW\!c- Ń)J`($\Mu ҃a#7K oP:<s{7á- AǜǠOSgP({:}Ǡ d!21t .PjM,4DpcC581Y Cd <{d䉄=A^ w1[`1yb!&)8D<tC3Y~!so1 Q"JD"DXH 1G5D(gUHSA'/b8?bXjp`KO#Gzg=_7@dz{zF,c5ie:q4:gU50|w4R(ǀd F<Zp|u؏ -Qe$bjvb4krG -Bbh{}!쩃ӌ,'˙ 0iW<bH}&)j91~ &S4r{j{0iFKiZIS#W(<11Q I4 hA`a,qJ5H#㑔ZАXס֌Y,eB4q̰pIYZӨ$d+;L]*tYcZURsthnKob¼.$6!x1j,)<@Mjj Y^c14E,iNJcAlx5KPwМy+7W!d+O͓{$t4w׷כ>5/r]vF}݁͑ҥ2`Xe-fm F*Xӹnj7Mõ/HtJ ~'qf#?JdǶ.ڄ\P(9NTM3ի^UkmC,C'>RH]RJ]4o?>t+}1n2+f-T+>*(@qTn5 Ѡ&4y[-*T^-PU[Smnme{ Z~G9S\]ǡJwy ѣ'+4^G=_`I4&8!Jh*C+ O'S]**먘nzTFoQ9Gb<'W@)L -֩XTȒFo\Yy./ܝc(~ng190(NwNf{*i mS9cXUtN#/ȭ6 NgXDi<1^]^Gv^WɞU'7 )xtۋJ؋AUr5Lh-:,j|*Q-ђn&XhT-~h5C!iˇPeGW6IhIN0*A68ȡCWz94}poLppo:l$Ç(O(eJ☍:rʅ+NpU0x5\ Jl$U)Hz,$h9k:4H2$Uvɹ_ I7dL Ôt .DrDj:#f$%Gx~R2n8WlfL+0|`W.aڑ4lbO%LN͒IͤZ72)!!E#$>:7d;:|ۉ`y'Bv$IFB2FR8I(Hη;V@] jePW!VP+< мb3y$7JIF&~:MIQXSFj;V lÿmIP{>2U-^hn|r]>@ `!)#I9Hp%8ըCU4.ʡpM3f ܊{ O# Lwa w ty ";܄F l.,0rE"A~(3_$_r'^e]udxkjV_3"Z|`^1@K+x5oH`[3Ce "2? D^7'%*wYp&ʳbX3>}qͱ\"\bGKm[^w-~[֌VӌVղjN$>02(c$ʘD=W+\դu'`pO#<CGгص`>R/{ enzv6Xl͓wʹ]Deg͵8_.9_kyCtױOZOM+iՈX@ h1`>Ovx} B|_.M;,r -S+c`<Rייv4¦t`{jTGS5- EfVGt"٠|U_fuyqn+§u=q~rJd "E :1ֈ,$|h.ƌR<ZM<YpZ^=נ:5T<WnuK<60? )$ )[kE|)[ǧӭf7,un}];^wK}t".2shynp^&*s3h]nl zCJ{$6\"HLn.TF IbpFXO]b6uB)sE1B[)\VnQNwC~ك -ىZ,.)x^_q|[6Q7Q1{oxWZuP.x }oqPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classW |T̝LnB ! `XâN&H2 ->+nRvmH]>i_E\Z>UZ}O[sdݜ{Ч0|h3i1~A~g-&9y3?E W"{#> K^,Wtν:J7tx - "~#5GS톏j.ϼi/:bOeپK+K"Gě"yQѻ[2uw=:ט7;qE#]/ ?JO"g}UP?/>8./NXzqK+il#]!eׇ&JTjΟ|"ҽd;C‡,"r4\l/b^Rb+Т"F<#^6`TG[„HGxIW{s1HN}4lk -vFF|}$F(v p,^ - :wcM̲ի0Em*BFC<ڸ8ɭŎu⨭s FӨJ6FMQ4jZB~ `Ǻ8X7K P3r(S:Y'qJ'poZ$#m7#ΦECބ`Dog!FKnŁ[nM­:pIYf J!C,-ܒDĒ19f7'ov5K]9Y[[db∅k,ha>c: ,b<]pmDF)<EFi ZmXQ aꊴ;٫ئR/Υ24J(brELauqN: 1`p{q,5i*g l&b:Ͱ|i4eM'xlBG͢6]Ljۢ8dsҦyTeS5:ѶpC\6T#b>ڴڼZ_6-q ۴شpNƵ6-V@6F;BBnny"v$R̦i5ZeU%=FZ4Dl"MQ%6E:SĦ ݌n)GCxh}qMPpiLѧ_g2* 7R}%vI$wHb`;oyM<M-Ƀ9:LܲSruHW9t~ߵy]է3eu. ױshidvFz4_<je8}/'ZezLɐ\n\F<گ-yDq$ޓII6gpxoSrƹ'U*-$d[ГoUb} Q67:=Ӓ\|jz9=DX/|=oS4$Ё{5~a|rS=߯ǹ2QTޱu4(Iˏ^@!ﶸh྽CrwDԐiIWV%DОE cKr*M6'=Ċcq,t!49`?0ah9z>p{1O 'J;pzin"-eul_˽y9Pr>*\퐚-wi'pv$q csX<$kxYs<l80R892scِX9I̱9Nf̱9N s~K`sg0 xspH785389f3q.s9<kX1jX3渀9.9p:c0z渘93ǥqِogqFg̱962Ǖ̱9^/gNHl,,{TjO`xcGn}yLmR/X0rF. 9jiStqy7 -''Pޣ{.[GOvo~$>F=¢eu4ٟs1vEEɊ+\QnLP$0Q&-eꖲzK*k a6ef9igX=4u9y˹-Ubr q?]qt=S3*f+۵\Texf џЍƀ7L~{F05 5,r!vg .ɅgLTRYbNs\N=RvJf@ - Y+fVheղҟr1We+2υ8?\es\J g,U,W庖j -V5X dןUZ@i -M3;)WݘJ Gpjc#HRF٢1LA5G)\s[Kxn-mn,SJ$\bVD \A2ا^*rM(&V0Q)?؏Kl?V1O_lEYkn\F \!t!IF11,0؇J*vMͪ8&C=ϱI?0yIxxIXqj\7ZX5.;KX.\…שT*Ui*MERÝ<s"p?L@Z3jvbcrצ ~-rp9 -J,BϢfCׇ٣-X|_w75(nnΖ30[_|,/}>$P.B\GNe&Z.ԅ[hnYډN_p'lM EE:=6FWL|U=^_ mO[ok+j[m7{}>><=Ga"xR{Oi„> ?/3z%~A}~7Y=;3 ?׷v<ߎ+ %(^яU=ZoL·͛Fex˘[q1v]62=^ٸS >4G 8w3, saf9Id"\@L2kgnt3Jf'fit-1m<8w!þ֬5鈙vk<k&3/-ìwFX36lt -{XKa,W_%i~_fMGZз<ۆiJ_fikZ[{_JO;{Y[s&kydm!ſVE$Elγ?YSAڇo-@?Fw -O*<";hkcxZcXˣԊ8uxsGZܰA;KyG-<f!<9~IΓ<IqIO8ORySΓ8c O˯:?OPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classURV]ؖPM%\l(i -qBҴ5iR $%5 zˆH/Ä~@o#.e=N={i_㯷A8B= u|i 9@Ǣ ⑎ ,᱁+ZCI)5|JAjxf`XEXSZ^aCw黮F5䂿\Ym:ܬRc|[Vd2T -BQ!ێ PnNaMF*Y;=w3@Ohn-ZBʆ,TW)*tTG=\(e!m8/ -sǒjx*r:pz5:B\[  D(e ,I"p */S\#I岬Ŕ eCWQkb$qU53y{"t͗c;* 1tR"uYa6?d#~"ۋ I`Mج쎆 lgP@[2GTwQw3x ރKLXֆ-'`t @RWMViy`^,Plbs9lZN[梻s'F6ek8Z~]VVNcme:APt@YSҒFD'٩G:$C+9ksFbrV+ Xa*>-k5G}:Ag[g3>Zsrׅ% sLM@׸ce>9#|L)`>,|^8Խ6%ku3uJԮBϛS0lwL=xSG_N,lKM\.jY c&0~kb&;؛8}DǺzS?k3! AŧeˑYb?Wįs <j'+/w DiSL$}q#L&4cuEm|1rC ۟ߍğ4|ٿPK -AR=E} ,org/racob/test/safearray/SafeArrayLeak.classW tՙ~d&Ik ԆDJ i$C2f2f&,k)hMҪzZz<=zxv]۳d@~y>}7u7nƽ։:7u` h0VAB!HC؅ -hB.Ĝ1q V76Åpbix]&` {؋}-]xЅo~=A6'q#68467r@`K*g~.2˂@t6oYG4xc0&S6Gux Ϗ7Ѩk~%e* -d㍕xe< 7pmYCbI$)EBA֘  Xiη -~Ye ˷ZH>WK$4YՐ)qz]<).Y?D["+us$T4QI`k4&Ƭl $ -I^J-v81'sqqHk.ݽkaYK9'Nx8NR)n Qf*ٛ+pgpփs8yJ󅷕򅛗tƚ --Z -yM֑HYozpfO`,h31k؄0zڃN|S[-Le΃Kxrwl`k'ZٿATc*QE}:y\j x^dIU{cÃ%3.۶T s߃nx]|KB;W<x7LzpŸ֠׉<i՝%D .bLFD hds18pk,hxJ;3S< -CҔ_;YXa"76|  }xE];I]a!!kIMXwF#-hjΰkޟi.\m r0C0Gn'78S &JrF,+M 7E%՟u5C)y4ĝJF9`S#&uNRӣt4ScWo95j19ϰarϼyChd 2P4,畳C_3RZ8u -?%wغ柄07dDAt,膸lݟ36N-|z&:g\(b(Ԣ! -SDȗ.g\]HU,9.L}i^O7u`p7 c0W2UnBVwuN,_yVN0>wCiʗZ_q`qR3}tgrlͳ0A9NiWJUTkUQYYX -]v|Qs<޹]7Ct7ϟ=!<o/r.; v&}.,$0 ]b}cz}AA4&H =8H /{3LLHDv+}zҿˍ(}KrԫׅۅE٠NeƗ%|Y=X! 8FWeQe§2Ѩ2STdT)*QTLU&2峪2Lӆ27 3 3 -dA -4*H" -22:A" )[AP9 tUNVd7wKt|2jCAvk{C!9_"J<g%mu#!K;]Ň#Pbe̔k1|b1[β+ JD.x,x+ep[-[fX*br7^<c|⋲G^W-)߲K+k ~@k;-~ro0 P.i1KM8SU kwZ[,PX\7XE~ZeJW!_lߩ[< 8AuZ=:oS]حk'm KwտZ~=>RB+z!ע }:<c&]opR]lq.ZW 6Z :h1wPxœ 1u¬_3xgCO,b69\x<,`BXQ4ƻ}ove:ZC1>r -R1ebT%Sb(] -pe5_lA؁Yyb!6vch,a(/,:ϑ@UױYOEL?S]}#$3yI'4xTE;+a9mr -4l 8,sqD\ƣR"[+pJށӲ -Xgd {qAi̋ <JJ܎gN\bU{5y~a4ȣhdgϓ_$^B|Ͳ)ekM?U寰M;Z`@?씟`اϊݭأ2ɽYi8f⠚G hg>M-&Xj8V+*1UXgFUpAݏvt/]PɿA~xϪ#LӨSOAu\A@]&y7MhV?Fg07!hUf{lS-ت>& Tإaz -lp@߄k׬ Vúm6ĕ8W:`UqLגד788wލA\\nC'+>}8Iy<7$<Lee!CLh.ì"Yp+4h5+VX6r|qIQb=$Uޤxz-i&a1¤U6&]Ik:5a!aqVQZv'C K -|'z'Jze#%܎;FgPr)+i) G?;i9bxXJZ}<PSˉ*'^FGƈ~'w3”?=ZQS=Ί >j4VHj-Qy=}̹x?']m((wkPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classUSW.IuY*Ai][jڪ -$HKMXfl;}c:3}Ӈ>3mi!sw=;n~_\,T1a#ㆂ1`LEZ[RW1!rT)wdLkh59宊{*f1=TW0 輀4=n0g:5+>a۵%{io8]+W-`jYd:soKyG V@*ob*AjXORyFir,jh8%ays5@yQ@WA?.p=ɕQK0N{n-\n J^ F>0K͵+彚_&lY[Q_qu|n:(` ?ݲ!2V<ߨ:Ēt|nfLq27؝ϓ%&/咎e0[[sȪ߫=٣c:2#af|ೞ,[>U 3mj|kt–CHnLy#8:*X8̐CK:?Vy`ol/u52+CP֤䐍d0C_ګVL ta#d$VZ^1+]c^R{HT.kkl?7T;]dfVS$#s wӀap?G'S5){wE9ϵ1T^\m :mϗhGFl"J<Z\d B:oKܿhg4Z;ohO2ߗhDsжS::8?/Nxw^.]f׃kkqDB.nE6IwPƦ c#`>w - я *EZ vtDïSJP^A,TlRg|+awPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classVyWU=aJ M[Jt[]Bi@[4PڤPDC2M$Lj*KUZ.jVM9bT?/_#7HC޻{o~營l /`@1 Eq$lý8.("E%,C@NN ("$BI#""|KX~1>?ȇ8" <)bT9󔈇aE<GE<&qN>! w O xg%49^𢀗JhQ`q3Xz@e(hQ7V>e8LG+~% jCG]qů 5a UǕS./QהqnesM^iE˕sSK"R/|P@/KȰP,P*JL:J?*9* xf1Cӣh4'7Q==HLQtx ?ңLL,,타W(WO~<m<ͰC2TcWxU``p^kx]2.MBʨȠ$-os3롘Js3wp>> dp vCY:u/PXIOUM-M2> +*^#EI-'i >es -Я+\&G@fWW' %n8X<_1ȜF3J׸RVa-u*esƇpNjT}~+jjcӈ2=QV)f[? ;#M3ueGP"ׄYo) 7ȶ.'/> -0lB \s{*a9`THl Bt&DJVtTR{I6€ c }}t!(A0><8/ȣBE/8}wUEGvu;ԽH%FwO!o 3Zgp)/zŰ̙wkH#{srD8өEח^sOZI;::lz˝y\ۚ*lacA=#98haO]E`vZhf4fdBV@+6klI@@~BѠrVO8u*&צ$&QΥ\Kmq^IUz-64$!)VէPj21mQYG* )8RX֚#e6n3[ Xff\J]y >k`KʚK'JY؜dn30K5E!2uB`&Dp@"RrRp \ƞb5ͦ= $vSlkX%| VHloR>OcWy3,f*HX;Ҹ;d `+%:\D=Ѐ?/ M̎l%v걋h@; 7AvݔI';.vUMopٟ1-^~<6NSaE耛3ij"XUBy>M*xMxwt~Pj 4$W!}##3M3.)EAQZ &HHcz_PK -AR=org/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classV[lUNw3.NYZeb--R)e:;ۊxxy`bRmc>ᓉ`L^n97􇿿|axHA) ᐊ^ 㰊>G#Q 5܁ -аFV11"萜-2TV0Nd%ܖVsrxJyRP0`Ttܝ^`=` -TtZY0o:=FN^ñzJtNL8FOfMӎs)oꡬYJBHLs@_mes1rHfIf/FڵFÉnsvJ/jκX6C#m'XᦇZr]F+쒂5264\z/괏<s]gFFvC6 -8 z/u|!gEKjF:9h: -:[1K?6segedV.TYF -ៀ NkV܈{#:Գ@!<U,!0s - K" >bi x/)x9Wp*W@(1o@^Wp:7pF頙6@,[dbCf6:'kҒf,kn0Ivq6e[ VftB&s mc;b0ޓ)Ui}i0>D}geknxIDeQrcrXV{ ,j5i,xvvK.Y{3أ1Rælt7ӌ~5+n!\3$aG)vZ𝭞'4xJ(<dS=- dSOù{o^_%<g`v̶Ȼ0h2F|e'4d8\bFL˙ȋ9wy~ U.-X!sgr堙1=?U.zE)aMṵ2X͛o'!4JpC@\C 8z*4r ıJQ; qަtN Ч 84C 4# Ae6O.xH_P9. :`-g Nql܅zk?[nj޽DDQ2IՐ$ΜSt4[ qE8EzI28\2 1F]N+HN`q_c -*;GEz4eqT>2cXOr*crj&pg_!GuGld7Wkqf%U, 6iM—xpd)G˦X4qi\c/Go/^ǎG%e#6Ķ{}5H y9lg?' —؍ h&\f߿b$'b~!WW?kHB#"cX]b=vzST0ΓL*1-Ș3B\*u uEa~Fdݟ"@Kƨ=Y$K*y.}$ˤx~d0{|O2BױJnϻ9ɌoGAW\$[ΒPK -AR=C 7org/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classUmSW~nvKQlC"b[*F `" -Yam0N%NoND -NL9yy=q8I|!LՏr!I´1 Qp3ruW=?ՠg5bN+XЏ)PAI UL(XRX n -z~M˫W78A M <7CD%$J!{p F\vFhLٸ4r\'!te1\ -d[t\A^YQ.zY[2}G„LI螗RyZ@u]/ M}>d,gFWfUKs4(V e(3{66f^Yv#t<7/ وxttX'5}˾2:x\u#qgt9_aXXQ)</d,q%p~iΦĘޙ ^d[vɀkCh# 0Nf, gTO_EbR Q#Y^] yplX`l۬ߧ_,4k8w*oh巚O⇨+/m+<e{:kHz758Ïu)oFF ]! N@Ȼ!y#TJ㔌"ǯG?T6"B,+".Fe pL9pICpѓVr~6P]D )t__na`pL0(x e~9QLXfa<ױ*5O)]#<yD#KzD -ҸJ_1bzp FqV$_eS36 ZHdRR>E{ӢB[2:rV@1)?PK -AR=@> -)org/racob/test/vbscript/ScriptTest2.classV]pUn~a%4?(B)TR%ݒdfS?+0hGfgw|rttPڦS3={9=ܻ:6ᨎЧ?G:U4 x'CHĩU³Q! +||A gt*K!~T0c2J tl@*10@U"X9wPF_6+޴˼@>+khː@q++2#4GԄvLwb-qI3i\M佤]XRu,Fhf,mfS+sKIs-;KR,+Iyr^UڙU ˘p+"ȗO -ϋ3CV>g1B0^A.!O`MيRQV̗毳*f+}4in4z.8IyR寙*ئ!c mwT[C8{s (`BEp-qx$՗ W5fu\aʋSң9Qo*[7kބa[nmJv`Z6_(X܊Ջؿ5rX| 5Is\ش 4z̼T^Jv1ǾX:3u8(MvǓhtE'JؚI8|Z=)&L.-JGlG@meY˜Ǿtk٩=F0ѲkP-p*b4'Fe*O<wb.q9 /AΊXvlA]fFf.'=8Jo2^C]R6B*lItH>5,EzLKYsY,u346]{ 1nJAl[8ꔠCG'B)Y)B9 m'EpM[X%"*oӨ |nzx -5E (Hkۊ#,\go -7|mnBc|'nNqMXNφmfRil\Q]AYأE4UЈFlgŤF7T ;XaDU*>]|IWԏVζѳnZ@#v{y' <X88m˛3tp7h)"w)~6wUq ߉]FtC|d12o'f9p7Rvt'7XidUƹTG }5_SF_QHze(S0IHMphַnK%WlfPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classUmSX~n[IꊺRތv_PV(ַ4\KM:-#/HŸ7gM+T)2;&ssrooi8k1uP1&nimbR*jc*idЉ)W`VC -ЋRi*p*(*X`N0pa[W4Q lߩ -#򴗞Nmu$: -C,q.q|R~*i'izU^|G͘$з,bg]̦Af--Rr #bPܒdڰ )9;nL#(}GߟȉO_ +W㹤 ~9gUa!ZOy5Ys$ugVc 9yXQ! -Rԕ,фx{/x𽲌@u<S=۫j {}^mJg:_ԤkVPd9DNP05PqzڔXs1aFh@ -5ͫv;@#h~UBm*K~S'%P~֨3v_Ԑ7 nq+Bcd -zA6q4J g G@\к}0ئ*4v`Uț><qDv?,VQ~9"B?@y6\G I:xõqQa&GX~h2#~m(IA8}8.Z$#APGzv-6Iy2: ;y8DCRidbX/XV1N$ -0<4L`hh*RYJs 8 `02iPFCZe?P{:nX /*.2PK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classVoUv.S -KRZqR-RV RZN;ζO -!/`66jbbBHLw?MLl_l[ٽs~s޽W؍OAᘊ-)S؊~?S~i?\<W硫c-z|K:胐!u0ZfUHHIRZTԞc -m^vvcL(:Iaz:- -<6Qz9ldvOHYIt -6-ƭD䐑NN|}4QtTp -:uFp((qW%F$ݫV\7tېY6E6426vOYzx\-1c1+'"IGv&Sqr +)}iUzM c:$MAy/bm$][3& SS [Jy4l%1Gv)7n6Y^*U7gY;.: g!N4N7jR/hx/o1[5l/kxJg5s10U<.i栰 -[Zj -9jxk@Fa)]$_҉冋>68 KD%S6ʤB3" 4Hئ@yV=-$wm| -vnn]奰[´)D\2Uǚ0$vAex%aH81=2E_O˖eZ\#9f20M⥜|{QbӎH´2`NaEz¡"'e=Fپ奾rc;+ǚ[]aSre˹"/\+xÝr\cn핦rya2X!8&6᫑/ZqV,ޥrW+. UH &\gʼ8B@x*35s -iS7Z)WFq5X5 .m۳(m^ÚiD .22A,gQņ,* l\zFU$ reW4{ryNj)}w`WCPݣU -РJlCфJ/W^eP4t :7Qͱzț7P t51k 5~ZGFqt,(- L[L}I:Mw}Ou~ '~&IoNtS<<LF чFg{S{-dyތJ,QF8g-vFj=*:T:r(p|fdM!c䱏ЈO.Q[>ã*9]-rv_uk}yκ>9+5ĭCPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classV[WU J.-JS,V+ P!bN&00Lv-l}.,KwZrW4d>g}eN_~:p7"`0,cD;%cT˜wH0 2S0i )a% q; -1+]A>#q<W'PEOd|*ASpi C?oxW.&m7s5N|Ǧ"ٵ25,gFOd6P3TҰD>nJK$$m]3g4aeԲˠ<ajIItC9yh4fjVV YЖĦ}װWDv%n1imxEoL89A -:IAG Q_T\k*.KBVż,RW&QjSE<3Xg8_}c߉ŋ<a"Y-ߵMŒ`ppO O<MRJy-KT,c?쮶nbCh>_<axUƃfFLAA٧s|!ȗ****~@Cݲ.rşwi+PwDoT<gUSA}"}qI^.N{PKJ.$T|s4v1gM1|ĵ\O)~19tΤhw2\8AZx 俏! e?^:m%n?)ʥ29^'TGc z|H -t2q5cN[zRЗ}4nÊQq/oP]J!QtL"Mqk]8Z'~KX8,.!Zs Q0ѪBw ־gN;*n\FLxUt=0 <B:*"TE6HhQ]uDj;pjM4, /ond:8i, rMqg[xUjĎk'Jߞl|r_〗Nh/P~bMISփT!a:F`KU:NG1#گA A-4oU=A^%uN]ߢbN o>G D6Dz'%)dthWлO;PK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classVmWG~7l(TAъԚh\!,nv `mˇK~zN j4;w~;11O \2ъ1=\N#mS !+\5) PF `B˛LjyKM|/2R*1w &`*GcMEi`@UDn*2V|_FV"2h " -y9YnbP _jR` -83;2OV* -<]*u*q[`Ywy|W>J6%=Q-MؑW)52-OI&x* Wg˜dC%G*7iKfN]˹Fd\s #I4 ]Jh/+۹;nII/XfIY[e,ȑ`-ÀOPO,Xͤ<y۳P@z^!U uכeܕϝ7ho-|%w,⶜. GpTf~nEl{o$[A[v:rr 確k3W+~ĒC8,pp4 -Ycu^*R -le6 -5s\1|TKʎXcOʐ/k]Uv-ĵh &%'"[n7֣5iNIG o=MJxu@q5*BK;C3ׇZCk_}F Ջ -s7ϧori0KO&6v}خoNBzY.Df_ Ly -8@> άN O?0E<C-JGށ-+<Bj7ٷ,ZA;_>Cǭn[FV)9[Ǝet-Fٝ'إ9_A#k}+~ەׁ?Ntc7&1KgxhĻ`)C| 8`rw5y"B;LJ BI N@%1!?~_8%ңD&pE$'-DiÇJ~JY>}H?-8a#<NۑIH@vo1[$q:֭L b[j: PK -AR=(YHorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classU[WUNL2 vUmSjk ZpDa$@KwZ$eI{go_9SWc1U|(F`L8&"N*"="´V0 -Tb8K2/ry忬J>T@ŻJ -ah+}7x93L' Mr>4鮍*~7`ٖbxi!tLʲt^IK97<KeXQ 6icpt6xpްs2UdRg9 5|{x§MA4+,Ǧ9akS[}Ь - u)z&dmN(e=tkxSej܌=ISӰ!2?ZapQ+I:6/ -<'/X -V5!O`)ʧh丆=( ùCk)c\)/KO˝-Z_ lP_ ljwкxk+7]|Ӓ! ? ZӁcr2Ǣ +g|:zRPdK#| 4NQ7gɇ O(W]W+<u=^;P$^tJ$CwNjj{b OEtt|dV):_Qm0\m2/W}D8k "^ls*~WynRu]+$MYqky)WND/tq5XbǁMhHKD[E} 0A8V:@d1݃;hi=h:@Le{x bkś]E@;xWhm8swNZyD#ȮCyq2魓|:J AM4zeo,X i05^l&$-c9H& Jf, ->"U\zR>cD_H+fs4)-U94eA5PK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classVmsU~ni\l By X$m R@kol{@8SLȌ~+n--={syι_5|~381$O!%`g D4&33 3B11Gz`X$O1<]fm`΀-ۡԱ[9M9=y20cYt(@GT/aZ?[ޅ]E0}爼w g(]k)WZQWF*9<ߨʰbͺdKmSV1j<<t -(έ1ECH5&U5Wj5ky„d6%n2PbS_s5^(Ku -F{*_沲I+<vbH3erqG5&1dj!FtL\հ &\,&D?cM57@dBW*thqt#$wM4qS90qS|aKbGR)n4ǀ@grW:3okS՚ʭ]yqH`(kIQغrסwC\֜1OVF -,J"elΌaS+e@jg玪TerbluHN~LPpN7bl < -ɠ|3Rݗ<a[  $VHyZufJ[=?Qi B!%ʸ9N> *A?'-'?_4ԗZnX<ÜKT:pcAqvBP -@H$mw$KC-ziHNL6stGwvK ٶ9p =-lka;{ءԗw'4G{ii{sr~K۱4ӘSEEDez{8q~Zp}1P"9M^̓*Y mڿ{Dg~$hF36uC}oV[x;f -'?Ca`I25lFS1{@þI]Z^֐;`/+:lPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classV]lUnݙn-'@Y*X݅JQu;;.T|bBb l5dLĄ>ٶ`6ssιw>^fi xFó:qBɓq Z$13lˆBB8E%_qNɗj4`ІM=GCjx5024CeՑ谀 qӒ'tTPNa1zFŝdbS1WX)UH;fލ%=1DѴk.e@YʨM%#VBy[L^;-i -28}%wde-v.UdJ 4KpreF:M/eV}2SnX9fˤ> #蔆Ni@.:io>Y.g[UC6,}gMͦCږYf8k/D5YzjG^͆K/I+:kӎ4\~0RT/c<p]8Y=E3;*Ih$a 8uQUom ]l =lX|P@lQ -K)ja-1ǾT9-QO}r(+U9)}]AK6-Zگ#̰ǟLiϯio$)lM;6.Fkլ+VYNڌtF.ÃmGM@S$E7}^Y~#֨GnLb,9=;6ΣW;-EMu!_aKWfO?|> q3o)CvJ^ UUKU.D<To$T3 } -#tP7D0kF}2:BPgr߉B#4XSѯ ZS2ZI$|uBH$'&Lb]<zWWެ+tB7wj:ߪ9ERnu=v=y?z#GoD%|ͯ_{_gI9zN`'؍O׉[7٬ݡs⾢GOBa^Q}"^gnWx4"1ְ#af}X~*3>Ixs;s֟Y%45R3$]\45i8[SH7O4MUoʶ;-kgh86ej#/PK -AR=Ж1org/racob/test/vbscript/ScriptTestErrEvents.classQ]OA=ӯk[V -K$bL)OCҦ/<ͮc!&,|?xgh"!u{sx&dO`Nʾg^MjCY2ƪy"D$1X" -\$kT obmf܈T'ERF[>0!ndh! [2)ц?8U{Qy! C0QsܤHzt=8 B-<s9.D_/D  ja/c1( \;bJ+szs?foFvl9qMK,+n߲Dh:mUqBFX}vA -B OxDu# l2t,@ -a;*%j BѦ>ou#\}ۭ]/voPK -AR=org/racob/test/windowsmedia/PK -AR=-m"*org/racob/test/windowsmedia/WMPlayer.classS[OAf[, -ԂUTp411Y"<-)w%`@dϙ9|sf43Ɛ4g``70jf) Qz,q&lMaHI_Dql!Y -*ˑx^Eη]䜠 I?2&Վ1:AT#^m%jޓ~%ثy"jy"eޕP6&F{^0r/++6'M] -0N7<`Ȭ,JWq|[Aaߥ̕ҦN6q=glU{MEү.ե[$Ԏ(B=r V0 C<2,L[X4c8kb% sY=Sԉ]/{yxHC0Lxtě;BFA("02/r o`HW<N-X0޹>EC=^٤d*6f'i5p.$C 9K ${c:K7>4рE:Ⱦ5؇4h"L ,OP307R,Kihأ Fp%n&v-(PK -ZR= AMETA-INF/PK -YR=ѷ+META-INF/MANIFEST.MFPK -ZR=ِy `META-INF/JacobVersion.propertiesPK -ȉR=Aorg/PK -ɉR= -A9org/racob/PK -AR=Aaorg/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classPK -AR=4n2.- org/racob/activeX/ActiveXDispatchEvents.classPK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classPK -AR=Aorg/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classPK -AR=8n_org/racob/com/Automation.classPK -ZR=[K org/racob/com/ComException.classPK -AR=..$"org/racob/com/ComFailException.classPK -ZR=32%org/racob/com/ComThread.classPK -ZR=ך[Pw)org/racob/com/Currency.classPK -AR=7X!-org/racob/com/DateUtilities.classPK -AR=:+s%0org/racob/com/DateUtilitiesTest.classPK -ZR=spm@bH4org/racob/com/Dispatch.classPK -ZR=g{ "Forg/racob/com/DispatchEvents.classPK -AR=L4M4 &Jorg/racob/com/DispatchIdentifier.classPK -AR=Yo-h)Porg/racob/com/DispatchNullProgramId.classPK -AR=+vK!Rorg/racob/com/DispatchProxy.classPK -AR=&t Torg/racob/com/DispatchTest.classPK -AR=*-Uorg/racob/com/DispatchValidDispatchTest.classPK -AR=a5!,Yorg/racob/com/Documentation.classPK -ZR=ZZh,[org/racob/com/EnumVariant.classPK -ZR=қ%y ]^org/racob/com/FuncDesc.classPK -AR=8uborg/racob/com/IUnknown.classPK -ZR=<. #forg/racob/com/InvocationProxy.classPK -ZR=ʼn8 .:jorg/racob/com/InvocationProxyAllVariants.classPK -AR=C0Sporg/racob/com/JacobDeadlockTest$TestThread.classPK -AR=G%gtorg/racob/com/JacobDeadlockTest.classPK -AR=o\"zxorg/racob/com/JacobException.classPK -AR=SW#zorg/racob/com/JacobObjectTest.classPK -AR= w$?|org/racob/com/JacobReleaseInfo.classPK -AR=ᚹq !org/racob/com/LibraryLoader.classPK -AR=nis%Vorg/racob/com/LibraryLoaderTest.classPK -ZR=Ldorg/racob/com/MainSTA.classPK -AR=EF5+org/racob/com/NotImplementedException.classPK -ZR=5h.p)org/racob/com/Parameter.classPK -ZR=OR[ԑorg/racob/com/Pointer.classPK -ZR=zM(ٓorg/racob/com/PointerWeakReference.classPK -ZR=ϦF|qorg/racob/com/ROT$1.classPK -ZR=Porg/racob/com/ROT$2.classPK -ZR=wN+ org/racob/com/ROT.classPK -AR=Q5 +vorg/racob/com/ROT2Test$ROT2TestThread.classPK -AR=d45org/racob/com/ROT2Test.classPK -AR=` -+corg/racob/com/ROT3Test$ROT3TestThread.classPK -AR=3zorg/racob/com/ROT3Test.classPK -AR=L[ org/racob/com/ROTTest.classPK -ZR=Ձ*{org/racob/com/STA.classPK -ZR==A ڽorg/racob/com/SafeArray.classPK -ZR=X#8Vorg/racob/com/TypeInfo.classPK -ZR=|QH]org/racob/com/TypeLib.classPK -ZR= -EeQorg/racob/com/VarDesc.classPK -AR=#H*3org/racob/com/Variant.classPK -AR=͉\#org/racob/com/VariantDateTest.classPK -AR=51org/racob/com/VariantTest$VariantInitTestThread.classPK -AR=g(org/racob/com/VariantTest.classPK -ZR=r  $org/racob/com/VariantUtilities.classPK -AR= DX (org/racob/com/VariantUtilitiesTest.classPK -ZR=GH3#org/racob/com/VariantViaEvent.classPK -AR=qQ]"(org/racob/com/WrongThreadException.classPK -AR=ADorg/racob/test/PK -AR=$(!qorg/racob/test/BaseTestCase.classPK -AR=A'org/racob/test/errors/PK -AR=3a9,'org/racob/test/errors/UnicodeErrorTest.classPK -AR=Ag+org/racob/test/events/PK -AR=D6+org/racob/test/events/ExcelEventTest$ExcelEvents.classPK -AR=RM<*w.org/racob/test/events/ExcelEventTest.classPK -AR=vFQ"v7org/racob/test/events/IETest.classPK -AR=D>֙G<org/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classPK -AR=0 u -3Corg/racob/test/events/IETestActiveProxyThread.classPK -AR=Q{.Jorg/racob/test/events/IETestActiveXProxy.classPK -AR=u^ 1Norg/racob/test/events/IETestThread$IEEvents.classPK -AR=-(Sorg/racob/test/events/IETestThread.classPK -AR=J>i4\org/racob/test/events/WordEventTest$WordEvents.classPK -AR=~ )^org/racob/test/events/WordEventTest.classPK -AR=Acorg/racob/test/excel/PK -AR=fHg 4dorg/racob/test/excel/ControllerTest$Controller.classPK -AR=mG)Iporg/racob/test/excel/ControllerTest.classPK -AR=Asorg/racob/test/powerpoint/PK -AR= i- CKsorg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classPK -AR=hX.yorg/racob/test/powerpoint/PowerpointTest.classPK -AR=A~org/racob/test/safearray/PK -AR=Հ+I$1)org/racob/test/safearray/SafeArrayBasicTest.classPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classPK -AR=E} ,ߟorg/racob/test/safearray/SafeArrayLeak.classPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classPK -AR=Aorg/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classPK -AR=C 7porg/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classPK -AR=@> -)korg/racob/test/vbscript/ScriptTest2.classPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classPK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classPK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classPK -AR=(YHnorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classPK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classPK -AR=Ж1Vorg/racob/test/vbscript/ScriptTestErrEvents.classPK -AR=A;org/racob/test/windowsmedia/PK -AR=-m"*uorg/racob/test/windowsmedia/WMPlayer.classPKjjV"*PK -hSS=s6win32ole/Win32oleService.class1I -) -*+ -,-. / -,01 - 23 - 4 5 - 6789: win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -Exceptions; getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java < => ?&WIN32OLE @A BC#org/jruby/ext/win32ole/RubyWIN32OLE DEjava/lang/ref/WeakReference F  GHorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionorg/racob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* - '+M+,N- Y- - %*'' !"!#$ %&" - '(PK -hSS=ewin32ole/utils.rbrequire 'win32ole/win32ole_variant' - -class WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def methods_with_flag(flag) - members = [] - all_methods(typeinfo_from_ole) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & flag - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - tdocs = type_lib.get_documentation(i) - return type_lib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = WIN32OLE::VARIANT.variant_to_string(vt) || "Unknown Type #{vt}" - - type_details << type_string if type_details - - if vt == WIN32OLE::VARIANT::VT_PTR && type_details - # TODO: Add detail logic - end - - type_details ? type_details : type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -SS=J66win32ole/win32ole.jarPK -iSS= META-INF/PK -hSS==META-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.8.1 -Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/racob.jar - -PK -hSS=jruby-win32ole/PK -hSS=org/PK -hSS= -org/jruby/PK -hSS=org/jruby/ext/PK -hSS=org/jruby/ext/win32ole/PK -hSS= win32ole/PK -hSS=P|jruby-win32ole.rbrequire 'java' - -# Set location so the loader can find the native dll it needs -arch = ENV_JAVA['sun.arch.data.model'] == '32' ? 'x86' : 'x64' -java.lang.System.set_property 'racob.dll.path', - File.dirname(__FILE__) + "/racob-#{arch}.dll" - -require 'racob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import org.racob.com.Variant -java_import org.racob.com.Automation -java_import org.racob.com.ComFailException -java_import org.racob.com.ComThread -java_import org.racob.com.Dispatch -java_import org.racob.com.DispatchEvents -java_import org.racob.com.EnumVariant -java_import org.racob.com.FuncDesc -java_import org.racob.com.TypeInfo -java_import org.racob.com.TypeLib -java_import org.racob.com.VarDesc -java_import org.racob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -hSS=??jruby-win32ole/version.rbmodule JRuby - module WIN32OLE - VERSION = "0.8.0" - end -end -PK -hSS=S60org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lorg/racob/com/Variant;)Lorg/racob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lorg/racob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxyorg/racob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -hSS=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -hSS=>'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLorg/racob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/racob/com/Dispatch;)V getDispatch()Lorg/racob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLorg/racob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLorg/racob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJorg/racob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lorg/racob/com/EnumVariant;org/racob/com/EnumVarianthasMoreElements()Z nextElement()Lorg/racob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lorg/racob/com/Dispatch;I)Ljava/lang/Object;callD(Lorg/racob/com/Dispatch;ILjava/lang/Object;)Lorg/racob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lorg/racob/com/Dispatch;Ljava/lang/String;)Lorg/racob/com/Variant;put?(Lorg/racob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lorg/racob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lorg/racob/com/Variant;H(Lorg/racob/com/Dispatch;II[Ljava/lang/Object;[I)Lorg/racob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lorg/racob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lorg/racob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lorg/racob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;org/racob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK -hSS=`9  racob.jarPK -ZR= META-INF/PK -YR=ѷMETA-INF/MANIFEST.MFPAj0 =VZT7PH 4% [`KFi;3N9c>g%R;$fl&7\PRzTV\}J:]aP]Cb2}_'%2 -A-Jk72QBɛ06gUs}vSAiq^B(rny&hPɏv{|ゥß^E\CS΂ذFVHA*/_PK -ZR=ِy META-INF/JacobVersion.propertiesSQ0PO.Q0204P04222T5050ROMQN-P04U04225Rpv *K-*ϳ534J*IKI,I5Z 57hp d̒Ԣf3c^PK -ȉR=org/PK -ɉR= -org/racob/PK -AR=org/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classŗ xW7d7@CIhUDB@o:LݝeBVЪ}>*ZbnRPVZZ_֪33;lfPɝιso> `E5fqn…,q/>O)/p؃{Yϰ}|E>o,<Y n|fX|كYaN#| =A܃nz<x̃ ֱ,| gxO0IO:s,fϰo,ƳjgAm۩cb@@8[(PPڰM)Wp[X4n7mVmQhtC 4vh7/?/]'7ѶʨW+e,SXX_"j'mQ9T¸~ƔZ@~5T$cv͵IQ6DHD!(!<,MjަcK9S]᎘؅) -^`]w_j"kJGLiYPAK)kcJ9܍P6S 0ͩIM<KЈ(dmQ51QЂZaNN OG9Tu}w -M]C`4lR(zvR= --8qVQrkc$Sm+txbN^$gjXIwkV+͔Nb?-ŪUUrF_EGZQ^Br"фH#@x]Y,i*UCXT/*U)Qfk>{.\.f -N9s|E3 R+6D.k9FBr~<NY}aJk tY /;&'C})v{ƍлV$lS,d/B ρy6!7+{xt-ϖ ͧ$ $`\vJ $?c'lw+T;0/H~%K -aE ~p ~,^yO] gd%A b {2|Я~FGr񊄿lAX ǫ,^c#Ayr_wȤ.:TG:(͝muZx[;6VewB=X]JCOLM_j{ha{2NﴂpX eOksod^k]Zi5ELjkLꢂHtR{<ѿRϰv [;uStK/lHKnn * iEC52OA]M`ݥq9.;K/ؾ=o2xI-P *XjM6I$BYV 0p5I4j1 -u-ԠZKPG f-c%ꈵԁ ˉn'VҤ5+(`0ie'љڛ i,4Uyަ \P^GqL\)z93ȢoXIq ,მlr -NzCCP1T!TBc0JLUx/)6!XFƑmNj oQA;yw/hU6WQrW~df3K(KX+u#/csLl5 ϲ Z$cT2QZTA2 >Ta%52٫A@S2p+z0*_$Kf֐ s0n)h%mƶ}]n` jCXDYm8$p\G&}{AfOۍ"éoM\6\R zؑ>Ά>)Uv4iƊgPrT8{/F[tڝ|-1}Uq>qcEkFggX&(p1.c@AFGcc՜B@>>2^"7K1!yPAU;4u t:ӢSG!ar2-: ?r}ĭm#g_g0Z99Waߺd^q'~jlhZԙH(1O1W+Ȧ_,Qy>iXWD=+[jHII[b8!焬%rJ GZd!Dlwt.NDJRkڅOa7KNbH1ΧHUcƼQo c$ tQi{ƈg ƾ7zՉ+{-k"s $3i,>NkWeO?tm3>ܨѹu5;0zd"hf|Ri)߰ĭR˥ټٰ^ET3>Y]0V MB*nVivV~]iVGN橴87躥#6'澻83aG8)U| o0R,b }U2%MtΦiϦZ~uS7ralle]V͵N:ں7XֵՈ!Luix8M;&,{LdzEq֖ɫAf'-%5^5^3fuѕ_N<. )Qn=xwBL[iK2mI-,4Rhs9|$v.|va&f;,Gͅ}%Z M%| -KL%yfPK -AR=4n2.-org/racob/activeX/ActiveXDispatchEvents.classn@M81iSZZT,PT((% $wlIVpC%x -1kV.aK37;c+бe+X5pWu\q!{KBfX/5<1}ڦEgISoXZc-v ņp6wvv&mu[/:dGC ˖b_w`]ٯ3#;Y1ri -.ÝNSuf{l3</d.{!ڄtvTV)<?f(%e$ Uޮ\sHpF3ȖPO S9LatfGReTCaXHqۻ2 tRe[XA"h!OAGNӜTk#)ѠؠMZ0@'"&HEY1IJw*} )y]'Ԩ9? +c,󑰲.`PsZŽg0b3dib.P*8+~A ǵ'djbxpO : լc'KXj(\PK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t xn=횓ݽ~К:״=5C&E\:OYNi픶sݞ=i_D.-peMoQ#-UWw wf1 }:q$K7뎞3\)^ywgB~_ߓR]"0EtJyql}Oکb:Sίd[CF*ccv|7٬1g{bΰ\t(J]ͣ?׏<ǓT.U%Z Zsg1XtAcy{} $=z6#&2vxE2,槗=it5`K{#1m*eV6hS ݷ9?xANU_4]o5I峆`#%#Ne:&lTtSilW*^#MSf3 RI+3Mxr:խZO]:FUT7w77̪@dxGJ*:%F6W4c-5rzvvάxGB]wqFY ڵLa|Ͷ1ۙ(hL7閦;>G|α<^/} ~Xukmkp|N͝}T1aQ=cqFB^Y,Wz{smb 5Wt.<PIqU7nwi^Wvf~P -kfMU]D[oHW%%5&jY< DDVkE5POvkh*kW3f&]ﱕb"X(dq>ſ$Qnᬛ>1 ԡmގlղUob/^m+/;( %;K XB[³|en&YǖY(HG,2 uDXK %"3hD9EJ:|m1XBACLTF400 c_`Y,Ak'-ml -3XIWadU Vn`m<M|?OOآ/cǗq)\϶ Јb7Va1+0#H<i F4g|yO¤)zk%797=?A-4qۡm0} =؉H{p'S\ك8ŭ{oǖ4PDqG Da?XO<I/'O^BKX!cϒAFRƃ2RN}2HɄ ͗i,\80(c^92`fyV_TybWw;%o ־ζ6Ahj INcԉT|@%ۘ"3<ѳd sE`%l"x:$yËn>B4"\M4p1(V1+;̯uqzɕ/Q8IX]zՉ7G - a Dğ^Mm\rC%6ɍb\M=:V*&pޝC#B1)OSW}F8Rr'Ic̃rABy -q\ʌo5T_rE.LPK -AR=org/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classV[oG6YL @Z=P`b!JؓxkN/S_؇VCyDUT"U*Zͮ;R,kg̹|9gf 28# Gp뛃8A*qxBIHG: 13 p!7\ -@#dJ;b4vSaqa~ :7V[Y <h"Y.;) Z=Z -}N()챘gX*21!ĭB2DzҢU(f͌XltmEǰL/.y#@VB٤0ǨШzުa{cIE)Gό'M8)X* !s6)}sT2MA s߰KK)#R>6-Xe)Pyռ3z-_,`oȺiϩPLf`B&+hlw]CPTq%,ݚrlﲹ@n2C$ -m -v2_%MBX"mҲK1%Rdq79-fMTA0`^d52^4r'srz\h%Y9A9n6U2cYʹzjK4\3g'lwkLhVz~Oe裬VńaK2sdN9VXprI%i(!|$-R%rJh)^*ᑫʂ%!wٴo(Ik}+7 -ލt˕I1Y;;x6U<_ QQ<*/FÜ%(zDInZ= 5Vk<5RINr|~4r=Jl:IA}J(-c=90qwB腽3+ߢ\52tIB7L7X)N oZA\8*ltKϐ.lS=k'@OwTY0U/!+PYGoixsmZA4c9Ѝ ڍ&>\$6VSCZJ)YGJ& BNmm --db׃m$mn|TTKn#;*-,:5Œg8s\5>`-ak!IE{}%J0}` # {g6J -|HdMx '6E^hʱ[X -Vt^CSdem*Vq+yojfUGw6#/q -Κv:͈6zhO724!;274*x[[^پv03ᇙ(SI''G8wY\y\@QF)21/1o`i-os}?.?0S+S8n$0E ` ɶcmqHscvƙRc!^G{VL6.Aw">Bl 6Nk@~ƃttнQPK -AR=8n_org/racob/com/Automation.classuOJ@}ӤM=7o ^+<=I%ٕu#Y~%Nb 87;oޛ~}|$A481!F!քn!ʹQM+y$vޑτ̺R8Y\7ښ9aXYY>L焋i/RTҔb6|Ǿ7YNae{c}ل>!ߪ =|[=Pgx܉{֭cƨ#0~ h!3a>PK -ZR=[K org/racob/com/ComException.classR]OAn-EPJ]>&D(eY5..ȋOA(㹳꒘M=3{9̯?~meP4D5F&hy,AV(H4tvZn{5#(d5 -xkVfz~sEP BEuAjm[awtg]7ܲwcvZmjQ -la -m'صcGy5`[j_O\PsN6Aw$w|©3Y?3'KM7Z?)CąvldZK^݃6T31N2ii FE*H -d*}?2J~kx^y<A %* K2$Vwr<& C(xM<P1. Df)EJ5QR,b,ad s^TQÝs񘲩O`f I:'EhSg$}Y:\N,=̥aRW+0KoCX_K1S\N4#U]_M|F kTò֤͜\{`rMhz̕$~*$(?L夳Y嬮V7lqN\hRtItyƮՔׁR3S*kʟRoȪPK -AR=..$org/racob/com/ComFailException.classoPƿ -Pݜ9 &i$tCWK@Mig[tOM|wc?d6}(1$==={ʏ?_x2pee.K@`#t'v:vL@02hbK[=~8)PzxNPZl -S;xcN]l}&9M* C?iSF_ԲO"+΃l'pMoff]6v3R >o5#Q -e`imn'GO[٧@h+vh@Źjkrdj~9G%lXvY,M/XRDES:J1ez+Yc/2iYfbm%U(:<̠H28fl-ž!T^UQ̓8\F]9NQQF7"vS7,ѩێRUc(ý%鸙ҹ(#vVdΪtnΏ:C[RORK4WAR0w|K^:ߒ=PK -ZR=3org/racob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++ٌm<Up[N-9۱k%9.^t@wvrr*_"Io-Һla߶+Ǣ/ܶg"7^7&\!HIy~|P\";L"ɍ]ָUd -ݺ6*ُ! {X-sP -ϺU`ݶ9EW;ꡒx IH1´x$^_48\TlgF.-O\#Ht=kkI^M1CZ|Ԧoy -o%c-m$ۦ]s8,O ;?6,F?^sv;oWnZ-g]ԻIU{{CdxgNGmn]$З<iH"áaKLKuh%+9V 5yOy2s)e"<J0a 5!~cstJѦ#.E3r9ľvL4x;p +tц:j B5tdždc37"i}<0$9;D>VNZE.iEȴ0Ҟ %"# F&.Ӻ -~#A0BbMu { L;}9Ɵd@>5k|)uT C5>;iED7 (4ʔӥ1QFE h6"@n4 NjfJZCܹ;rxDyN|O}g ; G㗈&@ 2D#4륅)(H/PK -ZR=ך[Pworg/racob/com/Currency.classuSRQ=7ې0,$F!P0U`J| -L&.~C*MJ*?ʲ0!}9}?LI qLD%c4WuPpSn)N *&:pWߓ1y)R0%6VE$JnVCo~Y[l޶ʷ" p2se K,TY&E]f;<fl2 mux^l8*#KC<"au !iaI`2EjYA-QT#mÔfInpvmWE2WE^ry<WUnn!dW1dv.U1 0tmK^fXUqU!CmYenw ao0>U, !n[;ںsr4F]#̪cyXP(ڇmߗlߠwW**1^|ə|sS"&zAJi 1(T7hӵw| ӗ/яDV!VC -JwX}C P!Mj&y8a<{Nؒcˑi |)c8C9N{| ʑ=v"PGS5G<$u'G -7g=< ,?b&__<IR*3u(ut0n6[Q"yhi?/D?hf:b5:?#FPlse J]Zw=D[I8AOEӴ!oETS2@jF!z5ǼI}/no4qD8T ؖzJ -6ɦeDwPK -AR=7X!org/racob/com/DateUtilities.class}TMsU=/I'C$!!g(*H$p`%b|iNwظqa$%U_OqEq^O&z}{νQ6>(.1Fwc|2R2ӧfjc~(ຉ/EK6#׃( Jx3^- -ilƞ $0hAWT3NZ"UNmUj@{MGTvtVlVVF2&׃0 Wm2F1B0r+P@_2dnȆaBU5> 60YJcU 9 $O Қ(E1L 2p⌹Z`7ltp?G82k0T HS:#OFQQ/ ]]M&S:n;86,pE{|@y_ 8+݈ZF 1UWRN^fo24 SW-ˬ)ΦNOǏ54~_qS|v06O5Xv!~sI1;Nr;8_Ez<н=vaz2LL!0~$0c[{Fg!?mMULvิO//as7bE<qfșd!b{^= -,}IoC|j/po?v0&f.S,@\+fg/ir&:XYQyR 'I-jO1?4nSa_PK -AR=:+s%org/racob/com/DateUtilitiesTest.classURG=]/+,$1YAƎM6(`%28Aj$ ʂVPT!Uyʳ (S?ŕ-fvzNw=;OFBGj{4tW>?3p :xy O t,*XF4,3>t=7xm'7"$\O4yBxNyeZg0~yQ:+yQ ғ{ 6N'%VŒWeL_+vE)4E^yk!èJ ʮ^yu^]b*\aX (\y蜺obc Z4<5ŗ&B30 -) R>ÍЖZY*)u2jJoM>"7X3Ǻ /-eAj^% &^ba/ʒ:-JWj3=~`:.%Va*cgp #p}A'yUIQE^ř~x򲣓 aKfNNAR*L4xR \-lbN$ը vL>? -Ȗ}HGD腏ZD^K٠t8 /qAU#v6UZUp$]d#Pn0j8N+fFs>+z{4Lhf CSzGwn}Hc+M3MMzP}MDxW!=nU`:ю<X͐4"*w'dE̢t]-"["70y,O"9bH4q-?0~dM u?J%cT̒-9ܡ?{!wp(qBL܇ak1f0PK -ZR=spm@bHorg/racob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΙ{o~V?W@;~(<K?c#? y?;')"A'|s/KB~_^^~ ZJk^#m hAhᢅ@ nZxzK*O sSp`_:o'@*|A,zKY.eB@(hՅ-JU>X&Ж%Fi\rɧ -)@D.;IMWJSҊ]Wȥ2k T^pQwWp綍}jtzw^)' -46й-٣kڔ͍I)B?"]CT&UX4 I;mS*#LsδL )6R,h\OH*;Q`NzR8TU <$=DN -r\#hij xG -rLp}9SHDRxi뤜g -rnD_, !Bϗ7ݵ]韞@,Ʈ5i*UD6E]TiPJ}F&,t0lH19ǡ-ɽJE*, m/mm̂B].H9!ĉҳ"cTf*{7sEfRCa"kCZ-%NuFq^&;r[! 3le,bqu•g^ !1'鮋Qr$40 $V*6lflwF֢6 %N--t;DV!$2dw%1lAgɑFuL r/uNVU_qJXHعb]F`;[E`zAS i5;$ggA@:^C̑qękXU.ݹ&'g0 3N a'R{[ʉ^ ', @'_XN0)&pA||2JV6Ь3nD.|V`x~ 0{7'ۚO4ʥp2gI2?7yI9޹u8L ]8Jr fe}/֚I@gs;m~ F2So߷0\厅b wB& 5ZJwn"+!E_VjE-"\] @@dRK4HxK "NˣR37:9.g -ݻhfY S-dVG3BTJ^d:R&*OycTG脔傜H[ ԳT2GTNN8CxT`\ dԐj2o-|>ʨ]4 cI-& -RAֹoe̖]L2+dzi7{d LINR3ҥ\0pK$DiZ!Pm^Z3C#x`=tx笻ԅ ^1MT!HEkp! ,8/t!=sU& =I}/%`{[7kM[WBԡt*F|gZYxMnB*ۄQC?ˮ bwȇ7C;?lX:?lMklյy:lk۝wэt3LTi&l j= <; *@= -?Wm,݉][jszN -r; 5wk0xw?T`0QiA>X2Ke2X R1Zۆz5]^v - -]46u }Co=C"ʥ9PZn,B%N3ܨl-(B 1N s7܃0f`GWdTTiQV:Õp% SF]eH]V[@3{VuP- l%xU^9 5KIUXҁ.⠋@V65:Œ2֘VKA6g*\n?FN&e05*3)&Bi!n -73ݜDhl]*A C1x#[`)ӉU[ Uո0/D;t<Gq0> f&b+ sYe\wTfu/q23іْ7İ;왁%4HH+b7s0 CAYi65AMaMTjpnjAѪ%`hՄPg"TP@ hG,9:d-XnV̳l޴ѣ8P: AM'SejL-\ede.C(s6n%w{_׊#>A!7o޼L8>㧣Mơduu\R3pC؄UlFЙyr\{/ITL<+17߫ hxb |l޿z0q}S'QK Ԟa؇<1YD#)A(5Rţpo"<Ex<x#[i ik5.YNADa}A 5P -JM xԷpQ@Eg# tyћ#Lt3ZBȋd~׭1o[ʘVblLߪTGn~PR9o5| M<바%63ςKP5yPXga5:rA>Aw0@^f -r F8WҪUJ=S#ӻ|_<:AwXGʲWhڝX3kPCI=aT֩s(gr(g2Z knhF&gI3 {F5pđ8RGjHM!?)3C>¶?c*\iJt -E+nSMqGqGqG1DZk^ -<@`'B<u|j#q6Ƒ8rGnm Oa?~v02@?X WXASƈj].tp: ܅Bw@kV8seh5"N#(X -b#(h{ڽ& -~QSQ02; -TnBmb?m#Q$z~& -jNjYF]41|ܣg,`l4!=Hlt"QQ02(hB|E-`dQЄDMԐ+ ->`#ɅWЅWm|Gc؇Zk` -f4IwUB t7<,"jQm)I1=,)xDcHVݦ4繴eBu<P2SfB>맯=ƕaJmֆp:],m|*I#Un8ތڽTƫnH?*2R@mF@ʏQxiKIrˣp)0glZ&]r'GQfdey/Μ5cʺ 0)߂ʷGmKrEx)-F{PtI@<]bl?C眄 Le\jR:JE @"Z/2&&PXx"|!\7dcx -SBZ/38HHMXF yOJ8qRj ZE&Ex<Ԅ]!X)6.iI%&7p1X#."|2RFH҈?3bs1$d59'Ee4$&-BHVu9"eeU0ԋW"Rl۠߰ :<%Ex2BOVMXBk yOXeKj¼ 1oy)LZM9ՄqF{_ĵO38i5# -G)2sv9~;o#3Fa/_0~R/{-FY+$hYZ?^F퇩|-_®u%}VĠeJWPUzFVbiZ泰>پtw{tcd~t`$ A8?V QhL:U$gPK -ZR=g{ "org/racob/com/DispatchEvents.classVkSU~6 p!4X*T*P(*HMr twåV:8ՙӆZf|4@q89?8~X&Ƥ)!]m\QCW$k~`Vu=żP`f, ->~,aY`Ҋ[~¤/T>P1779k[; l-e%c)+0^MeW`'u'ĺ f<厜]dLXiH&&}CKL cQu^kp66:NcY; rd^77#>2\=3ں1l+O/3\_[TܝOIļ6̠qRAJp'# S=DWT`|DX#:ca8q OXV:,sU> 9yY˺qNpEX2" -2*֠3WF ] Cs<;.ul V-;$[ʡ,Ln3>1*^ 4-7dCf0!4tN g4c䳄N0 +W-#bT96#@u2Up.e9xG7Oe{*VAw&y22EGe7,FPt`剢Q%hWq3-=wd -#<u' |49fPZ&&-!!EWLll{@I9)v ^C]@F}N蟦V^<O vT鋲=I‹ ~/ImR:QB jo?WU-I)ľ2D,s@E-v#{<B}}(K{}U -/!+| 5!H#ɑ 6=BpK=Lgh+];={(SU-㺀zZ)ww(w1i ->Rj>2>G_ɗ2CH9-`R -IUt/2S`PW\?# ]YTI>NQv\yk -囧(;M 0SÇ71*;@HohFFel&3h dRс HRra-}oPK -AR=L4M4 &org/racob/com/DispatchIdentifier.classWwG`0j5 Lz-ckfdBd!@,{yM/y9y'H5R ?cYs%qNs,ܽ3{gvg1}Ǻه^1gl' -Ly~;-*Z\fY#3cF)@#~ 8$̮뺞 -/I5Ζ7B1b!Wu8Lȿl؂\-ufG7؏Ӳl?g+aӰp*259W~hy5GH^ٴo eY5,ӭ#6o-l,#~(Kԯf -0]a.z*Dv56(c1.g_%c{2\ң9Zni#i?D;^,ԺkncI -ruCYCaع(;uP"{PMGmrkLF%e=_3;rLV9O~ HuN|։_~FzBCPg:d oTU H.jyg%]#iUԛ<8ux=6?ኹ>٦4i -kQ?`[R$K$\<8F:g~5ÎN#mn<gGCDmWl RFloTlˍlD1WAζWJ(xf<yOCΞ>:Џ;48[679FB;1o4" tЉs2mg ʥ{ g=Vl[*jBdS|$.9V燫BebP8l/k bV:W*V}QeZ(:SvO/MᩕSabXmɿ&d=l . /"^ /ˈ+Wīkă@xx xf[ۈowww &"CG>@|>D|>B|>F|>A|>El&!S|a؇{8cgq|>~ |#>_ .S2qD\%k3eGLj ~~ig爟_ ~~eW׈_o]=ϷًOC?0Jy?bJbPK -AR=Yo-h)org/racob/com/DispatchNullProgramId.classTN@=lR,P$Q&$+!YѶig<M|G1)\tj܏sϹ~3;(`32Q*sʽ 7 `Ƣ%,,[Xa?ܖ n+<>? S*<n;sX& U7Umˤɵ -X5b7H%'CodlNx_s/QëXF e%'rGh'DF+~M-UD5Wx3H3j4'J[1 ba{+&1lc>SѺیvNDp*tMc&`8\YO6%JoªCota_(ca]C,¦>q; vwGt0L2c=ا=F+F:%I SV4aRy{ф<Af -"ҷ3sei0h&ˣ'+zNp|y` ]"K}V̋3dsNBG#P4OSXSM`2GRe]# )j(uRv anv3 ow6YӅPK -AR=+vK!org/racob/com/DispatchProxy.class}R[OA]X ([xn[ /&<nvL ?xf[(>̜3ws?PC̓ -X+><<GCk=ck=q3 Jɰ4ޯjv5Ru= M{X^*ɞGteauV߾{ʰ8Ϩo)(gNuyswEHj4JU Z& -ZPG̺J8p(x"9xqKPD76>_R5ev5CJ;~Mb4F~l4|vN͓HdGxFr:k!,<F.,#'IP3t4!!|1K?meE 30.q,z&6ԧ+5*5E95[}覽B[tVPK -AR=&t org/racob/com/DispatchTest.classuON1]\Wo$6 ӆ {6RtC6$f23Lϯkr4KHo[B|BHQ:Yr^i7Ռ*9Hg^pRZ$TŽ_Wӱ}Px)`BoY Z' ǿaw!0 `x PcLY fbn]b1,Ў)_Fí"mEPK -AR=*-org/racob/com/DispatchValidDispatchTest.classRA !B0AbP4UPldqL<Ox,|(˞$rALUzvw -^0xc>~RЅEh -PcY+ܖNwqO} `nڦxI'k0Sm =VB)GV"o)i.ם;m,inٿ$ QAAu>Zֆ+ [lԍ0PLNRG=,nvZ -س/%/V $0;! JDm&Jwʮn옲$ᶇ_T bHCPc;d#‰ iwJaz(P$x_,Vp鶒ˋY"*-͎x`WsI2Ժp mx7(,EjMyYac?W6yɐ$wVbb˫-{{HfT߅O%a2 &-/P</ ;˰*bRf W#*?~ԖbBR dPrfو'h&[04s'`Y_ud՚cCcu|M+&R;PW -+P+9['m(GAiKQ2|ixxDF=cRgZ>E/S5fP ~ -t M1E\䋑wbH$_~"$%t5eҴI:[qPK -AR=a5!org/racob/com/Documentation.classQn@}8q )IC P'$BT¡(J\9^:~PG!fmٙ޼`UDOTU -m ,<g0C> )?né{G~8}PH/)f"Ҟ c5f` #? o;r|ubEmNz<Wu -?ch d4u#ɱɹۗb.˜Ǿ iTu"x7wYп]$t"'voe6PQR eXui|*mz2^DMRVS,'ә*u.`4o`jz 4_ӭ C3@LEB*m)%BΔ3Йrәc&n\:U޹A!vҐaneN&y;[%3ɍLJ~InꮝPK -ZR=ZZhorg/racob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4K!?_|D шQs:`m9ޞ}|n805]q NMK~2!xc Odxs2%,0rݨ1 N)h]Lv%]S 3id)v޴LwALfSrkp=gZfR4WZL;9[M5'vfݪWΩmZ0IIvچebX. Zg [ơ1 %Sm -;[wamI dB#*ҨG{ځ.kV)g3o,xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϓڴu}yP7<?N`{3D˭j\̥:[@$%EEKe?\2]5} +{#0AEq  -Gh(F Qccjcρ{H -cph YFjowOH*B'8;AS!_ -_R`ʛ?L#a4L> 6#|6a6n'~B>Ew,Jsf@-QQMe{6x) % ?ARs{JyAK9j6-}TNPK -ZR=қ%y org/racob/com/FuncDesc.class}T[sV^"_8!&\mbH ز 0(Lm)#iԇv?l+췻9ߑ-x) 42{d^44ɴȴɼJ xj.U.7"5 -d[װܶQ<`aVZ$S<,^VRYeY /[x\QLJVƞZzMlJ.NRKmNkyT*rO9X[ +7Nr;5,o +TSKT]uU5QqIIL^%Z 5(5eoLf{k:0 ѵN~D#=hAp7c;v7I>Jtq?Q]=\DL+=hg:q ~ku ->unBQ -mb}Ϋ]ˬӤNRkNﻃ}UVb:Wtc2(cmxmt"*, LVѠs&WOefR>i~Wtcuԝ.87Qlqb~KJdlC.l -P{'"o?Pڱ3"ڰ%d՟_~9Ë/%Y&e8ˈV|xU>x݇!7[op;F_$غwd+j^|RW|>B/S>NFWFWG .fc#\| 1Ǐ )f#HFCiRl5x8 l&v  `0F&0ƌ21F3G&GOq,_/8۴iE֌0.`' 7C߅AV(i(9$? %Bɩ q( R9{Jw7#i-#Gb;,ϳWnH#`#FM%y" jlgN"Ttd=PK -AR=8uorg/racob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;;?}`'`xc_-XƊ:HeU)o"Xc Xԑ+q#MN5(]嵧>t? ?kEï Z6,W: C)]Lm:VKS2 ChKaJ1+5I9a P Fa%ڮud/, -J)Xfh=fMXzeWY<[ҔLQ^J!m)yJ(DDP)Bju P+rY40to"wD];mU^[OO$Z(7Y /L]qrr+3X߶IL:LJ7, R#|q) 9<5a楣G9`2](Pa{(9T=wT {Ȅ ȴc /8~u=9*seۭZ'1gM'eWiv - [nةM*K8at4GݹH=V鮋l5h T(E9]bkZ]o%T Mf7$a\1"Z sKEwrr32FIyL<V=@0hڍo4 i!3` <IZu!Q|J;^7FSW@I(M@X{^{@>pHn3 -CBɛ#y 8"&&h;UBu}YOɿQǛ 7ҽըíNB#c{'@5"/=d9;eAO;u -x3OX$}UīSt\{(5Q"]/e,# z5 0gK2{4!*Fn{aGN1ZDN1Q:$u4VIPK -ZR=<. #org/racob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg\L-d-w#w6)8[ےEk2&CE,pJױ rS *,vz&07뗒mJ/>k#[,>-6 !5ႆhe:%aNmr'PP#<fha""ňN"ЃN]c\&5LaZS<S/hC?miyU2e䠙uױr` Kl[{b\J7LSfhO5YwTV'yRrᆮ*2w?a2\Q[s'>UM8HEY_l*JѴ&dAs1h2Cya_A !|f%y^zYȖ+I$}hCN(t]^/d%Ag>7%~cҪDA1\Bwr8!QxuNC\?k#QG(Jsj};PwpfZOtA?!泻h I/A5!TEr8!HZXLk0*FޮZخDgݯ2nPK -ZR=ʼn8 .org/racob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#@!!tf:&=COOBnbKf@I)*׮XErmuϘMe{޹⦅~Q8_ݸ \ C^\F-F«aDp%B&!c - -Q=qL`(&L*0CH`Ia~!dPz;e( -(5 uI]ǰ\zLw13U=vB35ǐ2w I8ZkInk`װǾ1frmA\ӦSR-cXEr + lH_ݜcykzB#tWw'"k -RRPOÝ9u#g bكĄ/^U6M=mN*-cX"gŠe;=9W=:}ZZ_#XȀYRjݮ]`k|E )"*]-1٫eb{2bg显tk9 ː9ml'Ep@t70C‹w=gI-W=SzRl75ouH:m\T}WլFތ-܊m>;(KLlT?Ion 4f"c uf$صUUֲJW)>eqI1P,e3@`piϠxa:vZV4T%۳'ͫe"ƴxFeRjuuKwԘؤg=j3.E곪Tcvp :]<!53D{-L&i1϶U<V:_>, E/Z=Mkl>Kd'{2o--~6/s+4,+Ϗk8Ė$=ry -GJd5JEWe/6V.c~tuF^xZt#vбzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=RZ9l+h@X;RK9|Es4>6i`$JѠYRGץ9lE*Xk<y>Y}mX }Tv"w5V/9?s5 5'NJ`}hH`?q|s6vgۊiD\B'fp,>A?nc_p=MWWǏw$td4!ja͘$+SD=lq6w]xDIn~r z?y@owL0G*s ^e˔˧FpPB'k):D_c4*OPb_8"Юt3 tsp (87S<GAJSBA~bPK -AR=C0org/racob/com/JacobDeadlockTest$TestThread.classT]WE~&KM@TZk"R P45@mR*ԪCölfS?G#c Q٤pby?y?f~7L1ku3 ´Yi& ,,&pK&M +ZᖾCMV-YXp;pD]# r[u*-_na -ti<tnk҆@GQ=ymGM2!WmeGEUiUd=Y+~PogJ~%sKs<G‘4iE]PZ;et|,330pYaVT.7ZqM'Lho`8g#Q1*0ۖr2tjiMlxtͱĮob#Ra6>,P[#HU8^e^aiWNwd6>ø@ͯ}e m%k&uT)VHL|aIobPuZMUɌs'TeܿoXɃ<1xy֯dƬopӭg,=Dʪc"~6Ä dJ PJt8fYk/<>sQwWc g\RmvsMJbC8C{9{0=t<><98э "uZHӎqEȱӱu1z"BY6o#<ǩ}t&&&M$qt9Iqnrѳi='y -_M'KiӵI -\%ibI\'"f9~SX<b!kbXel6f0@LLZn];Ebxgkt&WrKje.nLdkcV|9NADh|6(PK -AR=G%org/racob/com/JacobDeadlockTest.classrDƿquдuh 5M!@R -P'Nk7LßVb0W\ -r57N}ށ)843svov׿S, ő{A -bAEAnC 7\ IlcXò+ 5jM4zqL`oZR[%т1nXfg6hl9zmz5cH {,*Ae{FV$eb2mխNV2lWv`1G EOXU]f+ל99رʽ#g֖OXN8aqG$u`Ftv˵ j}㡑 g7[FQfC]4\c%UUK4qLc -td1#|+{.I3:J):ְNejQe7Lﰠ -6ds[ 1m#73Faeۖo]먢.腗d)pv!*d) -$Yt:l#FZ*ْ<Hm^\ؐnU-?_̱<lӥM7$0=EJuOJk||bb/ *}^9rVЪ}_ l2Azz/BE"!`1r.S>"d#)$x^ϻOR.{''rJ4$+' K_'Nqc95+Iu;Fȷգ,8WsjZTI%>r/NۇZ.W1\ 'ơu1܏ۇTZ"J NRt{X k?qŜAc6[a&yO籪~{c"pHE#kTgPư.H;;Puf3PK -AR=o\"org/racob/com/JacobException.class}MKBAi}a2n 7AfYv !vm?Z'sRDbΜs={׏g5,'QJ!rp$J.X!z|K!' f!mK%:/ R'a96c޵tVڱM[oZzdPg(V7|!Wzfr;0w,q(OvnGO'r i0ǰR ߆H|=b QST#AAUI:f(րQͳGDBQbn`F70KYz"CK N RDuI;!4QM AG LPK -AR=SW#org/racob/com/JacobObjectTest.class}R]OQ=nY|hwU4fFHnfğhGbKJ>̝33gfv.W6f:۸cj#"fcƪٸE<0YxPx##2C~_Ü'#E|<eO<lX3ȄaSqǍy|7P]>G"Ї"ѻ ^_했"@@Pe,yď,<qPGaܐG@2D̰vɤ`O-<sM 6C)ns-Зh2w7{<'M]gE䥈TjYSwi!뉨ͰUmp]J*BAm|+u1JfAT*'4`+ -Kkqqeu9t3<\ҌI -/,YI:YQ!MdIkSLF -HP`dЭ!4+Q!A(^vgHFPK -AR= w$org/racob/com/JacobReleaseInfo.classUmSU~. eY) - Z%U[m(Pӆ+n6t鲛nU} ̨ߜ?x&Rܗy99w `s*{HXPUЅPAK2fEjx$cMy -U6)kØ%m1]N!GMBA-T װ-pn_;Ԓfy1R,h'jfm}kw1./ezҶzmhf@2Y@,LE /W -Y - ٺfnh!uc{b ќ픒ۅn$7gS\NB_u2w<k'RKŰٕs=z fAB9\;8Cd+^7'i%N唠S15$۩w:_ͺpJޮ8:_4"Nb.|WOBQ鼔Y./0`S. %O`0'߅e4kO `5k‹VgG+.=nj b6N,. kwkuŅN*¤8IPafo-!UoDPqEX2bp@ - EXdY*|ݨ -1%<W P~T7RS=@_$޳z1\<ӘMjk1C<vo6vXZ0 Dn.݇q3OMT(YF~z2pi5z!\E7DW<Ղod+^용MPɘtBYE3AOئOL@fZ)ih&i݁:iMdILM#W>dƐoT1>W1&NBV9F3BM^{ѵVT*{&ýU7 Oփ`|j׸pab _ޫ*F_Q7!EqaI-Bޡq)>yc>;HE\&FIk$L/ >3?ngQzuQS*~ Uqg~Ev/O[F7Vhȧ QVm"ڡ2O5co ,|?%B%%y?PK -AR=ᚹq !org/racob/com/LibraryLoader.classWwg~fwL6C&)41׍B %d7ABR-q;ILfY^[kҋ@ښZ˦(_=?@稧|3d"d}{-+vJqQ(tLDBZ(&1%>0qB|fdX-Q0}pbl8XO)(oo*oGw/= -Aߋ!<*xL -/3 -Bœ -*xJlVX %=(AKOꝖnOuxiO}A^xV(95?SwwPB& ߵsgPwW1m+!2*!FU´',CxtkTwMAoHؖpܩNWO9)g3aN{:ie, ڌdJ5HK3~;;kg:6IpG43f툑qnOsшR-`t궢Gzv2<gD2#'9ݛPSvύKm;J#qS3I}η!9x ޖP=ex]cp]#BܲV?Ueߵø&LGt7#~:AeJU|TyzfHRxQ98%Pŏ2Q -.1^eX*~c*^l#`*~ o^wN H<mYqQ7oTs,X/^כɚ}q4 VC_Wl00r:qѻDtUo .!hBݭn[R[(T䄺2_C%yq -:Xy1y1ՙeuOr^$>Ю* iU?9TqYh,`;~_RF5]orث% -a˚>\k6ZwȊ3&v2$l-"^yI:Z>1 7Kﱪi=t\2f [am{Qca=fo@ߨ_Μz[ֈz+CI9v&reܜaՎbaa XoKo9>ڐ6&SץaYxx/(X R+tİ =c ؓw -}5܌߻헛̸/[žpNn/OL;mODa+킄.R!TL]G'":FzwHsEtHrw9\%Z/A|wC0_5>|k9/=0A/#t‰jDrؐGP[s(O/!*iBu,acc HRcS]Է^EmV!تUD*/nѶP?V~rck{-4QU:3Zvb+d~ݪ>A@M/վ6"c\4 {Q}G_dbLs/*XQq;,ykt;mx}(ex}x -43s|Oe^#.u +{|87q R:>|Z! dT~ -Ӌѳ>b8Y,N IwR~HTG!|p t qH S0vT~2,㈌GQ:H]נqPCx= Pw/Ύ|og!2~4ik= D%c`30&/{+滵Ojy jlsYlڃmxQD[q3O$E_0Đ1f_yO/b~QDq+NnWqV!| Up!~DPK -AR=nis%org/racob/com/LibraryLoaderTest.classT][D~$ph嫩u)+PZjإEQg N~^^}x&Zx\̙9900VQfWr$gj20 Y/ 㞆9uc^ǂcI2ycYc _3u}7М)1d`]_e!y#Mt9Uf2\S '/nYrydB"fF$Su#D%!C7}Hz<oQ5X]fٻ/x)<C+*tK.#% -d*bGC0 _Ia0 x誻zPȫM bHmb WN#; =C}V[ n4gVL<oL<EQM<CIÆo}W%!_OpᡉM|g{ 1AU*!GP-r^QRV⽥"]:?p&|; -E)vƫ eG7lS/*b53'e*J5uunLZؖt@zΆb$CQ|z}5QD|.rv*-9_FN['0ۼ(u5O!YtCA;P'<T6,͜cNɜGvb[H)*DvW6=\ϱ1Rg0$2Vy͑6eԜzNo^Ӧ -np$Szm?74o^:FK 1càiv EjoĿy/j"m˚5\ި=QC+dl[ T -9@l7-!A`5щ.z$`yz~Lٌ Od3MD~0ȷ-QiNw8%KeEZe>k-J_X%LRjBVm!Q>ǮԮnr_K5ЊZwIC `g4&PK -ZR=Ldorg/racob/com/MainSTA.classm -@gML4_+ ;0`"XEhΟ,|JD]v>f`@6J6k(cyvgE0'jʾDz)=B_ -i+"T72^,PgFS/E0%6 _ -dd۬;/@{]fRD i}PK -AR=EF5+org/racob/com/NotImplementedException.classP=KA}h"6&H8Do.K\ { AK K+8w "̼y;abV  TciFJGgc 厎b+";\ޞ^/7m;ޅn ;FE$T<<Ks*35O$8/2kULhzL]#|=v}m{,\rf8oT:&n 8C=7$`DX"ֿ^?AD? #<OQĵL 6)quRvM5> -*SZYPK -ZR=5h.porg/racob/com/Parameter.classuR]OA=eiPȇ`;(+UQECBBeZ2_&nL|/26(Їs3<`˨`CM<RŖ' v(N8P e8x`ɐ2qP>&2 -Őa"qvpLd޲ڱ>0^yGsQ<cяz~?:""LhW e_!vරUtDveO{ANWC=J졝C3wSI H.;iWwizO8KS$RHVb\JRhwh_]z7A4T~7nԃIU<L)VPW0Y ]'W0~$ԧ>B]]-u*Ygδj6 =o),SؼapxIQb -7%,(!شLjd5 I*)X훴&ߟo")GLwʓ;媠;֝rNy+NsueTս Ep^21^1<yH;)G^1Wf 5#\ȓ2<yHnN1\̓u=uPK -ZR=OR[org/racob/com/Pointer.classmn0?7icc [DA DܹRgJ,{nv@\< UHϟ>OOL {8`=Ju4Lǂa/xOG"{G )[4ɐgKgr$x8oRȞ2E:IN~1gx+g8sjcy|_\Oz|<c 0 ͳXJ}s`~]40a/Ctv[/Cs-UgP::8!"x2\-ͰJ[O/`ZuB?P;nJYEߪb ʚ kf$K֩ӮkT.|kt ;c}lDȒd6V~\-5Z5hUT~zJ`_E+ PK -ZR=zM(org/racob/com/PointerWeakReference.class[KQ'm2M`-at<lOZ+}h*ݰ ̜̞קgș ƣŸ L20-`\)k/*+*.v$Yu=&<.<uF5qU'ϡ&54w$^W'$+m5/+JOeڑ]wÍ3.0۝{ *4? ^kQJ{T#Ygy(}p5X7B32 ZH ) XߢKOAhi$!#o0yg!X8Q(s] x qN2veW؏5aN8t S2:Wh!Gnw ` ur2PK -ZR=ϦF|qorg/racob/com/ROT$1.classmKO@HPvccѭD&&C1u&ߥ5.(me&{>bBkX``Ħ-BK*ra+"OJWLǢdZ)t|ZWpWW?9w3%a2yǏ4;>Ws/"[~7xnDr'=ţ8 h[ z:\q%TqF/P*FD#=4m6PfdBg3,ϸ)ýf&M?Ѣ(^n4J^2RjH}XcЩ1|<̽L c.!7 gXI]TӳTӾ@"vXPK -ZR=org/racob/com/ROT$2.classRJ@=WXg.\ #.a48DK7 - -~%Ds+md`aA (XX̐)I%=z!uۂ!_J7-a2Q L]cC0>!m:nqkg]EdI_\[\[\]\5q)P"eG 4D^Z>WJߩ= -4C|ֺ^@pq&R9uOhF6)=:'"궅, ߲0q!#I-a|-{ѓCyioYiHo<=%l&1B6I ' -"V67'$G~"LR"20Ә,bt([PK -ZR=wN+ org/racob/com/ROT.classW |Wn&% r`h+l͐vv7JnAm=GxQWj=]&ԟJ~{{{s= `䙁-x8!f(kdܦ"'.; -q'^+fSp_/ o,ěBoeܣ‡2N Pq/Nw=^r ӂ~Cbχ|D38`Pi TT㈊+qVI)VU9pQ#*qBb=;>Ê5Zfq[_ V1õf!KCBUnq䭶6tuƢf'913\WpoW6.`;G]5A60VVШ[m%ͱ/!A;n$HԆ@PCsGSegCz*oho>\MZG¾1d,7D;^>*lVԙ @oY~`w(2}]ӮwIGSSļXgNE!#9` C rdqڼ`*<cNZd <F21̶.Z2Mef7adK(Fˎ@$mXiҶLN.ގ .g+aQb0+ePE3caX8v:n|7z_)pP`ЈFKW^-Ჲ}C S -ow[1`هBA_dwS_ayvcװ4|OԻ5n D~ _e|C7-x\Jc-;iEsGtQ?)m<;2GxLÏ ˞T ?rIτOOO_h%. -ְڰMBt wZФa/d^fAqz6|4S>L? _]m*5CtS}:l8pj+[FXF֣QvРm]4dhSWœI&\} <iXi'a_lQY8:zjV4#21#|rzV/69vptMnY, f1یxh%Zc{ -#ⲺlrO"*D@|׸ZY%e*1;mVqdF^*Vk fN{l\@6/} &&,w6,yCBcaT?lZx>@csY7}m*m[x*과N-v7LyN3#qj^Csry>>1/r]!"nI2ճ0s=Q싄&O<"v8, ܁lv?WB'Ņ<ű# 6efuF㐸F518i=yeI)Xp#0غ{9-vSyKe+ì*:<v<A -̺%"9ؒymC7$HȦsuY^oK\N~$Zp=p g&'$M8D 'FI,A~9j=P}\' cK%<f]qEN?|^@ު']y^tD(F;4^ǿn:*Sfr#P $\M-#3Yܣ)g3d`HGi'> BEa,zX<S;;%ܿ0- y80P4eEN`/3!A*%XɅsKɽؔt!H`ee)VL2Y7v庩X0aP6Ђ(ӬE/p##Aܔi$(ű'G=T$)R.,Z7>˨/T%8q\D:.bA5@uey"-Jȸnm(ywfV$5&#Nz]nXɟ:ݐgiKdB,E -yiJ2q I$eE*Nq00k8[;$2N9$ytjWxip͞aBoiJAtiK}U4S!, *hu -Ũl'pֱ6jq ;ⷑlbM3E60=2/+E_əDYxgbxG;7bn˽]DoaG# ³PK -AR=Q5 +org/racob/com/ROT2Test$ROT2TestThread.classVsU\IRrkeA(IZDE r+-4m [ݰpUĻ>0qq2>.ÀIKow}m|ov0dm8%W)'7 -N+8Ar5Yd8jq#vCx'w#jKX) Kr\DKQ -lEg&[OMWD5YrᴙtE])%=c%2v!1;nɃ[eZk6oPYԸҶ]i4<5]R@gt% -ni1\'6$足t:eZF_0f8X:̀BV+P{,pzd| - -#vIgK ԚiWwnl~lF%ZϸZM2|[gr )]#{Z(mQT)pf.E/f!׮hƖIe'c3ef#픒*vSEvt}G.CT@Tiوbf>k8RK*ʸ¨/Up\5qCM/KKT/vF5 1cv MfM[Y-|>T|*n㎊qW'XUth8eyQONТk:[g\*+x5Z5[ϦrzW#%g}zEыEâi,aUkhZ8!"\qWɛ -k1!?[`_1xaefNϥW-E.CdvA4U,v4u,.Ni^‰QO^q;|xzy< 2<o/gb7i3䷠4FJF4h^죞\k0C_(/!0iߵInǞGPF!42p| -)6$P7UXK0|WgH 0D{CCjZ9ih$fڥP!g"*4c7owZ -y@whi E3(c=|w#6=D$Qn^ Ch嶬$3Rɧ݇h1Ċ*c!V0WGXIsu}g;g/ F5 &8&D?bqq/D- {e oWmVyV-V9T;f0 ~Tp ¢1'c Q i445NT=V;³:PK -AR=d45org/racob/com/ROT2Test.classRnQ.?RJu(7.hc$6i\]Ng̠/q]|ƿsZI|s>xqXVpEJa,ǰ*y) - - -}W.ZmnY0iڦ!v"[NW0-vmx"Mt]S'ʈoR wq ipގ,>33(~@OȐ=%L6}y - -Mgv}SRJGT\E -+;CV{FwMWVW'\*(Io!\<CAvèqOH! ¦ew”jˆ:c3V1ӎQϚ۴w].Gc ZDdIvF#9CR#!<褎0 ԷuB]tŒv^"3t皯BTIt_$p@b1Y*$.Bx9lBCrEddŎODjB8m_$9!}704_^ *~PK -AR=` -+org/racob/com/ROT3Test$ROT3TestThread.classVsU$)h*i%zINӥn - -Vuf*"-g|q`&)鍱|{w AtBXtM E}byL>H  /Nyq$|H{1P8BCB6EFw3^^XtfðpNÚaT݊\y2 jV Uma5tMCEU;gr6LM5a #uLۑV[隭鮜ޭ'ec(YVUs4:{vpayleh -,&VT65={<Q#Ii:eQiT 5}Xgj1rL׹M|" gpj -g1TjݶjQ# n3 Еj?[HE2J\VJtf.K<p.f$+ee)^BnCj Zyjm1 u93j"SK6 I۰]\IS3MuDt8K&lf]0$u9-+mq(Sb8"᲌+xW(cK3!RWb;E錟 [TA JHƘ0Z;80LdzRI%Hcr\(5$AJp*D Q&O :Luʑ7"a\Ƨ"9ڧ׌ڠMA#N*ʡ (IϥC'Cojj𕌯qA7 WҘ?AY6)5CQf\'#[Ҙ*Ortۆ&0Wđ1e9+z, -4MwuXK%2+yAbQgSN+pkV4dS;b<C]J0Yiγ"E>F-hF(%æp5)l6 +viꟺKutrp%e \hM/PU%ّ`4xI{Yt ,y -ܡ"7A>[nᖑ2q2I""TfXp{];r )B^laHwBEhITVD'dK7OʅQ&i,_g樯 2#BfkṍI56 iʋ&Q廎Dʚ?#$u`!X[ -A(RZ/~*{hpTO<_vhn(<i -m(~s8 06U9D-?b8H6G;}t`]^>E8Ϊpգv"΢HX/O`]F"`3l6aβ?p3+J~崎R?275b{PX˄҅$-ϽBzR` -b>bx@ƙ -S'AYh -fa^qyeHv즧΂8PK -AR=3org/racob/com/ROT3Test.classS]oP~+2N7tqePG!a3BxNZ~^S5~[ly?}؉BŪ5Q6%lE -tY'pFàV-K8>w]25-ӻԳMPDʹ%oɒmorǔ1LT2qڲL<b:7㚶Ub`&UQ?Sx| PfM)(~Q|_r 3lWuEc5cZݽLkAEy TP ekn퐳0+BL烁yAݾ=g*Ihz2wij'&| E\q:b -&T"fNe mBP\%YZa@@-xO˟׎8#x8F(aFA!棽gc_؛9;BԷ}J DS4Ȑ4`GXHB"H{r'Ol:*IݾCQFe+9Fm/PK -AR=L[ org/racob/com/ROTTest.classWoW]zw<: ciG:%ljgwz'q- (-$))|A6!!!U R;;~R,>=s~qgO`?~Aj8@7>XOB‡W#xZxQa$PY5Ԑ \0p1KqX Q`' Gmj4*.1J))\Q Zq 4<ye >Ẇ>̟JE >gp396HmT !Ӗ*tGEJj֨j~6 9DklG)u;=2"=qM"yxe딥O 9?㚎;(1HK7?oES\`j7rNаށch\nK`";u]c -^{UyLWVz%-$$XVN<L@:8q,s) yL3CFeþkU %yDİSqs#bݮx =piUgp!ZIa5$b_—J_ Ӫ+t:ᖺH=ݴu OVs[Yce^ddԚwa*QI|P7놝 >YMISۖcOْ6/L:-9W>л:vvvpU d6,WXQ˳I|r5a$Ykּr#vQthغ PFrՕaY<.syWZNʒN龣3sRWIvqtTX}yWrY'U-9=גJavXPCADY.n ݖ5J iح^)&=s2c_->VOwlYMI/HZUZL!9nzeU XƓb= JRJeoS?]nMWwi%~s]e5{T*oˎcLdיRBb -&ۿ<Ā<5Cy#dQ_ -v+Q隅)eOޑizr&2;vn+=&V;Uۺ;qp}FW,3+x: nZ3}1OHQLr-iE -X}g -+DeW- /Q.Koa )lԺ93nǚԊ138^RdPfph<H[@Nhz&Д&͗Zc:|mKtx*ZD$WqY~m*QXβ]o3P!Cup@ pcʀ,xMX#Bu+YD!:Y~8-N9rѱ95l+Sij.6s1_"ճ%:\[rS$k8ГmI&;.tb7=з6~@`ʤN#|" S7"CoFǸj^qq!Avv DMk#ݱ:eѴBtØn[ƻcx:n[lC&56`4޳Iۖz\}p?2t6אܼo S[H1jmjChUc6vCc5J&^%κ1=5] ;Hֱ 2s0tGkmJst^,fMGU!luFgثپveYG_6RA)\oL L((Ƥ[4Zͤib43qZЏ`20H0uY a'p_i\G R_90(c ? Ib;ry ) Ρ(.pQDIxψ3pES>p5g<'烒(c%-JџqWWҘa4/U:QzJ'FO qj{bi)bAaêTqZTѝDocϿpscSiJ~͇-,/PmǏ|qAO=A>Gb3pQ1) AS 8/PK -ZR=Ձ*org/racob/com/STA.classeR]OA=.vݖZX -1YiÃn8mM)_l|w&{;sس`cܵU)sOg++aaMlpҽS)xUR~=cHOJ Ӯ톐u(2NF2̹l9{a¶S?'B0dk=}<gQIMJZo -m-qoQ#*<1JUh έZؗx+4o}iml#obǦ6n*Ceٸ&vm<Bai x=.JarXwloH.!o -I29n%@nKJ^<:BzȔϑH`lI+0JEk#dq4i!&zH&-S0kR"MhvIeOB!Ru,GA~$I%oq)Q$&q?+dqB\Gc*G VFT<"{+=;1"F15Ђ|M:ȢY PK -ZR==A org/racob/com/SafeArray.class}V |Wlb6hHK5RɆCS6 ,KXHv*jIkQUiՠj]^xU]K̼73wGy8V}g!,_B DOAÿx7 x*Nt'Y XHhp/v, -X_eK-xۖl`[2z̕cÙBjx$Mtjtcoڥm٢|aJ;djkfM\E&m Y`%,"31"I \VX%蟨G- H[Th*7ґ,UlfyN15FNSE#pVےɶ.YJwOf}|.s*ox{&]"NB~+ͤry NTLYcR<w'(lY͚zGRYgE\8FFOr[PAH9fnP KBaTPB#ɋA]蠦am٦(ן4 -:BRf2 jк\ŔSZńVCRsحn%v-TZJdTUTi wh|w\}Mxp\M͐Jsj*a6KzpO3zգ6ph= vqř95 -ͩЭHITI }uaժp.HTW\ܕ8Vn ;&iZXk’g&Π-G-kn+ 9L3|!c&-mZ)_+e -Lr0T(:iH~ڈNfR[@)6bt9.!`ѭ767EF1<sbLB*%CÈ; U/jS<3Az_=gNQgI"&b҉5z$G>kBŊ7m[8읗R 8XGn[2č]"xXH񶱘i|XJ0Tʗ_5%kœWg,$ބvΞ5~&{~9B%'VP6*):ę6mmd~ij\0n/ga0ނa| _X^vO ̶k, Ȇ=<܎;hDjNuMdGd -a+dұ Uc -N,}2&!#S #JwOga/4.{y(vrĹl$,>WϥuM<8!gU!dUCm糃BЀ'雂^T5\˳&K:K4fZ)%pO(<]cS,Y&}>o^T-Zb:5>ܘnVwh5&13l/]V%؈Z\S)F -)LVh 5RAt1Gjw}qN.=ی.]^\zyjU+yX!Ux/Iwc59:_㜻᳎{ !W6wQvWNl$%Ƣkg&XEjR\& RBL1Nx=x`/ ^>būt;v ^8 8!MNq7Й2әܢ܊m -nWAGcpL1'|f| ݷbIp;oK'o|^.KR?fBsKxguxe[ -W*JV&jF񵊯|= GWGWD]^w - o+6%VM߁)S]z{V/x@o8> ~@o+~PCދ+~DGnh~v ~PR<*IOc ->}Vg?y|A_|X# =ׂ7ŷ~>~ <i*|M5Bfiwڋ:}_>шo -u+)i=~ GHmNS , S{f7[}֡awo?&WӎRNÂN@$:`Qpei1j*b)ƣ-&@{]p+k㨳סɾγ{{qi76jn'>{#=A<da{ {3NNIALBj1?G]ȃ5Oif巈] %Eɂ -#@%7 c/qKw -W4UkZ}48n~Ӵ%~c4iJ)w騂e+cŠiz(ʆ~/x?PK -ZR=X#8org/racob/com/TypeInfo.classXwGkey8e'qER -%ZZ9ۮRZU"INBiʻ-}(PZh U>8;F㍝sg{H#oÿ~1 -__ykD~CD^'7;}woDDDwr>5y++K7v:bx0[KvHzdY*:G|F[2$@Bv &alH1JS;N$Yl}P GLFrI/-붩b*҉K -d6mnQ^݂ Af",RzS *&ֹ0ف|&,sYİ)f -i/Cqc(g=s*6E@0zS`z*fDNʔIgy8bT]7ؚ +k1nDzU@ĠA {V(XKi{颎%pP3z42<rqxܦC-kȘ0(c6z1XeZٶrib_7#d\ԗ5޷xޟ!~ *zԟy=o;# Gto>_R֩ -ex|x?&e ǫz)Ŧ (8c(b wJPu˔y9,Xj^VJچN77NI^@1viᵺSm7j^Uq[Z#`ԩלvGy= -ܖ46c  =<b͚7+nvV.%\uU#̙5 llU[jseqXD oFכ5ZR gRvq9۱Ž&[*<l AW -E"^.]N.b0D^nΌ3T1xUWF_[UɰY[ې42 cu2  -Oꕆ͸UM})O+LFy"kX*kn 0q y.,ѽWl~s9q`G-[ (p*dIޠ8>z?2^jnVlD_VrBS4QNTh49KEM"5 -SpI[*< Ϩ,<O - *V2wT -$$0yU?9f 9&xq6LtvKި ؏=8 {>fG(܄}~?x~ #opS?* -Vċ |;;qğ?)O!KR~T{${%{G!^A 8xYGR<J'cJ$yɞ% ~E%ԿԿԿq' -!ğIğxEOI$\Cx>rp?EBl_|]Yfs*>TJ@FR0JJ%].DRhD Tb cD Tb ohϳdς09݉L`oW`bO>܅?5Ћ."(ٯJV}wa{wlGՈc"qR"0[zO+˜P*Nc@尬\ T*|-@y I@@o* TyT@'=GeϏoVVF V|_lG[k `Οqw?{zWu!''4mhxFMm)y/|]LS7wѵM;ؙ+h*~Ĭ|^,G[=%m~~r~[F7-G6O0{usW1ͽ??PK -ZR=|QHorg/racob/com/TypeLib.classT]se~^nI`BP+llШ6JHגrㅳ![ܖfǭ//LigpFs^H`|9yyߗ tT,|I차Up[%m;hbŁC_ 0v7fnv* Du<:fhXW̓CIQ9H.F뎱WޭǸ@7Rwfo:RNoK j;H뛽3ļ:vvmgʍݴ c֠_C+ŜmYyԷ5s`#޷6upG{Rjxj5#⪜Y=sD"HU&}F-$-=TQ..:…"B]˅b6/4I޹ȹ5.Pv'㙞 B3,ϥPl@$ S˩O5R0J|rU4dyhjx) d5"b)`` :5RpnSa 7~މ9Dqww/m!ZaMT,ROO_ iʿJ6mFe_:UT[$&aI=;BH>BXOGGQ=!&ɼK!JLT$i!]y2c| ?[8$-!,-f֊Dg'IgPZǚ?O͕y"ʲ .ec\h>{!e%E%frOWIh"曣2}qʺuZ"OC_ -пO4O%&5B'⣀Ùb=ΡśűOb'5@J僖 :qn6m 8NܱYBޓ%fv^5yrB{N^\ssPK -ZR= -Eeorg/racob/com/VarDesc.classu[OAϴ[zaR -xk+P@T[dv[ٖ.g?HL|0>lfho ۠ RF KLB\ӥS` `Ln=իX ;\QR\UZYP -)nedf5E+ 92HSՠ\YdEsû]Wu5f$zY"P 2=PIJ‡ל7CifcӒz-mj9M7"X-jFɔ )F+&3yJ'/gu R3֮fjfbuvdžU2wZN-vK* }f[iEjwLޮY 7[zhԭ# &S/Åʠi|X}ѩ9 ^s6!*: [ū5 Nyժg -ssW`WO~x1z0,r<|q8 '8Fq< /"x 9^A^C!? rrP~r<A~7=r!݆g83Ɯ~?׮ ^`z -p)Cp}ϳ Tv;.;mhF^ -^{n2zLAw1^{:7YNM~NM~FPK -AR=#H*3org/racob/com/Variant.classZ |UүI=&LBd@0QP@B I$d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhUM U c:RňyJ:KnU1CxqF0aCal~C1x0|/ 3[j7/QR `;sL<~ Pr63 - .dUK h[ū5,^~q\uxk5Ah npkxy7qܢL yW0z gkI9lU׬IJ ~lqެ-~ܪf hxn . phxiH$i]4|Pp5|HÇ5pP=q^ 9>G4|UOLǓSi3,>ˏT|A\Zߌ0>Zź- #hA_|Ƣԁƥ5j+뛨iHD?6!&H,PbBkb6Sء -'eU ]yX_k𐍐/p9)աTSݛHZ{u'h[jm|x,:!Obp(ܔVHZܺ*&#RHwH#/ŴdZ2E;eHR%H4JRh / -&u*$)]U<A+kZrFK*+5,n]&ED$97NY rg_*&4+frǗJD֐l2 BkH47hN)pMPE)n251>C[VbeAY<w깂f7>/VFv -U"Q(3-ʪ/VTUjVUZSU˪ZSe*k2:)֙V-fdJVIR!vS08[!qKҖzrZF"uqt\PE3]X.wQ$GؗtMumBgS.%BaF)qj0Kf1sz0tHݸWFX̍5$RNEB8;ֻÉP78W1%On Z"+ -EzzN"$$N2Mq*$#ad -,KnΥ@vm]ݻ$ւ_gUv -GJb6PBCwUi4,̞H:Č"ZTprIg-͒ ,V!@bq|UEjXuN,;̱Zۙmo3]&F[@pO<FhMD"WQê"mR}T"f~xbĞn6BʝC:gB64jPˆ[J[0S˝}ɦIVo] tc2BJH/YOY]lXH'eWF"0"9-#oi -u&i>HW{8^A.1>K`3mF84u=]0R{U19Kk"¿닷k#STfc x< Y|obKk_G'4 ZǬ*-KE^!?)qJI ŗCr+OlX2[&M Ģ]љ@#U-ǀy^4p1%HYKI\ U|i8@/f#G,6_ dM4pN4 U <5M|S33p$ |RKO([d}6644׷/i0],3=<9T8nH^`㨅 ?G2x3)>̧{WU(Sx>SidAI8^f&7dXX 0HΊ[^-9fj4̋@(EFenF̥*4g4KWGcgGEͤUgU4zKVFoJ9<T`GaRu-gˆt="A6]sFc:Xkx2`??5zkLk~e[69p6ÝUw^M[i4K)st[,&O,Dcg6S7-IG-MٌV3mM.kN`͑ټ:̕j:?^I.r[;8B/ )XlAɗXr]NM*ҋ;0d.e tu` 'puF+XOMn"yMH&|3ɷ[Il|M;l$e&yM{m}$o&?@6y;m.wH~&<h{m$?f' dZBGK]:"+zn=^y |e8)CPƓOa -> HWbp-QGtEVphA#P7k?Kmo\,E!gBuPH>fGHDI(n1ɠf6 <;<&KhPPKrZ=APSC7*81L;I1ޑ2vR[(8糆wi(Z< 3|I _Iwz;!M |F}߁Ψ'[ WdЁu߉6#zd'Te 9L咩2SaO$| w<@6Ι 9k9xU@Kn?q6 މ>ҕg}<{N%\9{މ~ѕz80lj+28Y;q~vk̫e 9%{}UG*4+kf[<cuQD](# b9/lt t-+e/ 6 "'"?+wqo.<M`ց׉7w^'.<M`΁c  <ӱzD\x / W/y8E-< ۈ($Qف)jcx?9DTs"i:$xQ= 8%&0)< '~+tI^3ˁijG9 -pɳ|/Q-0zƍ@aC,rVv9j=?I+Țɕ챛i_:^,>n9 RBsSKlZ=' 7OY $<f/0hMibcnK F ';yDђ.=qut &}֎G8b!΋HK6B6  -%0qC8rXb1/y7[L z4ӫ8vQ7ƢwWh38t&CͱAҙ)+5QcLu7FŶRR'%,qI# @F XγK]FĖS^YY$K$6Ӷ98 -4ҡ -x d:(H:8@cxptD:$?r0#=>gz܆>&`Z&th4C rɟ3٩IvLgw1dxvigLcw#)ddwnN:ٕS@&+-  }T>C\{C0ofV5iDГV"}ߙYϨ1‘ NpGRkW 5-A_ݛY`1fQb j诳Bh Ӣ|h(Eԓ-~*/cxE niO~YGyo<`]%ۂ]I J|8נ_C oڜasNL!iygfPEz}fLf(&-R.ݞi6~6*d;o Q8Kx>.KۦmmjxrlpJO.n?çY_a98%)^(PkQ%VI%z 3DS[NNa2$04|*ygUrF0ΧI`܈\q.H9+h` :Z9SAWNMm5t^$t$ЕÁ?O-'EI[v{ ʅˮNq0YͫoAh'sHk1?N<*<@\98Mpl>Ux]h~,ҕy2I(E@Y|KMǜg -Q0gtUZUT0[kɷ(ʘXPRI2Yf2YfRftd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&-sLƖ3[M+*s=X_5T-\%>rد\o)WX\'( xr#ޭ/F%_Yܪ,U((+;Ǖϔ{<Y}6OӪ<QR'+Yt)3oaOwb*oZAWR֝.jVP(٬Y[ 3ʧmXyzs -ȥ;;DɦJRL޹P A%Ԉ_33Exꫠ)/Wy 5m 3aT*A1W> \'fQ|Mt:um/*.RF*}4<K䵺YA|7}_Wwp%ŭ}:eZ צ\Vi0H 1 4sΣ0.6 -"2+O7PK -AR=͉\#org/racob/com/VariantDateTest.class}U]Se~|6,B@&[R(ԯMv!^9^Ǚ:юtFywgb3sv7s'F`Eу -" QpC%`4 -UI}SqLn%̨xYQ1+WTdѼw"cvv@cZ-Yh-T6sViheQX1J|C]8uJ钑wr鼳PEwpe2K}tECcHW\vB#NJ],d[ۖ 4/Fyc˫7)9{`]&ک@./ӢVJEٹWc(}w l~gTJykƖt9tЋ>h؝D*5,a,&_b2.5)^4U kM omz-\Lhx!,rA#G@ȳVxK<4="ҹ BA+ -`z<u8s鞞2mj]޴nr/ i}P1 -\D&$0)0tOk4Yg p~?S&ZHDH~BmGe=t*N.],c-VcxU%Þ3 BAyoijA܁ẋQF<c tJ0ij0Xzvv\Ed!5TvT,ZES --iU-ZcmU{B/l'EM[da~Za*&q, 7pJ'C ^;=L(T^ħVKpr|oɄd{p<T<y~}ZwtL3GQ|3Eţs򭻊!sQ ;Ir6H!gM\'gWǷ#~Ŵ"#]==^0mzrpn9FX <O69^D4#A+y?PK -AR=5org/racob/com/VariantTest$VariantInitTestThread.classS]OQ=n)*RQDE-)(~M hFߖWfEQ?F_csΝ{̙sf~ 8ymSh€vko6IMb_ -دm&1İ T -LU%A9c^ɹStt>l2o3VX^8*Æu@v+֬w-o:_ -Ǜ*ZFOWg&U0aM<imˍ S.(kJ`=OתTӽ$4yfܚh[B+ ~ l;^STafoE/TAP-jjdV=t:yEY4]ƙ?N9rduUAsm -q 0ek9J~5)G;[bVc-&ZDHc#b( :W-IL7q'1)A?%?2ٿǧ(T*{&zM&U887wڜS/ ]o} i2 fhp>b 4O":uEB!%"w&.]ڱd6C5X9U&rO!~Ӈ84jRK^ .6`q;hGCcPz#uM> J{B!I ]hWX%o(52NyY{ۖdImN/^ f>Xc br6|ƺt=vK+nъ0]CLbPK -AR=g(org/racob/com/VariantTest.classZ{|T?g&LB HHH $Wo&7dnP 睊6jVnVۮnwۺm]wfBh?=|DmѿehK?ǿC!gszS()K~>zO"*~#l4~/|G?͠w'GiE'5@|t:>O"}8J$b5c,bS8q|dA?ii-C9Bcc}<OkeJ2y! {5d 𦏧h<O[8iOx3e벼PY"4gM -qs=O"cJ4.Lr?BXɋX&h{+4>]J>#WjVuQj^q4>KH}I5ոNz?8|.oqP5m>4q Q{c4l7q=f-LѨg:# LޢmLUV465fh[koa!cjk+!<du;ˮ+-fk2674C6w1My%Veu%L9 ;S~N(0u6~of -: ;)6lcl#T:t;eDpmCFr̅^d*PYF%1!,`?odkwQJ4dxR'ˌ2#O*saV6s[#ꪲ]f6ߊQ83:pkXl,kF%F$|z㰴6#͈W\;dva+Y4E4Z v xU[f޲]@p=X]>>ik3]ΘODl7 -d@uZkKtZvjoLJƨm1pYgNjU2&O~P̔Rq.I& 7hfd$' &@X, g Vgegs*3b}x̚pp2&@w!xkĽ`fZ㚈e`etA/||q?<źD8b̡04DEZa2umΔ#u-UAXaV7=ntN޴J #^,=β"h-%'!9I(4[1E -p7Th7T^lb@TdRK%J(^=WFhU -G/= -.]+W~窓T<FՊmP[UbwG3W5L%D[cVW^m٦%gVlk]eB6Ji@zsBV*[kEtӻv;fo -j KҨ z".vqQpp.sص]lQ]MI{mK"j;HvE:J .z+ Z}bE1 -_iBNO#'>03m[6'B!D*U('7"ԭi mCnɔPխz`U#,Htr9;YT)><f'!qD2Zӌđ7q'ӜS%/%nf{JVJ7BYt7ː'u7|+DST QA||7`Zŭ!hxq**d;Gom|7?|6}7*TDDӁ8.-صBՙǬDE5ZY+*/Z"E}|{|`/ Žzg !d嘎#a~DG}WIe_ crf i0N)4 -(d Ԃag$ swPs$u a:f^E{P\Qphщ_-e~\U7 (ЪQR\QbZp q4B*¶ 17Nzt[X!Ja̲TO@K2WUiƩ;@נB͖ԏj1R0='댸)3U4 -n7Er%dfD%p/!SM^Q~Ρ<It3˼$܉EWˉTdU.HFg)Eçp.,Tǁ2ഢbΐ5D EWipjNF[<<;g˳Q^r)=Q7 q\̢5?NjbJȗD5W4nI^Ҵ5$mR p -|չKb׻4^03<F) 8ކQӊFs*sT8mwJPwW:!J8զ8T!9+d } FEյ.?onO6$F6CK^'U8N#f6Z0>o/xт/Mhkqv(H%p#FV -1(F!}KE\8*Q3]V9@f!?$Xkql#')aqǖ #vW$*f'mm ?RLYdb̌GLSbr<> ӒS1xAaZ9IRL<(Inc=&d,,;k4=C&,짬>yIFK+RG#ichl8<0\K(o&:Bh2*FūjJdMihz^?mf4>ұOaP"6*l6dGќڡDl4(w.ϫu: -{^.R%~~z 2C$d@xy3O+]̫NLN4iTAi5T$OQ E;`- -⵴rE+Ni?G :ߦ5 TA=TYN<TSgm\Kxѹiy{~Ayޥ&l@%'dxO{^{iOyE=H/w.i壇<FǨ]k<N|zsBGQ:'5>Z,B/ֹ.}tzrҝ] :Ñ谭JKյ%>:s{t],<&iJӨ ki'E x.Qp'K‰ '$*8!E )`?V&\=^~rڦ|@2Kf r4 *ߢGhZj'4HG5rR'dspA>:ۅɂuij{^PTt%-h%F_ n7"n'VznWoJKA%2 ҷ+;Wk #zlϓsg)'9GGRO9$_S[+\Q21T'N̸ʓi=3>wsi֏_"s>V8<E H)4z6#vn -(GQ$ZRC/N+'kgi &3t#g5XVO]O*^*|!*륱u‘M$ ҄<<?VQE5x;,B{D<f_\G|\߅WCpFTKb8U ş&hq& iI`@Y)O_o71SL!>aS2F Oc1;\#G8(хq\4T@:v<$z/q -ר9j"~*.R -|ll9q -T>#$gL tq?}.utzi$@3RI`>ok -op`4dSpx{qzP>{"f.l":q* 3)Y(on+,t)C -]|RA'P)>'d$bd\7}P)wg0Oj8uQI?uˠ钊$.\PUQ>zSRiH6WjYYxeQgeV\ȷJ鳂3('Ur㈣ԌlkSBͥxz$r%[AFN:- er@^R8nIlW\&Lup)2 O_YITvSڧt3ZKӋt _|;8*(D -$̓ Rx:T3i+tɳPn.xtv^e)RtzKUa 7q+C~B<i_ |MOÞ.wo!:gqTJoKݞ([RM:q0M?aBEqГSQ-l9{gس`_}aϥ8D)h ZA>u~O{$py<S1Ԙ+uM#1JMEߤ4Jr5NKVC4gIk0͉;t]>dڢ>^J u޻ʻz&L_4@,oHުb)i/Չ-348/˨&CEC|Y|%%]^ut%_O AzoS1t){|h^E9Yu% -y0%+ B|>r>'?xW~Dr2=`j ~%PK -ZR=r  $org/racob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@*$00 Ej[k_V*P-eV׵պ]kku_uݢ{<&4|sw>ӧ{R)O?3g`'t~|0n}(¿E/~~tn~c:b}3Cito;^3?^au]Q?0/xÇ7]ՇNp } -9ûT -7t#ú!S!I^H -tݤPW& t5Ƒ"]0Eze~RJu5+3t.a&M&庪dWf{eW^9\r >g^JWU%BWN{eR,2 -^`rȅ -H Yz=Rj!0RAas6lhŬhW]wn YxaeۚW5 -J[wX~+1[a:6e(VVmxVG{3  -:0!%n+lʽ ķm¡x(8ț'uǂV<ba+WkG;^jBv[![3N5!+-=nul\ 6UG4usM'8'joVfk-:4鰖à%(Ƕ 6bps%?#;%CakPmgN>}90rCQx01rk'<KLrLu4vwQ6pvUٸC`4l#H0dmg"=!ը2{k"oHע1n?PM[Ez:m.Bh{'ʸIzIeccu `<h$u`-D( +nmvkByH21|Ȭ>a}ŔFYSX.Jc۷GcqSe.y2p%TplFA+b2s*1CQSZM\&xzBqW -e6&g\9'vP$j&cíh1<b`{X73&cEM+޽]:.K.o`Oz77jP(d7VV"x flLZ6S bm0[cJPzMSR_M)aSqĔD1`.aD *.CnO3&>} 3&zQn2Ì!n6[MO|Tn3v) CPNe~jE)'Uw)O w)Ϛ9'X2r2`{祅4hp*88&^ ĂX$swoʽZ07#`n )׌`۴)D#|0`BCAho`E+oؗ(\(r`'Rgc5הT Y&]lvt|lWEMƍz`Ad(V=)zG> _TmeG :>Kb9^bMvUݯκV`Aw#1,yixbMwauW+!S˗MyP_Gݚf+:*<,SoqLKlru|yWٲE۷oPMծvUtsc0F>EOm=vI\֫m&Z56jFt 386F3=8΁dqгƣOǓ=AO䲱@0ң3Wu8 ]wM2]-}R;IH -6tKfFdA :S@q[q|1ʊUO\e9ВŚ_Dj0zGU:ѻWWut^̳]CVxpuxOh{)[tMIr!CZ'$&AǮ+A_߫^lFū\YK+0vO<&Ɔ;Ll$q)To;^T9k:򙝌t:%CS&+T1H>rU-Rp*(egKRF儿*T':<I:g5Z6SE1z4P[ <P`(rS֊;g}4&T7yJ{ʳI&]e´;:Ԕ.[˱aR<;U#|pŃX[p+\L}8\y'[Y8U@"wp`i$WC;)yP8r:G{TVG`# 6\`~`a -3Ӥf4(b($ .I`*O3Vi L3Ӥ3 +WXE"YI-fIg6Ga4,@9 -%\a9;z;c w^IeU S@~d pEWƹ`FT"jE B-`!g<;,;X"STc\;Kw Cf -ҩ?;E#ύ7JG헯Ik(.q-T(n]]ϫ8syX", o7{ɑw_>@gY`ik\0죇Q^Ӎ j8A=}DJJ|?ΧcR1ŖOǟGG_?_ -29V&O:K'Wf=$$Oåiqqŝh]ɣ:C5~Oߓ}ҾZ;:ME1FHk 4c.Z0 -/p֣WvۈkfB'֠X$!GwaItYtURɸ=^Ob!$a4b\/1DFD{G1$Op~{)앟&;_Fu>*~ qJ8lحqG _ʃ0݅=I4q?֜Qn",f=L(ạ_ƃL*9a~ރJ$Zl97;5'QfKvf1u!ќw -E8$rAܕr9@}z]^$y 3JL:Q-IQs9WVh'Ӛ{IE(XPjߗ@}F̤IAtItA*N -n -u:o7Pذ"4 0pMh[h9M.<rfen kP-v][a+Gm~O !³_<h7>e=[v{ްN;Wڵud~\6TŶEkGqέhy(|WAvkthv(6)x vz'[FUWj%WRkd7؍ߊz+0LM o1Gc;x ߧ bO{$J1~*~</se1^dײ hUmGK/6F,4y`ÿS)4 - - -Q| _8QaZCOqŃ88)m{ۓTOMs`,3بC׎㵃dH=\;` M۷ ;+[$E(9iЌ8mhC)xb-U5igrLRJv*SȈKSɀU\@Lg(z qerX&CI 593W2# 30wh1ƜWTW7j85zvjGq]-+<eYUl{:g`8R)…׺qRX[\1+ljs]쭰srV$v Ay%5ڄ҉Jقr . 6l;_n|G|u:=IrXC2}k5<Ef ]6<xP<a;]Ӏ rYG8vX\<FLf.w؅MZ1 ZB]N7PK -AR= DX (org/racob/com/VariantUtilitiesTest.classVW<&B XmShm --imkȔN 3dBŷoセ۷އ,7r_/p!P絿.ŗv8v⨊R-81xcxPVNq RG ?Kg?S"0pRL8)MiNKpŮKvqY:2IJScLeht{ѽ/b^=&#)F|@Г*Re{2GG슡ʂic))SU$ -^=;̃Ű{ʬ)VOSi{6,kVM4jE)e?b[sd!^8:deIǞ9[w,[kqyl;aMsW`Ɩej]l1gwG':;03!pVDO{.2EyQ GKrx &gי,@xK 5vݙ6r^f']2av.=h%~Y yj%mnPMSwN37[M7sk oIHi=!De*E)LvuLkfnV+{:^96gE4WT5Uw ?UKÿ7𦆷d4]E45|e>UDpvXba`Oeih&JN=PA&<O7=Kdz/Ql]J7xj`EN]AQ L^: \ -ά:r4_sYSNҝ~X.0Ϝ1,&$z/[ -Jhh 1$3 C32Zkr̐is9fcjuK`)bq]T:&&<9HɌJV -v]+VL+G͔R(W q^y$eߨ- -͵/yrNUs3c/N -E^?re)--0! -hla_@K<BEܸX"?u h-%?m0 -0IE6M\ - ~tH\,w.k+F!fd:Ҥøf\'0Ro^zM>͵} -b;rF5Iƾ诈5.JpKh1L@jlEl -}mlp˖EW$nf)p=Տy;(f'IBDNN ~J}ԓ)D/a4$}H.Kp8e7]_@UOU#In)ϵ<di$asL_Q5J?Tan|U9UTM4T]1]RK$;T -'qR$5[_Wo<MdIq&)GWtuy񦆮m ]k@?!&DWvY&vs lGae;NbR z¦X -1XJ3~RU6I=a–p?U#PK -ZR=GH3#org/racob/com/VariantViaEvent.class}OMK@}OMc#Rf=УSE}.day<I$7̓qG!!BRk{,ޭJBVnQ5oNr]F wgJ<eFT*dwl !zНfы|^'<R8N\F#wBw`<?"23XLFe PK -AR=qQ]"(org/racob/com/WrongThreadException.classJ@ƿZmABUl@R,Uk=o%]Y٤ŗ | -O'ag7 j3Ų UB)F/Mtx}zDa(aHN<v. Ov;T[LcOȶ' Ů -n MO ]2V0I2UDw#\=p\};~p}̛ʍ '\FA2D_qJfU6.ҹ^;Q$|vaXyka?E.c>1@a9-0Ï,gmzs*cs&+|PD)D6a7SBK5!$Ef-Ҟ'PK -AR=org/racob/test/PK -AR=$(!org/racob/test/BaseTestCase.classWkS~.H,kCX|AsuBvq` l|S@-IMzu/6qӴ)NgS3 IJbYÚLy%|xN 2.%P\N0QO#"f̉)F,@ .*K)/:_AY\I` -V<9__N+ +~S~K[w -^Pb+%/Kh8fڦ\B笄S0$̙1V^1I}Ƣ$suVwM I؟sٌ睙ox~uPBgS%(:*lgɦb,Pܼ~EX==7i)u\*6Oz~)B%4 -_YßKqv|"%qO]- {{'|״g GLIgY9e7ϰvo5 Y O˖n%kin?/Rg_^ň9m@^BK`)(Q]kə3HZۆ:i0Oxߓp 3킳mC:_E"Oy#,фB +͖ƠW$%<:CUH8?Cd!UOLn\,ˌDЗs/d!1d.haѪGp mwa+~~N~_“#: ڌyyhW4YmH|-ohINQD{tyyxU ?f͂5X4,|Gs˶4EL;Й=5H_=dHŏqͤ'9~!*~kdqsINM+trsgg5㺊_ 7T-d_I-`ofC"f7甭f;6ch6Q%iIDuf8qV4`-h -ZW W YP+OV)xQ?cTDU sN>+|WşDV1D*nrBHWZwdػ|f.-w!ղj<&5%# ^4E3jAL lm֋۹ɋ#'<MvX>] r6z/ -{t]dbVu TxE}FjNf> } zd Z)oEmOCw9]іēeӇeسbe\w;Od3~VI kNtnCFkwo9(S.mvM!^_Ki -$1~O1[nG6? x Q>n!J2~7ИKʼX'JX}2N4BC3KD^ -|jm#8J6z4> Ē'e sX%'vlDuFn;HBIZD؍z(G鈪XquQW@ -MRP5$-khz$Ƥ:vMXk| bv-J&װ;5YC+ڮ3=\B,o֧[.dBjRhR#۰7J~S љjX BV;rYJ^ 9(sq`)I!f<zqCd`|\+xW <> G Ē}'I!ʤnXz#_qɷvh{@G$erj)9IAo zj@޾÷p? i$ -f]X}˄}<ZVn-c'Ƃp,|zfR*mZMEfzdV1BUY =`I0d0lMNBdLPm 0o=TcW_k W(%躞]Zoލ8MLLJbHpƧuS -o`??& 6}nUӕdq6Jv:J6,Luwa͈49PK -AR=org/racob/test/errors/PK -AR=3a9,org/racob/test/errors/UnicodeErrorTest.classTWG&Ye]P"`UZ *YkmOچbm h2Ags_}%x9}C ('BkN2w~s3?(\v4ӯ|bl\q0 -n{˅f6|k`E6J C6?`tM0.K%*֚VZ<ysGҬwVҐ1CzP@DG%C[0d8k;RSN"J1K"yx&tkE(ډԊv)Cn RnbR^[+C5vZ4uJoU=&TuW>[\;ܪDXF cp䑎j3nqa[l5N=Xn B{ i~҈ss]<|oHO,ñ~-;Ybz< -JTW\& S5'L -PeTHSCT?*1XH, -jR6+?QHE\~ wϨp7HR"k&m0oM]:ܻg5J'ѻRċԢ+8&VNz2)d+8MWis'izLYOw,oyn*_ t1+rlCrkz77~.%E.1vٴi 8;JwꛂOIZRUӸL};&pGQYeg?] QMKy;f6뵉3F@,;RPK -AR=org/racob/test/events/PK -AR=D6org/racob/test/events/ExcelEventTest$ExcelEvents.classSkOA=m -<}U 屈oh$? i鴁~TD?xg!L;s;~ `O8l]c& wPHÂcvc®Ixr06CW FB-k^êb E!)%ZO4Eh–/_%VP9bl%5ؼ* %Fm]U+S<XZY [S.do>tLrGZ+edE -MeTow>ת_ռHjhSpdM U^5p]5Ʋ ֑*WTC♴C9d*sqi=&\t#஋{0 -es L4LEZ<dh f]<œ S;[i>7R%shܦ [a'/W" ^on0q[T7j"e8ٴYC,u~nJËF/>^PNk_alB}8/ӈQ|RTs* . -Y!\=D`)Ft܃"Q-$1s.|H0>Ed6dFd,eȱz#KQ=)E?PK -AR=RM<*org/racob/test/events/ExcelEventTest.classXy|IzDDBH"N! b@4]e2mڤ =iwýVvcH[& WM߬$,2?{]7Ђ*؍aqBƈWȸ[I T U -xu5k$VA e+dNp/&攂 -ވ7xEiѿUŃ2.!N»e>? 2>$2Qq2>!Bاd|Z>#B$|^F<"㬌G /H| y c -/KxLA  -vhx\W$|UjZO$xuNA&ci=4l\YIPn37n?M+v+{tI$v z9<넸+4V71,TwpRqsd:e# -Xe#d&N#ѝD%6_6Ź0G 0,׵xdi5$S~TCi Mv.d9[ GLڸŠœ"Zۻ0iwCv 2R?`XUfpa~0-do2.GO3G~/&B -ü*i7g-3"Pr>u WgZՙӄY f - -fUE:%<ItN,%d7w@>9R &ft Zg`H#{pHXk{sRm )&, U|$lN莜Nc%o1H=XgqYwT|O /A!ŹE*~ɤŀ)%ΈFRE1KQ"(~NXE\dhni+p#|X4҄~u{hX/Q.Yn;bﰞq0KR6PIk-'"mMd|e] Uieb 7⢑<am47#SI-SI +q&ѱJ/g8±1,r]N@KjPĈ"TUQT̺z)RW!sҏaUe7ohr*՜m7,jll\l͕+rfrHob,Ub&il;,S`W1!8u*R.Ʈ( X !/(׬oXQ MTI⌥bi5{) -ixU]cV(. -Q2bؠ.ff&[y}/ P4{3ժ8$NX"IX&|iXJ]9n&ՇyD#83p|y2-_x zf6V=L&:EX!DtPE;%aKY˦9gw g<")xmʥZU}m4/wLCu3} c`gi0{UG#袞$OZ<9~Ou:' 5AxƦ1T? -e5}cPsk yXP<+d/QO<G|?2,TKcL2! t_Ǎg\F iMf -]y}.9e7 mr92RPH h ThPfN0.#z*yk<cGr%@zRl{cmzG$bǭ%)F.%B= Ǧ:lQ(-=KXNcؓq0. -Ta%qԢ4jec3XS@{7nGxzng X-lvcAdaYfNvȢ=r`;nvɺ"zc␋0v=ܓlziTSLAI h${hWIS=KRHy9bTKOYPM@eO I#l ?ĻUYBJQ=*XxFٙ^KPɦb>G5]D`;'kX3chxGx@r[^<;>XV]54[%,Q;Hn ɐmR0o." ">2 1Rl7@bTPR!TNBv19nʡݭDt+PPK -AR=vFQ"org/racob/test/events/IETest.classU][G~lܰ, -E i#a[Z (P`&ɐ,lvf_}lO{ًS{fC"Ɣ9sμs1??2&R&cz'FpCaZg0#99ܔ|?u,۝X E*rY+RKL NyêԬɫаaCALx;Um8ĔↂHu+pҶ˗rYsh/噳|[ʇ(ل<峼}ᮨZY{?p\gOVee٢bBn%F祿 -yaQ-~P08+\rk@<^  -AXsVP0v,!ugo/JJ&勼x JWȄQZW, QIYV5<I {[<OoIW3E+:|" QHjxhKyn% |1_ `Q*@+v -Wpynʬ_d>,G5RΘkM `¶ @%$UG-uHLY5GG,(\3p -ELޠ^V5 ):.T -[ԳVWZʄ5dc~h(RamVѪy3~GѺ٫ -^Iz۞u/(e;Ji7&:>o8?j,2+V{^Oq*Rr\E"uHgwQo,f.z''[ȯdK^$tzhҚwIGV@bJ"3:#}̺ڧf~D::dFLJ>1q1O4!"x>N,_MKmP"rP۠tȗ$_)zrb\N֠qO_R@>N35Ej8{sG ~ ba1D -Uy`yuÔSN2I$WHn\F"iN&ܤ-JmzG!'`SyqyBQJ77z5\Y - w_PK -AR=D>֙Gorg/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classVkhU=lv'ͣiV֦vmlM6_l&&oWbAA" (  7ݝY%do=Μ|ׇ؈71UjHdal*Apи<4#4cr,[yvw]<q{q<#<Gy<h>)j]8Ć5S2ә4u-6؟ٶ.Nrh692!C[7o1R_\I3C̆q&q"CJJU4vga` e%A-זMWLM(*Ō:L)X=534%L 1I3ruajEpfɲ֫(dS†%nyqϫ!Y{B2UruA0}@AS4O]2$EJ T_ȞR+٬ :Dx,>ɖIT>Ks)]33PYRt/ˈ21mh xAWUEae!0F5p3ݢVf(IˉH&u Ǫy FyW^94 3S3ܨ#r\3uYDl(]c<"hq 41#c>[,H0=RyQ90R*K,oآUlHCz))R͖qI\TD)mIWSl@4]Q{VH$ :x24tLo`iJG I: <s!<BxF7+^8p,!WHZr h'8,/LaǑ -(;\yŽ-;mň}N6 -8Kf3dAsnX2!ש=2lY hϋƣy;W -: H -j&WJa1;2Ql~ %O^Jj:RTt:1IfɒL_ B.nj6r -&)cr$I ,EwV⫏kL5!䌙D绣ZcXxV]&r<Κh -^\E\[ h :Bkhv Y5P갖~Z:q`"<FGBCH ]*M7)LQ 0FS~9#W1b>s =h0G)7G[}3}6eZg6eiΠ6ʴxhG߼y[=zxOV*ġ6(6ura%N;|W_SW3qU5'ۧmڼGhᡨwa",3$j&-5\oF>s6a[O~Ir|rllΓӓkpwبO!QbOo;v}l -)wKKl-ߓ V<VCUxVqRn=5-d~uak\O߈wlk`;ϓbӅ&Zr7Vr\wK s>WCVRkj.ָ㐪մR5 VWN_Ryz\j-#5azs$b.8PK -AR=0 u -3org/racob/test/events/IETestActiveProxyThread.classW]tT 7FVL -hB!$IB K Pjov'K6^ bVEժVkjЇzއ>xSMiKS?_`ޏv 1A)P66D`D#Ș π -&N60Uo,S71aZNIg v3&R'L|ē&RRfiϚ`9M<o - &fh܋MM|j+]ϫ^3@]g{tlk2tdoOX+ʬ9'kL kt Tt I野 -:a;efd@Nu][*ۼX帲'7:(bvyI;oa!x ; C Rw'8*!q׊ GLB5Wq8]mi7-b72=-)FZ!7$ӲhbEh:PAeXUJflzCtr5Dz#GڼQs/#ݶm=Y-˜ ҝL>/$e X#Z&nYZ |&pڹ2l3^ V8I[i@wE~hG~pk*lvdǞ}aûsN&%k 6,\ ^;L[9~oZ \K.BslBS8'()u˅Ћ=o$t@2N6NWKa0ίPM)yTiZ\ ױ_`͍\{CY|Cԁ7{ -30&"wB&iJe;d=\F<5aRm&ښ0_ K?e`g." Q^Haxö2c97t2Sr2)ɗiSj.<-_`I٬%W\ʕh:(3ʘŻ[e=e%- IkY;Y,]]ZZT51<P} - Q`RDTNjryH!UGh1 HJaImK@1;oYmm^$pkBƖ-Q~e=PWBX'xIVe3R*QV;7"=VBJiU Sd.hٌ+G(,b" 5'Յm{𿇣l#[ w^J\\YCJGVc9+`tӨA@j - Qc@ji./]5SX]5[ӈNnNbuC6]3O噣kIĻgwLaa5kTOkwjwi4gH_4*E/RĹu==hLM$]Fgk#8xY}s|廫ߩ6WQh7>|jznθqc74F^ -_Nğg[/)*{8[ACm(Έp?cE_G3]nF@#b8~ t| yǓxau.axD4p0Ic| $_qY|sDO_g:cb#NMs-k\ǽxO ϊω3x]>$Ms`Uk1\o8s5Jiia5[A5E+{*ĕB&Urc.Պ׸sQe0pA{L l6 Ks~XmlV9Z[ͣ:ῌ|7,PK -AR=Q{.org/racob/test/events/IETestActiveXProxy.classUWG$,U( Ukkk"h&EunE|m>s9}o}c{j9'3~wib: \H#.R -'gಁ8 ]m5-~u|~օ\7B^[nq |yMzR]gHdk ɼ_ VA]|k<ZV&Նl0Lj˶ eMᩆ8_")()W,ÈF,H[ bZ|.Du%*[+{्@ -)*J5!] R>Xy]3E1LUj71f -L,capVM|]`Qҫ΅ҭތ~ :g*Kh`5hS1D%_cmuwM|{&Nq+rH=Äꆲgت 8XM"Jv=̛ >oN ٵ:~DTdtR!42s)|4wv;L5\!4ԙ&A7+X<ҷW(5N^ Mg -k6{@}z$0B3{;kTZ5KoהHZr=t>'ZTnK3;]h?ivCC'Pt'i4z:5u$vF{j<AkgE(im;zHyda};A {ɫ~Es9x~4@ {~ l#ɠUM'{ #O!5k -38J8ICRC8C,,iOB=Ez|:4`ߧ|+&ЍeSPK -AR=u^ 1org/racob/test/events/IETestThread$IEEvents.class]lUS -{t"[ -,TQ/.]`" tv;0;̶׃&jb4_5j⫉&ُnI{;sg0O:0W؅tNb6LH ~OqYxSzq..pQ 7H,tK )` c`;C -5r4]'53[V1 -v',S>aiݔҼsڼA/m5cNuϮ^B -ԔO:cҞ04Ǒ4W3r嬶5W*ؚ#oR~[MWlyJ%,d]ƛX",ҥ5i-eQ7}ROkʶ-n]n|V.͂LC͘m)#cfe\J1OWtWAgR8ܕ1s!~$gY?w-#O(K۽Vz|Ŗ,噼Jɫnݭ3F\OE&kU켜=fgh/iK'[EN -l&R#(Hf^,$*q5k*;*u M4@AxZl;*Wq({PωBSb7\溦5SF)Ph?._o{}Cc^_lD-5}U덆]}Ȫ'(:Rgk$5L-5}Cm$µQvNfZKz׻i"{qeViFRi.Mj%,œL=RC֐Hy 6l(YvfC `[radZUMP,w~1 >mޠ+$~vxA(|4܆nj^>U>  XG swo -bA8#wW٧rtR'4XV#y%7CC0&3=!{?3y8//2`0F`3اX@f/c!L09LӬ1GrfxdP{#M{~>~ qrBY2O0_y̋! d̉B0m2+C0oy39;B0?'K;C0$'B0&Cm׼J|PK -AR=-(org/racob/test/events/IETestThread.classW[XvauPY)4ڊ -- SDlHEQa#:; 5&iIKn5$hhLO</~}}C.Vaϙ?6]pT-}jqb臫ӑt1Đb İGcZpJ:N+qjzRS1V⌎8Y%*P4</* /x9xE -E t5+7G.kxK@ojln0\W NK}tdR@t 6h~72!l#K8VO@ ,G*U6r{jl(z}i%wY6UvAoL -MhAۑ)fv]ʮ9; mR`ILە@KX˷9G6iJx5L52BMSc;O!Pe[J+Xw(3Tv̇= "dWB5rM6"l Xk&SFe>A4L*x -ұN(S2w+0g?TN}bȅ@5|S,@V %-eeH/ʂިh@z0WiyhXʠx|oO;a)i;LsU&@ i>'LwX ?cَ$/xzL?/=Vk⚆ (D11Ȥq儙=YBUn/gz^_&e7;HWC:ʨaNYAwW.ԍ10wV1]k,FfIǯ9^h:<MjR1Wj31 T̶7iUIw vp(J̌\; M?7M5CC7Ԅ4 0 w| zm# #?s>ފ%m+iifv^3o  |:_CyIʶ->`8SZ˕ .-9RS:LOSsjP<iJ"zm)ksma{қl7[*g3nl|o:9۵7RU0ϓ{U´#eJZx}2L,2%lِޒDh)&?jj)ްΗ,w^#|jN<=RQCT\E*WH-.QաnQ-Rͬ4C>O"|zv ܌ȟ)F(.6quƵQ-Uq:X4*^24X9īpF|Vſxr9^A8VtҧZDZ:jf -/Go)l)*+*+| ˣeEinrˤPZ1OkC(Olea]cF>D![W3#Z) +^ྼaD.b"ԄKcNzC7P"oZ::;Ge1| -t7kWD퇘wC,Z=~N\bkIQuvNP$VQy58Ї'0Ӥ<Kx >8Kɳ;n< B(槪sϋ8^q^:m]-^w%Qv]:yw#<$^8.=xGM ?U<xVf.q߃6zxG%~}hgTzysq(!b<nОשP|(vQVT|8.|.LPm kLP>Ŀ &'"GCRV #1rI$rwD9NDn0ÑFw;([qůU:PK -AR=J>i4org/racob/test/events/WordEventTest$WordEvents.classSmOA~*G)&$ 6B aem+5$Q٣Q^J3X"9\D-0C f>~wr9+Eي6 Hl(B$&z 2.S3}P,)ɐYё`H%Z0|ABExc1(1*%J' u,g8RG_)V>6\uk/=Wq2RD;2N RUn -0~Z[-Sdڕ#e,8l>.{}, d;EK6"h Q%xotlIOI4N|,Ow桇G>㉇ k,ђV5nVU?1 ⺗XӁnYуIVKqfSaǸJ'L)pH#y 5PDWFa G^y72hnCϓDzw>>W-=y,(SCƻ(O lBao;Ȳ/`068:iTM~PK -AR=~ )org/racob/test/events/WordEventTest.classVwU I:C -(i-T<R 'dh23L -%7=# WH=薣 pߝIj@k;{ϾQ<H#FU\H"*TDFHM9\\^<UL$Q:]U9\K: -&5-a4ܐM rᶆwT+W喝^P - yJg -Rl[x5]g, -)eM):%`s޲D^ޤQQ;Q2<K[xPq0xgN1?ȉ0Vn1$C -K Otni t Y轾䘍zal5+n憣yԩM32,Cp˱kd~wY#W3Jx]js0犼UKkM aΌnȃ -ՙ b -[€Bla׭Ymt2cK5TD"Yr̄6)zP{^l V%x#fPUQK&c9# VB4ڜndJSp< dڬ|nu*zLY|̧pڝ>,@h#|`%Od嶍m( >d>(8ur%?+tB}2GaG:y\7fDd'Q.UuSIc O3~%HaEe 0bb2<~>r` yD,)9̬<2 -fs: -3WC-; YrrWSuRJVcQ 6/2+ iudWj<5[٩W=^07ִoqWн-IL(SZ-eٳ jtUN9/]7"7$Mr6>"Q:Y8<q lGqOY pVk(?bOy HLg5=u`;eG~0 w{EjݔĖ~xtb+&/jx;M &zOw2{x#de&^j}fH?K c _+BjH "W{I>j">epH xg88ϩC&Y|Mop`C|JOzzȘGY2=N)o#$wtۄ3 -g"ljS/7U[TCQqA^a/VPK -AR=org/racob/test/excel/PK -AR=fHg 4org/racob/test/excel/ControllerTest$Controller.classX xTofy/ !$(0&!<ɼq%K[njn[V֥2"RmUJmXmMޛ$djss=wx@,.FbM|[qܭ9}O -H.}Wql *A<n#*/Uq01iq?RqHrѓ*~r?S -`QqX>GT\ByV/TRZzNůUFo;W+xA%4wl$AYJQqTɑUX?7&-VfV1 -(v3 6{+k%룝qI3M/u1=YJFK-k("7i6FFOYzڨz 7 &9ꊦf8Lv%v2RV݈ь4c1#jXKLjT7 -x#f]+iƍ6Nm1v=QOFeJHACZc<n$#1=287o4[wӰ"3QulTg{.nuҘz01S(XhwfTg$j> z_hUR'b 5<2;Ls'#=1'fwhAijf"e _cUbHXQ3^M%xT>-V\vڈٝ0FZ2RCPEddɈG4#Gَxlfe 3r{6a\&`P ntؕ+0!"F@sc}3RhcHqPz dpɤ'rl -B;)ǂ3j4 :?2$PO~h'8Ue(5vLLz'n8E=n(u͕4]CP4`i؄a30Bvc"(@;y417HĢ,U12D1`S41FhTe9IqE51N)\y &=ЂP$M$& r)*2%ۙl}2bLC,G^隨'3#&f@2^h1S`cJ 1COU51Kj8kLUqXIzc&~wb~̛6l4Q-*伫},\:5m;vk0U[F 5uzw-tffx2BQ֭P4!BX-f -$B#j51WI_vB A Ȃأb&B8U~M&N%D2ګ[FȮ]I>yFk|^ Si"^EA7tdPg=ː0eNZv%]?~da 8o$Am)B,c};U3aaw5EisaM #i!(xܳ3wY͈|7^2}TA<NFykKpn+5&+;.o] /"uU\4 wm$"ǁ/ܓcX/4aѐw/daABb N 'Qͤ/3,;0h+-|x/dܶ<[几w#Z~bS>FmZ֘_OZgj9#^XZ`k}jj3x'GmC`2*M )*< -Nt(_ C^mC8gv\륥mF9ngo -hu>>m5@l9(bl*iaB{+k!`ϜFV;+]+R2p>d~vQkTJ<-o\=' 5XF@Fc0&t q~wU2Ecu0xnBQG~h[}R,QZF0q -oߏrO?ƫlcUQ!e=<)յ4Tvd~x0hlU69_OUr|6k՞JfHK\{q;nkWש;\2T<p).,ml9r!<lu錋r-_SDDX!"l9RM\^#5QL݌U,fg+K`h/b]ĹIp|9 D׍Yw2ua,CQyoQ |@R"1.z]TSBTaGLI*Y]G =e_ğF22#BO.dbY_LOo| >۳t$+TJ 2DvIJ(GqYTJH\n(m򳁟5 0!*xʇٓL |e2d0e: BRx[JvJq5&WHQ]Rt1+[cꎥc\@*ƋH$qjW& !D (x7 % JQ 3$^]D1*r<[ >[<5QOjKd=r(^ڇ1U;\LSy&!8K,Xic+}~?stE0FH+dOgaKX\؇aw-mmJ>f;e$w<J_==zVnO%~[׺pSY_&,؊1WG{qtigVN`L^ߨ&7WsG~V2 Aqml^"𪫃jX^(c0$'O*^ ;D$/4_s /^m˨s}Fi>a6 -PK -AR=mG)org/racob/test/excel/ControllerTest.classmOA[ZZj - hA-blE ƗcS;*L|H~(ii5›}wgv~$µ8rIDf<e.bד仡88U <WJ1h5^Ur>߼z [7ط47Șoo +c }za!Zuði;isNGx]%cܳ midI+Ð -z"+CHˍf`Kô#ٓHbWZ{ɝx(*uYⱭ #'XR 0ΖIuꦆ41 /84,▆۸a qpe +a SH1wEU/J3vwED2~D/td24Rsvw75n \aJ" -1TFoSC'-|?rD<z䒞k5PSh)jNFFUT}nfFsx\Q&(( -YZi \h;C *~GQ># %X(ubt RO3?@L/}$/$ \L -lpDϐ8E0[͓W4?sD!#tW) Q7PK -AR=org/racob/test/powerpoint/PK -AR= i- Corg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classWoUnۙ-  -rq,";j[ -Aۙuv/h r*^_ vCƒOD_L 1wݶՇ~9_wz~ =Y(F- -ҰUFu,@4Wh`[U;mx]& -ehU 22:d -LDKBT<؂)&cq![ o -3ox["#a}2+ۻ0!k ڴ;#n m.֌V]2ZSdeXaj1܊a3̮4V&?hD!̴CztRGmdHXWQ*5 މ󢰞!l ٕcMܪ1+͠,]Ӆ 3-9I`PrZ;auY1J+x&BS:[SOJfPMI;ɅIZkk*-{R'Q0(f - -]$ezBxaְZҍ 1=-`Ôh=*!>P!:GRU,œ*S8 -T1ɐUښef 8!ObS*N sj'`sɕbLJ3*✄* {s$HĦ,.1L0`ؼ?U\ a3圊/Jz80]#_`gx!ʴ'nZCiQꦏQ>rjeG7<ybH+(cX:0i >mnjA;ɩeAE($QLm:z1xY'ʔw4#qe>=Qw1{h*t_C6pCLE0fY1'[ZDG-Lh Ǣ!Q0hB -«[0s-F>9rxknl':[ 6wLmMU0b䍳)8h2,$] lƣbhvάŤ< cw1#:KТ3D+S?_ i+s-JeѲE_G 󡄾;ĚSؔe %^H(#\2L@z+Ŕ+A&A!E; "t(Nk$|JsN+y}q TϺ -uБHK Rӈ%wVYvQ"(A`n0C0'ܹ}lAy$Fw$s  E1u Sq'=eynO4RQ|+/Az6`r*EUb񨘖;7g%Ĥx}wao^^9W=pw}.ˢX;U{bN,&BX(Db4M؁=bYON.J<wqX&.#Lle8<AD?DNd]8Ŏ4,A =6YC#w&żN4ߢl&:uxƇf`^??F)[F%!$/=@d*cNKi"ތՄRXLGPK -AR=hX.org/racob/test/powerpoint/PowerpointTest.classUoG&j0!@@& ) 8q1u&= vުs%g$ ʩHRO=B7AHyoyߏ~?8Eg d"A |jɫ圎Ň( -c8E#Qq:%\Rh[pYb`U{sK4+mK/[3uYX3|iF`f( mYǮ폚 1]`˗G2l?%JвNE -+XnLKdȉY5=K}35j1M=쌧}ƙv ;<~$ ƒ]3]3t5\_V[M]gj Xܬ՚1W%D=Rv&]ǖ*%n̲oݕWҙ&.HVUyV5rU}|gt Jg \3pb@4Y - ˣ?0{ |#Cشh`ukVT*S7b SBTY=1Tn0ח]ta  c@R,{LêU'l6&~a,TR.JZv"&aʼn'1x*Ϻ+y -l]!zƬKu%%E[8}8p<P)#HVfޯedBo3_-}n\/cUfGģ7êgjl`Bv_[^I鲐s ` W_% nVG9rK'QXg괚+mֽ/[|ʇ}N,H '#&3t;vc/ډmص{7B]s{yT95 ykTp)bM!C-1{6ŵh -?1Z{Nhau%4dL#&ľ1W  o%uJI7b,ڦ~ӧ~>_7J!zi$4Yl6)k%h}/$o]9' 4 )mHS1#8pS\38G?Fpq7x2*O'= >g8p?CG(~¥a;qE(-Ft/Q׎!ƚkRUlCF˚%(B7pq}px/"^ *ϡI9@D O >ZI; PK -AR=org/racob/test/safearray/PK -AR=Հ+I$1org/racob/test/safearray/SafeArrayBasicTest.classy`df1d#҄\ @b41 !"Kv6qw#/Zz^EZ5m=k֫d# -f޼7ofxQhpvt2Nn6nwFCIw؏9k}:Et?'}s=cAntcl= % -Yq=G8kӖ|"eHVn?qe#DJuf8~AOpINbOs\%'qïN/8E'䤗 -׽k,:~}o9V)N=oܛ\K䏜Ef⏿8鯜8;}uj4NS `8_,ȑ_*H7Áj#P/oRo 7FJx /:hԷ\Z;ZиXyc$ ~\Ho#Pe7  12XG;9뢑yqNI/P镆f -:$dŠ&Ղm:6-Hp}6N:m 3b&OʤrUc$aP :\'5j. W.3NrqY$ -CtPA\Vł&HG)&w4 o(5[t55IRK[cHN w7Xl51{Pds ,89xjjW\!c- Ń)J`($\Mu ҃a#7K oP:<s{7á- AǜǠOSgP({:}Ǡ d!21t .PjM,4DpcC581Y Cd <{d䉄=A^ w1[`1yb!&)8D<tC3Y~!so1 Q"JD"DXH 1G5D(gUHSA'/b8?bXjp`KO#Gzg=_7@dz{zF,c5ie:q4:gU50|w4R(ǀd F<Zp|u؏ -Qe$bjvb4krG -Bbh{}!쩃ӌ,'˙ 0iW<bH}&)j91~ &S4r{j{0iFKiZIS#W(<11Q I4 hA`a,qJ5H#㑔ZАXס֌Y,eB4q̰pIYZӨ$d+;L]*tYcZURsthnKob¼.$6!x1j,)<@Mjj Y^c14E,iNJcAlx5KPwМy+7W!d+O͓{$t4w׷כ>5/r]vF}݁͑ҥ2`Xe-fm F*Xӹnj7Mõ/HtJ ~'qf#?JdǶ.ڄ\P(9NTM3ի^UkmC,C'>RH]RJ]4o?>t+}1n2+f-T+>*(@qTn5 Ѡ&4y[-*T^-PU[Smnme{ Z~G9S\]ǡJwy ѣ'+4^G=_`I4&8!Jh*C+ O'S]**먘nzTFoQ9Gb<'W@)L -֩XTȒFo\Yy./ܝc(~ng190(NwNf{*i mS9cXUtN#/ȭ6 NgXDi<1^]^Gv^WɞU'7 )xtۋJ؋AUr5Lh-:,j|*Q-ђn&XhT-~h5C!iˇPeGW6IhIN0*A68ȡCWz94}poLppo:l$Ç(O(eJ☍:rʅ+NpU0x5\ Jl$U)Hz,$h9k:4H2$Uvɹ_ I7dL Ôt .DrDj:#f$%Gx~R2n8WlfL+0|`W.aڑ4lbO%LN͒IͤZ72)!!E#$>:7d;:|ۉ`y'Bv$IFB2FR8I(Hη;V@] jePW!VP+< мb3y$7JIF&~:MIQXSFj;V lÿmIP{>2U-^hn|r]>@ `!)#I9Hp%8ըCU4.ʡpM3f ܊{ O# Lwa w ty ";܄F l.,0rE"A~(3_$_r'^e]udxkjV_3"Z|`^1@K+x5oH`[3Ce "2? D^7'%*wYp&ʳbX3>}qͱ\"\bGKm[^w-~[֌VӌVղjN$>02(c$ʘD=W+\դu'`pO#<CGгص`>R/{ enzv6Xl͓wʹ]Deg͵8_.9_kyCtױOZOM+iՈX@ h1`>Ovx} B|_.M;,r -S+c`<Rייv4¦t`{jTGS5- EfVGt"٠|U_fuyqn+§u=q~rJd "E :1ֈ,$|h.ƌR<ZM<YpZ^=נ:5T<WnuK<60? )$ )[kE|)[ǧӭf7,un}];^wK}t".2shynp^&*s3h]nl zCJ{$6\"HLn.TF IbpFXO]b6uB)sE1B[)\VnQNwC~ك -ىZ,.)x^_q|[6Q7Q1{oxWZuP.x }oqPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classW |T̝LnB ! `XâN&H2 ->+nRvmH]>i_E\Z>UZ}O[sdݜ{Ч0|h3i1~A~g-&9y3?E W"{#> K^,Wtν:J7tx - "~#5GS톏j.ϼi/:bOeپK+K"Gě"yQѻ[2uw=:ט7;qE#]/ ?JO"g}UP?/>8./NXzqK+il#]!eׇ&JTjΟ|"ҽd;C‡,"r4\l/b^Rb+Т"F<#^6`TG[„HGxIW{s1HN}4lk -vFF|}$F(v p,^ - :wcM̲ի0Em*BFC<ڸ8ɭŎu⨭s FӨJ6FMQ4jZB~ `Ǻ8X7K P3r(S:Y'qJ'poZ$#m7#ΦECބ`Dog!FKnŁ[nM­:pIYf J!C,-ܒDĒ19f7'ov5K]9Y[[db∅k,ha>c: ,b<]pmDF)<EFi ZmXQ aꊴ;٫ئR/Υ24J(brELauqN: 1`p{q,5i*g l&b:Ͱ|i4eM'xlBG͢6]Ljۢ8dsҦyTeS5:ѶpC\6T#b>ڴڼZ_6-q ۴شpNƵ6-V@6F;BBnny"v$R̦i5ZeU%=FZ4Dl"MQ%6E:SĦ ݌n)GCxh}qMPpiLѧ_g2* 7R}%vI$wHb`;oyM<M-Ƀ9:LܲSruHW9t~ߵy]է3eu. ױshidvFz4_<je8}/'ZezLɐ\n\F<گ-yDq$ޓII6gpxoSrƹ'U*-$d[ГoUb} Q67:=Ӓ\|jz9=DX/|=oS4$Ё{5~a|rS=߯ǹ2QTޱu4(Iˏ^@!ﶸh྽CrwDԐiIWV%DОE cKr*M6'=Ċcq,t!49`?0ah9z>p{1O 'J;pzin"-eul_˽y9Pr>*\퐚-wi'pv$q csX<$kxYs<l80R892scِX9I̱9Nf̱9N s~K`sg0 xspH785389f3q.s9<kX1jX3渀9.9p:c0z渘93ǥqِogqFg̱962Ǖ̱9^/gNHl,,{TjO`xcGn}yLmR/X0rF. 9jiStqy7 -''Pޣ{.[GOvo~$>F=¢eu4ٟs1vEEɊ+\QnLP$0Q&-eꖲzK*k a6ef9igX=4u9y˹-Ubr q?]qt=S3*f+۵\Texf џЍƀ7L~{F05 5,r!vg .ɅgLTRYbNs\N=RvJf@ - Y+fVheղҟr1We+2υ8?\es\J g,U,W庖j -V5X dןUZ@i -M3;)WݘJ Gpjc#HRF٢1LA5G)\s[Kxn-mn,SJ$\bVD \A2ا^*rM(&V0Q)?؏Kl?V1O_lEYkn\F \!t!IF11,0؇J*vMͪ8&C=ϱI?0yIxxIXqj\7ZX5.;KX.\…שT*Ui*MERÝ<s"p?L@Z3jvbcrצ ~-rp9 -J,BϢfCׇ٣-X|_w75(nnΖ30[_|,/}>$P.B\GNe&Z.ԅ[hnYډN_p'lM EE:=6FWL|U=^_ mO[ok+j[m7{}>><=Ga"xR{Oi„> ?/3z%~A}~7Y=;3 ?׷v<ߎ+ %(^яU=ZoL·͛Fex˘[q1v]62=^ٸS >4G 8w3, saf9Id"\@L2kgnt3Jf'fit-1m<8w!þ֬5鈙vk<k&3/-ìwFX36lt -{XKa,W_%i~_fMGZз<ۆiJ_fikZ[{_JO;{Y[s&kydm!ſVE$Elγ?YSAڇo-@?Fw -O*<";hkcxZcXˣԊ8uxsGZܰA;KyG-<f!<9~IΓ<IqIO8ORySΓ8c O˯:?OPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classURV]ؖPM%\l(i -qBҴ5iR $%5 zˆH/Ä~@o#.e=N={i_㯷A8B= u|i 9@Ǣ ⑎ ,᱁+ZCI)5|JAjxf`XEXSZ^aCw黮F5䂿\Ym:ܬRc|[Vd2T -BQ!ێ PnNaMF*Y;=w3@Ohn-ZBʆ,TW)*tTG=\(e!m8/ -sǒjx*r:pz5:B\[  D(e ,I"p */S\#I岬Ŕ eCWQkb$qU53y{"t͗c;* 1tR"uYa6?d#~"ۋ I`Mج쎆 lgP@[2GTwQw3x ރKLXֆ-'`t @RWMViy`^,Plbs9lZN[梻s'F6ek8Z~]VVNcme:APt@YSҒFD'٩G:$C+9ksFbrV+ Xa*>-k5G}:Ag[g3>Zsrׅ% sLM@׸ce>9#|L)`>,|^8Խ6%ku3uJԮBϛS0lwL=xSG_N,lKM\.jY c&0~kb&;؛8}DǺzS?k3! AŧeˑYb?Wįs <j'+/w DiSL$}q#L&4cuEm|1rC ۟ߍğ4|ٿPK -AR=E} ,org/racob/test/safearray/SafeArrayLeak.classW tՙ~d&Ik ԆDJ i$C2f2f&,k)hMҪzZz<=zxv]۳d@~y>}7u7nƽ։:7u` h0VAB!HC؅ -hB.Ĝ1q V76Åpbix]&` {؋}-]xЅo~=A6'q#68467r@`K*g~.2˂@t6oYG4xc0&S6Gux Ϗ7Ѩk~%e* -d㍕xe< 7pmYCbI$)EBA֘  Xiη -~Ye ˷ZH>WK$4YՐ)qz]<).Y?D["+us$T4QI`k4&Ƭl $ -I^J-v81'sqqHk.ݽkaYK9'Nx8NR)n Qf*ٛ+pgpփs8yJ󅷕򅛗tƚ --Z -yM֑HYozpfO`,h31k؄0zڃN|S[-Le΃Kxrwl`k'ZٿATc*QE}:y\j x^dIU{cÃ%3.۶T s߃nx]|KB;W<x7LzpŸ֠׉<i՝%D .bLFD hds18pk,hxJ;3S< -CҔ_;YXa"76|  }xE];I]a!!kIMXwF#-hjΰkޟi.\m r0C0Gn'78S &JrF,+M 7E%՟u5C)y4ĝJF9`S#&uNRӣt4ScWo95j19ϰarϼyChd 2P4,畳C_3RZ8u -?%wغ柄07dDAt,膸lݟ36N-|z&:g\(b(Ԣ! -SDȗ.g\]HU,9.L}i^O7u`p7 c0W2UnBVwuN,_yVN0>wCiʗZ_q`qR3}tgrlͳ0A9NiWJUTkUQYYX -]v|Qs<޹]7Ct7ϟ=!<o/r.; v&}.,$0 ]b}cz}AA4&H =8H /{3LLHDv+}zҿˍ(}KrԫׅۅE٠NeƗ%|Y=X! 8FWeQe§2Ѩ2STdT)*QTLU&2峪2Lӆ27 3 3 -dA -4*H" -22:A" )[AP9 tUNVd7wKt|2jCAvk{C!9_"J<g%mu#!K;]Ň#Pbe̔k1|b1[β+ JD.x,x+ep[-[fX*br7^<c|⋲G^W-)߲K+k ~@k;-~ro0 P.i1KM8SU kwZ[,PX\7XE~ZeJW!_lߩ[< 8AuZ=:oS]حk'm KwտZ~=>RB+z!ע }:<c&]opR]lq.ZW 6Z :h1wPxœ 1u¬_3xgCO,b69\x<,`BXQ4ƻ}ove:ZC1>r -R1ebT%Sb(] -pe5_lA؁Yyb!6vch,a(/,:ϑ@UױYOEL?S]}#$3yI'4xTE;+a9mr -4l 8,sqD\ƣR"[+pJށӲ -Xgd {qAi̋ <JJ܎gN\bU{5y~a4ȣhdgϓ_$^B|Ͳ)ekM?U寰M;Z`@?씟`اϊݭأ2ɽYi8f⠚G hg>M-&Xj8V+*1UXgFUpAݏvt/]PɿA~xϪ#LӨSOAu\A@]&y7MhV?Fg07!hUf{lS-ت>& Tإaz -lp@߄k׬ Vúm6ĕ8W:`UqLגד788wލA\\nC'+>}8Iy<7$<Lee!CLh.ì"Yp+4h5+VX6r|qIQb=$Uޤxz-i&a1¤U6&]Ik:5a!aqVQZv'C K -|'z'Jze#%܎;FgPr)+i) G?;i9bxXJZ}<PSˉ*'^FGƈ~'w3”?=ZQS=Ί >j4VHj-Qy=}̹x?']m((wkPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classUSW.IuY*Ai][jڪ -$HKMXfl;}c:3}Ӈ>3mi!sw=;n~_\,T1a#ㆂ1`LEZ[RW1!rT)wdLkh59宊{*f1=TW0 輀4=n0g:5+>a۵%{io8]+W-`jYd:soKyG V@*ob*AjXORyFir,jh8%ays5@yQ@WA?.p=ɕQK0N{n-\n J^ F>0K͵+彚_&lY[Q_qu|n:(` ?ݲ!2V<ߨ:Ēt|nfLq27؝ϓ%&/咎e0[[sȪ߫=٣c:2#af|ೞ,[>U 3mj|kt–CHnLy#8:*X8̐CK:?Vy`ol/u52+CP֤䐍d0C_ګVL ta#d$VZ^1+]c^R{HT.kkl?7T;]dfVS$#s wӀap?G'S5){wE9ϵ1T^\m :mϗhGFl"J<Z\d B:oKܿhg4Z;ohO2ߗhDsжS::8?/Nxw^.]f׃kkqDB.nE6IwPƦ c#`>w - я *EZ vtDïSJP^A,TlRg|+awPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classVyWU=aJ M[Jt[]Bi@[4PڤPDC2M$Lj*KUZ.jVM9bT?/_#7HC޻{o~營l /`@1 Eq$lý8.("E%,C@NN ("$BI#""|KX~1>?ȇ8" <)bT9󔈇aE<GE<&qN>! w O xg%49^𢀗JhQ`q3Xz@e(hQ7V>e8LG+~% jCG]qů 5a UǕS./QהqnesM^iE˕sSK"R/|P@/KȰP,P*JL:J?*9* xf1Cӣh4'7Q==HLQtx ?ңLL,,타W(WO~<m<ͰC2TcWxU``p^kx]2.MBʨȠ$-os3롘Js3wp>> dp vCY:u/PXIOUM-M2> +*^#EI-'i >es -Я+\&G@fWW' %n8X<_1ȜF3J׸RVa-u*esƇpNjT}~+jjcӈ2=QV)f[? ;#M3ueGP"ׄYo) 7ȶ.'/> -0lB \s{*a9`THl Bt&DJVtTR{I6€ c }}t!(A0><8/ȣBE/8}wUEGvu;ԽH%FwO!o 3Zgp)/zŰ̙wkH#{srD8өEח^sOZI;::lz˝y\ۚ*lacA=#98haO]E`vZhf4fdBV@+6klI@@~BѠrVO8u*&צ$&QΥ\Kmq^IUz-64$!)VէPj21mQYG* )8RX֚#e6n3[ Xff\J]y >k`KʚK'JY؜dn30K5E!2uB`&Dp@"RrRp \ƞb5ͦ= $vSlkX%| VHloR>OcWy3,f*HX;Ҹ;d `+%:\D=Ѐ?/ M̎l%v걋h@; 7AvݔI';.vUMopٟ1-^~<6NSaE耛3ij"XUBy>M*xMxwt~Pj 4$W!}##3M3.)EAQZ &HHcz_PK -AR=org/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classV[lUNw3.NYZeb--R)e:;ۊxxy`bRmc>ᓉ`L^n97􇿿|axHA) ᐊ^ 㰊>G#Q 5܁ -аFV11"萜-2TV0Nd%ܖVsrxJyRP0`Ttܝ^`=` -TtZY0o:=FN^ñzJtNL8FOfMӎs)oꡬYJBHLs@_mes1rHfIf/FڵFÉnsvJ/jκX6C#m'XᦇZr]F+쒂5264\z/괏<s]gFFvC6 -8 z/u|!gEKjF:9h: -:[1K?6segedV.TYF -ៀ NkV܈{#:Գ@!<U,!0s - K" >bi x/)x9Wp*W@(1o@^Wp:7pF頙6@,[dbCf6:'kҒf,kn0Ivq6e[ VftB&s mc;b0ޓ)Ui}i0>D}geknxIDeQrcrXV{ ,j5i,xvvK.Y{3أ1Rælt7ӌ~5+n!\3$aG)vZ𝭞'4xJ(<dS=- dSOù{o^_%<g`v̶Ȼ0h2F|e'4d8\bFL˙ȋ9wy~ U.-X!sgr堙1=?U.zE)aMṵ2X͛o'!4JpC@\C 8z*4r ıJQ; qަtN Ч 84C 4# Ae6O.xH_P9. :`-g Nql܅zk?[nj޽DDQ2IՐ$ΜSt4[ qE8EzI28\2 1F]N+HN`q_c -*;GEz4eqT>2cXOr*crj&pg_!GuGld7Wkqf%U, 6iM—xpd)G˦X4qi\c/Go/^ǎG%e#6Ķ{}5H y9lg?' —؍ h&\f߿b$'b~!WW?kHB#"cX]b=vzST0ΓL*1-Ș3B\*u uEa~Fdݟ"@Kƨ=Y$K*y.}$ˤx~d0{|O2BױJnϻ9ɌoGAW\$[ΒPK -AR=C 7org/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classUmSW~nvKQlC"b[*F `" -Yam0N%NoND -NL9yy=q8I|!LՏr!I´1 Qp3ruW=?ՠg5bN+XЏ)PAI UL(XRX n -z~M˫W78A M <7CD%$J!{p F\vFhLٸ4r\'!te1\ -d[t\A^YQ.zY[2}G„LI螗RyZ@u]/ M}>d,gFWfUKs4(V e(3{66f^Yv#t<7/ وxttX'5}˾2:x\u#qgt9_aXXQ)</d,q%p~iΦĘޙ ^d[vɀkCh# 0Nf, gTO_EbR Q#Y^] yplX`l۬ߧ_,4k8w*oh巚O⇨+/m+<e{:kHz758Ïu)oFF ]! N@Ȼ!y#TJ㔌"ǯG?T6"B,+".Fe pL9pICpѓVr~6P]D )t__na`pL0(x e~9QLXfa<ױ*5O)]#<yD#KzD -ҸJ_1bzp FqV$_eS36 ZHdRR>E{ӢB[2:rV@1)?PK -AR=@> -)org/racob/test/vbscript/ScriptTest2.classV]pUn~a%4?(B)TR%ݒdfS?+0hGfgw|rttPڦS3={9=ܻ:6ᨎЧ?G:U4 x'CHĩU³Q! +||A gt*K!~T0c2J tl@*10@U"X9wPF_6+޴˼@>+khː@q++2#4GԄvLwb-qI3i\M佤]XRu,Fhf,mfS+sKIs-;KR,+Iyr^UڙU ˘p+"ȗO -ϋ3CV>g1B0^A.!O`MيRQV̗毳*f+}4in4z.8IyR寙*ئ!c mwT[C8{s (`BEp-qx$՗ W5fu\aʋSң9Qo*[7kބa[nmJv`Z6_(X܊Ջؿ5rX| 5Is\ش 4z̼T^Jv1ǾX:3u8(MvǓhtE'JؚI8|Z=)&L.-JGlG@meY˜Ǿtk٩=F0ѲkP-p*b4'Fe*O<wb.q9 /AΊXvlA]fFf.'=8Jo2^C]R6B*lItH>5,EzLKYsY,u346]{ 1nJAl[8ꔠCG'B)Y)B9 m'EpM[X%"*oӨ |nzx -5E (Hkۊ#,\go -7|mnBc|'nNqMXNφmfRil\Q]AYأE4UЈFlgŤF7T ;XaDU*>]|IWԏVζѳnZ@#v{y' <X88m˛3tp7h)"w)~6wUq ߉]FtC|d12o'f9p7Rvt'7XidUƹTG }5_SF_QHze(S0IHMphַnK%WlfPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classUmSX~n[IꊺRތv_PV(ַ4\KM:-#/HŸ7gM+T)2;&ssrooi8k1uP1&nimbR*jc*idЉ)W`VC -ЋRi*p*(*X`N0pa[W4Q lߩ -#򴗞Nmu$: -C,q.q|R~*i'izU^|G͘$з,bg]̦Af--Rr #bPܒdڰ )9;nL#(}GߟȉO_ +W㹤 ~9gUa!ZOy5Ys$ugVc 9yXQ! -Rԕ,фx{/x𽲌@u<S=۫j {}^mJg:_ԤkVPd9DNP05PqzڔXs1aFh@ -5ͫv;@#h~UBm*K~S'%P~֨3v_Ԑ7 nq+Bcd -zA6q4J g G@\к}0ئ*4v`Uț><qDv?,VQ~9"B?@y6\G I:xõqQa&GX~h2#~m(IA8}8.Z$#APGzv-6Iy2: ;y8DCRidbX/XV1N$ -0<4L`hh*RYJs 8 `02iPFCZe?P{:nX /*.2PK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classVoUv.S -KRZqR-RV RZN;ζO -!/`66jbbBHLw?MLl_l[ٽs~s޽W؍OAᘊ-)S؊~?S~i?\<W硫c-z|K:胐!u0ZfUHHIRZTԞc -m^vvcL(:Iaz:- -<6Qz9ldvOHYIt -6-ƭD䐑NN|}4QtTp -:uFp((qW%F$ݫV\7tېY6E6426vOYzx\-1c1+'"IGv&Sqr +)}iUzM c:$MAy/bm$][3& SS [Jy4l%1Gv)7n6Y^*U7gY;.: g!N4N7jR/hx/o1[5l/kxJg5s10U<.i栰 -[Zj -9jxk@Fa)]$_҉冋>68 KD%S6ʤB3" 4Hئ@yV=-$wm| -vnn]奰[´)D\2Uǚ0$vAex%aH81=2E_O˖eZ\#9f20M⥜|{QbӎH´2`NaEz¡"'e=Fپ奾rc;+ǚ[]aSre˹"/\+xÝr\cn핦rya2X!8&6᫑/ZqV,ޥrW+. UH &\gʼ8B@x*35s -iS7Z)WFq5X5 .m۳(m^ÚiD .22A,gQņ,* l\zFU$ reW4{ryNj)}w`WCPݣU -РJlCфJ/W^eP4t :7Qͱzț7P t51k 5~ZGFqt,(- L[L}I:Mw}Ou~ '~&IoNtS<<LF чFg{S{-dyތJ,QF8g-vFj=*:T:r(p|fdM!c䱏ЈO.Q[>ã*9]-rv_uk}yκ>9+5ĭCPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classV[WU J.-JS,V+ P!bN&00Lv-l}.,KwZrW4d>g}eN_~:p7"`0,cD;%cT˜wH0 2S0i )a% q; -1+]A>#q<W'PEOd|*ASpi C?oxW.&m7s5N|Ǧ"ٵ25,gFOd6P3TҰD>nJK$$m]3g4aeԲˠ<ajIItC9yh4fjVV YЖĦ}װWDv%n1imxEoL89A -:IAG Q_T\k*.KBVż,RW&QjSE<3Xg8_}c߉ŋ<a"Y-ߵMŒ`ppO O<MRJy-KT,c?쮶nbCh>_<axUƃfFLAA٧s|!ȗ****~@Cݲ.rşwi+PwDoT<gUSA}"}qI^.N{PKJ.$T|s4v1gM1|ĵ\O)~19tΤhw2\8AZx 俏! e?^:m%n?)ʥ29^'TGc z|H -t2q5cN[zRЗ}4nÊQq/oP]J!QtL"Mqk]8Z'~KX8,.!Zs Q0ѪBw ־gN;*n\FLxUt=0 <B:*"TE6HhQ]uDj;pjM4, /ond:8i, rMqg[xUjĎk'Jߞl|r_〗Nh/P~bMISփT!a:F`KU:NG1#گA A-4oU=A^%uN]ߢbN o>G D6Dz'%)dthWлO;PK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classVmWG~7l(TAъԚh\!,nv `mˇK~zN j4;w~;11O \2ъ1=\N#mS !+\5) PF `B˛LjyKM|/2R*1w &`*GcMEi`@UDn*2V|_FV"2h " -y9YnbP _jR` -83;2OV* -<]*u*q[`Ywy|W>J6%=Q-MؑW)52-OI&x* Wg˜dC%G*7iKfN]˹Fd\s #I4 ]Jh/+۹;nII/XfIY[e,ȑ`-ÀOPO,Xͤ<y۳P@z^!U uכeܕϝ7ho-|%w,⶜. GpTf~nEl{o$[A[v:rr 確k3W+~ĒC8,pp4 -Ycu^*R -le6 -5s\1|TKʎXcOʐ/k]Uv-ĵh &%'"[n7֣5iNIG o=MJxu@q5*BK;C3ׇZCk_}F Ջ -s7ϧori0KO&6v}خoNBzY.Df_ Ly -8@> άN O?0E<C-JGށ-+<Bj7ٷ,ZA;_>Cǭn[FV)9[Ǝet-Fٝ'إ9_A#k}+~ەׁ?Ntc7&1KgxhĻ`)C| 8`rw5y"B;LJ BI N@%1!?~_8%ңD&pE$'-DiÇJ~JY>}H?-8a#<NۑIH@vo1[$q:֭L b[j: PK -AR=(YHorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classU[WUNL2 vUmSjk ZpDa$@KwZ$eI{go_9SWc1U|(F`L8&"N*"="´V0 -Tb8K2/ry忬J>T@ŻJ -ah+}7x93L' Mr>4鮍*~7`ٖbxi!tLʲt^IK97<KeXQ 6icpt6xpްs2UdRg9 5|{x§MA4+,Ǧ9akS[}Ь - u)z&dmN(e=tkxSej܌=ISӰ!2?ZapQ+I:6/ -<'/X -V5!O`)ʧh丆=( ùCk)c\)/KO˝-Z_ lP_ ljwкxk+7]|Ӓ! ? ZӁcr2Ǣ +g|:zRPdK#| 4NQ7gɇ O(W]W+<u=^;P$^tJ$CwNjj{b OEtt|dV):_Qm0\m2/W}D8k "^ls*~WynRu]+$MYqky)WND/tq5XbǁMhHKD[E} 0A8V:@d1݃;hi=h:@Le{x bkś]E@;xWhm8swNZyD#ȮCyq2魓|:J AM4zeo,X i05^l&$-c9H& Jf, ->"U\zR>cD_H+fs4)-U94eA5PK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classVmsU~ni\l By X$m R@kol{@8SLȌ~+n--={syι_5|~381$O!%`g D4&33 3B11Gz`X$O1<]fm`΀-ۡԱ[9M9=y20cYt(@GT/aZ?[ޅ]E0}爼w g(]k)WZQWF*9<ߨʰbͺdKmSV1j<<t -(έ1ECH5&U5Wj5ky„d6%n2PbS_s5^(Ku -F{*_沲I+<vbH3erqG5&1dj!FtL\հ &\,&D?cM57@dBW*thqt#$wM4qS90qS|aKbGR)n4ǀ@grW:3okS՚ʭ]yqH`(kIQغrסwC\֜1OVF -,J"elΌaS+e@jg玪TerbluHN~LPpN7bl < -ɠ|3Rݗ<a[  $VHyZufJ[=?Qi B!%ʸ9N> *A?'-'?_4ԗZnX<ÜKT:pcAqvBP -@H$mw$KC-ziHNL6stGwvK ٶ9p =-lka;{ءԗw'4G{ii{sr~K۱4ӘSEEDez{8q~Zp}1P"9M^̓*Y mڿ{Dg~$hF36uC}oV[x;f -'?Ca`I25lFS1{@þI]Z^֐;`/+:lPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classV]lUnݙn-'@Y*X݅JQu;;.T|bBb l5dLĄ>ٶ`6ssιw>^fi xFó:qBɓq Z$13lˆBB8E%_qNɗj4`ІM=GCjx5024CeՑ谀 qӒ'tTPNa1zFŝdbS1WX)UH;fލ%=1DѴk.e@YʨM%#VBy[L^;-i -28}%wde-v.UdJ 4KpreF:M/eV}2SnX9fˤ> #蔆Ni@.:io>Y.g[UC6,}gMͦCږYf8k/D5YzjG^͆K/I+:kӎ4\~0RT/c<p]8Y=E3;*Ih$a 8uQUom ]l =lX|P@lQ -K)ja-1ǾT9-QO}r(+U9)}]AK6-Zگ#̰ǟLiϯio$)lM;6.Fkլ+VYNڌtF.ÃmGM@S$E7}^Y~#֨GnLb,9=;6ΣW;-EMu!_aKWfO?|> q3o)CvJ^ UUKU.D<To$T3 } -#tP7D0kF}2:BPgr߉B#4XSѯ ZS2ZI$|uBH$'&Lb]<zWWެ+tB7wj:ߪ9ERnu=v=y?z#GoD%|ͯ_{_gI9zN`'؍O׉[7٬ݡs⾢GOBa^Q}"^gnWx4"1ְ#af}X~*3>Ixs;s֟Y%45R3$]\45i8[SH7O4MUoʶ;-kgh86ej#/PK -AR=Ж1org/racob/test/vbscript/ScriptTestErrEvents.classQ]OA=ӯk[V -K$bL)OCҦ/<ͮc!&,|?xgh"!u{sx&dO`Nʾg^MjCY2ƪy"D$1X" -\$kT obmf܈T'ERF[>0!ndh! [2)ц?8U{Qy! C0QsܤHzt=8 B-<s9.D_/D  ja/c1( \;bJ+szs?foFvl9qMK,+n߲Dh:mUqBFX}vA -B OxDu# l2t,@ -a;*%j BѦ>ou#\}ۭ]/voPK -AR=org/racob/test/windowsmedia/PK -AR=-m"*org/racob/test/windowsmedia/WMPlayer.classS[OAf[, -ԂUTp411Y"<-)w%`@dϙ9|sf43Ɛ4g``70jf) Qz,q&lMaHI_Dql!Y -*ˑx^Eη]䜠 I?2&Վ1:AT#^m%jޓ~%ثy"jy"eޕP6&F{^0r/++6'M] -0N7<`Ȭ,JWq|[Aaߥ̕ҦN6q=glU{MEү.ե[$Ԏ(B=r V0 C<2,L[X4c8kb% sY=Sԉ]/{yxHC0Lxtě;BFA("02/r o`HW<N-X0޹>EC=^٤d*6f'i5p.$C 9K ${c:K7>4рE:Ⱦ5؇4h"L ,OP307R,Kihأ Fp%n&v-(PK -ZR= AMETA-INF/PK -YR=ѷ+META-INF/MANIFEST.MFPK -ZR=ِy `META-INF/JacobVersion.propertiesPK -ȉR=Aorg/PK -ɉR= -A9org/racob/PK -AR=Aaorg/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classPK -AR=4n2.- org/racob/activeX/ActiveXDispatchEvents.classPK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classPK -AR=Aorg/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classPK -AR=8n_org/racob/com/Automation.classPK -ZR=[K org/racob/com/ComException.classPK -AR=..$"org/racob/com/ComFailException.classPK -ZR=32%org/racob/com/ComThread.classPK -ZR=ך[Pw)org/racob/com/Currency.classPK -AR=7X!-org/racob/com/DateUtilities.classPK -AR=:+s%0org/racob/com/DateUtilitiesTest.classPK -ZR=spm@bH4org/racob/com/Dispatch.classPK -ZR=g{ "Forg/racob/com/DispatchEvents.classPK -AR=L4M4 &Jorg/racob/com/DispatchIdentifier.classPK -AR=Yo-h)Porg/racob/com/DispatchNullProgramId.classPK -AR=+vK!Rorg/racob/com/DispatchProxy.classPK -AR=&t Torg/racob/com/DispatchTest.classPK -AR=*-Uorg/racob/com/DispatchValidDispatchTest.classPK -AR=a5!,Yorg/racob/com/Documentation.classPK -ZR=ZZh,[org/racob/com/EnumVariant.classPK -ZR=қ%y ]^org/racob/com/FuncDesc.classPK -AR=8uborg/racob/com/IUnknown.classPK -ZR=<. #forg/racob/com/InvocationProxy.classPK -ZR=ʼn8 .:jorg/racob/com/InvocationProxyAllVariants.classPK -AR=C0Sporg/racob/com/JacobDeadlockTest$TestThread.classPK -AR=G%gtorg/racob/com/JacobDeadlockTest.classPK -AR=o\"zxorg/racob/com/JacobException.classPK -AR=SW#zorg/racob/com/JacobObjectTest.classPK -AR= w$?|org/racob/com/JacobReleaseInfo.classPK -AR=ᚹq !org/racob/com/LibraryLoader.classPK -AR=nis%Vorg/racob/com/LibraryLoaderTest.classPK -ZR=Ldorg/racob/com/MainSTA.classPK -AR=EF5+org/racob/com/NotImplementedException.classPK -ZR=5h.p)org/racob/com/Parameter.classPK -ZR=OR[ԑorg/racob/com/Pointer.classPK -ZR=zM(ٓorg/racob/com/PointerWeakReference.classPK -ZR=ϦF|qorg/racob/com/ROT$1.classPK -ZR=Porg/racob/com/ROT$2.classPK -ZR=wN+ org/racob/com/ROT.classPK -AR=Q5 +vorg/racob/com/ROT2Test$ROT2TestThread.classPK -AR=d45org/racob/com/ROT2Test.classPK -AR=` -+corg/racob/com/ROT3Test$ROT3TestThread.classPK -AR=3zorg/racob/com/ROT3Test.classPK -AR=L[ org/racob/com/ROTTest.classPK -ZR=Ձ*{org/racob/com/STA.classPK -ZR==A ڽorg/racob/com/SafeArray.classPK -ZR=X#8Vorg/racob/com/TypeInfo.classPK -ZR=|QH]org/racob/com/TypeLib.classPK -ZR= -EeQorg/racob/com/VarDesc.classPK -AR=#H*3org/racob/com/Variant.classPK -AR=͉\#org/racob/com/VariantDateTest.classPK -AR=51org/racob/com/VariantTest$VariantInitTestThread.classPK -AR=g(org/racob/com/VariantTest.classPK -ZR=r  $org/racob/com/VariantUtilities.classPK -AR= DX (org/racob/com/VariantUtilitiesTest.classPK -ZR=GH3#org/racob/com/VariantViaEvent.classPK -AR=qQ]"(org/racob/com/WrongThreadException.classPK -AR=ADorg/racob/test/PK -AR=$(!qorg/racob/test/BaseTestCase.classPK -AR=A'org/racob/test/errors/PK -AR=3a9,'org/racob/test/errors/UnicodeErrorTest.classPK -AR=Ag+org/racob/test/events/PK -AR=D6+org/racob/test/events/ExcelEventTest$ExcelEvents.classPK -AR=RM<*w.org/racob/test/events/ExcelEventTest.classPK -AR=vFQ"v7org/racob/test/events/IETest.classPK -AR=D>֙G<org/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classPK -AR=0 u -3Corg/racob/test/events/IETestActiveProxyThread.classPK -AR=Q{.Jorg/racob/test/events/IETestActiveXProxy.classPK -AR=u^ 1Norg/racob/test/events/IETestThread$IEEvents.classPK -AR=-(Sorg/racob/test/events/IETestThread.classPK -AR=J>i4\org/racob/test/events/WordEventTest$WordEvents.classPK -AR=~ )^org/racob/test/events/WordEventTest.classPK -AR=Acorg/racob/test/excel/PK -AR=fHg 4dorg/racob/test/excel/ControllerTest$Controller.classPK -AR=mG)Iporg/racob/test/excel/ControllerTest.classPK -AR=Asorg/racob/test/powerpoint/PK -AR= i- CKsorg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classPK -AR=hX.yorg/racob/test/powerpoint/PowerpointTest.classPK -AR=A~org/racob/test/safearray/PK -AR=Հ+I$1)org/racob/test/safearray/SafeArrayBasicTest.classPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classPK -AR=E} ,ߟorg/racob/test/safearray/SafeArrayLeak.classPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classPK -AR=Aorg/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classPK -AR=C 7porg/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classPK -AR=@> -)korg/racob/test/vbscript/ScriptTest2.classPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classPK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classPK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classPK -AR=(YHnorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classPK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classPK -AR=Ж1Vorg/racob/test/vbscript/ScriptTestErrEvents.classPK -AR=A;org/racob/test/windowsmedia/PK -AR=-m"*uorg/racob/test/windowsmedia/WMPlayer.classPKjjV"*PK -hSS=s6win32ole/Win32oleService.class1I -) -*+ -,-. / -,01 - 23 - 4 5 - 6789: win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -Exceptions; getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java < => ?&WIN32OLE @A BC#org/jruby/ext/win32ole/RubyWIN32OLE DEjava/lang/ref/WeakReference F  GHorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionorg/racob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* - '+M+,N- Y- - %*'' !"!#$ %&" - '(PK -hSS=ewin32ole/utils.rbrequire 'win32ole/win32ole_variant' - -class WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def methods_with_flag(flag) - members = [] - all_methods(typeinfo_from_ole) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & flag - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - tdocs = type_lib.get_documentation(i) - return type_lib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = WIN32OLE::VARIANT.variant_to_string(vt) || "Unknown Type #{vt}" - - type_details << type_string if type_details - - if vt == WIN32OLE::VARIANT::VT_PTR && type_details - # TODO: Add detail logic - end - - type_details ? type_details : type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -hSS=D"2424win32ole/win32ole.jarPK -RS= META-INF/PK -RS==META-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.8.1 -Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/racob.jar - -PK -1R=jruby-win32ole/PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -fnN= win32ole/PK -YN=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK - -R=P|jruby-win32ole.rbrequire 'java' - -# Set location so the loader can find the native dll it needs -arch = ENV_JAVA['sun.arch.data.model'] == '32' ? 'x86' : 'x64' -java.lang.System.set_property 'racob.dll.path', - File.dirname(__FILE__) + "/racob-#{arch}.dll" - -require 'racob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import org.racob.com.Variant -java_import org.racob.com.Automation -java_import org.racob.com.ComFailException -java_import org.racob.com.ComThread -java_import org.racob.com.Dispatch -java_import org.racob.com.DispatchEvents -java_import org.racob.com.EnumVariant -java_import org.racob.com.FuncDesc -java_import org.racob.com.TypeInfo -java_import org.racob.com.TypeLib -java_import org.racob.com.VarDesc -java_import org.racob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -R=??jruby-win32ole/version.rbmodule JRuby - module WIN32OLE - VERSION = "0.8.0" - end -end -PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -OR=S60org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lorg/racob/com/Variant;)Lorg/racob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lorg/racob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxyorg/racob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -OR=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -OR=>'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLorg/racob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/racob/com/Dispatch;)V getDispatch()Lorg/racob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLorg/racob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLorg/racob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJorg/racob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lorg/racob/com/EnumVariant;org/racob/com/EnumVarianthasMoreElements()Z nextElement()Lorg/racob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lorg/racob/com/Dispatch;I)Ljava/lang/Object;callD(Lorg/racob/com/Dispatch;ILjava/lang/Object;)Lorg/racob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lorg/racob/com/Dispatch;Ljava/lang/String;)Lorg/racob/com/Variant;put?(Lorg/racob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lorg/racob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lorg/racob/com/Variant;H(Lorg/racob/com/Dispatch;II[Ljava/lang/Object;[I)Lorg/racob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lorg/racob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lorg/racob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lorg/racob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;org/racob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK -RS=`9  racob.jarPK -ZR= META-INF/PK -YR=ѷMETA-INF/MANIFEST.MFPAj0 =VZT7PH 4% [`KFi;3N9c>g%R;$fl&7\PRzTV\}J:]aP]Cb2}_'%2 -A-Jk72QBɛ06gUs}vSAiq^B(rny&hPɏv{|ゥß^E\CS΂ذFVHA*/_PK -ZR=ِy META-INF/JacobVersion.propertiesSQ0PO.Q0204P04222T5050ROMQN-P04U04225Rpv *K-*ϳ534J*IKI,I5Z 57hp d̒Ԣf3c^PK -ȉR=org/PK -ɉR= -org/racob/PK -AR=org/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classŗ xW7d7@CIhUDB@o:LݝeBVЪ}>*ZbnRPVZZ_֪33;lfPɝιso> `E5fqn…,q/>O)/p؃{Yϰ}|E>o,<Y n|fX|كYaN#| =A܃nz<x̃ ֱ,| gxO0IO:s,fϰo,ƳjgAm۩cb@@8[(PPڰM)Wp[X4n7mVmQhtC 4vh7/?/]'7ѶʨW+e,SXX_"j'mQ9T¸~ƔZ@~5T$cv͵IQ6DHD!(!<,MjަcK9S]᎘؅) -^`]w_j"kJGLiYPAK)kcJ9܍P6S 0ͩIM<KЈ(dmQ51QЂZaNN OG9Tu}w -M]C`4lR(zvR= --8qVQrkc$Sm+txbN^$gjXIwkV+͔Nb?-ŪUUrF_EGZQ^Br"фH#@x]Y,i*UCXT/*U)Qfk>{.\.f -N9s|E3 R+6D.k9FBr~<NY}aJk tY /;&'C})v{ƍлV$lS,d/B ρy6!7+{xt-ϖ ͧ$ $`\vJ $?c'lw+T;0/H~%K -aE ~p ~,^yO] gd%A b {2|Я~FGr񊄿lAX ǫ,^c#Ayr_wȤ.:TG:(͝muZx[;6VewB=X]JCOLM_j{ha{2NﴂpX eOksod^k]Zi5ELjkLꢂHtR{<ѿRϰv [;uStK/lHKnn * iEC52OA]M`ݥq9.;K/ؾ=o2xI-P *XjM6I$BYV 0p5I4j1 -u-ԠZKPG f-c%ꈵԁ ˉn'VҤ5+(`0ie'љڛ i,4Uyަ \P^GqL\)z93ȢoXIq ,მlr -NzCCP1T!TBc0JLUx/)6!XFƑmNj oQA;yw/hU6WQrW~df3K(KX+u#/csLl5 ϲ Z$cT2QZTA2 >Ta%52٫A@S2p+z0*_$Kf֐ s0n)h%mƶ}]n` jCXDYm8$p\G&}{AfOۍ"éoM\6\R zؑ>Ά>)Uv4iƊgPrT8{/F[tڝ|-1}Uq>qcEkFggX&(p1.c@AFGcc՜B@>>2^"7K1!yPAU;4u t:ӢSG!ar2-: ?r}ĭm#g_g0Z99Waߺd^q'~jlhZԙH(1O1W+Ȧ_,Qy>iXWD=+[jHII[b8!焬%rJ GZd!Dlwt.NDJRkڅOa7KNbH1ΧHUcƼQo c$ tQi{ƈg ƾ7zՉ+{-k"s $3i,>NkWeO?tm3>ܨѹu5;0zd"hf|Ri)߰ĭR˥ټٰ^ET3>Y]0V MB*nVivV~]iVGN橴87躥#6'澻83aG8)U| o0R,b }U2%MtΦiϦZ~uS7ralle]V͵N:ں7XֵՈ!Luix8M;&,{LdzEq֖ɫAf'-%5^5^3fuѕ_N<. )Qn=xwBL[iK2mI-,4Rhs9|$v.|va&f;,Gͅ}%Z M%| -KL%yfPK -AR=4n2.-org/racob/activeX/ActiveXDispatchEvents.classn@M81iSZZT,PT((% $wlIVpC%x -1kV.aK37;c+бe+X5pWu\q!{KBfX/5<1}ڦEgISoXZc-v ņp6wvv&mu[/:dGC ˖b_w`]ٯ3#;Y1ri -.ÝNSuf{l3</d.{!ڄtvTV)<?f(%e$ Uޮ\sHpF3ȖPO S9LatfGReTCaXHqۻ2 tRe[XA"h!OAGNӜTk#)ѠؠMZ0@'"&HEY1IJw*} )y]'Ԩ9? +c,󑰲.`PsZŽg0b3dib.P*8+~A ǵ'djbxpO : լc'KXj(\PK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t xn=횓ݽ~К:״=5C&E\:OYNi픶sݞ=i_D.-peMoQ#-UWw wf1 }:q$K7뎞3\)^ywgB~_ߓR]"0EtJyql}Oکb:Sίd[CF*ccv|7٬1g{bΰ\t(J]ͣ?׏<ǓT.U%Z Zsg1XtAcy{} $=z6#&2vxE2,槗=it5`K{#1m*eV6hS ݷ9?xANU_4]o5I峆`#%#Ne:&lTtSilW*^#MSf3 RI+3Mxr:խZO]:FUT7w77̪@dxGJ*:%F6W4c-5rzvvάxGB]wqFY ڵLa|Ͷ1ۙ(hL7閦;>G|α<^/} ~Xukmkp|N͝}T1aQ=cqFB^Y,Wz{smb 5Wt.<PIqU7nwi^Wvf~P -kfMU]D[oHW%%5&jY< DDVkE5POvkh*kW3f&]ﱕb"X(dq>ſ$Qnᬛ>1 ԡmގlղUob/^m+/;( %;K XB[³|en&YǖY(HG,2 uDXK %"3hD9EJ:|m1XBACLTF400 c_`Y,Ak'-ml -3XIWadU Vn`m<M|?OOآ/cǗq)\϶ Јb7Va1+0#H<i F4g|yO¤)zk%797=?A-4qۡm0} =؉H{p'S\ك8ŭ{oǖ4PDqG Da?XO<I/'O^BKX!cϒAFRƃ2RN}2HɄ ͗i,\80(c^92`fyV_TybWw;%o ־ζ6Ahj INcԉT|@%ۘ"3<ѳd sE`%l"x:$yËn>B4"\M4p1(V1+;̯uqzɕ/Q8IX]zՉ7G - a Dğ^Mm\rC%6ɍb\M=:V*&pޝC#B1)OSW}F8Rr'Ic̃rABy -q\ʌo5T_rE.LPK -AR=org/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classV[oG6YL @Z=P`b!JؓxkN/S_؇VCyDUT"U*Zͮ;R,kg̹|9gf 28# Gp뛃8A*qxBIHG: 13 p!7\ -@#dJ;b4vSaqa~ :7V[Y <h"Y.;) Z=Z -}N()챘gX*21!ĭB2DzҢU(f͌XltmEǰL/.y#@VB٤0ǨШzުa{cIE)Gό'M8)X* !s6)}sT2MA s߰KK)#R>6-Xe)Pyռ3z-_,`oȺiϩPLf`B&+hlw]CPTq%,ݚrlﲹ@n2C$ -m -v2_%MBX"mҲK1%Rdq79-fMTA0`^d52^4r'srz\h%Y9A9n6U2cYʹzjK4\3g'lwkLhVz~Oe裬VńaK2sdN9VXprI%i(!|$-R%rJh)^*ᑫʂ%!wٴo(Ik}+7 -ލt˕I1Y;;x6U<_ QQ<*/FÜ%(zDInZ= 5Vk<5RINr|~4r=Jl:IA}J(-c=90qwB腽3+ߢ\52tIB7L7X)N oZA\8*ltKϐ.lS=k'@OwTY0U/!+PYGoixsmZA4c9Ѝ ڍ&>\$6VSCZJ)YGJ& BNmm --db׃m$mn|TTKn#;*-,:5Œg8s\5>`-ak!IE{}%J0}` # {g6J -|HdMx '6E^hʱ[X -Vt^CSdem*Vq+yojfUGw6#/q -Κv:͈6zhO724!;274*x[[^پv03ᇙ(SI''G8wY\y\@QF)21/1o`i-os}?.?0S+S8n$0E ` ɶcmqHscvƙRc!^G{VL6.Aw">Bl 6Nk@~ƃttнQPK -AR=8n_org/racob/com/Automation.classuOJ@}ӤM=7o ^+<=I%ٕu#Y~%Nb 87;oޛ~}|$A481!F!քn!ʹQM+y$vޑτ̺R8Y\7ښ9aXYY>L焋i/RTҔb6|Ǿ7YNae{c}ل>!ߪ =|[=Pgx܉{֭cƨ#0~ h!3a>PK -ZR=[K org/racob/com/ComException.classR]OAn-EPJ]>&D(eY5..ȋOA(㹳꒘M=3{9̯?~meP4D5F&hy,AV(H4tvZn{5#(d5 -xkVfz~sEP BEuAjm[awtg]7ܲwcvZmjQ -la -m'صcGy5`[j_O\PsN6Aw$w|©3Y?3'KM7Z?)CąvldZK^݃6T31N2ii FE*H -d*}?2J~kx^y<A %* K2$Vwr<& C(xM<P1. Df)EJ5QR,b,ad s^TQÝs񘲩O`f I:'EhSg$}Y:\N,=̥aRW+0KoCX_K1S\N4#U]_M|F kTò֤͜\{`rMhz̕$~*$(?L夳Y嬮V7lqN\hRtItyƮՔׁR3S*kʟRoȪPK -AR=..$org/racob/com/ComFailException.classoPƿ -Pݜ9 &i$tCWK@Mig[tOM|wc?d6}(1$==={ʏ?_x2pee.K@`#t'v:vL@02hbK[=~8)PzxNPZl -S;xcN]l}&9M* C?iSF_ԲO"+΃l'pMoff]6v3R >o5#Q -e`imn'GO[٧@h+vh@Źjkrdj~9G%lXvY,M/XRDES:J1ez+Yc/2iYfbm%U(:<̠H28fl-ž!T^UQ̓8\F]9NQQF7"vS7,ѩێRUc(ý%鸙ҹ(#vVdΪtnΏ:C[RORK4WAR0w|K^:ߒ=PK -ZR=3org/racob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++ٌm<Up[N-9۱k%9.^t@wvrr*_"Io-Һla߶+Ǣ/ܶg"7^7&\!HIy~|P\";L"ɍ]ָUd -ݺ6*ُ! {X-sP -ϺU`ݶ9EW;ꡒx IH1´x$^_48\TlgF.-O\#Ht=kkI^M1CZ|Ԧoy -o%c-m$ۦ]s8,O ;?6,F?^sv;oWnZ-g]ԻIU{{CdxgNGmn]$З<iH"áaKLKuh%+9V 5yOy2s)e"<J0a 5!~cstJѦ#.E3r9ľvL4x;p +tц:j B5tdždc37"i}<0$9;D>VNZE.iEȴ0Ҟ %"# F&.Ӻ -~#A0BbMu { L;}9Ɵd@>5k|)uT C5>;iED7 (4ʔӥ1QFE h6"@n4 NjfJZCܹ;rxDyN|O}g ; G㗈&@ 2D#4륅)(H/PK -ZR=ך[Pworg/racob/com/Currency.classuSRQ=7ې0,$F!P0U`J| -L&.~C*MJ*?ʲ0!}9}?LI qLD%c4WuPpSn)N *&:pWߓ1y)R0%6VE$JnVCo~Y[l޶ʷ" p2se K,TY&E]f;<fl2 mux^l8*#KC<"au !iaI`2EjYA-QT#mÔfInpvmWE2WE^ry<WUnn!dW1dv.U1 0tmK^fXUqU!CmYenw ao0>U, !n[;ںsr4F]#̪cyXP(ڇmߗlߠwW**1^|ə|sS"&zAJi 1(T7hӵw| ӗ/яDV!VC -JwX}C P!Mj&y8a<{Nؒcˑi |)c8C9N{| ʑ=v"PGS5G<$u'G -7g=< ,?b&__<IR*3u(ut0n6[Q"yhi?/D?hf:b5:?#FPlse J]Zw=D[I8AOEӴ!oETS2@jF!z5ǼI}/no4qD8T ؖzJ -6ɦeDwPK -AR=7X!org/racob/com/DateUtilities.class}TMsU=/I'C$!!g(*H$p`%b|iNwظqa$%U_OqEq^O&z}{νQ6>(.1Fwc|2R2ӧfjc~(ຉ/EK6#׃( Jx3^- -ilƞ $0hAWT3NZ"UNmUj@{MGTvtVlVVF2&׃0 Wm2F1B0r+P@_2dnȆaBU5> 60YJcU 9 $O Қ(E1L 2p⌹Z`7ltp?G82k0T HS:#OFQQ/ ]]M&S:n;86,pE{|@y_ 8+݈ZF 1UWRN^fo24 SW-ˬ)ΦNOǏ54~_qS|v06O5Xv!~sI1;Nr;8_Ez<н=vaz2LL!0~$0c[{Fg!?mMULvิO//as7bE<qfșd!b{^= -,}IoC|j/po?v0&f.S,@\+fg/ir&:XYQyR 'I-jO1?4nSa_PK -AR=:+s%org/racob/com/DateUtilitiesTest.classURG=]/+,$1YAƎM6(`%28Aj$ ʂVPT!Uyʳ (S?ŕ-fvzNw=;OFBGj{4tW>?3p :xy O t,*XF4,3>t=7xm'7"$\O4yBxNyeZg0~yQ:+yQ ғ{ 6N'%VŒWeL_+vE)4E^yk!èJ ʮ^yu^]b*\aX (\y蜺obc Z4<5ŗ&B30 -) R>ÍЖZY*)u2jJoM>"7X3Ǻ /-eAj^% &^ba/ʒ:-JWj3=~`:.%Va*cgp #p}A'yUIQE^ř~x򲣓 aKfNNAR*L4xR \-lbN$ը vL>? -Ȗ}HGD腏ZD^K٠t8 /qAU#v6UZUp$]d#Pn0j8N+fFs>+z{4Lhf CSzGwn}Hc+M3MMzP}MDxW!=nU`:ю<X͐4"*w'dE̢t]-"["70y,O"9bH4q-?0~dM u?J%cT̒-9ܡ?{!wp(qBL܇ak1f0PK -ZR=spm@bHorg/racob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΙ{o~V?W@;~(<K?c#? y?;')"A'|s/KB~_^^~ ZJk^#m hAhᢅ@ nZxzK*O sSp`_:o'@*|A,zKY.eB@(hՅ-JU>X&Ж%Fi\rɧ -)@D.;IMWJSҊ]Wȥ2k T^pQwWp綍}jtzw^)' -46й-٣kڔ͍I)B?"]CT&UX4 I;mS*#LsδL )6R,h\OH*;Q`NzR8TU <$=DN -r\#hij xG -rLp}9SHDRxi뤜g -rnD_, !Bϗ7ݵ]韞@,Ʈ5i*UD6E]TiPJ}F&,t0lH19ǡ-ɽJE*, m/mm̂B].H9!ĉҳ"cTf*{7sEfRCa"kCZ-%NuFq^&;r[! 3le,bqu•g^ !1'鮋Qr$40 $V*6lflwF֢6 %N--t;DV!$2dw%1lAgɑFuL r/uNVU_qJXHعb]F`;[E`zAS i5;$ggA@:^C̑qękXU.ݹ&'g0 3N a'R{[ʉ^ ', @'_XN0)&pA||2JV6Ь3nD.|V`x~ 0{7'ۚO4ʥp2gI2?7yI9޹u8L ]8Jr fe}/֚I@gs;m~ F2So߷0\厅b wB& 5ZJwn"+!E_VjE-"\] @@dRK4HxK "NˣR37:9.g -ݻhfY S-dVG3BTJ^d:R&*OycTG脔傜H[ ԳT2GTNN8CxT`\ dԐj2o-|>ʨ]4 cI-& -RAֹoe̖]L2+dzi7{d LINR3ҥ\0pK$DiZ!Pm^Z3C#x`=tx笻ԅ ^1MT!HEkp! ,8/t!=sU& =I}/%`{[7kM[WBԡt*F|gZYxMnB*ۄQC?ˮ bwȇ7C;?lX:?lMklյy:lk۝wэt3LTi&l j= <; *@= -?Wm,݉][jszN -r; 5wk0xw?T`0QiA>X2Ke2X R1Zۆz5]^v - -]46u }Co=C"ʥ9PZn,B%N3ܨl-(B 1N s7܃0f`GWdTTiQV:Õp% SF]eH]V[@3{VuP- l%xU^9 5KIUXҁ.⠋@V65:Œ2֘VKA6g*\n?FN&e05*3)&Bi!n -73ݜDhl]*A C1x#[`)ӉU[ Uո0/D;t<Gq0> f&b+ sYe\wTfu/q23іْ7İ;왁%4HH+b7s0 CAYi65AMaMTjpnjAѪ%`hՄPg"TP@ hG,9:d-XnV̳l޴ѣ8P: AM'SejL-\ede.C(s6n%w{_׊#>A!7o޼L8>㧣Mơduu\R3pC؄UlFЙyr\{/ITL<+17߫ hxb |l޿z0q}S'QK Ԟa؇<1YD#)A(5Rţpo"<Ex<x#[i ik5.YNADa}A 5P -JM xԷpQ@Eg# tyћ#Lt3ZBȋd~׭1o[ʘVblLߪTGn~PR9o5| M<바%63ςKP5yPXga5:rA>Aw0@^f -r F8WҪUJ=S#ӻ|_<:AwXGʲWhڝX3kPCI=aT֩s(gr(g2Z knhF&gI3 {F5pđ8RGjHM!?)3C>¶?c*\iJt -E+nSMqGqGqG1DZk^ -<@`'B<u|j#q6Ƒ8rGnm Oa?~v02@?X WXASƈj].tp: ܅Bw@kV8seh5"N#(X -b#(h{ڽ& -~QSQ02; -TnBmb?m#Q$z~& -jNjYF]41|ܣg,`l4!=Hlt"QQ02(hB|E-`dQЄDMԐ+ ->`#ɅWЅWm|Gc؇Zk` -f4IwUB t7<,"jQm)I1=,)xDcHVݦ4繴eBu<P2SfB>맯=ƕaJmֆp:],m|*I#Un8ތڽTƫnH?*2R@mF@ʏQxiKIrˣp)0glZ&]r'GQfdey/Μ5cʺ 0)߂ʷGmKrEx)-F{PtI@<]bl?C眄 Le\jR:JE @"Z/2&&PXx"|!\7dcx -SBZ/38HHMXF yOJ8qRj ZE&Ex<Ԅ]!X)6.iI%&7p1X#."|2RFH҈?3bs1$d59'Ee4$&-BHVu9"eeU0ԋW"Rl۠߰ :<%Ex2BOVMXBk yOXeKj¼ 1oy)LZM9ՄqF{_ĵO38i5# -G)2sv9~;o#3Fa/_0~R/{-FY+$hYZ?^F퇩|-_®u%}VĠeJWPUzFVbiZ泰>پtw{tcd~t`$ A8?V QhL:U$gPK -ZR=g{ "org/racob/com/DispatchEvents.classVkSU~6 p!4X*T*P(*HMr twåV:8ՙӆZf|4@q89?8~X&Ƥ)!]m\QCW$k~`Vu=żP`f, ->~,aY`Ҋ[~¤/T>P1779k[; l-e%c)+0^MeW`'u'ĺ f<厜]dLXiH&&}CKL cQu^kp66:NcY; rd^77#>2\=3ں1l+O/3\_[TܝOIļ6̠qRAJp'# S=DWT`|DX#:ca8q OXV:,sU> 9yY˺qNpEX2" -2*֠3WF ] Cs<;.ul V-;$[ʡ,Ln3>1*^ 4-7dCf0!4tN g4c䳄N0 +W-#bT96#@u2Up.e9xG7Oe{*VAw&y22EGe7,FPt`剢Q%hWq3-=wd -#<u' |49fPZ&&-!!EWLll{@I9)v ^C]@F}N蟦V^<O vT鋲=I‹ ~/ImR:QB jo?WU-I)ľ2D,s@E-v#{<B}}(K{}U -/!+| 5!H#ɑ 6=BpK=Lgh+];={(SU-㺀zZ)ww(w1i ->Rj>2>G_ɗ2CH9-`R -IUt/2S`PW\?# ]YTI>NQv\yk -囧(;M 0SÇ71*;@HohFFel&3h dRс HRra-}oPK -AR=L4M4 &org/racob/com/DispatchIdentifier.classWwG`0j5 Lz-ckfdBd!@,{yM/y9y'H5R ?cYs%qNs,ܽ3{gvg1}Ǻه^1gl' -Ly~;-*Z\fY#3cF)@#~ 8$̮뺞 -/I5Ζ7B1b!Wu8Lȿl؂\-ufG7؏Ӳl?g+aӰp*259W~hy5GH^ٴo eY5,ӭ#6o-l,#~(Kԯf -0]a.z*Dv56(c1.g_%c{2\ң9Zni#i?D;^,ԺkncI -ruCYCaع(;uP"{PMGmrkLF%e=_3;rLV9O~ HuN|։_~FzBCPg:d oTU H.jyg%]#iUԛ<8ux=6?ኹ>٦4i -kQ?`[R$K$\<8F:g~5ÎN#mn<gGCDmWl RFloTlˍlD1WAζWJ(xf<yOCΞ>:Џ;48[679FB;1o4" tЉs2mg ʥ{ g=Vl[*jBdS|$.9V燫BebP8l/k bV:W*V}QeZ(:SvO/MᩕSabXmɿ&d=l . /"^ /ˈ+Wīkă@xx xf[ۈowww &"CG>@|>D|>B|>F|>A|>El&!S|a؇{8cgq|>~ |#>_ .S2qD\%k3eGLj ~~ig爟_ ~~eW׈_o]=ϷًOC?0Jy?bJbPK -AR=Yo-h)org/racob/com/DispatchNullProgramId.classTN@=lR,P$Q&$+!YѶig<M|G1)\tj܏sϹ~3;(`32Q*sʽ 7 `Ƣ%,,[Xa?ܖ n+<>? S*<n;sX& U7Umˤɵ -X5b7H%'CodlNx_s/QëXF e%'rGh'DF+~M-UD5Wx3H3j4'J[1 ba{+&1lc>SѺیvNDp*tMc&`8\YO6%JoªCota_(ca]C,¦>q; vwGt0L2c=ا=F+F:%I SV4aRy{ф<Af -"ҷ3sei0h&ˣ'+zNp|y` ]"K}V̋3dsNBG#P4OSXSM`2GRe]# )j(uRv anv3 ow6YӅPK -AR=+vK!org/racob/com/DispatchProxy.class}R[OA]X ([xn[ /&<nvL ?xf[(>̜3ws?PC̓ -X+><<GCk=ck=q3 Jɰ4ޯjv5Ru= M{X^*ɞGteauV߾{ʰ8Ϩo)(gNuyswEHj4JU Z& -ZPG̺J8p(x"9xqKPD76>_R5ev5CJ;~Mb4F~l4|vN͓HdGxFr:k!,<F.,#'IP3t4!!|1K?meE 30.q,z&6ԧ+5*5E95[}覽B[tVPK -AR=&t org/racob/com/DispatchTest.classuON1]\Wo$6 ӆ {6RtC6$f23Lϯkr4KHo[B|BHQ:Yr^i7Ռ*9Hg^pRZ$TŽ_Wӱ}Px)`BoY Z' ǿaw!0 `x PcLY fbn]b1,Ў)_Fí"mEPK -AR=*-org/racob/com/DispatchValidDispatchTest.classRA !B0AbP4UPldqL<Ox,|(˞$rALUzvw -^0xc>~RЅEh -PcY+ܖNwqO} `nڦxI'k0Sm =VB)GV"o)i.ם;m,inٿ$ QAAu>Zֆ+ [lԍ0PLNRG=,nvZ -س/%/V $0;! JDm&Jwʮn옲$ᶇ_T bHCPc;d#‰ iwJaz(P$x_,Vp鶒ˋY"*-͎x`WsI2Ժp mx7(,EjMyYac?W6yɐ$wVbb˫-{{HfT߅O%a2 &-/P</ ;˰*bRf W#*?~ԖbBR dPrfو'h&[04s'`Y_ud՚cCcu|M+&R;PW -+P+9['m(GAiKQ2|ixxDF=cRgZ>E/S5fP ~ -t M1E\䋑wbH$_~"$%t5eҴI:[qPK -AR=a5!org/racob/com/Documentation.classQn@}8q )IC P'$BT¡(J\9^:~PG!fmٙ޼`UDOTU -m ,<g0C> )?né{G~8}PH/)f"Ҟ c5f` #? o;r|ubEmNz<Wu -?ch d4u#ɱɹۗb.˜Ǿ iTu"x7wYп]$t"'voe6PQR eXui|*mz2^DMRVS,'ә*u.`4o`jz 4_ӭ C3@LEB*m)%BΔ3Йrәc&n\:U޹A!vҐaneN&y;[%3ɍLJ~InꮝPK -ZR=ZZhorg/racob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4K!?_|D шQs:`m9ޞ}|n805]q NMK~2!xc Odxs2%,0rݨ1 N)h]Lv%]S 3id)v޴LwALfSrkp=gZfR4WZL;9[M5'vfݪWΩmZ0IIvچebX. Zg [ơ1 %Sm -;[wamI dB#*ҨG{ځ.kV)g3o,xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϓڴu}yP7<?N`{3D˭j\̥:[@$%EEKe?\2]5} +{#0AEq  -Gh(F Qccjcρ{H -cph YFjowOH*B'8;AS!_ -_R`ʛ?L#a4L> 6#|6a6n'~B>Ew,Jsf@-QQMe{6x) % ?ARs{JyAK9j6-}TNPK -ZR=қ%y org/racob/com/FuncDesc.class}T[sV^"_8!&\mbH ز 0(Lm)#iԇv?l+췻9ߑ-x) 42{d^44ɴȴɼJ xj.U.7"5 -d[װܶQ<`aVZ$S<,^VRYeY /[x\QLJVƞZzMlJ.NRKmNkyT*rO9X[ +7Nr;5,o +TSKT]uU5QqIIL^%Z 5(5eoLf{k:0 ѵN~D#=hAp7c;v7I>Jtq?Q]=\DL+=hg:q ~ku ->unBQ -mb}Ϋ]ˬӤNRkNﻃ}UVb:Wtc2(cmxmt"*, LVѠs&WOefR>i~Wtcuԝ.87Qlqb~KJdlC.l -P{'"o?Pڱ3"ڰ%d՟_~9Ë/%Y&e8ˈV|xU>x݇!7[op;F_$غwd+j^|RW|>B/S>NFWFWG .fc#\| 1Ǐ )f#HFCiRl5x8 l&v  `0F&0ƌ21F3G&GOq,_/8۴iE֌0.`' 7C߅AV(i(9$? %Bɩ q( R9{Jw7#i-#Gb;,ϳWnH#`#FM%y" jlgN"Ttd=PK -AR=8uorg/racob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;;?}`'`xc_-XƊ:HeU)o"Xc Xԑ+q#MN5(]嵧>t? ?kEï Z6,W: C)]Lm:VKS2 ChKaJ1+5I9a P Fa%ڮud/, -J)Xfh=fMXzeWY<[ҔLQ^J!m)yJ(DDP)Bju P+rY40to"wD];mU^[OO$Z(7Y /L]qrr+3X߶IL:LJ7, R#|q) 9<5a楣G9`2](Pa{(9T=wT {Ȅ ȴc /8~u=9*seۭZ'1gM'eWiv - [nةM*K8at4GݹH=V鮋l5h T(E9]bkZ]o%T Mf7$a\1"Z sKEwrr32FIyL<V=@0hڍo4 i!3` <IZu!Q|J;^7FSW@I(M@X{^{@>pHn3 -CBɛ#y 8"&&h;UBu}YOɿQǛ 7ҽըíNB#c{'@5"/=d9;eAO;u -x3OX$}UīSt\{(5Q"]/e,# z5 0gK2{4!*Fn{aGN1ZDN1Q:$u4VIPK -ZR=<. #org/racob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg\L-d-w#w6)8[ےEk2&CE,pJױ rS *,vz&07뗒mJ/>k#[,>-6 !5ႆhe:%aNmr'PP#<fha""ňN"ЃN]c\&5LaZS<S/hC?miyU2e䠙uױr` Kl[{b\J7LSfhO5YwTV'yRrᆮ*2w?a2\Q[s'>UM8HEY_l*JѴ&dAs1h2Cya_A !|f%y^zYȖ+I$}hCN(t]^/d%Ag>7%~cҪDA1\Bwr8!QxuNC\?k#QG(Jsj};PwpfZOtA?!泻h I/A5!TEr8!HZXLk0*FޮZخDgݯ2nPK -ZR=ʼn8 .org/racob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#@!!tf:&=COOBnbKf@I)*׮XErmuϘMe{޹⦅~Q8_ݸ \ C^\F-F«aDp%B&!c - -Q=qL`(&L*0CH`Ia~!dPz;e( -(5 uI]ǰ\zLw13U=vB35ǐ2w I8ZkInk`װǾ1frmA\ӦSR-cXEr + lH_ݜcykzB#tWw'"k -RRPOÝ9u#g bكĄ/^U6M=mN*-cX"gŠe;=9W=:}ZZ_#XȀYRjݮ]`k|E )"*]-1٫eb{2bg显tk9 ː9ml'Ep@t70C‹w=gI-W=SzRl75ouH:m\T}WլFތ-܊m>;(KLlT?Ion 4f"c uf$صUUֲJW)>eqI1P,e3@`piϠxa:vZV4T%۳'ͫe"ƴxFeRjuuKwԘؤg=j3.E곪Tcvp :]<!53D{-L&i1϶U<V:_>, E/Z=Mkl>Kd'{2o--~6/s+4,+Ϗk8Ė$=ry -GJd5JEWe/6V.c~tuF^xZt#vбzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=RZ9l+h@X;RK9|Es4>6i`$JѠYRGץ9lE*Xk<y>Y}mX }Tv"w5V/9?s5 5'NJ`}hH`?q|s6vgۊiD\B'fp,>A?nc_p=MWWǏw$td4!ja͘$+SD=lq6w]xDIn~r z?y@owL0G*s ^e˔˧FpPB'k):D_c4*OPb_8"Юt3 tsp (87S<GAJSBA~bPK -AR=C0org/racob/com/JacobDeadlockTest$TestThread.classT]WE~&KM@TZk"R P45@mR*ԪCölfS?G#c Q٤pby?y?f~7L1ku3 ´Yi& ,,&pK&M +ZᖾCMV-YXp;pD]# r[u*-_na -ti<tnk҆@GQ=ymGM2!WmeGEUiUd=Y+~PogJ~%sKs<G‘4iE]PZ;et|,330pYaVT.7ZqM'Lho`8g#Q1*0ۖr2tjiMlxtͱĮob#Ra6>,P[#HU8^e^aiWNwd6>ø@ͯ}e m%k&uT)VHL|aIobPuZMUɌs'TeܿoXɃ<1xy֯dƬopӭg,=Dʪc"~6Ä dJ PJt8fYk/<>sQwWc g\RmvsMJbC8C{9{0=t<><98э "uZHӎqEȱӱu1z"BY6o#<ǩ}t&&&M$qt9Iqnrѳi='y -_M'KiӵI -\%ibI\'"f9~SX<b!kbXel6f0@LLZn];Ebxgkt&WrKje.nLdkcV|9NADh|6(PK -AR=G%org/racob/com/JacobDeadlockTest.classrDƿquдuh 5M!@R -P'Nk7LßVb0W\ -r57N}ށ)843svov׿S, ő{A -bAEAnC 7\ IlcXò+ 5jM4zqL`oZR[%т1nXfg6hl9zmz5cH {,*Ae{FV$eb2mխNV2lWv`1G EOXU]f+ל99رʽ#g֖OXN8aqG$u`Ftv˵ j}㡑 g7[FQfC]4\c%UUK4qLc -td1#|+{.I3:J):ְNejQe7Lﰠ -6ds[ 1m#73Faeۖo]먢.腗d)pv!*d) -$Yt:l#FZ*ْ<Hm^\ؐnU-?_̱<lӥM7$0=EJuOJk||bb/ *}^9rVЪ}_ l2Azz/BE"!`1r.S>"d#)$x^ϻOR.{''rJ4$+' K_'Nqc95+Iu;Fȷգ,8WsjZTI%>r/NۇZ.W1\ 'ơu1܏ۇTZ"J NRt{X k?qŜAc6[a&yO籪~{c"pHE#kTgPư.H;;Puf3PK -AR=o\"org/racob/com/JacobException.class}MKBAi}a2n 7AfYv !vm?Z'sRDbΜs={׏g5,'QJ!rp$J.X!z|K!' f!mK%:/ R'a96c޵tVڱM[oZzdPg(V7|!Wzfr;0w,q(OvnGO'r i0ǰR ߆H|=b QST#AAUI:f(րQͳGDBQbn`F70KYz"CK N RDuI;!4QM AG LPK -AR=SW#org/racob/com/JacobObjectTest.class}R]OQ=nY|hwU4fFHnfğhGbKJ>̝33gfv.W6f:۸cj#"fcƪٸE<0YxPx##2C~_Ü'#E|<eO<lX3ȄaSqǍy|7P]>G"Ї"ѻ ^_했"@@Pe,yď,<qPGaܐG@2D̰vɤ`O-<sM 6C)ns-Зh2w7{<'M]gE䥈TjYSwi!뉨ͰUmp]J*BAm|+u1JfAT*'4`+ -Kkqqeu9t3<\ҌI -/,YI:YQ!MdIkSLF -HP`dЭ!4+Q!A(^vgHFPK -AR= w$org/racob/com/JacobReleaseInfo.classUmSU~. eY) - Z%U[m(Pӆ+n6t鲛nU} ̨ߜ?x&Rܗy99w `s*{HXPUЅPAK2fEjx$cMy -U6)kØ%m1]N!GMBA-T װ-pn_;Ԓfy1R,h'jfm}kw1./ezҶzmhf@2Y@,LE /W -Y - ٺfnh!uc{b ќ픒ۅn$7gS\NB_u2w<k'RKŰٕs=z fAB9\;8Cd+^7'i%N唠S15$۩w:_ͺpJޮ8:_4"Nb.|WOBQ鼔Y./0`S. %O`0'߅e4kO `5k‹VgG+.=nj b6N,. kwkuŅN*¤8IPafo-!UoDPqEX2bp@ - EXdY*|ݨ -1%<W P~T7RS=@_$޳z1\<ӘMjk1C<vo6vXZ0 Dn.݇q3OMT(YF~z2pi5z!\E7DW<Ղod+^용MPɘtBYE3AOئOL@fZ)ih&i݁:iMdILM#W>dƐoT1>W1&NBV9F3BM^{ѵVT*{&ýU7 Oփ`|j׸pab _ޫ*F_Q7!EqaI-Bޡq)>yc>;HE\&FIk$L/ >3?ngQzuQS*~ Uqg~Ev/O[F7Vhȧ QVm"ڡ2O5co ,|?%B%%y?PK -AR=ᚹq !org/racob/com/LibraryLoader.classWwg~fwL6C&)41׍B %d7ABR-q;ILfY^[kҋ@ښZ˦(_=?@稧|3d"d}{-+vJqQ(tLDBZ(&1%>0qB|fdX-Q0}pbl8XO)(oo*oGw/= -Aߋ!<*xL -/3 -Bœ -*xJlVX %=(AKOꝖnOuxiO}A^xV(95?SwwPB& ߵsgPwW1m+!2*!FU´',CxtkTwMAoHؖpܩNWO9)g3aN{:ie, ڌdJ5HK3~;;kg:6IpG43f툑qnOsшR-`t궢Gzv2<gD2#'9ݛPSvύKm;J#qS3I}η!9x ޖP=ex]cp]#BܲV?Ueߵø&LGt7#~:AeJU|TyzfHRxQ98%Pŏ2Q -.1^eX*~c*^l#`*~ o^wN H<mYqQ7oTs,X/^כɚ}q4 VC_Wl00r:qѻDtUo .!hBݭn[R[(T䄺2_C%yq -:Xy1y1ՙeuOr^$>Ю* iU?9TqYh,`;~_RF5]orث% -a˚>\k6ZwȊ3&v2$l-"^yI:Z>1 7Kﱪi=t\2f [am{Qca=fo@ߨ_Μz[ֈz+CI9v&reܜaՎbaa XoKo9>ڐ6&SץaYxx/(X R+tİ =c ؓw -}5܌߻헛̸/[žpNn/OL;mODa+킄.R!TL]G'":FzwHsEtHrw9\%Z/A|wC0_5>|k9/=0A/#t‰jDrؐGP[s(O/!*iBu,acc HRcS]Է^EmV!تUD*/nѶP?V~rck{-4QU:3Zvb+d~ݪ>A@M/վ6"c\4 {Q}G_dbLs/*XQq;,ykt;mx}(ex}x -43s|Oe^#.u +{|87q R:>|Z! dT~ -Ӌѳ>b8Y,N IwR~HTG!|p t qH S0vT~2,㈌GQ:H]נqPCx= Pw/Ύ|og!2~4ik= D%c`30&/{+滵Ojy jlsYlڃmxQD[q3O$E_0Đ1f_yO/b~QDq+NnWqV!| Up!~DPK -AR=nis%org/racob/com/LibraryLoaderTest.classT][D~$ph嫩u)+PZjإEQg N~^^}x&Zx\̙9900VQfWr$gj20 Y/ 㞆9uc^ǂcI2ycYc _3u}7М)1d`]_e!y#Mt9Uf2\S '/nYrydB"fF$Su#D%!C7}Hz<oQ5X]fٻ/x)<C+*tK.#% -d*bGC0 _Ia0 x誻zPȫM bHmb WN#; =C}V[ n4gVL<oL<EQM<CIÆo}W%!_OpᡉM|g{ 1AU*!GP-r^QRV⽥"]:?p&|; -E)vƫ eG7lS/*b53'e*J5uunLZؖt@zΆb$CQ|z}5QD|.rv*-9_FN['0ۼ(u5O!YtCA;P'<T6,͜cNɜGvb[H)*DvW6=\ϱ1Rg0$2Vy͑6eԜzNo^Ӧ -np$Szm?74o^:FK 1càiv EjoĿy/j"m˚5\ި=QC+dl[ T -9@l7-!A`5щ.z$`yz~Lٌ Od3MD~0ȷ-QiNw8%KeEZe>k-J_X%LRjBVm!Q>ǮԮnr_K5ЊZwIC `g4&PK -ZR=Ldorg/racob/com/MainSTA.classm -@gML4_+ ;0`"XEhΟ,|JD]v>f`@6J6k(cyvgE0'jʾDz)=B_ -i+"T72^,PgFS/E0%6 _ -dd۬;/@{]fRD i}PK -AR=EF5+org/racob/com/NotImplementedException.classP=KA}h"6&H8Do.K\ { AK K+8w "̼y;abV  TciFJGgc 厎b+";\ޞ^/7m;ޅn ;FE$T<<Ks*35O$8/2kULhzL]#|=v}m{,\rf8oT:&n 8C=7$`DX"ֿ^?AD? #<OQĵL 6)quRvM5> -*SZYPK -ZR=5h.porg/racob/com/Parameter.classuR]OA=eiPȇ`;(+UQECBBeZ2_&nL|/26(Їs3<`˨`CM<RŖ' v(N8P e8x`ɐ2qP>&2 -Őa"qvpLd޲ڱ>0^yGsQ<cяz~?:""LhW e_!vරUtDveO{ANWC=J졝C3wSI H.;iWwizO8KS$RHVb\JRhwh_]z7A4T~7nԃIU<L)VPW0Y ]'W0~$ԧ>B]]-u*Ygδj6 =o),SؼapxIQb -7%,(!شLjd5 I*)X훴&ߟo")GLwʓ;媠;֝rNy+NsueTս Ep^21^1<yH;)G^1Wf 5#\ȓ2<yHnN1\̓u=uPK -ZR=OR[org/racob/com/Pointer.classmn0?7icc [DA DܹRgJ,{nv@\< UHϟ>OOL {8`=Ju4Lǂa/xOG"{G )[4ɐgKgr$x8oRȞ2E:IN~1gx+g8sjcy|_\Oz|<c 0 ͳXJ}s`~]40a/Ctv[/Cs-UgP::8!"x2\-ͰJ[O/`ZuB?P;nJYEߪb ʚ kf$K֩ӮkT.|kt ;c}lDȒd6V~\-5Z5hUT~zJ`_E+ PK -ZR=zM(org/racob/com/PointerWeakReference.class[KQ'm2M`-at<lOZ+}h*ݰ ̜̞קgș ƣŸ L20-`\)k/*+*.v$Yu=&<.<uF5qU'ϡ&54w$^W'$+m5/+JOeڑ]wÍ3.0۝{ *4? ^kQJ{T#Ygy(}p5X7B32 ZH ) XߢKOAhi$!#o0yg!X8Q(s] x qN2veW؏5aN8t S2:Wh!Gnw ` ur2PK -ZR=ϦF|qorg/racob/com/ROT$1.classmKO@HPvccѭD&&C1u&ߥ5.(me&{>bBkX``Ħ-BK*ra+"OJWLǢdZ)t|ZWpWW?9w3%a2yǏ4;>Ws/"[~7xnDr'=ţ8 h[ z:\q%TqF/P*FD#=4m6PfdBg3,ϸ)ýf&M?Ѣ(^n4J^2RjH}XcЩ1|<̽L c.!7 gXI]TӳTӾ@"vXPK -ZR=org/racob/com/ROT$2.classRJ@=WXg.\ #.a48DK7 - -~%Ds+md`aA (XX̐)I%=z!uۂ!_J7-a2Q L]cC0>!m:nqkg]EdI_\[\[\]\5q)P"eG 4D^Z>WJߩ= -4C|ֺ^@pq&R9uOhF6)=:'"궅, ߲0q!#I-a|-{ѓCyioYiHo<=%l&1B6I ' -"V67'$G~"LR"20Ә,bt([PK -ZR=wN+ org/racob/com/ROT.classW |Wn&% r`h+l͐vv7JnAm=GxQWj=]&ԟJ~{{{s= `䙁-x8!f(kdܦ"'.; -q'^+fSp_/ o,ěBoeܣ‡2N Pq/Nw=^r ӂ~Cbχ|D38`Pi TT㈊+qVI)VU9pQ#*qBb=;>Ê5Zfq[_ V1õf!KCBUnq䭶6tuƢf'913\WpoW6.`;G]5A60VVШ[m%ͱ/!A;n$HԆ@PCsGSegCz*oho>\MZG¾1d,7D;^>*lVԙ @oY~`w(2}]ӮwIGSSļXgNE!#9` C rdqڼ`*<cNZd <F21̶.Z2Mef7adK(Fˎ@$mXiҶLN.ގ .g+aQb0+ePE3caX8v:n|7z_)pP`ЈFKW^-Ჲ}C S -ow[1`هBA_dwS_ayvcװ4|OԻ5n D~ _e|C7-x\Jc-;iEsGtQ?)m<;2GxLÏ ˞T ?rIτOOO_h%. -ְڰMBt wZФa/d^fAqz6|4S>L? _]m*5CtS}:l8pj+[FXF֣QvРm]4dhSWœI&\} <iXi'a_lQY8:zjV4#21#|rzV/69vptMnY, f1یxh%Zc{ -#ⲺlrO"*D@|׸ZY%e*1;mVqdF^*Vk fN{l\@6/} &&,w6,yCBcaT?lZx>@csY7}m*m[x*과N-v7LyN3#qj^Csry>>1/r]!"nI2ճ0s=Q싄&O<"v8, ܁lv?WB'Ņ<ű# 6efuF㐸F518i=yeI)Xp#0غ{9-vSyKe+ì*:<v<A -̺%"9ؒymC7$HȦsuY^oK\N~$Zp=p g&'$M8D 'FI,A~9j=P}\' cK%<f]qEN?|^@ު']y^tD(F;4^ǿn:*Sfr#P $\M-#3Yܣ)g3d`HGi'> BEa,zX<S;;%ܿ0- y80P4eEN`/3!A*%XɅsKɽؔt!H`ee)VL2Y7v庩X0aP6Ђ(ӬE/p##Aܔi$(ű'G=T$)R.,Z7>˨/T%8q\D:.bA5@uey"-Jȸnm(ywfV$5&#Nz]nXɟ:ݐgiKdB,E -yiJ2q I$eE*Nq00k8[;$2N9$ytjWxip͞aBoiJAtiK}U4S!, *hu -Ũl'pֱ6jq ;ⷑlbM3E60=2/+E_əDYxgbxG;7bn˽]DoaG# ³PK -AR=Q5 +org/racob/com/ROT2Test$ROT2TestThread.classVsU\IRrkeA(IZDE r+-4m [ݰpUĻ>0qq2>.ÀIKow}m|ov0dm8%W)'7 -N+8Ar5Yd8jq#vCx'w#jKX) Kr\DKQ -lEg&[OMWD5YrᴙtE])%=c%2v!1;nɃ[eZk6oPYԸҶ]i4<5]R@gt% -ni1\'6$足t:eZF_0f8X:̀BV+P{,pzd| - -#vIgK ԚiWwnl~lF%ZϸZM2|[gr )]#{Z(mQT)pf.E/f!׮hƖIe'c3ef#픒*vSEvt}G.CT@Tiوbf>k8RK*ʸ¨/Up\5qCM/KKT/vF5 1cv MfM[Y-|>T|*n㎊qW'XUth8eyQONТk:[g\*+x5Z5[ϦrzW#%g}zEыEâi,aUkhZ8!"\qWɛ -k1!?[`_1xaefNϥW-E.CdvA4U,v4u,.Ni^‰QO^q;|xzy< 2<o/gb7i3䷠4FJF4h^죞\k0C_(/!0iߵInǞGPF!42p| -)6$P7UXK0|WgH 0D{CCjZ9ih$fڥP!g"*4c7owZ -y@whi E3(c=|w#6=D$Qn^ Ch嶬$3Rɧ݇h1Ċ*c!V0WGXIsu}g;g/ F5 &8&D?bqq/D- {e oWmVyV-V9T;f0 ~Tp ¢1'c Q i445NT=V;³:PK -AR=d45org/racob/com/ROT2Test.classRnQ.?RJu(7.hc$6i\]Ng̠/q]|ƿsZI|s>xqXVpEJa,ǰ*y) - - -}W.ZmnY0iڦ!v"[NW0-vmx"Mt]S'ʈoR wq ipގ,>33(~@OȐ=%L6}y - -Mgv}SRJGT\E -+;CV{FwMWVW'\*(Io!\<CAvèqOH! ¦ew”jˆ:c3V1ӎQϚ۴w].Gc ZDdIvF#9CR#!<褎0 ԷuB]tŒv^"3t皯BTIt_$p@b1Y*$.Bx9lBCrEddŎODjB8m_$9!}704_^ *~PK -AR=` -+org/racob/com/ROT3Test$ROT3TestThread.classVsU$)h*i%zINӥn - -Vuf*"-g|q`&)鍱|{w AtBXtM E}byL>H  /Nyq$|H{1P8BCB6EFw3^^XtfðpNÚaT݊\y2 jV Uma5tMCEU;gr6LM5a #uLۑV[隭鮜ޭ'ec(YVUs4:{vpayleh -,&VT65={<Q#Ii:eQiT 5}Xgj1rL׹M|" gpj -g1TjݶjQ# n3 Еj?[HE2J\VJtf.K<p.f$+ee)^BnCj Zyjm1 u93j"SK6 I۰]\IS3MuDt8K&lf]0$u9-+mq(Sb8"᲌+xW(cK3!RWb;E錟 [TA JHƘ0Z;80LdzRI%Hcr\(5$AJp*D Q&O :Luʑ7"a\Ƨ"9ڧ׌ڠMA#N*ʡ (IϥC'Cojj𕌯qA7 WҘ?AY6)5CQf\'#[Ҙ*Ortۆ&0Wđ1e9+z, -4MwuXK%2+yAbQgSN+pkV4dS;b<C]J0Yiγ"E>F-hF(%æp5)l6 +viꟺKutrp%e \hM/PU%ّ`4xI{Yt ,y -ܡ"7A>[nᖑ2q2I""TfXp{];r )B^laHwBEhITVD'dK7OʅQ&i,_g樯 2#BfkṍI56 iʋ&Q廎Dʚ?#$u`!X[ -A(RZ/~*{hpTO<_vhn(<i -m(~s8 06U9D-?b8H6G;}t`]^>E8Ϊpգv"΢HX/O`]F"`3l6aβ?p3+J~崎R?275b{PX˄҅$-ϽBzR` -b>bx@ƙ -S'AYh -fa^qyeHv즧΂8PK -AR=3org/racob/com/ROT3Test.classS]oP~+2N7tqePG!a3BxNZ~^S5~[ly?}؉BŪ5Q6%lE -tY'pFàV-K8>w]25-ӻԳMPDʹ%oɒmorǔ1LT2qڲL<b:7㚶Ub`&UQ?Sx| PfM)(~Q|_r 3lWuEc5cZݽLkAEy TP ekn퐳0+BL烁yAݾ=g*Ihz2wij'&| E\q:b -&T"fNe mBP\%YZa@@-xO˟׎8#x8F(aFA!棽gc_؛9;BԷ}J DS4Ȑ4`GXHB"H{r'Ol:*IݾCQFe+9Fm/PK -AR=L[ org/racob/com/ROTTest.classWoW]zw<: ciG:%ljgwz'q- (-$))|A6!!!U R;;~R,>=s~qgO`?~Aj8@7>XOB‡W#xZxQa$PY5Ԑ \0p1KqX Q`' Gmj4*.1J))\Q Zq 4<ye >Ẇ>̟JE >gp396HmT !Ӗ*tGEJj֨j~6 9DklG)u;=2"=qM"yxe딥O 9?㚎;(1HK7?oES\`j7rNаށch\nK`";u]c -^{UyLWVz%-$$XVN<L@:8q,s) yL3CFeþkU %yDİSqs#bݮx =piUgp!ZIa5$b_—J_ Ӫ+t:ᖺH=ݴu OVs[Yce^ddԚwa*QI|P7놝 >YMISۖcOْ6/L:-9W>л:vvvpU d6,WXQ˳I|r5a$Ykּr#vQthغ PFrՕaY<.syWZNʒN龣3sRWIvqtTX}yWrY'U-9=גJavXPCADY.n ݖ5J iح^)&=s2c_->VOwlYMI/HZUZL!9nzeU XƓb= JRJeoS?]nMWwi%~s]e5{T*oˎcLdיRBb -&ۿ<Ā<5Cy#dQ_ -v+Q隅)eOޑizr&2;vn+=&V;Uۺ;qp}FW,3+x: nZ3}1OHQLr-iE -X}g -+DeW- /Q.Koa )lԺ93nǚԊ138^RdPfph<H[@Nhz&Д&͗Zc:|mKtx*ZD$WqY~m*QXβ]o3P!Cup@ pcʀ,xMX#Bu+YD!:Y~8-N9rѱ95l+Sij.6s1_"ճ%:\[rS$k8ГmI&;.tb7=з6~@`ʤN#|" S7"CoFǸj^qq!Avv DMk#ݱ:eѴBtØn[ƻcx:n[lC&56`4޳Iۖz\}p?2t6אܼo S[H1jmjChUc6vCc5J&^%κ1=5] ;Hֱ 2s0tGkmJst^,fMGU!luFgثپveYG_6RA)\oL L((Ƥ[4Zͤib43qZЏ`20H0uY a'p_i\G R_90(c ? Ib;ry ) Ρ(.pQDIxψ3pES>p5g<'烒(c%-JџqWWҘa4/U:QzJ'FO qj{bi)bAaêTqZTѝDocϿpscSiJ~͇-,/PmǏ|qAO=A>Gb3pQ1) AS 8/PK -ZR=Ձ*org/racob/com/STA.classeR]OA=.vݖZX -1YiÃn8mM)_l|w&{;sس`cܵU)sOg++aaMlpҽS)xUR~=cHOJ Ӯ톐u(2NF2̹l9{a¶S?'B0dk=}<gQIMJZo -m-qoQ#*<1JUh έZؗx+4o}iml#obǦ6n*Ceٸ&vm<Bai x=.JarXwloH.!o -I29n%@nKJ^<:BzȔϑH`lI+0JEk#dq4i!&zH&-S0kR"MhvIeOB!Ru,GA~$I%oq)Q$&q?+dqB\Gc*G VFT<"{+=;1"F15Ђ|M:ȢY PK -ZR==A org/racob/com/SafeArray.class}V |Wlb6hHK5RɆCS6 ,KXHv*jIkQUiՠj]^xU]K̼73wGy8V}g!,_B DOAÿx7 x*Nt'Y XHhp/v, -X_eK-xۖl`[2z̕cÙBjx$Mtjtcoڥm٢|aJ;djkfM\E&m Y`%,"31"I \VX%蟨G- H[Th*7ґ,UlfyN15FNSE#pVےɶ.YJwOf}|.s*ox{&]"NB~+ͤry NTLYcR<w'(lY͚zGRYgE\8FFOr[PAH9fnP KBaTPB#ɋA]蠦am٦(ן4 -:BRf2 jк\ŔSZńVCRsحn%v-TZJdTUTi wh|w\}Mxp\M͐Jsj*a6KzpO3zգ6ph= vqř95 -ͩЭHITI }uaժp.HTW\ܕ8Vn ;&iZXk’g&Π-G-kn+ 9L3|!c&-mZ)_+e -Lr0T(:iH~ڈNfR[@)6bt9.!`ѭ767EF1<sbLB*%CÈ; U/jS<3Az_=gNQgI"&b҉5z$G>kBŊ7m[8읗R 8XGn[2č]"xXH񶱘i|XJ0Tʗ_5%kœWg,$ބvΞ5~&{~9B%'VP6*):ę6mmd~ij\0n/ga0ނa| _X^vO ̶k, Ȇ=<܎;hDjNuMdGd -a+dұ Uc -N,}2&!#S #JwOga/4.{y(vrĹl$,>WϥuM<8!gU!dUCm糃BЀ'雂^T5\˳&K:K4fZ)%pO(<]cS,Y&}>o^T-Zb:5>ܘnVwh5&13l/]V%؈Z\S)F -)LVh 5RAt1Gjw}qN.=ی.]^\zyjU+yX!Ux/Iwc59:_㜻᳎{ !W6wQvWNl$%Ƣkg&XEjR\& RBL1Nx=x`/ ^>būt;v ^8 8!MNq7Й2әܢ܊m -nWAGcpL1'|f| ݷbIp;oK'o|^.KR?fBsKxguxe[ -W*JV&jF񵊯|= GWGWD]^w - o+6%VM߁)S]z{V/x@o8> ~@o+~PCދ+~DGnh~v ~PR<*IOc ->}Vg?y|A_|X# =ׂ7ŷ~>~ <i*|M5Bfiwڋ:}_>шo -u+)i=~ GHmNS , S{f7[}֡awo?&WӎRNÂN@$:`Qpei1j*b)ƣ-&@{]p+k㨳סɾγ{{qi76jn'>{#=A<da{ {3NNIALBj1?G]ȃ5Oif巈] %Eɂ -#@%7 c/qKw -W4UkZ}48n~Ӵ%~c4iJ)w騂e+cŠiz(ʆ~/x?PK -ZR=X#8org/racob/com/TypeInfo.classXwGkey8e'qER -%ZZ9ۮRZU"INBiʻ-}(PZh U>8;F㍝sg{H#oÿ~1 -__ykD~CD^'7;}woDDDwr>5y++K7v:bx0[KvHzdY*:G|F[2$@Bv &alH1JS;N$Yl}P GLFrI/-붩b*҉K -d6mnQ^݂ Af",RzS *&ֹ0ف|&,sYİ)f -i/Cqc(g=s*6E@0zS`z*fDNʔIgy8bT]7ؚ +k1nDzU@ĠA {V(XKi{颎%pP3z42<rqxܦC-kȘ0(c6z1XeZٶrib_7#d\ԗ5޷xޟ!~ *zԟy=o;# Gto>_R֩ -ex|x?&e ǫz)Ŧ (8c(b wJPu˔y9,Xj^VJچN77NI^@1viᵺSm7j^Uq[Z#`ԩלvGy= -ܖ46c  =<b͚7+nvV.%\uU#̙5 llU[jseqXD oFכ5ZR gRvq9۱Ž&[*<l AW -E"^.]N.b0D^nΌ3T1xUWF_[UɰY[ې42 cu2  -Oꕆ͸UM})O+LFy"kX*kn 0q y.,ѽWl~s9q`G-[ (p*dIޠ8>z?2^jnVlD_VrBS4QNTh49KEM"5 -SpI[*< Ϩ,<O - *V2wT -$$0yU?9f 9&xq6LtvKި ؏=8 {>fG(܄}~?x~ #opS?* -Vċ |;;qğ?)O!KR~T{${%{G!^A 8xYGR<J'cJ$yɞ% ~E%ԿԿԿq' -!ğIğxEOI$\Cx>rp?EBl_|]Yfs*>TJ@FR0JJ%].DRhD Tb cD Tb ohϳdς09݉L`oW`bO>܅?5Ћ."(ٯJV}wa{wlGՈc"qR"0[zO+˜P*Nc@尬\ T*|-@y I@@o* TyT@'=GeϏoVVF V|_lG[k `Οqw?{zWu!''4mhxFMm)y/|]LS7wѵM;ؙ+h*~Ĭ|^,G[=%m~~r~[F7-G6O0{usW1ͽ??PK -ZR=|QHorg/racob/com/TypeLib.classT]se~^nI`BP+llШ6JHגrㅳ![ܖfǭ//LigpFs^H`|9yyߗ tT,|I차Up[%m;hbŁC_ 0v7fnv* Du<:fhXW̓CIQ9H.F뎱WޭǸ@7Rwfo:RNoK j;H뛽3ļ:vvmgʍݴ c֠_C+ŜmYyԷ5s`#޷6upG{Rjxj5#⪜Y=sD"HU&}F-$-=TQ..:…"B]˅b6/4I޹ȹ5.Pv'㙞 B3,ϥPl@$ S˩O5R0J|rU4dyhjx) d5"b)`` :5RpnSa 7~މ9Dqww/m!ZaMT,ROO_ iʿJ6mFe_:UT[$&aI=;BH>BXOGGQ=!&ɼK!JLT$i!]y2c| ?[8$-!,-f֊Dg'IgPZǚ?O͕y"ʲ .ec\h>{!e%E%frOWIh"曣2}qʺuZ"OC_ -пO4O%&5B'⣀Ùb=ΡśűOb'5@J僖 :qn6m 8NܱYBޓ%fv^5yrB{N^\ssPK -ZR= -Eeorg/racob/com/VarDesc.classu[OAϴ[zaR -xk+P@T[dv[ٖ.g?HL|0>lfho ۠ RF KLB\ӥS` `Ln=իX ;\QR\UZYP -)nedf5E+ 92HSՠ\YdEsû]Wu5f$zY"P 2=PIJ‡ל7CifcӒz-mj9M7"X-jFɔ )F+&3yJ'/gu R3֮fjfbuvdžU2wZN-vK* }f[iEjwLޮY 7[zhԭ# &S/Åʠi|X}ѩ9 ^s6!*: [ū5 Nyժg -ssW`WO~x1z0,r<|q8 '8Fq< /"x 9^A^C!? rrP~r<A~7=r!݆g83Ɯ~?׮ ^`z -p)Cp}ϳ Tv;.;mhF^ -^{n2zLAw1^{:7YNM~NM~FPK -AR=#H*3org/racob/com/Variant.classZ |UүI=&LBd@0QP@B I$d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhUM U c:RňyJ:KnU1CxqF0aCal~C1x0|/ 3[j7/QR `;sL<~ Pr63 - .dUK h[ū5,^~q\uxk5Ah npkxy7qܢL yW0z gkI9lU׬IJ ~lqެ-~ܪf hxn . phxiH$i]4|Pp5|HÇ5pP=q^ 9>G4|UOLǓSi3,>ˏT|A\Zߌ0>Zź- #hA_|Ƣԁƥ5j+뛨iHD?6!&H,PbBkb6Sء -'eU ]yX_k𐍐/p9)աTSݛHZ{u'h[jm|x,:!Obp(ܔVHZܺ*&#RHwH#/ŴdZ2E;eHR%H4JRh / -&u*$)]U<A+kZrFK*+5,n]&ED$97NY rg_*&4+frǗJD֐l2 BkH47hN)pMPE)n251>C[VbeAY<w깂f7>/VFv -U"Q(3-ʪ/VTUjVUZSU˪ZSe*k2:)֙V-fdJVIR!vS08[!qKҖzrZF"uqt\PE3]X.wQ$GؗtMumBgS.%BaF)qj0Kf1sz0tHݸWFX̍5$RNEB8;ֻÉP78W1%On Z"+ -EzzN"$$N2Mq*$#ad -,KnΥ@vm]ݻ$ւ_gUv -GJb6PBCwUi4,̞H:Č"ZTprIg-͒ ,V!@bq|UEjXuN,;̱Zۙmo3]&F[@pO<FhMD"WQê"mR}T"f~xbĞn6BʝC:gB64jPˆ[J[0S˝}ɦIVo] tc2BJH/YOY]lXH'eWF"0"9-#oi -u&i>HW{8^A.1>K`3mF84u=]0R{U19Kk"¿닷k#STfc x< Y|obKk_G'4 ZǬ*-KE^!?)qJI ŗCr+OlX2[&M Ģ]љ@#U-ǀy^4p1%HYKI\ U|i8@/f#G,6_ dM4pN4 U <5M|S33p$ |RKO([d}6644׷/i0],3=<9T8nH^`㨅 ?G2x3)>̧{WU(Sx>SidAI8^f&7dXX 0HΊ[^-9fj4̋@(EFenF̥*4g4KWGcgGEͤUgU4zKVFoJ9<T`GaRu-gˆt="A6]sFc:Xkx2`??5zkLk~e[69p6ÝUw^M[i4K)st[,&O,Dcg6S7-IG-MٌV3mM.kN`͑ټ:̕j:?^I.r[;8B/ )XlAɗXr]NM*ҋ;0d.e tu` 'puF+XOMn"yMH&|3ɷ[Il|M;l$e&yM{m}$o&?@6y;m.wH~&<h{m$?f' dZBGK]:"+zn=^y |e8)CPƓOa -> HWbp-QGtEVphA#P7k?Kmo\,E!gBuPH>fGHDI(n1ɠf6 <;<&KhPPKrZ=APSC7*81L;I1ޑ2vR[(8糆wi(Z< 3|I _Iwz;!M |F}߁Ψ'[ WdЁu߉6#zd'Te 9L咩2SaO$| w<@6Ι 9k9xU@Kn?q6 މ>ҕg}<{N%\9{މ~ѕz80lj+28Y;q~vk̫e 9%{}UG*4+kf[<cuQD](# b9/lt t-+e/ 6 "'"?+wqo.<M`ց׉7w^'.<M`΁c  <ӱzD\x / W/y8E-< ۈ($Qف)jcx?9DTs"i:$xQ= 8%&0)< '~+tI^3ˁijG9 -pɳ|/Q-0zƍ@aC,rVv9j=?I+Țɕ챛i_:^,>n9 RBsSKlZ=' 7OY $<f/0hMibcnK F ';yDђ.=qut &}֎G8b!΋HK6B6  -%0qC8rXb1/y7[L z4ӫ8vQ7ƢwWh38t&CͱAҙ)+5QcLu7FŶRR'%,qI# @F XγK]FĖS^YY$K$6Ӷ98 -4ҡ -x d:(H:8@cxptD:$?r0#=>gz܆>&`Z&th4C rɟ3٩IvLgw1dxvigLcw#)ddwnN:ٕS@&+-  }T>C\{C0ofV5iDГV"}ߙYϨ1‘ NpGRkW 5-A_ݛY`1fQb j诳Bh Ӣ|h(Eԓ-~*/cxE niO~YGyo<`]%ۂ]I J|8נ_C oڜasNL!iygfPEz}fLf(&-R.ݞi6~6*d;o Q8Kx>.KۦmmjxrlpJO.n?çY_a98%)^(PkQ%VI%z 3DS[NNa2$04|*ygUrF0ΧI`܈\q.H9+h` :Z9SAWNMm5t^$t$ЕÁ?O-'EI[v{ ʅˮNq0YͫoAh'sHk1?N<*<@\98Mpl>Ux]h~,ҕy2I(E@Y|KMǜg -Q0gtUZUT0[kɷ(ʘXPRI2Yf2YfRftd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&-sLƖ3[M+*s=X_5T-\%>rد\o)WX\'( xr#ޭ/F%_Yܪ,U((+;Ǖϔ{<Y}6OӪ<QR'+Yt)3oaOwb*oZAWR֝.jVP(٬Y[ 3ʧmXyzs -ȥ;;DɦJRL޹P A%Ԉ_33Exꫠ)/Wy 5m 3aT*A1W> \'fQ|Mt:um/*.RF*}4<K䵺YA|7}_Wwp%ŭ}:eZ צ\Vi0H 1 4sΣ0.6 -"2+O7PK -AR=͉\#org/racob/com/VariantDateTest.class}U]Se~|6,B@&[R(ԯMv!^9^Ǚ:юtFywgb3sv7s'F`Eу -" QpC%`4 -UI}SqLn%̨xYQ1+WTdѼw"cvv@cZ-Yh-T6sViheQX1J|C]8uJ钑wr鼳PEwpe2K}tECcHW\vB#NJ],d[ۖ 4/Fyc˫7)9{`]&ک@./ӢVJEٹWc(}w l~gTJykƖt9tЋ>h؝D*5,a,&_b2.5)^4U kM omz-\Lhx!,rA#G@ȳVxK<4="ҹ BA+ -`z<u8s鞞2mj]޴nr/ i}P1 -\D&$0)0tOk4Yg p~?S&ZHDH~BmGe=t*N.],c-VcxU%Þ3 BAyoijA܁ẋQF<c tJ0ij0Xzvv\Ed!5TvT,ZES --iU-ZcmU{B/l'EM[da~Za*&q, 7pJ'C ^;=L(T^ħVKpr|oɄd{p<T<y~}ZwtL3GQ|3Eţs򭻊!sQ ;Ir6H!gM\'gWǷ#~Ŵ"#]==^0mzrpn9FX <O69^D4#A+y?PK -AR=5org/racob/com/VariantTest$VariantInitTestThread.classS]OQ=n)*RQDE-)(~M hFߖWfEQ?F_csΝ{̙sf~ 8ymSh€vko6IMb_ -دm&1İ T -LU%A9c^ɹStt>l2o3VX^8*Æu@v+֬w-o:_ -Ǜ*ZFOWg&U0aM<imˍ S.(kJ`=OתTӽ$4yfܚh[B+ ~ l;^STafoE/TAP-jjdV=t:yEY4]ƙ?N9rduUAsm -q 0ek9J~5)G;[bVc-&ZDHc#b( :W-IL7q'1)A?%?2ٿǧ(T*{&zM&U887wڜS/ ]o} i2 fhp>b 4O":uEB!%"w&.]ڱd6C5X9U&rO!~Ӈ84jRK^ .6`q;hGCcPz#uM> J{B!I ]hWX%o(52NyY{ۖdImN/^ f>Xc br6|ƺt=vK+nъ0]CLbPK -AR=g(org/racob/com/VariantTest.classZ{|T?g&LB HHH $Wo&7dnP 睊6jVnVۮnwۺm]wfBh?=|DmѿehK?ǿC!gszS()K~>zO"*~#l4~/|G?͠w'GiE'5@|t:>O"}8J$b5c,bS8q|dA?ii-C9Bcc}<OkeJ2y! {5d 𦏧h<O[8iOx3e벼PY"4gM -qs=O"cJ4.Lr?BXɋX&h{+4>]J>#WjVuQj^q4>KH}I5ոNz?8|.oqP5m>4q Q{c4l7q=f-LѨg:# LޢmLUV465fh[koa!cjk+!<du;ˮ+-fk2674C6w1My%Veu%L9 ;S~N(0u6~of -: ;)6lcl#T:t;eDpmCFr̅^d*PYF%1!,`?odkwQJ4dxR'ˌ2#O*saV6s[#ꪲ]f6ߊQ83:pkXl,kF%F$|z㰴6#͈W\;dva+Y4E4Z v xU[f޲]@p=X]>>ik3]ΘODl7 -d@uZkKtZvjoLJƨm1pYgNjU2&O~P̔Rq.I& 7hfd$' &@X, g Vgegs*3b}x̚pp2&@w!xkĽ`fZ㚈e`etA/||q?<źD8b̡04DEZa2umΔ#u-UAXaV7=ntN޴J #^,=β"h-%'!9I(4[1E -p7Th7T^lb@TdRK%J(^=WFhU -G/= -.]+W~窓T<FՊmP[UbwG3W5L%D[cVW^m٦%gVlk]eB6Ji@zsBV*[kEtӻv;fo -j KҨ z".vqQpp.sص]lQ]MI{mK"j;HvE:J .z+ Z}bE1 -_iBNO#'>03m[6'B!D*U('7"ԭi mCnɔPխz`U#,Htr9;YT)><f'!qD2Zӌđ7q'ӜS%/%nf{JVJ7BYt7ː'u7|+DST QA||7`Zŭ!hxq**d;Gom|7?|6}7*TDDӁ8.-صBՙǬDE5ZY+*/Z"E}|{|`/ Žzg !d嘎#a~DG}WIe_ crf i0N)4 -(d Ԃag$ swPs$u a:f^E{P\Qphщ_-e~\U7 (ЪQR\QbZp q4B*¶ 17Nzt[X!Ja̲TO@K2WUiƩ;@נB͖ԏj1R0='댸)3U4 -n7Er%dfD%p/!SM^Q~Ρ<It3˼$܉EWˉTdU.HFg)Eçp.,Tǁ2ഢbΐ5D EWipjNF[<<;g˳Q^r)=Q7 q\̢5?NjbJȗD5W4nI^Ҵ5$mR p -|չKb׻4^03<F) 8ކQӊFs*sT8mwJPwW:!J8զ8T!9+d } FEյ.?onO6$F6CK^'U8N#f6Z0>o/xт/Mhkqv(H%p#FV -1(F!}KE\8*Q3]V9@f!?$Xkql#')aqǖ #vW$*f'mm ?RLYdb̌GLSbr<> ӒS1xAaZ9IRL<(Inc=&d,,;k4=C&,짬>yIFK+RG#ichl8<0\K(o&:Bh2*FūjJdMihz^?mf4>ұOaP"6*l6dGќڡDl4(w.ϫu: -{^.R%~~z 2C$d@xy3O+]̫NLN4iTAi5T$OQ E;`- -⵴rE+Ni?G :ߦ5 TA=TYN<TSgm\Kxѹiy{~Ayޥ&l@%'dxO{^{iOyE=H/w.i壇<FǨ]k<N|zsBGQ:'5>Z,B/ֹ.}tzrҝ] :Ñ谭JKյ%>:s{t],<&iJӨ ki'E x.Qp'K‰ '$*8!E )`?V&\=^~rڦ|@2Kf r4 *ߢGhZj'4HG5rR'dspA>:ۅɂuij{^PTt%-h%F_ n7"n'VznWoJKA%2 ҷ+;Wk #zlϓsg)'9GGRO9$_S[+\Q21T'N̸ʓi=3>wsi֏_"s>V8<E H)4z6#vn -(GQ$ZRC/N+'kgi &3t#g5XVO]O*^*|!*륱u‘M$ ҄<<?VQE5x;,B{D<f_\G|\߅WCpFTKb8U ş&hq& iI`@Y)O_o71SL!>aS2F Oc1;\#G8(хq\4T@:v<$z/q -ר9j"~*.R -|ll9q -T>#$gL tq?}.utzi$@3RI`>ok -op`4dSpx{qzP>{"f.l":q* 3)Y(on+,t)C -]|RA'P)>'d$bd\7}P)wg0Oj8uQI?uˠ钊$.\PUQ>zSRiH6WjYYxeQgeV\ȷJ鳂3('Ur㈣ԌlkSBͥxz$r%[AFN:- er@^R8nIlW\&Lup)2 O_YITvSڧt3ZKӋt _|;8*(D -$̓ Rx:T3i+tɳPn.xtv^e)RtzKUa 7q+C~B<i_ |MOÞ.wo!:gqTJoKݞ([RM:q0M?aBEqГSQ-l9{gس`_}aϥ8D)h ZA>u~O{$py<S1Ԙ+uM#1JMEߤ4Jr5NKVC4gIk0͉;t]>dڢ>^J u޻ʻz&L_4@,oHުb)i/Չ-348/˨&CEC|Y|%%]^ut%_O AzoS1t){|h^E9Yu% -y0%+ B|>r>'?xW~Dr2=`j ~%PK -ZR=r  $org/racob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@*$00 Ej[k_V*P-eV׵պ]kku_uݢ{<&4|sw>ӧ{R)O?3g`'t~|0n}(¿E/~~tn~c:b}3Cito;^3?^au]Q?0/xÇ7]ՇNp } -9ûT -7t#ú!S!I^H -tݤPW& t5Ƒ"]0Eze~RJu5+3t.a&M&庪dWf{eW^9\r >g^JWU%BWN{eR,2 -^`rȅ -H Yz=Rj!0RAas6lhŬhW]wn YxaeۚW5 -J[wX~+1[a:6e(VVmxVG{3  -:0!%n+lʽ ķm¡x(8ț'uǂV<ba+WkG;^jBv[![3N5!+-=nul\ 6UG4usM'8'joVfk-:4鰖à%(Ƕ 6bps%?#;%CakPmgN>}90rCQx01rk'<KLrLu4vwQ6pvUٸC`4l#H0dmg"=!ը2{k"oHע1n?PM[Ez:m.Bh{'ʸIzIeccu `<h$u`-D( +nmvkByH21|Ȭ>a}ŔFYSX.Jc۷GcqSe.y2p%TplFA+b2s*1CQSZM\&xzBqW -e6&g\9'vP$j&cíh1<b`{X73&cEM+޽]:.K.o`Oz77jP(d7VV"x flLZ6S bm0[cJPzMSR_M)aSqĔD1`.aD *.CnO3&>} 3&zQn2Ì!n6[MO|Tn3v) CPNe~jE)'Uw)O w)Ϛ9'X2r2`{祅4hp*88&^ ĂX$swoʽZ07#`n )׌`۴)D#|0`BCAho`E+oؗ(\(r`'Rgc5הT Y&]lvt|lWEMƍz`Ad(V=)zG> _TmeG :>Kb9^bMvUݯκV`Aw#1,yixbMwauW+!S˗MyP_Gݚf+:*<,SoqLKlru|yWٲE۷oPMծvUtsc0F>EOm=vI\֫m&Z56jFt 386F3=8΁dqгƣOǓ=AO䲱@0ң3Wu8 ]wM2]-}R;IH -6tKfFdA :S@q[q|1ʊUO\e9ВŚ_Dj0zGU:ѻWWut^̳]CVxpuxOh{)[tMIr!CZ'$&AǮ+A_߫^lFū\YK+0vO<&Ɔ;Ll$q)To;^T9k:򙝌t:%CS&+T1H>rU-Rp*(egKRF儿*T':<I:g5Z6SE1z4P[ <P`(rS֊;g}4&T7yJ{ʳI&]e´;:Ԕ.[˱aR<;U#|pŃX[p+\L}8\y'[Y8U@"wp`i$WC;)yP8r:G{TVG`# 6\`~`a -3Ӥf4(b($ .I`*O3Vi L3Ӥ3 +WXE"YI-fIg6Ga4,@9 -%\a9;z;c w^IeU S@~d pEWƹ`FT"jE B-`!g<;,;X"STc\;Kw Cf -ҩ?;E#ύ7JG헯Ik(.q-T(n]]ϫ8syX", o7{ɑw_>@gY`ik\0죇Q^Ӎ j8A=}DJJ|?ΧcR1ŖOǟGG_?_ -29V&O:K'Wf=$$Oåiqqŝh]ɣ:C5~Oߓ}ҾZ;:ME1FHk 4c.Z0 -/p֣WvۈkfB'֠X$!GwaItYtURɸ=^Ob!$a4b\/1DFD{G1$Op~{)앟&;_Fu>*~ qJ8lحqG _ʃ0݅=I4q?֜Qn",f=L(ạ_ƃL*9a~ރJ$Zl97;5'QfKvf1u!ќw -E8$rAܕr9@}z]^$y 3JL:Q-IQs9WVh'Ӛ{IE(XPjߗ@}F̤IAtItA*N -n -u:o7Pذ"4 0pMh[h9M.<rfen kP-v][a+Gm~O !³_<h7>e=[v{ްN;Wڵud~\6TŶEkGqέhy(|WAvkthv(6)x vz'[FUWj%WRkd7؍ߊz+0LM o1Gc;x ߧ bO{$J1~*~</se1^dײ hUmGK/6F,4y`ÿS)4 - - -Q| _8QaZCOqŃ88)m{ۓTOMs`,3بC׎㵃dH=\;` M۷ ;+[$E(9iЌ8mhC)xb-U5igrLRJv*SȈKSɀU\@Lg(z qerX&CI 593W2# 30wh1ƜWTW7j85zvjGq]-+<eYUl{:g`8R)…׺qRX[\1+ljs]쭰srV$v Ay%5ڄ҉Jقr . 6l;_n|G|u:=IrXC2}k5<Ef ]6<xP<a;]Ӏ rYG8vX\<FLf.w؅MZ1 ZB]N7PK -AR= DX (org/racob/com/VariantUtilitiesTest.classVW<&B XmShm --imkȔN 3dBŷoセ۷އ,7r_/p!P絿.ŗv8v⨊R-81xcxPVNq RG ?Kg?S"0pRL8)MiNKpŮKvqY:2IJScLeht{ѽ/b^=&#)F|@Г*Re{2GG슡ʂic))SU$ -^=;̃Ű{ʬ)VOSi{6,kVM4jE)e?b[sd!^8:deIǞ9[w,[kqyl;aMsW`Ɩej]l1gwG':;03!pVDO{.2EyQ GKrx &gי,@xK 5vݙ6r^f']2av.=h%~Y yj%mnPMSwN37[M7sk oIHi=!De*E)LvuLkfnV+{:^96gE4WT5Uw ?UKÿ7𦆷d4]E45|e>UDpvXba`Oeih&JN=PA&<O7=Kdz/Ql]J7xj`EN]AQ L^: \ -ά:r4_sYSNҝ~X.0Ϝ1,&$z/[ -Jhh 1$3 C32Zkr̐is9fcjuK`)bq]T:&&<9HɌJV -v]+VL+G͔R(W q^y$eߨ- -͵/yrNUs3c/N -E^?re)--0! -hla_@K<BEܸX"?u h-%?m0 -0IE6M\ - ~tH\,w.k+F!fd:Ҥøf\'0Ro^zM>͵} -b;rF5Iƾ诈5.JpKh1L@jlEl -}mlp˖EW$nf)p=Տy;(f'IBDNN ~J}ԓ)D/a4$}H.Kp8e7]_@UOU#In)ϵ<di$asL_Q5J?Tan|U9UTM4T]1]RK$;T -'qR$5[_Wo<MdIq&)GWtuy񦆮m ]k@?!&DWvY&vs lGae;NbR z¦X -1XJ3~RU6I=a–p?U#PK -ZR=GH3#org/racob/com/VariantViaEvent.class}OMK@}OMc#Rf=УSE}.day<I$7̓qG!!BRk{,ޭJBVnQ5oNr]F wgJ<eFT*dwl !zНfы|^'<R8N\F#wBw`<?"23XLFe PK -AR=qQ]"(org/racob/com/WrongThreadException.classJ@ƿZmABUl@R,Uk=o%]Y٤ŗ | -O'ag7 j3Ų UB)F/Mtx}zDa(aHN<v. Ov;T[LcOȶ' Ů -n MO ]2V0I2UDw#\=p\};~p}̛ʍ '\FA2D_qJfU6.ҹ^;Q$|vaXyka?E.c>1@a9-0Ï,gmzs*cs&+|PD)D6a7SBK5!$Ef-Ҟ'PK -AR=org/racob/test/PK -AR=$(!org/racob/test/BaseTestCase.classWkS~.H,kCX|AsuBvq` l|S@-IMzu/6qӴ)NgS3 IJbYÚLy%|xN 2.%P\N0QO#"f̉)F,@ .*K)/:_AY\I` -V<9__N+ +~S~K[w -^Pb+%/Kh8fڦ\B笄S0$̙1V^1I}Ƣ$suVwM I؟sٌ睙ox~uPBgS%(:*lgɦb,Pܼ~EX==7i)u\*6Oz~)B%4 -_YßKqv|"%qO]- {{'|״g GLIgY9e7ϰvo5 Y O˖n%kin?/Rg_^ň9m@^BK`)(Q]kə3HZۆ:i0Oxߓp 3킳mC:_E"Oy#,фB +͖ƠW$%<:CUH8?Cd!UOLn\,ˌDЗs/d!1d.haѪGp mwa+~~N~_“#: ڌyyhW4YmH|-ohINQD{tyyxU ?f͂5X4,|Gs˶4EL;Й=5H_=dHŏqͤ'9~!*~kdqsINM+trsgg5㺊_ 7T-d_I-`ofC"f7甭f;6ch6Q%iIDuf8qV4`-h -ZW W YP+OV)xQ?cTDU sN>+|WşDV1D*nrBHWZwdػ|f.-w!ղj<&5%# ^4E3jAL lm֋۹ɋ#'<MvX>] r6z/ -{t]dbVu TxE}FjNf> } zd Z)oEmOCw9]іēeӇeسbe\w;Od3~VI kNtnCFkwo9(S.mvM!^_Ki -$1~O1[nG6? x Q>n!J2~7ИKʼX'JX}2N4BC3KD^ -|jm#8J6z4> Ē'e sX%'vlDuFn;HBIZD؍z(G鈪XquQW@ -MRP5$-khz$Ƥ:vMXk| bv-J&װ;5YC+ڮ3=\B,o֧[.dBjRhR#۰7J~S љjX BV;rYJ^ 9(sq`)I!f<zqCd`|\+xW <> G Ē}'I!ʤnXz#_qɷvh{@G$erj)9IAo zj@޾÷p? i$ -f]X}˄}<ZVn-c'Ƃp,|zfR*mZMEfzdV1BUY =`I0d0lMNBdLPm 0o=TcW_k W(%躞]Zoލ8MLLJbHpƧuS -o`??& 6}nUӕdq6Jv:J6,Luwa͈49PK -AR=org/racob/test/errors/PK -AR=3a9,org/racob/test/errors/UnicodeErrorTest.classTWG&Ye]P"`UZ *YkmOچbm h2Ags_}%x9}C ('BkN2w~s3?(\v4ӯ|bl\q0 -n{˅f6|k`E6J C6?`tM0.K%*֚VZ<ysGҬwVҐ1CzP@DG%C[0d8k;RSN"J1K"yx&tkE(ډԊv)Cn RnbR^[+C5vZ4uJoU=&TuW>[\;ܪDXF cp䑎j3nqa[l5N=Xn B{ i~҈ss]<|oHO,ñ~-;Ybz< -JTW\& S5'L -PeTHSCT?*1XH, -jR6+?QHE\~ wϨp7HR"k&m0oM]:ܻg5J'ѻRċԢ+8&VNz2)d+8MWis'izLYOw,oyn*_ t1+rlCrkz77~.%E.1vٴi 8;JwꛂOIZRUӸL};&pGQYeg?] QMKy;f6뵉3F@,;RPK -AR=org/racob/test/events/PK -AR=D6org/racob/test/events/ExcelEventTest$ExcelEvents.classSkOA=m -<}U 屈oh$? i鴁~TD?xg!L;s;~ `O8l]c& wPHÂcvc®Ixr06CW FB-k^êb E!)%ZO4Eh–/_%VP9bl%5ؼ* %Fm]U+S<XZY [S.do>tLrGZ+edE -MeTow>ת_ռHjhSpdM U^5p]5Ʋ ֑*WTC♴C9d*sqi=&\t#஋{0 -es L4LEZ<dh f]<œ S;[i>7R%shܦ [a'/W" ^on0q[T7j"e8ٴYC,u~nJËF/>^PNk_alB}8/ӈQ|RTs* . -Y!\=D`)Ft܃"Q-$1s.|H0>Ed6dFd,eȱz#KQ=)E?PK -AR=RM<*org/racob/test/events/ExcelEventTest.classXy|IzDDBH"N! b@4]e2mڤ =iwýVvcH[& WM߬$,2?{]7Ђ*؍aqBƈWȸ[I T U -xu5k$VA e+dNp/&攂 -ވ7xEiѿUŃ2.!N»e>? 2>$2Qq2>!Bاd|Z>#B$|^F<"㬌G /H| y c -/KxLA  -vhx\W$|UjZO$xuNA&ci=4l\YIPn37n?M+v+{tI$v z9<넸+4V71,TwpRqsd:e# -Xe#d&N#ѝD%6_6Ź0G 0,׵xdi5$S~TCi Mv.d9[ GLڸŠœ"Zۻ0iwCv 2R?`XUfpa~0-do2.GO3G~/&B -ü*i7g-3"Pr>u WgZՙӄY f - -fUE:%<ItN,%d7w@>9R &ft Zg`H#{pHXk{sRm )&, U|$lN莜Nc%o1H=XgqYwT|O /A!ŹE*~ɤŀ)%ΈFRE1KQ"(~NXE\dhni+p#|X4҄~u{hX/Q.Yn;bﰞq0KR6PIk-'"mMd|e] Uieb 7⢑<am47#SI-SI +q&ѱJ/g8±1,r]N@KjPĈ"TUQT̺z)RW!sҏaUe7ohr*՜m7,jll\l͕+rfrHob,Ub&il;,S`W1!8u*R.Ʈ( X !/(׬oXQ MTI⌥bi5{) -ixU]cV(. -Q2bؠ.ff&[y}/ P4{3ժ8$NX"IX&|iXJ]9n&ՇyD#83p|y2-_x zf6V=L&:EX!DtPE;%aKY˦9gw g<")xmʥZU}m4/wLCu3} c`gi0{UG#袞$OZ<9~Ou:' 5AxƦ1T? -e5}cPsk yXP<+d/QO<G|?2,TKcL2! t_Ǎg\F iMf -]y}.9e7 mr92RPH h ThPfN0.#z*yk<cGr%@zRl{cmzG$bǭ%)F.%B= Ǧ:lQ(-=KXNcؓq0. -Ta%qԢ4jec3XS@{7nGxzng X-lvcAdaYfNvȢ=r`;nvɺ"zc␋0v=ܓlziTSLAI h${hWIS=KRHy9bTKOYPM@eO I#l ?ĻUYBJQ=*XxFٙ^KPɦb>G5]D`;'kX3chxGx@r[^<;>XV]54[%,Q;Hn ɐmR0o." ">2 1Rl7@bTPR!TNBv19nʡݭDt+PPK -AR=vFQ"org/racob/test/events/IETest.classU][G~lܰ, -E i#a[Z (P`&ɐ,lvf_}lO{ًS{fC"Ɣ9sμs1??2&R&cz'FpCaZg0#99ܔ|?u,۝X E*rY+RKL NyêԬɫаaCALx;Um8ĔↂHu+pҶ˗rYsh/噳|[ʇ(ل<峼}ᮨZY{?p\gOVee٢bBn%F祿 -yaQ-~P08+\rk@<^  -AXsVP0v,!ugo/JJ&勼x JWȄQZW, QIYV5<I {[<OoIW3E+:|" QHjxhKyn% |1_ `Q*@+v -Wpynʬ_d>,G5RΘkM `¶ @%$UG-uHLY5GG,(\3p -ELޠ^V5 ):.T -[ԳVWZʄ5dc~h(RamVѪy3~GѺ٫ -^Iz۞u/(e;Ji7&:>o8?j,2+V{^Oq*Rr\E"uHgwQo,f.z''[ȯdK^$tzhҚwIGV@bJ"3:#}̺ڧf~D::dFLJ>1q1O4!"x>N,_MKmP"rP۠tȗ$_)zrb\N֠qO_R@>N35Ej8{sG ~ ba1D -Uy`yuÔSN2I$WHn\F"iN&ܤ-JmzG!'`SyqyBQJ77z5\Y - w_PK -AR=D>֙Gorg/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classVkhU=lv'ͣiV֦vmlM6_l&&oWbAA" (  7ݝY%do=Μ|ׇ؈71UjHdal*Apи<4#4cr,[yvw]<q{q<#<Gy<h>)j]8Ć5S2ә4u-6؟ٶ.Nrh692!C[7o1R_\I3C̆q&q"CJJU4vga` e%A-זMWLM(*Ō:L)X=534%L 1I3ruajEpfɲ֫(dS†%nyqϫ!Y{B2UruA0}@AS4O]2$EJ T_ȞR+٬ :Dx,>ɖIT>Ks)]33PYRt/ˈ21mh xAWUEae!0F5p3ݢVf(IˉH&u Ǫy FyW^94 3S3ܨ#r\3uYDl(]c<"hq 41#c>[,H0=RyQ90R*K,oآUlHCz))R͖qI\TD)mIWSl@4]Q{VH$ :x24tLo`iJG I: <s!<BxF7+^8p,!WHZr h'8,/LaǑ -(;\yŽ-;mň}N6 -8Kf3dAsnX2!ש=2lY hϋƣy;W -: H -j&WJa1;2Ql~ %O^Jj:RTt:1IfɒL_ B.nj6r -&)cr$I ,EwV⫏kL5!䌙D绣ZcXxV]&r<Κh -^\E\[ h :Bkhv Y5P갖~Z:q`"<FGBCH ]*M7)LQ 0FS~9#W1b>s =h0G)7G[}3}6eZg6eiΠ6ʴxhG߼y[=zxOV*ġ6(6ura%N;|W_SW3qU5'ۧmڼGhᡨwa",3$j&-5\oF>s6a[O~Ir|rllΓӓkpwبO!QbOo;v}l -)wKKl-ߓ V<VCUxVqRn=5-d~uak\O߈wlk`;ϓbӅ&Zr7Vr\wK s>WCVRkj.ָ㐪մR5 VWN_Ryz\j-#5azs$b.8PK -AR=0 u -3org/racob/test/events/IETestActiveProxyThread.classW]tT 7FVL -hB!$IB K Pjov'K6^ bVEժVkjЇzއ>xSMiKS?_`ޏv 1A)P66D`D#Ș π -&N60Uo,S71aZNIg v3&R'L|ē&RRfiϚ`9M<o - &fh܋MM|j+]ϫ^3@]g{tlk2tdoOX+ʬ9'kL kt Tt I野 -:a;efd@Nu][*ۼX帲'7:(bvyI;oa!x ; C Rw'8*!q׊ GLB5Wq8]mi7-b72=-)FZ!7$ӲhbEh:PAeXUJflzCtr5Dz#GڼQs/#ݶm=Y-˜ ҝL>/$e X#Z&nYZ |&pڹ2l3^ V8I[i@wE~hG~pk*lvdǞ}aûsN&%k 6,\ ^;L[9~oZ \K.BslBS8'()u˅Ћ=o$t@2N6NWKa0ίPM)yTiZ\ ױ_`͍\{CY|Cԁ7{ -30&"wB&iJe;d=\F<5aRm&ښ0_ K?e`g." Q^Haxö2c97t2Sr2)ɗiSj.<-_`I٬%W\ʕh:(3ʘŻ[e=e%- IkY;Y,]]ZZT51<P} - Q`RDTNjryH!UGh1 HJaImK@1;oYmm^$pkBƖ-Q~e=PWBX'xIVe3R*QV;7"=VBJiU Sd.hٌ+G(,b" 5'Յm{𿇣l#[ w^J\\YCJGVc9+`tӨA@j - Qc@ji./]5SX]5[ӈNnNbuC6]3O噣kIĻgwLaa5kTOkwjwi4gH_4*E/RĹu==hLM$]Fgk#8xY}s|廫ߩ6WQh7>|jznθqc74F^ -_Nğg[/)*{8[ACm(Έp?cE_G3]nF@#b8~ t| yǓxau.axD4p0Ic| $_qY|sDO_g:cb#NMs-k\ǽxO ϊω3x]>$Ms`Uk1\o8s5Jiia5[A5E+{*ĕB&Urc.Պ׸sQe0pA{L l6 Ks~XmlV9Z[ͣ:ῌ|7,PK -AR=Q{.org/racob/test/events/IETestActiveXProxy.classUWG$,U( Ukkk"h&EunE|m>s9}o}c{j9'3~wib: \H#.R -'gಁ8 ]m5-~u|~օ\7B^[nq |yMzR]gHdk ɼ_ VA]|k<ZV&Նl0Lj˶ eMᩆ8_")()W,ÈF,H[ bZ|.Du%*[+{्@ -)*J5!] R>Xy]3E1LUj71f -L,capVM|]`Qҫ΅ҭތ~ :g*Kh`5hS1D%_cmuwM|{&Nq+rH=Äꆲgت 8XM"Jv=̛ >oN ٵ:~DTdtR!42s)|4wv;L5\!4ԙ&A7+X<ҷW(5N^ Mg -k6{@}z$0B3{;kTZ5KoהHZr=t>'ZTnK3;]h?ivCC'Pt'i4z:5u$vF{j<AkgE(im;zHyda};A {ɫ~Es9x~4@ {~ l#ɠUM'{ #O!5k -38J8ICRC8C,,iOB=Ez|:4`ߧ|+&ЍeSPK -AR=u^ 1org/racob/test/events/IETestThread$IEEvents.class]lUS -{t"[ -,TQ/.]`" tv;0;̶׃&jb4_5j⫉&ُnI{;sg0O:0W؅tNb6LH ~OqYxSzq..pQ 7H,tK )` c`;C -5r4]'53[V1 -v',S>aiݔҼsڼA/m5cNuϮ^B -ԔO:cҞ04Ǒ4W3r嬶5W*ؚ#oR~[MWlyJ%,d]ƛX",ҥ5i-eQ7}ROkʶ-n]n|V.͂LC͘m)#cfe\J1OWtWAgR8ܕ1s!~$gY?w-#O(K۽Vz|Ŗ,噼Jɫnݭ3F\OE&kU켜=fgh/iK'[EN -l&R#(Hf^,$*q5k*;*u M4@AxZl;*Wq({PωBSb7\溦5SF)Ph?._o{}Cc^_lD-5}U덆]}Ȫ'(:Rgk$5L-5}Cm$µQvNfZKz׻i"{qeViFRi.Mj%,œL=RC֐Hy 6l(YvfC `[radZUMP,w~1 >mޠ+$~vxA(|4܆nj^>U>  XG swo -bA8#wW٧rtR'4XV#y%7CC0&3=!{?3y8//2`0F`3اX@f/c!L09LӬ1GrfxdP{#M{~>~ qrBY2O0_y̋! d̉B0m2+C0oy39;B0?'K;C0$'B0&Cm׼J|PK -AR=-(org/racob/test/events/IETestThread.classW[XvauPY)4ڊ -- SDlHEQa#:; 5&iIKn5$hhLO</~}}C.Vaϙ?6]pT-}jqb臫ӑt1Đb İGcZpJ:N+qjzRS1V⌎8Y%*P4</* /x9xE -E t5+7G.kxK@ojln0\W NK}tdR@t 6h~72!l#K8VO@ ,G*U6r{jl(z}i%wY6UvAoL -MhAۑ)fv]ʮ9; mR`ILە@KX˷9G6iJx5L52BMSc;O!Pe[J+Xw(3Tv̇= "dWB5rM6"l Xk&SFe>A4L*x -ұN(S2w+0g?TN}bȅ@5|S,@V %-eeH/ʂިh@z0WiyhXʠx|oO;a)i;LsU&@ i>'LwX ?cَ$/xzL?/=Vk⚆ (D11Ȥq儙=YBUn/gz^_&e7;HWC:ʨaNYAwW.ԍ10wV1]k,FfIǯ9^h:<MjR1Wj31 T̶7iUIw vp(J̌\; M?7M5CC7Ԅ4 0 w| zm# #?s>ފ%m+iifv^3o  |:_CyIʶ->`8SZ˕ .-9RS:LOSsjP<iJ"zm)ksma{қl7[*g3nl|o:9۵7RU0ϓ{U´#eJZx}2L,2%lِޒDh)&?jj)ްΗ,w^#|jN<=RQCT\E*WH-.QաnQ-Rͬ4C>O"|zv ܌ȟ)F(.6quƵQ-Uq:X4*^24X9īpF|Vſxr9^A8VtҧZDZ:jf -/Go)l)*+*+| ˣeEinrˤPZ1OkC(Olea]cF>D![W3#Z) +^ྼaD.b"ԄKcNzC7P"oZ::;Ge1| -t7kWD퇘wC,Z=~N\bkIQuvNP$VQy58Ї'0Ӥ<Kx >8Kɳ;n< B(槪sϋ8^q^:m]-^w%Qv]:yw#<$^8.=xGM ?U<xVf.q߃6zxG%~}hgTzysq(!b<nОשP|(vQVT|8.|.LPm kLP>Ŀ &'"GCRV #1rI$rwD9NDn0ÑFw;([qůU:PK -AR=J>i4org/racob/test/events/WordEventTest$WordEvents.classSmOA~*G)&$ 6B aem+5$Q٣Q^J3X"9\D-0C f>~wr9+Eي6 Hl(B$&z 2.S3}P,)ɐYё`H%Z0|ABExc1(1*%J' u,g8RG_)V>6\uk/=Wq2RD;2N RUn -0~Z[-Sdڕ#e,8l>.{}, d;EK6"h Q%xotlIOI4N|,Ow桇G>㉇ k,ђV5nVU?1 ⺗XӁnYуIVKqfSaǸJ'L)pH#y 5PDWFa G^y72hnCϓDzw>>W-=y,(SCƻ(O lBao;Ȳ/`068:iTM~PK -AR=~ )org/racob/test/events/WordEventTest.classVwU I:C -(i-T<R 'dh23L -%7=# WH=薣 pߝIj@k;{ϾQ<H#FU\H"*TDFHM9\\^<UL$Q:]U9\K: -&5-a4ܐM rᶆwT+W喝^P - yJg -Rl[x5]g, -)eM):%`s޲D^ޤQQ;Q2<K[xPq0xgN1?ȉ0Vn1$C -K Otni t Y轾䘍zal5+n憣yԩM32,Cp˱kd~wY#W3Jx]js0犼UKkM aΌnȃ -ՙ b -[€Bla׭Ymt2cK5TD"Yr̄6)zP{^l V%x#fPUQK&c9# VB4ڜndJSp< dڬ|nu*zLY|̧pڝ>,@h#|`%Od嶍m( >d>(8ur%?+tB}2GaG:y\7fDd'Q.UuSIc O3~%HaEe 0bb2<~>r` yD,)9̬<2 -fs: -3WC-; YrrWSuRJVcQ 6/2+ iudWj<5[٩W=^07ִoqWн-IL(SZ-eٳ jtUN9/]7"7$Mr6>"Q:Y8<q lGqOY pVk(?bOy HLg5=u`;eG~0 w{EjݔĖ~xtb+&/jx;M &zOw2{x#de&^j}fH?K c _+BjH "W{I>j">epH xg88ϩC&Y|Mop`C|JOzzȘGY2=N)o#$wtۄ3 -g"ljS/7U[TCQqA^a/VPK -AR=org/racob/test/excel/PK -AR=fHg 4org/racob/test/excel/ControllerTest$Controller.classX xTofy/ !$(0&!<ɼq%K[njn[V֥2"RmUJmXmMޛ$djss=wx@,.FbM|[qܭ9}O -H.}Wql *A<n#*/Uq01iq?RqHrѓ*~r?S -`QqX>GT\ByV/TRZzNůUFo;W+xA%4wl$AYJQqTɑUX?7&-VfV1 -(v3 6{+k%룝qI3M/u1=YJFK-k("7i6FFOYzڨz 7 &9ꊦf8Lv%v2RV݈ь4c1#jXKLjT7 -x#f]+iƍ6Nm1v=QOFeJHACZc<n$#1=287o4[wӰ"3QulTg{.nuҘz01S(XhwfTg$j> z_hUR'b 5<2;Ls'#=1'fwhAijf"e _cUbHXQ3^M%xT>-V\vڈٝ0FZ2RCPEddɈG4#Gَxlfe 3r{6a\&`P ntؕ+0!"F@sc}3RhcHqPz dpɤ'rl -B;)ǂ3j4 :?2$PO~h'8Ue(5vLLz'n8E=n(u͕4]CP4`i؄a30Bvc"(@;y417HĢ,U12D1`S41FhTe9IqE51N)\y &=ЂP$M$& r)*2%ۙl}2bLC,G^隨'3#&f@2^h1S`cJ 1COU51Kj8kLUqXIzc&~wb~̛6l4Q-*伫},\:5m;vk0U[F 5uzw-tffx2BQ֭P4!BX-f -$B#j51WI_vB A Ȃأb&B8U~M&N%D2ګ[FȮ]I>yFk|^ Si"^EA7tdPg=ː0eNZv%]?~da 8o$Am)B,c};U3aaw5EisaM #i!(xܳ3wY͈|7^2}TA<NFykKpn+5&+;.o] /"uU\4 wm$"ǁ/ܓcX/4aѐw/daABb N 'Qͤ/3,;0h+-|x/dܶ<[几w#Z~bS>FmZ֘_OZgj9#^XZ`k}jj3x'GmC`2*M )*< -Nt(_ C^mC8gv\륥mF9ngo -hu>>m5@l9(bl*iaB{+k!`ϜFV;+]+R2p>d~vQkTJ<-o\=' 5XF@Fc0&t q~wU2Ecu0xnBQG~h[}R,QZF0q -oߏrO?ƫlcUQ!e=<)յ4Tvd~x0hlU69_OUr|6k՞JfHK\{q;nkWש;\2T<p).,ml9r!<lu錋r-_SDDX!"l9RM\^#5QL݌U,fg+K`h/b]ĹIp|9 D׍Yw2ua,CQyoQ |@R"1.z]TSBTaGLI*Y]G =e_ğF22#BO.dbY_LOo| >۳t$+TJ 2DvIJ(GqYTJH\n(m򳁟5 0!*xʇٓL |e2d0e: BRx[JvJq5&WHQ]Rt1+[cꎥc\@*ƋH$qjW& !D (x7 % JQ 3$^]D1*r<[ >[<5QOjKd=r(^ڇ1U;\LSy&!8K,Xic+}~?stE0FH+dOgaKX\؇aw-mmJ>f;e$w<J_==zVnO%~[׺pSY_&,؊1WG{qtigVN`L^ߨ&7WsG~V2 Aqml^"𪫃jX^(c0$'O*^ ;D$/4_s /^m˨s}Fi>a6 -PK -AR=mG)org/racob/test/excel/ControllerTest.classmOA[ZZj - hA-blE ƗcS;*L|H~(ii5›}wgv~$µ8rIDf<e.bד仡88U <WJ1h5^Ur>߼z [7ط47Șoo +c }za!Zuði;isNGx]%cܳ midI+Ð -z"+CHˍf`Kô#ٓHbWZ{ɝx(*uYⱭ #'XR 0ΖIuꦆ41 /84,▆۸a qpe +a SH1wEU/J3vwED2~D/td24Rsvw75n \aJ" -1TFoSC'-|?rD<z䒞k5PSh)jNFFUT}nfFsx\Q&(( -YZi \h;C *~GQ># %X(ubt RO3?@L/}$/$ \L -lpDϐ8E0[͓W4?sD!#tW) Q7PK -AR=org/racob/test/powerpoint/PK -AR= i- Corg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classWoUnۙ-  -rq,";j[ -Aۙuv/h r*^_ vCƒOD_L 1wݶՇ~9_wz~ =Y(F- -ҰUFu,@4Wh`[U;mx]& -ehU 22:d -LDKBT<؂)&cq![ o -3ox["#a}2+ۻ0!k ڴ;#n m.֌V]2ZSdeXaj1܊a3̮4V&?hD!̴CztRGmdHXWQ*5 މ󢰞!l ٕcMܪ1+͠,]Ӆ 3-9I`PrZ;auY1J+x&BS:[SOJfPMI;ɅIZkk*-{R'Q0(f - -]$ezBxaְZҍ 1=-`Ôh=*!>P!:GRU,œ*S8 -T1ɐUښef 8!ObS*N sj'`sɕbLJ3*✄* {s$HĦ,.1L0`ؼ?U\ a3圊/Jz80]#_`gx!ʴ'nZCiQꦏQ>rjeG7<ybH+(cX:0i >mnjA;ɩeAE($QLm:z1xY'ʔw4#qe>=Qw1{h*t_C6pCLE0fY1'[ZDG-Lh Ǣ!Q0hB -«[0s-F>9rxknl':[ 6wLmMU0b䍳)8h2,$] lƣbhvάŤ< cw1#:KТ3D+S?_ i+s-JeѲE_G 󡄾;ĚSؔe %^H(#\2L@z+Ŕ+A&A!E; "t(Nk$|JsN+y}q TϺ -uБHK Rӈ%wVYvQ"(A`n0C0'ܹ}lAy$Fw$s  E1u Sq'=eynO4RQ|+/Az6`r*EUb񨘖;7g%Ĥx}wao^^9W=pw}.ˢX;U{bN,&BX(Db4M؁=bYON.J<wqX&.#Lle8<AD?DNd]8Ŏ4,A =6YC#w&żN4ߢl&:uxƇf`^??F)[F%!$/=@d*cNKi"ތՄRXLGPK -AR=hX.org/racob/test/powerpoint/PowerpointTest.classUoG&j0!@@& ) 8q1u&= vުs%g$ ʩHRO=B7AHyoyߏ~?8Eg d"A |jɫ圎Ň( -c8E#Qq:%\Rh[pYb`U{sK4+mK/[3uYX3|iF`f( mYǮ폚 1]`˗G2l?%JвNE -+XnLKdȉY5=K}35j1M=쌧}ƙv ;<~$ ƒ]3]3t5\_V[M]gj Xܬ՚1W%D=Rv&]ǖ*%n̲oݕWҙ&.HVUyV5rU}|gt Jg \3pb@4Y - ˣ?0{ |#Cشh`ukVT*S7b SBTY=1Tn0ח]ta  c@R,{LêU'l6&~a,TR.JZv"&aʼn'1x*Ϻ+y -l]!zƬKu%%E[8}8p<P)#HVfޯedBo3_-}n\/cUfGģ7êgjl`Bv_[^I鲐s ` W_% nVG9rK'QXg괚+mֽ/[|ʇ}N,H '#&3t;vc/ډmص{7B]s{yT95 ykTp)bM!C-1{6ŵh -?1Z{Nhau%4dL#&ľ1W  o%uJI7b,ڦ~ӧ~>_7J!zi$4Yl6)k%h}/$o]9' 4 )mHS1#8pS\38G?Fpq7x2*O'= >g8p?CG(~¥a;qE(-Ft/Q׎!ƚkRUlCF˚%(B7pq}px/"^ *ϡI9@D O >ZI; PK -AR=org/racob/test/safearray/PK -AR=Հ+I$1org/racob/test/safearray/SafeArrayBasicTest.classy`df1d#҄\ @b41 !"Kv6qw#/Zz^EZ5m=k֫d# -f޼7ofxQhpvt2Nn6nwFCIw؏9k}:Et?'}s=cAntcl= % -Yq=G8kӖ|"eHVn?qe#DJuf8~AOpINbOs\%'qïN/8E'䤗 -׽k,:~}o9V)N=oܛ\K䏜Ef⏿8鯜8;}uj4NS `8_,ȑ_*H7Áj#P/oRo 7FJx /:hԷ\Z;ZиXyc$ ~\Ho#Pe7  12XG;9뢑yqNI/P镆f -:$dŠ&Ղm:6-Hp}6N:m 3b&OʤrUc$aP :\'5j. W.3NrqY$ -CtPA\Vł&HG)&w4 o(5[t55IRK[cHN w7Xl51{Pds ,89xjjW\!c- Ń)J`($\Mu ҃a#7K oP:<s{7á- AǜǠOSgP({:}Ǡ d!21t .PjM,4DpcC581Y Cd <{d䉄=A^ w1[`1yb!&)8D<tC3Y~!so1 Q"JD"DXH 1G5D(gUHSA'/b8?bXjp`KO#Gzg=_7@dz{zF,c5ie:q4:gU50|w4R(ǀd F<Zp|u؏ -Qe$bjvb4krG -Bbh{}!쩃ӌ,'˙ 0iW<bH}&)j91~ &S4r{j{0iFKiZIS#W(<11Q I4 hA`a,qJ5H#㑔ZАXס֌Y,eB4q̰pIYZӨ$d+;L]*tYcZURsthnKob¼.$6!x1j,)<@Mjj Y^c14E,iNJcAlx5KPwМy+7W!d+O͓{$t4w׷כ>5/r]vF}݁͑ҥ2`Xe-fm F*Xӹnj7Mõ/HtJ ~'qf#?JdǶ.ڄ\P(9NTM3ի^UkmC,C'>RH]RJ]4o?>t+}1n2+f-T+>*(@qTn5 Ѡ&4y[-*T^-PU[Smnme{ Z~G9S\]ǡJwy ѣ'+4^G=_`I4&8!Jh*C+ O'S]**먘nzTFoQ9Gb<'W@)L -֩XTȒFo\Yy./ܝc(~ng190(NwNf{*i mS9cXUtN#/ȭ6 NgXDi<1^]^Gv^WɞU'7 )xtۋJ؋AUr5Lh-:,j|*Q-ђn&XhT-~h5C!iˇPeGW6IhIN0*A68ȡCWz94}poLppo:l$Ç(O(eJ☍:rʅ+NpU0x5\ Jl$U)Hz,$h9k:4H2$Uvɹ_ I7dL Ôt .DrDj:#f$%Gx~R2n8WlfL+0|`W.aڑ4lbO%LN͒IͤZ72)!!E#$>:7d;:|ۉ`y'Bv$IFB2FR8I(Hη;V@] jePW!VP+< мb3y$7JIF&~:MIQXSFj;V lÿmIP{>2U-^hn|r]>@ `!)#I9Hp%8ըCU4.ʡpM3f ܊{ O# Lwa w ty ";܄F l.,0rE"A~(3_$_r'^e]udxkjV_3"Z|`^1@K+x5oH`[3Ce "2? D^7'%*wYp&ʳbX3>}qͱ\"\bGKm[^w-~[֌VӌVղjN$>02(c$ʘD=W+\դu'`pO#<CGгص`>R/{ enzv6Xl͓wʹ]Deg͵8_.9_kyCtױOZOM+iՈX@ h1`>Ovx} B|_.M;,r -S+c`<Rייv4¦t`{jTGS5- EfVGt"٠|U_fuyqn+§u=q~rJd "E :1ֈ,$|h.ƌR<ZM<YpZ^=נ:5T<WnuK<60? )$ )[kE|)[ǧӭf7,un}];^wK}t".2shynp^&*s3h]nl zCJ{$6\"HLn.TF IbpFXO]b6uB)sE1B[)\VnQNwC~ك -ىZ,.)x^_q|[6Q7Q1{oxWZuP.x }oqPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classW |T̝LnB ! `XâN&H2 ->+nRvmH]>i_E\Z>UZ}O[sdݜ{Ч0|h3i1~A~g-&9y3?E W"{#> K^,Wtν:J7tx - "~#5GS톏j.ϼi/:bOeپK+K"Gě"yQѻ[2uw=:ט7;qE#]/ ?JO"g}UP?/>8./NXzqK+il#]!eׇ&JTjΟ|"ҽd;C‡,"r4\l/b^Rb+Т"F<#^6`TG[„HGxIW{s1HN}4lk -vFF|}$F(v p,^ - :wcM̲ի0Em*BFC<ڸ8ɭŎu⨭s FӨJ6FMQ4jZB~ `Ǻ8X7K P3r(S:Y'qJ'poZ$#m7#ΦECބ`Dog!FKnŁ[nM­:pIYf J!C,-ܒDĒ19f7'ov5K]9Y[[db∅k,ha>c: ,b<]pmDF)<EFi ZmXQ aꊴ;٫ئR/Υ24J(brELauqN: 1`p{q,5i*g l&b:Ͱ|i4eM'xlBG͢6]Ljۢ8dsҦyTeS5:ѶpC\6T#b>ڴڼZ_6-q ۴شpNƵ6-V@6F;BBnny"v$R̦i5ZeU%=FZ4Dl"MQ%6E:SĦ ݌n)GCxh}qMPpiLѧ_g2* 7R}%vI$wHb`;oyM<M-Ƀ9:LܲSruHW9t~ߵy]է3eu. ױshidvFz4_<je8}/'ZezLɐ\n\F<گ-yDq$ޓII6gpxoSrƹ'U*-$d[ГoUb} Q67:=Ӓ\|jz9=DX/|=oS4$Ё{5~a|rS=߯ǹ2QTޱu4(Iˏ^@!ﶸh྽CrwDԐiIWV%DОE cKr*M6'=Ċcq,t!49`?0ah9z>p{1O 'J;pzin"-eul_˽y9Pr>*\퐚-wi'pv$q csX<$kxYs<l80R892scِX9I̱9Nf̱9N s~K`sg0 xspH785389f3q.s9<kX1jX3渀9.9p:c0z渘93ǥqِogqFg̱962Ǖ̱9^/gNHl,,{TjO`xcGn}yLmR/X0rF. 9jiStqy7 -''Pޣ{.[GOvo~$>F=¢eu4ٟs1vEEɊ+\QnLP$0Q&-eꖲzK*k a6ef9igX=4u9y˹-Ubr q?]qt=S3*f+۵\Texf џЍƀ7L~{F05 5,r!vg .ɅgLTRYbNs\N=RvJf@ - Y+fVheղҟr1We+2υ8?\es\J g,U,W庖j -V5X dןUZ@i -M3;)WݘJ Gpjc#HRF٢1LA5G)\s[Kxn-mn,SJ$\bVD \A2ا^*rM(&V0Q)?؏Kl?V1O_lEYkn\F \!t!IF11,0؇J*vMͪ8&C=ϱI?0yIxxIXqj\7ZX5.;KX.\…שT*Ui*MERÝ<s"p?L@Z3jvbcrצ ~-rp9 -J,BϢfCׇ٣-X|_w75(nnΖ30[_|,/}>$P.B\GNe&Z.ԅ[hnYډN_p'lM EE:=6FWL|U=^_ mO[ok+j[m7{}>><=Ga"xR{Oi„> ?/3z%~A}~7Y=;3 ?׷v<ߎ+ %(^яU=ZoL·͛Fex˘[q1v]62=^ٸS >4G 8w3, saf9Id"\@L2kgnt3Jf'fit-1m<8w!þ֬5鈙vk<k&3/-ìwFX36lt -{XKa,W_%i~_fMGZз<ۆiJ_fikZ[{_JO;{Y[s&kydm!ſVE$Elγ?YSAڇo-@?Fw -O*<";hkcxZcXˣԊ8uxsGZܰA;KyG-<f!<9~IΓ<IqIO8ORySΓ8c O˯:?OPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classURV]ؖPM%\l(i -qBҴ5iR $%5 zˆH/Ä~@o#.e=N={i_㯷A8B= u|i 9@Ǣ ⑎ ,᱁+ZCI)5|JAjxf`XEXSZ^aCw黮F5䂿\Ym:ܬRc|[Vd2T -BQ!ێ PnNaMF*Y;=w3@Ohn-ZBʆ,TW)*tTG=\(e!m8/ -sǒjx*r:pz5:B\[  D(e ,I"p */S\#I岬Ŕ eCWQkb$qU53y{"t͗c;* 1tR"uYa6?d#~"ۋ I`Mج쎆 lgP@[2GTwQw3x ރKLXֆ-'`t @RWMViy`^,Plbs9lZN[梻s'F6ek8Z~]VVNcme:APt@YSҒFD'٩G:$C+9ksFbrV+ Xa*>-k5G}:Ag[g3>Zsrׅ% sLM@׸ce>9#|L)`>,|^8Խ6%ku3uJԮBϛS0lwL=xSG_N,lKM\.jY c&0~kb&;؛8}DǺzS?k3! AŧeˑYb?Wįs <j'+/w DiSL$}q#L&4cuEm|1rC ۟ߍğ4|ٿPK -AR=E} ,org/racob/test/safearray/SafeArrayLeak.classW tՙ~d&Ik ԆDJ i$C2f2f&,k)hMҪzZz<=zxv]۳d@~y>}7u7nƽ։:7u` h0VAB!HC؅ -hB.Ĝ1q V76Åpbix]&` {؋}-]xЅo~=A6'q#68467r@`K*g~.2˂@t6oYG4xc0&S6Gux Ϗ7Ѩk~%e* -d㍕xe< 7pmYCbI$)EBA֘  Xiη -~Ye ˷ZH>WK$4YՐ)qz]<).Y?D["+us$T4QI`k4&Ƭl $ -I^J-v81'sqqHk.ݽkaYK9'Nx8NR)n Qf*ٛ+pgpփs8yJ󅷕򅛗tƚ --Z -yM֑HYozpfO`,h31k؄0zڃN|S[-Le΃Kxrwl`k'ZٿATc*QE}:y\j x^dIU{cÃ%3.۶T s߃nx]|KB;W<x7LzpŸ֠׉<i՝%D .bLFD hds18pk,hxJ;3S< -CҔ_;YXa"76|  }xE];I]a!!kIMXwF#-hjΰkޟi.\m r0C0Gn'78S &JrF,+M 7E%՟u5C)y4ĝJF9`S#&uNRӣt4ScWo95j19ϰarϼyChd 2P4,畳C_3RZ8u -?%wغ柄07dDAt,膸lݟ36N-|z&:g\(b(Ԣ! -SDȗ.g\]HU,9.L}i^O7u`p7 c0W2UnBVwuN,_yVN0>wCiʗZ_q`qR3}tgrlͳ0A9NiWJUTkUQYYX -]v|Qs<޹]7Ct7ϟ=!<o/r.; v&}.,$0 ]b}cz}AA4&H =8H /{3LLHDv+}zҿˍ(}KrԫׅۅE٠NeƗ%|Y=X! 8FWeQe§2Ѩ2STdT)*QTLU&2峪2Lӆ27 3 3 -dA -4*H" -22:A" )[AP9 tUNVd7wKt|2jCAvk{C!9_"J<g%mu#!K;]Ň#Pbe̔k1|b1[β+ JD.x,x+ep[-[fX*br7^<c|⋲G^W-)߲K+k ~@k;-~ro0 P.i1KM8SU kwZ[,PX\7XE~ZeJW!_lߩ[< 8AuZ=:oS]حk'm KwտZ~=>RB+z!ע }:<c&]opR]lq.ZW 6Z :h1wPxœ 1u¬_3xgCO,b69\x<,`BXQ4ƻ}ove:ZC1>r -R1ebT%Sb(] -pe5_lA؁Yyb!6vch,a(/,:ϑ@UױYOEL?S]}#$3yI'4xTE;+a9mr -4l 8,sqD\ƣR"[+pJށӲ -Xgd {qAi̋ <JJ܎gN\bU{5y~a4ȣhdgϓ_$^B|Ͳ)ekM?U寰M;Z`@?씟`اϊݭأ2ɽYi8f⠚G hg>M-&Xj8V+*1UXgFUpAݏvt/]PɿA~xϪ#LӨSOAu\A@]&y7MhV?Fg07!hUf{lS-ت>& Tإaz -lp@߄k׬ Vúm6ĕ8W:`UqLגד788wލA\\nC'+>}8Iy<7$<Lee!CLh.ì"Yp+4h5+VX6r|qIQb=$Uޤxz-i&a1¤U6&]Ik:5a!aqVQZv'C K -|'z'Jze#%܎;FgPr)+i) G?;i9bxXJZ}<PSˉ*'^FGƈ~'w3”?=ZQS=Ί >j4VHj-Qy=}̹x?']m((wkPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classUSW.IuY*Ai][jڪ -$HKMXfl;}c:3}Ӈ>3mi!sw=;n~_\,T1a#ㆂ1`LEZ[RW1!rT)wdLkh59宊{*f1=TW0 輀4=n0g:5+>a۵%{io8]+W-`jYd:soKyG V@*ob*AjXORyFir,jh8%ays5@yQ@WA?.p=ɕQK0N{n-\n J^ F>0K͵+彚_&lY[Q_qu|n:(` ?ݲ!2V<ߨ:Ēt|nfLq27؝ϓ%&/咎e0[[sȪ߫=٣c:2#af|ೞ,[>U 3mj|kt–CHnLy#8:*X8̐CK:?Vy`ol/u52+CP֤䐍d0C_ګVL ta#d$VZ^1+]c^R{HT.kkl?7T;]dfVS$#s wӀap?G'S5){wE9ϵ1T^\m :mϗhGFl"J<Z\d B:oKܿhg4Z;ohO2ߗhDsжS::8?/Nxw^.]f׃kkqDB.nE6IwPƦ c#`>w - я *EZ vtDïSJP^A,TlRg|+awPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classVyWU=aJ M[Jt[]Bi@[4PڤPDC2M$Lj*KUZ.jVM9bT?/_#7HC޻{o~營l /`@1 Eq$lý8.("E%,C@NN ("$BI#""|KX~1>?ȇ8" <)bT9󔈇aE<GE<&qN>! w O xg%49^𢀗JhQ`q3Xz@e(hQ7V>e8LG+~% jCG]qů 5a UǕS./QהqnesM^iE˕sSK"R/|P@/KȰP,P*JL:J?*9* xf1Cӣh4'7Q==HLQtx ?ңLL,,타W(WO~<m<ͰC2TcWxU``p^kx]2.MBʨȠ$-os3롘Js3wp>> dp vCY:u/PXIOUM-M2> +*^#EI-'i >es -Я+\&G@fWW' %n8X<_1ȜF3J׸RVa-u*esƇpNjT}~+jjcӈ2=QV)f[? ;#M3ueGP"ׄYo) 7ȶ.'/> -0lB \s{*a9`THl Bt&DJVtTR{I6€ c }}t!(A0><8/ȣBE/8}wUEGvu;ԽH%FwO!o 3Zgp)/zŰ̙wkH#{srD8өEח^sOZI;::lz˝y\ۚ*lacA=#98haO]E`vZhf4fdBV@+6klI@@~BѠrVO8u*&צ$&QΥ\Kmq^IUz-64$!)VէPj21mQYG* )8RX֚#e6n3[ Xff\J]y >k`KʚK'JY؜dn30K5E!2uB`&Dp@"RrRp \ƞb5ͦ= $vSlkX%| VHloR>OcWy3,f*HX;Ҹ;d `+%:\D=Ѐ?/ M̎l%v걋h@; 7AvݔI';.vUMopٟ1-^~<6NSaE耛3ij"XUBy>M*xMxwt~Pj 4$W!}##3M3.)EAQZ &HHcz_PK -AR=org/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classV[lUNw3.NYZeb--R)e:;ۊxxy`bRmc>ᓉ`L^n97􇿿|axHA) ᐊ^ 㰊>G#Q 5܁ -аFV11"萜-2TV0Nd%ܖVsrxJyRP0`Ttܝ^`=` -TtZY0o:=FN^ñzJtNL8FOfMӎs)oꡬYJBHLs@_mes1rHfIf/FڵFÉnsvJ/jκX6C#m'XᦇZr]F+쒂5264\z/괏<s]gFFvC6 -8 z/u|!gEKjF:9h: -:[1K?6segedV.TYF -ៀ NkV܈{#:Գ@!<U,!0s - K" >bi x/)x9Wp*W@(1o@^Wp:7pF頙6@,[dbCf6:'kҒf,kn0Ivq6e[ VftB&s mc;b0ޓ)Ui}i0>D}geknxIDeQrcrXV{ ,j5i,xvvK.Y{3أ1Rælt7ӌ~5+n!\3$aG)vZ𝭞'4xJ(<dS=- dSOù{o^_%<g`v̶Ȼ0h2F|e'4d8\bFL˙ȋ9wy~ U.-X!sgr堙1=?U.zE)aMṵ2X͛o'!4JpC@\C 8z*4r ıJQ; qަtN Ч 84C 4# Ae6O.xH_P9. :`-g Nql܅zk?[nj޽DDQ2IՐ$ΜSt4[ qE8EzI28\2 1F]N+HN`q_c -*;GEz4eqT>2cXOr*crj&pg_!GuGld7Wkqf%U, 6iM—xpd)G˦X4qi\c/Go/^ǎG%e#6Ķ{}5H y9lg?' —؍ h&\f߿b$'b~!WW?kHB#"cX]b=vzST0ΓL*1-Ș3B\*u uEa~Fdݟ"@Kƨ=Y$K*y.}$ˤx~d0{|O2BױJnϻ9ɌoGAW\$[ΒPK -AR=C 7org/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classUmSW~nvKQlC"b[*F `" -Yam0N%NoND -NL9yy=q8I|!LՏr!I´1 Qp3ruW=?ՠg5bN+XЏ)PAI UL(XRX n -z~M˫W78A M <7CD%$J!{p F\vFhLٸ4r\'!te1\ -d[t\A^YQ.zY[2}G„LI螗RyZ@u]/ M}>d,gFWfUKs4(V e(3{66f^Yv#t<7/ وxttX'5}˾2:x\u#qgt9_aXXQ)</d,q%p~iΦĘޙ ^d[vɀkCh# 0Nf, gTO_EbR Q#Y^] yplX`l۬ߧ_,4k8w*oh巚O⇨+/m+<e{:kHz758Ïu)oFF ]! N@Ȼ!y#TJ㔌"ǯG?T6"B,+".Fe pL9pICpѓVr~6P]D )t__na`pL0(x e~9QLXfa<ױ*5O)]#<yD#KzD -ҸJ_1bzp FqV$_eS36 ZHdRR>E{ӢB[2:rV@1)?PK -AR=@> -)org/racob/test/vbscript/ScriptTest2.classV]pUn~a%4?(B)TR%ݒdfS?+0hGfgw|rttPڦS3={9=ܻ:6ᨎЧ?G:U4 x'CHĩU³Q! +||A gt*K!~T0c2J tl@*10@U"X9wPF_6+޴˼@>+khː@q++2#4GԄvLwb-qI3i\M佤]XRu,Fhf,mfS+sKIs-;KR,+Iyr^UڙU ˘p+"ȗO -ϋ3CV>g1B0^A.!O`MيRQV̗毳*f+}4in4z.8IyR寙*ئ!c mwT[C8{s (`BEp-qx$՗ W5fu\aʋSң9Qo*[7kބa[nmJv`Z6_(X܊Ջؿ5rX| 5Is\ش 4z̼T^Jv1ǾX:3u8(MvǓhtE'JؚI8|Z=)&L.-JGlG@meY˜Ǿtk٩=F0ѲkP-p*b4'Fe*O<wb.q9 /AΊXvlA]fFf.'=8Jo2^C]R6B*lItH>5,EzLKYsY,u346]{ 1nJAl[8ꔠCG'B)Y)B9 m'EpM[X%"*oӨ |nzx -5E (Hkۊ#,\go -7|mnBc|'nNqMXNφmfRil\Q]AYأE4UЈFlgŤF7T ;XaDU*>]|IWԏVζѳnZ@#v{y' <X88m˛3tp7h)"w)~6wUq ߉]FtC|d12o'f9p7Rvt'7XidUƹTG }5_SF_QHze(S0IHMphַnK%WlfPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classUmSX~n[IꊺRތv_PV(ַ4\KM:-#/HŸ7gM+T)2;&ssrooi8k1uP1&nimbR*jc*idЉ)W`VC -ЋRi*p*(*X`N0pa[W4Q lߩ -#򴗞Nmu$: -C,q.q|R~*i'izU^|G͘$з,bg]̦Af--Rr #bPܒdڰ )9;nL#(}GߟȉO_ +W㹤 ~9gUa!ZOy5Ys$ugVc 9yXQ! -Rԕ,фx{/x𽲌@u<S=۫j {}^mJg:_ԤkVPd9DNP05PqzڔXs1aFh@ -5ͫv;@#h~UBm*K~S'%P~֨3v_Ԑ7 nq+Bcd -zA6q4J g G@\к}0ئ*4v`Uț><qDv?,VQ~9"B?@y6\G I:xõqQa&GX~h2#~m(IA8}8.Z$#APGzv-6Iy2: ;y8DCRidbX/XV1N$ -0<4L`hh*RYJs 8 `02iPFCZe?P{:nX /*.2PK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classVoUv.S -KRZqR-RV RZN;ζO -!/`66jbbBHLw?MLl_l[ٽs~s޽W؍OAᘊ-)S؊~?S~i?\<W硫c-z|K:胐!u0ZfUHHIRZTԞc -m^vvcL(:Iaz:- -<6Qz9ldvOHYIt -6-ƭD䐑NN|}4QtTp -:uFp((qW%F$ݫV\7tېY6E6426vOYzx\-1c1+'"IGv&Sqr +)}iUzM c:$MAy/bm$][3& SS [Jy4l%1Gv)7n6Y^*U7gY;.: g!N4N7jR/hx/o1[5l/kxJg5s10U<.i栰 -[Zj -9jxk@Fa)]$_҉冋>68 KD%S6ʤB3" 4Hئ@yV=-$wm| -vnn]奰[´)D\2Uǚ0$vAex%aH81=2E_O˖eZ\#9f20M⥜|{QbӎH´2`NaEz¡"'e=Fپ奾rc;+ǚ[]aSre˹"/\+xÝr\cn핦rya2X!8&6᫑/ZqV,ޥrW+. UH &\gʼ8B@x*35s -iS7Z)WFq5X5 .m۳(m^ÚiD .22A,gQņ,* l\zFU$ reW4{ryNj)}w`WCPݣU -РJlCфJ/W^eP4t :7Qͱzț7P t51k 5~ZGFqt,(- L[L}I:Mw}Ou~ '~&IoNtS<<LF чFg{S{-dyތJ,QF8g-vFj=*:T:r(p|fdM!c䱏ЈO.Q[>ã*9]-rv_uk}yκ>9+5ĭCPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classV[WU J.-JS,V+ P!bN&00Lv-l}.,KwZrW4d>g}eN_~:p7"`0,cD;%cT˜wH0 2S0i )a% q; -1+]A>#q<W'PEOd|*ASpi C?oxW.&m7s5N|Ǧ"ٵ25,gFOd6P3TҰD>nJK$$m]3g4aeԲˠ<ajIItC9yh4fjVV YЖĦ}װWDv%n1imxEoL89A -:IAG Q_T\k*.KBVż,RW&QjSE<3Xg8_}c߉ŋ<a"Y-ߵMŒ`ppO O<MRJy-KT,c?쮶nbCh>_<axUƃfFLAA٧s|!ȗ****~@Cݲ.rşwi+PwDoT<gUSA}"}qI^.N{PKJ.$T|s4v1gM1|ĵ\O)~19tΤhw2\8AZx 俏! e?^:m%n?)ʥ29^'TGc z|H -t2q5cN[zRЗ}4nÊQq/oP]J!QtL"Mqk]8Z'~KX8,.!Zs Q0ѪBw ־gN;*n\FLxUt=0 <B:*"TE6HhQ]uDj;pjM4, /ond:8i, rMqg[xUjĎk'Jߞl|r_〗Nh/P~bMISփT!a:F`KU:NG1#گA A-4oU=A^%uN]ߢbN o>G D6Dz'%)dthWлO;PK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classVmWG~7l(TAъԚh\!,nv `mˇK~zN j4;w~;11O \2ъ1=\N#mS !+\5) PF `B˛LjyKM|/2R*1w &`*GcMEi`@UDn*2V|_FV"2h " -y9YnbP _jR` -83;2OV* -<]*u*q[`Ywy|W>J6%=Q-MؑW)52-OI&x* Wg˜dC%G*7iKfN]˹Fd\s #I4 ]Jh/+۹;nII/XfIY[e,ȑ`-ÀOPO,Xͤ<y۳P@z^!U uכeܕϝ7ho-|%w,⶜. GpTf~nEl{o$[A[v:rr 確k3W+~ĒC8,pp4 -Ycu^*R -le6 -5s\1|TKʎXcOʐ/k]Uv-ĵh &%'"[n7֣5iNIG o=MJxu@q5*BK;C3ׇZCk_}F Ջ -s7ϧori0KO&6v}خoNBzY.Df_ Ly -8@> άN O?0E<C-JGށ-+<Bj7ٷ,ZA;_>Cǭn[FV)9[Ǝet-Fٝ'إ9_A#k}+~ەׁ?Ntc7&1KgxhĻ`)C| 8`rw5y"B;LJ BI N@%1!?~_8%ңD&pE$'-DiÇJ~JY>}H?-8a#<NۑIH@vo1[$q:֭L b[j: PK -AR=(YHorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classU[WUNL2 vUmSjk ZpDa$@KwZ$eI{go_9SWc1U|(F`L8&"N*"="´V0 -Tb8K2/ry忬J>T@ŻJ -ah+}7x93L' Mr>4鮍*~7`ٖbxi!tLʲt^IK97<KeXQ 6icpt6xpްs2UdRg9 5|{x§MA4+,Ǧ9akS[}Ь - u)z&dmN(e=tkxSej܌=ISӰ!2?ZapQ+I:6/ -<'/X -V5!O`)ʧh丆=( ùCk)c\)/KO˝-Z_ lP_ ljwкxk+7]|Ӓ! ? ZӁcr2Ǣ +g|:zRPdK#| 4NQ7gɇ O(W]W+<u=^;P$^tJ$CwNjj{b OEtt|dV):_Qm0\m2/W}D8k "^ls*~WynRu]+$MYqky)WND/tq5XbǁMhHKD[E} 0A8V:@d1݃;hi=h:@Le{x bkś]E@;xWhm8swNZyD#ȮCyq2魓|:J AM4zeo,X i05^l&$-c9H& Jf, ->"U\zR>cD_H+fs4)-U94eA5PK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classVmsU~ni\l By X$m R@kol{@8SLȌ~+n--={syι_5|~381$O!%`g D4&33 3B11Gz`X$O1<]fm`΀-ۡԱ[9M9=y20cYt(@GT/aZ?[ޅ]E0}爼w g(]k)WZQWF*9<ߨʰbͺdKmSV1j<<t -(έ1ECH5&U5Wj5ky„d6%n2PbS_s5^(Ku -F{*_沲I+<vbH3erqG5&1dj!FtL\հ &\,&D?cM57@dBW*thqt#$wM4qS90qS|aKbGR)n4ǀ@grW:3okS՚ʭ]yqH`(kIQغrסwC\֜1OVF -,J"elΌaS+e@jg玪TerbluHN~LPpN7bl < -ɠ|3Rݗ<a[  $VHyZufJ[=?Qi B!%ʸ9N> *A?'-'?_4ԗZnX<ÜKT:pcAqvBP -@H$mw$KC-ziHNL6stGwvK ٶ9p =-lka;{ءԗw'4G{ii{sr~K۱4ӘSEEDez{8q~Zp}1P"9M^̓*Y mڿ{Dg~$hF36uC}oV[x;f -'?Ca`I25lFS1{@þI]Z^֐;`/+:lPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classV]lUnݙn-'@Y*X݅JQu;;.T|bBb l5dLĄ>ٶ`6ssιw>^fi xFó:qBɓq Z$13lˆBB8E%_qNɗj4`ІM=GCjx5024CeՑ谀 qӒ'tTPNa1zFŝdbS1WX)UH;fލ%=1DѴk.e@YʨM%#VBy[L^;-i -28}%wde-v.UdJ 4KpreF:M/eV}2SnX9fˤ> #蔆Ni@.:io>Y.g[UC6,}gMͦCږYf8k/D5YzjG^͆K/I+:kӎ4\~0RT/c<p]8Y=E3;*Ih$a 8uQUom ]l =lX|P@lQ -K)ja-1ǾT9-QO}r(+U9)}]AK6-Zگ#̰ǟLiϯio$)lM;6.Fkլ+VYNڌtF.ÃmGM@S$E7}^Y~#֨GnLb,9=;6ΣW;-EMu!_aKWfO?|> q3o)CvJ^ UUKU.D<To$T3 } -#tP7D0kF}2:BPgr߉B#4XSѯ ZS2ZI$|uBH$'&Lb]<zWWެ+tB7wj:ߪ9ERnu=v=y?z#GoD%|ͯ_{_gI9zN`'؍O׉[7٬ݡs⾢GOBa^Q}"^gnWx4"1ְ#af}X~*3>Ixs;s֟Y%45R3$]\45i8[SH7O4MUoʶ;-kgh86ej#/PK -AR=Ж1org/racob/test/vbscript/ScriptTestErrEvents.classQ]OA=ӯk[V -K$bL)OCҦ/<ͮc!&,|?xgh"!u{sx&dO`Nʾg^MjCY2ƪy"D$1X" -\$kT obmf܈T'ERF[>0!ndh! [2)ц?8U{Qy! C0QsܤHzt=8 B-<s9.D_/D  ja/c1( \;bJ+szs?foFvl9qMK,+n߲Dh:mUqBFX}vA -B OxDu# l2t,@ -a;*%j BѦ>ou#\}ۭ]/voPK -AR=org/racob/test/windowsmedia/PK -AR=-m"*org/racob/test/windowsmedia/WMPlayer.classS[OAf[, -ԂUTp411Y"<-)w%`@dϙ9|sf43Ɛ4g``70jf) Qz,q&lMaHI_Dql!Y -*ˑx^Eη]䜠 I?2&Վ1:AT#^m%jޓ~%ثy"jy"eޕP6&F{^0r/++6'M] -0N7<`Ȭ,JWq|[Aaߥ̕ҦN6q=glU{MEү.ե[$Ԏ(B=r V0 C<2,L[X4c8kb% sY=Sԉ]/{yxHC0Lxtě;BFA("02/r o`HW<N-X0޹>EC=^٤d*6f'i5p.$C 9K ${c:K7>4рE:Ⱦ5؇4h"L ,OP307R,Kihأ Fp%n&v-(PK -ZR= AMETA-INF/PK -YR=ѷ+META-INF/MANIFEST.MFPK -ZR=ِy `META-INF/JacobVersion.propertiesPK -ȉR=Aorg/PK -ɉR= -A9org/racob/PK -AR=Aaorg/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classPK -AR=4n2.- org/racob/activeX/ActiveXDispatchEvents.classPK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classPK -AR=Aorg/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classPK -AR=8n_org/racob/com/Automation.classPK -ZR=[K org/racob/com/ComException.classPK -AR=..$"org/racob/com/ComFailException.classPK -ZR=32%org/racob/com/ComThread.classPK -ZR=ך[Pw)org/racob/com/Currency.classPK -AR=7X!-org/racob/com/DateUtilities.classPK -AR=:+s%0org/racob/com/DateUtilitiesTest.classPK -ZR=spm@bH4org/racob/com/Dispatch.classPK -ZR=g{ "Forg/racob/com/DispatchEvents.classPK -AR=L4M4 &Jorg/racob/com/DispatchIdentifier.classPK -AR=Yo-h)Porg/racob/com/DispatchNullProgramId.classPK -AR=+vK!Rorg/racob/com/DispatchProxy.classPK -AR=&t Torg/racob/com/DispatchTest.classPK -AR=*-Uorg/racob/com/DispatchValidDispatchTest.classPK -AR=a5!,Yorg/racob/com/Documentation.classPK -ZR=ZZh,[org/racob/com/EnumVariant.classPK -ZR=қ%y ]^org/racob/com/FuncDesc.classPK -AR=8uborg/racob/com/IUnknown.classPK -ZR=<. #forg/racob/com/InvocationProxy.classPK -ZR=ʼn8 .:jorg/racob/com/InvocationProxyAllVariants.classPK -AR=C0Sporg/racob/com/JacobDeadlockTest$TestThread.classPK -AR=G%gtorg/racob/com/JacobDeadlockTest.classPK -AR=o\"zxorg/racob/com/JacobException.classPK -AR=SW#zorg/racob/com/JacobObjectTest.classPK -AR= w$?|org/racob/com/JacobReleaseInfo.classPK -AR=ᚹq !org/racob/com/LibraryLoader.classPK -AR=nis%Vorg/racob/com/LibraryLoaderTest.classPK -ZR=Ldorg/racob/com/MainSTA.classPK -AR=EF5+org/racob/com/NotImplementedException.classPK -ZR=5h.p)org/racob/com/Parameter.classPK -ZR=OR[ԑorg/racob/com/Pointer.classPK -ZR=zM(ٓorg/racob/com/PointerWeakReference.classPK -ZR=ϦF|qorg/racob/com/ROT$1.classPK -ZR=Porg/racob/com/ROT$2.classPK -ZR=wN+ org/racob/com/ROT.classPK -AR=Q5 +vorg/racob/com/ROT2Test$ROT2TestThread.classPK -AR=d45org/racob/com/ROT2Test.classPK -AR=` -+corg/racob/com/ROT3Test$ROT3TestThread.classPK -AR=3zorg/racob/com/ROT3Test.classPK -AR=L[ org/racob/com/ROTTest.classPK -ZR=Ձ*{org/racob/com/STA.classPK -ZR==A ڽorg/racob/com/SafeArray.classPK -ZR=X#8Vorg/racob/com/TypeInfo.classPK -ZR=|QH]org/racob/com/TypeLib.classPK -ZR= -EeQorg/racob/com/VarDesc.classPK -AR=#H*3org/racob/com/Variant.classPK -AR=͉\#org/racob/com/VariantDateTest.classPK -AR=51org/racob/com/VariantTest$VariantInitTestThread.classPK -AR=g(org/racob/com/VariantTest.classPK -ZR=r  $org/racob/com/VariantUtilities.classPK -AR= DX (org/racob/com/VariantUtilitiesTest.classPK -ZR=GH3#org/racob/com/VariantViaEvent.classPK -AR=qQ]"(org/racob/com/WrongThreadException.classPK -AR=ADorg/racob/test/PK -AR=$(!qorg/racob/test/BaseTestCase.classPK -AR=A'org/racob/test/errors/PK -AR=3a9,'org/racob/test/errors/UnicodeErrorTest.classPK -AR=Ag+org/racob/test/events/PK -AR=D6+org/racob/test/events/ExcelEventTest$ExcelEvents.classPK -AR=RM<*w.org/racob/test/events/ExcelEventTest.classPK -AR=vFQ"v7org/racob/test/events/IETest.classPK -AR=D>֙G<org/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classPK -AR=0 u -3Corg/racob/test/events/IETestActiveProxyThread.classPK -AR=Q{.Jorg/racob/test/events/IETestActiveXProxy.classPK -AR=u^ 1Norg/racob/test/events/IETestThread$IEEvents.classPK -AR=-(Sorg/racob/test/events/IETestThread.classPK -AR=J>i4\org/racob/test/events/WordEventTest$WordEvents.classPK -AR=~ )^org/racob/test/events/WordEventTest.classPK -AR=Acorg/racob/test/excel/PK -AR=fHg 4dorg/racob/test/excel/ControllerTest$Controller.classPK -AR=mG)Iporg/racob/test/excel/ControllerTest.classPK -AR=Asorg/racob/test/powerpoint/PK -AR= i- CKsorg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classPK -AR=hX.yorg/racob/test/powerpoint/PowerpointTest.classPK -AR=A~org/racob/test/safearray/PK -AR=Հ+I$1)org/racob/test/safearray/SafeArrayBasicTest.classPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classPK -AR=E} ,ߟorg/racob/test/safearray/SafeArrayLeak.classPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classPK -AR=Aorg/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classPK -AR=C 7porg/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classPK -AR=@> -)korg/racob/test/vbscript/ScriptTest2.classPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classPK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classPK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classPK -AR=(YHnorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classPK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classPK -AR=Ж1Vorg/racob/test/vbscript/ScriptTestErrEvents.classPK -AR=A;org/racob/test/windowsmedia/PK -AR=-m"*uorg/racob/test/windowsmedia/WMPlayer.classPKjjV"*PK -"[N== win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -OR=s6win32ole/Win32oleService.class1I -) -*+ -,-. / -,01 - 23 - 4 5 - 6789: win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -Exceptions; getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java < => ?&WIN32OLE @A BC#org/jruby/ext/win32ole/RubyWIN32OLE DEjava/lang/ref/WeakReference F  GHorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionorg/racob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* - '+M+,N- Y- - %*'' !"!#$ %&" - '(PK -1R=ewin32ole/utils.rbrequire 'win32ole/win32ole_variant' - -class WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def methods_with_flag(flag) - members = [] - all_methods(typeinfo_from_ole) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & flag - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - tdocs = type_lib.get_documentation(i) - return type_lib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = WIN32OLE::VARIANT.variant_to_string(vt) || "Unknown Type #{vt}" - - type_details << type_string if type_details - - if vt == WIN32OLE::VARIANT::VT_PTR && type_details - # TODO: Add detail logic - end - - type_details ? type_details : type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -RS=hl00win32ole/win32ole.jarPK - -R= META-INF/PK - R==META-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.8.1 -Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/racob.jar - -PK -1R=jruby-win32ole/PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -fnN= win32ole/PK -YN=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK - -R=P|jruby-win32ole.rbrequire 'java' - -# Set location so the loader can find the native dll it needs -arch = ENV_JAVA['sun.arch.data.model'] == '32' ? 'x86' : 'x64' -java.lang.System.set_property 'racob.dll.path', - File.dirname(__FILE__) + "/racob-#{arch}.dll" - -require 'racob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import org.racob.com.Variant -java_import org.racob.com.Automation -java_import org.racob.com.ComFailException -java_import org.racob.com.ComThread -java_import org.racob.com.Dispatch -java_import org.racob.com.DispatchEvents -java_import org.racob.com.EnumVariant -java_import org.racob.com.FuncDesc -java_import org.racob.com.TypeInfo -java_import org.racob.com.TypeLib -java_import org.racob.com.VarDesc -java_import org.racob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -R=??jruby-win32ole/version.rbmodule JRuby - module WIN32OLE - VERSION = "0.8.0" - end -end -PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -OR=S60org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lorg/racob/com/Variant;)Lorg/racob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lorg/racob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxyorg/racob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -OR=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -OR=>'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLorg/racob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/racob/com/Dispatch;)V getDispatch()Lorg/racob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLorg/racob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLorg/racob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJorg/racob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lorg/racob/com/EnumVariant;org/racob/com/EnumVarianthasMoreElements()Z nextElement()Lorg/racob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lorg/racob/com/Dispatch;I)Ljava/lang/Object;callD(Lorg/racob/com/Dispatch;ILjava/lang/Object;)Lorg/racob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lorg/racob/com/Dispatch;Ljava/lang/String;)Lorg/racob/com/Variant;put?(Lorg/racob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lorg/racob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lorg/racob/com/Variant;H(Lorg/racob/com/Dispatch;II[Ljava/lang/Object;[I)Lorg/racob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lorg/racob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lorg/racob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lorg/racob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;org/racob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK - -R=`9  racob.jarPK -ZR= META-INF/PK -YR=ѷMETA-INF/MANIFEST.MFPAj0 =VZT7PH 4% [`KFi;3N9c>g%R;$fl&7\PRzTV\}J:]aP]Cb2}_'%2 -A-Jk72QBɛ06gUs}vSAiq^B(rny&hPɏv{|ゥß^E\CS΂ذFVHA*/_PK -ZR=ِy META-INF/JacobVersion.propertiesSQ0PO.Q0204P04222T5050ROMQN-P04U04225Rpv *K-*ϳ534J*IKI,I5Z 57hp d̒Ԣf3c^PK -ȉR=org/PK -ɉR= -org/racob/PK -AR=org/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classŗ xW7d7@CIhUDB@o:LݝeBVЪ}>*ZbnRPVZZ_֪33;lfPɝιso> `E5fqn…,q/>O)/p؃{Yϰ}|E>o,<Y n|fX|كYaN#| =A܃nz<x̃ ֱ,| gxO0IO:s,fϰo,ƳjgAm۩cb@@8[(PPڰM)Wp[X4n7mVmQhtC 4vh7/?/]'7ѶʨW+e,SXX_"j'mQ9T¸~ƔZ@~5T$cv͵IQ6DHD!(!<,MjަcK9S]᎘؅) -^`]w_j"kJGLiYPAK)kcJ9܍P6S 0ͩIM<KЈ(dmQ51QЂZaNN OG9Tu}w -M]C`4lR(zvR= --8qVQrkc$Sm+txbN^$gjXIwkV+͔Nb?-ŪUUrF_EGZQ^Br"фH#@x]Y,i*UCXT/*U)Qfk>{.\.f -N9s|E3 R+6D.k9FBr~<NY}aJk tY /;&'C})v{ƍлV$lS,d/B ρy6!7+{xt-ϖ ͧ$ $`\vJ $?c'lw+T;0/H~%K -aE ~p ~,^yO] gd%A b {2|Я~FGr񊄿lAX ǫ,^c#Ayr_wȤ.:TG:(͝muZx[;6VewB=X]JCOLM_j{ha{2NﴂpX eOksod^k]Zi5ELjkLꢂHtR{<ѿRϰv [;uStK/lHKnn * iEC52OA]M`ݥq9.;K/ؾ=o2xI-P *XjM6I$BYV 0p5I4j1 -u-ԠZKPG f-c%ꈵԁ ˉn'VҤ5+(`0ie'љڛ i,4Uyަ \P^GqL\)z93ȢoXIq ,მlr -NzCCP1T!TBc0JLUx/)6!XFƑmNj oQA;yw/hU6WQrW~df3K(KX+u#/csLl5 ϲ Z$cT2QZTA2 >Ta%52٫A@S2p+z0*_$Kf֐ s0n)h%mƶ}]n` jCXDYm8$p\G&}{AfOۍ"éoM\6\R zؑ>Ά>)Uv4iƊgPrT8{/F[tڝ|-1}Uq>qcEkFggX&(p1.c@AFGcc՜B@>>2^"7K1!yPAU;4u t:ӢSG!ar2-: ?r}ĭm#g_g0Z99Waߺd^q'~jlhZԙH(1O1W+Ȧ_,Qy>iXWD=+[jHII[b8!焬%rJ GZd!Dlwt.NDJRkڅOa7KNbH1ΧHUcƼQo c$ tQi{ƈg ƾ7zՉ+{-k"s $3i,>NkWeO?tm3>ܨѹu5;0zd"hf|Ri)߰ĭR˥ټٰ^ET3>Y]0V MB*nVivV~]iVGN橴87躥#6'澻83aG8)U| o0R,b }U2%MtΦiϦZ~uS7ralle]V͵N:ں7XֵՈ!Luix8M;&,{LdzEq֖ɫAf'-%5^5^3fuѕ_N<. )Qn=xwBL[iK2mI-,4Rhs9|$v.|va&f;,Gͅ}%Z M%| -KL%yfPK -AR=4n2.-org/racob/activeX/ActiveXDispatchEvents.classn@M81iSZZT,PT((% $wlIVpC%x -1kV.aK37;c+бe+X5pWu\q!{KBfX/5<1}ڦEgISoXZc-v ņp6wvv&mu[/:dGC ˖b_w`]ٯ3#;Y1ri -.ÝNSuf{l3</d.{!ڄtvTV)<?f(%e$ Uޮ\sHpF3ȖPO S9LatfGReTCaXHqۻ2 tRe[XA"h!OAGNӜTk#)ѠؠMZ0@'"&HEY1IJw*} )y]'Ԩ9? +c,󑰲.`PsZŽg0b3dib.P*8+~A ǵ'djbxpO : լc'KXj(\PK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t xn=횓ݽ~К:״=5C&E\:OYNi픶sݞ=i_D.-peMoQ#-UWw wf1 }:q$K7뎞3\)^ywgB~_ߓR]"0EtJyql}Oکb:Sίd[CF*ccv|7٬1g{bΰ\t(J]ͣ?׏<ǓT.U%Z Zsg1XtAcy{} $=z6#&2vxE2,槗=it5`K{#1m*eV6hS ݷ9?xANU_4]o5I峆`#%#Ne:&lTtSilW*^#MSf3 RI+3Mxr:խZO]:FUT7w77̪@dxGJ*:%F6W4c-5rzvvάxGB]wqFY ڵLa|Ͷ1ۙ(hL7閦;>G|α<^/} ~Xukmkp|N͝}T1aQ=cqFB^Y,Wz{smb 5Wt.<PIqU7nwi^Wvf~P -kfMU]D[oHW%%5&jY< DDVkE5POvkh*kW3f&]ﱕb"X(dq>ſ$Qnᬛ>1 ԡmގlղUob/^m+/;( %;K XB[³|en&YǖY(HG,2 uDXK %"3hD9EJ:|m1XBACLTF400 c_`Y,Ak'-ml -3XIWadU Vn`m<M|?OOآ/cǗq)\϶ Јb7Va1+0#H<i F4g|yO¤)zk%797=?A-4qۡm0} =؉H{p'S\ك8ŭ{oǖ4PDqG Da?XO<I/'O^BKX!cϒAFRƃ2RN}2HɄ ͗i,\80(c^92`fyV_TybWw;%o ־ζ6Ahj INcԉT|@%ۘ"3<ѳd sE`%l"x:$yËn>B4"\M4p1(V1+;̯uqzɕ/Q8IX]zՉ7G - a Dğ^Mm\rC%6ɍb\M=:V*&pޝC#B1)OSW}F8Rr'Ic̃rABy -q\ʌo5T_rE.LPK -AR=org/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classV[oG6YL @Z=P`b!JؓxkN/S_؇VCyDUT"U*Zͮ;R,kg̹|9gf 28# Gp뛃8A*qxBIHG: 13 p!7\ -@#dJ;b4vSaqa~ :7V[Y <h"Y.;) Z=Z -}N()챘gX*21!ĭB2DzҢU(f͌XltmEǰL/.y#@VB٤0ǨШzުa{cIE)Gό'M8)X* !s6)}sT2MA s߰KK)#R>6-Xe)Pyռ3z-_,`oȺiϩPLf`B&+hlw]CPTq%,ݚrlﲹ@n2C$ -m -v2_%MBX"mҲK1%Rdq79-fMTA0`^d52^4r'srz\h%Y9A9n6U2cYʹzjK4\3g'lwkLhVz~Oe裬VńaK2sdN9VXprI%i(!|$-R%rJh)^*ᑫʂ%!wٴo(Ik}+7 -ލt˕I1Y;;x6U<_ QQ<*/FÜ%(zDInZ= 5Vk<5RINr|~4r=Jl:IA}J(-c=90qwB腽3+ߢ\52tIB7L7X)N oZA\8*ltKϐ.lS=k'@OwTY0U/!+PYGoixsmZA4c9Ѝ ڍ&>\$6VSCZJ)YGJ& BNmm --db׃m$mn|TTKn#;*-,:5Œg8s\5>`-ak!IE{}%J0}` # {g6J -|HdMx '6E^hʱ[X -Vt^CSdem*Vq+yojfUGw6#/q -Κv:͈6zhO724!;274*x[[^پv03ᇙ(SI''G8wY\y\@QF)21/1o`i-os}?.?0S+S8n$0E ` ɶcmqHscvƙRc!^G{VL6.Aw">Bl 6Nk@~ƃttнQPK -AR=8n_org/racob/com/Automation.classuOJ@}ӤM=7o ^+<=I%ٕu#Y~%Nb 87;oޛ~}|$A481!F!քn!ʹQM+y$vޑτ̺R8Y\7ښ9aXYY>L焋i/RTҔb6|Ǿ7YNae{c}ل>!ߪ =|[=Pgx܉{֭cƨ#0~ h!3a>PK -ZR=[K org/racob/com/ComException.classR]OAn-EPJ]>&D(eY5..ȋOA(㹳꒘M=3{9̯?~meP4D5F&hy,AV(H4tvZn{5#(d5 -xkVfz~sEP BEuAjm[awtg]7ܲwcvZmjQ -la -m'صcGy5`[j_O\PsN6Aw$w|©3Y?3'KM7Z?)CąvldZK^݃6T31N2ii FE*H -d*}?2J~kx^y<A %* K2$Vwr<& C(xM<P1. Df)EJ5QR,b,ad s^TQÝs񘲩O`f I:'EhSg$}Y:\N,=̥aRW+0KoCX_K1S\N4#U]_M|F kTò֤͜\{`rMhz̕$~*$(?L夳Y嬮V7lqN\hRtItyƮՔׁR3S*kʟRoȪPK -AR=..$org/racob/com/ComFailException.classoPƿ -Pݜ9 &i$tCWK@Mig[tOM|wc?d6}(1$==={ʏ?_x2pee.K@`#t'v:vL@02hbK[=~8)PzxNPZl -S;xcN]l}&9M* C?iSF_ԲO"+΃l'pMoff]6v3R >o5#Q -e`imn'GO[٧@h+vh@Źjkrdj~9G%lXvY,M/XRDES:J1ez+Yc/2iYfbm%U(:<̠H28fl-ž!T^UQ̓8\F]9NQQF7"vS7,ѩێRUc(ý%鸙ҹ(#vVdΪtnΏ:C[RORK4WAR0w|K^:ߒ=PK -ZR=3org/racob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++ٌm<Up[N-9۱k%9.^t@wvrr*_"Io-Һla߶+Ǣ/ܶg"7^7&\!HIy~|P\";L"ɍ]ָUd -ݺ6*ُ! {X-sP -ϺU`ݶ9EW;ꡒx IH1´x$^_48\TlgF.-O\#Ht=kkI^M1CZ|Ԧoy -o%c-m$ۦ]s8,O ;?6,F?^sv;oWnZ-g]ԻIU{{CdxgNGmn]$З<iH"áaKLKuh%+9V 5yOy2s)e"<J0a 5!~cstJѦ#.E3r9ľvL4x;p +tц:j B5tdždc37"i}<0$9;D>VNZE.iEȴ0Ҟ %"# F&.Ӻ -~#A0BbMu { L;}9Ɵd@>5k|)uT C5>;iED7 (4ʔӥ1QFE h6"@n4 NjfJZCܹ;rxDyN|O}g ; G㗈&@ 2D#4륅)(H/PK -ZR=ך[Pworg/racob/com/Currency.classuSRQ=7ې0,$F!P0U`J| -L&.~C*MJ*?ʲ0!}9}?LI qLD%c4WuPpSn)N *&:pWߓ1y)R0%6VE$JnVCo~Y[l޶ʷ" p2se K,TY&E]f;<fl2 mux^l8*#KC<"au !iaI`2EjYA-QT#mÔfInpvmWE2WE^ry<WUnn!dW1dv.U1 0tmK^fXUqU!CmYenw ao0>U, !n[;ںsr4F]#̪cyXP(ڇmߗlߠwW**1^|ə|sS"&zAJi 1(T7hӵw| ӗ/яDV!VC -JwX}C P!Mj&y8a<{Nؒcˑi |)c8C9N{| ʑ=v"PGS5G<$u'G -7g=< ,?b&__<IR*3u(ut0n6[Q"yhi?/D?hf:b5:?#FPlse J]Zw=D[I8AOEӴ!oETS2@jF!z5ǼI}/no4qD8T ؖzJ -6ɦeDwPK -AR=7X!org/racob/com/DateUtilities.class}TMsU=/I'C$!!g(*H$p`%b|iNwظqa$%U_OqEq^O&z}{νQ6>(.1Fwc|2R2ӧfjc~(ຉ/EK6#׃( Jx3^- -ilƞ $0hAWT3NZ"UNmUj@{MGTvtVlVVF2&׃0 Wm2F1B0r+P@_2dnȆaBU5> 60YJcU 9 $O Қ(E1L 2p⌹Z`7ltp?G82k0T HS:#OFQQ/ ]]M&S:n;86,pE{|@y_ 8+݈ZF 1UWRN^fo24 SW-ˬ)ΦNOǏ54~_qS|v06O5Xv!~sI1;Nr;8_Ez<н=vaz2LL!0~$0c[{Fg!?mMULvิO//as7bE<qfșd!b{^= -,}IoC|j/po?v0&f.S,@\+fg/ir&:XYQyR 'I-jO1?4nSa_PK -AR=:+s%org/racob/com/DateUtilitiesTest.classURG=]/+,$1YAƎM6(`%28Aj$ ʂVPT!Uyʳ (S?ŕ-fvzNw=;OFBGj{4tW>?3p :xy O t,*XF4,3>t=7xm'7"$\O4yBxNyeZg0~yQ:+yQ ғ{ 6N'%VŒWeL_+vE)4E^yk!èJ ʮ^yu^]b*\aX (\y蜺obc Z4<5ŗ&B30 -) R>ÍЖZY*)u2jJoM>"7X3Ǻ /-eAj^% &^ba/ʒ:-JWj3=~`:.%Va*cgp #p}A'yUIQE^ř~x򲣓 aKfNNAR*L4xR \-lbN$ը vL>? -Ȗ}HGD腏ZD^K٠t8 /qAU#v6UZUp$]d#Pn0j8N+fFs>+z{4Lhf CSzGwn}Hc+M3MMzP}MDxW!=nU`:ю<X͐4"*w'dE̢t]-"["70y,O"9bH4q-?0~dM u?J%cT̒-9ܡ?{!wp(qBL܇ak1f0PK -ZR=spm@bHorg/racob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΙ{o~V?W@;~(<K?c#? y?;')"A'|s/KB~_^^~ ZJk^#m hAhᢅ@ nZxzK*O sSp`_:o'@*|A,zKY.eB@(hՅ-JU>X&Ж%Fi\rɧ -)@D.;IMWJSҊ]Wȥ2k T^pQwWp綍}jtzw^)' -46й-٣kڔ͍I)B?"]CT&UX4 I;mS*#LsδL )6R,h\OH*;Q`NzR8TU <$=DN -r\#hij xG -rLp}9SHDRxi뤜g -rnD_, !Bϗ7ݵ]韞@,Ʈ5i*UD6E]TiPJ}F&,t0lH19ǡ-ɽJE*, m/mm̂B].H9!ĉҳ"cTf*{7sEfRCa"kCZ-%NuFq^&;r[! 3le,bqu•g^ !1'鮋Qr$40 $V*6lflwF֢6 %N--t;DV!$2dw%1lAgɑFuL r/uNVU_qJXHعb]F`;[E`zAS i5;$ggA@:^C̑qękXU.ݹ&'g0 3N a'R{[ʉ^ ', @'_XN0)&pA||2JV6Ь3nD.|V`x~ 0{7'ۚO4ʥp2gI2?7yI9޹u8L ]8Jr fe}/֚I@gs;m~ F2So߷0\厅b wB& 5ZJwn"+!E_VjE-"\] @@dRK4HxK "NˣR37:9.g -ݻhfY S-dVG3BTJ^d:R&*OycTG脔傜H[ ԳT2GTNN8CxT`\ dԐj2o-|>ʨ]4 cI-& -RAֹoe̖]L2+dzi7{d LINR3ҥ\0pK$DiZ!Pm^Z3C#x`=tx笻ԅ ^1MT!HEkp! ,8/t!=sU& =I}/%`{[7kM[WBԡt*F|gZYxMnB*ۄQC?ˮ bwȇ7C;?lX:?lMklյy:lk۝wэt3LTi&l j= <; *@= -?Wm,݉][jszN -r; 5wk0xw?T`0QiA>X2Ke2X R1Zۆz5]^v - -]46u }Co=C"ʥ9PZn,B%N3ܨl-(B 1N s7܃0f`GWdTTiQV:Õp% SF]eH]V[@3{VuP- l%xU^9 5KIUXҁ.⠋@V65:Œ2֘VKA6g*\n?FN&e05*3)&Bi!n -73ݜDhl]*A C1x#[`)ӉU[ Uո0/D;t<Gq0> f&b+ sYe\wTfu/q23іْ7İ;왁%4HH+b7s0 CAYi65AMaMTjpnjAѪ%`hՄPg"TP@ hG,9:d-XnV̳l޴ѣ8P: AM'SejL-\ede.C(s6n%w{_׊#>A!7o޼L8>㧣Mơduu\R3pC؄UlFЙyr\{/ITL<+17߫ hxb |l޿z0q}S'QK Ԟa؇<1YD#)A(5Rţpo"<Ex<x#[i ik5.YNADa}A 5P -JM xԷpQ@Eg# tyћ#Lt3ZBȋd~׭1o[ʘVblLߪTGn~PR9o5| M<바%63ςKP5yPXga5:rA>Aw0@^f -r F8WҪUJ=S#ӻ|_<:AwXGʲWhڝX3kPCI=aT֩s(gr(g2Z knhF&gI3 {F5pđ8RGjHM!?)3C>¶?c*\iJt -E+nSMqGqGqG1DZk^ -<@`'B<u|j#q6Ƒ8rGnm Oa?~v02@?X WXASƈj].tp: ܅Bw@kV8seh5"N#(X -b#(h{ڽ& -~QSQ02; -TnBmb?m#Q$z~& -jNjYF]41|ܣg,`l4!=Hlt"QQ02(hB|E-`dQЄDMԐ+ ->`#ɅWЅWm|Gc؇Zk` -f4IwUB t7<,"jQm)I1=,)xDcHVݦ4繴eBu<P2SfB>맯=ƕaJmֆp:],m|*I#Un8ތڽTƫnH?*2R@mF@ʏQxiKIrˣp)0glZ&]r'GQfdey/Μ5cʺ 0)߂ʷGmKrEx)-F{PtI@<]bl?C眄 Le\jR:JE @"Z/2&&PXx"|!\7dcx -SBZ/38HHMXF yOJ8qRj ZE&Ex<Ԅ]!X)6.iI%&7p1X#."|2RFH҈?3bs1$d59'Ee4$&-BHVu9"eeU0ԋW"Rl۠߰ :<%Ex2BOVMXBk yOXeKj¼ 1oy)LZM9ՄqF{_ĵO38i5# -G)2sv9~;o#3Fa/_0~R/{-FY+$hYZ?^F퇩|-_®u%}VĠeJWPUzFVbiZ泰>پtw{tcd~t`$ A8?V QhL:U$gPK -ZR=g{ "org/racob/com/DispatchEvents.classVkSU~6 p!4X*T*P(*HMr twåV:8ՙӆZf|4@q89?8~X&Ƥ)!]m\QCW$k~`Vu=żP`f, ->~,aY`Ҋ[~¤/T>P1779k[; l-e%c)+0^MeW`'u'ĺ f<厜]dLXiH&&}CKL cQu^kp66:NcY; rd^77#>2\=3ں1l+O/3\_[TܝOIļ6̠qRAJp'# S=DWT`|DX#:ca8q OXV:,sU> 9yY˺qNpEX2" -2*֠3WF ] Cs<;.ul V-;$[ʡ,Ln3>1*^ 4-7dCf0!4tN g4c䳄N0 +W-#bT96#@u2Up.e9xG7Oe{*VAw&y22EGe7,FPt`剢Q%hWq3-=wd -#<u' |49fPZ&&-!!EWLll{@I9)v ^C]@F}N蟦V^<O vT鋲=I‹ ~/ImR:QB jo?WU-I)ľ2D,s@E-v#{<B}}(K{}U -/!+| 5!H#ɑ 6=BpK=Lgh+];={(SU-㺀zZ)ww(w1i ->Rj>2>G_ɗ2CH9-`R -IUt/2S`PW\?# ]YTI>NQv\yk -囧(;M 0SÇ71*;@HohFFel&3h dRс HRra-}oPK -AR=L4M4 &org/racob/com/DispatchIdentifier.classWwG`0j5 Lz-ckfdBd!@,{yM/y9y'H5R ?cYs%qNs,ܽ3{gvg1}Ǻه^1gl' -Ly~;-*Z\fY#3cF)@#~ 8$̮뺞 -/I5Ζ7B1b!Wu8Lȿl؂\-ufG7؏Ӳl?g+aӰp*259W~hy5GH^ٴo eY5,ӭ#6o-l,#~(Kԯf -0]a.z*Dv56(c1.g_%c{2\ң9Zni#i?D;^,ԺkncI -ruCYCaع(;uP"{PMGmrkLF%e=_3;rLV9O~ HuN|։_~FzBCPg:d oTU H.jyg%]#iUԛ<8ux=6?ኹ>٦4i -kQ?`[R$K$\<8F:g~5ÎN#mn<gGCDmWl RFloTlˍlD1WAζWJ(xf<yOCΞ>:Џ;48[679FB;1o4" tЉs2mg ʥ{ g=Vl[*jBdS|$.9V燫BebP8l/k bV:W*V}QeZ(:SvO/MᩕSabXmɿ&d=l . /"^ /ˈ+Wīkă@xx xf[ۈowww &"CG>@|>D|>B|>F|>A|>El&!S|a؇{8cgq|>~ |#>_ .S2qD\%k3eGLj ~~ig爟_ ~~eW׈_o]=ϷًOC?0Jy?bJbPK -AR=Yo-h)org/racob/com/DispatchNullProgramId.classTN@=lR,P$Q&$+!YѶig<M|G1)\tj܏sϹ~3;(`32Q*sʽ 7 `Ƣ%,,[Xa?ܖ n+<>? S*<n;sX& U7Umˤɵ -X5b7H%'CodlNx_s/QëXF e%'rGh'DF+~M-UD5Wx3H3j4'J[1 ba{+&1lc>SѺیvNDp*tMc&`8\YO6%JoªCota_(ca]C,¦>q; vwGt0L2c=ا=F+F:%I SV4aRy{ф<Af -"ҷ3sei0h&ˣ'+zNp|y` ]"K}V̋3dsNBG#P4OSXSM`2GRe]# )j(uRv anv3 ow6YӅPK -AR=+vK!org/racob/com/DispatchProxy.class}R[OA]X ([xn[ /&<nvL ?xf[(>̜3ws?PC̓ -X+><<GCk=ck=q3 Jɰ4ޯjv5Ru= M{X^*ɞGteauV߾{ʰ8Ϩo)(gNuyswEHj4JU Z& -ZPG̺J8p(x"9xqKPD76>_R5ev5CJ;~Mb4F~l4|vN͓HdGxFr:k!,<F.,#'IP3t4!!|1K?meE 30.q,z&6ԧ+5*5E95[}覽B[tVPK -AR=&t org/racob/com/DispatchTest.classuON1]\Wo$6 ӆ {6RtC6$f23Lϯkr4KHo[B|BHQ:Yr^i7Ռ*9Hg^pRZ$TŽ_Wӱ}Px)`BoY Z' ǿaw!0 `x PcLY fbn]b1,Ў)_Fí"mEPK -AR=*-org/racob/com/DispatchValidDispatchTest.classRA !B0AbP4UPldqL<Ox,|(˞$rALUzvw -^0xc>~RЅEh -PcY+ܖNwqO} `nڦxI'k0Sm =VB)GV"o)i.ם;m,inٿ$ QAAu>Zֆ+ [lԍ0PLNRG=,nvZ -س/%/V $0;! JDm&Jwʮn옲$ᶇ_T bHCPc;d#‰ iwJaz(P$x_,Vp鶒ˋY"*-͎x`WsI2Ժp mx7(,EjMyYac?W6yɐ$wVbb˫-{{HfT߅O%a2 &-/P</ ;˰*bRf W#*?~ԖbBR dPrfو'h&[04s'`Y_ud՚cCcu|M+&R;PW -+P+9['m(GAiKQ2|ixxDF=cRgZ>E/S5fP ~ -t M1E\䋑wbH$_~"$%t5eҴI:[qPK -AR=a5!org/racob/com/Documentation.classQn@}8q )IC P'$BT¡(J\9^:~PG!fmٙ޼`UDOTU -m ,<g0C> )?né{G~8}PH/)f"Ҟ c5f` #? o;r|ubEmNz<Wu -?ch d4u#ɱɹۗb.˜Ǿ iTu"x7wYп]$t"'voe6PQR eXui|*mz2^DMRVS,'ә*u.`4o`jz 4_ӭ C3@LEB*m)%BΔ3Йrәc&n\:U޹A!vҐaneN&y;[%3ɍLJ~InꮝPK -ZR=ZZhorg/racob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4K!?_|D шQs:`m9ޞ}|n805]q NMK~2!xc Odxs2%,0rݨ1 N)h]Lv%]S 3id)v޴LwALfSrkp=gZfR4WZL;9[M5'vfݪWΩmZ0IIvچebX. Zg [ơ1 %Sm -;[wamI dB#*ҨG{ځ.kV)g3o,xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϓڴu}yP7<?N`{3D˭j\̥:[@$%EEKe?\2]5} +{#0AEq  -Gh(F Qccjcρ{H -cph YFjowOH*B'8;AS!_ -_R`ʛ?L#a4L> 6#|6a6n'~B>Ew,Jsf@-QQMe{6x) % ?ARs{JyAK9j6-}TNPK -ZR=қ%y org/racob/com/FuncDesc.class}T[sV^"_8!&\mbH ز 0(Lm)#iԇv?l+췻9ߑ-x) 42{d^44ɴȴɼJ xj.U.7"5 -d[װܶQ<`aVZ$S<,^VRYeY /[x\QLJVƞZzMlJ.NRKmNkyT*rO9X[ +7Nr;5,o +TSKT]uU5QqIIL^%Z 5(5eoLf{k:0 ѵN~D#=hAp7c;v7I>Jtq?Q]=\DL+=hg:q ~ku ->unBQ -mb}Ϋ]ˬӤNRkNﻃ}UVb:Wtc2(cmxmt"*, LVѠs&WOefR>i~Wtcuԝ.87Qlqb~KJdlC.l -P{'"o?Pڱ3"ڰ%d՟_~9Ë/%Y&e8ˈV|xU>x݇!7[op;F_$غwd+j^|RW|>B/S>NFWFWG .fc#\| 1Ǐ )f#HFCiRl5x8 l&v  `0F&0ƌ21F3G&GOq,_/8۴iE֌0.`' 7C߅AV(i(9$? %Bɩ q( R9{Jw7#i-#Gb;,ϳWnH#`#FM%y" jlgN"Ttd=PK -AR=8uorg/racob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;;?}`'`xc_-XƊ:HeU)o"Xc Xԑ+q#MN5(]嵧>t? ?kEï Z6,W: C)]Lm:VKS2 ChKaJ1+5I9a P Fa%ڮud/, -J)Xfh=fMXzeWY<[ҔLQ^J!m)yJ(DDP)Bju P+rY40to"wD];mU^[OO$Z(7Y /L]qrr+3X߶IL:LJ7, R#|q) 9<5a楣G9`2](Pa{(9T=wT {Ȅ ȴc /8~u=9*seۭZ'1gM'eWiv - [nةM*K8at4GݹH=V鮋l5h T(E9]bkZ]o%T Mf7$a\1"Z sKEwrr32FIyL<V=@0hڍo4 i!3` <IZu!Q|J;^7FSW@I(M@X{^{@>pHn3 -CBɛ#y 8"&&h;UBu}YOɿQǛ 7ҽըíNB#c{'@5"/=d9;eAO;u -x3OX$}UīSt\{(5Q"]/e,# z5 0gK2{4!*Fn{aGN1ZDN1Q:$u4VIPK -ZR=<. #org/racob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg\L-d-w#w6)8[ےEk2&CE,pJױ rS *,vz&07뗒mJ/>k#[,>-6 !5ႆhe:%aNmr'PP#<fha""ňN"ЃN]c\&5LaZS<S/hC?miyU2e䠙uױr` Kl[{b\J7LSfhO5YwTV'yRrᆮ*2w?a2\Q[s'>UM8HEY_l*JѴ&dAs1h2Cya_A !|f%y^zYȖ+I$}hCN(t]^/d%Ag>7%~cҪDA1\Bwr8!QxuNC\?k#QG(Jsj};PwpfZOtA?!泻h I/A5!TEr8!HZXLk0*FޮZخDgݯ2nPK -ZR=ʼn8 .org/racob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#@!!tf:&=COOBnbKf@I)*׮XErmuϘMe{޹⦅~Q8_ݸ \ C^\F-F«aDp%B&!c - -Q=qL`(&L*0CH`Ia~!dPz;e( -(5 uI]ǰ\zLw13U=vB35ǐ2w I8ZkInk`װǾ1frmA\ӦSR-cXEr + lH_ݜcykzB#tWw'"k -RRPOÝ9u#g bكĄ/^U6M=mN*-cX"gŠe;=9W=:}ZZ_#XȀYRjݮ]`k|E )"*]-1٫eb{2bg显tk9 ː9ml'Ep@t70C‹w=gI-W=SzRl75ouH:m\T}WլFތ-܊m>;(KLlT?Ion 4f"c uf$صUUֲJW)>eqI1P,e3@`piϠxa:vZV4T%۳'ͫe"ƴxFeRjuuKwԘؤg=j3.E곪Tcvp :]<!53D{-L&i1϶U<V:_>, E/Z=Mkl>Kd'{2o--~6/s+4,+Ϗk8Ė$=ry -GJd5JEWe/6V.c~tuF^xZt#vбzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=RZ9l+h@X;RK9|Es4>6i`$JѠYRGץ9lE*Xk<y>Y}mX }Tv"w5V/9?s5 5'NJ`}hH`?q|s6vgۊiD\B'fp,>A?nc_p=MWWǏw$td4!ja͘$+SD=lq6w]xDIn~r z?y@owL0G*s ^e˔˧FpPB'k):D_c4*OPb_8"Юt3 tsp (87S<GAJSBA~bPK -AR=C0org/racob/com/JacobDeadlockTest$TestThread.classT]WE~&KM@TZk"R P45@mR*ԪCölfS?G#c Q٤pby?y?f~7L1ku3 ´Yi& ,,&pK&M +ZᖾCMV-YXp;pD]# r[u*-_na -ti<tnk҆@GQ=ymGM2!WmeGEUiUd=Y+~PogJ~%sKs<G‘4iE]PZ;et|,330pYaVT.7ZqM'Lho`8g#Q1*0ۖr2tjiMlxtͱĮob#Ra6>,P[#HU8^e^aiWNwd6>ø@ͯ}e m%k&uT)VHL|aIobPuZMUɌs'TeܿoXɃ<1xy֯dƬopӭg,=Dʪc"~6Ä dJ PJt8fYk/<>sQwWc g\RmvsMJbC8C{9{0=t<><98э "uZHӎqEȱӱu1z"BY6o#<ǩ}t&&&M$qt9Iqnrѳi='y -_M'KiӵI -\%ibI\'"f9~SX<b!kbXel6f0@LLZn];Ebxgkt&WrKje.nLdkcV|9NADh|6(PK -AR=G%org/racob/com/JacobDeadlockTest.classrDƿquдuh 5M!@R -P'Nk7LßVb0W\ -r57N}ށ)843svov׿S, ő{A -bAEAnC 7\ IlcXò+ 5jM4zqL`oZR[%т1nXfg6hl9zmz5cH {,*Ae{FV$eb2mխNV2lWv`1G EOXU]f+ל99رʽ#g֖OXN8aqG$u`Ftv˵ j}㡑 g7[FQfC]4\c%UUK4qLc -td1#|+{.I3:J):ְNejQe7Lﰠ -6ds[ 1m#73Faeۖo]먢.腗d)pv!*d) -$Yt:l#FZ*ْ<Hm^\ؐnU-?_̱<lӥM7$0=EJuOJk||bb/ *}^9rVЪ}_ l2Azz/BE"!`1r.S>"d#)$x^ϻOR.{''rJ4$+' K_'Nqc95+Iu;Fȷգ,8WsjZTI%>r/NۇZ.W1\ 'ơu1܏ۇTZ"J NRt{X k?qŜAc6[a&yO籪~{c"pHE#kTgPư.H;;Puf3PK -AR=o\"org/racob/com/JacobException.class}MKBAi}a2n 7AfYv !vm?Z'sRDbΜs={׏g5,'QJ!rp$J.X!z|K!' f!mK%:/ R'a96c޵tVڱM[oZzdPg(V7|!Wzfr;0w,q(OvnGO'r i0ǰR ߆H|=b QST#AAUI:f(րQͳGDBQbn`F70KYz"CK N RDuI;!4QM AG LPK -AR=SW#org/racob/com/JacobObjectTest.class}R]OQ=nY|hwU4fFHnfğhGbKJ>̝33gfv.W6f:۸cj#"fcƪٸE<0YxPx##2C~_Ü'#E|<eO<lX3ȄaSqǍy|7P]>G"Ї"ѻ ^_했"@@Pe,yď,<qPGaܐG@2D̰vɤ`O-<sM 6C)ns-Зh2w7{<'M]gE䥈TjYSwi!뉨ͰUmp]J*BAm|+u1JfAT*'4`+ -Kkqqeu9t3<\ҌI -/,YI:YQ!MdIkSLF -HP`dЭ!4+Q!A(^vgHFPK -AR= w$org/racob/com/JacobReleaseInfo.classUmSU~. eY) - Z%U[m(Pӆ+n6t鲛nU} ̨ߜ?x&Rܗy99w `s*{HXPUЅPAK2fEjx$cMy -U6)kØ%m1]N!GMBA-T װ-pn_;Ԓfy1R,h'jfm}kw1./ezҶzmhf@2Y@,LE /W -Y - ٺfnh!uc{b ќ픒ۅn$7gS\NB_u2w<k'RKŰٕs=z fAB9\;8Cd+^7'i%N唠S15$۩w:_ͺpJޮ8:_4"Nb.|WOBQ鼔Y./0`S. %O`0'߅e4kO `5k‹VgG+.=nj b6N,. kwkuŅN*¤8IPafo-!UoDPqEX2bp@ - EXdY*|ݨ -1%<W P~T7RS=@_$޳z1\<ӘMjk1C<vo6vXZ0 Dn.݇q3OMT(YF~z2pi5z!\E7DW<Ղod+^용MPɘtBYE3AOئOL@fZ)ih&i݁:iMdILM#W>dƐoT1>W1&NBV9F3BM^{ѵVT*{&ýU7 Oփ`|j׸pab _ޫ*F_Q7!EqaI-Bޡq)>yc>;HE\&FIk$L/ >3?ngQzuQS*~ Uqg~Ev/O[F7Vhȧ QVm"ڡ2O5co ,|?%B%%y?PK -AR=ᚹq !org/racob/com/LibraryLoader.classWwg~fwL6C&)41׍B %d7ABR-q;ILfY^[kҋ@ښZ˦(_=?@稧|3d"d}{-+vJqQ(tLDBZ(&1%>0qB|fdX-Q0}pbl8XO)(oo*oGw/= -Aߋ!<*xL -/3 -Bœ -*xJlVX %=(AKOꝖnOuxiO}A^xV(95?SwwPB& ߵsgPwW1m+!2*!FU´',CxtkTwMAoHؖpܩNWO9)g3aN{:ie, ڌdJ5HK3~;;kg:6IpG43f툑qnOsшR-`t궢Gzv2<gD2#'9ݛPSvύKm;J#qS3I}η!9x ޖP=ex]cp]#BܲV?Ueߵø&LGt7#~:AeJU|TyzfHRxQ98%Pŏ2Q -.1^eX*~c*^l#`*~ o^wN H<mYqQ7oTs,X/^כɚ}q4 VC_Wl00r:qѻDtUo .!hBݭn[R[(T䄺2_C%yq -:Xy1y1ՙeuOr^$>Ю* iU?9TqYh,`;~_RF5]orث% -a˚>\k6ZwȊ3&v2$l-"^yI:Z>1 7Kﱪi=t\2f [am{Qca=fo@ߨ_Μz[ֈz+CI9v&reܜaՎbaa XoKo9>ڐ6&SץaYxx/(X R+tİ =c ؓw -}5܌߻헛̸/[žpNn/OL;mODa+킄.R!TL]G'":FzwHsEtHrw9\%Z/A|wC0_5>|k9/=0A/#t‰jDrؐGP[s(O/!*iBu,acc HRcS]Է^EmV!تUD*/nѶP?V~rck{-4QU:3Zvb+d~ݪ>A@M/վ6"c\4 {Q}G_dbLs/*XQq;,ykt;mx}(ex}x -43s|Oe^#.u +{|87q R:>|Z! dT~ -Ӌѳ>b8Y,N IwR~HTG!|p t qH S0vT~2,㈌GQ:H]נqPCx= Pw/Ύ|og!2~4ik= D%c`30&/{+滵Ojy jlsYlڃmxQD[q3O$E_0Đ1f_yO/b~QDq+NnWqV!| Up!~DPK -AR=nis%org/racob/com/LibraryLoaderTest.classT][D~$ph嫩u)+PZjإEQg N~^^}x&Zx\̙9900VQfWr$gj20 Y/ 㞆9uc^ǂcI2ycYc _3u}7М)1d`]_e!y#Mt9Uf2\S '/nYrydB"fF$Su#D%!C7}Hz<oQ5X]fٻ/x)<C+*tK.#% -d*bGC0 _Ia0 x誻zPȫM bHmb WN#; =C}V[ n4gVL<oL<EQM<CIÆo}W%!_OpᡉM|g{ 1AU*!GP-r^QRV⽥"]:?p&|; -E)vƫ eG7lS/*b53'e*J5uunLZؖt@zΆb$CQ|z}5QD|.rv*-9_FN['0ۼ(u5O!YtCA;P'<T6,͜cNɜGvb[H)*DvW6=\ϱ1Rg0$2Vy͑6eԜzNo^Ӧ -np$Szm?74o^:FK 1càiv EjoĿy/j"m˚5\ި=QC+dl[ T -9@l7-!A`5щ.z$`yz~Lٌ Od3MD~0ȷ-QiNw8%KeEZe>k-J_X%LRjBVm!Q>ǮԮnr_K5ЊZwIC `g4&PK -ZR=Ldorg/racob/com/MainSTA.classm -@gML4_+ ;0`"XEhΟ,|JD]v>f`@6J6k(cyvgE0'jʾDz)=B_ -i+"T72^,PgFS/E0%6 _ -dd۬;/@{]fRD i}PK -AR=EF5+org/racob/com/NotImplementedException.classP=KA}h"6&H8Do.K\ { AK K+8w "̼y;abV  TciFJGgc 厎b+";\ޞ^/7m;ޅn ;FE$T<<Ks*35O$8/2kULhzL]#|=v}m{,\rf8oT:&n 8C=7$`DX"ֿ^?AD? #<OQĵL 6)quRvM5> -*SZYPK -ZR=5h.porg/racob/com/Parameter.classuR]OA=eiPȇ`;(+UQECBBeZ2_&nL|/26(Їs3<`˨`CM<RŖ' v(N8P e8x`ɐ2qP>&2 -Őa"qvpLd޲ڱ>0^yGsQ<cяz~?:""LhW e_!vරUtDveO{ANWC=J졝C3wSI H.;iWwizO8KS$RHVb\JRhwh_]z7A4T~7nԃIU<L)VPW0Y ]'W0~$ԧ>B]]-u*Ygδj6 =o),SؼapxIQb -7%,(!شLjd5 I*)X훴&ߟo")GLwʓ;媠;֝rNy+NsueTս Ep^21^1<yH;)G^1Wf 5#\ȓ2<yHnN1\̓u=uPK -ZR=OR[org/racob/com/Pointer.classmn0?7icc [DA DܹRgJ,{nv@\< UHϟ>OOL {8`=Ju4Lǂa/xOG"{G )[4ɐgKgr$x8oRȞ2E:IN~1gx+g8sjcy|_\Oz|<c 0 ͳXJ}s`~]40a/Ctv[/Cs-UgP::8!"x2\-ͰJ[O/`ZuB?P;nJYEߪb ʚ kf$K֩ӮkT.|kt ;c}lDȒd6V~\-5Z5hUT~zJ`_E+ PK -ZR=zM(org/racob/com/PointerWeakReference.class[KQ'm2M`-at<lOZ+}h*ݰ ̜̞קgș ƣŸ L20-`\)k/*+*.v$Yu=&<.<uF5qU'ϡ&54w$^W'$+m5/+JOeڑ]wÍ3.0۝{ *4? ^kQJ{T#Ygy(}p5X7B32 ZH ) XߢKOAhi$!#o0yg!X8Q(s] x qN2veW؏5aN8t S2:Wh!Gnw ` ur2PK -ZR=ϦF|qorg/racob/com/ROT$1.classmKO@HPvccѭD&&C1u&ߥ5.(me&{>bBkX``Ħ-BK*ra+"OJWLǢdZ)t|ZWpWW?9w3%a2yǏ4;>Ws/"[~7xnDr'=ţ8 h[ z:\q%TqF/P*FD#=4m6PfdBg3,ϸ)ýf&M?Ѣ(^n4J^2RjH}XcЩ1|<̽L c.!7 gXI]TӳTӾ@"vXPK -ZR=org/racob/com/ROT$2.classRJ@=WXg.\ #.a48DK7 - -~%Ds+md`aA (XX̐)I%=z!uۂ!_J7-a2Q L]cC0>!m:nqkg]EdI_\[\[\]\5q)P"eG 4D^Z>WJߩ= -4C|ֺ^@pq&R9uOhF6)=:'"궅, ߲0q!#I-a|-{ѓCyioYiHo<=%l&1B6I ' -"V67'$G~"LR"20Ә,bt([PK -ZR=wN+ org/racob/com/ROT.classW |Wn&% r`h+l͐vv7JnAm=GxQWj=]&ԟJ~{{{s= `䙁-x8!f(kdܦ"'.; -q'^+fSp_/ o,ěBoeܣ‡2N Pq/Nw=^r ӂ~Cbχ|D38`Pi TT㈊+qVI)VU9pQ#*qBb=;>Ê5Zfq[_ V1õf!KCBUnq䭶6tuƢf'913\WpoW6.`;G]5A60VVШ[m%ͱ/!A;n$HԆ@PCsGSegCz*oho>\MZG¾1d,7D;^>*lVԙ @oY~`w(2}]ӮwIGSSļXgNE!#9` C rdqڼ`*<cNZd <F21̶.Z2Mef7adK(Fˎ@$mXiҶLN.ގ .g+aQb0+ePE3caX8v:n|7z_)pP`ЈFKW^-Ჲ}C S -ow[1`هBA_dwS_ayvcװ4|OԻ5n D~ _e|C7-x\Jc-;iEsGtQ?)m<;2GxLÏ ˞T ?rIτOOO_h%. -ְڰMBt wZФa/d^fAqz6|4S>L? _]m*5CtS}:l8pj+[FXF֣QvРm]4dhSWœI&\} <iXi'a_lQY8:zjV4#21#|rzV/69vptMnY, f1یxh%Zc{ -#ⲺlrO"*D@|׸ZY%e*1;mVqdF^*Vk fN{l\@6/} &&,w6,yCBcaT?lZx>@csY7}m*m[x*과N-v7LyN3#qj^Csry>>1/r]!"nI2ճ0s=Q싄&O<"v8, ܁lv?WB'Ņ<ű# 6efuF㐸F518i=yeI)Xp#0غ{9-vSyKe+ì*:<v<A -̺%"9ؒymC7$HȦsuY^oK\N~$Zp=p g&'$M8D 'FI,A~9j=P}\' cK%<f]qEN?|^@ު']y^tD(F;4^ǿn:*Sfr#P $\M-#3Yܣ)g3d`HGi'> BEa,zX<S;;%ܿ0- y80P4eEN`/3!A*%XɅsKɽؔt!H`ee)VL2Y7v庩X0aP6Ђ(ӬE/p##Aܔi$(ű'G=T$)R.,Z7>˨/T%8q\D:.bA5@uey"-Jȸnm(ywfV$5&#Nz]nXɟ:ݐgiKdB,E -yiJ2q I$eE*Nq00k8[;$2N9$ytjWxip͞aBoiJAtiK}U4S!, *hu -Ũl'pֱ6jq ;ⷑlbM3E60=2/+E_əDYxgbxG;7bn˽]DoaG# ³PK -AR=Q5 +org/racob/com/ROT2Test$ROT2TestThread.classVsU\IRrkeA(IZDE r+-4m [ݰpUĻ>0qq2>.ÀIKow}m|ov0dm8%W)'7 -N+8Ar5Yd8jq#vCx'w#jKX) Kr\DKQ -lEg&[OMWD5YrᴙtE])%=c%2v!1;nɃ[eZk6oPYԸҶ]i4<5]R@gt% -ni1\'6$足t:eZF_0f8X:̀BV+P{,pzd| - -#vIgK ԚiWwnl~lF%ZϸZM2|[gr )]#{Z(mQT)pf.E/f!׮hƖIe'c3ef#픒*vSEvt}G.CT@Tiوbf>k8RK*ʸ¨/Up\5qCM/KKT/vF5 1cv MfM[Y-|>T|*n㎊qW'XUth8eyQONТk:[g\*+x5Z5[ϦrzW#%g}zEыEâi,aUkhZ8!"\qWɛ -k1!?[`_1xaefNϥW-E.CdvA4U,v4u,.Ni^‰QO^q;|xzy< 2<o/gb7i3䷠4FJF4h^죞\k0C_(/!0iߵInǞGPF!42p| -)6$P7UXK0|WgH 0D{CCjZ9ih$fڥP!g"*4c7owZ -y@whi E3(c=|w#6=D$Qn^ Ch嶬$3Rɧ݇h1Ċ*c!V0WGXIsu}g;g/ F5 &8&D?bqq/D- {e oWmVyV-V9T;f0 ~Tp ¢1'c Q i445NT=V;³:PK -AR=d45org/racob/com/ROT2Test.classRnQ.?RJu(7.hc$6i\]Ng̠/q]|ƿsZI|s>xqXVpEJa,ǰ*y) - - -}W.ZmnY0iڦ!v"[NW0-vmx"Mt]S'ʈoR wq ipގ,>33(~@OȐ=%L6}y - -Mgv}SRJGT\E -+;CV{FwMWVW'\*(Io!\<CAvèqOH! ¦ew”jˆ:c3V1ӎQϚ۴w].Gc ZDdIvF#9CR#!<褎0 ԷuB]tŒv^"3t皯BTIt_$p@b1Y*$.Bx9lBCrEddŎODjB8m_$9!}704_^ *~PK -AR=` -+org/racob/com/ROT3Test$ROT3TestThread.classVsU$)h*i%zINӥn - -Vuf*"-g|q`&)鍱|{w AtBXtM E}byL>H  /Nyq$|H{1P8BCB6EFw3^^XtfðpNÚaT݊\y2 jV Uma5tMCEU;gr6LM5a #uLۑV[隭鮜ޭ'ec(YVUs4:{vpayleh -,&VT65={<Q#Ii:eQiT 5}Xgj1rL׹M|" gpj -g1TjݶjQ# n3 Еj?[HE2J\VJtf.K<p.f$+ee)^BnCj Zyjm1 u93j"SK6 I۰]\IS3MuDt8K&lf]0$u9-+mq(Sb8"᲌+xW(cK3!RWb;E錟 [TA JHƘ0Z;80LdzRI%Hcr\(5$AJp*D Q&O :Luʑ7"a\Ƨ"9ڧ׌ڠMA#N*ʡ (IϥC'Cojj𕌯qA7 WҘ?AY6)5CQf\'#[Ҙ*Ortۆ&0Wđ1e9+z, -4MwuXK%2+yAbQgSN+pkV4dS;b<C]J0Yiγ"E>F-hF(%æp5)l6 +viꟺKutrp%e \hM/PU%ّ`4xI{Yt ,y -ܡ"7A>[nᖑ2q2I""TfXp{];r )B^laHwBEhITVD'dK7OʅQ&i,_g樯 2#BfkṍI56 iʋ&Q廎Dʚ?#$u`!X[ -A(RZ/~*{hpTO<_vhn(<i -m(~s8 06U9D-?b8H6G;}t`]^>E8Ϊpգv"΢HX/O`]F"`3l6aβ?p3+J~崎R?275b{PX˄҅$-ϽBzR` -b>bx@ƙ -S'AYh -fa^qyeHv즧΂8PK -AR=3org/racob/com/ROT3Test.classS]oP~+2N7tqePG!a3BxNZ~^S5~[ly?}؉BŪ5Q6%lE -tY'pFàV-K8>w]25-ӻԳMPDʹ%oɒmorǔ1LT2qڲL<b:7㚶Ub`&UQ?Sx| PfM)(~Q|_r 3lWuEc5cZݽLkAEy TP ekn퐳0+BL烁yAݾ=g*Ihz2wij'&| E\q:b -&T"fNe mBP\%YZa@@-xO˟׎8#x8F(aFA!棽gc_؛9;BԷ}J DS4Ȑ4`GXHB"H{r'Ol:*IݾCQFe+9Fm/PK -AR=L[ org/racob/com/ROTTest.classWoW]zw<: ciG:%ljgwz'q- (-$))|A6!!!U R;;~R,>=s~qgO`?~Aj8@7>XOB‡W#xZxQa$PY5Ԑ \0p1KqX Q`' Gmj4*.1J))\Q Zq 4<ye >Ẇ>̟JE >gp396HmT !Ӗ*tGEJj֨j~6 9DklG)u;=2"=qM"yxe딥O 9?㚎;(1HK7?oES\`j7rNаށch\nK`";u]c -^{UyLWVz%-$$XVN<L@:8q,s) yL3CFeþkU %yDİSqs#bݮx =piUgp!ZIa5$b_—J_ Ӫ+t:ᖺH=ݴu OVs[Yce^ddԚwa*QI|P7놝 >YMISۖcOْ6/L:-9W>л:vvvpU d6,WXQ˳I|r5a$Ykּr#vQthغ PFrՕaY<.syWZNʒN龣3sRWIvqtTX}yWrY'U-9=גJavXPCADY.n ݖ5J iح^)&=s2c_->VOwlYMI/HZUZL!9nzeU XƓb= JRJeoS?]nMWwi%~s]e5{T*oˎcLdיRBb -&ۿ<Ā<5Cy#dQ_ -v+Q隅)eOޑizr&2;vn+=&V;Uۺ;qp}FW,3+x: nZ3}1OHQLr-iE -X}g -+DeW- /Q.Koa )lԺ93nǚԊ138^RdPfph<H[@Nhz&Д&͗Zc:|mKtx*ZD$WqY~m*QXβ]o3P!Cup@ pcʀ,xMX#Bu+YD!:Y~8-N9rѱ95l+Sij.6s1_"ճ%:\[rS$k8ГmI&;.tb7=з6~@`ʤN#|" S7"CoFǸj^qq!Avv DMk#ݱ:eѴBtØn[ƻcx:n[lC&56`4޳Iۖz\}p?2t6אܼo S[H1jmjChUc6vCc5J&^%κ1=5] ;Hֱ 2s0tGkmJst^,fMGU!luFgثپveYG_6RA)\oL L((Ƥ[4Zͤib43qZЏ`20H0uY a'p_i\G R_90(c ? Ib;ry ) Ρ(.pQDIxψ3pES>p5g<'烒(c%-JџqWWҘa4/U:QzJ'FO qj{bi)bAaêTqZTѝDocϿpscSiJ~͇-,/PmǏ|qAO=A>Gb3pQ1) AS 8/PK -ZR=Ձ*org/racob/com/STA.classeR]OA=.vݖZX -1YiÃn8mM)_l|w&{;sس`cܵU)sOg++aaMlpҽS)xUR~=cHOJ Ӯ톐u(2NF2̹l9{a¶S?'B0dk=}<gQIMJZo -m-qoQ#*<1JUh έZؗx+4o}iml#obǦ6n*Ceٸ&vm<Bai x=.JarXwloH.!o -I29n%@nKJ^<:BzȔϑH`lI+0JEk#dq4i!&zH&-S0kR"MhvIeOB!Ru,GA~$I%oq)Q$&q?+dqB\Gc*G VFT<"{+=;1"F15Ђ|M:ȢY PK -ZR==A org/racob/com/SafeArray.class}V |Wlb6hHK5RɆCS6 ,KXHv*jIkQUiՠj]^xU]K̼73wGy8V}g!,_B DOAÿx7 x*Nt'Y XHhp/v, -X_eK-xۖl`[2z̕cÙBjx$Mtjtcoڥm٢|aJ;djkfM\E&m Y`%,"31"I \VX%蟨G- H[Th*7ґ,UlfyN15FNSE#pVےɶ.YJwOf}|.s*ox{&]"NB~+ͤry NTLYcR<w'(lY͚zGRYgE\8FFOr[PAH9fnP KBaTPB#ɋA]蠦am٦(ן4 -:BRf2 jк\ŔSZńVCRsحn%v-TZJdTUTi wh|w\}Mxp\M͐Jsj*a6KzpO3zգ6ph= vqř95 -ͩЭHITI }uaժp.HTW\ܕ8Vn ;&iZXk’g&Π-G-kn+ 9L3|!c&-mZ)_+e -Lr0T(:iH~ڈNfR[@)6bt9.!`ѭ767EF1<sbLB*%CÈ; U/jS<3Az_=gNQgI"&b҉5z$G>kBŊ7m[8읗R 8XGn[2č]"xXH񶱘i|XJ0Tʗ_5%kœWg,$ބvΞ5~&{~9B%'VP6*):ę6mmd~ij\0n/ga0ނa| _X^vO ̶k, Ȇ=<܎;hDjNuMdGd -a+dұ Uc -N,}2&!#S #JwOga/4.{y(vrĹl$,>WϥuM<8!gU!dUCm糃BЀ'雂^T5\˳&K:K4fZ)%pO(<]cS,Y&}>o^T-Zb:5>ܘnVwh5&13l/]V%؈Z\S)F -)LVh 5RAt1Gjw}qN.=ی.]^\zyjU+yX!Ux/Iwc59:_㜻᳎{ !W6wQvWNl$%Ƣkg&XEjR\& RBL1Nx=x`/ ^>būt;v ^8 8!MNq7Й2әܢ܊m -nWAGcpL1'|f| ݷbIp;oK'o|^.KR?fBsKxguxe[ -W*JV&jF񵊯|= GWGWD]^w - o+6%VM߁)S]z{V/x@o8> ~@o+~PCދ+~DGnh~v ~PR<*IOc ->}Vg?y|A_|X# =ׂ7ŷ~>~ <i*|M5Bfiwڋ:}_>шo -u+)i=~ GHmNS , S{f7[}֡awo?&WӎRNÂN@$:`Qpei1j*b)ƣ-&@{]p+k㨳סɾγ{{qi76jn'>{#=A<da{ {3NNIALBj1?G]ȃ5Oif巈] %Eɂ -#@%7 c/qKw -W4UkZ}48n~Ӵ%~c4iJ)w騂e+cŠiz(ʆ~/x?PK -ZR=X#8org/racob/com/TypeInfo.classXwGkey8e'qER -%ZZ9ۮRZU"INBiʻ-}(PZh U>8;F㍝sg{H#oÿ~1 -__ykD~CD^'7;}woDDDwr>5y++K7v:bx0[KvHzdY*:G|F[2$@Bv &alH1JS;N$Yl}P GLFrI/-붩b*҉K -d6mnQ^݂ Af",RzS *&ֹ0ف|&,sYİ)f -i/Cqc(g=s*6E@0zS`z*fDNʔIgy8bT]7ؚ +k1nDzU@ĠA {V(XKi{颎%pP3z42<rqxܦC-kȘ0(c6z1XeZٶrib_7#d\ԗ5޷xޟ!~ *zԟy=o;# Gto>_R֩ -ex|x?&e ǫz)Ŧ (8c(b wJPu˔y9,Xj^VJچN77NI^@1viᵺSm7j^Uq[Z#`ԩלvGy= -ܖ46c  =<b͚7+nvV.%\uU#̙5 llU[jseqXD oFכ5ZR gRvq9۱Ž&[*<l AW -E"^.]N.b0D^nΌ3T1xUWF_[UɰY[ې42 cu2  -Oꕆ͸UM})O+LFy"kX*kn 0q y.,ѽWl~s9q`G-[ (p*dIޠ8>z?2^jnVlD_VrBS4QNTh49KEM"5 -SpI[*< Ϩ,<O - *V2wT -$$0yU?9f 9&xq6LtvKި ؏=8 {>fG(܄}~?x~ #opS?* -Vċ |;;qğ?)O!KR~T{${%{G!^A 8xYGR<J'cJ$yɞ% ~E%ԿԿԿq' -!ğIğxEOI$\Cx>rp?EBl_|]Yfs*>TJ@FR0JJ%].DRhD Tb cD Tb ohϳdς09݉L`oW`bO>܅?5Ћ."(ٯJV}wa{wlGՈc"qR"0[zO+˜P*Nc@尬\ T*|-@y I@@o* TyT@'=GeϏoVVF V|_lG[k `Οqw?{zWu!''4mhxFMm)y/|]LS7wѵM;ؙ+h*~Ĭ|^,G[=%m~~r~[F7-G6O0{usW1ͽ??PK -ZR=|QHorg/racob/com/TypeLib.classT]se~^nI`BP+llШ6JHגrㅳ![ܖfǭ//LigpFs^H`|9yyߗ tT,|I차Up[%m;hbŁC_ 0v7fnv* Du<:fhXW̓CIQ9H.F뎱WޭǸ@7Rwfo:RNoK j;H뛽3ļ:vvmgʍݴ c֠_C+ŜmYyԷ5s`#޷6upG{Rjxj5#⪜Y=sD"HU&}F-$-=TQ..:…"B]˅b6/4I޹ȹ5.Pv'㙞 B3,ϥPl@$ S˩O5R0J|rU4dyhjx) d5"b)`` :5RpnSa 7~މ9Dqww/m!ZaMT,ROO_ iʿJ6mFe_:UT[$&aI=;BH>BXOGGQ=!&ɼK!JLT$i!]y2c| ?[8$-!,-f֊Dg'IgPZǚ?O͕y"ʲ .ec\h>{!e%E%frOWIh"曣2}qʺuZ"OC_ -пO4O%&5B'⣀Ùb=ΡśűOb'5@J僖 :qn6m 8NܱYBޓ%fv^5yrB{N^\ssPK -ZR= -Eeorg/racob/com/VarDesc.classu[OAϴ[zaR -xk+P@T[dv[ٖ.g?HL|0>lfho ۠ RF KLB\ӥS` `Ln=իX ;\QR\UZYP -)nedf5E+ 92HSՠ\YdEsû]Wu5f$zY"P 2=PIJ‡ל7CifcӒz-mj9M7"X-jFɔ )F+&3yJ'/gu R3֮fjfbuvdžU2wZN-vK* }f[iEjwLޮY 7[zhԭ# &S/Åʠi|X}ѩ9 ^s6!*: [ū5 Nyժg -ssW`WO~x1z0,r<|q8 '8Fq< /"x 9^A^C!? rrP~r<A~7=r!݆g83Ɯ~?׮ ^`z -p)Cp}ϳ Tv;.;mhF^ -^{n2zLAw1^{:7YNM~NM~FPK -AR=#H*3org/racob/com/Variant.classZ |UүI=&LBd@0QP@B I$d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhUM U c:RňyJ:KnU1CxqF0aCal~C1x0|/ 3[j7/QR `;sL<~ Pr63 - .dUK h[ū5,^~q\uxk5Ah npkxy7qܢL yW0z gkI9lU׬IJ ~lqެ-~ܪf hxn . phxiH$i]4|Pp5|HÇ5pP=q^ 9>G4|UOLǓSi3,>ˏT|A\Zߌ0>Zź- #hA_|Ƣԁƥ5j+뛨iHD?6!&H,PbBkb6Sء -'eU ]yX_k𐍐/p9)աTSݛHZ{u'h[jm|x,:!Obp(ܔVHZܺ*&#RHwH#/ŴdZ2E;eHR%H4JRh / -&u*$)]U<A+kZrFK*+5,n]&ED$97NY rg_*&4+frǗJD֐l2 BkH47hN)pMPE)n251>C[VbeAY<w깂f7>/VFv -U"Q(3-ʪ/VTUjVUZSU˪ZSe*k2:)֙V-fdJVIR!vS08[!qKҖzrZF"uqt\PE3]X.wQ$GؗtMumBgS.%BaF)qj0Kf1sz0tHݸWFX̍5$RNEB8;ֻÉP78W1%On Z"+ -EzzN"$$N2Mq*$#ad -,KnΥ@vm]ݻ$ւ_gUv -GJb6PBCwUi4,̞H:Č"ZTprIg-͒ ,V!@bq|UEjXuN,;̱Zۙmo3]&F[@pO<FhMD"WQê"mR}T"f~xbĞn6BʝC:gB64jPˆ[J[0S˝}ɦIVo] tc2BJH/YOY]lXH'eWF"0"9-#oi -u&i>HW{8^A.1>K`3mF84u=]0R{U19Kk"¿닷k#STfc x< Y|obKk_G'4 ZǬ*-KE^!?)qJI ŗCr+OlX2[&M Ģ]љ@#U-ǀy^4p1%HYKI\ U|i8@/f#G,6_ dM4pN4 U <5M|S33p$ |RKO([d}6644׷/i0],3=<9T8nH^`㨅 ?G2x3)>̧{WU(Sx>SidAI8^f&7dXX 0HΊ[^-9fj4̋@(EFenF̥*4g4KWGcgGEͤUgU4zKVFoJ9<T`GaRu-gˆt="A6]sFc:Xkx2`??5zkLk~e[69p6ÝUw^M[i4K)st[,&O,Dcg6S7-IG-MٌV3mM.kN`͑ټ:̕j:?^I.r[;8B/ )XlAɗXr]NM*ҋ;0d.e tu` 'puF+XOMn"yMH&|3ɷ[Il|M;l$e&yM{m}$o&?@6y;m.wH~&<h{m$?f' dZBGK]:"+zn=^y |e8)CPƓOa -> HWbp-QGtEVphA#P7k?Kmo\,E!gBuPH>fGHDI(n1ɠf6 <;<&KhPPKrZ=APSC7*81L;I1ޑ2vR[(8糆wi(Z< 3|I _Iwz;!M |F}߁Ψ'[ WdЁu߉6#zd'Te 9L咩2SaO$| w<@6Ι 9k9xU@Kn?q6 މ>ҕg}<{N%\9{މ~ѕz80lj+28Y;q~vk̫e 9%{}UG*4+kf[<cuQD](# b9/lt t-+e/ 6 "'"?+wqo.<M`ց׉7w^'.<M`΁c  <ӱzD\x / W/y8E-< ۈ($Qف)jcx?9DTs"i:$xQ= 8%&0)< '~+tI^3ˁijG9 -pɳ|/Q-0zƍ@aC,rVv9j=?I+Țɕ챛i_:^,>n9 RBsSKlZ=' 7OY $<f/0hMibcnK F ';yDђ.=qut &}֎G8b!΋HK6B6  -%0qC8rXb1/y7[L z4ӫ8vQ7ƢwWh38t&CͱAҙ)+5QcLu7FŶRR'%,qI# @F XγK]FĖS^YY$K$6Ӷ98 -4ҡ -x d:(H:8@cxptD:$?r0#=>gz܆>&`Z&th4C rɟ3٩IvLgw1dxvigLcw#)ddwnN:ٕS@&+-  }T>C\{C0ofV5iDГV"}ߙYϨ1‘ NpGRkW 5-A_ݛY`1fQb j诳Bh Ӣ|h(Eԓ-~*/cxE niO~YGyo<`]%ۂ]I J|8נ_C oڜasNL!iygfPEz}fLf(&-R.ݞi6~6*d;o Q8Kx>.KۦmmjxrlpJO.n?çY_a98%)^(PkQ%VI%z 3DS[NNa2$04|*ygUrF0ΧI`܈\q.H9+h` :Z9SAWNMm5t^$t$ЕÁ?O-'EI[v{ ʅˮNq0YͫoAh'sHk1?N<*<@\98Mpl>Ux]h~,ҕy2I(E@Y|KMǜg -Q0gtUZUT0[kɷ(ʘXPRI2Yf2YfRftd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&-sLƖ3[M+*s=X_5T-\%>rد\o)WX\'( xr#ޭ/F%_Yܪ,U((+;Ǖϔ{<Y}6OӪ<QR'+Yt)3oaOwb*oZAWR֝.jVP(٬Y[ 3ʧmXyzs -ȥ;;DɦJRL޹P A%Ԉ_33Exꫠ)/Wy 5m 3aT*A1W> \'fQ|Mt:um/*.RF*}4<K䵺YA|7}_Wwp%ŭ}:eZ צ\Vi0H 1 4sΣ0.6 -"2+O7PK -AR=͉\#org/racob/com/VariantDateTest.class}U]Se~|6,B@&[R(ԯMv!^9^Ǚ:юtFywgb3sv7s'F`Eу -" QpC%`4 -UI}SqLn%̨xYQ1+WTdѼw"cvv@cZ-Yh-T6sViheQX1J|C]8uJ钑wr鼳PEwpe2K}tECcHW\vB#NJ],d[ۖ 4/Fyc˫7)9{`]&ک@./ӢVJEٹWc(}w l~gTJykƖt9tЋ>h؝D*5,a,&_b2.5)^4U kM omz-\Lhx!,rA#G@ȳVxK<4="ҹ BA+ -`z<u8s鞞2mj]޴nr/ i}P1 -\D&$0)0tOk4Yg p~?S&ZHDH~BmGe=t*N.],c-VcxU%Þ3 BAyoijA܁ẋQF<c tJ0ij0Xzvv\Ed!5TvT,ZES --iU-ZcmU{B/l'EM[da~Za*&q, 7pJ'C ^;=L(T^ħVKpr|oɄd{p<T<y~}ZwtL3GQ|3Eţs򭻊!sQ ;Ir6H!gM\'gWǷ#~Ŵ"#]==^0mzrpn9FX <O69^D4#A+y?PK -AR=5org/racob/com/VariantTest$VariantInitTestThread.classS]OQ=n)*RQDE-)(~M hFߖWfEQ?F_csΝ{̙sf~ 8ymSh€vko6IMb_ -دm&1İ T -LU%A9c^ɹStt>l2o3VX^8*Æu@v+֬w-o:_ -Ǜ*ZFOWg&U0aM<imˍ S.(kJ`=OתTӽ$4yfܚh[B+ ~ l;^STafoE/TAP-jjdV=t:yEY4]ƙ?N9rduUAsm -q 0ek9J~5)G;[bVc-&ZDHc#b( :W-IL7q'1)A?%?2ٿǧ(T*{&zM&U887wڜS/ ]o} i2 fhp>b 4O":uEB!%"w&.]ڱd6C5X9U&rO!~Ӈ84jRK^ .6`q;hGCcPz#uM> J{B!I ]hWX%o(52NyY{ۖdImN/^ f>Xc br6|ƺt=vK+nъ0]CLbPK -AR=g(org/racob/com/VariantTest.classZ{|T?g&LB HHH $Wo&7dnP 睊6jVnVۮnwۺm]wfBh?=|DmѿehK?ǿC!gszS()K~>zO"*~#l4~/|G?͠w'GiE'5@|t:>O"}8J$b5c,bS8q|dA?ii-C9Bcc}<OkeJ2y! {5d 𦏧h<O[8iOx3e벼PY"4gM -qs=O"cJ4.Lr?BXɋX&h{+4>]J>#WjVuQj^q4>KH}I5ոNz?8|.oqP5m>4q Q{c4l7q=f-LѨg:# LޢmLUV465fh[koa!cjk+!<du;ˮ+-fk2674C6w1My%Veu%L9 ;S~N(0u6~of -: ;)6lcl#T:t;eDpmCFr̅^d*PYF%1!,`?odkwQJ4dxR'ˌ2#O*saV6s[#ꪲ]f6ߊQ83:pkXl,kF%F$|z㰴6#͈W\;dva+Y4E4Z v xU[f޲]@p=X]>>ik3]ΘODl7 -d@uZkKtZvjoLJƨm1pYgNjU2&O~P̔Rq.I& 7hfd$' &@X, g Vgegs*3b}x̚pp2&@w!xkĽ`fZ㚈e`etA/||q?<źD8b̡04DEZa2umΔ#u-UAXaV7=ntN޴J #^,=β"h-%'!9I(4[1E -p7Th7T^lb@TdRK%J(^=WFhU -G/= -.]+W~窓T<FՊmP[UbwG3W5L%D[cVW^m٦%gVlk]eB6Ji@zsBV*[kEtӻv;fo -j KҨ z".vqQpp.sص]lQ]MI{mK"j;HvE:J .z+ Z}bE1 -_iBNO#'>03m[6'B!D*U('7"ԭi mCnɔPխz`U#,Htr9;YT)><f'!qD2Zӌđ7q'ӜS%/%nf{JVJ7BYt7ː'u7|+DST QA||7`Zŭ!hxq**d;Gom|7?|6}7*TDDӁ8.-صBՙǬDE5ZY+*/Z"E}|{|`/ Žzg !d嘎#a~DG}WIe_ crf i0N)4 -(d Ԃag$ swPs$u a:f^E{P\Qphщ_-e~\U7 (ЪQR\QbZp q4B*¶ 17Nzt[X!Ja̲TO@K2WUiƩ;@נB͖ԏj1R0='댸)3U4 -n7Er%dfD%p/!SM^Q~Ρ<It3˼$܉EWˉTdU.HFg)Eçp.,Tǁ2ഢbΐ5D EWipjNF[<<;g˳Q^r)=Q7 q\̢5?NjbJȗD5W4nI^Ҵ5$mR p -|չKb׻4^03<F) 8ކQӊFs*sT8mwJPwW:!J8զ8T!9+d } FEյ.?onO6$F6CK^'U8N#f6Z0>o/xт/Mhkqv(H%p#FV -1(F!}KE\8*Q3]V9@f!?$Xkql#')aqǖ #vW$*f'mm ?RLYdb̌GLSbr<> ӒS1xAaZ9IRL<(Inc=&d,,;k4=C&,짬>yIFK+RG#ichl8<0\K(o&:Bh2*FūjJdMihz^?mf4>ұOaP"6*l6dGќڡDl4(w.ϫu: -{^.R%~~z 2C$d@xy3O+]̫NLN4iTAi5T$OQ E;`- -⵴rE+Ni?G :ߦ5 TA=TYN<TSgm\Kxѹiy{~Ayޥ&l@%'dxO{^{iOyE=H/w.i壇<FǨ]k<N|zsBGQ:'5>Z,B/ֹ.}tzrҝ] :Ñ谭JKյ%>:s{t],<&iJӨ ki'E x.Qp'K‰ '$*8!E )`?V&\=^~rڦ|@2Kf r4 *ߢGhZj'4HG5rR'dspA>:ۅɂuij{^PTt%-h%F_ n7"n'VznWoJKA%2 ҷ+;Wk #zlϓsg)'9GGRO9$_S[+\Q21T'N̸ʓi=3>wsi֏_"s>V8<E H)4z6#vn -(GQ$ZRC/N+'kgi &3t#g5XVO]O*^*|!*륱u‘M$ ҄<<?VQE5x;,B{D<f_\G|\߅WCpFTKb8U ş&hq& iI`@Y)O_o71SL!>aS2F Oc1;\#G8(хq\4T@:v<$z/q -ר9j"~*.R -|ll9q -T>#$gL tq?}.utzi$@3RI`>ok -op`4dSpx{qzP>{"f.l":q* 3)Y(on+,t)C -]|RA'P)>'d$bd\7}P)wg0Oj8uQI?uˠ钊$.\PUQ>zSRiH6WjYYxeQgeV\ȷJ鳂3('Ur㈣ԌlkSBͥxz$r%[AFN:- er@^R8nIlW\&Lup)2 O_YITvSڧt3ZKӋt _|;8*(D -$̓ Rx:T3i+tɳPn.xtv^e)RtzKUa 7q+C~B<i_ |MOÞ.wo!:gqTJoKݞ([RM:q0M?aBEqГSQ-l9{gس`_}aϥ8D)h ZA>u~O{$py<S1Ԙ+uM#1JMEߤ4Jr5NKVC4gIk0͉;t]>dڢ>^J u޻ʻz&L_4@,oHުb)i/Չ-348/˨&CEC|Y|%%]^ut%_O AzoS1t){|h^E9Yu% -y0%+ B|>r>'?xW~Dr2=`j ~%PK -ZR=r  $org/racob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@*$00 Ej[k_V*P-eV׵պ]kku_uݢ{<&4|sw>ӧ{R)O?3g`'t~|0n}(¿E/~~tn~c:b}3Cito;^3?^au]Q?0/xÇ7]ՇNp } -9ûT -7t#ú!S!I^H -tݤPW& t5Ƒ"]0Eze~RJu5+3t.a&M&庪dWf{eW^9\r >g^JWU%BWN{eR,2 -^`rȅ -H Yz=Rj!0RAas6lhŬhW]wn YxaeۚW5 -J[wX~+1[a:6e(VVmxVG{3  -:0!%n+lʽ ķm¡x(8ț'uǂV<ba+WkG;^jBv[![3N5!+-=nul\ 6UG4usM'8'joVfk-:4鰖à%(Ƕ 6bps%?#;%CakPmgN>}90rCQx01rk'<KLrLu4vwQ6pvUٸC`4l#H0dmg"=!ը2{k"oHע1n?PM[Ez:m.Bh{'ʸIzIeccu `<h$u`-D( +nmvkByH21|Ȭ>a}ŔFYSX.Jc۷GcqSe.y2p%TplFA+b2s*1CQSZM\&xzBqW -e6&g\9'vP$j&cíh1<b`{X73&cEM+޽]:.K.o`Oz77jP(d7VV"x flLZ6S bm0[cJPzMSR_M)aSqĔD1`.aD *.CnO3&>} 3&zQn2Ì!n6[MO|Tn3v) CPNe~jE)'Uw)O w)Ϛ9'X2r2`{祅4hp*88&^ ĂX$swoʽZ07#`n )׌`۴)D#|0`BCAho`E+oؗ(\(r`'Rgc5הT Y&]lvt|lWEMƍz`Ad(V=)zG> _TmeG :>Kb9^bMvUݯκV`Aw#1,yixbMwauW+!S˗MyP_Gݚf+:*<,SoqLKlru|yWٲE۷oPMծvUtsc0F>EOm=vI\֫m&Z56jFt 386F3=8΁dqгƣOǓ=AO䲱@0ң3Wu8 ]wM2]-}R;IH -6tKfFdA :S@q[q|1ʊUO\e9ВŚ_Dj0zGU:ѻWWut^̳]CVxpuxOh{)[tMIr!CZ'$&AǮ+A_߫^lFū\YK+0vO<&Ɔ;Ll$q)To;^T9k:򙝌t:%CS&+T1H>rU-Rp*(egKRF儿*T':<I:g5Z6SE1z4P[ <P`(rS֊;g}4&T7yJ{ʳI&]e´;:Ԕ.[˱aR<;U#|pŃX[p+\L}8\y'[Y8U@"wp`i$WC;)yP8r:G{TVG`# 6\`~`a -3Ӥf4(b($ .I`*O3Vi L3Ӥ3 +WXE"YI-fIg6Ga4,@9 -%\a9;z;c w^IeU S@~d pEWƹ`FT"jE B-`!g<;,;X"STc\;Kw Cf -ҩ?;E#ύ7JG헯Ik(.q-T(n]]ϫ8syX", o7{ɑw_>@gY`ik\0죇Q^Ӎ j8A=}DJJ|?ΧcR1ŖOǟGG_?_ -29V&O:K'Wf=$$Oåiqqŝh]ɣ:C5~Oߓ}ҾZ;:ME1FHk 4c.Z0 -/p֣WvۈkfB'֠X$!GwaItYtURɸ=^Ob!$a4b\/1DFD{G1$Op~{)앟&;_Fu>*~ qJ8lحqG _ʃ0݅=I4q?֜Qn",f=L(ạ_ƃL*9a~ރJ$Zl97;5'QfKvf1u!ќw -E8$rAܕr9@}z]^$y 3JL:Q-IQs9WVh'Ӛ{IE(XPjߗ@}F̤IAtItA*N -n -u:o7Pذ"4 0pMh[h9M.<rfen kP-v][a+Gm~O !³_<h7>e=[v{ްN;Wڵud~\6TŶEkGqέhy(|WAvkthv(6)x vz'[FUWj%WRkd7؍ߊz+0LM o1Gc;x ߧ bO{$J1~*~</se1^dײ hUmGK/6F,4y`ÿS)4 - - -Q| _8QaZCOqŃ88)m{ۓTOMs`,3بC׎㵃dH=\;` M۷ ;+[$E(9iЌ8mhC)xb-U5igrLRJv*SȈKSɀU\@Lg(z qerX&CI 593W2# 30wh1ƜWTW7j85zvjGq]-+<eYUl{:g`8R)…׺qRX[\1+ljs]쭰srV$v Ay%5ڄ҉Jقr . 6l;_n|G|u:=IrXC2}k5<Ef ]6<xP<a;]Ӏ rYG8vX\<FLf.w؅MZ1 ZB]N7PK -AR= DX (org/racob/com/VariantUtilitiesTest.classVW<&B XmShm --imkȔN 3dBŷoセ۷އ,7r_/p!P絿.ŗv8v⨊R-81xcxPVNq RG ?Kg?S"0pRL8)MiNKpŮKvqY:2IJScLeht{ѽ/b^=&#)F|@Г*Re{2GG슡ʂic))SU$ -^=;̃Ű{ʬ)VOSi{6,kVM4jE)e?b[sd!^8:deIǞ9[w,[kqyl;aMsW`Ɩej]l1gwG':;03!pVDO{.2EyQ GKrx &gי,@xK 5vݙ6r^f']2av.=h%~Y yj%mnPMSwN37[M7sk oIHi=!De*E)LvuLkfnV+{:^96gE4WT5Uw ?UKÿ7𦆷d4]E45|e>UDpvXba`Oeih&JN=PA&<O7=Kdz/Ql]J7xj`EN]AQ L^: \ -ά:r4_sYSNҝ~X.0Ϝ1,&$z/[ -Jhh 1$3 C32Zkr̐is9fcjuK`)bq]T:&&<9HɌJV -v]+VL+G͔R(W q^y$eߨ- -͵/yrNUs3c/N -E^?re)--0! -hla_@K<BEܸX"?u h-%?m0 -0IE6M\ - ~tH\,w.k+F!fd:Ҥøf\'0Ro^zM>͵} -b;rF5Iƾ诈5.JpKh1L@jlEl -}mlp˖EW$nf)p=Տy;(f'IBDNN ~J}ԓ)D/a4$}H.Kp8e7]_@UOU#In)ϵ<di$asL_Q5J?Tan|U9UTM4T]1]RK$;T -'qR$5[_Wo<MdIq&)GWtuy񦆮m ]k@?!&DWvY&vs lGae;NbR z¦X -1XJ3~RU6I=a–p?U#PK -ZR=GH3#org/racob/com/VariantViaEvent.class}OMK@}OMc#Rf=УSE}.day<I$7̓qG!!BRk{,ޭJBVnQ5oNr]F wgJ<eFT*dwl !zНfы|^'<R8N\F#wBw`<?"23XLFe PK -AR=qQ]"(org/racob/com/WrongThreadException.classJ@ƿZmABUl@R,Uk=o%]Y٤ŗ | -O'ag7 j3Ų UB)F/Mtx}zDa(aHN<v. Ov;T[LcOȶ' Ů -n MO ]2V0I2UDw#\=p\};~p}̛ʍ '\FA2D_qJfU6.ҹ^;Q$|vaXyka?E.c>1@a9-0Ï,gmzs*cs&+|PD)D6a7SBK5!$Ef-Ҟ'PK -AR=org/racob/test/PK -AR=$(!org/racob/test/BaseTestCase.classWkS~.H,kCX|AsuBvq` l|S@-IMzu/6qӴ)NgS3 IJbYÚLy%|xN 2.%P\N0QO#"f̉)F,@ .*K)/:_AY\I` -V<9__N+ +~S~K[w -^Pb+%/Kh8fڦ\B笄S0$̙1V^1I}Ƣ$suVwM I؟sٌ睙ox~uPBgS%(:*lgɦb,Pܼ~EX==7i)u\*6Oz~)B%4 -_YßKqv|"%qO]- {{'|״g GLIgY9e7ϰvo5 Y O˖n%kin?/Rg_^ň9m@^BK`)(Q]kə3HZۆ:i0Oxߓp 3킳mC:_E"Oy#,фB +͖ƠW$%<:CUH8?Cd!UOLn\,ˌDЗs/d!1d.haѪGp mwa+~~N~_“#: ڌyyhW4YmH|-ohINQD{tyyxU ?f͂5X4,|Gs˶4EL;Й=5H_=dHŏqͤ'9~!*~kdqsINM+trsgg5㺊_ 7T-d_I-`ofC"f7甭f;6ch6Q%iIDuf8qV4`-h -ZW W YP+OV)xQ?cTDU sN>+|WşDV1D*nrBHWZwdػ|f.-w!ղj<&5%# ^4E3jAL lm֋۹ɋ#'<MvX>] r6z/ -{t]dbVu TxE}FjNf> } zd Z)oEmOCw9]іēeӇeسbe\w;Od3~VI kNtnCFkwo9(S.mvM!^_Ki -$1~O1[nG6? x Q>n!J2~7ИKʼX'JX}2N4BC3KD^ -|jm#8J6z4> Ē'e sX%'vlDuFn;HBIZD؍z(G鈪XquQW@ -MRP5$-khz$Ƥ:vMXk| bv-J&װ;5YC+ڮ3=\B,o֧[.dBjRhR#۰7J~S љjX BV;rYJ^ 9(sq`)I!f<zqCd`|\+xW <> G Ē}'I!ʤnXz#_qɷvh{@G$erj)9IAo zj@޾÷p? i$ -f]X}˄}<ZVn-c'Ƃp,|zfR*mZMEfzdV1BUY =`I0d0lMNBdLPm 0o=TcW_k W(%躞]Zoލ8MLLJbHpƧuS -o`??& 6}nUӕdq6Jv:J6,Luwa͈49PK -AR=org/racob/test/errors/PK -AR=3a9,org/racob/test/errors/UnicodeErrorTest.classTWG&Ye]P"`UZ *YkmOچbm h2Ags_}%x9}C ('BkN2w~s3?(\v4ӯ|bl\q0 -n{˅f6|k`E6J C6?`tM0.K%*֚VZ<ysGҬwVҐ1CzP@DG%C[0d8k;RSN"J1K"yx&tkE(ډԊv)Cn RnbR^[+C5vZ4uJoU=&TuW>[\;ܪDXF cp䑎j3nqa[l5N=Xn B{ i~҈ss]<|oHO,ñ~-;Ybz< -JTW\& S5'L -PeTHSCT?*1XH, -jR6+?QHE\~ wϨp7HR"k&m0oM]:ܻg5J'ѻRċԢ+8&VNz2)d+8MWis'izLYOw,oyn*_ t1+rlCrkz77~.%E.1vٴi 8;JwꛂOIZRUӸL};&pGQYeg?] QMKy;f6뵉3F@,;RPK -AR=org/racob/test/events/PK -AR=D6org/racob/test/events/ExcelEventTest$ExcelEvents.classSkOA=m -<}U 屈oh$? i鴁~TD?xg!L;s;~ `O8l]c& wPHÂcvc®Ixr06CW FB-k^êb E!)%ZO4Eh–/_%VP9bl%5ؼ* %Fm]U+S<XZY [S.do>tLrGZ+edE -MeTow>ת_ռHjhSpdM U^5p]5Ʋ ֑*WTC♴C9d*sqi=&\t#஋{0 -es L4LEZ<dh f]<œ S;[i>7R%shܦ [a'/W" ^on0q[T7j"e8ٴYC,u~nJËF/>^PNk_alB}8/ӈQ|RTs* . -Y!\=D`)Ft܃"Q-$1s.|H0>Ed6dFd,eȱz#KQ=)E?PK -AR=RM<*org/racob/test/events/ExcelEventTest.classXy|IzDDBH"N! b@4]e2mڤ =iwýVvcH[& WM߬$,2?{]7Ђ*؍aqBƈWȸ[I T U -xu5k$VA e+dNp/&攂 -ވ7xEiѿUŃ2.!N»e>? 2>$2Qq2>!Bاd|Z>#B$|^F<"㬌G /H| y c -/KxLA  -vhx\W$|UjZO$xuNA&ci=4l\YIPn37n?M+v+{tI$v z9<넸+4V71,TwpRqsd:e# -Xe#d&N#ѝD%6_6Ź0G 0,׵xdi5$S~TCi Mv.d9[ GLڸŠœ"Zۻ0iwCv 2R?`XUfpa~0-do2.GO3G~/&B -ü*i7g-3"Pr>u WgZՙӄY f - -fUE:%<ItN,%d7w@>9R &ft Zg`H#{pHXk{sRm )&, U|$lN莜Nc%o1H=XgqYwT|O /A!ŹE*~ɤŀ)%ΈFRE1KQ"(~NXE\dhni+p#|X4҄~u{hX/Q.Yn;bﰞq0KR6PIk-'"mMd|e] Uieb 7⢑<am47#SI-SI +q&ѱJ/g8±1,r]N@KjPĈ"TUQT̺z)RW!sҏaUe7ohr*՜m7,jll\l͕+rfrHob,Ub&il;,S`W1!8u*R.Ʈ( X !/(׬oXQ MTI⌥bi5{) -ixU]cV(. -Q2bؠ.ff&[y}/ P4{3ժ8$NX"IX&|iXJ]9n&ՇyD#83p|y2-_x zf6V=L&:EX!DtPE;%aKY˦9gw g<")xmʥZU}m4/wLCu3} c`gi0{UG#袞$OZ<9~Ou:' 5AxƦ1T? -e5}cPsk yXP<+d/QO<G|?2,TKcL2! t_Ǎg\F iMf -]y}.9e7 mr92RPH h ThPfN0.#z*yk<cGr%@zRl{cmzG$bǭ%)F.%B= Ǧ:lQ(-=KXNcؓq0. -Ta%qԢ4jec3XS@{7nGxzng X-lvcAdaYfNvȢ=r`;nvɺ"zc␋0v=ܓlziTSLAI h${hWIS=KRHy9bTKOYPM@eO I#l ?ĻUYBJQ=*XxFٙ^KPɦb>G5]D`;'kX3chxGx@r[^<;>XV]54[%,Q;Hn ɐmR0o." ">2 1Rl7@bTPR!TNBv19nʡݭDt+PPK -AR=vFQ"org/racob/test/events/IETest.classU][G~lܰ, -E i#a[Z (P`&ɐ,lvf_}lO{ًS{fC"Ɣ9sμs1??2&R&cz'FpCaZg0#99ܔ|?u,۝X E*rY+RKL NyêԬɫаaCALx;Um8ĔↂHu+pҶ˗rYsh/噳|[ʇ(ل<峼}ᮨZY{?p\gOVee٢bBn%F祿 -yaQ-~P08+\rk@<^  -AXsVP0v,!ugo/JJ&勼x JWȄQZW, QIYV5<I {[<OoIW3E+:|" QHjxhKyn% |1_ `Q*@+v -Wpynʬ_d>,G5RΘkM `¶ @%$UG-uHLY5GG,(\3p -ELޠ^V5 ):.T -[ԳVWZʄ5dc~h(RamVѪy3~GѺ٫ -^Iz۞u/(e;Ji7&:>o8?j,2+V{^Oq*Rr\E"uHgwQo,f.z''[ȯdK^$tzhҚwIGV@bJ"3:#}̺ڧf~D::dFLJ>1q1O4!"x>N,_MKmP"rP۠tȗ$_)zrb\N֠qO_R@>N35Ej8{sG ~ ba1D -Uy`yuÔSN2I$WHn\F"iN&ܤ-JmzG!'`SyqyBQJ77z5\Y - w_PK -AR=D>֙Gorg/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classVkhU=lv'ͣiV֦vmlM6_l&&oWbAA" (  7ݝY%do=Μ|ׇ؈71UjHdal*Apи<4#4cr,[yvw]<q{q<#<Gy<h>)j]8Ć5S2ә4u-6؟ٶ.Nrh692!C[7o1R_\I3C̆q&q"CJJU4vga` e%A-זMWLM(*Ō:L)X=534%L 1I3ruajEpfɲ֫(dS†%nyqϫ!Y{B2UruA0}@AS4O]2$EJ T_ȞR+٬ :Dx,>ɖIT>Ks)]33PYRt/ˈ21mh xAWUEae!0F5p3ݢVf(IˉH&u Ǫy FyW^94 3S3ܨ#r\3uYDl(]c<"hq 41#c>[,H0=RyQ90R*K,oآUlHCz))R͖qI\TD)mIWSl@4]Q{VH$ :x24tLo`iJG I: <s!<BxF7+^8p,!WHZr h'8,/LaǑ -(;\yŽ-;mň}N6 -8Kf3dAsnX2!ש=2lY hϋƣy;W -: H -j&WJa1;2Ql~ %O^Jj:RTt:1IfɒL_ B.nj6r -&)cr$I ,EwV⫏kL5!䌙D绣ZcXxV]&r<Κh -^\E\[ h :Bkhv Y5P갖~Z:q`"<FGBCH ]*M7)LQ 0FS~9#W1b>s =h0G)7G[}3}6eZg6eiΠ6ʴxhG߼y[=zxOV*ġ6(6ura%N;|W_SW3qU5'ۧmڼGhᡨwa",3$j&-5\oF>s6a[O~Ir|rllΓӓkpwبO!QbOo;v}l -)wKKl-ߓ V<VCUxVqRn=5-d~uak\O߈wlk`;ϓbӅ&Zr7Vr\wK s>WCVRkj.ָ㐪մR5 VWN_Ryz\j-#5azs$b.8PK -AR=0 u -3org/racob/test/events/IETestActiveProxyThread.classW]tT 7FVL -hB!$IB K Pjov'K6^ bVEժVkjЇzއ>xSMiKS?_`ޏv 1A)P66D`D#Ș π -&N60Uo,S71aZNIg v3&R'L|ē&RRfiϚ`9M<o - &fh܋MM|j+]ϫ^3@]g{tlk2tdoOX+ʬ9'kL kt Tt I野 -:a;efd@Nu][*ۼX帲'7:(bvyI;oa!x ; C Rw'8*!q׊ GLB5Wq8]mi7-b72=-)FZ!7$ӲhbEh:PAeXUJflzCtr5Dz#GڼQs/#ݶm=Y-˜ ҝL>/$e X#Z&nYZ |&pڹ2l3^ V8I[i@wE~hG~pk*lvdǞ}aûsN&%k 6,\ ^;L[9~oZ \K.BslBS8'()u˅Ћ=o$t@2N6NWKa0ίPM)yTiZ\ ױ_`͍\{CY|Cԁ7{ -30&"wB&iJe;d=\F<5aRm&ښ0_ K?e`g." Q^Haxö2c97t2Sr2)ɗiSj.<-_`I٬%W\ʕh:(3ʘŻ[e=e%- IkY;Y,]]ZZT51<P} - Q`RDTNjryH!UGh1 HJaImK@1;oYmm^$pkBƖ-Q~e=PWBX'xIVe3R*QV;7"=VBJiU Sd.hٌ+G(,b" 5'Յm{𿇣l#[ w^J\\YCJGVc9+`tӨA@j - Qc@ji./]5SX]5[ӈNnNbuC6]3O噣kIĻgwLaa5kTOkwjwi4gH_4*E/RĹu==hLM$]Fgk#8xY}s|廫ߩ6WQh7>|jznθqc74F^ -_Nğg[/)*{8[ACm(Έp?cE_G3]nF@#b8~ t| yǓxau.axD4p0Ic| $_qY|sDO_g:cb#NMs-k\ǽxO ϊω3x]>$Ms`Uk1\o8s5Jiia5[A5E+{*ĕB&Urc.Պ׸sQe0pA{L l6 Ks~XmlV9Z[ͣ:ῌ|7,PK -AR=Q{.org/racob/test/events/IETestActiveXProxy.classUWG$,U( Ukkk"h&EunE|m>s9}o}c{j9'3~wib: \H#.R -'gಁ8 ]m5-~u|~օ\7B^[nq |yMzR]gHdk ɼ_ VA]|k<ZV&Նl0Lj˶ eMᩆ8_")()W,ÈF,H[ bZ|.Du%*[+{्@ -)*J5!] R>Xy]3E1LUj71f -L,capVM|]`Qҫ΅ҭތ~ :g*Kh`5hS1D%_cmuwM|{&Nq+rH=Äꆲgت 8XM"Jv=̛ >oN ٵ:~DTdtR!42s)|4wv;L5\!4ԙ&A7+X<ҷW(5N^ Mg -k6{@}z$0B3{;kTZ5KoהHZr=t>'ZTnK3;]h?ivCC'Pt'i4z:5u$vF{j<AkgE(im;zHyda};A {ɫ~Es9x~4@ {~ l#ɠUM'{ #O!5k -38J8ICRC8C,,iOB=Ez|:4`ߧ|+&ЍeSPK -AR=u^ 1org/racob/test/events/IETestThread$IEEvents.class]lUS -{t"[ -,TQ/.]`" tv;0;̶׃&jb4_5j⫉&ُnI{;sg0O:0W؅tNb6LH ~OqYxSzq..pQ 7H,tK )` c`;C -5r4]'53[V1 -v',S>aiݔҼsڼA/m5cNuϮ^B -ԔO:cҞ04Ǒ4W3r嬶5W*ؚ#oR~[MWlyJ%,d]ƛX",ҥ5i-eQ7}ROkʶ-n]n|V.͂LC͘m)#cfe\J1OWtWAgR8ܕ1s!~$gY?w-#O(K۽Vz|Ŗ,噼Jɫnݭ3F\OE&kU켜=fgh/iK'[EN -l&R#(Hf^,$*q5k*;*u M4@AxZl;*Wq({PωBSb7\溦5SF)Ph?._o{}Cc^_lD-5}U덆]}Ȫ'(:Rgk$5L-5}Cm$µQvNfZKz׻i"{qeViFRi.Mj%,œL=RC֐Hy 6l(YvfC `[radZUMP,w~1 >mޠ+$~vxA(|4܆nj^>U>  XG swo -bA8#wW٧rtR'4XV#y%7CC0&3=!{?3y8//2`0F`3اX@f/c!L09LӬ1GrfxdP{#M{~>~ qrBY2O0_y̋! d̉B0m2+C0oy39;B0?'K;C0$'B0&Cm׼J|PK -AR=-(org/racob/test/events/IETestThread.classW[XvauPY)4ڊ -- SDlHEQa#:; 5&iIKn5$hhLO</~}}C.Vaϙ?6]pT-}jqb臫ӑt1Đb İGcZpJ:N+qjzRS1V⌎8Y%*P4</* /x9xE -E t5+7G.kxK@ojln0\W NK}tdR@t 6h~72!l#K8VO@ ,G*U6r{jl(z}i%wY6UvAoL -MhAۑ)fv]ʮ9; mR`ILە@KX˷9G6iJx5L52BMSc;O!Pe[J+Xw(3Tv̇= "dWB5rM6"l Xk&SFe>A4L*x -ұN(S2w+0g?TN}bȅ@5|S,@V %-eeH/ʂިh@z0WiyhXʠx|oO;a)i;LsU&@ i>'LwX ?cَ$/xzL?/=Vk⚆ (D11Ȥq儙=YBUn/gz^_&e7;HWC:ʨaNYAwW.ԍ10wV1]k,FfIǯ9^h:<MjR1Wj31 T̶7iUIw vp(J̌\; M?7M5CC7Ԅ4 0 w| zm# #?s>ފ%m+iifv^3o  |:_CyIʶ->`8SZ˕ .-9RS:LOSsjP<iJ"zm)ksma{қl7[*g3nl|o:9۵7RU0ϓ{U´#eJZx}2L,2%lِޒDh)&?jj)ްΗ,w^#|jN<=RQCT\E*WH-.QաnQ-Rͬ4C>O"|zv ܌ȟ)F(.6quƵQ-Uq:X4*^24X9īpF|Vſxr9^A8VtҧZDZ:jf -/Go)l)*+*+| ˣeEinrˤPZ1OkC(Olea]cF>D![W3#Z) +^ྼaD.b"ԄKcNzC7P"oZ::;Ge1| -t7kWD퇘wC,Z=~N\bkIQuvNP$VQy58Ї'0Ӥ<Kx >8Kɳ;n< B(槪sϋ8^q^:m]-^w%Qv]:yw#<$^8.=xGM ?U<xVf.q߃6zxG%~}hgTzysq(!b<nОשP|(vQVT|8.|.LPm kLP>Ŀ &'"GCRV #1rI$rwD9NDn0ÑFw;([qůU:PK -AR=J>i4org/racob/test/events/WordEventTest$WordEvents.classSmOA~*G)&$ 6B aem+5$Q٣Q^J3X"9\D-0C f>~wr9+Eي6 Hl(B$&z 2.S3}P,)ɐYё`H%Z0|ABExc1(1*%J' u,g8RG_)V>6\uk/=Wq2RD;2N RUn -0~Z[-Sdڕ#e,8l>.{}, d;EK6"h Q%xotlIOI4N|,Ow桇G>㉇ k,ђV5nVU?1 ⺗XӁnYуIVKqfSaǸJ'L)pH#y 5PDWFa G^y72hnCϓDzw>>W-=y,(SCƻ(O lBao;Ȳ/`068:iTM~PK -AR=~ )org/racob/test/events/WordEventTest.classVwU I:C -(i-T<R 'dh23L -%7=# WH=薣 pߝIj@k;{ϾQ<H#FU\H"*TDFHM9\\^<UL$Q:]U9\K: -&5-a4ܐM rᶆwT+W喝^P - yJg -Rl[x5]g, -)eM):%`s޲D^ޤQQ;Q2<K[xPq0xgN1?ȉ0Vn1$C -K Otni t Y轾䘍zal5+n憣yԩM32,Cp˱kd~wY#W3Jx]js0犼UKkM aΌnȃ -ՙ b -[€Bla׭Ymt2cK5TD"Yr̄6)zP{^l V%x#fPUQK&c9# VB4ڜndJSp< dڬ|nu*zLY|̧pڝ>,@h#|`%Od嶍m( >d>(8ur%?+tB}2GaG:y\7fDd'Q.UuSIc O3~%HaEe 0bb2<~>r` yD,)9̬<2 -fs: -3WC-; YrrWSuRJVcQ 6/2+ iudWj<5[٩W=^07ִoqWн-IL(SZ-eٳ jtUN9/]7"7$Mr6>"Q:Y8<q lGqOY pVk(?bOy HLg5=u`;eG~0 w{EjݔĖ~xtb+&/jx;M &zOw2{x#de&^j}fH?K c _+BjH "W{I>j">epH xg88ϩC&Y|Mop`C|JOzzȘGY2=N)o#$wtۄ3 -g"ljS/7U[TCQqA^a/VPK -AR=org/racob/test/excel/PK -AR=fHg 4org/racob/test/excel/ControllerTest$Controller.classX xTofy/ !$(0&!<ɼq%K[njn[V֥2"RmUJmXmMޛ$djss=wx@,.FbM|[qܭ9}O -H.}Wql *A<n#*/Uq01iq?RqHrѓ*~r?S -`QqX>GT\ByV/TRZzNůUFo;W+xA%4wl$AYJQqTɑUX?7&-VfV1 -(v3 6{+k%룝qI3M/u1=YJFK-k("7i6FFOYzڨz 7 &9ꊦf8Lv%v2RV݈ь4c1#jXKLjT7 -x#f]+iƍ6Nm1v=QOFeJHACZc<n$#1=287o4[wӰ"3QulTg{.nuҘz01S(XhwfTg$j> z_hUR'b 5<2;Ls'#=1'fwhAijf"e _cUbHXQ3^M%xT>-V\vڈٝ0FZ2RCPEddɈG4#Gَxlfe 3r{6a\&`P ntؕ+0!"F@sc}3RhcHqPz dpɤ'rl -B;)ǂ3j4 :?2$PO~h'8Ue(5vLLz'n8E=n(u͕4]CP4`i؄a30Bvc"(@;y417HĢ,U12D1`S41FhTe9IqE51N)\y &=ЂP$M$& r)*2%ۙl}2bLC,G^隨'3#&f@2^h1S`cJ 1COU51Kj8kLUqXIzc&~wb~̛6l4Q-*伫},\:5m;vk0U[F 5uzw-tffx2BQ֭P4!BX-f -$B#j51WI_vB A Ȃأb&B8U~M&N%D2ګ[FȮ]I>yFk|^ Si"^EA7tdPg=ː0eNZv%]?~da 8o$Am)B,c};U3aaw5EisaM #i!(xܳ3wY͈|7^2}TA<NFykKpn+5&+;.o] /"uU\4 wm$"ǁ/ܓcX/4aѐw/daABb N 'Qͤ/3,;0h+-|x/dܶ<[几w#Z~bS>FmZ֘_OZgj9#^XZ`k}jj3x'GmC`2*M )*< -Nt(_ C^mC8gv\륥mF9ngo -hu>>m5@l9(bl*iaB{+k!`ϜFV;+]+R2p>d~vQkTJ<-o\=' 5XF@Fc0&t q~wU2Ecu0xnBQG~h[}R,QZF0q -oߏrO?ƫlcUQ!e=<)յ4Tvd~x0hlU69_OUr|6k՞JfHK\{q;nkWש;\2T<p).,ml9r!<lu錋r-_SDDX!"l9RM\^#5QL݌U,fg+K`h/b]ĹIp|9 D׍Yw2ua,CQyoQ |@R"1.z]TSBTaGLI*Y]G =e_ğF22#BO.dbY_LOo| >۳t$+TJ 2DvIJ(GqYTJH\n(m򳁟5 0!*xʇٓL |e2d0e: BRx[JvJq5&WHQ]Rt1+[cꎥc\@*ƋH$qjW& !D (x7 % JQ 3$^]D1*r<[ >[<5QOjKd=r(^ڇ1U;\LSy&!8K,Xic+}~?stE0FH+dOgaKX\؇aw-mmJ>f;e$w<J_==zVnO%~[׺pSY_&,؊1WG{qtigVN`L^ߨ&7WsG~V2 Aqml^"𪫃jX^(c0$'O*^ ;D$/4_s /^m˨s}Fi>a6 -PK -AR=mG)org/racob/test/excel/ControllerTest.classmOA[ZZj - hA-blE ƗcS;*L|H~(ii5›}wgv~$µ8rIDf<e.bד仡88U <WJ1h5^Ur>߼z [7ط47Șoo +c }za!Zuði;isNGx]%cܳ midI+Ð -z"+CHˍf`Kô#ٓHbWZ{ɝx(*uYⱭ #'XR 0ΖIuꦆ41 /84,▆۸a qpe +a SH1wEU/J3vwED2~D/td24Rsvw75n \aJ" -1TFoSC'-|?rD<z䒞k5PSh)jNFFUT}nfFsx\Q&(( -YZi \h;C *~GQ># %X(ubt RO3?@L/}$/$ \L -lpDϐ8E0[͓W4?sD!#tW) Q7PK -AR=org/racob/test/powerpoint/PK -AR= i- Corg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classWoUnۙ-  -rq,";j[ -Aۙuv/h r*^_ vCƒOD_L 1wݶՇ~9_wz~ =Y(F- -ҰUFu,@4Wh`[U;mx]& -ehU 22:d -LDKBT<؂)&cq![ o -3ox["#a}2+ۻ0!k ڴ;#n m.֌V]2ZSdeXaj1܊a3̮4V&?hD!̴CztRGmdHXWQ*5 މ󢰞!l ٕcMܪ1+͠,]Ӆ 3-9I`PrZ;auY1J+x&BS:[SOJfPMI;ɅIZkk*-{R'Q0(f - -]$ezBxaְZҍ 1=-`Ôh=*!>P!:GRU,œ*S8 -T1ɐUښef 8!ObS*N sj'`sɕbLJ3*✄* {s$HĦ,.1L0`ؼ?U\ a3圊/Jz80]#_`gx!ʴ'nZCiQꦏQ>rjeG7<ybH+(cX:0i >mnjA;ɩeAE($QLm:z1xY'ʔw4#qe>=Qw1{h*t_C6pCLE0fY1'[ZDG-Lh Ǣ!Q0hB -«[0s-F>9rxknl':[ 6wLmMU0b䍳)8h2,$] lƣbhvάŤ< cw1#:KТ3D+S?_ i+s-JeѲE_G 󡄾;ĚSؔe %^H(#\2L@z+Ŕ+A&A!E; "t(Nk$|JsN+y}q TϺ -uБHK Rӈ%wVYvQ"(A`n0C0'ܹ}lAy$Fw$s  E1u Sq'=eynO4RQ|+/Az6`r*EUb񨘖;7g%Ĥx}wao^^9W=pw}.ˢX;U{bN,&BX(Db4M؁=bYON.J<wqX&.#Lle8<AD?DNd]8Ŏ4,A =6YC#w&żN4ߢl&:uxƇf`^??F)[F%!$/=@d*cNKi"ތՄRXLGPK -AR=hX.org/racob/test/powerpoint/PowerpointTest.classUoG&j0!@@& ) 8q1u&= vުs%g$ ʩHRO=B7AHyoyߏ~?8Eg d"A |jɫ圎Ň( -c8E#Qq:%\Rh[pYb`U{sK4+mK/[3uYX3|iF`f( mYǮ폚 1]`˗G2l?%JвNE -+XnLKdȉY5=K}35j1M=쌧}ƙv ;<~$ ƒ]3]3t5\_V[M]gj Xܬ՚1W%D=Rv&]ǖ*%n̲oݕWҙ&.HVUyV5rU}|gt Jg \3pb@4Y - ˣ?0{ |#Cشh`ukVT*S7b SBTY=1Tn0ח]ta  c@R,{LêU'l6&~a,TR.JZv"&aʼn'1x*Ϻ+y -l]!zƬKu%%E[8}8p<P)#HVfޯedBo3_-}n\/cUfGģ7êgjl`Bv_[^I鲐s ` W_% nVG9rK'QXg괚+mֽ/[|ʇ}N,H '#&3t;vc/ډmص{7B]s{yT95 ykTp)bM!C-1{6ŵh -?1Z{Nhau%4dL#&ľ1W  o%uJI7b,ڦ~ӧ~>_7J!zi$4Yl6)k%h}/$o]9' 4 )mHS1#8pS\38G?Fpq7x2*O'= >g8p?CG(~¥a;qE(-Ft/Q׎!ƚkRUlCF˚%(B7pq}px/"^ *ϡI9@D O >ZI; PK -AR=org/racob/test/safearray/PK -AR=Հ+I$1org/racob/test/safearray/SafeArrayBasicTest.classy`df1d#҄\ @b41 !"Kv6qw#/Zz^EZ5m=k֫d# -f޼7ofxQhpvt2Nn6nwFCIw؏9k}:Et?'}s=cAntcl= % -Yq=G8kӖ|"eHVn?qe#DJuf8~AOpINbOs\%'qïN/8E'䤗 -׽k,:~}o9V)N=oܛ\K䏜Ef⏿8鯜8;}uj4NS `8_,ȑ_*H7Áj#P/oRo 7FJx /:hԷ\Z;ZиXyc$ ~\Ho#Pe7  12XG;9뢑yqNI/P镆f -:$dŠ&Ղm:6-Hp}6N:m 3b&OʤrUc$aP :\'5j. W.3NrqY$ -CtPA\Vł&HG)&w4 o(5[t55IRK[cHN w7Xl51{Pds ,89xjjW\!c- Ń)J`($\Mu ҃a#7K oP:<s{7á- AǜǠOSgP({:}Ǡ d!21t .PjM,4DpcC581Y Cd <{d䉄=A^ w1[`1yb!&)8D<tC3Y~!so1 Q"JD"DXH 1G5D(gUHSA'/b8?bXjp`KO#Gzg=_7@dz{zF,c5ie:q4:gU50|w4R(ǀd F<Zp|u؏ -Qe$bjvb4krG -Bbh{}!쩃ӌ,'˙ 0iW<bH}&)j91~ &S4r{j{0iFKiZIS#W(<11Q I4 hA`a,qJ5H#㑔ZАXס֌Y,eB4q̰pIYZӨ$d+;L]*tYcZURsthnKob¼.$6!x1j,)<@Mjj Y^c14E,iNJcAlx5KPwМy+7W!d+O͓{$t4w׷כ>5/r]vF}݁͑ҥ2`Xe-fm F*Xӹnj7Mõ/HtJ ~'qf#?JdǶ.ڄ\P(9NTM3ի^UkmC,C'>RH]RJ]4o?>t+}1n2+f-T+>*(@qTn5 Ѡ&4y[-*T^-PU[Smnme{ Z~G9S\]ǡJwy ѣ'+4^G=_`I4&8!Jh*C+ O'S]**먘nzTFoQ9Gb<'W@)L -֩XTȒFo\Yy./ܝc(~ng190(NwNf{*i mS9cXUtN#/ȭ6 NgXDi<1^]^Gv^WɞU'7 )xtۋJ؋AUr5Lh-:,j|*Q-ђn&XhT-~h5C!iˇPeGW6IhIN0*A68ȡCWz94}poLppo:l$Ç(O(eJ☍:rʅ+NpU0x5\ Jl$U)Hz,$h9k:4H2$Uvɹ_ I7dL Ôt .DrDj:#f$%Gx~R2n8WlfL+0|`W.aڑ4lbO%LN͒IͤZ72)!!E#$>:7d;:|ۉ`y'Bv$IFB2FR8I(Hη;V@] jePW!VP+< мb3y$7JIF&~:MIQXSFj;V lÿmIP{>2U-^hn|r]>@ `!)#I9Hp%8ըCU4.ʡpM3f ܊{ O# Lwa w ty ";܄F l.,0rE"A~(3_$_r'^e]udxkjV_3"Z|`^1@K+x5oH`[3Ce "2? D^7'%*wYp&ʳbX3>}qͱ\"\bGKm[^w-~[֌VӌVղjN$>02(c$ʘD=W+\դu'`pO#<CGгص`>R/{ enzv6Xl͓wʹ]Deg͵8_.9_kyCtױOZOM+iՈX@ h1`>Ovx} B|_.M;,r -S+c`<Rייv4¦t`{jTGS5- EfVGt"٠|U_fuyqn+§u=q~rJd "E :1ֈ,$|h.ƌR<ZM<YpZ^=נ:5T<WnuK<60? )$ )[kE|)[ǧӭf7,un}];^wK}t".2shynp^&*s3h]nl zCJ{$6\"HLn.TF IbpFXO]b6uB)sE1B[)\VnQNwC~ك -ىZ,.)x^_q|[6Q7Q1{oxWZuP.x }oqPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classW |T̝LnB ! `XâN&H2 ->+nRvmH]>i_E\Z>UZ}O[sdݜ{Ч0|h3i1~A~g-&9y3?E W"{#> K^,Wtν:J7tx - "~#5GS톏j.ϼi/:bOeپK+K"Gě"yQѻ[2uw=:ט7;qE#]/ ?JO"g}UP?/>8./NXzqK+il#]!eׇ&JTjΟ|"ҽd;C‡,"r4\l/b^Rb+Т"F<#^6`TG[„HGxIW{s1HN}4lk -vFF|}$F(v p,^ - :wcM̲ի0Em*BFC<ڸ8ɭŎu⨭s FӨJ6FMQ4jZB~ `Ǻ8X7K P3r(S:Y'qJ'poZ$#m7#ΦECބ`Dog!FKnŁ[nM­:pIYf J!C,-ܒDĒ19f7'ov5K]9Y[[db∅k,ha>c: ,b<]pmDF)<EFi ZmXQ aꊴ;٫ئR/Υ24J(brELauqN: 1`p{q,5i*g l&b:Ͱ|i4eM'xlBG͢6]Ljۢ8dsҦyTeS5:ѶpC\6T#b>ڴڼZ_6-q ۴شpNƵ6-V@6F;BBnny"v$R̦i5ZeU%=FZ4Dl"MQ%6E:SĦ ݌n)GCxh}qMPpiLѧ_g2* 7R}%vI$wHb`;oyM<M-Ƀ9:LܲSruHW9t~ߵy]է3eu. ױshidvFz4_<je8}/'ZezLɐ\n\F<گ-yDq$ޓII6gpxoSrƹ'U*-$d[ГoUb} Q67:=Ӓ\|jz9=DX/|=oS4$Ё{5~a|rS=߯ǹ2QTޱu4(Iˏ^@!ﶸh྽CrwDԐiIWV%DОE cKr*M6'=Ċcq,t!49`?0ah9z>p{1O 'J;pzin"-eul_˽y9Pr>*\퐚-wi'pv$q csX<$kxYs<l80R892scِX9I̱9Nf̱9N s~K`sg0 xspH785389f3q.s9<kX1jX3渀9.9p:c0z渘93ǥqِogqFg̱962Ǖ̱9^/gNHl,,{TjO`xcGn}yLmR/X0rF. 9jiStqy7 -''Pޣ{.[GOvo~$>F=¢eu4ٟs1vEEɊ+\QnLP$0Q&-eꖲzK*k a6ef9igX=4u9y˹-Ubr q?]qt=S3*f+۵\Texf џЍƀ7L~{F05 5,r!vg .ɅgLTRYbNs\N=RvJf@ - Y+fVheղҟr1We+2υ8?\es\J g,U,W庖j -V5X dןUZ@i -M3;)WݘJ Gpjc#HRF٢1LA5G)\s[Kxn-mn,SJ$\bVD \A2ا^*rM(&V0Q)?؏Kl?V1O_lEYkn\F \!t!IF11,0؇J*vMͪ8&C=ϱI?0yIxxIXqj\7ZX5.;KX.\…שT*Ui*MERÝ<s"p?L@Z3jvbcrצ ~-rp9 -J,BϢfCׇ٣-X|_w75(nnΖ30[_|,/}>$P.B\GNe&Z.ԅ[hnYډN_p'lM EE:=6FWL|U=^_ mO[ok+j[m7{}>><=Ga"xR{Oi„> ?/3z%~A}~7Y=;3 ?׷v<ߎ+ %(^яU=ZoL·͛Fex˘[q1v]62=^ٸS >4G 8w3, saf9Id"\@L2kgnt3Jf'fit-1m<8w!þ֬5鈙vk<k&3/-ìwFX36lt -{XKa,W_%i~_fMGZз<ۆiJ_fikZ[{_JO;{Y[s&kydm!ſVE$Elγ?YSAڇo-@?Fw -O*<";hkcxZcXˣԊ8uxsGZܰA;KyG-<f!<9~IΓ<IqIO8ORySΓ8c O˯:?OPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classURV]ؖPM%\l(i -qBҴ5iR $%5 zˆH/Ä~@o#.e=N={i_㯷A8B= u|i 9@Ǣ ⑎ ,᱁+ZCI)5|JAjxf`XEXSZ^aCw黮F5䂿\Ym:ܬRc|[Vd2T -BQ!ێ PnNaMF*Y;=w3@Ohn-ZBʆ,TW)*tTG=\(e!m8/ -sǒjx*r:pz5:B\[  D(e ,I"p */S\#I岬Ŕ eCWQkb$qU53y{"t͗c;* 1tR"uYa6?d#~"ۋ I`Mج쎆 lgP@[2GTwQw3x ރKLXֆ-'`t @RWMViy`^,Plbs9lZN[梻s'F6ek8Z~]VVNcme:APt@YSҒFD'٩G:$C+9ksFbrV+ Xa*>-k5G}:Ag[g3>Zsrׅ% sLM@׸ce>9#|L)`>,|^8Խ6%ku3uJԮBϛS0lwL=xSG_N,lKM\.jY c&0~kb&;؛8}DǺzS?k3! AŧeˑYb?Wįs <j'+/w DiSL$}q#L&4cuEm|1rC ۟ߍğ4|ٿPK -AR=E} ,org/racob/test/safearray/SafeArrayLeak.classW tՙ~d&Ik ԆDJ i$C2f2f&,k)hMҪzZz<=zxv]۳d@~y>}7u7nƽ։:7u` h0VAB!HC؅ -hB.Ĝ1q V76Åpbix]&` {؋}-]xЅo~=A6'q#68467r@`K*g~.2˂@t6oYG4xc0&S6Gux Ϗ7Ѩk~%e* -d㍕xe< 7pmYCbI$)EBA֘  Xiη -~Ye ˷ZH>WK$4YՐ)qz]<).Y?D["+us$T4QI`k4&Ƭl $ -I^J-v81'sqqHk.ݽkaYK9'Nx8NR)n Qf*ٛ+pgpփs8yJ󅷕򅛗tƚ --Z -yM֑HYozpfO`,h31k؄0zڃN|S[-Le΃Kxrwl`k'ZٿATc*QE}:y\j x^dIU{cÃ%3.۶T s߃nx]|KB;W<x7LzpŸ֠׉<i՝%D .bLFD hds18pk,hxJ;3S< -CҔ_;YXa"76|  }xE];I]a!!kIMXwF#-hjΰkޟi.\m r0C0Gn'78S &JrF,+M 7E%՟u5C)y4ĝJF9`S#&uNRӣt4ScWo95j19ϰarϼyChd 2P4,畳C_3RZ8u -?%wغ柄07dDAt,膸lݟ36N-|z&:g\(b(Ԣ! -SDȗ.g\]HU,9.L}i^O7u`p7 c0W2UnBVwuN,_yVN0>wCiʗZ_q`qR3}tgrlͳ0A9NiWJUTkUQYYX -]v|Qs<޹]7Ct7ϟ=!<o/r.; v&}.,$0 ]b}cz}AA4&H =8H /{3LLHDv+}zҿˍ(}KrԫׅۅE٠NeƗ%|Y=X! 8FWeQe§2Ѩ2STdT)*QTLU&2峪2Lӆ27 3 3 -dA -4*H" -22:A" )[AP9 tUNVd7wKt|2jCAvk{C!9_"J<g%mu#!K;]Ň#Pbe̔k1|b1[β+ JD.x,x+ep[-[fX*br7^<c|⋲G^W-)߲K+k ~@k;-~ro0 P.i1KM8SU kwZ[,PX\7XE~ZeJW!_lߩ[< 8AuZ=:oS]حk'm KwտZ~=>RB+z!ע }:<c&]opR]lq.ZW 6Z :h1wPxœ 1u¬_3xgCO,b69\x<,`BXQ4ƻ}ove:ZC1>r -R1ebT%Sb(] -pe5_lA؁Yyb!6vch,a(/,:ϑ@UױYOEL?S]}#$3yI'4xTE;+a9mr -4l 8,sqD\ƣR"[+pJށӲ -Xgd {qAi̋ <JJ܎gN\bU{5y~a4ȣhdgϓ_$^B|Ͳ)ekM?U寰M;Z`@?씟`اϊݭأ2ɽYi8f⠚G hg>M-&Xj8V+*1UXgFUpAݏvt/]PɿA~xϪ#LӨSOAu\A@]&y7MhV?Fg07!hUf{lS-ت>& Tإaz -lp@߄k׬ Vúm6ĕ8W:`UqLגד788wލA\\nC'+>}8Iy<7$<Lee!CLh.ì"Yp+4h5+VX6r|qIQb=$Uޤxz-i&a1¤U6&]Ik:5a!aqVQZv'C K -|'z'Jze#%܎;FgPr)+i) G?;i9bxXJZ}<PSˉ*'^FGƈ~'w3”?=ZQS=Ί >j4VHj-Qy=}̹x?']m((wkPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classUSW.IuY*Ai][jڪ -$HKMXfl;}c:3}Ӈ>3mi!sw=;n~_\,T1a#ㆂ1`LEZ[RW1!rT)wdLkh59宊{*f1=TW0 輀4=n0g:5+>a۵%{io8]+W-`jYd:soKyG V@*ob*AjXORyFir,jh8%ays5@yQ@WA?.p=ɕQK0N{n-\n J^ F>0K͵+彚_&lY[Q_qu|n:(` ?ݲ!2V<ߨ:Ēt|nfLq27؝ϓ%&/咎e0[[sȪ߫=٣c:2#af|ೞ,[>U 3mj|kt–CHnLy#8:*X8̐CK:?Vy`ol/u52+CP֤䐍d0C_ګVL ta#d$VZ^1+]c^R{HT.kkl?7T;]dfVS$#s wӀap?G'S5){wE9ϵ1T^\m :mϗhGFl"J<Z\d B:oKܿhg4Z;ohO2ߗhDsжS::8?/Nxw^.]f׃kkqDB.nE6IwPƦ c#`>w - я *EZ vtDïSJP^A,TlRg|+awPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classVyWU=aJ M[Jt[]Bi@[4PڤPDC2M$Lj*KUZ.jVM9bT?/_#7HC޻{o~營l /`@1 Eq$lý8.("E%,C@NN ("$BI#""|KX~1>?ȇ8" <)bT9󔈇aE<GE<&qN>! w O xg%49^𢀗JhQ`q3Xz@e(hQ7V>e8LG+~% jCG]qů 5a UǕS./QהqnesM^iE˕sSK"R/|P@/KȰP,P*JL:J?*9* xf1Cӣh4'7Q==HLQtx ?ңLL,,타W(WO~<m<ͰC2TcWxU``p^kx]2.MBʨȠ$-os3롘Js3wp>> dp vCY:u/PXIOUM-M2> +*^#EI-'i >es -Я+\&G@fWW' %n8X<_1ȜF3J׸RVa-u*esƇpNjT}~+jjcӈ2=QV)f[? ;#M3ueGP"ׄYo) 7ȶ.'/> -0lB \s{*a9`THl Bt&DJVtTR{I6€ c }}t!(A0><8/ȣBE/8}wUEGvu;ԽH%FwO!o 3Zgp)/zŰ̙wkH#{srD8өEח^sOZI;::lz˝y\ۚ*lacA=#98haO]E`vZhf4fdBV@+6klI@@~BѠrVO8u*&צ$&QΥ\Kmq^IUz-64$!)VէPj21mQYG* )8RX֚#e6n3[ Xff\J]y >k`KʚK'JY؜dn30K5E!2uB`&Dp@"RrRp \ƞb5ͦ= $vSlkX%| VHloR>OcWy3,f*HX;Ҹ;d `+%:\D=Ѐ?/ M̎l%v걋h@; 7AvݔI';.vUMopٟ1-^~<6NSaE耛3ij"XUBy>M*xMxwt~Pj 4$W!}##3M3.)EAQZ &HHcz_PK -AR=org/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classV[lUNw3.NYZeb--R)e:;ۊxxy`bRmc>ᓉ`L^n97􇿿|axHA) ᐊ^ 㰊>G#Q 5܁ -аFV11"萜-2TV0Nd%ܖVsrxJyRP0`Ttܝ^`=` -TtZY0o:=FN^ñzJtNL8FOfMӎs)oꡬYJBHLs@_mes1rHfIf/FڵFÉnsvJ/jκX6C#m'XᦇZr]F+쒂5264\z/괏<s]gFFvC6 -8 z/u|!gEKjF:9h: -:[1K?6segedV.TYF -ៀ NkV܈{#:Գ@!<U,!0s - K" >bi x/)x9Wp*W@(1o@^Wp:7pF頙6@,[dbCf6:'kҒf,kn0Ivq6e[ VftB&s mc;b0ޓ)Ui}i0>D}geknxIDeQrcrXV{ ,j5i,xvvK.Y{3أ1Rælt7ӌ~5+n!\3$aG)vZ𝭞'4xJ(<dS=- dSOù{o^_%<g`v̶Ȼ0h2F|e'4d8\bFL˙ȋ9wy~ U.-X!sgr堙1=?U.zE)aMṵ2X͛o'!4JpC@\C 8z*4r ıJQ; qަtN Ч 84C 4# Ae6O.xH_P9. :`-g Nql܅zk?[nj޽DDQ2IՐ$ΜSt4[ qE8EzI28\2 1F]N+HN`q_c -*;GEz4eqT>2cXOr*crj&pg_!GuGld7Wkqf%U, 6iM—xpd)G˦X4qi\c/Go/^ǎG%e#6Ķ{}5H y9lg?' —؍ h&\f߿b$'b~!WW?kHB#"cX]b=vzST0ΓL*1-Ș3B\*u uEa~Fdݟ"@Kƨ=Y$K*y.}$ˤx~d0{|O2BױJnϻ9ɌoGAW\$[ΒPK -AR=C 7org/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classUmSW~nvKQlC"b[*F `" -Yam0N%NoND -NL9yy=q8I|!LՏr!I´1 Qp3ruW=?ՠg5bN+XЏ)PAI UL(XRX n -z~M˫W78A M <7CD%$J!{p F\vFhLٸ4r\'!te1\ -d[t\A^YQ.zY[2}G„LI螗RyZ@u]/ M}>d,gFWfUKs4(V e(3{66f^Yv#t<7/ وxttX'5}˾2:x\u#qgt9_aXXQ)</d,q%p~iΦĘޙ ^d[vɀkCh# 0Nf, gTO_EbR Q#Y^] yplX`l۬ߧ_,4k8w*oh巚O⇨+/m+<e{:kHz758Ïu)oFF ]! N@Ȼ!y#TJ㔌"ǯG?T6"B,+".Fe pL9pICpѓVr~6P]D )t__na`pL0(x e~9QLXfa<ױ*5O)]#<yD#KzD -ҸJ_1bzp FqV$_eS36 ZHdRR>E{ӢB[2:rV@1)?PK -AR=@> -)org/racob/test/vbscript/ScriptTest2.classV]pUn~a%4?(B)TR%ݒdfS?+0hGfgw|rttPڦS3={9=ܻ:6ᨎЧ?G:U4 x'CHĩU³Q! +||A gt*K!~T0c2J tl@*10@U"X9wPF_6+޴˼@>+khː@q++2#4GԄvLwb-qI3i\M佤]XRu,Fhf,mfS+sKIs-;KR,+Iyr^UڙU ˘p+"ȗO -ϋ3CV>g1B0^A.!O`MيRQV̗毳*f+}4in4z.8IyR寙*ئ!c mwT[C8{s (`BEp-qx$՗ W5fu\aʋSң9Qo*[7kބa[nmJv`Z6_(X܊Ջؿ5rX| 5Is\ش 4z̼T^Jv1ǾX:3u8(MvǓhtE'JؚI8|Z=)&L.-JGlG@meY˜Ǿtk٩=F0ѲkP-p*b4'Fe*O<wb.q9 /AΊXvlA]fFf.'=8Jo2^C]R6B*lItH>5,EzLKYsY,u346]{ 1nJAl[8ꔠCG'B)Y)B9 m'EpM[X%"*oӨ |nzx -5E (Hkۊ#,\go -7|mnBc|'nNqMXNφmfRil\Q]AYأE4UЈFlgŤF7T ;XaDU*>]|IWԏVζѳnZ@#v{y' <X88m˛3tp7h)"w)~6wUq ߉]FtC|d12o'f9p7Rvt'7XidUƹTG }5_SF_QHze(S0IHMphַnK%WlfPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classUmSX~n[IꊺRތv_PV(ַ4\KM:-#/HŸ7gM+T)2;&ssrooi8k1uP1&nimbR*jc*idЉ)W`VC -ЋRi*p*(*X`N0pa[W4Q lߩ -#򴗞Nmu$: -C,q.q|R~*i'izU^|G͘$з,bg]̦Af--Rr #bPܒdڰ )9;nL#(}GߟȉO_ +W㹤 ~9gUa!ZOy5Ys$ugVc 9yXQ! -Rԕ,фx{/x𽲌@u<S=۫j {}^mJg:_ԤkVPd9DNP05PqzڔXs1aFh@ -5ͫv;@#h~UBm*K~S'%P~֨3v_Ԑ7 nq+Bcd -zA6q4J g G@\к}0ئ*4v`Uț><qDv?,VQ~9"B?@y6\G I:xõqQa&GX~h2#~m(IA8}8.Z$#APGzv-6Iy2: ;y8DCRidbX/XV1N$ -0<4L`hh*RYJs 8 `02iPFCZe?P{:nX /*.2PK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classVoUv.S -KRZqR-RV RZN;ζO -!/`66jbbBHLw?MLl_l[ٽs~s޽W؍OAᘊ-)S؊~?S~i?\<W硫c-z|K:胐!u0ZfUHHIRZTԞc -m^vvcL(:Iaz:- -<6Qz9ldvOHYIt -6-ƭD䐑NN|}4QtTp -:uFp((qW%F$ݫV\7tېY6E6426vOYzx\-1c1+'"IGv&Sqr +)}iUzM c:$MAy/bm$][3& SS [Jy4l%1Gv)7n6Y^*U7gY;.: g!N4N7jR/hx/o1[5l/kxJg5s10U<.i栰 -[Zj -9jxk@Fa)]$_҉冋>68 KD%S6ʤB3" 4Hئ@yV=-$wm| -vnn]奰[´)D\2Uǚ0$vAex%aH81=2E_O˖eZ\#9f20M⥜|{QbӎH´2`NaEz¡"'e=Fپ奾rc;+ǚ[]aSre˹"/\+xÝr\cn핦rya2X!8&6᫑/ZqV,ޥrW+. UH &\gʼ8B@x*35s -iS7Z)WFq5X5 .m۳(m^ÚiD .22A,gQņ,* l\zFU$ reW4{ryNj)}w`WCPݣU -РJlCфJ/W^eP4t :7Qͱzț7P t51k 5~ZGFqt,(- L[L}I:Mw}Ou~ '~&IoNtS<<LF чFg{S{-dyތJ,QF8g-vFj=*:T:r(p|fdM!c䱏ЈO.Q[>ã*9]-rv_uk}yκ>9+5ĭCPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classV[WU J.-JS,V+ P!bN&00Lv-l}.,KwZrW4d>g}eN_~:p7"`0,cD;%cT˜wH0 2S0i )a% q; -1+]A>#q<W'PEOd|*ASpi C?oxW.&m7s5N|Ǧ"ٵ25,gFOd6P3TҰD>nJK$$m]3g4aeԲˠ<ajIItC9yh4fjVV YЖĦ}װWDv%n1imxEoL89A -:IAG Q_T\k*.KBVż,RW&QjSE<3Xg8_}c߉ŋ<a"Y-ߵMŒ`ppO O<MRJy-KT,c?쮶nbCh>_<axUƃfFLAA٧s|!ȗ****~@Cݲ.rşwi+PwDoT<gUSA}"}qI^.N{PKJ.$T|s4v1gM1|ĵ\O)~19tΤhw2\8AZx 俏! e?^:m%n?)ʥ29^'TGc z|H -t2q5cN[zRЗ}4nÊQq/oP]J!QtL"Mqk]8Z'~KX8,.!Zs Q0ѪBw ־gN;*n\FLxUt=0 <B:*"TE6HhQ]uDj;pjM4, /ond:8i, rMqg[xUjĎk'Jߞl|r_〗Nh/P~bMISփT!a:F`KU:NG1#گA A-4oU=A^%uN]ߢbN o>G D6Dz'%)dthWлO;PK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classVmWG~7l(TAъԚh\!,nv `mˇK~zN j4;w~;11O \2ъ1=\N#mS !+\5) PF `B˛LjyKM|/2R*1w &`*GcMEi`@UDn*2V|_FV"2h " -y9YnbP _jR` -83;2OV* -<]*u*q[`Ywy|W>J6%=Q-MؑW)52-OI&x* Wg˜dC%G*7iKfN]˹Fd\s #I4 ]Jh/+۹;nII/XfIY[e,ȑ`-ÀOPO,Xͤ<y۳P@z^!U uכeܕϝ7ho-|%w,⶜. GpTf~nEl{o$[A[v:rr 確k3W+~ĒC8,pp4 -Ycu^*R -le6 -5s\1|TKʎXcOʐ/k]Uv-ĵh &%'"[n7֣5iNIG o=MJxu@q5*BK;C3ׇZCk_}F Ջ -s7ϧori0KO&6v}خoNBzY.Df_ Ly -8@> άN O?0E<C-JGށ-+<Bj7ٷ,ZA;_>Cǭn[FV)9[Ǝet-Fٝ'إ9_A#k}+~ەׁ?Ntc7&1KgxhĻ`)C| 8`rw5y"B;LJ BI N@%1!?~_8%ңD&pE$'-DiÇJ~JY>}H?-8a#<NۑIH@vo1[$q:֭L b[j: PK -AR=(YHorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classU[WUNL2 vUmSjk ZpDa$@KwZ$eI{go_9SWc1U|(F`L8&"N*"="´V0 -Tb8K2/ry忬J>T@ŻJ -ah+}7x93L' Mr>4鮍*~7`ٖbxi!tLʲt^IK97<KeXQ 6icpt6xpްs2UdRg9 5|{x§MA4+,Ǧ9akS[}Ь - u)z&dmN(e=tkxSej܌=ISӰ!2?ZapQ+I:6/ -<'/X -V5!O`)ʧh丆=( ùCk)c\)/KO˝-Z_ lP_ ljwкxk+7]|Ӓ! ? ZӁcr2Ǣ +g|:zRPdK#| 4NQ7gɇ O(W]W+<u=^;P$^tJ$CwNjj{b OEtt|dV):_Qm0\m2/W}D8k "^ls*~WynRu]+$MYqky)WND/tq5XbǁMhHKD[E} 0A8V:@d1݃;hi=h:@Le{x bkś]E@;xWhm8swNZyD#ȮCyq2魓|:J AM4zeo,X i05^l&$-c9H& Jf, ->"U\zR>cD_H+fs4)-U94eA5PK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classVmsU~ni\l By X$m R@kol{@8SLȌ~+n--={syι_5|~381$O!%`g D4&33 3B11Gz`X$O1<]fm`΀-ۡԱ[9M9=y20cYt(@GT/aZ?[ޅ]E0}爼w g(]k)WZQWF*9<ߨʰbͺdKmSV1j<<t -(έ1ECH5&U5Wj5ky„d6%n2PbS_s5^(Ku -F{*_沲I+<vbH3erqG5&1dj!FtL\հ &\,&D?cM57@dBW*thqt#$wM4qS90qS|aKbGR)n4ǀ@grW:3okS՚ʭ]yqH`(kIQغrסwC\֜1OVF -,J"elΌaS+e@jg玪TerbluHN~LPpN7bl < -ɠ|3Rݗ<a[  $VHyZufJ[=?Qi B!%ʸ9N> *A?'-'?_4ԗZnX<ÜKT:pcAqvBP -@H$mw$KC-ziHNL6stGwvK ٶ9p =-lka;{ءԗw'4G{ii{sr~K۱4ӘSEEDez{8q~Zp}1P"9M^̓*Y mڿ{Dg~$hF36uC}oV[x;f -'?Ca`I25lFS1{@þI]Z^֐;`/+:lPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classV]lUnݙn-'@Y*X݅JQu;;.T|bBb l5dLĄ>ٶ`6ssιw>^fi xFó:qBɓq Z$13lˆBB8E%_qNɗj4`ІM=GCjx5024CeՑ谀 qӒ'tTPNa1zFŝdbS1WX)UH;fލ%=1DѴk.e@YʨM%#VBy[L^;-i -28}%wde-v.UdJ 4KpreF:M/eV}2SnX9fˤ> #蔆Ni@.:io>Y.g[UC6,}gMͦCږYf8k/D5YzjG^͆K/I+:kӎ4\~0RT/c<p]8Y=E3;*Ih$a 8uQUom ]l =lX|P@lQ -K)ja-1ǾT9-QO}r(+U9)}]AK6-Zگ#̰ǟLiϯio$)lM;6.Fkլ+VYNڌtF.ÃmGM@S$E7}^Y~#֨GnLb,9=;6ΣW;-EMu!_aKWfO?|> q3o)CvJ^ UUKU.D<To$T3 } -#tP7D0kF}2:BPgr߉B#4XSѯ ZS2ZI$|uBH$'&Lb]<zWWެ+tB7wj:ߪ9ERnu=v=y?z#GoD%|ͯ_{_gI9zN`'؍O׉[7٬ݡs⾢GOBa^Q}"^gnWx4"1ְ#af}X~*3>Ixs;s֟Y%45R3$]\45i8[SH7O4MUoʶ;-kgh86ej#/PK -AR=Ж1org/racob/test/vbscript/ScriptTestErrEvents.classQ]OA=ӯk[V -K$bL)OCҦ/<ͮc!&,|?xgh"!u{sx&dO`Nʾg^MjCY2ƪy"D$1X" -\$kT obmf܈T'ERF[>0!ndh! [2)ц?8U{Qy! C0QsܤHzt=8 B-<s9.D_/D  ja/c1( \;bJ+szs?foFvl9qMK,+n߲Dh:mUqBFX}vA -B OxDu# l2t,@ -a;*%j BѦ>ou#\}ۭ]/voPK -AR=org/racob/test/windowsmedia/PK -AR=-m"*org/racob/test/windowsmedia/WMPlayer.classS[OAf[, -ԂUTp411Y"<-)w%`@dϙ9|sf43Ɛ4g``70jf) Qz,q&lMaHI_Dql!Y -*ˑx^Eη]䜠 I?2&Վ1:AT#^m%jޓ~%ثy"jy"eޕP6&F{^0r/++6'M] -0N7<`Ȭ,JWq|[Aaߥ̕ҦN6q=glU{MEү.ե[$Ԏ(B=r V0 C<2,L[X4c8kb% sY=Sԉ]/{yxHC0Lxtě;BFA("02/r o`HW<N-X0޹>EC=^٤d*6f'i5p.$C 9K ${c:K7>4рE:Ⱦ5؇4h"L ,OP307R,Kihأ Fp%n&v-(PK -ZR= AMETA-INF/PK -YR=ѷ+META-INF/MANIFEST.MFPK -ZR=ِy `META-INF/JacobVersion.propertiesPK -ȉR=Aorg/PK -ɉR= -A9org/racob/PK -AR=Aaorg/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classPK -AR=4n2.- org/racob/activeX/ActiveXDispatchEvents.classPK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classPK -AR=Aorg/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classPK -AR=8n_org/racob/com/Automation.classPK -ZR=[K org/racob/com/ComException.classPK -AR=..$"org/racob/com/ComFailException.classPK -ZR=32%org/racob/com/ComThread.classPK -ZR=ך[Pw)org/racob/com/Currency.classPK -AR=7X!-org/racob/com/DateUtilities.classPK -AR=:+s%0org/racob/com/DateUtilitiesTest.classPK -ZR=spm@bH4org/racob/com/Dispatch.classPK -ZR=g{ "Forg/racob/com/DispatchEvents.classPK -AR=L4M4 &Jorg/racob/com/DispatchIdentifier.classPK -AR=Yo-h)Porg/racob/com/DispatchNullProgramId.classPK -AR=+vK!Rorg/racob/com/DispatchProxy.classPK -AR=&t Torg/racob/com/DispatchTest.classPK -AR=*-Uorg/racob/com/DispatchValidDispatchTest.classPK -AR=a5!,Yorg/racob/com/Documentation.classPK -ZR=ZZh,[org/racob/com/EnumVariant.classPK -ZR=қ%y ]^org/racob/com/FuncDesc.classPK -AR=8uborg/racob/com/IUnknown.classPK -ZR=<. #forg/racob/com/InvocationProxy.classPK -ZR=ʼn8 .:jorg/racob/com/InvocationProxyAllVariants.classPK -AR=C0Sporg/racob/com/JacobDeadlockTest$TestThread.classPK -AR=G%gtorg/racob/com/JacobDeadlockTest.classPK -AR=o\"zxorg/racob/com/JacobException.classPK -AR=SW#zorg/racob/com/JacobObjectTest.classPK -AR= w$?|org/racob/com/JacobReleaseInfo.classPK -AR=ᚹq !org/racob/com/LibraryLoader.classPK -AR=nis%Vorg/racob/com/LibraryLoaderTest.classPK -ZR=Ldorg/racob/com/MainSTA.classPK -AR=EF5+org/racob/com/NotImplementedException.classPK -ZR=5h.p)org/racob/com/Parameter.classPK -ZR=OR[ԑorg/racob/com/Pointer.classPK -ZR=zM(ٓorg/racob/com/PointerWeakReference.classPK -ZR=ϦF|qorg/racob/com/ROT$1.classPK -ZR=Porg/racob/com/ROT$2.classPK -ZR=wN+ org/racob/com/ROT.classPK -AR=Q5 +vorg/racob/com/ROT2Test$ROT2TestThread.classPK -AR=d45org/racob/com/ROT2Test.classPK -AR=` -+corg/racob/com/ROT3Test$ROT3TestThread.classPK -AR=3zorg/racob/com/ROT3Test.classPK -AR=L[ org/racob/com/ROTTest.classPK -ZR=Ձ*{org/racob/com/STA.classPK -ZR==A ڽorg/racob/com/SafeArray.classPK -ZR=X#8Vorg/racob/com/TypeInfo.classPK -ZR=|QH]org/racob/com/TypeLib.classPK -ZR= -EeQorg/racob/com/VarDesc.classPK -AR=#H*3org/racob/com/Variant.classPK -AR=͉\#org/racob/com/VariantDateTest.classPK -AR=51org/racob/com/VariantTest$VariantInitTestThread.classPK -AR=g(org/racob/com/VariantTest.classPK -ZR=r  $org/racob/com/VariantUtilities.classPK -AR= DX (org/racob/com/VariantUtilitiesTest.classPK -ZR=GH3#org/racob/com/VariantViaEvent.classPK -AR=qQ]"(org/racob/com/WrongThreadException.classPK -AR=ADorg/racob/test/PK -AR=$(!qorg/racob/test/BaseTestCase.classPK -AR=A'org/racob/test/errors/PK -AR=3a9,'org/racob/test/errors/UnicodeErrorTest.classPK -AR=Ag+org/racob/test/events/PK -AR=D6+org/racob/test/events/ExcelEventTest$ExcelEvents.classPK -AR=RM<*w.org/racob/test/events/ExcelEventTest.classPK -AR=vFQ"v7org/racob/test/events/IETest.classPK -AR=D>֙G<org/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classPK -AR=0 u -3Corg/racob/test/events/IETestActiveProxyThread.classPK -AR=Q{.Jorg/racob/test/events/IETestActiveXProxy.classPK -AR=u^ 1Norg/racob/test/events/IETestThread$IEEvents.classPK -AR=-(Sorg/racob/test/events/IETestThread.classPK -AR=J>i4\org/racob/test/events/WordEventTest$WordEvents.classPK -AR=~ )^org/racob/test/events/WordEventTest.classPK -AR=Acorg/racob/test/excel/PK -AR=fHg 4dorg/racob/test/excel/ControllerTest$Controller.classPK -AR=mG)Iporg/racob/test/excel/ControllerTest.classPK -AR=Asorg/racob/test/powerpoint/PK -AR= i- CKsorg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classPK -AR=hX.yorg/racob/test/powerpoint/PowerpointTest.classPK -AR=A~org/racob/test/safearray/PK -AR=Հ+I$1)org/racob/test/safearray/SafeArrayBasicTest.classPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classPK -AR=E} ,ߟorg/racob/test/safearray/SafeArrayLeak.classPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classPK -AR=Aorg/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classPK -AR=C 7porg/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classPK -AR=@> -)korg/racob/test/vbscript/ScriptTest2.classPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classPK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classPK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classPK -AR=(YHnorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classPK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classPK -AR=Ж1Vorg/racob/test/vbscript/ScriptTestErrEvents.classPK -AR=A;org/racob/test/windowsmedia/PK -AR=-m"*uorg/racob/test/windowsmedia/WMPlayer.classPKjjV"*PK -"[N== win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -OR=s6win32ole/Win32oleService.class1I -) -*+ -,-. / -,01 - 23 - 4 5 - 6789: win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -Exceptions; getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java < => ?&WIN32OLE @A BC#org/jruby/ext/win32ole/RubyWIN32OLE DEjava/lang/ref/WeakReference F  GHorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionorg/racob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* - '+M+,N- Y- - %*'' !"!#$ %&" - '(PK -1R=ewin32ole/utils.rbrequire 'win32ole/win32ole_variant' - -class WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def methods_with_flag(flag) - members = [] - all_methods(typeinfo_from_ole) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & flag - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - tdocs = type_lib.get_documentation(i) - return type_lib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = WIN32OLE::VARIANT.variant_to_string(vt) || "Unknown Type #{vt}" - - type_details << type_string if type_details - - if vt == WIN32OLE::VARIANT::VT_PTR && type_details - # TODO: Add detail logic - end - - type_details ? type_details : type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK - -R=w_P -P -win32ole/win32ole.jarPK -OR= META-INF/PK -NR==META-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.8.1 -Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/racob.jar - -PK -1R=jruby-win32ole/PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -fnN= win32ole/PK -YN=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK -1R=v jruby-win32ole.rbrequire 'java' - -# Set location so the loader can find the native dll it needs -arch = ENV_JAVA['sun.arch.data.model'] == '32' ? 'x86' : 'x64' -java.lang.System.set_property 'jacob.dll.path', - File.dirname(__FILE__) + "/racob-#{arch}.dll" - -require 'racob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -R=??jruby-win32ole/version.rbmodule JRuby - module WIN32OLE - VERSION = "0.8.0" - end -end -PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -OR=S60org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lorg/racob/com/Variant;)Lorg/racob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lorg/racob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxyorg/racob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -OR=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -OR=>'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLorg/racob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/racob/com/Dispatch;)V getDispatch()Lorg/racob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLorg/racob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLorg/racob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lorg/racob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJorg/racob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lorg/racob/com/EnumVariant;org/racob/com/EnumVarianthasMoreElements()Z nextElement()Lorg/racob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lorg/racob/com/Dispatch;I)Ljava/lang/Object;callD(Lorg/racob/com/Dispatch;ILjava/lang/Object;)Lorg/racob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lorg/racob/com/Dispatch;Ljava/lang/String;)Lorg/racob/com/Variant;put?(Lorg/racob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lorg/racob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lorg/racob/com/Variant;H(Lorg/racob/com/Dispatch;II[Ljava/lang/Object;[I)Lorg/racob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lorg/racob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lorg/racob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lorg/racob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;org/racob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK -OR=`9  racob.jarPK -ZR= META-INF/PK -YR=ѷMETA-INF/MANIFEST.MFPAj0 =VZT7PH 4% [`KFi;3N9c>g%R;$fl&7\PRzTV\}J:]aP]Cb2}_'%2 -A-Jk72QBɛ06gUs}vSAiq^B(rny&hPɏv{|ゥß^E\CS΂ذFVHA*/_PK -ZR=ِy META-INF/JacobVersion.propertiesSQ0PO.Q0204P04222T5050ROMQN-P04U04225Rpv *K-*ϳ534J*IKI,I5Z 57hp d̒Ԣf3c^PK -ȉR=org/PK -ɉR= -org/racob/PK -AR=org/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classŗ xW7d7@CIhUDB@o:LݝeBVЪ}>*ZbnRPVZZ_֪33;lfPɝιso> `E5fqn…,q/>O)/p؃{Yϰ}|E>o,<Y n|fX|كYaN#| =A܃nz<x̃ ֱ,| gxO0IO:s,fϰo,ƳjgAm۩cb@@8[(PPڰM)Wp[X4n7mVmQhtC 4vh7/?/]'7ѶʨW+e,SXX_"j'mQ9T¸~ƔZ@~5T$cv͵IQ6DHD!(!<,MjަcK9S]᎘؅) -^`]w_j"kJGLiYPAK)kcJ9܍P6S 0ͩIM<KЈ(dmQ51QЂZaNN OG9Tu}w -M]C`4lR(zvR= --8qVQrkc$Sm+txbN^$gjXIwkV+͔Nb?-ŪUUrF_EGZQ^Br"фH#@x]Y,i*UCXT/*U)Qfk>{.\.f -N9s|E3 R+6D.k9FBr~<NY}aJk tY /;&'C})v{ƍлV$lS,d/B ρy6!7+{xt-ϖ ͧ$ $`\vJ $?c'lw+T;0/H~%K -aE ~p ~,^yO] gd%A b {2|Я~FGr񊄿lAX ǫ,^c#Ayr_wȤ.:TG:(͝muZx[;6VewB=X]JCOLM_j{ha{2NﴂpX eOksod^k]Zi5ELjkLꢂHtR{<ѿRϰv [;uStK/lHKnn * iEC52OA]M`ݥq9.;K/ؾ=o2xI-P *XjM6I$BYV 0p5I4j1 -u-ԠZKPG f-c%ꈵԁ ˉn'VҤ5+(`0ie'љڛ i,4Uyަ \P^GqL\)z93ȢoXIq ,მlr -NzCCP1T!TBc0JLUx/)6!XFƑmNj oQA;yw/hU6WQrW~df3K(KX+u#/csLl5 ϲ Z$cT2QZTA2 >Ta%52٫A@S2p+z0*_$Kf֐ s0n)h%mƶ}]n` jCXDYm8$p\G&}{AfOۍ"éoM\6\R zؑ>Ά>)Uv4iƊgPrT8{/F[tڝ|-1}Uq>qcEkFggX&(p1.c@AFGcc՜B@>>2^"7K1!yPAU;4u t:ӢSG!ar2-: ?r}ĭm#g_g0Z99Waߺd^q'~jlhZԙH(1O1W+Ȧ_,Qy>iXWD=+[jHII[b8!焬%rJ GZd!Dlwt.NDJRkڅOa7KNbH1ΧHUcƼQo c$ tQi{ƈg ƾ7zՉ+{-k"s $3i,>NkWeO?tm3>ܨѹu5;0zd"hf|Ri)߰ĭR˥ټٰ^ET3>Y]0V MB*nVivV~]iVGN橴87躥#6'澻83aG8)U| o0R,b }U2%MtΦiϦZ~uS7ralle]V͵N:ں7XֵՈ!Luix8M;&,{LdzEq֖ɫAf'-%5^5^3fuѕ_N<. )Qn=xwBL[iK2mI-,4Rhs9|$v.|va&f;,Gͅ}%Z M%| -KL%yfPK -AR=4n2.-org/racob/activeX/ActiveXDispatchEvents.classn@M81iSZZT,PT((% $wlIVpC%x -1kV.aK37;c+бe+X5pWu\q!{KBfX/5<1}ڦEgISoXZc-v ņp6wvv&mu[/:dGC ˖b_w`]ٯ3#;Y1ri -.ÝNSuf{l3</d.{!ڄtvTV)<?f(%e$ Uޮ\sHpF3ȖPO S9LatfGReTCaXHqۻ2 tRe[XA"h!OAGNӜTk#)ѠؠMZ0@'"&HEY1IJw*} )y]'Ԩ9? +c,󑰲.`PsZŽg0b3dib.P*8+~A ǵ'djbxpO : լc'KXj(\PK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t xn=횓ݽ~К:״=5C&E\:OYNi픶sݞ=i_D.-peMoQ#-UWw wf1 }:q$K7뎞3\)^ywgB~_ߓR]"0EtJyql}Oکb:Sίd[CF*ccv|7٬1g{bΰ\t(J]ͣ?׏<ǓT.U%Z Zsg1XtAcy{} $=z6#&2vxE2,槗=it5`K{#1m*eV6hS ݷ9?xANU_4]o5I峆`#%#Ne:&lTtSilW*^#MSf3 RI+3Mxr:խZO]:FUT7w77̪@dxGJ*:%F6W4c-5rzvvάxGB]wqFY ڵLa|Ͷ1ۙ(hL7閦;>G|α<^/} ~Xukmkp|N͝}T1aQ=cqFB^Y,Wz{smb 5Wt.<PIqU7nwi^Wvf~P -kfMU]D[oHW%%5&jY< DDVkE5POvkh*kW3f&]ﱕb"X(dq>ſ$Qnᬛ>1 ԡmގlղUob/^m+/;( %;K XB[³|en&YǖY(HG,2 uDXK %"3hD9EJ:|m1XBACLTF400 c_`Y,Ak'-ml -3XIWadU Vn`m<M|?OOآ/cǗq)\϶ Јb7Va1+0#H<i F4g|yO¤)zk%797=?A-4qۡm0} =؉H{p'S\ك8ŭ{oǖ4PDqG Da?XO<I/'O^BKX!cϒAFRƃ2RN}2HɄ ͗i,\80(c^92`fyV_TybWw;%o ־ζ6Ahj INcԉT|@%ۘ"3<ѳd sE`%l"x:$yËn>B4"\M4p1(V1+;̯uqzɕ/Q8IX]zՉ7G - a Dğ^Mm\rC%6ɍb\M=:V*&pޝC#B1)OSW}F8Rr'Ic̃rABy -q\ʌo5T_rE.LPK -AR=org/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classV[oG6YL @Z=P`b!JؓxkN/S_؇VCyDUT"U*Zͮ;R,kg̹|9gf 28# Gp뛃8A*qxBIHG: 13 p!7\ -@#dJ;b4vSaqa~ :7V[Y <h"Y.;) Z=Z -}N()챘gX*21!ĭB2DzҢU(f͌XltmEǰL/.y#@VB٤0ǨШzުa{cIE)Gό'M8)X* !s6)}sT2MA s߰KK)#R>6-Xe)Pyռ3z-_,`oȺiϩPLf`B&+hlw]CPTq%,ݚrlﲹ@n2C$ -m -v2_%MBX"mҲK1%Rdq79-fMTA0`^d52^4r'srz\h%Y9A9n6U2cYʹzjK4\3g'lwkLhVz~Oe裬VńaK2sdN9VXprI%i(!|$-R%rJh)^*ᑫʂ%!wٴo(Ik}+7 -ލt˕I1Y;;x6U<_ QQ<*/FÜ%(zDInZ= 5Vk<5RINr|~4r=Jl:IA}J(-c=90qwB腽3+ߢ\52tIB7L7X)N oZA\8*ltKϐ.lS=k'@OwTY0U/!+PYGoixsmZA4c9Ѝ ڍ&>\$6VSCZJ)YGJ& BNmm --db׃m$mn|TTKn#;*-,:5Œg8s\5>`-ak!IE{}%J0}` # {g6J -|HdMx '6E^hʱ[X -Vt^CSdem*Vq+yojfUGw6#/q -Κv:͈6zhO724!;274*x[[^پv03ᇙ(SI''G8wY\y\@QF)21/1o`i-os}?.?0S+S8n$0E ` ɶcmqHscvƙRc!^G{VL6.Aw">Bl 6Nk@~ƃttнQPK -AR=8n_org/racob/com/Automation.classuOJ@}ӤM=7o ^+<=I%ٕu#Y~%Nb 87;oޛ~}|$A481!F!քn!ʹQM+y$vޑτ̺R8Y\7ښ9aXYY>L焋i/RTҔb6|Ǿ7YNae{c}ل>!ߪ =|[=Pgx܉{֭cƨ#0~ h!3a>PK -ZR=[K org/racob/com/ComException.classR]OAn-EPJ]>&D(eY5..ȋOA(㹳꒘M=3{9̯?~meP4D5F&hy,AV(H4tvZn{5#(d5 -xkVfz~sEP BEuAjm[awtg]7ܲwcvZmjQ -la -m'صcGy5`[j_O\PsN6Aw$w|©3Y?3'KM7Z?)CąvldZK^݃6T31N2ii FE*H -d*}?2J~kx^y<A %* K2$Vwr<& C(xM<P1. Df)EJ5QR,b,ad s^TQÝs񘲩O`f I:'EhSg$}Y:\N,=̥aRW+0KoCX_K1S\N4#U]_M|F kTò֤͜\{`rMhz̕$~*$(?L夳Y嬮V7lqN\hRtItyƮՔׁR3S*kʟRoȪPK -AR=..$org/racob/com/ComFailException.classoPƿ -Pݜ9 &i$tCWK@Mig[tOM|wc?d6}(1$==={ʏ?_x2pee.K@`#t'v:vL@02hbK[=~8)PzxNPZl -S;xcN]l}&9M* C?iSF_ԲO"+΃l'pMoff]6v3R >o5#Q -e`imn'GO[٧@h+vh@Źjkrdj~9G%lXvY,M/XRDES:J1ez+Yc/2iYfbm%U(:<̠H28fl-ž!T^UQ̓8\F]9NQQF7"vS7,ѩێRUc(ý%鸙ҹ(#vVdΪtnΏ:C[RORK4WAR0w|K^:ߒ=PK -ZR=3org/racob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++ٌm<Up[N-9۱k%9.^t@wvrr*_"Io-Һla߶+Ǣ/ܶg"7^7&\!HIy~|P\";L"ɍ]ָUd -ݺ6*ُ! {X-sP -ϺU`ݶ9EW;ꡒx IH1´x$^_48\TlgF.-O\#Ht=kkI^M1CZ|Ԧoy -o%c-m$ۦ]s8,O ;?6,F?^sv;oWnZ-g]ԻIU{{CdxgNGmn]$З<iH"áaKLKuh%+9V 5yOy2s)e"<J0a 5!~cstJѦ#.E3r9ľvL4x;p +tц:j B5tdždc37"i}<0$9;D>VNZE.iEȴ0Ҟ %"# F&.Ӻ -~#A0BbMu { L;}9Ɵd@>5k|)uT C5>;iED7 (4ʔӥ1QFE h6"@n4 NjfJZCܹ;rxDyN|O}g ; G㗈&@ 2D#4륅)(H/PK -ZR=ך[Pworg/racob/com/Currency.classuSRQ=7ې0,$F!P0U`J| -L&.~C*MJ*?ʲ0!}9}?LI qLD%c4WuPpSn)N *&:pWߓ1y)R0%6VE$JnVCo~Y[l޶ʷ" p2se K,TY&E]f;<fl2 mux^l8*#KC<"au !iaI`2EjYA-QT#mÔfInpvmWE2WE^ry<WUnn!dW1dv.U1 0tmK^fXUqU!CmYenw ao0>U, !n[;ںsr4F]#̪cyXP(ڇmߗlߠwW**1^|ə|sS"&zAJi 1(T7hӵw| ӗ/яDV!VC -JwX}C P!Mj&y8a<{Nؒcˑi |)c8C9N{| ʑ=v"PGS5G<$u'G -7g=< ,?b&__<IR*3u(ut0n6[Q"yhi?/D?hf:b5:?#FPlse J]Zw=D[I8AOEӴ!oETS2@jF!z5ǼI}/no4qD8T ؖzJ -6ɦeDwPK -AR=7X!org/racob/com/DateUtilities.class}TMsU=/I'C$!!g(*H$p`%b|iNwظqa$%U_OqEq^O&z}{νQ6>(.1Fwc|2R2ӧfjc~(ຉ/EK6#׃( Jx3^- -ilƞ $0hAWT3NZ"UNmUj@{MGTvtVlVVF2&׃0 Wm2F1B0r+P@_2dnȆaBU5> 60YJcU 9 $O Қ(E1L 2p⌹Z`7ltp?G82k0T HS:#OFQQ/ ]]M&S:n;86,pE{|@y_ 8+݈ZF 1UWRN^fo24 SW-ˬ)ΦNOǏ54~_qS|v06O5Xv!~sI1;Nr;8_Ez<н=vaz2LL!0~$0c[{Fg!?mMULvิO//as7bE<qfșd!b{^= -,}IoC|j/po?v0&f.S,@\+fg/ir&:XYQyR 'I-jO1?4nSa_PK -AR=:+s%org/racob/com/DateUtilitiesTest.classURG=]/+,$1YAƎM6(`%28Aj$ ʂVPT!Uyʳ (S?ŕ-fvzNw=;OFBGj{4tW>?3p :xy O t,*XF4,3>t=7xm'7"$\O4yBxNyeZg0~yQ:+yQ ғ{ 6N'%VŒWeL_+vE)4E^yk!èJ ʮ^yu^]b*\aX (\y蜺obc Z4<5ŗ&B30 -) R>ÍЖZY*)u2jJoM>"7X3Ǻ /-eAj^% &^ba/ʒ:-JWj3=~`:.%Va*cgp #p}A'yUIQE^ř~x򲣓 aKfNNAR*L4xR \-lbN$ը vL>? -Ȗ}HGD腏ZD^K٠t8 /qAU#v6UZUp$]d#Pn0j8N+fFs>+z{4Lhf CSzGwn}Hc+M3MMzP}MDxW!=nU`:ю<X͐4"*w'dE̢t]-"["70y,O"9bH4q-?0~dM u?J%cT̒-9ܡ?{!wp(qBL܇ak1f0PK -ZR=spm@bHorg/racob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΙ{o~V?W@;~(<K?c#? y?;')"A'|s/KB~_^^~ ZJk^#m hAhᢅ@ nZxzK*O sSp`_:o'@*|A,zKY.eB@(hՅ-JU>X&Ж%Fi\rɧ -)@D.;IMWJSҊ]Wȥ2k T^pQwWp綍}jtzw^)' -46й-٣kڔ͍I)B?"]CT&UX4 I;mS*#LsδL )6R,h\OH*;Q`NzR8TU <$=DN -r\#hij xG -rLp}9SHDRxi뤜g -rnD_, !Bϗ7ݵ]韞@,Ʈ5i*UD6E]TiPJ}F&,t0lH19ǡ-ɽJE*, m/mm̂B].H9!ĉҳ"cTf*{7sEfRCa"kCZ-%NuFq^&;r[! 3le,bqu•g^ !1'鮋Qr$40 $V*6lflwF֢6 %N--t;DV!$2dw%1lAgɑFuL r/uNVU_qJXHعb]F`;[E`zAS i5;$ggA@:^C̑qękXU.ݹ&'g0 3N a'R{[ʉ^ ', @'_XN0)&pA||2JV6Ь3nD.|V`x~ 0{7'ۚO4ʥp2gI2?7yI9޹u8L ]8Jr fe}/֚I@gs;m~ F2So߷0\厅b wB& 5ZJwn"+!E_VjE-"\] @@dRK4HxK "NˣR37:9.g -ݻhfY S-dVG3BTJ^d:R&*OycTG脔傜H[ ԳT2GTNN8CxT`\ dԐj2o-|>ʨ]4 cI-& -RAֹoe̖]L2+dzi7{d LINR3ҥ\0pK$DiZ!Pm^Z3C#x`=tx笻ԅ ^1MT!HEkp! ,8/t!=sU& =I}/%`{[7kM[WBԡt*F|gZYxMnB*ۄQC?ˮ bwȇ7C;?lX:?lMklյy:lk۝wэt3LTi&l j= <; *@= -?Wm,݉][jszN -r; 5wk0xw?T`0QiA>X2Ke2X R1Zۆz5]^v - -]46u }Co=C"ʥ9PZn,B%N3ܨl-(B 1N s7܃0f`GWdTTiQV:Õp% SF]eH]V[@3{VuP- l%xU^9 5KIUXҁ.⠋@V65:Œ2֘VKA6g*\n?FN&e05*3)&Bi!n -73ݜDhl]*A C1x#[`)ӉU[ Uո0/D;t<Gq0> f&b+ sYe\wTfu/q23іْ7İ;왁%4HH+b7s0 CAYi65AMaMTjpnjAѪ%`hՄPg"TP@ hG,9:d-XnV̳l޴ѣ8P: AM'SejL-\ede.C(s6n%w{_׊#>A!7o޼L8>㧣Mơduu\R3pC؄UlFЙyr\{/ITL<+17߫ hxb |l޿z0q}S'QK Ԟa؇<1YD#)A(5Rţpo"<Ex<x#[i ik5.YNADa}A 5P -JM xԷpQ@Eg# tyћ#Lt3ZBȋd~׭1o[ʘVblLߪTGn~PR9o5| M<바%63ςKP5yPXga5:rA>Aw0@^f -r F8WҪUJ=S#ӻ|_<:AwXGʲWhڝX3kPCI=aT֩s(gr(g2Z knhF&gI3 {F5pđ8RGjHM!?)3C>¶?c*\iJt -E+nSMqGqGqG1DZk^ -<@`'B<u|j#q6Ƒ8rGnm Oa?~v02@?X WXASƈj].tp: ܅Bw@kV8seh5"N#(X -b#(h{ڽ& -~QSQ02; -TnBmb?m#Q$z~& -jNjYF]41|ܣg,`l4!=Hlt"QQ02(hB|E-`dQЄDMԐ+ ->`#ɅWЅWm|Gc؇Zk` -f4IwUB t7<,"jQm)I1=,)xDcHVݦ4繴eBu<P2SfB>맯=ƕaJmֆp:],m|*I#Un8ތڽTƫnH?*2R@mF@ʏQxiKIrˣp)0glZ&]r'GQfdey/Μ5cʺ 0)߂ʷGmKrEx)-F{PtI@<]bl?C眄 Le\jR:JE @"Z/2&&PXx"|!\7dcx -SBZ/38HHMXF yOJ8qRj ZE&Ex<Ԅ]!X)6.iI%&7p1X#."|2RFH҈?3bs1$d59'Ee4$&-BHVu9"eeU0ԋW"Rl۠߰ :<%Ex2BOVMXBk yOXeKj¼ 1oy)LZM9ՄqF{_ĵO38i5# -G)2sv9~;o#3Fa/_0~R/{-FY+$hYZ?^F퇩|-_®u%}VĠeJWPUzFVbiZ泰>پtw{tcd~t`$ A8?V QhL:U$gPK -ZR=g{ "org/racob/com/DispatchEvents.classVkSU~6 p!4X*T*P(*HMr twåV:8ՙӆZf|4@q89?8~X&Ƥ)!]m\QCW$k~`Vu=żP`f, ->~,aY`Ҋ[~¤/T>P1779k[; l-e%c)+0^MeW`'u'ĺ f<厜]dLXiH&&}CKL cQu^kp66:NcY; rd^77#>2\=3ں1l+O/3\_[TܝOIļ6̠qRAJp'# S=DWT`|DX#:ca8q OXV:,sU> 9yY˺qNpEX2" -2*֠3WF ] Cs<;.ul V-;$[ʡ,Ln3>1*^ 4-7dCf0!4tN g4c䳄N0 +W-#bT96#@u2Up.e9xG7Oe{*VAw&y22EGe7,FPt`剢Q%hWq3-=wd -#<u' |49fPZ&&-!!EWLll{@I9)v ^C]@F}N蟦V^<O vT鋲=I‹ ~/ImR:QB jo?WU-I)ľ2D,s@E-v#{<B}}(K{}U -/!+| 5!H#ɑ 6=BpK=Lgh+];={(SU-㺀zZ)ww(w1i ->Rj>2>G_ɗ2CH9-`R -IUt/2S`PW\?# ]YTI>NQv\yk -囧(;M 0SÇ71*;@HohFFel&3h dRс HRra-}oPK -AR=L4M4 &org/racob/com/DispatchIdentifier.classWwG`0j5 Lz-ckfdBd!@,{yM/y9y'H5R ?cYs%qNs,ܽ3{gvg1}Ǻه^1gl' -Ly~;-*Z\fY#3cF)@#~ 8$̮뺞 -/I5Ζ7B1b!Wu8Lȿl؂\-ufG7؏Ӳl?g+aӰp*259W~hy5GH^ٴo eY5,ӭ#6o-l,#~(Kԯf -0]a.z*Dv56(c1.g_%c{2\ң9Zni#i?D;^,ԺkncI -ruCYCaع(;uP"{PMGmrkLF%e=_3;rLV9O~ HuN|։_~FzBCPg:d oTU H.jyg%]#iUԛ<8ux=6?ኹ>٦4i -kQ?`[R$K$\<8F:g~5ÎN#mn<gGCDmWl RFloTlˍlD1WAζWJ(xf<yOCΞ>:Џ;48[679FB;1o4" tЉs2mg ʥ{ g=Vl[*jBdS|$.9V燫BebP8l/k bV:W*V}QeZ(:SvO/MᩕSabXmɿ&d=l . /"^ /ˈ+Wīkă@xx xf[ۈowww &"CG>@|>D|>B|>F|>A|>El&!S|a؇{8cgq|>~ |#>_ .S2qD\%k3eGLj ~~ig爟_ ~~eW׈_o]=ϷًOC?0Jy?bJbPK -AR=Yo-h)org/racob/com/DispatchNullProgramId.classTN@=lR,P$Q&$+!YѶig<M|G1)\tj܏sϹ~3;(`32Q*sʽ 7 `Ƣ%,,[Xa?ܖ n+<>? S*<n;sX& U7Umˤɵ -X5b7H%'CodlNx_s/QëXF e%'rGh'DF+~M-UD5Wx3H3j4'J[1 ba{+&1lc>SѺیvNDp*tMc&`8\YO6%JoªCota_(ca]C,¦>q; vwGt0L2c=ا=F+F:%I SV4aRy{ф<Af -"ҷ3sei0h&ˣ'+zNp|y` ]"K}V̋3dsNBG#P4OSXSM`2GRe]# )j(uRv anv3 ow6YӅPK -AR=+vK!org/racob/com/DispatchProxy.class}R[OA]X ([xn[ /&<nvL ?xf[(>̜3ws?PC̓ -X+><<GCk=ck=q3 Jɰ4ޯjv5Ru= M{X^*ɞGteauV߾{ʰ8Ϩo)(gNuyswEHj4JU Z& -ZPG̺J8p(x"9xqKPD76>_R5ev5CJ;~Mb4F~l4|vN͓HdGxFr:k!,<F.,#'IP3t4!!|1K?meE 30.q,z&6ԧ+5*5E95[}覽B[tVPK -AR=&t org/racob/com/DispatchTest.classuON1]\Wo$6 ӆ {6RtC6$f23Lϯkr4KHo[B|BHQ:Yr^i7Ռ*9Hg^pRZ$TŽ_Wӱ}Px)`BoY Z' ǿaw!0 `x PcLY fbn]b1,Ў)_Fí"mEPK -AR=*-org/racob/com/DispatchValidDispatchTest.classRA !B0AbP4UPldqL<Ox,|(˞$rALUzvw -^0xc>~RЅEh -PcY+ܖNwqO} `nڦxI'k0Sm =VB)GV"o)i.ם;m,inٿ$ QAAu>Zֆ+ [lԍ0PLNRG=,nvZ -س/%/V $0;! JDm&Jwʮn옲$ᶇ_T bHCPc;d#‰ iwJaz(P$x_,Vp鶒ˋY"*-͎x`WsI2Ժp mx7(,EjMyYac?W6yɐ$wVbb˫-{{HfT߅O%a2 &-/P</ ;˰*bRf W#*?~ԖbBR dPrfو'h&[04s'`Y_ud՚cCcu|M+&R;PW -+P+9['m(GAiKQ2|ixxDF=cRgZ>E/S5fP ~ -t M1E\䋑wbH$_~"$%t5eҴI:[qPK -AR=a5!org/racob/com/Documentation.classQn@}8q )IC P'$BT¡(J\9^:~PG!fmٙ޼`UDOTU -m ,<g0C> )?né{G~8}PH/)f"Ҟ c5f` #? o;r|ubEmNz<Wu -?ch d4u#ɱɹۗb.˜Ǿ iTu"x7wYп]$t"'voe6PQR eXui|*mz2^DMRVS,'ә*u.`4o`jz 4_ӭ C3@LEB*m)%BΔ3Йrәc&n\:U޹A!vҐaneN&y;[%3ɍLJ~InꮝPK -ZR=ZZhorg/racob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4K!?_|D шQs:`m9ޞ}|n805]q NMK~2!xc Odxs2%,0rݨ1 N)h]Lv%]S 3id)v޴LwALfSrkp=gZfR4WZL;9[M5'vfݪWΩmZ0IIvچebX. Zg [ơ1 %Sm -;[wamI dB#*ҨG{ځ.kV)g3o,xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϓڴu}yP7<?N`{3D˭j\̥:[@$%EEKe?\2]5} +{#0AEq  -Gh(F Qccjcρ{H -cph YFjowOH*B'8;AS!_ -_R`ʛ?L#a4L> 6#|6a6n'~B>Ew,Jsf@-QQMe{6x) % ?ARs{JyAK9j6-}TNPK -ZR=қ%y org/racob/com/FuncDesc.class}T[sV^"_8!&\mbH ز 0(Lm)#iԇv?l+췻9ߑ-x) 42{d^44ɴȴɼJ xj.U.7"5 -d[װܶQ<`aVZ$S<,^VRYeY /[x\QLJVƞZzMlJ.NRKmNkyT*rO9X[ +7Nr;5,o +TSKT]uU5QqIIL^%Z 5(5eoLf{k:0 ѵN~D#=hAp7c;v7I>Jtq?Q]=\DL+=hg:q ~ku ->unBQ -mb}Ϋ]ˬӤNRkNﻃ}UVb:Wtc2(cmxmt"*, LVѠs&WOefR>i~Wtcuԝ.87Qlqb~KJdlC.l -P{'"o?Pڱ3"ڰ%d՟_~9Ë/%Y&e8ˈV|xU>x݇!7[op;F_$غwd+j^|RW|>B/S>NFWFWG .fc#\| 1Ǐ )f#HFCiRl5x8 l&v  `0F&0ƌ21F3G&GOq,_/8۴iE֌0.`' 7C߅AV(i(9$? %Bɩ q( R9{Jw7#i-#Gb;,ϳWnH#`#FM%y" jlgN"Ttd=PK -AR=8uorg/racob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;;?}`'`xc_-XƊ:HeU)o"Xc Xԑ+q#MN5(]嵧>t? ?kEï Z6,W: C)]Lm:VKS2 ChKaJ1+5I9a P Fa%ڮud/, -J)Xfh=fMXzeWY<[ҔLQ^J!m)yJ(DDP)Bju P+rY40to"wD];mU^[OO$Z(7Y /L]qrr+3X߶IL:LJ7, R#|q) 9<5a楣G9`2](Pa{(9T=wT {Ȅ ȴc /8~u=9*seۭZ'1gM'eWiv - [nةM*K8at4GݹH=V鮋l5h T(E9]bkZ]o%T Mf7$a\1"Z sKEwrr32FIyL<V=@0hڍo4 i!3` <IZu!Q|J;^7FSW@I(M@X{^{@>pHn3 -CBɛ#y 8"&&h;UBu}YOɿQǛ 7ҽըíNB#c{'@5"/=d9;eAO;u -x3OX$}UīSt\{(5Q"]/e,# z5 0gK2{4!*Fn{aGN1ZDN1Q:$u4VIPK -ZR=<. #org/racob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg\L-d-w#w6)8[ےEk2&CE,pJױ rS *,vz&07뗒mJ/>k#[,>-6 !5ႆhe:%aNmr'PP#<fha""ňN"ЃN]c\&5LaZS<S/hC?miyU2e䠙uױr` Kl[{b\J7LSfhO5YwTV'yRrᆮ*2w?a2\Q[s'>UM8HEY_l*JѴ&dAs1h2Cya_A !|f%y^zYȖ+I$}hCN(t]^/d%Ag>7%~cҪDA1\Bwr8!QxuNC\?k#QG(Jsj};PwpfZOtA?!泻h I/A5!TEr8!HZXLk0*FޮZخDgݯ2nPK -ZR=ʼn8 .org/racob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#@!!tf:&=COOBnbKf@I)*׮XErmuϘMe{޹⦅~Q8_ݸ \ C^\F-F«aDp%B&!c - -Q=qL`(&L*0CH`Ia~!dPz;e( -(5 uI]ǰ\zLw13U=vB35ǐ2w I8ZkInk`װǾ1frmA\ӦSR-cXEr + lH_ݜcykzB#tWw'"k -RRPOÝ9u#g bكĄ/^U6M=mN*-cX"gŠe;=9W=:}ZZ_#XȀYRjݮ]`k|E )"*]-1٫eb{2bg显tk9 ː9ml'Ep@t70C‹w=gI-W=SzRl75ouH:m\T}WլFތ-܊m>;(KLlT?Ion 4f"c uf$صUUֲJW)>eqI1P,e3@`piϠxa:vZV4T%۳'ͫe"ƴxFeRjuuKwԘؤg=j3.E곪Tcvp :]<!53D{-L&i1϶U<V:_>, E/Z=Mkl>Kd'{2o--~6/s+4,+Ϗk8Ė$=ry -GJd5JEWe/6V.c~tuF^xZt#vбzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=RZ9l+h@X;RK9|Es4>6i`$JѠYRGץ9lE*Xk<y>Y}mX }Tv"w5V/9?s5 5'NJ`}hH`?q|s6vgۊiD\B'fp,>A?nc_p=MWWǏw$td4!ja͘$+SD=lq6w]xDIn~r z?y@owL0G*s ^e˔˧FpPB'k):D_c4*OPb_8"Юt3 tsp (87S<GAJSBA~bPK -AR=C0org/racob/com/JacobDeadlockTest$TestThread.classT]WE~&KM@TZk"R P45@mR*ԪCölfS?G#c Q٤pby?y?f~7L1ku3 ´Yi& ,,&pK&M +ZᖾCMV-YXp;pD]# r[u*-_na -ti<tnk҆@GQ=ymGM2!WmeGEUiUd=Y+~PogJ~%sKs<G‘4iE]PZ;et|,330pYaVT.7ZqM'Lho`8g#Q1*0ۖr2tjiMlxtͱĮob#Ra6>,P[#HU8^e^aiWNwd6>ø@ͯ}e m%k&uT)VHL|aIobPuZMUɌs'TeܿoXɃ<1xy֯dƬopӭg,=Dʪc"~6Ä dJ PJt8fYk/<>sQwWc g\RmvsMJbC8C{9{0=t<><98э "uZHӎqEȱӱu1z"BY6o#<ǩ}t&&&M$qt9Iqnrѳi='y -_M'KiӵI -\%ibI\'"f9~SX<b!kbXel6f0@LLZn];Ebxgkt&WrKje.nLdkcV|9NADh|6(PK -AR=G%org/racob/com/JacobDeadlockTest.classrDƿquдuh 5M!@R -P'Nk7LßVb0W\ -r57N}ށ)843svov׿S, ő{A -bAEAnC 7\ IlcXò+ 5jM4zqL`oZR[%т1nXfg6hl9zmz5cH {,*Ae{FV$eb2mխNV2lWv`1G EOXU]f+ל99رʽ#g֖OXN8aqG$u`Ftv˵ j}㡑 g7[FQfC]4\c%UUK4qLc -td1#|+{.I3:J):ְNejQe7Lﰠ -6ds[ 1m#73Faeۖo]먢.腗d)pv!*d) -$Yt:l#FZ*ْ<Hm^\ؐnU-?_̱<lӥM7$0=EJuOJk||bb/ *}^9rVЪ}_ l2Azz/BE"!`1r.S>"d#)$x^ϻOR.{''rJ4$+' K_'Nqc95+Iu;Fȷգ,8WsjZTI%>r/NۇZ.W1\ 'ơu1܏ۇTZ"J NRt{X k?qŜAc6[a&yO籪~{c"pHE#kTgPư.H;;Puf3PK -AR=o\"org/racob/com/JacobException.class}MKBAi}a2n 7AfYv !vm?Z'sRDbΜs={׏g5,'QJ!rp$J.X!z|K!' f!mK%:/ R'a96c޵tVڱM[oZzdPg(V7|!Wzfr;0w,q(OvnGO'r i0ǰR ߆H|=b QST#AAUI:f(րQͳGDBQbn`F70KYz"CK N RDuI;!4QM AG LPK -AR=SW#org/racob/com/JacobObjectTest.class}R]OQ=nY|hwU4fFHnfğhGbKJ>̝33gfv.W6f:۸cj#"fcƪٸE<0YxPx##2C~_Ü'#E|<eO<lX3ȄaSqǍy|7P]>G"Ї"ѻ ^_했"@@Pe,yď,<qPGaܐG@2D̰vɤ`O-<sM 6C)ns-Зh2w7{<'M]gE䥈TjYSwi!뉨ͰUmp]J*BAm|+u1JfAT*'4`+ -Kkqqeu9t3<\ҌI -/,YI:YQ!MdIkSLF -HP`dЭ!4+Q!A(^vgHFPK -AR= w$org/racob/com/JacobReleaseInfo.classUmSU~. eY) - Z%U[m(Pӆ+n6t鲛nU} ̨ߜ?x&Rܗy99w `s*{HXPUЅPAK2fEjx$cMy -U6)kØ%m1]N!GMBA-T װ-pn_;Ԓfy1R,h'jfm}kw1./ezҶzmhf@2Y@,LE /W -Y - ٺfnh!uc{b ќ픒ۅn$7gS\NB_u2w<k'RKŰٕs=z fAB9\;8Cd+^7'i%N唠S15$۩w:_ͺpJޮ8:_4"Nb.|WOBQ鼔Y./0`S. %O`0'߅e4kO `5k‹VgG+.=nj b6N,. kwkuŅN*¤8IPafo-!UoDPqEX2bp@ - EXdY*|ݨ -1%<W P~T7RS=@_$޳z1\<ӘMjk1C<vo6vXZ0 Dn.݇q3OMT(YF~z2pi5z!\E7DW<Ղod+^용MPɘtBYE3AOئOL@fZ)ih&i݁:iMdILM#W>dƐoT1>W1&NBV9F3BM^{ѵVT*{&ýU7 Oփ`|j׸pab _ޫ*F_Q7!EqaI-Bޡq)>yc>;HE\&FIk$L/ >3?ngQzuQS*~ Uqg~Ev/O[F7Vhȧ QVm"ڡ2O5co ,|?%B%%y?PK -AR=ᚹq !org/racob/com/LibraryLoader.classWwg~fwL6C&)41׍B %d7ABR-q;ILfY^[kҋ@ښZ˦(_=?@稧|3d"d}{-+vJqQ(tLDBZ(&1%>0qB|fdX-Q0}pbl8XO)(oo*oGw/= -Aߋ!<*xL -/3 -Bœ -*xJlVX %=(AKOꝖnOuxiO}A^xV(95?SwwPB& ߵsgPwW1m+!2*!FU´',CxtkTwMAoHؖpܩNWO9)g3aN{:ie, ڌdJ5HK3~;;kg:6IpG43f툑qnOsшR-`t궢Gzv2<gD2#'9ݛPSvύKm;J#qS3I}η!9x ޖP=ex]cp]#BܲV?Ueߵø&LGt7#~:AeJU|TyzfHRxQ98%Pŏ2Q -.1^eX*~c*^l#`*~ o^wN H<mYqQ7oTs,X/^כɚ}q4 VC_Wl00r:qѻDtUo .!hBݭn[R[(T䄺2_C%yq -:Xy1y1ՙeuOr^$>Ю* iU?9TqYh,`;~_RF5]orث% -a˚>\k6ZwȊ3&v2$l-"^yI:Z>1 7Kﱪi=t\2f [am{Qca=fo@ߨ_Μz[ֈz+CI9v&reܜaՎbaa XoKo9>ڐ6&SץaYxx/(X R+tİ =c ؓw -}5܌߻헛̸/[žpNn/OL;mODa+킄.R!TL]G'":FzwHsEtHrw9\%Z/A|wC0_5>|k9/=0A/#t‰jDrؐGP[s(O/!*iBu,acc HRcS]Է^EmV!تUD*/nѶP?V~rck{-4QU:3Zvb+d~ݪ>A@M/վ6"c\4 {Q}G_dbLs/*XQq;,ykt;mx}(ex}x -43s|Oe^#.u +{|87q R:>|Z! dT~ -Ӌѳ>b8Y,N IwR~HTG!|p t qH S0vT~2,㈌GQ:H]נqPCx= Pw/Ύ|og!2~4ik= D%c`30&/{+滵Ojy jlsYlڃmxQD[q3O$E_0Đ1f_yO/b~QDq+NnWqV!| Up!~DPK -AR=nis%org/racob/com/LibraryLoaderTest.classT][D~$ph嫩u)+PZjإEQg N~^^}x&Zx\̙9900VQfWr$gj20 Y/ 㞆9uc^ǂcI2ycYc _3u}7М)1d`]_e!y#Mt9Uf2\S '/nYrydB"fF$Su#D%!C7}Hz<oQ5X]fٻ/x)<C+*tK.#% -d*bGC0 _Ia0 x誻zPȫM bHmb WN#; =C}V[ n4gVL<oL<EQM<CIÆo}W%!_OpᡉM|g{ 1AU*!GP-r^QRV⽥"]:?p&|; -E)vƫ eG7lS/*b53'e*J5uunLZؖt@zΆb$CQ|z}5QD|.rv*-9_FN['0ۼ(u5O!YtCA;P'<T6,͜cNɜGvb[H)*DvW6=\ϱ1Rg0$2Vy͑6eԜzNo^Ӧ -np$Szm?74o^:FK 1càiv EjoĿy/j"m˚5\ި=QC+dl[ T -9@l7-!A`5щ.z$`yz~Lٌ Od3MD~0ȷ-QiNw8%KeEZe>k-J_X%LRjBVm!Q>ǮԮnr_K5ЊZwIC `g4&PK -ZR=Ldorg/racob/com/MainSTA.classm -@gML4_+ ;0`"XEhΟ,|JD]v>f`@6J6k(cyvgE0'jʾDz)=B_ -i+"T72^,PgFS/E0%6 _ -dd۬;/@{]fRD i}PK -AR=EF5+org/racob/com/NotImplementedException.classP=KA}h"6&H8Do.K\ { AK K+8w "̼y;abV  TciFJGgc 厎b+";\ޞ^/7m;ޅn ;FE$T<<Ks*35O$8/2kULhzL]#|=v}m{,\rf8oT:&n 8C=7$`DX"ֿ^?AD? #<OQĵL 6)quRvM5> -*SZYPK -ZR=5h.porg/racob/com/Parameter.classuR]OA=eiPȇ`;(+UQECBBeZ2_&nL|/26(Їs3<`˨`CM<RŖ' v(N8P e8x`ɐ2qP>&2 -Őa"qvpLd޲ڱ>0^yGsQ<cяz~?:""LhW e_!vරUtDveO{ANWC=J졝C3wSI H.;iWwizO8KS$RHVb\JRhwh_]z7A4T~7nԃIU<L)VPW0Y ]'W0~$ԧ>B]]-u*Ygδj6 =o),SؼapxIQb -7%,(!شLjd5 I*)X훴&ߟo")GLwʓ;媠;֝rNy+NsueTս Ep^21^1<yH;)G^1Wf 5#\ȓ2<yHnN1\̓u=uPK -ZR=OR[org/racob/com/Pointer.classmn0?7icc [DA DܹRgJ,{nv@\< UHϟ>OOL {8`=Ju4Lǂa/xOG"{G )[4ɐgKgr$x8oRȞ2E:IN~1gx+g8sjcy|_\Oz|<c 0 ͳXJ}s`~]40a/Ctv[/Cs-UgP::8!"x2\-ͰJ[O/`ZuB?P;nJYEߪb ʚ kf$K֩ӮkT.|kt ;c}lDȒd6V~\-5Z5hUT~zJ`_E+ PK -ZR=zM(org/racob/com/PointerWeakReference.class[KQ'm2M`-at<lOZ+}h*ݰ ̜̞קgș ƣŸ L20-`\)k/*+*.v$Yu=&<.<uF5qU'ϡ&54w$^W'$+m5/+JOeڑ]wÍ3.0۝{ *4? ^kQJ{T#Ygy(}p5X7B32 ZH ) XߢKOAhi$!#o0yg!X8Q(s] x qN2veW؏5aN8t S2:Wh!Gnw ` ur2PK -ZR=ϦF|qorg/racob/com/ROT$1.classmKO@HPvccѭD&&C1u&ߥ5.(me&{>bBkX``Ħ-BK*ra+"OJWLǢdZ)t|ZWpWW?9w3%a2yǏ4;>Ws/"[~7xnDr'=ţ8 h[ z:\q%TqF/P*FD#=4m6PfdBg3,ϸ)ýf&M?Ѣ(^n4J^2RjH}XcЩ1|<̽L c.!7 gXI]TӳTӾ@"vXPK -ZR=org/racob/com/ROT$2.classRJ@=WXg.\ #.a48DK7 - -~%Ds+md`aA (XX̐)I%=z!uۂ!_J7-a2Q L]cC0>!m:nqkg]EdI_\[\[\]\5q)P"eG 4D^Z>WJߩ= -4C|ֺ^@pq&R9uOhF6)=:'"궅, ߲0q!#I-a|-{ѓCyioYiHo<=%l&1B6I ' -"V67'$G~"LR"20Ә,bt([PK -ZR=wN+ org/racob/com/ROT.classW |Wn&% r`h+l͐vv7JnAm=GxQWj=]&ԟJ~{{{s= `䙁-x8!f(kdܦ"'.; -q'^+fSp_/ o,ěBoeܣ‡2N Pq/Nw=^r ӂ~Cbχ|D38`Pi TT㈊+qVI)VU9pQ#*qBb=;>Ê5Zfq[_ V1õf!KCBUnq䭶6tuƢf'913\WpoW6.`;G]5A60VVШ[m%ͱ/!A;n$HԆ@PCsGSegCz*oho>\MZG¾1d,7D;^>*lVԙ @oY~`w(2}]ӮwIGSSļXgNE!#9` C rdqڼ`*<cNZd <F21̶.Z2Mef7adK(Fˎ@$mXiҶLN.ގ .g+aQb0+ePE3caX8v:n|7z_)pP`ЈFKW^-Ჲ}C S -ow[1`هBA_dwS_ayvcװ4|OԻ5n D~ _e|C7-x\Jc-;iEsGtQ?)m<;2GxLÏ ˞T ?rIτOOO_h%. -ְڰMBt wZФa/d^fAqz6|4S>L? _]m*5CtS}:l8pj+[FXF֣QvРm]4dhSWœI&\} <iXi'a_lQY8:zjV4#21#|rzV/69vptMnY, f1یxh%Zc{ -#ⲺlrO"*D@|׸ZY%e*1;mVqdF^*Vk fN{l\@6/} &&,w6,yCBcaT?lZx>@csY7}m*m[x*과N-v7LyN3#qj^Csry>>1/r]!"nI2ճ0s=Q싄&O<"v8, ܁lv?WB'Ņ<ű# 6efuF㐸F518i=yeI)Xp#0غ{9-vSyKe+ì*:<v<A -̺%"9ؒymC7$HȦsuY^oK\N~$Zp=p g&'$M8D 'FI,A~9j=P}\' cK%<f]qEN?|^@ު']y^tD(F;4^ǿn:*Sfr#P $\M-#3Yܣ)g3d`HGi'> BEa,zX<S;;%ܿ0- y80P4eEN`/3!A*%XɅsKɽؔt!H`ee)VL2Y7v庩X0aP6Ђ(ӬE/p##Aܔi$(ű'G=T$)R.,Z7>˨/T%8q\D:.bA5@uey"-Jȸnm(ywfV$5&#Nz]nXɟ:ݐgiKdB,E -yiJ2q I$eE*Nq00k8[;$2N9$ytjWxip͞aBoiJAtiK}U4S!, *hu -Ũl'pֱ6jq ;ⷑlbM3E60=2/+E_əDYxgbxG;7bn˽]DoaG# ³PK -AR=Q5 +org/racob/com/ROT2Test$ROT2TestThread.classVsU\IRrkeA(IZDE r+-4m [ݰpUĻ>0qq2>.ÀIKow}m|ov0dm8%W)'7 -N+8Ar5Yd8jq#vCx'w#jKX) Kr\DKQ -lEg&[OMWD5YrᴙtE])%=c%2v!1;nɃ[eZk6oPYԸҶ]i4<5]R@gt% -ni1\'6$足t:eZF_0f8X:̀BV+P{,pzd| - -#vIgK ԚiWwnl~lF%ZϸZM2|[gr )]#{Z(mQT)pf.E/f!׮hƖIe'c3ef#픒*vSEvt}G.CT@Tiوbf>k8RK*ʸ¨/Up\5qCM/KKT/vF5 1cv MfM[Y-|>T|*n㎊qW'XUth8eyQONТk:[g\*+x5Z5[ϦrzW#%g}zEыEâi,aUkhZ8!"\qWɛ -k1!?[`_1xaefNϥW-E.CdvA4U,v4u,.Ni^‰QO^q;|xzy< 2<o/gb7i3䷠4FJF4h^죞\k0C_(/!0iߵInǞGPF!42p| -)6$P7UXK0|WgH 0D{CCjZ9ih$fڥP!g"*4c7owZ -y@whi E3(c=|w#6=D$Qn^ Ch嶬$3Rɧ݇h1Ċ*c!V0WGXIsu}g;g/ F5 &8&D?bqq/D- {e oWmVyV-V9T;f0 ~Tp ¢1'c Q i445NT=V;³:PK -AR=d45org/racob/com/ROT2Test.classRnQ.?RJu(7.hc$6i\]Ng̠/q]|ƿsZI|s>xqXVpEJa,ǰ*y) - - -}W.ZmnY0iڦ!v"[NW0-vmx"Mt]S'ʈoR wq ipގ,>33(~@OȐ=%L6}y - -Mgv}SRJGT\E -+;CV{FwMWVW'\*(Io!\<CAvèqOH! ¦ew”jˆ:c3V1ӎQϚ۴w].Gc ZDdIvF#9CR#!<褎0 ԷuB]tŒv^"3t皯BTIt_$p@b1Y*$.Bx9lBCrEddŎODjB8m_$9!}704_^ *~PK -AR=` -+org/racob/com/ROT3Test$ROT3TestThread.classVsU$)h*i%zINӥn - -Vuf*"-g|q`&)鍱|{w AtBXtM E}byL>H  /Nyq$|H{1P8BCB6EFw3^^XtfðpNÚaT݊\y2 jV Uma5tMCEU;gr6LM5a #uLۑV[隭鮜ޭ'ec(YVUs4:{vpayleh -,&VT65={<Q#Ii:eQiT 5}Xgj1rL׹M|" gpj -g1TjݶjQ# n3 Еj?[HE2J\VJtf.K<p.f$+ee)^BnCj Zyjm1 u93j"SK6 I۰]\IS3MuDt8K&lf]0$u9-+mq(Sb8"᲌+xW(cK3!RWb;E錟 [TA JHƘ0Z;80LdzRI%Hcr\(5$AJp*D Q&O :Luʑ7"a\Ƨ"9ڧ׌ڠMA#N*ʡ (IϥC'Cojj𕌯qA7 WҘ?AY6)5CQf\'#[Ҙ*Ortۆ&0Wđ1e9+z, -4MwuXK%2+yAbQgSN+pkV4dS;b<C]J0Yiγ"E>F-hF(%æp5)l6 +viꟺKutrp%e \hM/PU%ّ`4xI{Yt ,y -ܡ"7A>[nᖑ2q2I""TfXp{];r )B^laHwBEhITVD'dK7OʅQ&i,_g樯 2#BfkṍI56 iʋ&Q廎Dʚ?#$u`!X[ -A(RZ/~*{hpTO<_vhn(<i -m(~s8 06U9D-?b8H6G;}t`]^>E8Ϊpգv"΢HX/O`]F"`3l6aβ?p3+J~崎R?275b{PX˄҅$-ϽBzR` -b>bx@ƙ -S'AYh -fa^qyeHv즧΂8PK -AR=3org/racob/com/ROT3Test.classS]oP~+2N7tqePG!a3BxNZ~^S5~[ly?}؉BŪ5Q6%lE -tY'pFàV-K8>w]25-ӻԳMPDʹ%oɒmorǔ1LT2qڲL<b:7㚶Ub`&UQ?Sx| PfM)(~Q|_r 3lWuEc5cZݽLkAEy TP ekn퐳0+BL烁yAݾ=g*Ihz2wij'&| E\q:b -&T"fNe mBP\%YZa@@-xO˟׎8#x8F(aFA!棽gc_؛9;BԷ}J DS4Ȑ4`GXHB"H{r'Ol:*IݾCQFe+9Fm/PK -AR=L[ org/racob/com/ROTTest.classWoW]zw<: ciG:%ljgwz'q- (-$))|A6!!!U R;;~R,>=s~qgO`?~Aj8@7>XOB‡W#xZxQa$PY5Ԑ \0p1KqX Q`' Gmj4*.1J))\Q Zq 4<ye >Ẇ>̟JE >gp396HmT !Ӗ*tGEJj֨j~6 9DklG)u;=2"=qM"yxe딥O 9?㚎;(1HK7?oES\`j7rNаށch\nK`";u]c -^{UyLWVz%-$$XVN<L@:8q,s) yL3CFeþkU %yDİSqs#bݮx =piUgp!ZIa5$b_—J_ Ӫ+t:ᖺH=ݴu OVs[Yce^ddԚwa*QI|P7놝 >YMISۖcOْ6/L:-9W>л:vvvpU d6,WXQ˳I|r5a$Ykּr#vQthغ PFrՕaY<.syWZNʒN龣3sRWIvqtTX}yWrY'U-9=גJavXPCADY.n ݖ5J iح^)&=s2c_->VOwlYMI/HZUZL!9nzeU XƓb= JRJeoS?]nMWwi%~s]e5{T*oˎcLdיRBb -&ۿ<Ā<5Cy#dQ_ -v+Q隅)eOޑizr&2;vn+=&V;Uۺ;qp}FW,3+x: nZ3}1OHQLr-iE -X}g -+DeW- /Q.Koa )lԺ93nǚԊ138^RdPfph<H[@Nhz&Д&͗Zc:|mKtx*ZD$WqY~m*QXβ]o3P!Cup@ pcʀ,xMX#Bu+YD!:Y~8-N9rѱ95l+Sij.6s1_"ճ%:\[rS$k8ГmI&;.tb7=з6~@`ʤN#|" S7"CoFǸj^qq!Avv DMk#ݱ:eѴBtØn[ƻcx:n[lC&56`4޳Iۖz\}p?2t6אܼo S[H1jmjChUc6vCc5J&^%κ1=5] ;Hֱ 2s0tGkmJst^,fMGU!luFgثپveYG_6RA)\oL L((Ƥ[4Zͤib43qZЏ`20H0uY a'p_i\G R_90(c ? Ib;ry ) Ρ(.pQDIxψ3pES>p5g<'烒(c%-JџqWWҘa4/U:QzJ'FO qj{bi)bAaêTqZTѝDocϿpscSiJ~͇-,/PmǏ|qAO=A>Gb3pQ1) AS 8/PK -ZR=Ձ*org/racob/com/STA.classeR]OA=.vݖZX -1YiÃn8mM)_l|w&{;sس`cܵU)sOg++aaMlpҽS)xUR~=cHOJ Ӯ톐u(2NF2̹l9{a¶S?'B0dk=}<gQIMJZo -m-qoQ#*<1JUh έZؗx+4o}iml#obǦ6n*Ceٸ&vm<Bai x=.JarXwloH.!o -I29n%@nKJ^<:BzȔϑH`lI+0JEk#dq4i!&zH&-S0kR"MhvIeOB!Ru,GA~$I%oq)Q$&q?+dqB\Gc*G VFT<"{+=;1"F15Ђ|M:ȢY PK -ZR==A org/racob/com/SafeArray.class}V |Wlb6hHK5RɆCS6 ,KXHv*jIkQUiՠj]^xU]K̼73wGy8V}g!,_B DOAÿx7 x*Nt'Y XHhp/v, -X_eK-xۖl`[2z̕cÙBjx$Mtjtcoڥm٢|aJ;djkfM\E&m Y`%,"31"I \VX%蟨G- H[Th*7ґ,UlfyN15FNSE#pVےɶ.YJwOf}|.s*ox{&]"NB~+ͤry NTLYcR<w'(lY͚zGRYgE\8FFOr[PAH9fnP KBaTPB#ɋA]蠦am٦(ן4 -:BRf2 jк\ŔSZńVCRsحn%v-TZJdTUTi wh|w\}Mxp\M͐Jsj*a6KzpO3zգ6ph= vqř95 -ͩЭHITI }uaժp.HTW\ܕ8Vn ;&iZXk’g&Π-G-kn+ 9L3|!c&-mZ)_+e -Lr0T(:iH~ڈNfR[@)6bt9.!`ѭ767EF1<sbLB*%CÈ; U/jS<3Az_=gNQgI"&b҉5z$G>kBŊ7m[8읗R 8XGn[2č]"xXH񶱘i|XJ0Tʗ_5%kœWg,$ބvΞ5~&{~9B%'VP6*):ę6mmd~ij\0n/ga0ނa| _X^vO ̶k, Ȇ=<܎;hDjNuMdGd -a+dұ Uc -N,}2&!#S #JwOga/4.{y(vrĹl$,>WϥuM<8!gU!dUCm糃BЀ'雂^T5\˳&K:K4fZ)%pO(<]cS,Y&}>o^T-Zb:5>ܘnVwh5&13l/]V%؈Z\S)F -)LVh 5RAt1Gjw}qN.=ی.]^\zyjU+yX!Ux/Iwc59:_㜻᳎{ !W6wQvWNl$%Ƣkg&XEjR\& RBL1Nx=x`/ ^>būt;v ^8 8!MNq7Й2әܢ܊m -nWAGcpL1'|f| ݷbIp;oK'o|^.KR?fBsKxguxe[ -W*JV&jF񵊯|= GWGWD]^w - o+6%VM߁)S]z{V/x@o8> ~@o+~PCދ+~DGnh~v ~PR<*IOc ->}Vg?y|A_|X# =ׂ7ŷ~>~ <i*|M5Bfiwڋ:}_>шo -u+)i=~ GHmNS , S{f7[}֡awo?&WӎRNÂN@$:`Qpei1j*b)ƣ-&@{]p+k㨳סɾγ{{qi76jn'>{#=A<da{ {3NNIALBj1?G]ȃ5Oif巈] %Eɂ -#@%7 c/qKw -W4UkZ}48n~Ӵ%~c4iJ)w騂e+cŠiz(ʆ~/x?PK -ZR=X#8org/racob/com/TypeInfo.classXwGkey8e'qER -%ZZ9ۮRZU"INBiʻ-}(PZh U>8;F㍝sg{H#oÿ~1 -__ykD~CD^'7;}woDDDwr>5y++K7v:bx0[KvHzdY*:G|F[2$@Bv &alH1JS;N$Yl}P GLFrI/-붩b*҉K -d6mnQ^݂ Af",RzS *&ֹ0ف|&,sYİ)f -i/Cqc(g=s*6E@0zS`z*fDNʔIgy8bT]7ؚ +k1nDzU@ĠA {V(XKi{颎%pP3z42<rqxܦC-kȘ0(c6z1XeZٶrib_7#d\ԗ5޷xޟ!~ *zԟy=o;# Gto>_R֩ -ex|x?&e ǫz)Ŧ (8c(b wJPu˔y9,Xj^VJچN77NI^@1viᵺSm7j^Uq[Z#`ԩלvGy= -ܖ46c  =<b͚7+nvV.%\uU#̙5 llU[jseqXD oFכ5ZR gRvq9۱Ž&[*<l AW -E"^.]N.b0D^nΌ3T1xUWF_[UɰY[ې42 cu2  -Oꕆ͸UM})O+LFy"kX*kn 0q y.,ѽWl~s9q`G-[ (p*dIޠ8>z?2^jnVlD_VrBS4QNTh49KEM"5 -SpI[*< Ϩ,<O - *V2wT -$$0yU?9f 9&xq6LtvKި ؏=8 {>fG(܄}~?x~ #opS?* -Vċ |;;qğ?)O!KR~T{${%{G!^A 8xYGR<J'cJ$yɞ% ~E%ԿԿԿq' -!ğIğxEOI$\Cx>rp?EBl_|]Yfs*>TJ@FR0JJ%].DRhD Tb cD Tb ohϳdς09݉L`oW`bO>܅?5Ћ."(ٯJV}wa{wlGՈc"qR"0[zO+˜P*Nc@尬\ T*|-@y I@@o* TyT@'=GeϏoVVF V|_lG[k `Οqw?{zWu!''4mhxFMm)y/|]LS7wѵM;ؙ+h*~Ĭ|^,G[=%m~~r~[F7-G6O0{usW1ͽ??PK -ZR=|QHorg/racob/com/TypeLib.classT]se~^nI`BP+llШ6JHגrㅳ![ܖfǭ//LigpFs^H`|9yyߗ tT,|I차Up[%m;hbŁC_ 0v7fnv* Du<:fhXW̓CIQ9H.F뎱WޭǸ@7Rwfo:RNoK j;H뛽3ļ:vvmgʍݴ c֠_C+ŜmYyԷ5s`#޷6upG{Rjxj5#⪜Y=sD"HU&}F-$-=TQ..:…"B]˅b6/4I޹ȹ5.Pv'㙞 B3,ϥPl@$ S˩O5R0J|rU4dyhjx) d5"b)`` :5RpnSa 7~މ9Dqww/m!ZaMT,ROO_ iʿJ6mFe_:UT[$&aI=;BH>BXOGGQ=!&ɼK!JLT$i!]y2c| ?[8$-!,-f֊Dg'IgPZǚ?O͕y"ʲ .ec\h>{!e%E%frOWIh"曣2}qʺuZ"OC_ -пO4O%&5B'⣀Ùb=ΡśűOb'5@J僖 :qn6m 8NܱYBޓ%fv^5yrB{N^\ssPK -ZR= -Eeorg/racob/com/VarDesc.classu[OAϴ[zaR -xk+P@T[dv[ٖ.g?HL|0>lfho ۠ RF KLB\ӥS` `Ln=իX ;\QR\UZYP -)nedf5E+ 92HSՠ\YdEsû]Wu5f$zY"P 2=PIJ‡ל7CifcӒz-mj9M7"X-jFɔ )F+&3yJ'/gu R3֮fjfbuvdžU2wZN-vK* }f[iEjwLޮY 7[zhԭ# &S/Åʠi|X}ѩ9 ^s6!*: [ū5 Nyժg -ssW`WO~x1z0,r<|q8 '8Fq< /"x 9^A^C!? rrP~r<A~7=r!݆g83Ɯ~?׮ ^`z -p)Cp}ϳ Tv;.;mhF^ -^{n2zLAw1^{:7YNM~NM~FPK -AR=#H*3org/racob/com/Variant.classZ |UүI=&LBd@0QP@B I$d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhUM U c:RňyJ:KnU1CxqF0aCal~C1x0|/ 3[j7/QR `;sL<~ Pr63 - .dUK h[ū5,^~q\uxk5Ah npkxy7qܢL yW0z gkI9lU׬IJ ~lqެ-~ܪf hxn . phxiH$i]4|Pp5|HÇ5pP=q^ 9>G4|UOLǓSi3,>ˏT|A\Zߌ0>Zź- #hA_|Ƣԁƥ5j+뛨iHD?6!&H,PbBkb6Sء -'eU ]yX_k𐍐/p9)աTSݛHZ{u'h[jm|x,:!Obp(ܔVHZܺ*&#RHwH#/ŴdZ2E;eHR%H4JRh / -&u*$)]U<A+kZrFK*+5,n]&ED$97NY rg_*&4+frǗJD֐l2 BkH47hN)pMPE)n251>C[VbeAY<w깂f7>/VFv -U"Q(3-ʪ/VTUjVUZSU˪ZSe*k2:)֙V-fdJVIR!vS08[!qKҖzrZF"uqt\PE3]X.wQ$GؗtMumBgS.%BaF)qj0Kf1sz0tHݸWFX̍5$RNEB8;ֻÉP78W1%On Z"+ -EzzN"$$N2Mq*$#ad -,KnΥ@vm]ݻ$ւ_gUv -GJb6PBCwUi4,̞H:Č"ZTprIg-͒ ,V!@bq|UEjXuN,;̱Zۙmo3]&F[@pO<FhMD"WQê"mR}T"f~xbĞn6BʝC:gB64jPˆ[J[0S˝}ɦIVo] tc2BJH/YOY]lXH'eWF"0"9-#oi -u&i>HW{8^A.1>K`3mF84u=]0R{U19Kk"¿닷k#STfc x< Y|obKk_G'4 ZǬ*-KE^!?)qJI ŗCr+OlX2[&M Ģ]љ@#U-ǀy^4p1%HYKI\ U|i8@/f#G,6_ dM4pN4 U <5M|S33p$ |RKO([d}6644׷/i0],3=<9T8nH^`㨅 ?G2x3)>̧{WU(Sx>SidAI8^f&7dXX 0HΊ[^-9fj4̋@(EFenF̥*4g4KWGcgGEͤUgU4zKVFoJ9<T`GaRu-gˆt="A6]sFc:Xkx2`??5zkLk~e[69p6ÝUw^M[i4K)st[,&O,Dcg6S7-IG-MٌV3mM.kN`͑ټ:̕j:?^I.r[;8B/ )XlAɗXr]NM*ҋ;0d.e tu` 'puF+XOMn"yMH&|3ɷ[Il|M;l$e&yM{m}$o&?@6y;m.wH~&<h{m$?f' dZBGK]:"+zn=^y |e8)CPƓOa -> HWbp-QGtEVphA#P7k?Kmo\,E!gBuPH>fGHDI(n1ɠf6 <;<&KhPPKrZ=APSC7*81L;I1ޑ2vR[(8糆wi(Z< 3|I _Iwz;!M |F}߁Ψ'[ WdЁu߉6#zd'Te 9L咩2SaO$| w<@6Ι 9k9xU@Kn?q6 މ>ҕg}<{N%\9{މ~ѕz80lj+28Y;q~vk̫e 9%{}UG*4+kf[<cuQD](# b9/lt t-+e/ 6 "'"?+wqo.<M`ց׉7w^'.<M`΁c  <ӱzD\x / W/y8E-< ۈ($Qف)jcx?9DTs"i:$xQ= 8%&0)< '~+tI^3ˁijG9 -pɳ|/Q-0zƍ@aC,rVv9j=?I+Țɕ챛i_:^,>n9 RBsSKlZ=' 7OY $<f/0hMibcnK F ';yDђ.=qut &}֎G8b!΋HK6B6  -%0qC8rXb1/y7[L z4ӫ8vQ7ƢwWh38t&CͱAҙ)+5QcLu7FŶRR'%,qI# @F XγK]FĖS^YY$K$6Ӷ98 -4ҡ -x d:(H:8@cxptD:$?r0#=>gz܆>&`Z&th4C rɟ3٩IvLgw1dxvigLcw#)ddwnN:ٕS@&+-  }T>C\{C0ofV5iDГV"}ߙYϨ1‘ NpGRkW 5-A_ݛY`1fQb j诳Bh Ӣ|h(Eԓ-~*/cxE niO~YGyo<`]%ۂ]I J|8נ_C oڜasNL!iygfPEz}fLf(&-R.ݞi6~6*d;o Q8Kx>.KۦmmjxrlpJO.n?çY_a98%)^(PkQ%VI%z 3DS[NNa2$04|*ygUrF0ΧI`܈\q.H9+h` :Z9SAWNMm5t^$t$ЕÁ?O-'EI[v{ ʅˮNq0YͫoAh'sHk1?N<*<@\98Mpl>Ux]h~,ҕy2I(E@Y|KMǜg -Q0gtUZUT0[kɷ(ʘXPRI2Yf2YfRftd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&-sLƖ3[M+*s=X_5T-\%>rد\o)WX\'( xr#ޭ/F%_Yܪ,U((+;Ǖϔ{<Y}6OӪ<QR'+Yt)3oaOwb*oZAWR֝.jVP(٬Y[ 3ʧmXyzs -ȥ;;DɦJRL޹P A%Ԉ_33Exꫠ)/Wy 5m 3aT*A1W> \'fQ|Mt:um/*.RF*}4<K䵺YA|7}_Wwp%ŭ}:eZ צ\Vi0H 1 4sΣ0.6 -"2+O7PK -AR=͉\#org/racob/com/VariantDateTest.class}U]Se~|6,B@&[R(ԯMv!^9^Ǚ:юtFywgb3sv7s'F`Eу -" QpC%`4 -UI}SqLn%̨xYQ1+WTdѼw"cvv@cZ-Yh-T6sViheQX1J|C]8uJ钑wr鼳PEwpe2K}tECcHW\vB#NJ],d[ۖ 4/Fyc˫7)9{`]&ک@./ӢVJEٹWc(}w l~gTJykƖt9tЋ>h؝D*5,a,&_b2.5)^4U kM omz-\Lhx!,rA#G@ȳVxK<4="ҹ BA+ -`z<u8s鞞2mj]޴nr/ i}P1 -\D&$0)0tOk4Yg p~?S&ZHDH~BmGe=t*N.],c-VcxU%Þ3 BAyoijA܁ẋQF<c tJ0ij0Xzvv\Ed!5TvT,ZES --iU-ZcmU{B/l'EM[da~Za*&q, 7pJ'C ^;=L(T^ħVKpr|oɄd{p<T<y~}ZwtL3GQ|3Eţs򭻊!sQ ;Ir6H!gM\'gWǷ#~Ŵ"#]==^0mzrpn9FX <O69^D4#A+y?PK -AR=5org/racob/com/VariantTest$VariantInitTestThread.classS]OQ=n)*RQDE-)(~M hFߖWfEQ?F_csΝ{̙sf~ 8ymSh€vko6IMb_ -دm&1İ T -LU%A9c^ɹStt>l2o3VX^8*Æu@v+֬w-o:_ -Ǜ*ZFOWg&U0aM<imˍ S.(kJ`=OתTӽ$4yfܚh[B+ ~ l;^STafoE/TAP-jjdV=t:yEY4]ƙ?N9rduUAsm -q 0ek9J~5)G;[bVc-&ZDHc#b( :W-IL7q'1)A?%?2ٿǧ(T*{&zM&U887wڜS/ ]o} i2 fhp>b 4O":uEB!%"w&.]ڱd6C5X9U&rO!~Ӈ84jRK^ .6`q;hGCcPz#uM> J{B!I ]hWX%o(52NyY{ۖdImN/^ f>Xc br6|ƺt=vK+nъ0]CLbPK -AR=g(org/racob/com/VariantTest.classZ{|T?g&LB HHH $Wo&7dnP 睊6jVnVۮnwۺm]wfBh?=|DmѿehK?ǿC!gszS()K~>zO"*~#l4~/|G?͠w'GiE'5@|t:>O"}8J$b5c,bS8q|dA?ii-C9Bcc}<OkeJ2y! {5d 𦏧h<O[8iOx3e벼PY"4gM -qs=O"cJ4.Lr?BXɋX&h{+4>]J>#WjVuQj^q4>KH}I5ոNz?8|.oqP5m>4q Q{c4l7q=f-LѨg:# LޢmLUV465fh[koa!cjk+!<du;ˮ+-fk2674C6w1My%Veu%L9 ;S~N(0u6~of -: ;)6lcl#T:t;eDpmCFr̅^d*PYF%1!,`?odkwQJ4dxR'ˌ2#O*saV6s[#ꪲ]f6ߊQ83:pkXl,kF%F$|z㰴6#͈W\;dva+Y4E4Z v xU[f޲]@p=X]>>ik3]ΘODl7 -d@uZkKtZvjoLJƨm1pYgNjU2&O~P̔Rq.I& 7hfd$' &@X, g Vgegs*3b}x̚pp2&@w!xkĽ`fZ㚈e`etA/||q?<źD8b̡04DEZa2umΔ#u-UAXaV7=ntN޴J #^,=β"h-%'!9I(4[1E -p7Th7T^lb@TdRK%J(^=WFhU -G/= -.]+W~窓T<FՊmP[UbwG3W5L%D[cVW^m٦%gVlk]eB6Ji@zsBV*[kEtӻv;fo -j KҨ z".vqQpp.sص]lQ]MI{mK"j;HvE:J .z+ Z}bE1 -_iBNO#'>03m[6'B!D*U('7"ԭi mCnɔPխz`U#,Htr9;YT)><f'!qD2Zӌđ7q'ӜS%/%nf{JVJ7BYt7ː'u7|+DST QA||7`Zŭ!hxq**d;Gom|7?|6}7*TDDӁ8.-صBՙǬDE5ZY+*/Z"E}|{|`/ Žzg !d嘎#a~DG}WIe_ crf i0N)4 -(d Ԃag$ swPs$u a:f^E{P\Qphщ_-e~\U7 (ЪQR\QbZp q4B*¶ 17Nzt[X!Ja̲TO@K2WUiƩ;@נB͖ԏj1R0='댸)3U4 -n7Er%dfD%p/!SM^Q~Ρ<It3˼$܉EWˉTdU.HFg)Eçp.,Tǁ2ഢbΐ5D EWipjNF[<<;g˳Q^r)=Q7 q\̢5?NjbJȗD5W4nI^Ҵ5$mR p -|չKb׻4^03<F) 8ކQӊFs*sT8mwJPwW:!J8զ8T!9+d } FEյ.?onO6$F6CK^'U8N#f6Z0>o/xт/Mhkqv(H%p#FV -1(F!}KE\8*Q3]V9@f!?$Xkql#')aqǖ #vW$*f'mm ?RLYdb̌GLSbr<> ӒS1xAaZ9IRL<(Inc=&d,,;k4=C&,짬>yIFK+RG#ichl8<0\K(o&:Bh2*FūjJdMihz^?mf4>ұOaP"6*l6dGќڡDl4(w.ϫu: -{^.R%~~z 2C$d@xy3O+]̫NLN4iTAi5T$OQ E;`- -⵴rE+Ni?G :ߦ5 TA=TYN<TSgm\Kxѹiy{~Ayޥ&l@%'dxO{^{iOyE=H/w.i壇<FǨ]k<N|zsBGQ:'5>Z,B/ֹ.}tzrҝ] :Ñ谭JKյ%>:s{t],<&iJӨ ki'E x.Qp'K‰ '$*8!E )`?V&\=^~rڦ|@2Kf r4 *ߢGhZj'4HG5rR'dspA>:ۅɂuij{^PTt%-h%F_ n7"n'VznWoJKA%2 ҷ+;Wk #zlϓsg)'9GGRO9$_S[+\Q21T'N̸ʓi=3>wsi֏_"s>V8<E H)4z6#vn -(GQ$ZRC/N+'kgi &3t#g5XVO]O*^*|!*륱u‘M$ ҄<<?VQE5x;,B{D<f_\G|\߅WCpFTKb8U ş&hq& iI`@Y)O_o71SL!>aS2F Oc1;\#G8(хq\4T@:v<$z/q -ר9j"~*.R -|ll9q -T>#$gL tq?}.utzi$@3RI`>ok -op`4dSpx{qzP>{"f.l":q* 3)Y(on+,t)C -]|RA'P)>'d$bd\7}P)wg0Oj8uQI?uˠ钊$.\PUQ>zSRiH6WjYYxeQgeV\ȷJ鳂3('Ur㈣ԌlkSBͥxz$r%[AFN:- er@^R8nIlW\&Lup)2 O_YITvSڧt3ZKӋt _|;8*(D -$̓ Rx:T3i+tɳPn.xtv^e)RtzKUa 7q+C~B<i_ |MOÞ.wo!:gqTJoKݞ([RM:q0M?aBEqГSQ-l9{gس`_}aϥ8D)h ZA>u~O{$py<S1Ԙ+uM#1JMEߤ4Jr5NKVC4gIk0͉;t]>dڢ>^J u޻ʻz&L_4@,oHުb)i/Չ-348/˨&CEC|Y|%%]^ut%_O AzoS1t){|h^E9Yu% -y0%+ B|>r>'?xW~Dr2=`j ~%PK -ZR=r  $org/racob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@*$00 Ej[k_V*P-eV׵պ]kku_uݢ{<&4|sw>ӧ{R)O?3g`'t~|0n}(¿E/~~tn~c:b}3Cito;^3?^au]Q?0/xÇ7]ՇNp } -9ûT -7t#ú!S!I^H -tݤPW& t5Ƒ"]0Eze~RJu5+3t.a&M&庪dWf{eW^9\r >g^JWU%BWN{eR,2 -^`rȅ -H Yz=Rj!0RAas6lhŬhW]wn YxaeۚW5 -J[wX~+1[a:6e(VVmxVG{3  -:0!%n+lʽ ķm¡x(8ț'uǂV<ba+WkG;^jBv[![3N5!+-=nul\ 6UG4usM'8'joVfk-:4鰖à%(Ƕ 6bps%?#;%CakPmgN>}90rCQx01rk'<KLrLu4vwQ6pvUٸC`4l#H0dmg"=!ը2{k"oHע1n?PM[Ez:m.Bh{'ʸIzIeccu `<h$u`-D( +nmvkByH21|Ȭ>a}ŔFYSX.Jc۷GcqSe.y2p%TplFA+b2s*1CQSZM\&xzBqW -e6&g\9'vP$j&cíh1<b`{X73&cEM+޽]:.K.o`Oz77jP(d7VV"x flLZ6S bm0[cJPzMSR_M)aSqĔD1`.aD *.CnO3&>} 3&zQn2Ì!n6[MO|Tn3v) CPNe~jE)'Uw)O w)Ϛ9'X2r2`{祅4hp*88&^ ĂX$swoʽZ07#`n )׌`۴)D#|0`BCAho`E+oؗ(\(r`'Rgc5הT Y&]lvt|lWEMƍz`Ad(V=)zG> _TmeG :>Kb9^bMvUݯκV`Aw#1,yixbMwauW+!S˗MyP_Gݚf+:*<,SoqLKlru|yWٲE۷oPMծvUtsc0F>EOm=vI\֫m&Z56jFt 386F3=8΁dqгƣOǓ=AO䲱@0ң3Wu8 ]wM2]-}R;IH -6tKfFdA :S@q[q|1ʊUO\e9ВŚ_Dj0zGU:ѻWWut^̳]CVxpuxOh{)[tMIr!CZ'$&AǮ+A_߫^lFū\YK+0vO<&Ɔ;Ll$q)To;^T9k:򙝌t:%CS&+T1H>rU-Rp*(egKRF儿*T':<I:g5Z6SE1z4P[ <P`(rS֊;g}4&T7yJ{ʳI&]e´;:Ԕ.[˱aR<;U#|pŃX[p+\L}8\y'[Y8U@"wp`i$WC;)yP8r:G{TVG`# 6\`~`a -3Ӥf4(b($ .I`*O3Vi L3Ӥ3 +WXE"YI-fIg6Ga4,@9 -%\a9;z;c w^IeU S@~d pEWƹ`FT"jE B-`!g<;,;X"STc\;Kw Cf -ҩ?;E#ύ7JG헯Ik(.q-T(n]]ϫ8syX", o7{ɑw_>@gY`ik\0죇Q^Ӎ j8A=}DJJ|?ΧcR1ŖOǟGG_?_ -29V&O:K'Wf=$$Oåiqqŝh]ɣ:C5~Oߓ}ҾZ;:ME1FHk 4c.Z0 -/p֣WvۈkfB'֠X$!GwaItYtURɸ=^Ob!$a4b\/1DFD{G1$Op~{)앟&;_Fu>*~ qJ8lحqG _ʃ0݅=I4q?֜Qn",f=L(ạ_ƃL*9a~ރJ$Zl97;5'QfKvf1u!ќw -E8$rAܕr9@}z]^$y 3JL:Q-IQs9WVh'Ӛ{IE(XPjߗ@}F̤IAtItA*N -n -u:o7Pذ"4 0pMh[h9M.<rfen kP-v][a+Gm~O !³_<h7>e=[v{ްN;Wڵud~\6TŶEkGqέhy(|WAvkthv(6)x vz'[FUWj%WRkd7؍ߊz+0LM o1Gc;x ߧ bO{$J1~*~</se1^dײ hUmGK/6F,4y`ÿS)4 - - -Q| _8QaZCOqŃ88)m{ۓTOMs`,3بC׎㵃dH=\;` M۷ ;+[$E(9iЌ8mhC)xb-U5igrLRJv*SȈKSɀU\@Lg(z qerX&CI 593W2# 30wh1ƜWTW7j85zvjGq]-+<eYUl{:g`8R)…׺qRX[\1+ljs]쭰srV$v Ay%5ڄ҉Jقr . 6l;_n|G|u:=IrXC2}k5<Ef ]6<xP<a;]Ӏ rYG8vX\<FLf.w؅MZ1 ZB]N7PK -AR= DX (org/racob/com/VariantUtilitiesTest.classVW<&B XmShm --imkȔN 3dBŷoセ۷އ,7r_/p!P絿.ŗv8v⨊R-81xcxPVNq RG ?Kg?S"0pRL8)MiNKpŮKvqY:2IJScLeht{ѽ/b^=&#)F|@Г*Re{2GG슡ʂic))SU$ -^=;̃Ű{ʬ)VOSi{6,kVM4jE)e?b[sd!^8:deIǞ9[w,[kqyl;aMsW`Ɩej]l1gwG':;03!pVDO{.2EyQ GKrx &gי,@xK 5vݙ6r^f']2av.=h%~Y yj%mnPMSwN37[M7sk oIHi=!De*E)LvuLkfnV+{:^96gE4WT5Uw ?UKÿ7𦆷d4]E45|e>UDpvXba`Oeih&JN=PA&<O7=Kdz/Ql]J7xj`EN]AQ L^: \ -ά:r4_sYSNҝ~X.0Ϝ1,&$z/[ -Jhh 1$3 C32Zkr̐is9fcjuK`)bq]T:&&<9HɌJV -v]+VL+G͔R(W q^y$eߨ- -͵/yrNUs3c/N -E^?re)--0! -hla_@K<BEܸX"?u h-%?m0 -0IE6M\ - ~tH\,w.k+F!fd:Ҥøf\'0Ro^zM>͵} -b;rF5Iƾ诈5.JpKh1L@jlEl -}mlp˖EW$nf)p=Տy;(f'IBDNN ~J}ԓ)D/a4$}H.Kp8e7]_@UOU#In)ϵ<di$asL_Q5J?Tan|U9UTM4T]1]RK$;T -'qR$5[_Wo<MdIq&)GWtuy񦆮m ]k@?!&DWvY&vs lGae;NbR z¦X -1XJ3~RU6I=a–p?U#PK -ZR=GH3#org/racob/com/VariantViaEvent.class}OMK@}OMc#Rf=УSE}.day<I$7̓qG!!BRk{,ޭJBVnQ5oNr]F wgJ<eFT*dwl !zНfы|^'<R8N\F#wBw`<?"23XLFe PK -AR=qQ]"(org/racob/com/WrongThreadException.classJ@ƿZmABUl@R,Uk=o%]Y٤ŗ | -O'ag7 j3Ų UB)F/Mtx}zDa(aHN<v. Ov;T[LcOȶ' Ů -n MO ]2V0I2UDw#\=p\};~p}̛ʍ '\FA2D_qJfU6.ҹ^;Q$|vaXyka?E.c>1@a9-0Ï,gmzs*cs&+|PD)D6a7SBK5!$Ef-Ҟ'PK -AR=org/racob/test/PK -AR=$(!org/racob/test/BaseTestCase.classWkS~.H,kCX|AsuBvq` l|S@-IMzu/6qӴ)NgS3 IJbYÚLy%|xN 2.%P\N0QO#"f̉)F,@ .*K)/:_AY\I` -V<9__N+ +~S~K[w -^Pb+%/Kh8fڦ\B笄S0$̙1V^1I}Ƣ$suVwM I؟sٌ睙ox~uPBgS%(:*lgɦb,Pܼ~EX==7i)u\*6Oz~)B%4 -_YßKqv|"%qO]- {{'|״g GLIgY9e7ϰvo5 Y O˖n%kin?/Rg_^ň9m@^BK`)(Q]kə3HZۆ:i0Oxߓp 3킳mC:_E"Oy#,фB +͖ƠW$%<:CUH8?Cd!UOLn\,ˌDЗs/d!1d.haѪGp mwa+~~N~_“#: ڌyyhW4YmH|-ohINQD{tyyxU ?f͂5X4,|Gs˶4EL;Й=5H_=dHŏqͤ'9~!*~kdqsINM+trsgg5㺊_ 7T-d_I-`ofC"f7甭f;6ch6Q%iIDuf8qV4`-h -ZW W YP+OV)xQ?cTDU sN>+|WşDV1D*nrBHWZwdػ|f.-w!ղj<&5%# ^4E3jAL lm֋۹ɋ#'<MvX>] r6z/ -{t]dbVu TxE}FjNf> } zd Z)oEmOCw9]іēeӇeسbe\w;Od3~VI kNtnCFkwo9(S.mvM!^_Ki -$1~O1[nG6? x Q>n!J2~7ИKʼX'JX}2N4BC3KD^ -|jm#8J6z4> Ē'e sX%'vlDuFn;HBIZD؍z(G鈪XquQW@ -MRP5$-khz$Ƥ:vMXk| bv-J&װ;5YC+ڮ3=\B,o֧[.dBjRhR#۰7J~S љjX BV;rYJ^ 9(sq`)I!f<zqCd`|\+xW <> G Ē}'I!ʤnXz#_qɷvh{@G$erj)9IAo zj@޾÷p? i$ -f]X}˄}<ZVn-c'Ƃp,|zfR*mZMEfzdV1BUY =`I0d0lMNBdLPm 0o=TcW_k W(%躞]Zoލ8MLLJbHpƧuS -o`??& 6}nUӕdq6Jv:J6,Luwa͈49PK -AR=org/racob/test/errors/PK -AR=3a9,org/racob/test/errors/UnicodeErrorTest.classTWG&Ye]P"`UZ *YkmOچbm h2Ags_}%x9}C ('BkN2w~s3?(\v4ӯ|bl\q0 -n{˅f6|k`E6J C6?`tM0.K%*֚VZ<ysGҬwVҐ1CzP@DG%C[0d8k;RSN"J1K"yx&tkE(ډԊv)Cn RnbR^[+C5vZ4uJoU=&TuW>[\;ܪDXF cp䑎j3nqa[l5N=Xn B{ i~҈ss]<|oHO,ñ~-;Ybz< -JTW\& S5'L -PeTHSCT?*1XH, -jR6+?QHE\~ wϨp7HR"k&m0oM]:ܻg5J'ѻRċԢ+8&VNz2)d+8MWis'izLYOw,oyn*_ t1+rlCrkz77~.%E.1vٴi 8;JwꛂOIZRUӸL};&pGQYeg?] QMKy;f6뵉3F@,;RPK -AR=org/racob/test/events/PK -AR=D6org/racob/test/events/ExcelEventTest$ExcelEvents.classSkOA=m -<}U 屈oh$? i鴁~TD?xg!L;s;~ `O8l]c& wPHÂcvc®Ixr06CW FB-k^êb E!)%ZO4Eh–/_%VP9bl%5ؼ* %Fm]U+S<XZY [S.do>tLrGZ+edE -MeTow>ת_ռHjhSpdM U^5p]5Ʋ ֑*WTC♴C9d*sqi=&\t#஋{0 -es L4LEZ<dh f]<œ S;[i>7R%shܦ [a'/W" ^on0q[T7j"e8ٴYC,u~nJËF/>^PNk_alB}8/ӈQ|RTs* . -Y!\=D`)Ft܃"Q-$1s.|H0>Ed6dFd,eȱz#KQ=)E?PK -AR=RM<*org/racob/test/events/ExcelEventTest.classXy|IzDDBH"N! b@4]e2mڤ =iwýVvcH[& WM߬$,2?{]7Ђ*؍aqBƈWȸ[I T U -xu5k$VA e+dNp/&攂 -ވ7xEiѿUŃ2.!N»e>? 2>$2Qq2>!Bاd|Z>#B$|^F<"㬌G /H| y c -/KxLA  -vhx\W$|UjZO$xuNA&ci=4l\YIPn37n?M+v+{tI$v z9<넸+4V71,TwpRqsd:e# -Xe#d&N#ѝD%6_6Ź0G 0,׵xdi5$S~TCi Mv.d9[ GLڸŠœ"Zۻ0iwCv 2R?`XUfpa~0-do2.GO3G~/&B -ü*i7g-3"Pr>u WgZՙӄY f - -fUE:%<ItN,%d7w@>9R &ft Zg`H#{pHXk{sRm )&, U|$lN莜Nc%o1H=XgqYwT|O /A!ŹE*~ɤŀ)%ΈFRE1KQ"(~NXE\dhni+p#|X4҄~u{hX/Q.Yn;bﰞq0KR6PIk-'"mMd|e] Uieb 7⢑<am47#SI-SI +q&ѱJ/g8±1,r]N@KjPĈ"TUQT̺z)RW!sҏaUe7ohr*՜m7,jll\l͕+rfrHob,Ub&il;,S`W1!8u*R.Ʈ( X !/(׬oXQ MTI⌥bi5{) -ixU]cV(. -Q2bؠ.ff&[y}/ P4{3ժ8$NX"IX&|iXJ]9n&ՇyD#83p|y2-_x zf6V=L&:EX!DtPE;%aKY˦9gw g<")xmʥZU}m4/wLCu3} c`gi0{UG#袞$OZ<9~Ou:' 5AxƦ1T? -e5}cPsk yXP<+d/QO<G|?2,TKcL2! t_Ǎg\F iMf -]y}.9e7 mr92RPH h ThPfN0.#z*yk<cGr%@zRl{cmzG$bǭ%)F.%B= Ǧ:lQ(-=KXNcؓq0. -Ta%qԢ4jec3XS@{7nGxzng X-lvcAdaYfNvȢ=r`;nvɺ"zc␋0v=ܓlziTSLAI h${hWIS=KRHy9bTKOYPM@eO I#l ?ĻUYBJQ=*XxFٙ^KPɦb>G5]D`;'kX3chxGx@r[^<;>XV]54[%,Q;Hn ɐmR0o." ">2 1Rl7@bTPR!TNBv19nʡݭDt+PPK -AR=vFQ"org/racob/test/events/IETest.classU][G~lܰ, -E i#a[Z (P`&ɐ,lvf_}lO{ًS{fC"Ɣ9sμs1??2&R&cz'FpCaZg0#99ܔ|?u,۝X E*rY+RKL NyêԬɫаaCALx;Um8ĔↂHu+pҶ˗rYsh/噳|[ʇ(ل<峼}ᮨZY{?p\gOVee٢bBn%F祿 -yaQ-~P08+\rk@<^  -AXsVP0v,!ugo/JJ&勼x JWȄQZW, QIYV5<I {[<OoIW3E+:|" QHjxhKyn% |1_ `Q*@+v -Wpynʬ_d>,G5RΘkM `¶ @%$UG-uHLY5GG,(\3p -ELޠ^V5 ):.T -[ԳVWZʄ5dc~h(RamVѪy3~GѺ٫ -^Iz۞u/(e;Ji7&:>o8?j,2+V{^Oq*Rr\E"uHgwQo,f.z''[ȯdK^$tzhҚwIGV@bJ"3:#}̺ڧf~D::dFLJ>1q1O4!"x>N,_MKmP"rP۠tȗ$_)zrb\N֠qO_R@>N35Ej8{sG ~ ba1D -Uy`yuÔSN2I$WHn\F"iN&ܤ-JmzG!'`SyqyBQJ77z5\Y - w_PK -AR=D>֙Gorg/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classVkhU=lv'ͣiV֦vmlM6_l&&oWbAA" (  7ݝY%do=Μ|ׇ؈71UjHdal*Apи<4#4cr,[yvw]<q{q<#<Gy<h>)j]8Ć5S2ә4u-6؟ٶ.Nrh692!C[7o1R_\I3C̆q&q"CJJU4vga` e%A-זMWLM(*Ō:L)X=534%L 1I3ruajEpfɲ֫(dS†%nyqϫ!Y{B2UruA0}@AS4O]2$EJ T_ȞR+٬ :Dx,>ɖIT>Ks)]33PYRt/ˈ21mh xAWUEae!0F5p3ݢVf(IˉH&u Ǫy FyW^94 3S3ܨ#r\3uYDl(]c<"hq 41#c>[,H0=RyQ90R*K,oآUlHCz))R͖qI\TD)mIWSl@4]Q{VH$ :x24tLo`iJG I: <s!<BxF7+^8p,!WHZr h'8,/LaǑ -(;\yŽ-;mň}N6 -8Kf3dAsnX2!ש=2lY hϋƣy;W -: H -j&WJa1;2Ql~ %O^Jj:RTt:1IfɒL_ B.nj6r -&)cr$I ,EwV⫏kL5!䌙D绣ZcXxV]&r<Κh -^\E\[ h :Bkhv Y5P갖~Z:q`"<FGBCH ]*M7)LQ 0FS~9#W1b>s =h0G)7G[}3}6eZg6eiΠ6ʴxhG߼y[=zxOV*ġ6(6ura%N;|W_SW3qU5'ۧmڼGhᡨwa",3$j&-5\oF>s6a[O~Ir|rllΓӓkpwبO!QbOo;v}l -)wKKl-ߓ V<VCUxVqRn=5-d~uak\O߈wlk`;ϓbӅ&Zr7Vr\wK s>WCVRkj.ָ㐪մR5 VWN_Ryz\j-#5azs$b.8PK -AR=0 u -3org/racob/test/events/IETestActiveProxyThread.classW]tT 7FVL -hB!$IB K Pjov'K6^ bVEժVkjЇzއ>xSMiKS?_`ޏv 1A)P66D`D#Ș π -&N60Uo,S71aZNIg v3&R'L|ē&RRfiϚ`9M<o - &fh܋MM|j+]ϫ^3@]g{tlk2tdoOX+ʬ9'kL kt Tt I野 -:a;efd@Nu][*ۼX帲'7:(bvyI;oa!x ; C Rw'8*!q׊ GLB5Wq8]mi7-b72=-)FZ!7$ӲhbEh:PAeXUJflzCtr5Dz#GڼQs/#ݶm=Y-˜ ҝL>/$e X#Z&nYZ |&pڹ2l3^ V8I[i@wE~hG~pk*lvdǞ}aûsN&%k 6,\ ^;L[9~oZ \K.BslBS8'()u˅Ћ=o$t@2N6NWKa0ίPM)yTiZ\ ױ_`͍\{CY|Cԁ7{ -30&"wB&iJe;d=\F<5aRm&ښ0_ K?e`g." Q^Haxö2c97t2Sr2)ɗiSj.<-_`I٬%W\ʕh:(3ʘŻ[e=e%- IkY;Y,]]ZZT51<P} - Q`RDTNjryH!UGh1 HJaImK@1;oYmm^$pkBƖ-Q~e=PWBX'xIVe3R*QV;7"=VBJiU Sd.hٌ+G(,b" 5'Յm{𿇣l#[ w^J\\YCJGVc9+`tӨA@j - Qc@ji./]5SX]5[ӈNnNbuC6]3O噣kIĻgwLaa5kTOkwjwi4gH_4*E/RĹu==hLM$]Fgk#8xY}s|廫ߩ6WQh7>|jznθqc74F^ -_Nğg[/)*{8[ACm(Έp?cE_G3]nF@#b8~ t| yǓxau.axD4p0Ic| $_qY|sDO_g:cb#NMs-k\ǽxO ϊω3x]>$Ms`Uk1\o8s5Jiia5[A5E+{*ĕB&Urc.Պ׸sQe0pA{L l6 Ks~XmlV9Z[ͣ:ῌ|7,PK -AR=Q{.org/racob/test/events/IETestActiveXProxy.classUWG$,U( Ukkk"h&EunE|m>s9}o}c{j9'3~wib: \H#.R -'gಁ8 ]m5-~u|~օ\7B^[nq |yMzR]gHdk ɼ_ VA]|k<ZV&Նl0Lj˶ eMᩆ8_")()W,ÈF,H[ bZ|.Du%*[+{्@ -)*J5!] R>Xy]3E1LUj71f -L,capVM|]`Qҫ΅ҭތ~ :g*Kh`5hS1D%_cmuwM|{&Nq+rH=Äꆲgت 8XM"Jv=̛ >oN ٵ:~DTdtR!42s)|4wv;L5\!4ԙ&A7+X<ҷW(5N^ Mg -k6{@}z$0B3{;kTZ5KoהHZr=t>'ZTnK3;]h?ivCC'Pt'i4z:5u$vF{j<AkgE(im;zHyda};A {ɫ~Es9x~4@ {~ l#ɠUM'{ #O!5k -38J8ICRC8C,,iOB=Ez|:4`ߧ|+&ЍeSPK -AR=u^ 1org/racob/test/events/IETestThread$IEEvents.class]lUS -{t"[ -,TQ/.]`" tv;0;̶׃&jb4_5j⫉&ُnI{;sg0O:0W؅tNb6LH ~OqYxSzq..pQ 7H,tK )` c`;C -5r4]'53[V1 -v',S>aiݔҼsڼA/m5cNuϮ^B -ԔO:cҞ04Ǒ4W3r嬶5W*ؚ#oR~[MWlyJ%,d]ƛX",ҥ5i-eQ7}ROkʶ-n]n|V.͂LC͘m)#cfe\J1OWtWAgR8ܕ1s!~$gY?w-#O(K۽Vz|Ŗ,噼Jɫnݭ3F\OE&kU켜=fgh/iK'[EN -l&R#(Hf^,$*q5k*;*u M4@AxZl;*Wq({PωBSb7\溦5SF)Ph?._o{}Cc^_lD-5}U덆]}Ȫ'(:Rgk$5L-5}Cm$µQvNfZKz׻i"{qeViFRi.Mj%,œL=RC֐Hy 6l(YvfC `[radZUMP,w~1 >mޠ+$~vxA(|4܆nj^>U>  XG swo -bA8#wW٧rtR'4XV#y%7CC0&3=!{?3y8//2`0F`3اX@f/c!L09LӬ1GrfxdP{#M{~>~ qrBY2O0_y̋! d̉B0m2+C0oy39;B0?'K;C0$'B0&Cm׼J|PK -AR=-(org/racob/test/events/IETestThread.classW[XvauPY)4ڊ -- SDlHEQa#:; 5&iIKn5$hhLO</~}}C.Vaϙ?6]pT-}jqb臫ӑt1Đb İGcZpJ:N+qjzRS1V⌎8Y%*P4</* /x9xE -E t5+7G.kxK@ojln0\W NK}tdR@t 6h~72!l#K8VO@ ,G*U6r{jl(z}i%wY6UvAoL -MhAۑ)fv]ʮ9; mR`ILە@KX˷9G6iJx5L52BMSc;O!Pe[J+Xw(3Tv̇= "dWB5rM6"l Xk&SFe>A4L*x -ұN(S2w+0g?TN}bȅ@5|S,@V %-eeH/ʂިh@z0WiyhXʠx|oO;a)i;LsU&@ i>'LwX ?cَ$/xzL?/=Vk⚆ (D11Ȥq儙=YBUn/gz^_&e7;HWC:ʨaNYAwW.ԍ10wV1]k,FfIǯ9^h:<MjR1Wj31 T̶7iUIw vp(J̌\; M?7M5CC7Ԅ4 0 w| zm# #?s>ފ%m+iifv^3o  |:_CyIʶ->`8SZ˕ .-9RS:LOSsjP<iJ"zm)ksma{қl7[*g3nl|o:9۵7RU0ϓ{U´#eJZx}2L,2%lِޒDh)&?jj)ްΗ,w^#|jN<=RQCT\E*WH-.QաnQ-Rͬ4C>O"|zv ܌ȟ)F(.6quƵQ-Uq:X4*^24X9īpF|Vſxr9^A8VtҧZDZ:jf -/Go)l)*+*+| ˣeEinrˤPZ1OkC(Olea]cF>D![W3#Z) +^ྼaD.b"ԄKcNzC7P"oZ::;Ge1| -t7kWD퇘wC,Z=~N\bkIQuvNP$VQy58Ї'0Ӥ<Kx >8Kɳ;n< B(槪sϋ8^q^:m]-^w%Qv]:yw#<$^8.=xGM ?U<xVf.q߃6zxG%~}hgTzysq(!b<nОשP|(vQVT|8.|.LPm kLP>Ŀ &'"GCRV #1rI$rwD9NDn0ÑFw;([qůU:PK -AR=J>i4org/racob/test/events/WordEventTest$WordEvents.classSmOA~*G)&$ 6B aem+5$Q٣Q^J3X"9\D-0C f>~wr9+Eي6 Hl(B$&z 2.S3}P,)ɐYё`H%Z0|ABExc1(1*%J' u,g8RG_)V>6\uk/=Wq2RD;2N RUn -0~Z[-Sdڕ#e,8l>.{}, d;EK6"h Q%xotlIOI4N|,Ow桇G>㉇ k,ђV5nVU?1 ⺗XӁnYуIVKqfSaǸJ'L)pH#y 5PDWFa G^y72hnCϓDzw>>W-=y,(SCƻ(O lBao;Ȳ/`068:iTM~PK -AR=~ )org/racob/test/events/WordEventTest.classVwU I:C -(i-T<R 'dh23L -%7=# WH=薣 pߝIj@k;{ϾQ<H#FU\H"*TDFHM9\\^<UL$Q:]U9\K: -&5-a4ܐM rᶆwT+W喝^P - yJg -Rl[x5]g, -)eM):%`s޲D^ޤQQ;Q2<K[xPq0xgN1?ȉ0Vn1$C -K Otni t Y轾䘍zal5+n憣yԩM32,Cp˱kd~wY#W3Jx]js0犼UKkM aΌnȃ -ՙ b -[€Bla׭Ymt2cK5TD"Yr̄6)zP{^l V%x#fPUQK&c9# VB4ڜndJSp< dڬ|nu*zLY|̧pڝ>,@h#|`%Od嶍m( >d>(8ur%?+tB}2GaG:y\7fDd'Q.UuSIc O3~%HaEe 0bb2<~>r` yD,)9̬<2 -fs: -3WC-; YrrWSuRJVcQ 6/2+ iudWj<5[٩W=^07ִoqWн-IL(SZ-eٳ jtUN9/]7"7$Mr6>"Q:Y8<q lGqOY pVk(?bOy HLg5=u`;eG~0 w{EjݔĖ~xtb+&/jx;M &zOw2{x#de&^j}fH?K c _+BjH "W{I>j">epH xg88ϩC&Y|Mop`C|JOzzȘGY2=N)o#$wtۄ3 -g"ljS/7U[TCQqA^a/VPK -AR=org/racob/test/excel/PK -AR=fHg 4org/racob/test/excel/ControllerTest$Controller.classX xTofy/ !$(0&!<ɼq%K[njn[V֥2"RmUJmXmMޛ$djss=wx@,.FbM|[qܭ9}O -H.}Wql *A<n#*/Uq01iq?RqHrѓ*~r?S -`QqX>GT\ByV/TRZzNůUFo;W+xA%4wl$AYJQqTɑUX?7&-VfV1 -(v3 6{+k%룝qI3M/u1=YJFK-k("7i6FFOYzڨz 7 &9ꊦf8Lv%v2RV݈ь4c1#jXKLjT7 -x#f]+iƍ6Nm1v=QOFeJHACZc<n$#1=287o4[wӰ"3QulTg{.nuҘz01S(XhwfTg$j> z_hUR'b 5<2;Ls'#=1'fwhAijf"e _cUbHXQ3^M%xT>-V\vڈٝ0FZ2RCPEddɈG4#Gَxlfe 3r{6a\&`P ntؕ+0!"F@sc}3RhcHqPz dpɤ'rl -B;)ǂ3j4 :?2$PO~h'8Ue(5vLLz'n8E=n(u͕4]CP4`i؄a30Bvc"(@;y417HĢ,U12D1`S41FhTe9IqE51N)\y &=ЂP$M$& r)*2%ۙl}2bLC,G^隨'3#&f@2^h1S`cJ 1COU51Kj8kLUqXIzc&~wb~̛6l4Q-*伫},\:5m;vk0U[F 5uzw-tffx2BQ֭P4!BX-f -$B#j51WI_vB A Ȃأb&B8U~M&N%D2ګ[FȮ]I>yFk|^ Si"^EA7tdPg=ː0eNZv%]?~da 8o$Am)B,c};U3aaw5EisaM #i!(xܳ3wY͈|7^2}TA<NFykKpn+5&+;.o] /"uU\4 wm$"ǁ/ܓcX/4aѐw/daABb N 'Qͤ/3,;0h+-|x/dܶ<[几w#Z~bS>FmZ֘_OZgj9#^XZ`k}jj3x'GmC`2*M )*< -Nt(_ C^mC8gv\륥mF9ngo -hu>>m5@l9(bl*iaB{+k!`ϜFV;+]+R2p>d~vQkTJ<-o\=' 5XF@Fc0&t q~wU2Ecu0xnBQG~h[}R,QZF0q -oߏrO?ƫlcUQ!e=<)յ4Tvd~x0hlU69_OUr|6k՞JfHK\{q;nkWש;\2T<p).,ml9r!<lu錋r-_SDDX!"l9RM\^#5QL݌U,fg+K`h/b]ĹIp|9 D׍Yw2ua,CQyoQ |@R"1.z]TSBTaGLI*Y]G =e_ğF22#BO.dbY_LOo| >۳t$+TJ 2DvIJ(GqYTJH\n(m򳁟5 0!*xʇٓL |e2d0e: BRx[JvJq5&WHQ]Rt1+[cꎥc\@*ƋH$qjW& !D (x7 % JQ 3$^]D1*r<[ >[<5QOjKd=r(^ڇ1U;\LSy&!8K,Xic+}~?stE0FH+dOgaKX\؇aw-mmJ>f;e$w<J_==zVnO%~[׺pSY_&,؊1WG{qtigVN`L^ߨ&7WsG~V2 Aqml^"𪫃jX^(c0$'O*^ ;D$/4_s /^m˨s}Fi>a6 -PK -AR=mG)org/racob/test/excel/ControllerTest.classmOA[ZZj - hA-blE ƗcS;*L|H~(ii5›}wgv~$µ8rIDf<e.bד仡88U <WJ1h5^Ur>߼z [7ط47Șoo +c }za!Zuði;isNGx]%cܳ midI+Ð -z"+CHˍf`Kô#ٓHbWZ{ɝx(*uYⱭ #'XR 0ΖIuꦆ41 /84,▆۸a qpe +a SH1wEU/J3vwED2~D/td24Rsvw75n \aJ" -1TFoSC'-|?rD<z䒞k5PSh)jNFFUT}nfFsx\Q&(( -YZi \h;C *~GQ># %X(ubt RO3?@L/}$/$ \L -lpDϐ8E0[͓W4?sD!#tW) Q7PK -AR=org/racob/test/powerpoint/PK -AR= i- Corg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classWoUnۙ-  -rq,";j[ -Aۙuv/h r*^_ vCƒOD_L 1wݶՇ~9_wz~ =Y(F- -ҰUFu,@4Wh`[U;mx]& -ehU 22:d -LDKBT<؂)&cq![ o -3ox["#a}2+ۻ0!k ڴ;#n m.֌V]2ZSdeXaj1܊a3̮4V&?hD!̴CztRGmdHXWQ*5 މ󢰞!l ٕcMܪ1+͠,]Ӆ 3-9I`PrZ;auY1J+x&BS:[SOJfPMI;ɅIZkk*-{R'Q0(f - -]$ezBxaְZҍ 1=-`Ôh=*!>P!:GRU,œ*S8 -T1ɐUښef 8!ObS*N sj'`sɕbLJ3*✄* {s$HĦ,.1L0`ؼ?U\ a3圊/Jz80]#_`gx!ʴ'nZCiQꦏQ>rjeG7<ybH+(cX:0i >mnjA;ɩeAE($QLm:z1xY'ʔw4#qe>=Qw1{h*t_C6pCLE0fY1'[ZDG-Lh Ǣ!Q0hB -«[0s-F>9rxknl':[ 6wLmMU0b䍳)8h2,$] lƣbhvάŤ< cw1#:KТ3D+S?_ i+s-JeѲE_G 󡄾;ĚSؔe %^H(#\2L@z+Ŕ+A&A!E; "t(Nk$|JsN+y}q TϺ -uБHK Rӈ%wVYvQ"(A`n0C0'ܹ}lAy$Fw$s  E1u Sq'=eynO4RQ|+/Az6`r*EUb񨘖;7g%Ĥx}wao^^9W=pw}.ˢX;U{bN,&BX(Db4M؁=bYON.J<wqX&.#Lle8<AD?DNd]8Ŏ4,A =6YC#w&żN4ߢl&:uxƇf`^??F)[F%!$/=@d*cNKi"ތՄRXLGPK -AR=hX.org/racob/test/powerpoint/PowerpointTest.classUoG&j0!@@& ) 8q1u&= vުs%g$ ʩHRO=B7AHyoyߏ~?8Eg d"A |jɫ圎Ň( -c8E#Qq:%\Rh[pYb`U{sK4+mK/[3uYX3|iF`f( mYǮ폚 1]`˗G2l?%JвNE -+XnLKdȉY5=K}35j1M=쌧}ƙv ;<~$ ƒ]3]3t5\_V[M]gj Xܬ՚1W%D=Rv&]ǖ*%n̲oݕWҙ&.HVUyV5rU}|gt Jg \3pb@4Y - ˣ?0{ |#Cشh`ukVT*S7b SBTY=1Tn0ח]ta  c@R,{LêU'l6&~a,TR.JZv"&aʼn'1x*Ϻ+y -l]!zƬKu%%E[8}8p<P)#HVfޯedBo3_-}n\/cUfGģ7êgjl`Bv_[^I鲐s ` W_% nVG9rK'QXg괚+mֽ/[|ʇ}N,H '#&3t;vc/ډmص{7B]s{yT95 ykTp)bM!C-1{6ŵh -?1Z{Nhau%4dL#&ľ1W  o%uJI7b,ڦ~ӧ~>_7J!zi$4Yl6)k%h}/$o]9' 4 )mHS1#8pS\38G?Fpq7x2*O'= >g8p?CG(~¥a;qE(-Ft/Q׎!ƚkRUlCF˚%(B7pq}px/"^ *ϡI9@D O >ZI; PK -AR=org/racob/test/safearray/PK -AR=Հ+I$1org/racob/test/safearray/SafeArrayBasicTest.classy`df1d#҄\ @b41 !"Kv6qw#/Zz^EZ5m=k֫d# -f޼7ofxQhpvt2Nn6nwFCIw؏9k}:Et?'}s=cAntcl= % -Yq=G8kӖ|"eHVn?qe#DJuf8~AOpINbOs\%'qïN/8E'䤗 -׽k,:~}o9V)N=oܛ\K䏜Ef⏿8鯜8;}uj4NS `8_,ȑ_*H7Áj#P/oRo 7FJx /:hԷ\Z;ZиXyc$ ~\Ho#Pe7  12XG;9뢑yqNI/P镆f -:$dŠ&Ղm:6-Hp}6N:m 3b&OʤrUc$aP :\'5j. W.3NrqY$ -CtPA\Vł&HG)&w4 o(5[t55IRK[cHN w7Xl51{Pds ,89xjjW\!c- Ń)J`($\Mu ҃a#7K oP:<s{7á- AǜǠOSgP({:}Ǡ d!21t .PjM,4DpcC581Y Cd <{d䉄=A^ w1[`1yb!&)8D<tC3Y~!so1 Q"JD"DXH 1G5D(gUHSA'/b8?bXjp`KO#Gzg=_7@dz{zF,c5ie:q4:gU50|w4R(ǀd F<Zp|u؏ -Qe$bjvb4krG -Bbh{}!쩃ӌ,'˙ 0iW<bH}&)j91~ &S4r{j{0iFKiZIS#W(<11Q I4 hA`a,qJ5H#㑔ZАXס֌Y,eB4q̰pIYZӨ$d+;L]*tYcZURsthnKob¼.$6!x1j,)<@Mjj Y^c14E,iNJcAlx5KPwМy+7W!d+O͓{$t4w׷כ>5/r]vF}݁͑ҥ2`Xe-fm F*Xӹnj7Mõ/HtJ ~'qf#?JdǶ.ڄ\P(9NTM3ի^UkmC,C'>RH]RJ]4o?>t+}1n2+f-T+>*(@qTn5 Ѡ&4y[-*T^-PU[Smnme{ Z~G9S\]ǡJwy ѣ'+4^G=_`I4&8!Jh*C+ O'S]**먘nzTFoQ9Gb<'W@)L -֩XTȒFo\Yy./ܝc(~ng190(NwNf{*i mS9cXUtN#/ȭ6 NgXDi<1^]^Gv^WɞU'7 )xtۋJ؋AUr5Lh-:,j|*Q-ђn&XhT-~h5C!iˇPeGW6IhIN0*A68ȡCWz94}poLppo:l$Ç(O(eJ☍:rʅ+NpU0x5\ Jl$U)Hz,$h9k:4H2$Uvɹ_ I7dL Ôt .DrDj:#f$%Gx~R2n8WlfL+0|`W.aڑ4lbO%LN͒IͤZ72)!!E#$>:7d;:|ۉ`y'Bv$IFB2FR8I(Hη;V@] jePW!VP+< мb3y$7JIF&~:MIQXSFj;V lÿmIP{>2U-^hn|r]>@ `!)#I9Hp%8ըCU4.ʡpM3f ܊{ O# Lwa w ty ";܄F l.,0rE"A~(3_$_r'^e]udxkjV_3"Z|`^1@K+x5oH`[3Ce "2? D^7'%*wYp&ʳbX3>}qͱ\"\bGKm[^w-~[֌VӌVղjN$>02(c$ʘD=W+\դu'`pO#<CGгص`>R/{ enzv6Xl͓wʹ]Deg͵8_.9_kyCtױOZOM+iՈX@ h1`>Ovx} B|_.M;,r -S+c`<Rייv4¦t`{jTGS5- EfVGt"٠|U_fuyqn+§u=q~rJd "E :1ֈ,$|h.ƌR<ZM<YpZ^=נ:5T<WnuK<60? )$ )[kE|)[ǧӭf7,un}];^wK}t".2shynp^&*s3h]nl zCJ{$6\"HLn.TF IbpFXO]b6uB)sE1B[)\VnQNwC~ك -ىZ,.)x^_q|[6Q7Q1{oxWZuP.x }oqPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classW |T̝LnB ! `XâN&H2 ->+nRvmH]>i_E\Z>UZ}O[sdݜ{Ч0|h3i1~A~g-&9y3?E W"{#> K^,Wtν:J7tx - "~#5GS톏j.ϼi/:bOeپK+K"Gě"yQѻ[2uw=:ט7;qE#]/ ?JO"g}UP?/>8./NXzqK+il#]!eׇ&JTjΟ|"ҽd;C‡,"r4\l/b^Rb+Т"F<#^6`TG[„HGxIW{s1HN}4lk -vFF|}$F(v p,^ - :wcM̲ի0Em*BFC<ڸ8ɭŎu⨭s FӨJ6FMQ4jZB~ `Ǻ8X7K P3r(S:Y'qJ'poZ$#m7#ΦECބ`Dog!FKnŁ[nM­:pIYf J!C,-ܒDĒ19f7'ov5K]9Y[[db∅k,ha>c: ,b<]pmDF)<EFi ZmXQ aꊴ;٫ئR/Υ24J(brELauqN: 1`p{q,5i*g l&b:Ͱ|i4eM'xlBG͢6]Ljۢ8dsҦyTeS5:ѶpC\6T#b>ڴڼZ_6-q ۴شpNƵ6-V@6F;BBnny"v$R̦i5ZeU%=FZ4Dl"MQ%6E:SĦ ݌n)GCxh}qMPpiLѧ_g2* 7R}%vI$wHb`;oyM<M-Ƀ9:LܲSruHW9t~ߵy]է3eu. ױshidvFz4_<je8}/'ZezLɐ\n\F<گ-yDq$ޓII6gpxoSrƹ'U*-$d[ГoUb} Q67:=Ӓ\|jz9=DX/|=oS4$Ё{5~a|rS=߯ǹ2QTޱu4(Iˏ^@!ﶸh྽CrwDԐiIWV%DОE cKr*M6'=Ċcq,t!49`?0ah9z>p{1O 'J;pzin"-eul_˽y9Pr>*\퐚-wi'pv$q csX<$kxYs<l80R892scِX9I̱9Nf̱9N s~K`sg0 xspH785389f3q.s9<kX1jX3渀9.9p:c0z渘93ǥqِogqFg̱962Ǖ̱9^/gNHl,,{TjO`xcGn}yLmR/X0rF. 9jiStqy7 -''Pޣ{.[GOvo~$>F=¢eu4ٟs1vEEɊ+\QnLP$0Q&-eꖲzK*k a6ef9igX=4u9y˹-Ubr q?]qt=S3*f+۵\Texf џЍƀ7L~{F05 5,r!vg .ɅgLTRYbNs\N=RvJf@ - Y+fVheղҟr1We+2υ8?\es\J g,U,W庖j -V5X dןUZ@i -M3;)WݘJ Gpjc#HRF٢1LA5G)\s[Kxn-mn,SJ$\bVD \A2ا^*rM(&V0Q)?؏Kl?V1O_lEYkn\F \!t!IF11,0؇J*vMͪ8&C=ϱI?0yIxxIXqj\7ZX5.;KX.\…שT*Ui*MERÝ<s"p?L@Z3jvbcrצ ~-rp9 -J,BϢfCׇ٣-X|_w75(nnΖ30[_|,/}>$P.B\GNe&Z.ԅ[hnYډN_p'lM EE:=6FWL|U=^_ mO[ok+j[m7{}>><=Ga"xR{Oi„> ?/3z%~A}~7Y=;3 ?׷v<ߎ+ %(^яU=ZoL·͛Fex˘[q1v]62=^ٸS >4G 8w3, saf9Id"\@L2kgnt3Jf'fit-1m<8w!þ֬5鈙vk<k&3/-ìwFX36lt -{XKa,W_%i~_fMGZз<ۆiJ_fikZ[{_JO;{Y[s&kydm!ſVE$Elγ?YSAڇo-@?Fw -O*<";hkcxZcXˣԊ8uxsGZܰA;KyG-<f!<9~IΓ<IqIO8ORySΓ8c O˯:?OPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classURV]ؖPM%\l(i -qBҴ5iR $%5 zˆH/Ä~@o#.e=N={i_㯷A8B= u|i 9@Ǣ ⑎ ,᱁+ZCI)5|JAjxf`XEXSZ^aCw黮F5䂿\Ym:ܬRc|[Vd2T -BQ!ێ PnNaMF*Y;=w3@Ohn-ZBʆ,TW)*tTG=\(e!m8/ -sǒjx*r:pz5:B\[  D(e ,I"p */S\#I岬Ŕ eCWQkb$qU53y{"t͗c;* 1tR"uYa6?d#~"ۋ I`Mج쎆 lgP@[2GTwQw3x ރKLXֆ-'`t @RWMViy`^,Plbs9lZN[梻s'F6ek8Z~]VVNcme:APt@YSҒFD'٩G:$C+9ksFbrV+ Xa*>-k5G}:Ag[g3>Zsrׅ% sLM@׸ce>9#|L)`>,|^8Խ6%ku3uJԮBϛS0lwL=xSG_N,lKM\.jY c&0~kb&;؛8}DǺzS?k3! AŧeˑYb?Wįs <j'+/w DiSL$}q#L&4cuEm|1rC ۟ߍğ4|ٿPK -AR=E} ,org/racob/test/safearray/SafeArrayLeak.classW tՙ~d&Ik ԆDJ i$C2f2f&,k)hMҪzZz<=zxv]۳d@~y>}7u7nƽ։:7u` h0VAB!HC؅ -hB.Ĝ1q V76Åpbix]&` {؋}-]xЅo~=A6'q#68467r@`K*g~.2˂@t6oYG4xc0&S6Gux Ϗ7Ѩk~%e* -d㍕xe< 7pmYCbI$)EBA֘  Xiη -~Ye ˷ZH>WK$4YՐ)qz]<).Y?D["+us$T4QI`k4&Ƭl $ -I^J-v81'sqqHk.ݽkaYK9'Nx8NR)n Qf*ٛ+pgpփs8yJ󅷕򅛗tƚ --Z -yM֑HYozpfO`,h31k؄0zڃN|S[-Le΃Kxrwl`k'ZٿATc*QE}:y\j x^dIU{cÃ%3.۶T s߃nx]|KB;W<x7LzpŸ֠׉<i՝%D .bLFD hds18pk,hxJ;3S< -CҔ_;YXa"76|  }xE];I]a!!kIMXwF#-hjΰkޟi.\m r0C0Gn'78S &JrF,+M 7E%՟u5C)y4ĝJF9`S#&uNRӣt4ScWo95j19ϰarϼyChd 2P4,畳C_3RZ8u -?%wغ柄07dDAt,膸lݟ36N-|z&:g\(b(Ԣ! -SDȗ.g\]HU,9.L}i^O7u`p7 c0W2UnBVwuN,_yVN0>wCiʗZ_q`qR3}tgrlͳ0A9NiWJUTkUQYYX -]v|Qs<޹]7Ct7ϟ=!<o/r.; v&}.,$0 ]b}cz}AA4&H =8H /{3LLHDv+}zҿˍ(}KrԫׅۅE٠NeƗ%|Y=X! 8FWeQe§2Ѩ2STdT)*QTLU&2峪2Lӆ27 3 3 -dA -4*H" -22:A" )[AP9 tUNVd7wKt|2jCAvk{C!9_"J<g%mu#!K;]Ň#Pbe̔k1|b1[β+ JD.x,x+ep[-[fX*br7^<c|⋲G^W-)߲K+k ~@k;-~ro0 P.i1KM8SU kwZ[,PX\7XE~ZeJW!_lߩ[< 8AuZ=:oS]حk'm KwտZ~=>RB+z!ע }:<c&]opR]lq.ZW 6Z :h1wPxœ 1u¬_3xgCO,b69\x<,`BXQ4ƻ}ove:ZC1>r -R1ebT%Sb(] -pe5_lA؁Yyb!6vch,a(/,:ϑ@UױYOEL?S]}#$3yI'4xTE;+a9mr -4l 8,sqD\ƣR"[+pJށӲ -Xgd {qAi̋ <JJ܎gN\bU{5y~a4ȣhdgϓ_$^B|Ͳ)ekM?U寰M;Z`@?씟`اϊݭأ2ɽYi8f⠚G hg>M-&Xj8V+*1UXgFUpAݏvt/]PɿA~xϪ#LӨSOAu\A@]&y7MhV?Fg07!hUf{lS-ت>& Tإaz -lp@߄k׬ Vúm6ĕ8W:`UqLגד788wލA\\nC'+>}8Iy<7$<Lee!CLh.ì"Yp+4h5+VX6r|qIQb=$Uޤxz-i&a1¤U6&]Ik:5a!aqVQZv'C K -|'z'Jze#%܎;FgPr)+i) G?;i9bxXJZ}<PSˉ*'^FGƈ~'w3”?=ZQS=Ί >j4VHj-Qy=}̹x?']m((wkPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classUSW.IuY*Ai][jڪ -$HKMXfl;}c:3}Ӈ>3mi!sw=;n~_\,T1a#ㆂ1`LEZ[RW1!rT)wdLkh59宊{*f1=TW0 輀4=n0g:5+>a۵%{io8]+W-`jYd:soKyG V@*ob*AjXORyFir,jh8%ays5@yQ@WA?.p=ɕQK0N{n-\n J^ F>0K͵+彚_&lY[Q_qu|n:(` ?ݲ!2V<ߨ:Ēt|nfLq27؝ϓ%&/咎e0[[sȪ߫=٣c:2#af|ೞ,[>U 3mj|kt–CHnLy#8:*X8̐CK:?Vy`ol/u52+CP֤䐍d0C_ګVL ta#d$VZ^1+]c^R{HT.kkl?7T;]dfVS$#s wӀap?G'S5){wE9ϵ1T^\m :mϗhGFl"J<Z\d B:oKܿhg4Z;ohO2ߗhDsжS::8?/Nxw^.]f׃kkqDB.nE6IwPƦ c#`>w - я *EZ vtDïSJP^A,TlRg|+awPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classVyWU=aJ M[Jt[]Bi@[4PڤPDC2M$Lj*KUZ.jVM9bT?/_#7HC޻{o~營l /`@1 Eq$lý8.("E%,C@NN ("$BI#""|KX~1>?ȇ8" <)bT9󔈇aE<GE<&qN>! w O xg%49^𢀗JhQ`q3Xz@e(hQ7V>e8LG+~% jCG]qů 5a UǕS./QהqnesM^iE˕sSK"R/|P@/KȰP,P*JL:J?*9* xf1Cӣh4'7Q==HLQtx ?ңLL,,타W(WO~<m<ͰC2TcWxU``p^kx]2.MBʨȠ$-os3롘Js3wp>> dp vCY:u/PXIOUM-M2> +*^#EI-'i >es -Я+\&G@fWW' %n8X<_1ȜF3J׸RVa-u*esƇpNjT}~+jjcӈ2=QV)f[? ;#M3ueGP"ׄYo) 7ȶ.'/> -0lB \s{*a9`THl Bt&DJVtTR{I6€ c }}t!(A0><8/ȣBE/8}wUEGvu;ԽH%FwO!o 3Zgp)/zŰ̙wkH#{srD8өEח^sOZI;::lz˝y\ۚ*lacA=#98haO]E`vZhf4fdBV@+6klI@@~BѠrVO8u*&צ$&QΥ\Kmq^IUz-64$!)VէPj21mQYG* )8RX֚#e6n3[ Xff\J]y >k`KʚK'JY؜dn30K5E!2uB`&Dp@"RrRp \ƞb5ͦ= $vSlkX%| VHloR>OcWy3,f*HX;Ҹ;d `+%:\D=Ѐ?/ M̎l%v걋h@; 7AvݔI';.vUMopٟ1-^~<6NSaE耛3ij"XUBy>M*xMxwt~Pj 4$W!}##3M3.)EAQZ &HHcz_PK -AR=org/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classV[lUNw3.NYZeb--R)e:;ۊxxy`bRmc>ᓉ`L^n97􇿿|axHA) ᐊ^ 㰊>G#Q 5܁ -аFV11"萜-2TV0Nd%ܖVsrxJyRP0`Ttܝ^`=` -TtZY0o:=FN^ñzJtNL8FOfMӎs)oꡬYJBHLs@_mes1rHfIf/FڵFÉnsvJ/jκX6C#m'XᦇZr]F+쒂5264\z/괏<s]gFFvC6 -8 z/u|!gEKjF:9h: -:[1K?6segedV.TYF -ៀ NkV܈{#:Գ@!<U,!0s - K" >bi x/)x9Wp*W@(1o@^Wp:7pF頙6@,[dbCf6:'kҒf,kn0Ivq6e[ VftB&s mc;b0ޓ)Ui}i0>D}geknxIDeQrcrXV{ ,j5i,xvvK.Y{3أ1Rælt7ӌ~5+n!\3$aG)vZ𝭞'4xJ(<dS=- dSOù{o^_%<g`v̶Ȼ0h2F|e'4d8\bFL˙ȋ9wy~ U.-X!sgr堙1=?U.zE)aMṵ2X͛o'!4JpC@\C 8z*4r ıJQ; qަtN Ч 84C 4# Ae6O.xH_P9. :`-g Nql܅zk?[nj޽DDQ2IՐ$ΜSt4[ qE8EzI28\2 1F]N+HN`q_c -*;GEz4eqT>2cXOr*crj&pg_!GuGld7Wkqf%U, 6iM—xpd)G˦X4qi\c/Go/^ǎG%e#6Ķ{}5H y9lg?' —؍ h&\f߿b$'b~!WW?kHB#"cX]b=vzST0ΓL*1-Ș3B\*u uEa~Fdݟ"@Kƨ=Y$K*y.}$ˤx~d0{|O2BױJnϻ9ɌoGAW\$[ΒPK -AR=C 7org/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classUmSW~nvKQlC"b[*F `" -Yam0N%NoND -NL9yy=q8I|!LՏr!I´1 Qp3ruW=?ՠg5bN+XЏ)PAI UL(XRX n -z~M˫W78A M <7CD%$J!{p F\vFhLٸ4r\'!te1\ -d[t\A^YQ.zY[2}G„LI螗RyZ@u]/ M}>d,gFWfUKs4(V e(3{66f^Yv#t<7/ وxttX'5}˾2:x\u#qgt9_aXXQ)</d,q%p~iΦĘޙ ^d[vɀkCh# 0Nf, gTO_EbR Q#Y^] yplX`l۬ߧ_,4k8w*oh巚O⇨+/m+<e{:kHz758Ïu)oFF ]! N@Ȼ!y#TJ㔌"ǯG?T6"B,+".Fe pL9pICpѓVr~6P]D )t__na`pL0(x e~9QLXfa<ױ*5O)]#<yD#KzD -ҸJ_1bzp FqV$_eS36 ZHdRR>E{ӢB[2:rV@1)?PK -AR=@> -)org/racob/test/vbscript/ScriptTest2.classV]pUn~a%4?(B)TR%ݒdfS?+0hGfgw|rttPڦS3={9=ܻ:6ᨎЧ?G:U4 x'CHĩU³Q! +||A gt*K!~T0c2J tl@*10@U"X9wPF_6+޴˼@>+khː@q++2#4GԄvLwb-qI3i\M佤]XRu,Fhf,mfS+sKIs-;KR,+Iyr^UڙU ˘p+"ȗO -ϋ3CV>g1B0^A.!O`MيRQV̗毳*f+}4in4z.8IyR寙*ئ!c mwT[C8{s (`BEp-qx$՗ W5fu\aʋSң9Qo*[7kބa[nmJv`Z6_(X܊Ջؿ5rX| 5Is\ش 4z̼T^Jv1ǾX:3u8(MvǓhtE'JؚI8|Z=)&L.-JGlG@meY˜Ǿtk٩=F0ѲkP-p*b4'Fe*O<wb.q9 /AΊXvlA]fFf.'=8Jo2^C]R6B*lItH>5,EzLKYsY,u346]{ 1nJAl[8ꔠCG'B)Y)B9 m'EpM[X%"*oӨ |nzx -5E (Hkۊ#,\go -7|mnBc|'nNqMXNφmfRil\Q]AYأE4UЈFlgŤF7T ;XaDU*>]|IWԏVζѳnZ@#v{y' <X88m˛3tp7h)"w)~6wUq ߉]FtC|d12o'f9p7Rvt'7XidUƹTG }5_SF_QHze(S0IHMphַnK%WlfPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classUmSX~n[IꊺRތv_PV(ַ4\KM:-#/HŸ7gM+T)2;&ssrooi8k1uP1&nimbR*jc*idЉ)W`VC -ЋRi*p*(*X`N0pa[W4Q lߩ -#򴗞Nmu$: -C,q.q|R~*i'izU^|G͘$з,bg]̦Af--Rr #bPܒdڰ )9;nL#(}GߟȉO_ +W㹤 ~9gUa!ZOy5Ys$ugVc 9yXQ! -Rԕ,фx{/x𽲌@u<S=۫j {}^mJg:_ԤkVPd9DNP05PqzڔXs1aFh@ -5ͫv;@#h~UBm*K~S'%P~֨3v_Ԑ7 nq+Bcd -zA6q4J g G@\к}0ئ*4v`Uț><qDv?,VQ~9"B?@y6\G I:xõqQa&GX~h2#~m(IA8}8.Z$#APGzv-6Iy2: ;y8DCRidbX/XV1N$ -0<4L`hh*RYJs 8 `02iPFCZe?P{:nX /*.2PK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classVoUv.S -KRZqR-RV RZN;ζO -!/`66jbbBHLw?MLl_l[ٽs~s޽W؍OAᘊ-)S؊~?S~i?\<W硫c-z|K:胐!u0ZfUHHIRZTԞc -m^vvcL(:Iaz:- -<6Qz9ldvOHYIt -6-ƭD䐑NN|}4QtTp -:uFp((qW%F$ݫV\7tېY6E6426vOYzx\-1c1+'"IGv&Sqr +)}iUzM c:$MAy/bm$][3& SS [Jy4l%1Gv)7n6Y^*U7gY;.: g!N4N7jR/hx/o1[5l/kxJg5s10U<.i栰 -[Zj -9jxk@Fa)]$_҉冋>68 KD%S6ʤB3" 4Hئ@yV=-$wm| -vnn]奰[´)D\2Uǚ0$vAex%aH81=2E_O˖eZ\#9f20M⥜|{QbӎH´2`NaEz¡"'e=Fپ奾rc;+ǚ[]aSre˹"/\+xÝr\cn핦rya2X!8&6᫑/ZqV,ޥrW+. UH &\gʼ8B@x*35s -iS7Z)WFq5X5 .m۳(m^ÚiD .22A,gQņ,* l\zFU$ reW4{ryNj)}w`WCPݣU -РJlCфJ/W^eP4t :7Qͱzț7P t51k 5~ZGFqt,(- L[L}I:Mw}Ou~ '~&IoNtS<<LF чFg{S{-dyތJ,QF8g-vFj=*:T:r(p|fdM!c䱏ЈO.Q[>ã*9]-rv_uk}yκ>9+5ĭCPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classV[WU J.-JS,V+ P!bN&00Lv-l}.,KwZrW4d>g}eN_~:p7"`0,cD;%cT˜wH0 2S0i )a% q; -1+]A>#q<W'PEOd|*ASpi C?oxW.&m7s5N|Ǧ"ٵ25,gFOd6P3TҰD>nJK$$m]3g4aeԲˠ<ajIItC9yh4fjVV YЖĦ}װWDv%n1imxEoL89A -:IAG Q_T\k*.KBVż,RW&QjSE<3Xg8_}c߉ŋ<a"Y-ߵMŒ`ppO O<MRJy-KT,c?쮶nbCh>_<axUƃfFLAA٧s|!ȗ****~@Cݲ.rşwi+PwDoT<gUSA}"}qI^.N{PKJ.$T|s4v1gM1|ĵ\O)~19tΤhw2\8AZx 俏! e?^:m%n?)ʥ29^'TGc z|H -t2q5cN[zRЗ}4nÊQq/oP]J!QtL"Mqk]8Z'~KX8,.!Zs Q0ѪBw ־gN;*n\FLxUt=0 <B:*"TE6HhQ]uDj;pjM4, /ond:8i, rMqg[xUjĎk'Jߞl|r_〗Nh/P~bMISփT!a:F`KU:NG1#گA A-4oU=A^%uN]ߢbN o>G D6Dz'%)dthWлO;PK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classVmWG~7l(TAъԚh\!,nv `mˇK~zN j4;w~;11O \2ъ1=\N#mS !+\5) PF `B˛LjyKM|/2R*1w &`*GcMEi`@UDn*2V|_FV"2h " -y9YnbP _jR` -83;2OV* -<]*u*q[`Ywy|W>J6%=Q-MؑW)52-OI&x* Wg˜dC%G*7iKfN]˹Fd\s #I4 ]Jh/+۹;nII/XfIY[e,ȑ`-ÀOPO,Xͤ<y۳P@z^!U uכeܕϝ7ho-|%w,⶜. GpTf~nEl{o$[A[v:rr 確k3W+~ĒC8,pp4 -Ycu^*R -le6 -5s\1|TKʎXcOʐ/k]Uv-ĵh &%'"[n7֣5iNIG o=MJxu@q5*BK;C3ׇZCk_}F Ջ -s7ϧori0KO&6v}خoNBzY.Df_ Ly -8@> άN O?0E<C-JGށ-+<Bj7ٷ,ZA;_>Cǭn[FV)9[Ǝet-Fٝ'إ9_A#k}+~ەׁ?Ntc7&1KgxhĻ`)C| 8`rw5y"B;LJ BI N@%1!?~_8%ңD&pE$'-DiÇJ~JY>}H?-8a#<NۑIH@vo1[$q:֭L b[j: PK -AR=(YHorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classU[WUNL2 vUmSjk ZpDa$@KwZ$eI{go_9SWc1U|(F`L8&"N*"="´V0 -Tb8K2/ry忬J>T@ŻJ -ah+}7x93L' Mr>4鮍*~7`ٖbxi!tLʲt^IK97<KeXQ 6icpt6xpްs2UdRg9 5|{x§MA4+,Ǧ9akS[}Ь - u)z&dmN(e=tkxSej܌=ISӰ!2?ZapQ+I:6/ -<'/X -V5!O`)ʧh丆=( ùCk)c\)/KO˝-Z_ lP_ ljwкxk+7]|Ӓ! ? ZӁcr2Ǣ +g|:zRPdK#| 4NQ7gɇ O(W]W+<u=^;P$^tJ$CwNjj{b OEtt|dV):_Qm0\m2/W}D8k "^ls*~WynRu]+$MYqky)WND/tq5XbǁMhHKD[E} 0A8V:@d1݃;hi=h:@Le{x bkś]E@;xWhm8swNZyD#ȮCyq2魓|:J AM4zeo,X i05^l&$-c9H& Jf, ->"U\zR>cD_H+fs4)-U94eA5PK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classVmsU~ni\l By X$m R@kol{@8SLȌ~+n--={syι_5|~381$O!%`g D4&33 3B11Gz`X$O1<]fm`΀-ۡԱ[9M9=y20cYt(@GT/aZ?[ޅ]E0}爼w g(]k)WZQWF*9<ߨʰbͺdKmSV1j<<t -(έ1ECH5&U5Wj5ky„d6%n2PbS_s5^(Ku -F{*_沲I+<vbH3erqG5&1dj!FtL\հ &\,&D?cM57@dBW*thqt#$wM4qS90qS|aKbGR)n4ǀ@grW:3okS՚ʭ]yqH`(kIQغrסwC\֜1OVF -,J"elΌaS+e@jg玪TerbluHN~LPpN7bl < -ɠ|3Rݗ<a[  $VHyZufJ[=?Qi B!%ʸ9N> *A?'-'?_4ԗZnX<ÜKT:pcAqvBP -@H$mw$KC-ziHNL6stGwvK ٶ9p =-lka;{ءԗw'4G{ii{sr~K۱4ӘSEEDez{8q~Zp}1P"9M^̓*Y mڿ{Dg~$hF36uC}oV[x;f -'?Ca`I25lFS1{@þI]Z^֐;`/+:lPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classV]lUnݙn-'@Y*X݅JQu;;.T|bBb l5dLĄ>ٶ`6ssιw>^fi xFó:qBɓq Z$13lˆBB8E%_qNɗj4`ІM=GCjx5024CeՑ谀 qӒ'tTPNa1zFŝdbS1WX)UH;fލ%=1DѴk.e@YʨM%#VBy[L^;-i -28}%wde-v.UdJ 4KpreF:M/eV}2SnX9fˤ> #蔆Ni@.:io>Y.g[UC6,}gMͦCږYf8k/D5YzjG^͆K/I+:kӎ4\~0RT/c<p]8Y=E3;*Ih$a 8uQUom ]l =lX|P@lQ -K)ja-1ǾT9-QO}r(+U9)}]AK6-Zگ#̰ǟLiϯio$)lM;6.Fkլ+VYNڌtF.ÃmGM@S$E7}^Y~#֨GnLb,9=;6ΣW;-EMu!_aKWfO?|> q3o)CvJ^ UUKU.D<To$T3 } -#tP7D0kF}2:BPgr߉B#4XSѯ ZS2ZI$|uBH$'&Lb]<zWWެ+tB7wj:ߪ9ERnu=v=y?z#GoD%|ͯ_{_gI9zN`'؍O׉[7٬ݡs⾢GOBa^Q}"^gnWx4"1ְ#af}X~*3>Ixs;s֟Y%45R3$]\45i8[SH7O4MUoʶ;-kgh86ej#/PK -AR=Ж1org/racob/test/vbscript/ScriptTestErrEvents.classQ]OA=ӯk[V -K$bL)OCҦ/<ͮc!&,|?xgh"!u{sx&dO`Nʾg^MjCY2ƪy"D$1X" -\$kT obmf܈T'ERF[>0!ndh! [2)ц?8U{Qy! C0QsܤHzt=8 B-<s9.D_/D  ja/c1( \;bJ+szs?foFvl9qMK,+n߲Dh:mUqBFX}vA -B OxDu# l2t,@ -a;*%j BѦ>ou#\}ۭ]/voPK -AR=org/racob/test/windowsmedia/PK -AR=-m"*org/racob/test/windowsmedia/WMPlayer.classS[OAf[, -ԂUTp411Y"<-)w%`@dϙ9|sf43Ɛ4g``70jf) Qz,q&lMaHI_Dql!Y -*ˑx^Eη]䜠 I?2&Վ1:AT#^m%jޓ~%ثy"jy"eޕP6&F{^0r/++6'M] -0N7<`Ȭ,JWq|[Aaߥ̕ҦN6q=glU{MEү.ե[$Ԏ(B=r V0 C<2,L[X4c8kb% sY=Sԉ]/{yxHC0Lxtě;BFA("02/r o`HW<N-X0޹>EC=^٤d*6f'i5p.$C 9K ${c:K7>4рE:Ⱦ5؇4h"L ,OP307R,Kihأ Fp%n&v-(PK -ZR= AMETA-INF/PK -YR=ѷ+META-INF/MANIFEST.MFPK -ZR=ِy `META-INF/JacobVersion.propertiesPK -ȉR=Aorg/PK -ɉR= -A9org/racob/PK -AR=Aaorg/racob/activeX/PK -AR=v;Ѿ -y!(org/racob/activeX/ActiveXComponent.classPK -AR=4n2.- org/racob/activeX/ActiveXDispatchEvents.classPK -AR=?,.org/racob/activeX/ActiveXInvocationProxy.classPK -AR=Aorg/racob/com/PK -AR=I /org/racob/com/ActiveXComponentFactoryTest.classPK -AR=8n_org/racob/com/Automation.classPK -ZR=[K org/racob/com/ComException.classPK -AR=..$"org/racob/com/ComFailException.classPK -ZR=32%org/racob/com/ComThread.classPK -ZR=ך[Pw)org/racob/com/Currency.classPK -AR=7X!-org/racob/com/DateUtilities.classPK -AR=:+s%0org/racob/com/DateUtilitiesTest.classPK -ZR=spm@bH4org/racob/com/Dispatch.classPK -ZR=g{ "Forg/racob/com/DispatchEvents.classPK -AR=L4M4 &Jorg/racob/com/DispatchIdentifier.classPK -AR=Yo-h)Porg/racob/com/DispatchNullProgramId.classPK -AR=+vK!Rorg/racob/com/DispatchProxy.classPK -AR=&t Torg/racob/com/DispatchTest.classPK -AR=*-Uorg/racob/com/DispatchValidDispatchTest.classPK -AR=a5!,Yorg/racob/com/Documentation.classPK -ZR=ZZh,[org/racob/com/EnumVariant.classPK -ZR=қ%y ]^org/racob/com/FuncDesc.classPK -AR=8uborg/racob/com/IUnknown.classPK -ZR=<. #forg/racob/com/InvocationProxy.classPK -ZR=ʼn8 .:jorg/racob/com/InvocationProxyAllVariants.classPK -AR=C0Sporg/racob/com/JacobDeadlockTest$TestThread.classPK -AR=G%gtorg/racob/com/JacobDeadlockTest.classPK -AR=o\"zxorg/racob/com/JacobException.classPK -AR=SW#zorg/racob/com/JacobObjectTest.classPK -AR= w$?|org/racob/com/JacobReleaseInfo.classPK -AR=ᚹq !org/racob/com/LibraryLoader.classPK -AR=nis%Vorg/racob/com/LibraryLoaderTest.classPK -ZR=Ldorg/racob/com/MainSTA.classPK -AR=EF5+org/racob/com/NotImplementedException.classPK -ZR=5h.p)org/racob/com/Parameter.classPK -ZR=OR[ԑorg/racob/com/Pointer.classPK -ZR=zM(ٓorg/racob/com/PointerWeakReference.classPK -ZR=ϦF|qorg/racob/com/ROT$1.classPK -ZR=Porg/racob/com/ROT$2.classPK -ZR=wN+ org/racob/com/ROT.classPK -AR=Q5 +vorg/racob/com/ROT2Test$ROT2TestThread.classPK -AR=d45org/racob/com/ROT2Test.classPK -AR=` -+corg/racob/com/ROT3Test$ROT3TestThread.classPK -AR=3zorg/racob/com/ROT3Test.classPK -AR=L[ org/racob/com/ROTTest.classPK -ZR=Ձ*{org/racob/com/STA.classPK -ZR==A ڽorg/racob/com/SafeArray.classPK -ZR=X#8Vorg/racob/com/TypeInfo.classPK -ZR=|QH]org/racob/com/TypeLib.classPK -ZR= -EeQorg/racob/com/VarDesc.classPK -AR=#H*3org/racob/com/Variant.classPK -AR=͉\#org/racob/com/VariantDateTest.classPK -AR=51org/racob/com/VariantTest$VariantInitTestThread.classPK -AR=g(org/racob/com/VariantTest.classPK -ZR=r  $org/racob/com/VariantUtilities.classPK -AR= DX (org/racob/com/VariantUtilitiesTest.classPK -ZR=GH3#org/racob/com/VariantViaEvent.classPK -AR=qQ]"(org/racob/com/WrongThreadException.classPK -AR=ADorg/racob/test/PK -AR=$(!qorg/racob/test/BaseTestCase.classPK -AR=A'org/racob/test/errors/PK -AR=3a9,'org/racob/test/errors/UnicodeErrorTest.classPK -AR=Ag+org/racob/test/events/PK -AR=D6+org/racob/test/events/ExcelEventTest$ExcelEvents.classPK -AR=RM<*w.org/racob/test/events/ExcelEventTest.classPK -AR=vFQ"v7org/racob/test/events/IETest.classPK -AR=D>֙G<org/racob/test/events/IETestActiveProxyThread$IEEventsActiveProxy.classPK -AR=0 u -3Corg/racob/test/events/IETestActiveProxyThread.classPK -AR=Q{.Jorg/racob/test/events/IETestActiveXProxy.classPK -AR=u^ 1Norg/racob/test/events/IETestThread$IEEvents.classPK -AR=-(Sorg/racob/test/events/IETestThread.classPK -AR=J>i4\org/racob/test/events/WordEventTest$WordEvents.classPK -AR=~ )^org/racob/test/events/WordEventTest.classPK -AR=Acorg/racob/test/excel/PK -AR=fHg 4dorg/racob/test/excel/ControllerTest$Controller.classPK -AR=mG)Iporg/racob/test/excel/ControllerTest.classPK -AR=Asorg/racob/test/powerpoint/PK -AR= i- CKsorg/racob/test/powerpoint/PowerpointTest$PowerpointTestThread.classPK -AR=hX.yorg/racob/test/powerpoint/PowerpointTest.classPK -AR=A~org/racob/test/safearray/PK -AR=Հ+I$1)org/racob/test/safearray/SafeArrayBasicTest.classPK -AR= K .0org/racob/test/safearray/SafeArrayContents.classPK -AR=وv4org/racob/test/safearray/SafeArrayDispatchTest.classPK -AR=E} ,ߟorg/racob/test/safearray/SafeArrayLeak.classPK -AR=f -!3org/racob/test/safearray/SafeArrayReleaseTest.classPK -AR=ؠ<` 0org/racob/test/safearray/SafeArrayViaExcel.classPK -AR=Aorg/racob/test/vbscript/PK -AR=ø{E (org/racob/test/vbscript/ScriptTest.classPK -AR=C 7porg/racob/test/vbscript/ScriptTest2$ScriptTestSTA.classPK -AR=@> -)korg/racob/test/vbscript/ScriptTest2.classPK -AR=bForg/racob/test/vbscript/ScriptTest2ActiveX$ScriptTest2ActiveXSTA.classPK -AR=yP 0org/racob/test/vbscript/ScriptTest2ActiveX.classPK -AR=G U:org/racob/test/vbscript/ScriptTest3$ScriptTest3Inner.classPK -AR=ˆSk)org/racob/test/vbscript/ScriptTest3.classPK -AR=(YHnorg/racob/test/vbscript/ScriptTest3ActiveX$ScriptTest3ActiveXInner.classPK -AR=@Ӈ0org/racob/test/vbscript/ScriptTest3ActiveX.classPK -AR=& -8 /org/racob/test/vbscript/ScriptTestActiveX.classPK -AR=Ж1Vorg/racob/test/vbscript/ScriptTestErrEvents.classPK -AR=A;org/racob/test/windowsmedia/PK -AR=-m"*uorg/racob/test/windowsmedia/WMPlayer.classPKjjV"*PK -"[N== win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -OR=s6win32ole/Win32oleService.class1I -) -*+ -,-. / -,01 - 23 - 4 5 - 6789: win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -Exceptions; getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java < => ?&WIN32OLE @A BC#org/jruby/ext/win32ole/RubyWIN32OLE DEjava/lang/ref/WeakReference F  GHorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionorg/racob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* - '+M+,N- Y- - %*'' !"!#$ %&" - '(PK -1R=ewin32ole/utils.rbrequire 'win32ole/win32ole_variant' - -class WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def methods_with_flag(flag) - members = [] - all_methods(typeinfo_from_ole) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & flag - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - tdocs = type_lib.get_documentation(i) - return type_lib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = WIN32OLE::VARIANT.variant_to_string(vt) || "Unknown Type #{vt}" - - type_details << type_string if type_details - - if vt == WIN32OLE::VARIANT::VT_PTR && type_details - # TODO: Add detail logic - end - - type_details ? type_details : type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -OR=+ㇰw)w)win32ole/win32ole.jarPK -<R= META-INF/PK -;R==META-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.8.1 -Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/racob.jar - -PK -1R=jruby-win32ole/PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -fnN= win32ole/PK -YN=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK -1R=v jruby-win32ole.rbrequire 'java' - -# Set location so the loader can find the native dll it needs -arch = ENV_JAVA['sun.arch.data.model'] == '32' ? 'x86' : 'x64' -java.lang.System.set_property 'jacob.dll.path', - File.dirname(__FILE__) + "/racob-#{arch}.dll" - -require 'racob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -1R= ??jruby-win32ole/version.rbmodule JRuby - module WIN32OLE - VERSION = "0.0.1" - end -end -PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -"[N=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -fnN=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -fnN='l8'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJcom/jacob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK -1R=J5 racob.jarPK -΁O= META-INF/PK -́O=KMETA-INF/MANIFEST.MFP=k07ˤNf - RI>' -d$_;]LtwlN%[1af J*a˪/x <&5{L8D;ß)&ۧmB)iuUM w5J45*{Y?9/*gt)rytdc74G?%aq@3'*XW-Ž&y@Rle]PK -́O=|w META-INF/JacobVersion.propertiesSv+Q04UO.Q0204P042422Q5050ROMQN-)JXX)8Urgr%f$OJ-҅48h2LYfIjQb H9/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -pO=y com/jacob/com/FuncDesc.class}T[sT|A4:I!VJBBmYNʗR 8Jp-x3x?a=mEQ=ww$`ަAZ ->>Wd 2u2 2M2-2M0ViVb( ̀ dЊI⬾7 Yx,^RkbIWM<D) J&%j}_+!6%'J5&sTeF Vff]) GnPů uMS48:\mz%`jy鵒{ 0*#+^2볤Zņͳxuq؇ G1r5 ҧfYGVk;‰v -OϱoþqS8dgh 3<ZBw~>=hg>rp acw];9ۺ4b ZǶjށoP'fiN~?t vVEsyuPڦKX+E(UX/!9֭.+Ap}MI!]Еխsw;~۪tHǹb[')cVOS0/Df2Öx(#0_D J;}\N/K\,< W|x U8Ŀ7g}xѪ!"ȇo-ķ}>|}a(K_7|E ȋo5B*➏ ڧx -ק_$6:6tsq) e#HHYaI)AJ$Go-pJ⣯(-`w{x} 9|dhh(hh8hX{4n{40w o'MxP͈XJ2C/B I(JNB%CȑPrtw/Ih 92ay\5tpBI6r*C,]P|laV1~dZ_l5^UPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -́O=<)t8com/jacob/com/TypeInfo.classXG|NDzC"K ,kO:U:IJ g*NIC(Myoʻ@ mJ@[ޟ?af:;|f;3;V~nab f"$+"&*׈oN "ow8roHm""g";QxWl9ΚɼP ^xS븣(0o]4Ҷ!@WŴN%#іL )_FzưIRfRԎ5)'zV+v_9?Q#$?\K˺mjxdhi%nrLS7(enjU3qh=P⩆@JI\C@irXy>CYİ)f =i/Cqc彖(gX<s*6E@0zS`z*fDIʔfʗy8bT]7_ؚ +×k1iDzU@ĠA {V(XKi{H颎%P3z42<rqxܧC-k((c6bj Եm4ľ7oFly/ko q?yCTb?{:vG@t&}7V1S3#ОяWr9n  F;ت7np@Qk_pTS -;U\9gx닥vR l6V[FkT5cf՜y5٪6<iFZiUpWmߣmIcs%PӍS.ܬznS_qRs)ƪS8*a. b`{F}XY$1hTkI1TnJ٭^ m/hr(d{ V(jrtr!p!~'rCufRۨ"_j!~lN -ކP$ahivZ(?il2rWJ7V6X~\a0z;uE$z0TW]#skv !CW^s{M޸b)W'>٢,5 BIV ps@YKNsV:MnCTh{*3*ԈTa -u" "g4\Fo*.|K RyxA*\& -|G]L28M -^ucVʱлc"PaDZn:ιʻP݃/ðo9zM'#,!?'/8>oE(L#CG ߉⻤>-wHn)HGwXwD%Zĺ|!s}R<ON:?//($ϖWWԿc>DY?s>vx)ޕ%C5ֹk|=&_[lCm =?BxJRsAIH`FSPBD T"҅H*B4u!Jua,w!JwaMy[Y>DZ; m?A؇zqqYGG_*!}0E.¸/!eU#8"qQMR"頰Sé V b <T4@/dc7+aٸhUZq='G#xL638._4~"0Q9G <9*fcelg[%V|l1؊vS=~xB -OWu!''4}hxFM});y9m/|]LSwwѵM;؞+*~ļ|^,G[=%m~~r~[F7-G6Op{uwW1ݽ??PK -uO=Y[com/jacob/com/TypeLib.classTrU=WQ&#eA 3D~ )ڰD#ϸ-ŗa"TEIU~*W!KSӧޫg tT,| I차UpW%m{hbŁC_0vWfnv* Du=:fhXW̓CIQ9H.F랱WޭǸ@7R7^ l%c;]wx޹vj58]]ۙrcm2Ø5WP{l1g۱G֠m-v~M5iG%ߟY *gx@r8n8\&Q2?R opK/HK<p<l ĩK}pH'P`WjM0 Mwa2ra x'C )%35r*S +;32km>/?u^<^GJCY +l-ȱXEJ`1Xm E5dž[ßhm߁wbѸ<toĝt8A[sϯVGlKUS"צ_M ;ūz+zU7{Lq=Bώo"z:2BTOFI*E2/Rx'wf*|xޠ 3IgKG" bֱOese^7wl+kY=Z?’es4QJ>8e:u-!7Thj|̧D/udl|`A@qLXa`llF`Gl|^%-At| P'L7Tɶ_'NXB,! p;/ۚI9\={Wf'OMM?PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -΁O= AMETA-INF/PK -́O=K+META-INF/MANIFEST.MFPK -́O=|w `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -pO=y gOcom/jacob/com/FuncDesc.classPK -4`.=mgScom/jacob/com/IUnknown.classPK -5`.= #Wcom/jacob/com/InvocationProxy.classPK -5`.=qK .>[com/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["Vacom/jacob/com/JacobException.classPK -5`.=倥v$bcom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !gcom/jacob/com/LibraryLoader.classPK -5`.=`:ocom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=ln{qcom/jacob/com/Parameter.classPK -]/=s-^Y$tcom/jacob/com/Pointer.classPK -5`.=()vcom/jacob/com/PointerWeakReference.classPK -tK=<owcom/jacob/com/ROT$1.classPK -tK=aycom/jacob/com/ROT$2.classPK -tK=e( e{com/jacob/com/ROT.classPK -zG=l])„com/jacob/com/STA.classPK -4`.=f?  com/jacob/com/SafeArray.classPK -́O=<)t8com/jacob/com/TypeInfo.classPK -uO=Y[com/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3͟com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#5com/jacob/com/VariantViaEvent.classPK -5`.=#g["(Ecom/jacob/com/WrongThreadException.classPK// PK -"[N== win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<R=fI؁win32ole/Win32oleService.class1I -) -*+ -,-. / -,01 - 23 - 4 5 - 6789: win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -Exceptions; getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java < => ?&WIN32OLE @A BC#org/jruby/ext/win32ole/RubyWIN32OLE DEjava/lang/ref/WeakReference F  GHorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptioncom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* - '+M+,N- Y- - %*'' !"!#$ %&" - '(PK -1R=ewin32ole/utils.rbrequire 'win32ole/win32ole_variant' - -class WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def methods_with_flag(flag) - members = [] - all_methods(typeinfo_from_ole) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & flag - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - tdocs = type_lib.get_documentation(i) - return type_lib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = WIN32OLE::VARIANT.variant_to_string(vt) || "Unknown Type #{vt}" - - type_details << type_string if type_details - - if vt == WIN32OLE::VARIANT::VT_PTR && type_details - # TODO: Add detail logic - end - - type_details ? type_details : type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -<R= -< ' 'win32ole/win32ole.jarPK -1R= META-INF/PK -0R==META-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.8.1 -Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/racob.jar - -PK -1R=jruby-win32ole/PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -fnN= win32ole/PK -YN=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK -1R=v jruby-win32ole.rbrequire 'java' - -# Set location so the loader can find the native dll it needs -arch = ENV_JAVA['sun.arch.data.model'] == '32' ? 'x86' : 'x64' -java.lang.System.set_property 'jacob.dll.path', - File.dirname(__FILE__) + "/racob-#{arch}.dll" - -require 'racob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -1R= ??jruby-win32ole/version.rbmodule JRuby - module WIN32OLE - VERSION = "0.0.1" - end -end -PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -"[N=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -fnN=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -fnN='l8'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJcom/jacob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK -1R=J5 racob.jarPK -΁O= META-INF/PK -́O=KMETA-INF/MANIFEST.MFP=k07ˤNf - RI>' -d$_;]LtwlN%[1af J*a˪/x <&5{L8D;ß)&ۧmB)iuUM w5J45*{Y?9/*gt)rytdc74G?%aq@3'*XW-Ž&y@Rle]PK -́O=|w META-INF/JacobVersion.propertiesSv+Q04UO.Q0204P042422Q5050ROMQN-)JXX)8Urgr%f$OJ-҅48h2LYfIjQb H9/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -pO=y com/jacob/com/FuncDesc.class}T[sT|A4:I!VJBBmYNʗR 8Jp-x3x?a=mEQ=ww$`ަAZ ->>Wd 2u2 2M2-2M0ViVb( ̀ dЊI⬾7 Yx,^RkbIWM<D) J&%j}_+!6%'J5&sTeF Vff]) GnPů uMS48:\mz%`jy鵒{ 0*#+^2볤Zņͳxuq؇ G1r5 ҧfYGVk;‰v -OϱoþqS8dgh 3<ZBw~>=hg>rp acw];9ۺ4b ZǶjށoP'fiN~?t vVEsyuPڦKX+E(UX/!9֭.+Ap}MI!]Еխsw;~۪tHǹb[')cVOS0/Df2Öx(#0_D J;}\N/K\,< W|x U8Ŀ7g}xѪ!"ȇo-ķ}>|}a(K_7|E ȋo5B*➏ ڧx -ק_$6:6tsq) e#HHYaI)AJ$Go-pJ⣯(-`w{x} 9|dhh(hh8hX{4n{40w o'MxP͈XJ2C/B I(JNB%CȑPrtw/Ih 92ay\5tpBI6r*C,]P|laV1~dZ_l5^UPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -́O=<)t8com/jacob/com/TypeInfo.classXG|NDzC"K ,kO:U:IJ g*NIC(Myoʻ@ mJ@[ޟ?af:;|f;3;V~nab f"$+"&*׈oN "ow8roHm""g";QxWl9ΚɼP ^xS븣(0o]4Ҷ!@WŴN%#іL )_FzưIRfRԎ5)'zV+v_9?Q#$?\K˺mjxdhi%nrLS7(enjU3qh=P⩆@JI\C@irXy>CYİ)f =i/Cqc彖(gX<s*6E@0zS`z*fDIʔfʗy8bT]7_ؚ +×k1iDzU@ĠA {V(XKi{H颎%P3z42<rqxܧC-k((c6bj Եm4ľ7oFly/ko q?yCTb?{:vG@t&}7V1S3#ОяWr9n  F;ت7np@Qk_pTS -;U\9gx닥vR l6V[FkT5cf՜y5٪6<iFZiUpWmߣmIcs%PӍS.ܬznS_qRs)ƪS8*a. b`{F}XY$1hTkI1TnJ٭^ m/hr(d{ V(jrtr!p!~'rCufRۨ"_j!~lN -ކP$ahivZ(?il2rWJ7V6X~\a0z;uE$z0TW]#skv !CW^s{M޸b)W'>٢,5 BIV ps@YKNsV:MnCTh{*3*ԈTa -u" "g4\Fo*.|K RyxA*\& -|G]L28M -^ucVʱлc"PaDZn:ιʻP݃/ðo9zM'#,!?'/8>oE(L#CG ߉⻤>-wHn)HGwXwD%Zĺ|!s}R<ON:?//($ϖWWԿc>DY?s>vx)ޕ%C5ֹk|=&_[lCm =?BxJRsAIH`FSPBD T"҅H*B4u!Jua,w!JwaMy[Y>DZ; m?A؇zqqYGG_*!}0E.¸/!eU#8"qQMR"頰Sé V b <T4@/dc7+aٸhUZq='G#xL638._4~"0Q9G <9*fcelg[%V|l1؊vS=~xB -OWu!''4}hxFM});y9m/|]LSwwѵM;؞+*~ļ|^,G[=%m~~r~[F7-G6Op{uwW1ݽ??PK -uO=Y[com/jacob/com/TypeLib.classTrU=WQ&#eA 3D~ )ڰD#ϸ-ŗa"TEIU~*W!KSӧޫg tT,| I차UpW%m{hbŁC_0vWfnv* Du=:fhXW̓CIQ9H.F랱WޭǸ@7R7^ l%c;]wx޹vj58]]ۙrcm2Ø5WP{l1g۱G֠m-v~M5iG%ߟY *gx@r8n8\&Q2?R opK/HK<p<l ĩK}pH'P`WjM0 Mwa2ra x'C )%35r*S +;32km>/?u^<^GJCY +l-ȱXEJ`1Xm E5dž[ßhm߁wbѸ<toĝt8A[sϯVGlKUS"צ_M ;ūz+zU7{Lq=Bώo"z:2BTOFI*E2/Rx'wf*|xޠ 3IgKG" bֱOese^7wl+kY=Z?’es4QJ>8e:u-!7Thj|̧D/udl|`A@qLXa`llF`Gl|^%-At| P'L7Tɶ_'NXB,! p;/ۚI9\={Wf'OMM?PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -΁O= AMETA-INF/PK -́O=K+META-INF/MANIFEST.MFPK -́O=|w `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -pO=y gOcom/jacob/com/FuncDesc.classPK -4`.=mgScom/jacob/com/IUnknown.classPK -5`.= #Wcom/jacob/com/InvocationProxy.classPK -5`.=qK .>[com/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["Vacom/jacob/com/JacobException.classPK -5`.=倥v$bcom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !gcom/jacob/com/LibraryLoader.classPK -5`.=`:ocom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=ln{qcom/jacob/com/Parameter.classPK -]/=s-^Y$tcom/jacob/com/Pointer.classPK -5`.=()vcom/jacob/com/PointerWeakReference.classPK -tK=<owcom/jacob/com/ROT$1.classPK -tK=aycom/jacob/com/ROT$2.classPK -tK=e( e{com/jacob/com/ROT.classPK -zG=l])„com/jacob/com/STA.classPK -4`.=f?  com/jacob/com/SafeArray.classPK -́O=<)t8com/jacob/com/TypeInfo.classPK -uO=Y[com/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3͟com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#5com/jacob/com/VariantViaEvent.classPK -5`.=#g["(Ecom/jacob/com/WrongThreadException.classPK// PK -"[N== win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -1R=ewin32ole/utils.rbrequire 'win32ole/win32ole_variant' - -class WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def methods_with_flag(flag) - members = [] - all_methods(typeinfo_from_ole) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & flag - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - tdocs = type_lib.get_documentation(i) - return type_lib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = WIN32OLE::VARIANT.variant_to_string(vt) || "Unknown Type #{vt}" - - type_details << type_string if type_details - - if vt == WIN32OLE::VARIANT::VT_PTR && type_details - # TODO: Add detail logic - end - - type_details ? type_details : type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -1R='y$$win32ole/win32ole.jarPK -fnN= META-INF/PK -enN=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -fnN= win32ole/PK -YN=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -"[N=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -fnN=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -fnN='l8'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -@ -@ -@ -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3  - -9 -  -< -8 - - - - - - - - - - - - - - -!" -@#$% -R( 3)*EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]+ ,-. / 012 34 56 7 89 :;< => ? @A BC DE FGH IJcom/jacob/com/Dispatch ^K = LM N OP Q RS TU V W XY VWjava/lang/ObjectX N YZ B[ \] java/lang/Boolean ^4 _`#org/jruby/ext/win32ole/RubyWIN32OLEa bc ^ijava/util/Date java/lang/Numberjava/lang/Double de fgjava/lang/Float hN ijjava/lang/String klm no p4 jk qr sN te uv wJ xyz {| }~  {{ M}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass; doubleValue()DnewFloat(D)Lorg/jruby/RubyFloat;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getDoublegetFloat()F getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`|,-+*,-+*,*-$. ab*,cd,mn,,}`9*abcd `4 -**/ab  -| `+* +0*+012+3Y*4+5+6 *+67+85+9*+9:;+<*+<=;*+8>?+@ *+@A*+aB #3:CJQ]dp|bef `+* +B~ YYkb~Pu@~7*+C23Y*4+D5*+E7*+F?*+G;*+H;*+IA*+Ja* - DM]foxbeft `XKM,+L*,MNa -  b ef `V$*!*OP*Q**d*a"b $`8*) -(RYSTa ' -RPK -"[N== win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -tK=f- - win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = case vt - when Variant::VariantShort then - "I2" - when Variant::VariantInt then - "I4" - when Variant::VariantFloat then - "R4" - when Variant::VariantDouble then - "R8" - when Variant::VariantCurrency then - "CY" - when Variant::VariantDate then - "DATE" - when Variant::VariantString then - "BSTR" - when Variant::VariantBoolean then - "BOOL" - when Variant::VariantVariant then - "VARIANT" - when Variant::VariantDecimal then - "DECIMAL" -# when Variant::VariantInt then -# "I1" - when Variant::VariantByte then - "UI1" -# when Variant::VariantInt then -# "UI2" -# when Variant::VariantInt then -# "UI4" - when Variant::VariantLongInt then - "I8" -# when Variant::VariantInt then -# "UI8" -# when Variant::VariantInt then -# "INT" -# when Variant::VariantInt then -# "UINT" -# when Variant::VariantInt then -# "VOID" -# when Variant::VariantInt then -# "HRESULT" - when Variant::VariantPointer then - # TODO: Add detail logic - "PTR" -# when Variant::VariantInt then -# "SAFEARRAY" -# when Variant::VariantInt then -# "CARRAY" -# when Variant::VariantInt then -# "USERDEFINED" - when Variant::VariantObject then - "UNKNOWN" - when Variant::VariantDispatch then - "DISPATCH" - when Variant::VariantError then - "ERROR" -# when Variant::VariantInt then -# "LPWSTR" -# when Variant::VariantInt then -# "LPSTR" - else - "Uknown Type #{vt}" - end - - if type_details - type_details << type_string - end - - type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -fnN=KR#R#win32ole/win32ole.jarPK -"[N= META-INF/PK -![N=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -"[N= win32ole/PK -YN=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -"[N=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -YN=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -YN=V&&)org/jruby/ext/win32ole/RubyWIN32OLE.class1p -N 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3 -8 - - - - - - - - - - - - - - -; -K 3EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java WX UV  ! " #$% &' () * +, -./ 01 2 34 56 78 9:; <=com/jacob/com/Dispatch W> = ?@ A BC D EF GH I J QR OPjava/lang/ObjectK A LM 5N OP java/lang/Boolean Q' RS#org/jruby/ext/win32ole/RubyWIN32OLET UV Wbjava/util/Date java/lang/Number WA XYjava/lang/String Z[\ ]^ _' cd `a bA c= def gh ij kl mn{{ o@}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses W STorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3NOPQR STUVWXYR *+,*Z$! %[  \] ^_ `aWbY\ *+,*-Z(* +[* \] ^_ `a UVcdY/*Z.[ \]UeY@ +*Z4[ \] fghijkY1+N*::,+- -W- Z9:>?@)A,C[> lm1\]1fg1no,^_#pqhirsYA- :* :,6+*+* ZIJKMN.Q[RA\]AfgAtuAvuAwu9xy1zP*{|h i}I~Ym,2N*Y-*ZW Y[[*\]fgv hi}IZYE*+,Z`[ \]fgvhi}IZsY\ -*+,--Zf[4 -\] -fg -tu -vu -uhiY|,,2N-*+--d,*+-,Zk m$p[*,\],fg,v #hi}IZeYG* + Z -uw[\]fghiYc,N+*-! Z -|~[*\]fguhi[s}IYw,:*-"#+ Z[4\]fguluhi[s}IsY] *+,-Z[4 \] fg tu vu wuhiY],2N*+-,Z - [*\]fgv hi}IZY%*-$: -:*,%W+ Z[>%\]%fg%%vzPRY ;- :,6* :*&: * ': -+ - Z 1[p ;\];fg;tu;vu;wu;|3xy,{|$zP R 1 -m -YB ( -Z[\]|Y5+>d)d*:6d+2"SZ ,2[>|5\]55|2| zPY4++=)*N6+,":-S-Z" &,2[>&|4\]4xy/|"zPY|,-+*,-+*,*-$. Z[*,\],fg,,vY9*Z[\] Y4 -**/Z[  -u Yl+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+Z2 #3:CJV]f[l^_l Y+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+CZ" DM]fox[^_m YXDM,+E*,FGZ [ ^_ YV$*!*HI*J**d*Z" -[ $Y8*) -(KYLMZ  -KPK -"[N== win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE -java_import org.jruby.ext.win32ole.RubyInvocationProxy - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -tK=f- - win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = case vt - when Variant::VariantShort then - "I2" - when Variant::VariantInt then - "I4" - when Variant::VariantFloat then - "R4" - when Variant::VariantDouble then - "R8" - when Variant::VariantCurrency then - "CY" - when Variant::VariantDate then - "DATE" - when Variant::VariantString then - "BSTR" - when Variant::VariantBoolean then - "BOOL" - when Variant::VariantVariant then - "VARIANT" - when Variant::VariantDecimal then - "DECIMAL" -# when Variant::VariantInt then -# "I1" - when Variant::VariantByte then - "UI1" -# when Variant::VariantInt then -# "UI2" -# when Variant::VariantInt then -# "UI4" - when Variant::VariantLongInt then - "I8" -# when Variant::VariantInt then -# "UI8" -# when Variant::VariantInt then -# "INT" -# when Variant::VariantInt then -# "UINT" -# when Variant::VariantInt then -# "VOID" -# when Variant::VariantInt then -# "HRESULT" - when Variant::VariantPointer then - # TODO: Add detail logic - "PTR" -# when Variant::VariantInt then -# "SAFEARRAY" -# when Variant::VariantInt then -# "CARRAY" -# when Variant::VariantInt then -# "USERDEFINED" - when Variant::VariantObject then - "UNKNOWN" - when Variant::VariantDispatch then - "DISPATCH" - when Variant::VariantError then - "ERROR" -# when Variant::VariantInt then -# "LPWSTR" -# when Variant::VariantInt then -# "LPSTR" - else - "Uknown Type #{vt}" - end - - if type_details - type_details << type_string - end - - type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -"[N={C!!win32ole/win32ole.jarPK -YN= META-INF/PK -YN=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -YN= win32ole/PK -YN=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -yK=ii0org/jruby/ext/win32ole/RubyInvocationProxy.class14 " # - $ %&' -* -+,-runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;x0 -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java - ./ 01,org/jruby/ext/win32ole/RubyInvocationProxy$1 InnerClasses 2 3.*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V%org/jruby/runtime/builtin/IRubyObject -getRuntime()Lorg/jruby/Ruby;Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)Vstart!  -  T**+*+  QY*,+ - % /*  /*   !) -PK -YN=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -YN=V&&)org/jruby/ext/win32ole/RubyWIN32OLE.class1p -N 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3 -8 - - - - - - - - - - - - - - -; -K 3EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java WX UV  ! " #$% &' () * +, -./ 01 2 34 56 78 9:; <=com/jacob/com/Dispatch W> = ?@ A BC D EF GH I J QR OPjava/lang/ObjectK A LM 5N OP java/lang/Boolean Q' RS#org/jruby/ext/win32ole/RubyWIN32OLET UV Wbjava/util/Date java/lang/Number WA XYjava/lang/String Z[\ ]^ _' cd `a bA c= def gh ij kl mn{{ o@}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses W STorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3NOPQR STUVWXYR *+,*Z$! %[  \] ^_ `aWbY\ *+,*-Z(* +[* \] ^_ `a UVcdY/*Z.[ \]UeY@ +*Z4[ \] fghijkY1+N*::,+- -W- Z9:>?@)A,C[> lm1\]1fg1no,^_#pqhirsYA- :* :,6+*+* ZIJKMN.Q[RA\]AfgAtuAvuAwu9xy1zP*{|h i}I~Ym,2N*Y-*ZW Y[[*\]fgv hi}IZYE*+,Z`[ \]fgvhi}IZsY\ -*+,--Zf[4 -\] -fg -tu -vu -uhiY|,,2N-*+--d,*+-,Zk m$p[*,\],fg,v #hi}IZeYG* + Z -uw[\]fghiYc,N+*-! Z -|~[*\]fguhi[s}IYw,:*-"#+ Z[4\]fguluhi[s}IsY] *+,-Z[4 \] fg tu vu wuhiY],2N*+-,Z - [*\]fgv hi}IZY%*-$: -:*,%W+ Z[>%\]%fg%%vzPRY ;- :,6* :*&: * ': -+ - Z 1[p ;\];fg;tu;vu;wu;|3xy,{|$zP R 1 -m -YB ( -Z[\]|Y5+>d)d*:6d+2"SZ ,2[>|5\]55|2| zPY4++=)*N6+,":-S-Z" &,2[>&|4\]4xy/|"zPY|,-+*,-+*,*-$. Z[*,\],fg,,vY9*Z[\] Y4 -**/Z[  -u Yl+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+Z2 #3:CJV]f[l^_l Y+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+CZ" DM]fox[^_m YXDM,+E*,FGZ [ ^_ YV$*!*HI*J**d*Z" -[ $Y8*) -(KYLMZ  -KPK -tK=^%a win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -tK=f- - win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = case vt - when Variant::VariantShort then - "I2" - when Variant::VariantInt then - "I4" - when Variant::VariantFloat then - "R4" - when Variant::VariantDouble then - "R8" - when Variant::VariantCurrency then - "CY" - when Variant::VariantDate then - "DATE" - when Variant::VariantString then - "BSTR" - when Variant::VariantBoolean then - "BOOL" - when Variant::VariantVariant then - "VARIANT" - when Variant::VariantDecimal then - "DECIMAL" -# when Variant::VariantInt then -# "I1" - when Variant::VariantByte then - "UI1" -# when Variant::VariantInt then -# "UI2" -# when Variant::VariantInt then -# "UI4" - when Variant::VariantLongInt then - "I8" -# when Variant::VariantInt then -# "UI8" -# when Variant::VariantInt then -# "INT" -# when Variant::VariantInt then -# "UINT" -# when Variant::VariantInt then -# "VOID" -# when Variant::VariantInt then -# "HRESULT" - when Variant::VariantPointer then - # TODO: Add detail logic - "PTR" -# when Variant::VariantInt then -# "SAFEARRAY" -# when Variant::VariantInt then -# "CARRAY" -# when Variant::VariantInt then -# "USERDEFINED" - when Variant::VariantObject then - "UNKNOWN" - when Variant::VariantDispatch then - "DISPATCH" - when Variant::VariantError then - "ERROR" -# when Variant::VariantInt then -# "LPWSTR" -# when Variant::VariantInt then -# "LPSTR" - else - "Uknown Type #{vt}" - end - - if type_details - type_details << type_string - end - - type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -YN=h h win32ole/win32ole.jarPK -aK= META-INF/PK -`K=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -aK= win32ole/PK -yK=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -yK=ii0org/jruby/ext/win32ole/RubyInvocationProxy.class14 " # - $ %&' -* -+,-runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;x0 -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java - ./ 01,org/jruby/ext/win32ole/RubyInvocationProxy$1 InnerClasses 2 3.*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V%org/jruby/runtime/builtin/IRubyObject -getRuntime()Lorg/jruby/Ruby;Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)Vstart!  -  T**+*+  QY*,+ - % /*  /*   !) -PK -aK=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -aK=R; ( ()org/jruby/ext/win32ole/RubyWIN32OLE.class1 -U : -: - - - - - -: - - -: - - -: - - -: - -: -:  -B -B -B -: -: - - -: - -: - -: - : : - -  -. -. -. - - -   - -7 -  - -: -: -? - - - - - - - - - - ! - " - # -$% -B&'( -R :+,EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ \]- ./0 1 234 56 78 9 :; <=> ?@ A BC DE FG HIJ KLcom/jacob/com/Dispatch ^M = NO P QR S TU VW X Y XY VWjava/lang/ObjectZ P [\] ^_java/lang/StringBuilder ^CALLING NO_ARG: `a bLc dM De fg java/lang/Boolean h6 ij#org/jruby/ext/win32ole/RubyWIN32OLEk lm ^ijava/util/Date java/lang/Number nP opjava/lang/String qrs tu v6 jk wx yP zL {|} ~   {{ O}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses Z[org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;java/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringjava/io/PrintStreamprintln>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!:UVWXY Z[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a(* +b* cd ef gh \]jk`/*a.b cd\l`@ +*a4b cd mnopqr`1+N*::,+- -W- a9:>?@)A,Cb> st1cd1mn1uv,ef#wxopyz`A- :* :,6+*+* aIJKMN.QbRAcdAmnA{|A}|A~|91W*o pI`m,2N*Y-*aW Y*cdmn} opIZ`E*+,a`b cdmn}opIZz`\ -*+,--afb4 -cd -mn -{| -}| -|op`|,,2N-*+--d,*+-,ak m$pb*,cd,mn,} #opIZl`G* + a -uwbcdmnop`c,N+*-! a -|~b*cdmn|op[sI`w,:*-"#+ ab4cdmn|s|op[sIz`] *+,-ab4 cd mn {| }| ~|op`],2N*+-,a - b*cdmn} opIZ`%*-$: -:*,%W+ ab>%cd%mn%%}WY` ;- :,6* :*&: * ': -+ - a 1bp ;cd;mn;{|;}|;~|;3,$W Y 1 -t -`B ( -abcd`5+>d)d*:6d+2"Sa ,2b>5cd552 W`4++=)*N6+,":-S-a" &,2b>&4cd4/"W`E-,-.Y/01,123+*,4+*,*-$5 a/b*EcdEmnEE}`9*abcd `4 -**6ab  -| `l+* +7*+789+:Y*;+<+= *+=>+?*+?@A+B *+BC*+a2 #3:CJV]fblefl `+* +Dk YYkkkPb@k7*+E9:Y*;+F<*+G>*+HA*+IC*+Ja" DM]foxbeft `XKM,+L*,MNa b ef `V$*!*OP*Q**d*a" b $`8*) -(RYSTa * -RPK -tK=^%a win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -tK=f- - win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = case vt - when Variant::VariantShort then - "I2" - when Variant::VariantInt then - "I4" - when Variant::VariantFloat then - "R4" - when Variant::VariantDouble then - "R8" - when Variant::VariantCurrency then - "CY" - when Variant::VariantDate then - "DATE" - when Variant::VariantString then - "BSTR" - when Variant::VariantBoolean then - "BOOL" - when Variant::VariantVariant then - "VARIANT" - when Variant::VariantDecimal then - "DECIMAL" -# when Variant::VariantInt then -# "I1" - when Variant::VariantByte then - "UI1" -# when Variant::VariantInt then -# "UI2" -# when Variant::VariantInt then -# "UI4" - when Variant::VariantLongInt then - "I8" -# when Variant::VariantInt then -# "UI8" -# when Variant::VariantInt then -# "INT" -# when Variant::VariantInt then -# "UINT" -# when Variant::VariantInt then -# "VOID" -# when Variant::VariantInt then -# "HRESULT" - when Variant::VariantPointer then - # TODO: Add detail logic - "PTR" -# when Variant::VariantInt then -# "SAFEARRAY" -# when Variant::VariantInt then -# "CARRAY" -# when Variant::VariantInt then -# "USERDEFINED" - when Variant::VariantObject then - "UNKNOWN" - when Variant::VariantDispatch then - "DISPATCH" - when Variant::VariantError then - "ERROR" -# when Variant::VariantInt then -# "LPWSTR" -# when Variant::VariantInt then -# "LPSTR" - else - "Uknown Type #{vt}" - end - - if type_details - type_details << type_string - end - - type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -aK=vnnwin32ole/win32ole.jarPK -yK= META-INF/PK -yK=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -yK= win32ole/PK -yK=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.class1G * + , - - -(. -/01 -23 -(4 567val$variantArgs[Lcom/jacob/com/Variant;val$methodNameLjava/lang/String;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()ViIcontext!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.javaEnclosingMethod8 9:     ;<= >?%org/jruby/runtime/builtin/IRubyObject@ AB CD EF,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;  >*+*,*-* N*L*=N6-**2S* +*- -W" 4:!M"4!N C !="8#$%&'() - PK -yK=ii0org/jruby/ext/win32ole/RubyInvocationProxy.class14 " # - $ %&' -* -+,-runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant; -access$000>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/Ruby;x0 -access$100U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java - ./ 01,org/jruby/ext/win32ole/RubyInvocationProxy$1 InnerClasses 2 3.*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V%org/jruby/runtime/builtin/IRubyObject -getRuntime()Lorg/jruby/Ruby;Y(Lorg/jruby/ext/win32ole/RubyInvocationProxy;[Lcom/jacob/com/Variant;Ljava/lang/String;)Vstart!  -  T**+*+  QY*,+ - % /*  /*   !) -PK -tK=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -tK=V&&)org/jruby/ext/win32ole/RubyWIN32OLE.class1p -N 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3 -8 - - - - - - - - - - - - - - -; -K 3EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java WX UV  ! " #$% &' () * +, -./ 01 2 34 56 78 9:; <=com/jacob/com/Dispatch W> = ?@ A BC D EF GH I J QR OPjava/lang/ObjectK A LM 5N OP java/lang/Boolean Q' RS#org/jruby/ext/win32ole/RubyWIN32OLET UV Wbjava/util/Date java/lang/Number WA XYjava/lang/String Z[\ ]^ _' cd `a bA c= def gh ij kl mn{{ o@}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses W STorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3NOPQR STUVWXYR *+,*Z$! %[  \] ^_ `aWbY\ *+,*-Z(* +[* \] ^_ `a UVcdY/*Z.[ \]UeY@ +*Z4[ \] fghijkY1+N*::,+- -W- Z9:>?@)A,C[> lm1\]1fg1no,^_#pqhirsYA- :* :,6+*+* ZIJKMN.Q[RA\]AfgAtuAvuAwu9xy1zP*{|h i}I~Ym,2N*Y-*ZW Y[[*\]fgv hi}IZYE*+,Z`[ \]fgvhi}IZsY\ -*+,--Zf[4 -\] -fg -tu -vu -uhiY|,,2N-*+--d,*+-,Zk m$p[*,\],fg,v #hi}IZeYG* + Z -uw[\]fghiYc,N+*-! Z -|~[*\]fguhi[s}IYw,:*-"#+ Z[4\]fguluhi[s}IsY] *+,-Z[4 \] fg tu vu wuhiY],2N*+-,Z - [*\]fgv hi}IZY%*-$: -:*,%W+ Z[>%\]%fg%%vzPRY ;- :,6* :*&: * ': -+ - Z 1[p ;\];fg;tu;vu;wu;|3xy,{|$zP R 1 -m -YB ( -Z[\]|Y5+>d)d*:6d+2"SZ ,2[>|5\]55|2| zPY4++=)*N6+,":-S-Z" &,2[>&|4\]4xy/|"zPY|,-+*,-+*,*-$. Z[*,\],fg,,vY9*Z[\] Y4 -**/Z[  -u Yl+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+Z2 #3:CJV]f[l^_l Y+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+CZ" DM]fox[^_m YXDM,+E*,FGZ [ ^_ YV$*!*HI*J**d*Z" -[ $Y8*) -(KYLMZ  -KPK -tK=^%a win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -tK=f- - win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = case vt - when Variant::VariantShort then - "I2" - when Variant::VariantInt then - "I4" - when Variant::VariantFloat then - "R4" - when Variant::VariantDouble then - "R8" - when Variant::VariantCurrency then - "CY" - when Variant::VariantDate then - "DATE" - when Variant::VariantString then - "BSTR" - when Variant::VariantBoolean then - "BOOL" - when Variant::VariantVariant then - "VARIANT" - when Variant::VariantDecimal then - "DECIMAL" -# when Variant::VariantInt then -# "I1" - when Variant::VariantByte then - "UI1" -# when Variant::VariantInt then -# "UI2" -# when Variant::VariantInt then -# "UI4" - when Variant::VariantLongInt then - "I8" -# when Variant::VariantInt then -# "UI8" -# when Variant::VariantInt then -# "INT" -# when Variant::VariantInt then -# "UINT" -# when Variant::VariantInt then -# "VOID" -# when Variant::VariantInt then -# "HRESULT" - when Variant::VariantPointer then - # TODO: Add detail logic - "PTR" -# when Variant::VariantInt then -# "SAFEARRAY" -# when Variant::VariantInt then -# "CARRAY" -# when Variant::VariantInt then -# "USERDEFINED" - when Variant::VariantObject then - "UNKNOWN" - when Variant::VariantDispatch then - "DISPATCH" - when Variant::VariantError then - "ERROR" -# when Variant::VariantInt then -# "LPWSTR" -# when Variant::VariantInt then -# "LPSTR" - else - "Uknown Type #{vt}" - end - - if type_details - type_details << type_string - end - - type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -yK=~~win32ole/win32ole.jarPK -yK= META-INF/PK -yK=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -tK=org/jruby/ext/win32ole/PK -tK= win32ole/PK -yK=O4F$$ jacob.jarPK -tK= META-INF/PK -tK=]META-INF/MANIFEST.MFP=k07) nf - RY>' -d$_9]Ltw5=q6%]1Ť!qIsIIQEXy_[Z -OBmw"VgJ uXV *MiD %jĕHiBmzUL{)!Ejj(.}F95)l u^cHaz ?ի 2 %ktt-zR/\PK -tK=Мw META-INF/JacobVersion.propertiesSQ04TO.Q0204P04224Q5050ROMQN-P04əXX)8Urgr%f$OJ-҅48h2LYfIjQb HP/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -)H=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -zG=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -֊H=/ com/jacob/com/FuncDesc.class}TRPݧM/ʝrڠQ"mbf{sD Ӧ<~:c?qCJCNgvkN?/`aB^pHC&&rՂS2Gr%\)BE @L0VMmv5?Jb$H4#06g傘*L:;bI+ E|dP5%7I)*>|KYe|$U ,%Z@mH[v R>TXȖFa&HNH9wH<q-GU}S=mYZgjìO6-;5,}Э+IY-S5`hF -V]kWz3cP5Sl'9냎~f\{FC: t>լd -Tr:Fe<c'm7N 5 - Fa "QXa$CDx:Tt~5,6X VBlA Esa#G<T?'x - N8,9Gx"w%6ٺܰؓg8MϨ [/\doE;3 }'Y_ك=aJWԝ?rlE=rܗkA\eWv;=~xSSsyO8oyqK)~zyzס^?PK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -wH=lncom/jacob/com/Parameter.classuRQOP=km  [Q&SQEcBBnTdU>hbc?'. J|mssxZQ:C>CCG.6]<CyԷ exKb>T(  -8(Er(08{r8&uJoŖ@H^xd ǹAt9'c%ÄvP%/oknG.^Ft}m[d}E9ԣtɑ 4s1e1ɩE'VR.MgiʐC= -jSLUKSʶmQrO#ExVz|w{'<Lzaa0Y `KRd p%PWENeu:R]ٙVS-C&<~'- /N(p7K)_eO@jlS&5UR2CKa ڿ@6bݱ#;d]tǾlݱ3Gw쭨;v%u炋 dbl [yu#nyH^\ʓW;Fr!O䖑lFrHv䮑<yH^SwPK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -tK=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -tK=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -tK=e( com/jacob/com/ROT.classW xTWLxy@R {H!l! YV2yL̛mvѺťZHtVܨ֭n.uZ}icwdI꧒w=sr<CXf` ^c+N٭: B܉׊4% 7 &o[nऊSmB;t܋:;]bn1{W_|>=a > j0:.DŽ<-✎ZPbq%>B>>>>'.xD&y|Aţ* X5mV#fY4CevS0X<b)U?qDQ:bcQk+R;}GLU+f-Yj"VoMqL- -W|( -PCsGSmgCznho>\MZG;bX/nŭ.5vzCQaf6)p慄 N%CVSˊ]AR<f1/cGG6SsQ%lN);X>)*DDL_a9d7qڼ`*<cN -\v)yэd2cN{3b^HT|')4,.#$oQP=˧:p:j|a7Ҥm\U6]μׂv峣`VV -?g -[°p*tpT{e7Oo4Sࠛ~ZJee9V*TJ58XsWx9 -%ۜxoE5g6{ t`ex-xޭq;mEXA55|]7 |Z7xeyW4~DXRI?Y~ ?QA5S9/w L4`_i>kj L -~gMI AoX%:oGc&x? ՛\]fc=^z#V0^Qi8 3wMvR-],P"hFX1~'GJ!3eF{ -LJ7lg_#O83k*501 XRUMÊvD&ⶈ8åެQ鋢oΤ]*37A=nVf3KC26+[ނs p -qY]6'R"Z~V{QkV{IYtZIU\6Q0W䰊ZmS6%)4ɣe3d#w^Hن%@>w@h,T+/hl7 /Sœ} O僀~B}ש)o&9u948+sj "5""K$RpD6/> -;x&Osq8^ \򘖈" bS&x]Vhd; A>j5&'9oHT8;>+bF|)/ 'nj#o)l/EgΕ ;HUY7b8_$:?G]onN-o*!=@J-G6]WdyIĵp=pMJ8o3dwË)IzCƀIqswGy5ZctO! Ø)l>+ΣHIx9W ([ujU@8F# RDx4Ҡ}ٝt:uQᄗ2D@Sp5X8Ldqbeϐ̀#IDOxfX0~A,J` JN! p´xΊsu C q>aμJJcF 疒{1 -BX8S"ue2v %4Cm,DP06Ђ(ӬE/p##Aܔit $(ű'G= -T$)aR.,7>˨ȗI*8.soUMO<juK9}驒2n,b[)y -q;<;i]̊Fi,&kE4]#?tK2ˤiF'q7 r¥bJhEpH#</MA,YH($%5,].Ju3Q]5#Xٚ!1Wva1͓En&a\5{*n*mRҖzH[%h{q%#Dd/#HGQ+*Ojpֲ6p ;zⷁldMmblfal%Rw{2!d^Wp83*\bG;7bn˽%#uOYr7PK -zG=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -\[H= com/jacob/com/TypeInfo.classWk{E>ۦI -H#PEMYfK)7Ӳ )i񂈈xPA<~ |<gLKˇ3ۜ6? p3 I|BS$$ |w$'IDCK~5I C84:LNi8;1c7b= AHii+'$A{͖63)U#}5}+$vg0-26zzPQ4ZBVոz<%I]5}&4PTL) I`#u/R.M]5؟2V ͨklFcwͨ"evOLM5+8'kߐ i̠mNiA31pFObRVK< XөɷIŞ^1ti6M}HV-pK=PjiU%4-5tUKxPJk64V4ܒݱgTtT^ O9bA6i,:HiL߻u ktwͽPdiW³U,?ci46 VzE9=3./Isa7f'*ȦU伭vtb>wKq0ƳپKy'ET#kxlV 3N oI~rjUElX7Mdsx'N8l`vy'_zR>wU mw]#6uPN gy®2P:jɾhavTT!"Ej,>I)e9m{OF3ZiˑB<7| :mi(mA͐;.õt"ďX);9JlGG^^ІecL0:/>'eK j7nOZThJf'm<Aŧ153 Ln -5z||]#.ޞUsh agAW6}?h 3Q;ZZOg0e2$F[19GHI8Jbn7~2Wd8p^.yxC -̿9=u -ǜJ»*;Pa5GqX]Ѝ/] - ^;jwsr>sx ({8^x=?oFsě~}Lw3-B[9'9 v+TP&ԓw -7n9l!pxES -pw}=x:sz]:Gٺ sN$Jѿ{X-bk[WX$P@,TX$X`,*C(i.Cs,RX$\ V_zI&d׆zp2qkpfd{ -*óPp7ͺvi#+ᮉfpdY܅؎zof;꾅0>؟A?v׼FL9 -+n n?$ > 7\G|_=9(<op<opX v|O(\ ~x`l#[ VHlO%[k= C7?1s O]ȷU,4w~vs(x Vs+],&9˒tU -K<tHwޝ']{["N.yu]Y ExtKtWHPK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -tK= AMETA-INF/PK -tK=]+META-INF/MANIFEST.MFPK -tK=Мw `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -)H=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -zG=2\h8Lcom/jacob/com/EnumVariant.classPK -֊H=/ gOcom/jacob/com/FuncDesc.classPK -4`.=mgRcom/jacob/com/IUnknown.classPK -5`.= #Vcom/jacob/com/InvocationProxy.classPK -5`.=qK .EZcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["]`com/jacob/com/JacobException.classPK -5`.=倥v$acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`: ncom/jacob/com/MainSTA.classPK -5`.=6T3+ocom/jacob/com/NotImplementedException.classPK -wH=lnpcom/jacob/com/Parameter.classPK -]/=s-^Y+scom/jacob/com/Pointer.classPK -5`.=(0ucom/jacob/com/PointerWeakReference.classPK -tK=<ovcom/jacob/com/ROT$1.classPK -tK=axcom/jacob/com/ROT$2.classPK -tK=e( lzcom/jacob/com/ROT.classPK -zG=l])Ƀcom/jacob/com/STA.classPK -4`.=f? 'com/jacob/com/SafeArray.classPK -\[H= com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Dcom/jacob/com/VariantUtilities.classPK -5`.=13#`com/jacob/com/VariantViaEvent.classPK -5`.=#g["(pcom/jacob/com/WrongThreadException.classPK// PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -yK= RR2org/jruby/ext/win32ole/RubyInvocationProxy$1.class14 " # $ % - & - ' ()*+ val$context!Lorg/jruby/runtime/ThreadContext;val$methodNameLjava/lang/String;val$args([Lorg/jruby/runtime/builtin/IRubyObject;this$0,Lorg/jruby/ext/win32ole/RubyInvocationProxy;<init>(Lorg/jruby/ext/win32ole/RubyInvocationProxy;Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lorg/jruby/ext/win32ole/RubyInvocationProxy$1;run()V -SourceFileRubyInvocationProxy.javaEnclosingMethod, -.  -   /01 23,org/jruby/ext/win32ole/RubyInvocationProxy$1java/lang/Thread*org/jruby/ext/win32ole/RubyInvocationProxyinvokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant; -access$000U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObject -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;   -  D*+*,*-** H****W -!"  ! -PK -yK=90org/jruby/ext/win32ole/RubyInvocationProxy.class1E * - + , - -./0 -123 -6 -789runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -access$000U(Lorg/jruby/ext/win32ole/RubyInvocationProxy;)Lorg/jruby/runtime/builtin/IRubyObject;x0 -SourceFileRubyInvocationProxy.java  : ;< = >?%org/jruby/runtime/builtin/IRubyObject@ AB,org/jruby/ext/win32ole/RubyInvocationProxy$1 InnerClasses C D:*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;(Lorg/jruby/ext/win32ole/RubyInvocationProxy;Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Vstart!  T**+*+ D*N,6:6*,2SY*-+ -" -3B%HDDD< ! 8"1#$%&/*  '()5 -PK -tK=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -tK=V&&)org/jruby/ext/win32ole/RubyWIN32OLE.class1p -N 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3 -8 - - - - - - - - - - - - - - -; -K 3EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java WX UV  ! " #$% &' () * +, -./ 01 2 34 56 78 9:; <=com/jacob/com/Dispatch W> = ?@ A BC D EF GH I J QR OPjava/lang/ObjectK A LM 5N OP java/lang/Boolean Q' RS#org/jruby/ext/win32ole/RubyWIN32OLET UV Wbjava/util/Date java/lang/Number WA XYjava/lang/String Z[\ ]^ _' cd `a bA c= def gh ij kl mn{{ o@}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses W STorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3NOPQR STUVWXYR *+,*Z$! %[  \] ^_ `aWbY\ *+,*-Z(* +[* \] ^_ `a UVcdY/*Z.[ \]UeY@ +*Z4[ \] fghijkY1+N*::,+- -W- Z9:>?@)A,C[> lm1\]1fg1no,^_#pqhirsYA- :* :,6+*+* ZIJKMN.Q[RA\]AfgAtuAvuAwu9xy1zP*{|h i}I~Ym,2N*Y-*ZW Y[[*\]fgv hi}IZYE*+,Z`[ \]fgvhi}IZsY\ -*+,--Zf[4 -\] -fg -tu -vu -uhiY|,,2N-*+--d,*+-,Zk m$p[*,\],fg,v #hi}IZeYG* + Z -uw[\]fghiYc,N+*-! Z -|~[*\]fguhi[s}IYw,:*-"#+ Z[4\]fguluhi[s}IsY] *+,-Z[4 \] fg tu vu wuhiY],2N*+-,Z - [*\]fgv hi}IZY%*-$: -:*,%W+ Z[>%\]%fg%%vzPRY ;- :,6* :*&: * ': -+ - Z 1[p ;\];fg;tu;vu;wu;|3xy,{|$zP R 1 -m -YB ( -Z[\]|Y5+>d)d*:6d+2"SZ ,2[>|5\]55|2| zPY4++=)*N6+,":-S-Z" &,2[>&|4\]4xy/|"zPY|,-+*,-+*,*-$. Z[*,\],fg,,vY9*Z[\] Y4 -**/Z[  -u Yl+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+Z2 #3:CJV]f[l^_l Y+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+CZ" DM]fox[^_m YXDM,+E*,FGZ [ ^_ YV$*!*HI*J**d*Z" -[ $Y8*) -(KYLMZ  -KPK -tK=^%a win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -java_import java.util.Calendar - -java_import com.jacob.com.Variant -java_import com.jacob.com.Automation -java_import com.jacob.com.ComFailException -java_import com.jacob.com.ComThread -java_import com.jacob.com.Dispatch -java_import com.jacob.com.DispatchEvents -java_import com.jacob.com.EnumVariant -java_import com.jacob.com.FuncDesc -java_import com.jacob.com.TypeInfo -java_import com.jacob.com.TypeLib -java_import com.jacob.com.VarDesc -java_import com.jacob.com.VariantUtilities - -java_import org.jruby.ext.win32ole.RubyWIN32OLE - - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_param' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -tK=f- - win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def typedesc_value(vt, type_details=nil) - type_string = case vt - when Variant::VariantShort then - "I2" - when Variant::VariantInt then - "I4" - when Variant::VariantFloat then - "R4" - when Variant::VariantDouble then - "R8" - when Variant::VariantCurrency then - "CY" - when Variant::VariantDate then - "DATE" - when Variant::VariantString then - "BSTR" - when Variant::VariantBoolean then - "BOOL" - when Variant::VariantVariant then - "VARIANT" - when Variant::VariantDecimal then - "DECIMAL" -# when Variant::VariantInt then -# "I1" - when Variant::VariantByte then - "UI1" -# when Variant::VariantInt then -# "UI2" -# when Variant::VariantInt then -# "UI4" - when Variant::VariantLongInt then - "I8" -# when Variant::VariantInt then -# "UI8" -# when Variant::VariantInt then -# "INT" -# when Variant::VariantInt then -# "UINT" -# when Variant::VariantInt then -# "VOID" -# when Variant::VariantInt then -# "HRESULT" - when Variant::VariantPointer then - # TODO: Add detail logic - "PTR" -# when Variant::VariantInt then -# "SAFEARRAY" -# when Variant::VariantInt then -# "CARRAY" -# when Variant::VariantInt then -# "USERDEFINED" - when Variant::VariantObject then - "UNKNOWN" - when Variant::VariantDispatch then - "DISPATCH" - when Variant::VariantError then - "ERROR" -# when Variant::VariantInt then -# "LPWSTR" -# when Variant::VariantInt then -# "LPSTR" - else - "Uknown Type #{vt}" - end - - if type_details - type_details << type_string - end - - type_string - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -tK=8SL - -win32ole/win32ole.jarPK -sG= META-INF/PK -sG=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -sG= win32ole/PK -sG=" LL jacob.jarPK -sG= META-INF/PK -sG=NMETA-INF/MANIFEST.MFP=o0-?vlDR"QTY+c6 K{޻JYa>g3\P'&","/ diP]Cb2}|&l%2 -!~S5|AQBɻI46*{Y?e]՗om|lztdw7ԑ7y#%aq@3'M7T?Vn?:݃ 5Y"f.[PK -sG=As<w META-INF/JacobVersion.propertiesS(Q00WO.Q0204P04225Q5050ROMQN-P04ə]ByR3l xJ3sRRKRm uf'B͍4,$(Ē PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -sG=筮 "com/jacob/com/DispatchEvents.classVkSU~$l^i xKCh`UTnP(T6ivåV:8ՙӆZf|43psygǟpw}8 LЃ)/IB۸ 惂);b{0#|ŜB{ރvC-XD7x7}XƊ'U|8)x_|CCS&fnYI-s.g2ēV&%DTHQ;c  -ng5'>жlb'ѳK I+qdXrx/muf8 lr$]; rdA77*.Ypr1esV::_:g8YGKnhYAY㄂N;U -S爮1v-:ca$3ܶ4[V6$5> Y˺蓖qNpÀX2"^k -*֡3tTڞFyZ.@AANYl)30X*p$x 3'5Ӵ`4Q$ ԤC~9Awt0xZ3s|;IDUpd*bUj:ѵq8|hԻOB -EsӴͪ'ztTǑbEu{'iSttJvQ.e.CV(ڊ[9"pkqei,7SʪR+VlDZi͠!M;%!!EvTL\l{@I9) -^C]@F/}Nz蟦V><O v.}I ~/ImR:B ށ" xwk*WI$ebo["9Dabh{}ԆC}?><oH -h -}4#O*B Dr\Sx͏8@ry?Y[ .>: qʸ.fݥJ] c{Owϰϑtp1r9+`!B~pEf - +xU=^ЕU.Ie繙Hݑʅi_QaPyc~AP_P?հqIQ9xc)\]t&`dTVv0{2@F(x,P$%'KJoIPK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -fG=I0com/jacob/com/EnumVariant.class}UsU6dVJ@D$ mZ$5!)P۵6ٍɦ> />`ԑߜqfm;3s99=w翿p _5C6c:nn(`F>mQ$O4B%K)EeYqK貆X] 4YnuwWomɬ9)P - -bp}Qߩ40|qL!D1XqFeծ-eZRE2ANCcp=Ԇ<6*Zs\߮?Shԝdìz5{lWlg"5][7k,֬Y :\:+8pt -Nf -GRȒM]dGg+m9UuˮCMs̗Mw=?i[!l]&KκklK^n7X+Swkv? %QPuꋒ嬁H+=48KX`Xm]\1poxi_a]A~%Nyͮ 8Y6IHze2PFEkCEJ k#釖] ˼#JAᄲC%UZ^kbxe| m/&w%iu]F'kPm]HOl qZ52v6Dz/B8,W'|ejYA!ʫ]Y=% yG'gkBF'#J>Izn*#x:  4FeE.ȞदEG "<g'N1t@ @vZ:G6 ;jGX">q5Sdte@i|}Oq\;0sy5&R7DOOТU&t3:_O!pwmt66i^ (TF$?L=A/D_ :9Y{5j0V$ʀ>oNt]caB$.B0 *INq|@9yj'Q 'PK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -hG=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -hG=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -hG=~M com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ]|A@Q>t/Ssܕ95YL%TL)8wH{?~qAP6a{U.trY\kZ#v؊'MYݢ/-lFVchrpzdIiXpK# tGȠ6Sb8M6]txv9>e}#G%sEܚ :rRj8"g%ˋ8KJtq4 8kzr ꔰk3dLuҔ H!c89[#pQuC[M@ ]}fK1Q$<\S H`5U^Ze/=)e(:T>Q*%4hO:iv=tT8>h0-#P\M-Ycw3d3.'|<3 ,r? -#X$tŧ:;e<OaZ< -wWy9\A8q`p+ -B^MaA*!#XY¹^lNC':Re哠@}VN sz~$,!#-\hEi6@`K n@4cj:\v*[0W)PaeTI*]W87ӃʮXT'PUQušT70  Nw4<Qs#.M?@'` -ipIc<Kcp(cXd/KSEP,D" -I*B /KRHcaT c(rnXd̕]sX? E,]rp_5?4fo6 Ľ4omVHrw-iMVT9(E=oƲpvb#(B`;(g?UXڨ5h&vZz5UF&dCȼn7q|%W -U\9$Epwnȳ%#uO]r7PK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -sG= AMETA-INF/PK -sG=N+META-INF/MANIFEST.MFPK -sG=As<w `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -sG=筮 "{;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &i@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!3Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!:Jcom/jacob/com/Documentation.classPK -fG=I08Lcom/jacob/com/EnumVariant.classPK -5`.=VӴhPcom/jacob/com/FuncDesc.classPK -4`.=mgQcom/jacob/com/IUnknown.classPK -5`.= #MVcom/jacob/com/InvocationProxy.classPK -5`.=qK .Ycom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["_com/jacob/com/JacobException.classPK -5`.=倥v$Jacom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !fcom/jacob/com/LibraryLoader.classPK -5`.=`:]mcom/jacob/com/MainSTA.classPK -5`.=6T3+Xncom/jacob/com/NotImplementedException.classPK -]/=s-^Yocom/jacob/com/Pointer.classPK -5`.=(qcom/jacob/com/PointerWeakReference.classPK -hG=<oscom/jacob/com/ROT$1.classPK -hG=aMucom/jacob/com/ROT$2.classPK -hG=~M wcom/jacob/com/ROT.classPK -5`.=l])hcom/jacob/com/STA.classPK -4`.=f? Ƃcom/jacob/com/SafeArray.classPK -4`.=%b5/@com/jacob/com/TypeInfo.classPK -5`.=YVom/jacob/com/TypeLib.classPK -5`.="e0com/jacob/com/VarDesc.classPK -F=cA*3kcom/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#Ӿcom/jacob/com/VariantViaEvent.classPK -5`.=#g["(com/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -sG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -sG=/p6:':')org/jruby/ext/win32ole/RubyWIN32OLE.class1w -P 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3 -8 - - - -  -  -  -  -  -  -  - - - - -; -K 3! 3" 3#$EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;countItimeJ<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ]^ WX% &'( ) *+, -. /0 1 23 456 78 9 :; <= >? @AB CDcom/jacob/com/Dispatch ]E = FG H IJ K LM NO P Q ST QRjava/lang/ObjectR H ST <U VW java/lang/Boolean X. YZ#org/jruby/ext/win32ole/RubyWIN32OLE[ \] ]hjava/util/Date java/lang/Number ^H _`java/lang/String abc de f. ij gh iH jD klm no pq rs tu{{ vG}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ] UV YZ [\org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3PQRST UVWXYZ[\]^_R *+,*`$! %a  bc de fg]h_\ *+,*-`*, -a* bc de fg WXij_/*`0a bcWk_@ +*`6a bc lmnopq_1+N*::,+- -W- `;<@AB)C,Ea> rs1bc1lm1tu,de#vwnoxy_A- :* :,6+*+* `KLMOP.SaRAbcAlmAz{A|{A}{9~1R*Zn oI_m,2N*Y-*`Y []a*bclm| noIZ_E*+,`ba bclm|noIZy_\ -*+,--`ha4 -bc -lm -z{ -|{ -{no_|,,2N-*+--d,*+-,`m o$ra*,bc,lm,| #noIZk_G* + ` -wyabclmno_c,N+*-! ` -~a*bclm{no[sI_w,:*-"#+ `a4bclm{r{no[sIy_] *+,-`a4 bc lm z{ |{ }{no_],2N*+-,` - a*bclm| noIZ_%*-$: -:*,%W+ `a>%bc%lm%%|RT_ ;- :,6* :*&: * ': -+ - ` 1ap ;bc;lm;z{;|{;}{;Z3~,Z$R T 1 -s -_B ( -`abcZ_5+>d)d*:6d+2"S` ,2a>Z5bc55Z2Z R_4++=)*N6+,":-S-`" &,2a>&Z4bc4~/Z"R_|,-+*,-+*,*-$. `a*,bc,lm,,|_9*`abc _4 -**/`a  -{ _l+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+`2 #3:CJV]faldel _+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+C`" DM]foxades _XDM,+E*,FG` a de _V$*!*HI*J**d*` " a $_H *) -(KYLMN O` '( -KPK -sG=sU win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.DispatchEvents -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -sG=_BBwin32ole/win32ole.jarPK -PgG= META-INF/PK -OgG=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -PgG= win32ole/PK -gG=l$9== jacob.jarPK -fG= META-INF/PK -fG= sMETA-INF/MANIFEST.MFP=o0-?v -IH2ZHlS).]:ݻ}ҚCdg8C%]1(afqJ*2br&L<& ޅ{88X͟))'LJmB(e9h7ND %rHiDm:eb&~,9/ USCM{31fFn#n;/-FJ6gO7T^lA͟h!{݂ v),$ͳ<PK -fG=n<x META-INF/JacobVersion.properties5 -0@@ᠫ)w1g%-Xi(ux{-EB y #jU]$@// r=[8uj󳥚ZMK|:YZlLyΓ$}e\1cvPK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -fG=I0com/jacob/com/EnumVariant.class}UsU6dVJ@D$ mZ$5!)P۵6ٍɦ> />`ԑߜqfm;3s99=w翿p _5C6c:nn(`F>mQ$O4B%K)EeYqK貆X] 4YnuwWomɬ9)P - -bp}Qߩ40|qL!D1XqFeծ-eZRE2ANCcp=Ԇ<6*Zs\߮?Shԝdìz5{lWlg"5][7k,֬Y :\:+8pt -Nf -GRȒM]dGg+m9UuˮCMs̗Mw=?i[!l]&KκklK^n7X+Swkv? %QPuꋒ嬁H+=48KX`Xm]\1poxi_a]A~%Nyͮ 8Y6IHze2PFEkCEJ k#釖] ˼#JAᄲC%UZ^kbxe| m/&w%iu]F'kPm]HOl qZ52v6Dz/B8,W'|ejYA!ʫ]Y=% yG'gkBF'#J>Izn*#x:  4FeE.ȞदEG "<g'N1t@ @vZ:G6 ;jGX">q5Sdte@i|}Oq\;0sy5&R7DOOТU&t3:_O!pwmt66i^ (TF$?L=A/D_ :9Y{5j0V$ʀ>oNt]caB$.B0 *INq|@9yj'Q 'PK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -fG= AMETA-INF/PK -fG= s+META-INF/MANIFEST.MFPK -fG=n<x `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A8com/jacob/PK -5`.=A`com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? >com/jacob/com/ComException.classPK -5`.=L듄,$#com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!n&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -5`.=F "|;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &]@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)zEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!'Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!.Jcom/jacob/com/Documentation.classPK -fG=I0,Lcom/jacob/com/EnumVariant.classPK -5`.=VӴhPcom/jacob/com/FuncDesc.classPK -4`.=mgQcom/jacob/com/IUnknown.classPK -5`.= #AVcom/jacob/com/InvocationProxy.classPK -5`.=qK .Ycom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["_com/jacob/com/JacobException.classPK -5`.=倥v$>acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !ecom/jacob/com/LibraryLoader.classPK -5`.=`:Qmcom/jacob/com/MainSTA.classPK -5`.=6T3+Lncom/jacob/com/NotImplementedException.classPK -]/=s-^Yocom/jacob/com/Pointer.classPK -5`.=(qcom/jacob/com/PointerWeakReference.classPK -<1=<oscom/jacob/com/ROT$1.classPK -<1=aAucom/jacob/com/ROT$2.classPK -<1=  wcom/jacob/com/ROT.classPK -5`.=l])Ycom/jacob/com/STA.classPK -4`.=f? com/jacob/com/SafeArray.classPK -4`.=%b5/1com/jacob/com/TypeInfo.classPK -5`.=YVLcom/jacob/com/TypeLib.classPK -5`.="e!com/jacob/com/VarDesc.classPK -F=cA*3\com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#ľcom/jacob/com/VariantViaEvent.classPK -5`.=#g["(Կcom/jacob/com/WrongThreadException.classPK.. uPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -PgG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -PgG=\Pg(()org/jruby/ext/win32ole/RubyWIN32OLE.class1y -P 4 -4 - - - - - -4 - - - - -4 - - -4 - - -4 - -4 -4  -< -< -< -4 -4 - -4 - -4 - -4 - 4 4 - - - -  -1 - - -4  - -4  -9 - - - - - - - - - - - - -< -K" 4# 4$ 4%&EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;countItimeJ<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant;each2ole _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ]^ WX' ()* + ,-. /0 12 3 45 678 ij 9: ;< = >? @A BC DEF GHcom/jacob/com/Dispatch ]I = JK L MN OP QR S T ST QRjava/lang/ObjectU L VW @X YZ java/lang/Boolean [0 \]#org/jruby/ext/win32ole/RubyWIN32OLE^ _` ]hjava/util/Date java/lang/Number aL bcjava/lang/String de fg h0 ij kL lH mno pq rs tu vw{{ xK}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ] UV YZ [\org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;com/jacob/com/Variant safeRelease%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String;getC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;getType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!4PQRST UVWXYZ[\]^_R *+,*`$! %a  bc de fg]h_\ *+,*-`*, -a* bc de fg WXij_/*`0a bcWk_@ +*`6a bc lmnopq_1+N*::,+- -W- `;<@AB)C,Ea> rs1bc1lm1tu,de#vwnoxq_-+N*: : - `JKOP Q%R(Ta> yX-bc-lm-tu(devwnoz{_A-:*:,6+*+* `Z[\^_.baRAbcAlmA|}A~}A}91R*Zn oI_m,2N*Y-*`h jla*bclm~ noIZ_E*+,`qa bclm~noIZ{_\ -*+,--`wa4 -bc -lm -|} -~} -}no_|,,2N-*+--d, *+-,!`| ~$a*,bc,lm,~ #noIZk_G* + ` -abclmno_c,N+*-" ` -a*bclm}no[sI_w,:*-#$+ `a4bclm}r}no[sI{_] *+,-`a4 bc lm |} ~} }no_],2N*+-, ` - a*bclm~ noIZ_%*-%: -:*,&W+ `a>%bc%lm%%~RT_ ;-:,6*:*': * (: -+ - ` 1ap ;bc;lm;|};~};};Z3,Z$R T 1 -s -_B ) -`abcZ_5+>d*d+:6d+2#S` ,2a>Z5bc55Z2Z R_4+,=*+N6+-#:-S-`" &,2a>&Z4bc4/Z"R_|,-+*,.+*,*-%/ `a*,bc,lm,,~_9*`abc _4 -*+0`a  -} _l+* +1*+123+4Y*5+6+7 *+78+9*+9:;+< *+<=*+`2 #3:CJV]faldel _+* +>k YYkkkPb@k7*+?34Y*5+ 6*+@8*+A;*+B=*+C`" DM]fox ades _XDM,+E*,FG` a de _V$*!*HI*J**d*`"a $_H +* -)KYLMN O` '(! -KPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -PgG= uQaQawin32ole/win32ole.jarPK -gG= META-INF/PK -gG=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -gG= win32ole/PK -gG=l$9== jacob.jarPK -fG= META-INF/PK -fG= sMETA-INF/MANIFEST.MFP=o0-?v -IH2ZHlS).]:ݻ}ҚCdg8C%]1(afqJ*2br&L<& ޅ{88X͟))'LJmB(e9h7ND %rHiDm:eb&~,9/ USCM{31fFn#n;/-FJ6gO7T^lA͟h!{݂ v),$ͳ<PK -fG=n<x META-INF/JacobVersion.properties5 -0@@ᠫ)w1g%-Xi(ux{-EB y #jU]$@// r=[8uj󳥚ZMK|:YZlLyΓ$}e\1cvPK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -fG=I0com/jacob/com/EnumVariant.class}UsU6dVJ@D$ mZ$5!)P۵6ٍɦ> />`ԑߜqfm;3s99=w翿p _5C6c:nn(`F>mQ$O4B%K)EeYqK貆X] 4YnuwWomɬ9)P - -bp}Qߩ40|qL!D1XqFeծ-eZRE2ANCcp=Ԇ<6*Zs\߮?Shԝdìz5{lWlg"5][7k,֬Y :\:+8pt -Nf -GRȒM]dGg+m9UuˮCMs̗Mw=?i[!l]&KκklK^n7X+Swkv? %QPuꋒ嬁H+=48KX`Xm]\1poxi_a]A~%Nyͮ 8Y6IHze2PFEkCEJ k#釖] ˼#JAᄲC%UZ^kbxe| m/&w%iu]F'kPm]HOl qZ52v6Dz/B8,W'|ejYA!ʫ]Y=% yG'gkBF'#J>Izn*#x:  4FeE.ȞदEG "<g'N1t@ @vZ:G6 ;jGX">q5Sdte@i|}Oq\;0sy5&R7DOOТU&t3:_O!pwmt66i^ (TF$?L=A/D_ :9Y{5j0V$ʀ>oNt]caB$.B0 *INq|@9yj'Q 'PK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -fG= AMETA-INF/PK -fG= s+META-INF/MANIFEST.MFPK -fG=n<x `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A8com/jacob/PK -5`.=A`com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? >com/jacob/com/ComException.classPK -5`.=L듄,$#com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!n&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -5`.=F "|;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &]@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)zEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!'Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!.Jcom/jacob/com/Documentation.classPK -fG=I0,Lcom/jacob/com/EnumVariant.classPK -5`.=VӴhPcom/jacob/com/FuncDesc.classPK -4`.=mgQcom/jacob/com/IUnknown.classPK -5`.= #AVcom/jacob/com/InvocationProxy.classPK -5`.=qK .Ycom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["_com/jacob/com/JacobException.classPK -5`.=倥v$>acom/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !ecom/jacob/com/LibraryLoader.classPK -5`.=`:Qmcom/jacob/com/MainSTA.classPK -5`.=6T3+Lncom/jacob/com/NotImplementedException.classPK -]/=s-^Yocom/jacob/com/Pointer.classPK -5`.=(qcom/jacob/com/PointerWeakReference.classPK -<1=<oscom/jacob/com/ROT$1.classPK -<1=aAucom/jacob/com/ROT$2.classPK -<1=  wcom/jacob/com/ROT.classPK -5`.=l])Ycom/jacob/com/STA.classPK -4`.=f? com/jacob/com/SafeArray.classPK -4`.=%b5/1com/jacob/com/TypeInfo.classPK -5`.=YVLcom/jacob/com/TypeLib.classPK -5`.="e!com/jacob/com/VarDesc.classPK -F=cA*3\com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#ľcom/jacob/com/VariantViaEvent.classPK -5`.=#g["(Կcom/jacob/com/WrongThreadException.classPK.. uPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -gG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -gG==q(()org/jruby/ext/win32ole/RubyWIN32OLE.class1{ -Q - - - - - - - - - - - - - - - - - - - -  -< -< -< - - - - - - - - - -  - - - -  -2 - - -   - -   -9 - - - - - - - - - - - - - -< ! -L$ % & '(EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;countItimeJ<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant;each2ole _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ^_ XY) *+, - ./0 12 34 5 67 89#org/jruby/ext/win32ole/RubyWIN32OLE l: ;< = >? @A BC DEF GHcom/jacob/com/Dispatch ^I = JK L MN O PQ RS T U TU RSjava/lang/ObjectV L WX @Y Z[ java/lang/Boolean \2 ]^_ `a ^ijava/util/Date java/lang/Number bL cdjava/lang/String efg hi j2 jk kl mL nH opq rs tu vw xy{{ zK}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ^ VW Z[ \]org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith! QRSTU VWXYZ[\]^_`R *+,*a$! %b  cd ef gh^i`\ *+,*-a*, -b* cd ef gh XYjk`/*a0b cdXl`@ +*a6b cd mnopqr`1+N*::,+- -W- a;<@AB)C,Eb> st1cd1mn1uv,ef#wxopyr`3+N*:- :+ W- aJKOP$Q+R.Tb>$zd3cd3mn3uv.ef%wxop{|`A-:*:,6+*+* aZ[\^_.bbRAcdAmnA}~A~A~91S*[o pI`m,2N*Y-*ah jlb*cdmn opIZ`E*+,aqb cdmnopIZ|`\ -*+,--awb4 -cd -mn -}~ -~ -~op`|,,2N-*+--d, *+-,!a| ~$b*,cd,mn, #opIZl`G*"+ a -bcdmnop`c,N+*-# a -b*cdmn~op[sI`w,:*-$%+ ab4cdmn~s~op[sI|`] *+,-ab4 cd mn }~ ~ ~op`],2N*+-, a - b*cdmn opIZ`%*-&: -:*,'W+ ab>%cd%mn%%SU` ;-:,6*:*(: * ): -+ - a 1bp ;cd;mn;}~;~;~;[3,[$S U 1 -t -`B * -abcd[`5+>d+d,:6d+2$Sa ,2b>[5cd55[2[ S`4+-=+,N6+.$:-S-a" &,2b>&[4cd4/["S`|,-+*,/+*,*-&0 ab*,cd,mn,,`9*abcd `4 -*,1ab  -~ `l+* +2*+234+ Y*5+6+7 *+78+9*+9:;+< *+<=*+a2 #3:CJV]fblefl `+* +>k YYkkkPb@k7*+?4 Y*5+@6*+A8*+B;*+C=*+Da" DM]fox beft `XEM,+F*,GHa b ef `V$*!*IJ*K**d*a"b $`H ,+ -*LYMNO Pa '(# -LPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -gG=L7P P win32ole/win32ole.jarPK -^G= META-INF/PK -^G=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -^G= win32ole/PK -^G=eA jacob.jarPK -]G= META-INF/PK -]G=JMETA-INF/MANIFEST.MFP=o0-?v0j!bJDRels$F_H.{>iM!3`-@nrp炒ڣر3|$l1ڻp3%lͨ%4Ճ F~)(])9MMo^aяeVD%n.}F9_5Ʃ u^cHaßkEjD$gNgi"xɋ4[PK -]G=xdy META-INF/JacobVersion.properties5̱ -0=w8pm.$FNA6 ZJW zϠq^7"JQ8@o dip G-WG55Rk|:L;tIܱcY̜nPK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -]G=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -]G= AMETA-INF/PK -]G=J+META-INF/MANIFEST.MFPK -]G=xdy `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A9com/jacob/PK -5`.=Aacom/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. -com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? ?com/jacob/com/ComException.classPK -5`.=L듄,$$com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!o&com/jacob/com/DateUtilities.classPK -]G=?bH*com/jacob/com/Dispatch.classPK -5`.=F "};com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &^@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf){Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!(Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!/Jcom/jacob/com/Documentation.classPK -q/=2\h-Lcom/jacob/com/EnumVariant.classPK -5`.=VӴh\Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Ucom/jacob/com/InvocationProxy.classPK -5`.=qK .NXcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["f^com/jacob/com/JacobException.classPK -5`.=倥v$`com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:lcom/jacob/com/MainSTA.classPK -5`.=6T3+mcom/jacob/com/NotImplementedException.classPK -]/=s-^Yncom/jacob/com/Pointer.classPK -5`.=(pcom/jacob/com/PointerWeakReference.classPK -<1=<o^rcom/jacob/com/ROT$1.classPK -<1=atcom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])com/jacob/com/STA.classPK -4`.=f? zcom/jacob/com/SafeArray.classPK -4`.=%b5/com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $kcom/jacob/com/VariantUtilities.classPK -5`.=13#com/jacob/com/VariantViaEvent.classPK -5`.=#g["(com/jacob/com/WrongThreadException.classPK.. 8PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -hZG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -hZG=/p6:':')org/jruby/ext/win32ole/RubyWIN32OLE.class1w -P 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3 -8 - - - -  -  -  -  -  -  -  - - - - -; -K 3! 3" 3#$EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;countItimeJ<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ]^ WX% &'( ) *+, -. /0 1 23 456 78 9 :; <= >? @AB CDcom/jacob/com/Dispatch ]E = FG H IJ K LM NO P Q ST QRjava/lang/ObjectR H ST <U VW java/lang/Boolean X. YZ#org/jruby/ext/win32ole/RubyWIN32OLE[ \] ]hjava/util/Date java/lang/Number ^H _`java/lang/String abc de f. ij gh iH jD klm no pq rs tu{{ vG}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ] UV YZ [\org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3PQRST UVWXYZ[\]^_R *+,*`$! %a  bc de fg]h_\ *+,*-`*, -a* bc de fg WXij_/*`0a bcWk_@ +*`6a bc lmnopq_1+N*::,+- -W- `;<@AB)C,Ea> rs1bc1lm1tu,de#vwnoxy_A- :* :,6+*+* `KLMOP.SaRAbcAlmAz{A|{A}{9~1R*Zn oI_m,2N*Y-*`Y []a*bclm| noIZ_E*+,`ba bclm|noIZy_\ -*+,--`ha4 -bc -lm -z{ -|{ -{no_|,,2N-*+--d,*+-,`m o$ra*,bc,lm,| #noIZk_G* + ` -wyabclmno_c,N+*-! ` -~a*bclm{no[sI_w,:*-"#+ `a4bclm{r{no[sIy_] *+,-`a4 bc lm z{ |{ }{no_],2N*+-,` - a*bclm| noIZ_%*-$: -:*,%W+ `a>%bc%lm%%|RT_ ;- :,6* :*&: * ': -+ - ` 1ap ;bc;lm;z{;|{;}{;Z3~,Z$R T 1 -s -_B ( -`abcZ_5+>d)d*:6d+2"S` ,2a>Z5bc55Z2Z R_4++=)*N6+,":-S-`" &,2a>&Z4bc4~/Z"R_|,-+*,-+*,*-$. `a*,bc,lm,,|_9*`abc _4 -**/`a  -{ _l+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+`2 #3:CJV]faldel _+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+C`" DM]foxades _XDM,+E*,FG` a de _V$*!*HI*J**d*` " a $_H *) -(KYLMN O` '( -KPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -^G=~Beewin32ole/win32ole.jarPK -hZG= META-INF/PK -gZG=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -hZG= win32ole/PK -hZG=qn jacob.jarPK -YG= META-INF/PK -YG=!YMETA-INF/MANIFEST.MFP=k07˥If - RI>' -d$_9]Lw}0 xFIiWH9I}EHX"\PR{;Vg`*i]cj6C|fTFAPv#I_QBɻqERrPh^!Dzn+H^~I*o Vvpq*6GG6ywCyp;An1RrG?~(/zZ>kg!۱VGг<QdPK -YG=5w META-INF/JacobVersion.propertiesS(Q00WO.Q0204P0424"]S^.CSC+ +S#gj^Ԣ<[C=C3^̜ĒT[s]IEPsc0LYfIjQb H9/PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -YG=?bHcom/jacob/com/Dispatch.class՚{`\UgGL2ISL2-m!M˰m6i ngnLMuWP*  -+K* -FZ|sEW`wW]W]X\w=}Ls?gΝ{o~V?W@;~(<K/~G~7~ >wOhSzEZ-O_x>o?/C#@oDZ--~+xG(hGz' @ B -ZpƒK|^R%~M]7й}S?'Pٕ R0 'e[ra,+ rV]X2TElmHR#]R^3T!5%eGsx<I JiJZ2+ -Tft- .ܶ@퐮Y+D:;{vCWJ6 R6^㼡kʤ -ЃbW6tmJer_ڙ)c6!Sx; c<*קR!1foT'9})qfiB1O ~O.WF#!HjZZFFBg1>Qc\_R#)9G>Ԭ6a:)㙂ˬ;HHqGO-BW'c$K`qvFex;MQhs;U.dW dz'>#ytY@S:\ewGgԌc bm"xMLɗxfAr.TqRcdpu@LIK1*3J9E"xn1)0Nyٵ!-:s8.ѝqЉly[Sí6h18;K3EC/bxIFWw̓t(fTU+y^flwF}֢6 %N-w-2t;DV!$2dw%1,AgɑBuLtr/uNfUqJXHعb]F`;[E`zFS i5;$ggA@:^C̑qękXU.=!'{0 3N a'R{[ʉ^ ', @'_XN0)&pA|u2JV/6Ь3nD.|V`x~u2{7'ۚo4ʥp2gI2?yI9>u8L ]8Jr fe}/֚I@wsm FaË2So߷06\厅b wBcτr̩|&\ߗ% )z`XyvoptYDIeb/ - I-%x:-J东)tNYFpZɬft:ELT(LGJèJ )'9GgT2Gae*''p \!Z<C X2@jH5vId>MeT].U1@Rg} jROƲgKF T&ݕ4=zDZ$'ujTVtZ.J A8%u"4-6zx/-Oő<psS Ho&Qx$ŵBWdjnķgdw:)7kR E= ]kآ -y:fzCt*F|gZxMnB*˄Ԩ!ߟetkmÛVp6 p^MwxVw}.^^ߎםwхt3LT!lMxu.'0VTlƲ -#6mU@m .CfNlϵRkpzPC A[csJ rI_(C؅J]zU6t@֫'lBTVH좱kzKqbθQ.:%zpc*}%vF` lAG4@\j\vb00Dه0ػ*D'lJ -N{ 2 +aF0*sD6PmZͳjmaf-lmħaObt]pft 4@մz$nxͬChd\& X2cb2+k1Eauff4m}͋Ze^;`ah8f/#og~ !,Wt:QJaW]ƙh4ÇaDTlEVa!1Z -[¬5Uz"4[v=3bpFIbEBa.ba((3&&()JmRۍѣ@M3<Zu,YLjVV3VPS@T 2I~<w;<]_:ظ] ˭U܊y=z?Az!HdjL-k̵2Re(e$nxZq`G :(f͛ gu8TNk1Wqqic[ھM:C Y▫yO^er? 5US8 -E Z7^$y4m0ǰoNRB?g%9CLz"戄bJP2J͠u(¥"ܛG"<EVjZ<­7C;^ڱKSѢ[@B@  5<(RBn-E#\Eوj]^f݌h1b7Cu3ąC[j2jeE43ӷ*>UmQfo9g[&_B/,efI >LTMbxiY} A7σnyngLa'*ЩW* BŅUOqzRTh&(zF=7_W1NoDQA7ו&av'DELNRFAOmŀ?3u!!š[0ڢIY z+i.4q&đ8RGjbHOPO2ڇ14T%A_kK8b#8b#8b#"ݍ5 ~Zl vY!cTAL5ȑ8rGnm#q6Lk`ͧcǰ?;|y+\Ƞ .cD5].tp: ܅Bw\XP2 -F@ qM,R4ٽ^ooe?B()(M*76QPS(h E?a5E,`. -> DAaQ3Q0R6 -Ec6QPC:(Y(C4!>DA Q02(hB "& -jQ+«6QPsa5lC5}DČ*ExnNRRLR(UR6RZߔY1$BnQ\Z2: LS3!ZCckqe؋F75!}NK9_#kJ#Gsy=7v.:զ[8R;rв=paa"R}8(\:aJ7=`I6=B|zxQxYg4giދ4{Fx+3'+<q ☥nLʷQnrcqsQaq"c%&9'ES)RBc'Ls򸉨I)&,>d_b-5q9ˌ#R֯%8Cxyޓ"<v1EVQ8i`O015a!vV KrZ0xRɩ \b ֈ__%R4bό$E .I5پmwA~Ήjf) Ii *m"|iH`D8 i6"7,#mjr<ga81OjUֻ8Cv"<e!環0oB̛1Br -"|2B=i5aF܇%q-́#,B;NZMkQsv9~;o<2 ?v>-|$~{I]d40QZp#$hYZߚ^F퇩|-_®u%}VĠeJWPUzFVbiZ棰>=>2;/]g+*% {ďUE8?m"ӁNwPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -YG= AMETA-INF/PK -YG=!Y+META-INF/MANIFEST.MFPK -YG=5w _META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A6com/jacob/PK -5`.=A^com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_ com/jacob/com/Automation.classPK -5`.=_5? <com/jacob/com/ComException.classPK -5`.=L듄,$!com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!l&com/jacob/com/DateUtilities.classPK -YG=?bH*com/jacob/com/Dispatch.classPK -5`.=F "z;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &[@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)xEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!%Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!,Jcom/jacob/com/Documentation.classPK -q/=2\h*Lcom/jacob/com/EnumVariant.classPK -5`.=VӴhYOcom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Ucom/jacob/com/InvocationProxy.classPK -5`.=qK .KXcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["c^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:lcom/jacob/com/MainSTA.classPK -5`.=6T3+ mcom/jacob/com/NotImplementedException.classPK -]/=s-^Yncom/jacob/com/Pointer.classPK -5`.=(pcom/jacob/com/PointerWeakReference.classPK -<1=<o[rcom/jacob/com/ROT$1.classPK -<1=atcom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])com/jacob/com/STA.classPK -4`.=f? wcom/jacob/com/SafeArray.classPK -4`.=%b5/com/jacob/com/TypeInfo.classPK -5`.=YV com/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $hcom/jacob/com/VariantUtilities.classPK -5`.=13#com/jacob/com/VariantViaEvent.classPK -5`.=#g["(com/jacob/com/WrongThreadException.classPK.. 5PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -hZG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -hZG=/p6:':')org/jruby/ext/win32ole/RubyWIN32OLE.class1w -P 3 -3 - - - - - -3 - - -3 - - -3 - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -  -0 - - -3 -3 -8 - - - -  -  -  -  -  -  -  - - - - -; -K 3! 3" 3#$EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;countItimeJ<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;dispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType returnValue makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ]^ WX% &'( ) *+, -. /0 1 23 456 78 9 :; <= >? @AB CDcom/jacob/com/Dispatch ]E = FG H IJ K LM NO P Q ST QRjava/lang/ObjectR H ST <U VW java/lang/Boolean X. YZ#org/jruby/ext/win32ole/RubyWIN32OLE[ \] ]hjava/util/Date java/lang/Number ^H _`java/lang/String abc de f. ij gh iH jD klm no pq rs tu{{ vG}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ] UV YZ [\org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)JcallO-(Lcom/jacob/com/Dispatch;I)Ljava/lang/Object;callD(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3PQRST UVWXYZ[\]^_R *+,*`$! %a  bc de fg]h_\ *+,*-`*, -a* bc de fg WXij_/*`0a bcWk_@ +*`6a bc lmnopq_1+N*::,+- -W- `;<@AB)C,Ea> rs1bc1lm1tu,de#vwnoxy_A- :* :,6+*+* `KLMOP.SaRAbcAlmAz{A|{A}{9~1R*Zn oI_m,2N*Y-*`Y []a*bclm| noIZ_E*+,`ba bclm|noIZy_\ -*+,--`ha4 -bc -lm -z{ -|{ -{no_|,,2N-*+--d,*+-,`m o$ra*,bc,lm,| #noIZk_G* + ` -wyabclmno_c,N+*-! ` -~a*bclm{no[sI_w,:*-"#+ `a4bclm{r{no[sIy_] *+,-`a4 bc lm z{ |{ }{no_],2N*+-,` - a*bclm| noIZ_%*-$: -:*,%W+ `a>%bc%lm%%|RT_ ;- :,6* :*&: * ': -+ - ` 1ap ;bc;lm;z{;|{;}{;Z3~,Z$R T 1 -s -_B ( -`abcZ_5+>d)d*:6d+2"S` ,2a>Z5bc55Z2Z R_4++=)*N6+,":-S-`" &,2a>&Z4bc4~/Z"R_|,-+*,-+*,*-$. `a*,bc,lm,,|_9*`abc _4 -**/`a  -{ _l+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+`2 #3:CJV]faldel _+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+C`" DM]foxades _XDM,+E*,FG` a de _V$*!*HI*J**d*` " a $_H *) -(KYLMN O` '( -KPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -hZG=C}f}fwin32ole/win32ole.jarPK -9UG= META-INF/PK -8UG=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -9UG= win32ole/PK -9UG=  jacob.jarPK -2UG= META-INF/PK -1UG=.NMETA-INF/MANIFEST.MFP=k07Gf - RI>' -d$_;]BtwN.%{`Q +TU–ſ3L<'5[L8D;ß))'ۧmB)uU9?2^D %jv֨4>lgPTM sT_ -2't9\Rޑ_$ v>;L쇱]Ϩ:`1~x܂?&ۀw v1k ,RZ/oPK -2UG=Lx META-INF/JacobVersion.properties5̱ -0=w8j]Y t.90PĴol|`#w`"O r=[NjˣZMkC,-6$ܡCY̒ٲVoPK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -2UG=Hu&Gcom/jacob/com/Dispatch.class՚{`ŝ]=Ȏ-[Dmc#!bqcq0FZ -d$ىC&= -#= I@q^ZZWΎP?ߞ,@ v ?;~wiE?^~ -^7Z{?v~~^!/y?}_~gN{4-)үh^ m6~ZZh!Bx%%B]=];{z:ع}{W#PڑIR:/e[-r~$f9O.nW"6y|(1vKr{t.ONJƲ4Kv&U))=7M(s՝};۷m%P9ֳkcح}[[W;ό-3VZMyvAtӳ>N7 ĎLw%r.9'Jɔ1R)l/H2ܘb f[\^Nl޼y4 TųclnI@KPͰo>;*LWc|r()g T3 8M׌X:/g$ -+.I|e}]Е1XRo]îX"^eN %X/sLg n"bI#̞ǙqܓFkHf8_ctfxfAv.q,RqwDLH[12=Y5AjXn3*0uٳ)% 'ڳ8/љyʉlq6[Sg­ie,bqu΄+ 8>Ms1'鮋mVJ$40 *6rlflwZҢf %N--t:DVA$2hw32bFV6# V4&RC[tIɸ3, ;35~A^B {-/,Plgxg]J>G0zhӐ'GͰ}-Dw7  *'LO \(jT[=b&yӼe>&@#4ky`t>)s9?ņQM;rvɳlX2 %qM_S,Sww6?I@7#@ $GI-k(5S0K=Mlc0M^xS(q(5 WP^`8/)-dG{O͌g$}XI]Lp5#WB?Y;4@@R)yXJgGtso\Sl ׫ DFEә|T^x*dR:*'9cTE蘔F弜Hfo[D4җɬ#:YH%,F)}QMrdZe2 ,3y֛έ:~#d$'D4I=<NbٳԝFR2$9WI$g.E'|vP'2@H(Y>%Ÿ=iq"lwκK]~Ń->Hr8 .x7-nU#\uʛVk۞9ك{pTW1u&+O!GwPO_W}R*iZ=/b{>mBT!חarlqXnK -ka6k1}ۗW`}.Q3~*m2܎}q?cم؟P) p=قe?;lZmtc+J,A!t7v:n (qCkƦ)Pz -|)?MEb9CAa5܈.J -J*Phm:NvvyϋC qh.?:к74=Є"ʥ9PzXRxa)z8l (B 2>a@#`~ - Jq(CŏQVIRnvRF]eH]V[@3;F׭jmaf-lmƻTX.ݯxbt]q!ft 76ii1#axʹru2a.aQH2UJpqSe? FEeRYǡ0"4g!aRqץ`)^vxOA@0<KLDVTi21(%~^e!-o aw3 KwԂHPK(bW7s0 C^Yi65AM`MTj{p^jAЪ%T`ʰhUP"TP@hE5 ,3 -dwqydqo,ҿRqɳb޲.0:ԍ@lTrJ.S q-e":eFQFF?;L?_Ո#>w޺ep\OGB94Fsg=8TmL "h3o3 rr\{/ITL2KMo4_J$|l޷?jOIRB?ˍGP9ON&^"戄bJP2JM ]<p&QǣG AJMGxfHx^PvJ -"Z .Tp -RC@"*(5-QR4EM-6E?f[2F^:P% q>Mwӌ2Gih4MhfL~c P? 走{BnOL>~?g -PjUĕ*..AQiT*\'&(z-拿ɣpE+Q \ -[/~M4Di0DEL6ARFOmŰ  -~ Q Q@k5Bs7 m\,ia*DZ u#q:TǑ}J -w>lRMS5C7 {@vqj#6q&8bGlbv/ּ -# -<@3؁rOg܋} -Ȃ9r3Gn#73dZk>~4g/tp #BRqaH5]h.qڸ m܅6Bw\ZQ0rшCļM<DtjA(&BﶉG/> -~2 -FfGAT9h5(Y(&C(z& -jgm#vQdMQЄ'# (!M|2 -FM#WlxnQsQ02(hB"& -j2 -FFA DAͅg7`j3%Lɘ] xܺUÁkxخ8G-"VJQ mz 2},sxbMiNFiMKWxRӕ*JMW0<AOM(\W=ͨybXBXZj9_-O(jZP<SL{/j{hoF.:զiV(N#fSL*B,yg+oP%閇9#L<ėG/fC<= O2 5LFېv u EgAP<e|*FyRLQSUY$>}صv ChatssNB y2T, 5)@NE"Z/03&&P˰Dx|!gnɨ;]X&8O iĈ> !5a^«oR(<&;|,S#XVoHrZg_:rt֊ j%R6bFf-gHR v]jm_9'x2RUը]gLsEDU'-EHå&XgF!t< +xjšD}\ueKj<Q<&e{jӍx/Fސĵ_cbqj;O@8rV[9~+o<2uw#-(4f[ gu}l5_@ߴ1o,~hP#Dv/-"-S-Zi#<Ҵdf'wfo}% -fI 4OA3&~9~ME[PK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -2UG= AMETA-INF/PK -1UG=.N+META-INF/MANIFEST.MFPK -2UG=Lx `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A8com/jacob/PK -5`.=A`com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? >com/jacob/com/ComException.classPK -5`.=L듄,$#com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!n&com/jacob/com/DateUtilities.classPK -2UG=Hu&G*com/jacob/com/Dispatch.classPK -5`.=F "c;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &D@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)aEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Hcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hLcom/jacob/com/EnumVariant.classPK -5`.=VӴhBOcom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .4Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["L^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Yqncom/jacob/com/Pointer.classPK -5`.=(vpcom/jacob/com/PointerWeakReference.classPK -<1=<oDrcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])com/jacob/com/STA.classPK -4`.=f? `com/jacob/com/SafeArray.classPK -4`.=%b5/ڊcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="eʕcom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Qcom/jacob/com/VariantUtilities.classPK -5`.=13#mcom/jacob/com/VariantViaEvent.classPK -5`.=#g["(}com/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -9UG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -9UG=P s's')org/jruby/ext/win32ole/RubyWIN32OLE.class1x -P 3 -3 - - - - - -3 - - -3 - - - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -3 -  -0 - - -3 -3 -8 - -  - - - - - - - - - - - - -; -K! 3" 3# 3$%EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;countItimeJ<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ]^ WX& '() * +,- ./ 01 2 34 567 89 : ;< => =? @AB CDcom/jacob/com/Dispatch ]E = FG H IJ K LM NO P Q ST QRjava/lang/ObjectR H ST UV WX java/lang/Boolean Y/ Z[#org/jruby/ext/win32ole/RubyWIN32OLE\ ]^ ]hjava/util/Date java/lang/Number _H `ajava/lang/String bcd ef g/ ij hi jH kD lmn op qr st uv{{ wG}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ] UV YZ [\org/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callO>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3PQRST UVWXYZ[\]^_R *+,*`$! %a  bc de fg]h_\ *+,*-`*, -a* bc de fg WXij_/*`0a bcWk_@ +*`6a bc lmnopq_1+N*::,+- -W- `;<@AB)C,Ea> rs1bc1lm1tu,de#vwnoxy_ B- :* :,6*:*:+ `KLMPQ+S8Uaf -(zsBbcBlmB{|B}|B~|:2R+Z8 -zsn oI_m,2N*Y-*`Z \^a*bclm} noIZ_E*+,`ca bclm}noIZy_\ -*+,--`ia4 -bc -lm -{| -}| -|no_|,,2N-*+--d,*+-,`n p$sa*,bc,lm,} #noIZk_G*+ ` -xzabclmno_c,N+*- ` -a*bclm|no[sI_w,:*-!"+ `a4bclm|r|no[sIy_] *+,-`a4 bc lm {| }| ~|no_],2N*+-,` - a*bclm} noIZ_%*-#: -:*,$W+ `a>%bc%lm%%}RT_ ;- :,6* :*%: * &: -+ - ` 1ap ;bc;lm;{|;}|;~|;Z3,Z$R T 1 -zs -_B ' -`abcZ_5+>d(d):6d+2!S` ,2a>Z5bc55Z2Z R_4+*=()N6++!:-S-`" &,2a>&Z4bc4/Z"R_0-+*,,-*,*-#.:+ `&a40bc0lm00}& -s_9*`abc _4 -*)/`a  -| _l+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+`2 #3:CJV]faldel _+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+C`" DM]foxades _XDM,+E*,FG` a de _V$*!*HI*J**d*`  "a $_H )( -'KYLMN O` '( -KPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -9UG=vsswin32ole/win32ole.jarPK -QG= META-INF/PK -QG=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -QG= win32ole/PK -PG=4 jacob.jarPK -F= META-INF/PK -F=3*META-INF/MANIFEST.MFP=o0-?v0miH2HlS).]:ݻ}ҚCdG8 %]1(af J*2bxrJS+<& ޅ[8Y))'ǻ}B(e9h7ND %rHaDm:eb&/9/ USCM{#.1fsFﮨ#n;-FJv6gO7T^+2P'ZxISp5::H@lm,PK -F=pox META-INF/JacobVersion.properties5̱ -0=w8pm.MB 8ٽ..4W=8ܞ45xC"JQzހ,⭆zR^q]ZI10fnѩb'wE>9;[PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -F=h|Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f 5a'7ҵ KF8[_ZhmnАme%$xn]=a]W~{=7qs<~:{tPVw* -ߧ?A~??c_ ]|j/P"W?_s>x/KM+)j?|*}F/%}k?B ^T*^eyYc>1?={wnڵw} XAUO6/ș9=xePI)dA)PՃ-jU>Xݦ Q$ʾ>yTJɧ - AX.;GIu򊴜^_ȥ2kTm޵K{{vuoϠ~{DvtowwnLdGW+CΥ\㢣g'Y~a**EZ` dHwTFݭi 96R*h\ʏɅ*ZN]Nv\q/ȉk6cy$xAC"%FB铵5 +1QkcB_RC)%Ǡ1լ1_i:&㙂鋥v\MeqWwU+c1eU]#W%˦JBI^Е4A1Ld,pa$ڞ 8#JR7C[Q6gk+-T656^E&?m.rij -Z P-\sHC݉1!gnED|K]q͸SrCtAiy4ѝyǏ%ndKv9:n=t.S(&Wt*Ћ']>9C1q8ht08H.nP` M%QJ׌`{(t;2ڭ6c(qky(ԕ :Ot,";-nZFʪjfr%Q 3Xfůg4<r;32N˹sMg*H gp׼t۝#] qĝk0p%~qEguw!q>٘qcx ?Rno>npV<:? ?6_8ŴrWQRl턋sA:2JmvЬI1tQ`F-`%͎+3RIXϙ5;J:˴:L$UߊLű$l_lZ{%;J=Mlc0M ^xK(|8pʡbw|/.ܗȃו1}4?ώҥR.? |,dUyۧ2,sJл/i|6[5%dVG3BTNPhf<fsQ9UF -Ѽ1*rtLɣJAV-k4Qz) \a'ϰ \ WAݖ sX5șwd>Me4].U'#jX- rA1"n$OFxKF T&ݛ*$9K}B|t, )Iz2T -ACA8 -X]ճ ` jK" T| 3j.76P |?! aᏨ`.8S߰-\˅5^NNM}=^ME{E.z'SI6JiuE4֋T ՖC~ ˯lsX^* a8V.g\7߅5~v=Qf ?4j ?/g,7bBψ$6v/xVl²OA@} -ja3l?I6n\#,Ũ<O¢:/UNtV; 'w`]I<L^UzE8WJ -]UFMPm:Π5y;{|0C -=h]GїĞ`79W%q鎨Am2,@M1Xn6.KPOA0WL ms;F;`~%!HT9G(WWUp"F]uȰ]W[P7{jV1fma-mmH-rjm8X1V -JPԍCFAn45Zi:6\n?fA&,d05Y7y^4 @7oNot-_8 `]Ihzؼ.~?ǑyB,_tpWCu 4rKgh dfj+ w=YuQm ;*[={ܧDem!)\.5bh7  CA]iTǚWM`MRk{q픩}UIGef(o. KvP-jUVqvP@R` -V;E~*}SN& bcUbKmKz00Cm3 z!S2de@+Qj}ܦe>2;p$CNT7?nZ]~ hQaYFh |456Կ/:vS`,W gj2yXN&qw _A^l!UI7Eqzi<>~pSQ[ Ԟg%zZ?F$SYj -3ģo""ED<xO"HZ90^k.\F Ͱ> _7ZR+@jEUEjMx޷Q@E tiO-\tZ^!sao1 ?/VgHd߮u }Ǡw)nwvjX9un:S[) W؍ -4BW٩U^WUڴJPi*T,ּ޵W&Vjܠ7XlD=<_hR ִ:?4H,?X.c#V_0DCT0DC3PX+Sii>hh4~[A_i "6p@jH-E D[ՙ!/r/aۏ1 2Ut]FEܦ111T|*qػTxvk?Ӱ5a&DS -v.r@n#SϱWoc~vq?X Wع]H. if ]….BpK%\.t  Tk3_L Ǡu -G13# 0[ͣQ02-vI(xuc<b#3EzT! -*Q/l`& -ZDoAO;DA]TQ/m`) -ZnC0(WQ0R2 -Z!q(#Nm" -Z@į9DA̢Q02(hA"! -s6 -F\FA / /;DA݅_>d3%ѱ͜ -{\y=obWnaI<*NTdT,C7 ʹQKiFCS -]dؔ̑jzn r[4g Zny18GHP\هimxq : Y5 fqoO(P܅v7jb[mīe*T0>|1SlEm#?G>kiRFh1,kD\<$GH,H=C"@i><kefHszo -I: -A[eXoD叢MӧREx+gb`0DC~'E.wJ@-;С#NB5RIE8*!ァ9~D" -? OQ2ZG9GfZ8b(!-c yz8Ii瀷NJ-!/˳ |4S3IR囒k܁(9X sOFʈ)W11H1JKO1r$b¤..uZl#)Q(C^IO#Y-׹(MAT=ZH( "Rldc!U,stj#VΓ<a-F$hn<Ik6B>i`F: oJZ:i읻C;~Sw -N);Ed{M1h=W6#8ҏ" و0k~)#=fq0oU<mJsh$v/=3"&-K-Z/+ZEk5kY_c[OR*%y8,Ǐ}0p t҅NEPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -F= AMETA-INF/PK -F=3*+META-INF/MANIFEST.MFPK -F=pox aMETA-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A9com/jacob/PK -5`.=Aacom/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. -com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? ?com/jacob/com/ComException.classPK -5`.=L듄,$$com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!o&com/jacob/com/DateUtilities.classPK -F=h|G*com/jacob/com/Dispatch.classPK -5`.=F "T;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &5@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)REcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hLcom/jacob/com/EnumVariant.classPK -5`.=VӴh3Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .%Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["=^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Ybncom/jacob/com/Pointer.classPK -5`.=(gpcom/jacob/com/PointerWeakReference.classPK -<1=<o5rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Qcom/jacob/com/SafeArray.classPK -4`.=%b5/ˊcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Bcom/jacob/com/VariantUtilities.classPK -5`.=13#^com/jacob/com/VariantViaEvent.classPK -5`.=#g["(ncom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -QG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -QG=w@o)o))org/jruby/ext/win32ole/RubyWIN32OLE.class1 -\ A -A - -! A A  -  - -  - - - - - -! - - -A - - -A - -! -! - -A -! -A -A  -I -I -I -A -A - -! -! -A -! -A -! -A -! A A - - -! -A -!  -> - -!" -A#$ -A%& -F' -() -* -+, -+- -+. -+/ -+0 -+1 -+2 -34 -35 -36 -78 -I9:; -Y A>?EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;countItimeJ<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)Vstart getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ij cd@ AB CD gh ef EFjava/lang/StringBuilder iT: GH GI, C: GJ KLM NOP QRS T UVW XY Z[ \ ]^ _`a bc d ef gh gi jkl mLcom/jacob/com/Dispatch iO = no p qr s tu vw x y _` ]^java/lang/Objectz p {| g} ~ java/lang/Boolean Y #org/jruby/ext/win32ole/RubyWIN32OLE  itjava/util/Date java/lang/Number p java/lang/String   Y vw  p L    B {{ o}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses aborg/jruby/RubyObjectjava/lang/SystemnanoTime()J getTypeInfo()Lcom/jacob/com/TypeInfo;outLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)Vorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaStringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillisnewTime(J)Lorg/jruby/RubyTime; -startsWith!A\]^_` abcdefghijkR *+,*l$! %m  no pq rsitkY*+,*-7-WeaY`p) Y -   l*, ./0"2X3m4YnoYpqYrsYcdIuhvwk/*l6m nocxk@ +*l<m no yz{|}~k1+N*::,+-W-lABFGH)I,Km> 1no1yz1,pq#{|k B-:*:,6*:*:+lQRSVW+Y8[mf -(BnoByzBBB:2^+f8 -{ |Ikm,2 N*!Y-"#*l` bdm*noyz {|IZkE*+,$lim noyz{|IZk\ -*+,--%lom4 -no -yz - - -{|k|,,2&N-'(*+--)d*,+*+-,,lt v$ym*,no,yz, #{|IZxkG*-+l -~mnoyz{|kc,&N+*-.l -m*noyz{|[sIkw,&:*-/0+lm4noyz{|[sIk] *+,-%lm4 no yz   {|k],2&N*+-,+l - m*noyz {|IZk%*-1: -:*,2W+lm>%no%yz%%^`k ;-:,6*:*3: * 4: -+ -l 1mp ;no;yz;;;;f3,f$^ ` 1 - -kB 5 -lmnofk5+>d6d7:6d+2/Sl ,2m>f5no55f2f ^k4+8=67N6+9/:-S-l" &,2m>&f4no4/f"^k0-+*,:;*,*-1<:+l&m40no0yz00& -k9*lmno k4 -*7=lm  - kl+*+>*+>?@+!AY*B+!C+D *+DE+F*+FGH+I *+IJ*+l2 #3:CJV]fmlpql k+*+Kk YYkkkPb@k7*+L@AY*B+MC*+NE*+OH*+PJ*+Ql" DM]foxmpq kXRM,+S*,TUl - m pq kV$*!*VW*X(**)d**l"m $kH 76 -5YYZ[ l '(= -YPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -QG=6=g||win32ole/win32ole.jarPK -PG= META-INF/PK -PG=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -PG= win32ole/PK -PG=4 jacob.jarPK -F= META-INF/PK -F=3*META-INF/MANIFEST.MFP=o0-?v0miH2HlS).]:ݻ}ҚCdG8 %]1(af J*2bxrJS+<& ޅ[8Y))'ǻ}B(e9h7ND %rHaDm:eb&/9/ USCM{#.1fsFﮨ#n;-FJv6gO7T^+2P'ZxISp5::H@lm,PK -F=pox META-INF/JacobVersion.properties5̱ -0=w8pm.MB 8ٽ..4W=8ܞ45xC"JQzހ,⭆zR^q]ZI10fnѩb'wE>9;[PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -F=h|Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f 5a'7ҵ KF8[_ZhmnАme%$xn]=a]W~{=7qs<~:{tPVw* -ߧ?A~??c_ ]|j/P"W?_s>x/KM+)j?|*}F/%}k?B ^T*^eyYc>1?={wnڵw} XAUO6/ș9=xePI)dA)PՃ-jU>Xݦ Q$ʾ>yTJɧ - AX.;GIu򊴜^_ȥ2kTm޵K{{vuoϠ~{DvtowwnLdGW+CΥ\㢣g'Y~a**EZ` dHwTFݭi 96R*h\ʏɅ*ZN]Nv\q/ȉk6cy$xAC"%FB铵5 +1QkcB_RC)%Ǡ1լ1_i:&㙂鋥v\MeqWwU+c1eU]#W%˦JBI^Е4A1Ld,pa$ڞ 8#JR7C[Q6gk+-T656^E&?m.rij -Z P-\sHC݉1!gnED|K]q͸SrCtAiy4ѝyǏ%ndKv9:n=t.S(&Wt*Ћ']>9C1q8ht08H.nP` M%QJ׌`{(t;2ڭ6c(qky(ԕ :Ot,";-nZFʪjfr%Q 3Xfůg4<r;32N˹sMg*H gp׼t۝#] qĝk0p%~qEguw!q>٘qcx ?Rno>npV<:? ?6_8ŴrWQRl턋sA:2JmvЬI1tQ`F-`%͎+3RIXϙ5;J:˴:L$UߊLű$l_lZ{%;J=Mlc0M ^xK(|8pʡbw|/.ܗȃו1}4?ώҥR.? |,dUyۧ2,sJл/i|6[5%dVG3BTNPhf<fsQ9UF -Ѽ1*rtLɣJAV-k4Qz) \a'ϰ \ WAݖ sX5șwd>Me4].U'#jX- rA1"n$OFxKF T&ݛ*$9K}B|t, )Iz2T -ACA8 -X]ճ ` jK" T| 3j.76P |?! aᏨ`.8S߰-\˅5^NNM}=^ME{E.z'SI6JiuE4֋T ՖC~ ˯lsX^* a8V.g\7߅5~v=Qf ?4j ?/g,7bBψ$6v/xVl²OA@} -ja3l?I6n\#,Ũ<O¢:/UNtV; 'w`]I<L^UzE8WJ -]UFMPm:Π5y;{|0C -=h]GїĞ`79W%q鎨Am2,@M1Xn6.KPOA0WL ms;F;`~%!HT9G(WWUp"F]uȰ]W[P7{jV1fma-mmH-rjm8X1V -JPԍCFAn45Zi:6\n?fA&,d05Y7y^4 @7oNot-_8 `]Ihzؼ.~?ǑyB,_tpWCu 4rKgh dfj+ w=YuQm ;*[={ܧDem!)\.5bh7  CA]iTǚWM`MRk{q픩}UIGef(o. KvP-jUVqvP@R` -V;E~*}SN& bcUbKmKz00Cm3 z!S2de@+Qj}ܦe>2;p$CNT7?nZ]~ hQaYFh |456Կ/:vS`,W gj2yXN&qw _A^l!UI7Eqzi<>~pSQ[ Ԟg%zZ?F$SYj -3ģo""ED<xO"HZ90^k.\F Ͱ> _7ZR+@jEUEjMx޷Q@E tiO-\tZ^!sao1 ?/VgHd߮u }Ǡw)nwvjX9un:S[) W؍ -4BW٩U^WUڴJPi*T,ּ޵W&Vjܠ7XlD=<_hR ִ:?4H,?X.c#V_0DCT0DC3PX+Sii>hh4~[A_i "6p@jH-E D[ՙ!/r/aۏ1 2Ut]FEܦ111T|*qػTxvk?Ӱ5a&DS -v.r@n#SϱWoc~vq?X Wع]H. if ]….BpK%\.t  Tk3_L Ǡu -G13# 0[ͣQ02-vI(xuc<b#3EzT! -*Q/l`& -ZDoAO;DA]TQ/m`) -ZnC0(WQ0R2 -Z!q(#Nm" -Z@į9DA̢Q02(hA"! -s6 -F\FA / /;DA݅_>d3%ѱ͜ -{\y=obWnaI<*NTdT,C7 ʹQKiFCS -]dؔ̑jzn r[4g Zny18GHP\هimxq : Y5 fqoO(P܅v7jb[mīe*T0>|1SlEm#?G>kiRFh1,kD\<$GH,H=C"@i><kefHszo -I: -A[eXoD叢MӧREx+gb`0DC~'E.wJ@-;С#NB5RIE8*!ァ9~D" -? OQ2ZG9GfZ8b(!-c yz8Ii瀷NJ-!/˳ |4S3IR囒k܁(9X sOFʈ)W11H1JKO1r$b¤..uZl#)Q(C^IO#Y-׹(MAT=ZH( "Rldc!U,stj#VΓ<a-F$hn<Ik6B>i`F: oJZ:i읻C;~Sw -N);Ed{M1h=W6#8ҏ" و0k~)#=fq0oU<mJsh$v/=3"&-K-Z/+ZEk5kY_c[OR*%y8,Ǐ}0p t҅NEPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -F= AMETA-INF/PK -F=3*+META-INF/MANIFEST.MFPK -F=pox aMETA-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A9com/jacob/PK -5`.=Aacom/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. -com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? ?com/jacob/com/ComException.classPK -5`.=L듄,$$com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!o&com/jacob/com/DateUtilities.classPK -F=h|G*com/jacob/com/Dispatch.classPK -5`.=F "T;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &5@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)REcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hLcom/jacob/com/EnumVariant.classPK -5`.=VӴh3Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .%Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["=^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Ybncom/jacob/com/Pointer.classPK -5`.=(gpcom/jacob/com/PointerWeakReference.classPK -<1=<o5rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Qcom/jacob/com/SafeArray.classPK -4`.=%b5/ˊcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Bcom/jacob/com/VariantUtilities.classPK -5`.=13#^com/jacob/com/VariantViaEvent.classPK -5`.=#g["(ncom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -PG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -PG=]B(()org/jruby/ext/win32ole/RubyWIN32OLE.class1 -X = -= - -  - - - - - - - - - - -= - - -= - - - - -= - -= -=  -E -E -E -= -= - - -= - -= - -= - = = - -  -  - -= -  -: - - -= -= -B - - -!" -!# -!$ -!% -!& -!' -!( -)* -)+ -), --. -E/01 -U =45EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)VstartJ getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ab _`6 78 9: ;<java/lang/StringBuilder aT: => =? @AB CDE FGH I JKL MN OP Q RS TUV WX Y Z[ \] \^ _`a bAcom/jacob/com/Dispatch aD = cd e fg h ij kl m n [\ YZjava/lang/Objecto e pq \r st java/lang/Boolean uN vw#org/jruby/ext/win32ole/RubyWIN32OLEx yz aljava/util/Date java/lang/Number {e |}java/lang/String ~  N op  e A    8 {{ d}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ]^org/jruby/RubyObjectjava/lang/SystemnanoTime()J getTypeInfo()Lcom/jacob/com/TypeInfo;outLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)Vorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaStringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillisnewTime(J)Lorg/jruby/RubyTime; -startsWith!=XYZ[\ ]^_`abcR *+,*d$! %e  fg hi jkalc4*+,*-7-WY -e d(* ,-.3/e44fg4hi4jk4_`$mnopc/*d2e fg_qc@ +*d8e fg rstuvwc1+N*::,+-W-d=>BCD)E,Ge> xy1fg1rs1z{,hi#|}tu~c B-:*:,6*:*:+dMNORS+U8Wef -(yBfgBrsBBB:2Z+8 -yt uIcm,2N*Y-*d\ ^`e*fgrs tuIZcE*+, dee fgrstuIZc\ -*+,--!dke4 -fg -rs - - -tuc|,,2"N-#$*+--%d&,'*+-,(dp r$ue*,fg,rs, #tuIZqcG*)+d -z|efgrstucc,"N+*-*d -e*fgrstu[sIcw,":*-+,+de4fgrsxtu[sIc] *+,-!de4 fg rs   tuc],2"N*+-,'d - e*fgrs tuIZc%*--: -:*,.W+de>%fg%rs%%Z\c ;-:,6*:*/: * 0: -+ -d 1ep ;fg;rs;;;;3,$Z \ 1 -y -cB 1 -defgc5+>d2d3:6d+2+Sd ,2e>5fg552 Zc4+4=23N6+5+:-S-d" &,2e>&4fg4/"Zc0-+*,67*,*--8:+d&e40fg0rs00& -yc9*defg c4 -*39de  - cl+*+:*+:;<+=Y*>+?+@ *+@A+B*+BCD+E *+EF*+d2 #3:CJV]felhil c+*+Gk YYkkkPb@k7*+H<=Y*>+I?*+JA*+KD*+LF*+Md" DM]foxehiy cXNM,+O*,PQd  -e hi cV$*!*RS*T$**%d&*d"e $c832 -1UYVWd 3 -UPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -PG=3§%j%jwin32ole/win32ole.jarPK -PG= META-INF/PK -PG=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -PG= win32ole/PK -PG=4 jacob.jarPK -F= META-INF/PK -F=3*META-INF/MANIFEST.MFP=o0-?v0miH2HlS).]:ݻ}ҚCdG8 %]1(af J*2bxrJS+<& ޅ[8Y))'ǻ}B(e9h7ND %rHaDm:eb&/9/ USCM{#.1fsFﮨ#n;-FJv6gO7T^+2P'ZxISp5::H@lm,PK -F=pox META-INF/JacobVersion.properties5̱ -0=w8pm.MB 8ٽ..4W=8ܞ45xC"JQzހ,⭆zR^q]ZI10fnѩb'wE>9;[PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -F=h|Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f 5a'7ҵ KF8[_ZhmnАme%$xn]=a]W~{=7qs<~:{tPVw* -ߧ?A~??c_ ]|j/P"W?_s>x/KM+)j?|*}F/%}k?B ^T*^eyYc>1?={wnڵw} XAUO6/ș9=xePI)dA)PՃ-jU>Xݦ Q$ʾ>yTJɧ - AX.;GIu򊴜^_ȥ2kTm޵K{{vuoϠ~{DvtowwnLdGW+CΥ\㢣g'Y~a**EZ` dHwTFݭi 96R*h\ʏɅ*ZN]Nv\q/ȉk6cy$xAC"%FB铵5 +1QkcB_RC)%Ǡ1լ1_i:&㙂鋥v\MeqWwU+c1eU]#W%˦JBI^Е4A1Ld,pa$ڞ 8#JR7C[Q6gk+-T656^E&?m.rij -Z P-\sHC݉1!gnED|K]q͸SrCtAiy4ѝyǏ%ndKv9:n=t.S(&Wt*Ћ']>9C1q8ht08H.nP` M%QJ׌`{(t;2ڭ6c(qky(ԕ :Ot,";-nZFʪjfr%Q 3Xfůg4<r;32N˹sMg*H gp׼t۝#] qĝk0p%~qEguw!q>٘qcx ?Rno>npV<:? ?6_8ŴrWQRl턋sA:2JmvЬI1tQ`F-`%͎+3RIXϙ5;J:˴:L$UߊLű$l_lZ{%;J=Mlc0M ^xK(|8pʡbw|/.ܗȃו1}4?ώҥR.? |,dUyۧ2,sJл/i|6[5%dVG3BTNPhf<fsQ9UF -Ѽ1*rtLɣJAV-k4Qz) \a'ϰ \ WAݖ sX5șwd>Me4].U'#jX- rA1"n$OFxKF T&ݛ*$9K}B|t, )Iz2T -ACA8 -X]ճ ` jK" T| 3j.76P |?! aᏨ`.8S߰-\˅5^NNM}=^ME{E.z'SI6JiuE4֋T ՖC~ ˯lsX^* a8V.g\7߅5~v=Qf ?4j ?/g,7bBψ$6v/xVl²OA@} -ja3l?I6n\#,Ũ<O¢:/UNtV; 'w`]I<L^UzE8WJ -]UFMPm:Π5y;{|0C -=h]GїĞ`79W%q鎨Am2,@M1Xn6.KPOA0WL ms;F;`~%!HT9G(WWUp"F]uȰ]W[P7{jV1fma-mmH-rjm8X1V -JPԍCFAn45Zi:6\n?fA&,d05Y7y^4 @7oNot-_8 `]Ihzؼ.~?ǑyB,_tpWCu 4rKgh dfj+ w=YuQm ;*[={ܧDem!)\.5bh7  CA]iTǚWM`MRk{q픩}UIGef(o. KvP-jUVqvP@R` -V;E~*}SN& bcUbKmKz00Cm3 z!S2de@+Qj}ܦe>2;p$CNT7?nZ]~ hQaYFh |456Կ/:vS`,W gj2yXN&qw _A^l!UI7Eqzi<>~pSQ[ Ԟg%zZ?F$SYj -3ģo""ED<xO"HZ90^k.\F Ͱ> _7ZR+@jEUEjMx޷Q@E tiO-\tZ^!sao1 ?/VgHd߮u }Ǡw)nwvjX9un:S[) W؍ -4BW٩U^WUڴJPi*T,ּ޵W&Vjܠ7XlD=<_hR ִ:?4H,?X.c#V_0DCT0DC3PX+Sii>hh4~[A_i "6p@jH-E D[ՙ!/r/aۏ1 2Ut]FEܦ111T|*qػTxvk?Ӱ5a&DS -v.r@n#SϱWoc~vq?X Wع]H. if ]….BpK%\.t  Tk3_L Ǡu -G13# 0[ͣQ02-vI(xuc<b#3EzT! -*Q/l`& -ZDoAO;DA]TQ/m`) -ZnC0(WQ0R2 -Z!q(#Nm" -Z@į9DA̢Q02(hA"! -s6 -F\FA / /;DA݅_>d3%ѱ͜ -{\y=obWnaI<*NTdT,C7 ʹQKiFCS -]dؔ̑jzn r[4g Zny18GHP\هimxq : Y5 fqoO(P܅v7jb[mīe*T0>|1SlEm#?G>kiRFh1,kD\<$GH,H=C"@i><kefHszo -I: -A[eXoD叢MӧREx+gb`0DC~'E.wJ@-;С#NB5RIE8*!ァ9~D" -? OQ2ZG9GfZ8b(!-c yz8Ii瀷NJ-!/˳ |4S3IR囒k܁(9X sOFʈ)W11H1JKO1r$b¤..uZl#)Q(C^IO#Y-׹(MAT=ZH( "Rldc!U,stj#VΓ<a-F$hn<Ik6B>i`F: oJZ:i읻C;~Sw -N);Ed{M1h=W6#8ҏ" و0k~)#=fq0oU<mJsh$v/=3"&-K-Z/+ZEk5kY_c[OR*%y8,Ǐ}0p t҅NEPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -F= AMETA-INF/PK -F=3*+META-INF/MANIFEST.MFPK -F=pox aMETA-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A9com/jacob/PK -5`.=Aacom/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. -com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? ?com/jacob/com/ComException.classPK -5`.=L듄,$$com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!o&com/jacob/com/DateUtilities.classPK -F=h|G*com/jacob/com/Dispatch.classPK -5`.=F "T;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &5@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)REcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hLcom/jacob/com/EnumVariant.classPK -5`.=VӴh3Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .%Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["=^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Ybncom/jacob/com/Pointer.classPK -5`.=(gpcom/jacob/com/PointerWeakReference.classPK -<1=<o5rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Qcom/jacob/com/SafeArray.classPK -4`.=%b5/ˊcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Bcom/jacob/com/VariantUtilities.classPK -5`.=13#^com/jacob/com/VariantViaEvent.classPK -5`.=#g["(ncom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -PG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -PG=]B(()org/jruby/ext/win32ole/RubyWIN32OLE.class1 -X = -= - -  - - - - - - - - - - -= - - -= - - - - -= - -= -=  -E -E -E -= -= - - -= - -= - -= - = = - -  -  - -= -  -: - - -= -= -B - - -!" -!# -!$ -!% -!& -!' -!( -)* -)+ -), --. -E/01 -U =45EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)VstartJ getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ab _`6 78 9: ;<java/lang/StringBuilder aT: => =? @AB CDE FGH I JKL MN OP Q RS TUV WX Y Z[ \] \^ _`a bAcom/jacob/com/Dispatch aD = cd e fg h ij kl m n [\ YZjava/lang/Objecto e pq \r st java/lang/Boolean uN vw#org/jruby/ext/win32ole/RubyWIN32OLEx yz aljava/util/Date java/lang/Number {e |}java/lang/String ~  N op  e A    8 {{ d}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses ]^org/jruby/RubyObjectjava/lang/SystemnanoTime()J getTypeInfo()Lcom/jacob/com/TypeInfo;outLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)Vorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaStringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillisnewTime(J)Lorg/jruby/RubyTime; -startsWith!=XYZ[\ ]^_`abcR *+,*d$! %e  fg hi jkalc4*+,*-7-WY -e d(* ,-.3/e44fg4hi4jk4_`$mnopc/*d2e fg_qc@ +*d8e fg rstuvwc1+N*::,+-W-d=>BCD)E,Ge> xy1fg1rs1z{,hi#|}tu~c B-:*:,6*:*:+dMNORS+U8Wef -(yBfgBrsBBB:2Z+8 -yt uIcm,2N*Y-*d\ ^`e*fgrs tuIZcE*+, dee fgrstuIZc\ -*+,--!dke4 -fg -rs - - -tuc|,,2"N-#$*+--%d&,'*+-,(dp r$ue*,fg,rs, #tuIZqcG*)+d -z|efgrstucc,"N+*-*d -e*fgrstu[sIcw,":*-+,+de4fgrsxtu[sIc] *+,-!de4 fg rs   tuc],2"N*+-,'d - e*fgrs tuIZc%*--: -:*,.W+de>%fg%rs%%Z\c ;-:,6*:*/: * 0: -+ -d 1ep ;fg;rs;;;;3,$Z \ 1 -y -cB 1 -defgc5+>d2d3:6d+2+Sd ,2e>5fg552 Zc4+4=23N6+5+:-S-d" &,2e>&4fg4/"Zc0-+*,67*,*--8:+d&e40fg0rs00& -yc9*defg c4 -*39de  - cl+*+:*+:;<+=Y*>+?+@ *+@A+B*+BCD+E *+EF*+d2 #3:CJV]felhil c+*+Gk YYkkkPb@k7*+H<=Y*>+I?*+JA*+KD*+LF*+Md" DM]foxehiy cXNM,+O*,PQd  -e hi cV$*!*RS*T$**%d&*d"e $c832 -1UYVWd 3 -UPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -PG=ywin32ole/win32ole.jarPK -lF= META-INF/PK -kF=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -lF= win32ole/PK -lF=4 jacob.jarPK -F= META-INF/PK -F=3*META-INF/MANIFEST.MFP=o0-?v0miH2HlS).]:ݻ}ҚCdG8 %]1(af J*2bxrJS+<& ޅ[8Y))'ǻ}B(e9h7ND %rHaDm:eb&/9/ USCM{#.1fsFﮨ#n;-FJv6gO7T^+2P'ZxISp5::H@lm,PK -F=pox META-INF/JacobVersion.properties5̱ -0=w8pm.MB 8ٽ..4W=8ܞ45xC"JQzހ,⭆zR^q]ZI10fnѩb'wE>9;[PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -F=h|Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f 5a'7ҵ KF8[_ZhmnАme%$xn]=a]W~{=7qs<~:{tPVw* -ߧ?A~??c_ ]|j/P"W?_s>x/KM+)j?|*}F/%}k?B ^T*^eyYc>1?={wnڵw} XAUO6/ș9=xePI)dA)PՃ-jU>Xݦ Q$ʾ>yTJɧ - AX.;GIu򊴜^_ȥ2kTm޵K{{vuoϠ~{DvtowwnLdGW+CΥ\㢣g'Y~a**EZ` dHwTFݭi 96R*h\ʏɅ*ZN]Nv\q/ȉk6cy$xAC"%FB铵5 +1QkcB_RC)%Ǡ1լ1_i:&㙂鋥v\MeqWwU+c1eU]#W%˦JBI^Е4A1Ld,pa$ڞ 8#JR7C[Q6gk+-T656^E&?m.rij -Z P-\sHC݉1!gnED|K]q͸SrCtAiy4ѝyǏ%ndKv9:n=t.S(&Wt*Ћ']>9C1q8ht08H.nP` M%QJ׌`{(t;2ڭ6c(qky(ԕ :Ot,";-nZFʪjfr%Q 3Xfůg4<r;32N˹sMg*H gp׼t۝#] qĝk0p%~qEguw!q>٘qcx ?Rno>npV<:? ?6_8ŴrWQRl턋sA:2JmvЬI1tQ`F-`%͎+3RIXϙ5;J:˴:L$UߊLű$l_lZ{%;J=Mlc0M ^xK(|8pʡbw|/.ܗȃו1}4?ώҥR.? |,dUyۧ2,sJл/i|6[5%dVG3BTNPhf<fsQ9UF -Ѽ1*rtLɣJAV-k4Qz) \a'ϰ \ WAݖ sX5șwd>Me4].U'#jX- rA1"n$OFxKF T&ݛ*$9K}B|t, )Iz2T -ACA8 -X]ճ ` jK" T| 3j.76P |?! aᏨ`.8S߰-\˅5^NNM}=^ME{E.z'SI6JiuE4֋T ՖC~ ˯lsX^* a8V.g\7߅5~v=Qf ?4j ?/g,7bBψ$6v/xVl²OA@} -ja3l?I6n\#,Ũ<O¢:/UNtV; 'w`]I<L^UzE8WJ -]UFMPm:Π5y;{|0C -=h]GїĞ`79W%q鎨Am2,@M1Xn6.KPOA0WL ms;F;`~%!HT9G(WWUp"F]uȰ]W[P7{jV1fma-mmH-rjm8X1V -JPԍCFAn45Zi:6\n?fA&,d05Y7y^4 @7oNot-_8 `]Ihzؼ.~?ǑyB,_tpWCu 4rKgh dfj+ w=YuQm ;*[={ܧDem!)\.5bh7  CA]iTǚWM`MRk{q픩}UIGef(o. KvP-jUVqvP@R` -V;E~*}SN& bcUbKmKz00Cm3 z!S2de@+Qj}ܦe>2;p$CNT7?nZ]~ hQaYFh |456Կ/:vS`,W gj2yXN&qw _A^l!UI7Eqzi<>~pSQ[ Ԟg%zZ?F$SYj -3ģo""ED<xO"HZ90^k.\F Ͱ> _7ZR+@jEUEjMx޷Q@E tiO-\tZ^!sao1 ?/VgHd߮u }Ǡw)nwvjX9un:S[) W؍ -4BW٩U^WUڴJPi*T,ּ޵W&Vjܠ7XlD=<_hR ִ:?4H,?X.c#V_0DCT0DC3PX+Sii>hh4~[A_i "6p@jH-E D[ՙ!/r/aۏ1 2Ut]FEܦ111T|*qػTxvk?Ӱ5a&DS -v.r@n#SϱWoc~vq?X Wع]H. if ]….BpK%\.t  Tk3_L Ǡu -G13# 0[ͣQ02-vI(xuc<b#3EzT! -*Q/l`& -ZDoAO;DA]TQ/m`) -ZnC0(WQ0R2 -Z!q(#Nm" -Z@į9DA̢Q02(hA"! -s6 -F\FA / /;DA݅_>d3%ѱ͜ -{\y=obWnaI<*NTdT,C7 ʹQKiFCS -]dؔ̑jzn r[4g Zny18GHP\هimxq : Y5 fqoO(P܅v7jb[mīe*T0>|1SlEm#?G>kiRFh1,kD\<$GH,H=C"@i><kefHszo -I: -A[eXoD叢MӧREx+gb`0DC~'E.wJ@-;С#NB5RIE8*!ァ9~D" -? OQ2ZG9GfZ8b(!-c yz8Ii瀷NJ-!/˳ |4S3IR囒k܁(9X sOFʈ)W11H1JKO1r$b¤..uZl#)Q(C^IO#Y-׹(MAT=ZH( "Rldc!U,stj#VΓ<a-F$hn<Ik6B>i`F: oJZ:i읻C;~Sw -N);Ed{M1h=W6#8ҏ" و0k~)#=fq0oU<mJsh$v/=3"&-K-Z/+ZEk5kY_c[OR*%y8,Ǐ}0p t҅NEPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -F= AMETA-INF/PK -F=3*+META-INF/MANIFEST.MFPK -F=pox aMETA-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A9com/jacob/PK -5`.=Aacom/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. -com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? ?com/jacob/com/ComException.classPK -5`.=L듄,$$com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!o&com/jacob/com/DateUtilities.classPK -F=h|G*com/jacob/com/Dispatch.classPK -5`.=F "T;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &5@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)REcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hLcom/jacob/com/EnumVariant.classPK -5`.=VӴh3Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .%Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["=^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Ybncom/jacob/com/Pointer.classPK -5`.=(gpcom/jacob/com/PointerWeakReference.classPK -<1=<o5rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Qcom/jacob/com/SafeArray.classPK -4`.=%b5/ˊcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Bcom/jacob/com/VariantUtilities.classPK -5`.=13#^com/jacob/com/VariantViaEvent.classPK -5`.=#g["(ncom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -ÝF=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -ÝF=$'$')org/jruby/ext/win32ole/RubyWIN32OLE.class1p -N 3 -3 - - - - - -3 - - -3 - - - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -3 -  -0 - - -3 -3 -8 - - -  - -  -  -  -  -  -  - - - - -; -K 3EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java WX UV  !" # $%& '( )* + ,- ./0 12 3 45 67 68 9:; <=com/jacob/com/Dispatch W> = ?@ A BC D EF GH I J QR OPjava/lang/ObjectK A LM 6N OP java/lang/Boolean Q( RS#org/jruby/ext/win32ole/RubyWIN32OLET UV Wbjava/util/Date java/lang/Number WA XYjava/lang/String Z[\ ]^ _( cd `a bA c= def gh ij kl mn{{ o@}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses W STorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3NOPQR STUVWXYR *+,*Z$! %[  \] ^_ `aWbY\ *+,*-Z(* +[* \] ^_ `a UVcdY/*Z.[ \]UeY@ +*Z4[ \] fghijkY1+N*::,+- -W- Z9:>?@)A,C[> lm1\]1fg1no,^_#pqhirsY B- :* :,6*:*:+ ZIJKNO+Q8S[f -(tmB\]BfgBuvBwvBxv:yz2{P+|}8 -tmh i~IYm,2N*Y-*ZX Z\[*\]fgw hi~IZYE*+,Za[ \]fgwhi~IZsY\ -*+,--Zg[4 -\] -fg -uv -wv -vhiY|,,2N-*+--d,*+-,Zl n$q[*,\],fg,w #hi~IZeYG*+ Z -vx[\]fghiYc,N+*- Z -}[*\]fgvhi[s~IYw,:*-!"+ Z[4\]fgvlvhi[s~IsY] *+,-Z[4 \] fg uv wv xvhiY],2N*+-,Z - [*\]fgw hi~IZY%*-#: -:*,$W+ Z[>%\]%fg%%w{PRY ;- :,6* :*%: * &: -+ - Z 1[p ;\];fg;uv;wv;xv;}3yz,|}${P R 1 -tm -YB ' -Z[\]}Y5+>d(d):6d+2!SZ ,2[>}5\]55}2} {PY4+*=()N6++!:-S-Z" &,2[>&}4\]4yz/}"{PY0-+*,,-*,*-#.:+ Z&[40\]0fg00w& -mY9*Z[\] Y4 -*)/Z[  -v Yl+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+Z2 #3:CJV]f[l^_l Y+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+CZ" DM]fox[^_m YXDM,+E*,FGZ [ ^_ YV$*!*HI*J**d*Z - "[ $Y8)( -'KYLMZ  -KPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -lF=,gم""win32ole/win32ole.jarPK -ĝF= META-INF/PK -ÝF=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -ÝF= win32ole/PK -ÝF=4 jacob.jarPK -F= META-INF/PK -F=3*META-INF/MANIFEST.MFP=o0-?v0miH2HlS).]:ݻ}ҚCdG8 %]1(af J*2bxrJS+<& ޅ[8Y))'ǻ}B(e9h7ND %rHaDm:eb&/9/ USCM{#.1fsFﮨ#n;-FJv6gO7T^+2P'ZxISp5::H@lm,PK -F=pox META-INF/JacobVersion.properties5̱ -0=w8pm.MB 8ٽ..4W=8ܞ45xC"JQzހ,⭆zR^q]ZI10fnѩb'wE>9;[PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -F=h|Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f 5a'7ҵ KF8[_ZhmnАme%$xn]=a]W~{=7qs<~:{tPVw* -ߧ?A~??c_ ]|j/P"W?_s>x/KM+)j?|*}F/%}k?B ^T*^eyYc>1?={wnڵw} XAUO6/ș9=xePI)dA)PՃ-jU>Xݦ Q$ʾ>yTJɧ - AX.;GIu򊴜^_ȥ2kTm޵K{{vuoϠ~{DvtowwnLdGW+CΥ\㢣g'Y~a**EZ` dHwTFݭi 96R*h\ʏɅ*ZN]Nv\q/ȉk6cy$xAC"%FB铵5 +1QkcB_RC)%Ǡ1լ1_i:&㙂鋥v\MeqWwU+c1eU]#W%˦JBI^Е4A1Ld,pa$ڞ 8#JR7C[Q6gk+-T656^E&?m.rij -Z P-\sHC݉1!gnED|K]q͸SrCtAiy4ѝyǏ%ndKv9:n=t.S(&Wt*Ћ']>9C1q8ht08H.nP` M%QJ׌`{(t;2ڭ6c(qky(ԕ :Ot,";-nZFʪjfr%Q 3Xfůg4<r;32N˹sMg*H gp׼t۝#] qĝk0p%~qEguw!q>٘qcx ?Rno>npV<:? ?6_8ŴrWQRl턋sA:2JmvЬI1tQ`F-`%͎+3RIXϙ5;J:˴:L$UߊLű$l_lZ{%;J=Mlc0M ^xK(|8pʡbw|/.ܗȃו1}4?ώҥR.? |,dUyۧ2,sJл/i|6[5%dVG3BTNPhf<fsQ9UF -Ѽ1*rtLɣJAV-k4Qz) \a'ϰ \ WAݖ sX5șwd>Me4].U'#jX- rA1"n$OFxKF T&ݛ*$9K}B|t, )Iz2T -ACA8 -X]ճ ` jK" T| 3j.76P |?! aᏨ`.8S߰-\˅5^NNM}=^ME{E.z'SI6JiuE4֋T ՖC~ ˯lsX^* a8V.g\7߅5~v=Qf ?4j ?/g,7bBψ$6v/xVl²OA@} -ja3l?I6n\#,Ũ<O¢:/UNtV; 'w`]I<L^UzE8WJ -]UFMPm:Π5y;{|0C -=h]GїĞ`79W%q鎨Am2,@M1Xn6.KPOA0WL ms;F;`~%!HT9G(WWUp"F]uȰ]W[P7{jV1fma-mmH-rjm8X1V -JPԍCFAn45Zi:6\n?fA&,d05Y7y^4 @7oNot-_8 `]Ihzؼ.~?ǑyB,_tpWCu 4rKgh dfj+ w=YuQm ;*[={ܧDem!)\.5bh7  CA]iTǚWM`MRk{q픩}UIGef(o. KvP-jUVqvP@R` -V;E~*}SN& bcUbKmKz00Cm3 z!S2de@+Qj}ܦe>2;p$CNT7?nZ]~ hQaYFh |456Կ/:vS`,W gj2yXN&qw _A^l!UI7Eqzi<>~pSQ[ Ԟg%zZ?F$SYj -3ģo""ED<xO"HZ90^k.\F Ͱ> _7ZR+@jEUEjMx޷Q@E tiO-\tZ^!sao1 ?/VgHd߮u }Ǡw)nwvjX9un:S[) W؍ -4BW٩U^WUڴJPi*T,ּ޵W&Vjܠ7XlD=<_hR ִ:?4H,?X.c#V_0DCT0DC3PX+Sii>hh4~[A_i "6p@jH-E D[ՙ!/r/aۏ1 2Ut]FEܦ111T|*qػTxvk?Ӱ5a&DS -v.r@n#SϱWoc~vq?X Wع]H. if ]….BpK%\.t  Tk3_L Ǡu -G13# 0[ͣQ02-vI(xuc<b#3EzT! -*Q/l`& -ZDoAO;DA]TQ/m`) -ZnC0(WQ0R2 -Z!q(#Nm" -Z@į9DA̢Q02(hA"! -s6 -F\FA / /;DA݅_>d3%ѱ͜ -{\y=obWnaI<*NTdT,C7 ʹQKiFCS -]dؔ̑jzn r[4g Zny18GHP\هimxq : Y5 fqoO(P܅v7jb[mīe*T0>|1SlEm#?G>kiRFh1,kD\<$GH,H=C"@i><kefHszo -I: -A[eXoD叢MӧREx+gb`0DC~'E.wJ@-;С#NB5RIE8*!ァ9~D" -? OQ2ZG9GfZ8b(!-c yz8Ii瀷NJ-!/˳ |4S3IR囒k܁(9X sOFʈ)W11H1JKO1r$b¤..uZl#)Q(C^IO#Y-׹(MAT=ZH( "Rldc!U,stj#VΓ<a-F$hn<Ik6B>i`F: oJZ:i읻C;~Sw -N);Ed{M1h=W6#8ҏ" و0k~)#=fq0oU<mJsh$v/=3"&-K-Z/+ZEk5kY_c[OR*%y8,Ǐ}0p t҅NEPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -F= AMETA-INF/PK -F=3*+META-INF/MANIFEST.MFPK -F=pox aMETA-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A9com/jacob/PK -5`.=Aacom/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. -com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? ?com/jacob/com/ComException.classPK -5`.=L듄,$$com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!o&com/jacob/com/DateUtilities.classPK -F=h|G*com/jacob/com/Dispatch.classPK -5`.=F "T;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &5@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)REcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hLcom/jacob/com/EnumVariant.classPK -5`.=VӴh3Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .%Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["=^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Ybncom/jacob/com/Pointer.classPK -5`.=(gpcom/jacob/com/PointerWeakReference.classPK -<1=<o5rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Qcom/jacob/com/SafeArray.classPK -4`.=%b5/ˊcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $Bcom/jacob/com/VariantUtilities.classPK -5`.=13#^com/jacob/com/VariantViaEvent.classPK -5`.=#g["(ncom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -ÝF=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -ÝF=$'$')org/jruby/ext/win32ole/RubyWIN32OLE.class1p -N 3 -3 - - - - - -3 - - -3 - - - - -3 - -3 -3  -; -; -; -3 -3 - - -3 - -3 - -3 - 3 3 - - - -3 -  -0 - - -3 -3 -8 - - -  - -  -  -  -  -  -  - - - - -; -K 3EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject -fromObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java WX UV  !" # $%& '( )* + ,- ./0 12 3 45 67 68 9:; <=com/jacob/com/Dispatch W> = ?@ A BC D EF GH I J QR OPjava/lang/ObjectK A LM 6N OP java/lang/Boolean Q( RS#org/jruby/ext/win32ole/RubyWIN32OLET UV Wbjava/util/Date java/lang/Number WA XYjava/lang/String Z[\ ]^ _( cd `a bA c= def gh ij kl mn{{ o@}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses W STorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObject toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)VendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;>(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Ljava/lang/Object;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant; booleanValue -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;intValue newFixnum(I)Lorg/jruby/RubyFixnum; newString*(Ljava/lang/String;)Lorg/jruby/RubyString;com/jacob/com/VariantgetType()S -getBooleangetDate()Ljava/util/Date;getInt getString toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!3NOPQR STUVWXYR *+,*Z$! %[  \] ^_ `aWbY\ *+,*-Z(* +[* \] ^_ `a UVcdY/*Z.[ \]UeY@ +*Z4[ \] fghijkY1+N*::,+- -W- Z9:>?@)A,C[> lm1\]1fg1no,^_#pqhirsY B- :* :,6*:*:+ ZIJKNO+Q8S[f -(tmB\]BfgBuvBwvBxv:yz2{P+|}8 -tmh i~IYm,2N*Y-*ZX Z\[*\]fgw hi~IZYE*+,Za[ \]fgwhi~IZsY\ -*+,--Zg[4 -\] -fg -uv -wv -vhiY|,,2N-*+--d,*+-,Zl n$q[*,\],fg,w #hi~IZeYG*+ Z -vx[\]fghiYc,N+*- Z -}[*\]fgvhi[s~IYw,:*-!"+ Z[4\]fgvlvhi[s~IsY] *+,-Z[4 \] fg uv wv xvhiY],2N*+-,Z - [*\]fgw hi~IZY%*-#: -:*,$W+ Z[>%\]%fg%%w{PRY ;- :,6* :*%: * &: -+ - Z 1[p ;\];fg;uv;wv;xv;}3yz,|}${P R 1 -tm -YB ' -Z[\]}Y5+>d(d):6d+2!SZ ,2[>}5\]55}2} {PY4+*=()N6++!:-S-Z" &,2[>&}4\]4yz/}"{PY0-+*,,-*,*-#.:+ Z&[40\]0fg00w& -mY9*Z[\] Y4 -*)/Z[  -v Yl+* +0*+012+3Y*4+5+6 *+67+8*+89:+; *+;<*+Z2 #3:CJV]f[l^_l Y+* +=k YYkkkPb@k7*+>23Y*4+?5*+@7*+A:*+B<*+CZ" DM]fox[^_m YXDM,+E*,FGZ [ ^_ YV$*!*HI*J**d*Z - "[ $Y8)( -'KYLMZ  -KPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -ÝF=_l!%vp vp win32ole/win32ole.jarPK -#F= META-INF/PK -"F=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -#F= win32ole/PK -#F=H2 jacob.jarPK -F= META-INF/PK -F=,pMETA-INF/MANIFEST.MFP=o0-?vp *%eH͑8٦R}!]Ptw5-.q6Jr`AM JJ2bÊOyL%;x9* pRROۈQRIcY2Юw3:͈Je ڴF8>L&uS_ʺ›抿bّ QG5_[mϨ3Ko0^VO4p::eM9PK -F=_x META-INF/JacobVersion.propertiesSOMQ00SO.Q0204P04252T5050RPN-P04U04225Rpv *K-*ϳ534J*IKI,I50Z 57hp d̒ԢfSC PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -uF=w@Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f  bcp kV%#Nڭ] [&- VVBywJ_k;F_]W~sCMp9:W;}7< 7oŷX|/~>>}*nj/P"y7;}^O/ [P?~x~DS/>FkT_PK//}ju*~CX0QE.%/+2ylҳog=vmgb *3\^NԤg$ -f%OUVOU `u2BW>I(zq[)}J:'$fFx,vyJ^ӣkdztm]rYOw mޣl6е3իkό#3k6 g615nz.LЃ LْL+J_N)Ę)^/X2܄bf&\^Ilʾv<A2g9ш+r--CJ+NmOԘ DŽWHR2hg-57pvL*X:dGdb}I|UKSJrd,i16apK] px'2Ir۩R`_g.QN -}F,t(?썍Jy1%Ǯ͏)҈E2e]6˅\.Y.HāSsXcdz*s79<2Xn1!FHixnJɣ($~dq\.u"[Zԩp0zwBـ4f3E{G sbpnyV]l㶑^u¬r@BɝLjj#W4kG١].>ZgрA–A zuP!$2dw2RF]V# ꜖:AfklיEN[.w&`z i$g3{Q@:^ȆN8̵ ?;Fo,81<vfH_h)'ⷜ}q'8}+p]N_Npcn`Ayvqi5 F2Z[_@l8(wؽ0cg[BtA3,eR'!/&䎅N"fg -2V{`Ql f"e-Z/-(n~;d4sh4&zQf-ߢMcE(5]׭ax&#x2ٸ)Iwgr. %0r/`YX*ʩ丒+s͚bZId\$G8'SH&e|"?ɩ #r."G&<,!`OJ#D$a2$p\!*e - qz,`Uy;h2$E].Q1a <yEVx<-g"{Dfo.2gnc):IIՑȴ Qj TgPm p#gb&}vK>Lş\zT|0BAr㪞ZӍخ^؃C'r[m6Aam/Jn0Al׎+9:`c:9LQJoe^'SL48r~/G;Xm -M> a=0xwxnEx}=x5y-T/zC3[Blψ$VvQlŲ - -@v(Gx(m@ː[ [s^p=jT9!ZYk$xNT>ݪ2b9ȥߋ(C؅WZ]UGNtA֫6vy ʙ(6п1к>Zw1r -QH= eXJ ᣰP ܢ\!W#J0WLsF;`~nCT BsQg:Õp%&F]u0ͮ-= FYhma-mmƧH5|j,38YՁV -PԅCFGAn4Jb|ʹt.4t2!!Q$p qQ;%]q3~ -F"OyQ΋P6G왟A^KNUulUqx)ڡ?M䑹LRmE ]CFcTrAV}=am-}[P -<3rp&XUB,$BWg&VkSX^;ejmFD -5͡rhU! -ށP-*:n -jJ@[H*,\!z:Op=oރ}~?`vA,2}VԳr޶3P/: jNL2u!AKNfQJ -emVC\f{׷H }3p֕w ?6ji zJ5qH7m\c ~K$h 3o7 vr\{/i'פQnɋ(ra\5IYL];G )Z܎ZJ<ĝ(qd1#.qHasDB15(fP~]< - &,QXģGa85-#WSإD֧˺P#@jH5[i!a!jo7mD.- nE *hFPE - L˵؉`1^ FfN[+z}+  fCQ+ JT~**ŧJPi*TsUOqPLԨG7X,D]~\hR ֊cu=IEyQ~*b!C!""!""jZJNqEkH㳤<VH+UR@jHY 5s$ݦ }}}-UjnZ! 7;bT FbT FbT F9">5 -nZ,`'BފȽ*EM 6&r@nTKT9#Ə<V{CV. qՅYBpS)\.t -: …NZ3="SC1hFqDLI4J(xe FA}hw& -a]XF(hRUnu+(&[Q6QP=Uk(&ۑ(1? -e &ct& -jH`&'K6QPC<(xe ; -߶BEaQ+6QPsaŋ Yk -fIo5.W^(Eno#m%+5J }Hi}3+uRyQoÐ9s[ԋܢ^]G}1<-T8Wzhya6v],m|MI[&? -'>8Bn] uMxL)/FHӦtpY䙞>\i~(<=a΁vgPÃ(;gMHiu]a9i]Q+RZ]W<dMTFyvRJs؜mW5Fу(zOl v a}':tdIhC~QeTjR:JB}i$xkN25 ?Og1%&!sJH 8'ABjz^/-xRZ'8Rkshu,&x?Ԉ-@aT$w3JNMn,C7z79A-S2FʵFL*RS$ .I5Ɵ0j 杨iHiHTMJQҦHV e9#eeUR4Hi6"YFHD0:Rb|2BNVMX9y'{9ՄybMg1i-?XF'&lH0B~MI\ wA!;'s7K"cCw!;~"2>+2b ٔcf>Ş~LG6df¬PFz>kcV _[ӫyۤ0α@C]صN" -LI2jZh)b.Oүt}d>??I`F?ڏC!qh#hI':_S%PK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK -F=cA*3com/jacob/com/Variant.classZ |UүI=&LB$Ȁ(a($I2d&N&hk]uPPMX{Z{?w]sTLw=ի^yg^:=N:<3q&BhS] ;T c+t0ppua:1bL"Q,:ѫaB>\8GbW\a<F:^rg xċ5,1n^vv4x\ܡl ]*^ɪN`WkX/Vzjxد^t  6oaJ4E ``5تYwU< ب&Y[8Un6Vݮީ]ޭV ^ ӐHlph;4ܩ. wkk8᠆{4 >>s|i8Ǐ'=)ŭgX|ϩ<ZS[WaTC{{P{m*P4Q/m9ca}ss}<@BKӒZZuU 4qmwOF̍E{[ {(1!W5uu -S]W )GƓ늅.<H]MKxFȗʹ}x8꜔PBX͉x$Z{M'h_jm|x,:!Ocp(ܔVHZԶ*.#R5HwH#/ŴdZ2lEWȐch",X^]MT!IRxtsHWTS߼3W5U-l\RhIc Mh=D#H+rn4!{ 0aUhMhjW(b9P_Wc(YCvKiS/in~"pc_w[895'Bz3B(.̸X{K znY^eMܩrJX˅VD ܴ(XͪjSUcjXUcLUL"XoY5%ew(rjudLJav -aK^VԓDڥ0ErAIRta:1Fa_"5׵ AMʻ~lPgX,/;m -hS/bHХ# F:t^aIVj37֘H!g;a -ٱNu4)ҏ)y"UfvS]^QM(/bӫ/BhPI24j-5HQdB2=9K('\jY -dwֵƽAi-XVep$as%4tW,]FfDP'ftxѢK\kidgʹ 2+ğ}U*՘jEgtgfa5h[~47jD,ׄ{v"EΘh"^h4mV-iä1+^+#t)NUR<6PZ62"ZooXKwL6Ͳ - |bmȤTDz`Ezb/B$?)b071P9uK4MWoErN.ctut"#6z8[hXOJCc,QS*uz ]E#3ۻ&0+ͱx{.)<Ma6< [xW<oW&-ov{tBuزT!?YJE!j28rSNS~0-\fp?„ɁX? :S3 u 00ۋ.9SR9w_2e|*N1ЋHgQ.pc =Y  |'&fAC |ߢT o;)TRY%MM- E j | |5}U%h8G*~` -)ޕe.U$JTyYPNW"M=r8d! " DWhKNY(ZM "JymYEs)હ -͞=*͒Qo3hzՙխMu8ROD?jX}!Q@XmG$0"]|tҸMלp#? O%?O u7!ӚeC疍@N'pkU~ץi+y e=´{nEׄehGᖘ9)㨠E#f&mֹEs-I 9r<d~RQMR+i;DnKz'|R!k-(K]z]s)RUzQ'̥0U,$3N(iYM$oIdo&|+ɛmoɷ|Ml$o|Mm6H~& yMEnmc!yM~l$?aLk?@ ~P@ P0B@=_v%]A KC=//p9߼GPW:eHVx V< Y!;jz^C <ʓ׀?n -n1_7hpts g`E -CӘh ^1P -)Gc(|()#F7 4Ԭަ~d -jPCNR 3jj&@g:i'0;08^ZK-ss-|>kh>x2?4|'شgX댚+pbPqeAX'Xo#??'AH|B5Z' mN]..|,3D#xPx'?h ϠZ,мփ!_u -43g3П[@8#']9&9dzWY}Ε οw,8']9ˁA s8Jr~*%mWOIVϼJZ H_SBGw]B3VaʓN?&O\W%?I2`/)ƟSFkyAkJX;` p8,r' Ͽgfoxzx~Kps7 wufx:ְ<O| pp (QTQi?Z5b!6ȌCD5'ֹ.= C"*7u0]"j3p'Bg<xN< x3O  <+Bq^:+/a(Gp`4㞰2`m -Te+PCH]NL$dn={P \K6K 5ok/ ;OgM~D -/?vf- J̣71W--6ٗ?GKB ā ץ#fC-JLY;:ދX$;/$-+.ٸc/hǷ „A8x [tcm8Rܾ݈Wn1Zfc0{` NfhE ^I -A5UHgDJTB&kKLu7FERR'%,ñI# @F 'XK]3FĖS^YY,˂$)6S98 -4 -8 d:(H:8@isxqtX:$?r0==>gz܆>&`Z&4h4C rɟ3٩IvHgw1dxvhg3Lcw#ddwnv:UP@&, }>]\{C0wjfV5DГV"}ߙYϨ1‘ NpGRkW A_ݛY`1fIbdO[!4`iQ >esT:4>ŸnEѶ<ˁJ`|i*§[@4gqz$A^ ;mW`$yWR5(P|6G؜.SxZޙTA_4ê6(JFbEKEkoJk7&jN[ǂqΔ=prK;öe[Z6G>:$;9e:pϧi2d"k![NIE -}ZTd r:T4間@b9 M6J^Z{uiR97bi2W&k <yN -Z,X1gNy|VNlTЕlSkMm.W- k=3@W@QȖ좤-=JKCBeW/8_LiUǷ 79u ]`^'| _ T@Cx*86* .T4y?<A( -y"D r gsPx%&cN3(ÿ3+a*-۪lwJ_(ʘXPRI2Yf2YfRntd[&.&eu3y2l[&g,Ln&GY&n&>$b_[&}n&-5n&[-L.Lq3 Y&n&,sLJ+癭 -˸RY_P} U`r9W{j,QLTV MeܬLSnU([sەMʝg=,>$egEiS(G7q0اb;!wb7-f+YNn+ wp{Ol-xӶE,]P<d |wdS%)Cˠ -jůjDeUДLTހI[p6LWޅ0KN)Z}.Ɠhd3~$nfKr:ݶDxF)#~\>UťXlUZ], \~mپ+ͻnj>2-kkS. p$L~ĹP | X@%i匀PK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -F= AMETA-INF/PK -F=,p+META-INF/MANIFEST.MFPK -F=_x aMETA-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A9com/jacob/PK -5`.=Aacom/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. -com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? ?com/jacob/com/ComException.classPK -5`.=L듄,$$com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!o&com/jacob/com/DateUtilities.classPK -uF=w@G*com/jacob/com/Dispatch.classPK -5`.=F "O;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &0@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)MEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh.Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK . Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["8^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y]ncom/jacob/com/Pointer.classPK -5`.=(bpcom/jacob/com/PointerWeakReference.classPK -<1=<o0rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Lcom/jacob/com/SafeArray.classPK -4`.=%b5/Ɗcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK -F=cA*3com/jacob/com/Variant.classPK -5`.=#x $=com/jacob/com/VariantUtilities.classPK -5`.=13#Ycom/jacob/com/VariantViaEvent.classPK -5`.=#g["(icom/jacob/com/WrongThreadException.classPK.. -PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -#F=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -#F=I%%)org/jruby/ext/win32ole/RubyWIN32OLE.class1` -G 2 -2 - - - - - -2 - - -2 - - - - -2 - -2 -2  - - - -2 -2 - - -2 - -2 - -2 - 2 2 - - - - - - - - - -2 - -2 - - - - - - - - - -  - -D 2EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java PQ NO         !" #$ % &' () (* +,- ./com/jacob/com/Dispatch P0 z =1 23 4 56 7 89 :; < = JK HIjava/lang/Object> 4 ?@ (9 AB C DE F GH#org/jruby/ext/win32ole/RubyWIN32OLEI JK \] P[ LM N4 OP Q/ RS TUV WX YZ [\ ]^{{ _3}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses P LMorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date;getInt newFixnum(I)Lorg/jruby/RubyFixnum; getString newString*(Ljava/lang/String;)Lorg/jruby/RubyString; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!2GHIJK LMNOPQRR *+,*S$! %T  UV WX YZP[R\ *+,*-S(* +T* UV WX YZ NO\]R/*S.T UVN^R@ +*S4T UV _`abcdR1+N*::,+- -W- S9:>?@)A,CT> ef1UV1_`1gh,WX#ijabklR B- :* :,6*:*:+ SIJKNO+Q8STf -(mfBUVB_`BnoBpoBqo:rs2tI+uv8 -mfa bwIxyzRm,2N*Y-*SX Z\T*UV_`p{ |}abwI~Z~zRE*+,SaT UV_`p{abwI~Z~lR\ -*+,--SgT4 -UV -_` -no -po -oabzR|,,2N-*+--d,*+-,Sl n$qT*,UV,_`,p{ #}abwI~Z~^RG*+ S -vxTUV_`abRc,N+*- S -}T*UV_`o}ab[swI~Rw,:*-!"+ ST4UV_`oeo}ab[swIlR] *+,-ST4 UV _` no po qoabzR],2N*+-,S - T*UV_`p{ }abwI~Z~R%*-#: -:*,$W+ ST>%UV%_`%}%p{tIKR ;- :,6* :*%: * &: -+ - S 1Tp ;UV;_`;no;po;qo;v3rs,uv$tI K 1 -mf -RB ' -STUVvR5+>d(d):6d+2!SS ,2T>v5UV5{5v2v tIR4+*=()N6++!:-S-S" &,2T>&v4UV4rs/v"tIR--*,,:*,*-#-:+ S#T>f-UV-_`-}-p{# -fR9*STUV R4 -*).ST  -o R+* +/k YYkkkPb@k7*+012Y*3+45*+67*+89*+:;*+<S" DM]foxTWXf RX=M,+>*,?@S T WX RV$*!*AB*C**d*S"T $|}R8)( -'DYEFS  -DPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -#F=1ki i win32ole/win32ole.jarPK -F= META-INF/PK -F=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -F= win32ole/PK -F=tZ jacob.jarPK -vF= META-INF/PK -uF=%#META-INF/MANIFEST.MFP=k07)M6p3d-|NlHr!rvt{Y+k: l J -`Q+BⒸ㒒ʣز>3.>ג5b OBmw"VgJqXV*MifD %jHiDm:UL{XBKAuom||ztdw7ԑ7y#%aq@3'M7T/^+3h'Zx[pDƎ:=[ )@f%oPK -vF=Y Yx META-INF/JacobVersion.properties5̱ -0=wՔ{j%Щ -..CXoH{: -u &` ;f*$#`u4_K3--VӚƱH2I6gH PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -uF=w@Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f  bcp kV%#Nڭ] [&- VVBywJ_k;F_]W~sCMp9:W;}7< 7oŷX|/~>>}*nj/P"y7;}^O/ [P?~x~DS/>FkT_PK//}ju*~CX0QE.%/+2ylҳog=vmgb *3\^NԤg$ -f%OUVOU `u2BW>I(zq[)}J:'$fFx,vyJ^ӣkdztm]rYOw mޣl6е3իkό#3k6 g615nz.LЃ LْL+J_N)Ę)^/X2܄bf&\^Ilʾv<A2g9ш+r--CJ+NmOԘ DŽWHR2hg-57pvL*X:dGdb}I|UKSJrd,i16apK] px'2Ir۩R`_g.QN -}F,t(?썍Jy1%Ǯ͏)҈E2e]6˅\.Y.HāSsXcdz*s79<2Xn1!FHixnJɣ($~dq\.u"[Zԩp0zwBـ4f3E{G sbpnyV]l㶑^u¬r@BɝLjj#W4kG١].>ZgрA–A zuP!$2dw2RF]V# ꜖:AfklיEN[.w&`z i$g3{Q@:^ȆN8̵ ?;Fo,81<vfH_h)'ⷜ}q'8}+p]N_Npcn`Ayvqi5 F2Z[_@l8(wؽ0cg[BtA3,eR'!/&䎅N"fg -2V{`Ql f"e-Z/-(n~;d4sh4&zQf-ߢMcE(5]׭ax&#x2ٸ)Iwgr. %0r/`YX*ʩ丒+s͚bZId\$G8'SH&e|"?ɩ #r."G&<,!`OJ#D$a2$p\!*e - qz,`Uy;h2$E].Q1a <yEVx<-g"{Dfo.2gnc):IIՑȴ Qj TgPm p#gb&}vK>Lş\zT|0BAr㪞ZӍخ^؃C'r[m6Aam/Jn0Al׎+9:`c:9LQJoe^'SL48r~/G;Xm -M> a=0xwxnEx}=x5y-T/zC3[Blψ$VvQlŲ - -@v(Gx(m@ː[ [s^p=jT9!ZYk$xNT>ݪ2b9ȥߋ(C؅WZ]UGNtA֫6vy ʙ(6п1к>Zw1r -QH= eXJ ᣰP ܢ\!W#J0WLsF;`~nCT BsQg:Õp%&F]u0ͮ-= FYhma-mmƧH5|j,38YՁV -PԅCFGAn4Jb|ʹt.4t2!!Q$p qQ;%]q3~ -F"OyQ΋P6G왟A^KNUulUqx)ڡ?M䑹LRmE ]CFcTrAV}=am-}[P -<3rp&XUB,$BWg&VkSX^;ejmFD -5͡rhU! -ށP-*:n -jJ@[H*,\!z:Op=oރ}~?`vA,2}VԳr޶3P/: jNL2u!AKNfQJ -emVC\f{׷H }3p֕w ?6ji zJ5qH7m\c ~K$h 3o7 vr\{/i'פQnɋ(ra\5IYL];G )Z܎ZJ<ĝ(qd1#.qHasDB15(fP~]< - &,QXģGa85-#WSإD֧˺P#@jH5[i!a!jo7mD.- nE *hFPE - L˵؉`1^ FfN[+z}+  fCQ+ JT~**ŧJPi*TsUOqPLԨG7X,D]~\hR ֊cu=IEyQ~*b!C!""!""jZJNqEkH㳤<VH+UR@jHY 5s$ݦ }}}-UjnZ! 7;bT FbT FbT F9">5 -nZ,`'BފȽ*EM 6&r@nTKT9#Ə<V{CV. qՅYBpS)\.t -: …NZ3="SC1hFqDLI4J(xe FA}hw& -a]XF(hRUnu+(&[Q6QP=Uk(&ۑ(1? -e &ct& -jH`&'K6QPC<(xe ; -߶BEaQ+6QPsaŋ Yk -fIo5.W^(Eno#m%+5J }Hi}3+uRyQoÐ9s[ԋܢ^]G}1<-T8Wzhya6v],m|MI[&? -'>8Bn] uMxL)/FHӦtpY䙞>\i~(<=a΁vgPÃ(;gMHiu]a9i]Q+RZ]W<dMTFyvRJs؜mW5Fу(zOl v a}':tdIhC~QeTjR:JB}i$xkN25 ?Og1%&!sJH 8'ABjz^/-xRZ'8Rkshu,&x?Ԉ-@aT$w3JNMn,C7z79A-S2FʵFL*RS$ .I5Ɵ0j 杨iHiHTMJQҦHV e9#eeUR4Hi6"YFHD0:Rb|2BNVMX9y'{9ՄybMg1i-?XF'&lH0B~MI\ wA!;'s7K"cCw!;~"2>+2b ٔcf>Ş~LG6df¬PFz>kcV _[ӫyۤ0α@C]صN" -LI2jZh)b.Oүt}d>??I`F?ڏC!qh#hI':_S%PK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK - /=x2com/jacob/com/Variant.classZ |?gv73;$% ` L|n4R_V/E}aA*VQն~_;wg'3iιs|S0?C8[x<;A6uбCŨ.WqRŘ\jةb%W1b#~|O bktkUP>a'HNjn]ʏuj$7z 5Ό~ cRi8VUծDR#5Wū뇌y5إ4?7jZ hy'j z ON <MA?OJQlt W&YY<[qTncBC;5jS  > ph3 ! kCÇ5|DÝ>. wkkد5|w{5/SY[<_ ?~jMm] 퉮ɫ"퉶ZE777Υ$4-EШUWLMC*vu`N"LQߒHgoC1 R03ye'} -4ǓѪLDD,ȾDo[C(sz{z>ޜWp^KvGR+o_OOtBWHtF#q52΂jM=(03g%%EX<J3h.$WSwzz"dz˩o67/:EUMU -\XC ZObX*]eAF6LWL6'JȌjbkHS1i q!ItOQC,mjDhMqͩHn)a3FTZkf`C=)F#0oje,IQ;\C}m}MQ*~ϊU,J,NFEj6j̮1̮:3LފfSb)3y,,"c+dLzj)FYN]k"(7E2WG鄒&:kRt0ac9Ts2 &]Ka9XLH69Ua 1(Vrcb%08upa<*-JmS!'bB8ֻH98_1%O,YeF7-MfW'!IG$zebS!5K,'\jYpgZ> D'j-yT1SVfaKp U|XyXdbjU7 2L;՞EuUBŰXMŒJ̭1̱J\TTׄѾ&m'Rnjnꍧb]%dU!t -&JXNF]99^Mq$LQG=i!nc5e-`'+"ٖ8ܘles+u2@G4fy$YwY]lF=NFoCP7R vxDhюLm]w9WT:;=!aǒq6zNZh=1ҟD3PȌ7r%3;a& L -zs=ZHc61yxW,<g&_Ǜl2w{t<_6dR1R_!w:[ w>(itE_nQS[: +&ξL͐S2XS_Jy1d` \3cX;E-s`ߨxen~HG.yf+h*.EOʪ |ߠ\t*pN°%oxM6,njmlih U7-_hx1S |]u s !kᐊR<.>y鯊@ k!\Ҡ MDhqK3z7,'B(WE@- wіHPn9I :Eef7aF,*4k,4Wk"ަQ3[j()¼qS1.Is -qGGaBM4gˆu!m|ǀ:6c?<mT"#؀ppݠeMLqF /fwiϵT?벬Lu^LOW(힣5ўX#6Bܒ0a|(9*mӐ:;ie;ˣZ6twMG sJH@$vhiVӧG}9|ZHrnHǚdsJ<Ѷ$kWzv:pjTqo^/R0^?FsQk4ǙAn7M7[mfH&A6.䟒|M{m}$oMHnwM~6Qw$?f'&&'l^ɿ )dqgGK:y+tn=<*ƽD xy|U2,tʐ@4?|t-=7PHw1 ^Q-拢@fޔf6x) W ٴt^MBM0bm1F"Zo<bvA9LSp)m<dWvd!0z<fnҹT -kczc#1lr;9wwi(Z<!}I3_wz7#G9kQN?aki|' +$%aQDF(8>J%R߅dK Ĺls-l=rT'GKncl:Sh+HΟ9p8?KϹr)%+$:p2<'ί뮜;މAەӒ,4㙳u 84,–f@Bi|''YdD/=W -|mt? -~$6 g%N<"?x:k Oہ߉_ \xdƁ߉7&0OߒlwX#.<M`? y8E-<&AT=$%Qف)jcxtDL%Yl:aXHE.5xN<7̙'9<ҙVI{aD^:*atp~(1pgcXjEev%-a;f6+ ?h_: -!}5lS*zxf'iNx ~f 3kgP(EĜ,^1,gTp|/ OtAhu!B{wf >iFn !Zq0~ 8,/y7N z0Geӛn3(J?s%,f 5\Fתpfɧ8ϷŁjŁ>`)Y0TGoppbb&C8{ !lKmE,BY—i1n2pc@`85P6p\pe@ D@bHX$ NN .BG碏}tI0uGV,:o.;5)S]J (<ځi{`#Ytd7;]a 6C\t}fp>.fBehJ,&TYAi~.BٰK=YE |kn8KqCeNTȪhW sZ5Pܗ[1X+$1Zڅu ~8,/>l3T6؋?-=<@gg?-yN͙ >]Yh%aPhٻp{8(x&YW2_e*ٌo3N[0.PzFiAZƶ%io5-oQgˎ,o}IЫqL|5ac8/9كmj>kS~ 8|uȄ/=%eM?qfn-`e`YV-R|P ]fl~D9s0rN\H(HF)lFB-*kWh;6G|qn5s9+hp9IXY ->,ЕV[KOq9C F1(*J_,EԑוdrCE<է;<{z @[n]ZG`ӿ'%@Z n&8o & b@+\*;(u3,߷o9Rh;2A۔*Qu}Շ"VWR?JR̷TVTX*T|J -~ftTn*[* 7>KMe=7-7tQ?[*)7J6KeZ7rLKM2x* ^ljQA!%Gdj*"ep@*WߔTOW xrޯ܀/*7⟔"VeEYܮ\ܩܦlURV>Ux=<=-vOӭTO8g5Σ y ~9 -~,H.kym!xNno wuлīU׿vC.ِv>VGdzgC\UP+~MNU*/~0Ay&*0U9Ӕw`.T)CU>6 ͠#m.3q:϶ =#C\\UlbpkU^\lat` ?]q@OCûZ!J'(HDI\b}_sRkN|ʃYPK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -vF= AMETA-INF/PK -uF=%#+META-INF/MANIFEST.MFPK -vF=Y Yx `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A8com/jacob/PK -5`.=A`com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? >com/jacob/com/ComException.classPK -5`.=L듄,$#com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!n&com/jacob/com/DateUtilities.classPK -uF=w@G*com/jacob/com/Dispatch.classPK -5`.=F "N;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &/@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)LEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh-Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["7^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y\ncom/jacob/com/Pointer.classPK -5`.=(apcom/jacob/com/PointerWeakReference.classPK -<1=<o/rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Kcom/jacob/com/SafeArray.classPK -4`.=%b5/Ŋcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK - /=x2com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#3com/jacob/com/VariantViaEvent.classPK -5`.=#g["(Ccom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -F=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -F=?B'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -T ? -? - - - - - -? - - -? - - - - -? - -? -?  - - - -? -? - - ? ?  -$ -$ -$ -$ -$ - - -? - -? - -? - ? - ?  -  -  - -  - - - - - -? - -? - - - -! -" -#$ -#% -#& -'( -)*+ -Q ?./EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch; timeSpentJcountI<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freestartDop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ab [\0 123 45 678 9: ;< = >? @AB CD E FG HI HJ KLM NOcom/jacob/com/Dispatch aP =Q RS T UV W XY Z ]^ _` [\java/lang/StringBuilder a Time spent: ]^ ]_COUNT: ]` aOb cP de fg h i WX UVjava/lang/Objectj T kl He mn o pq r: st#org/jruby/ext/win32ole/RubyWIN32OLEu vw mn al xy zT {| }O ~    Y {{ S}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses YZorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String;java/lang/SystemnanoTime()J safeReleaseoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toStringjava/io/PrintStreamprintlngetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date;getInt newFixnum(I)Lorg/jruby/RubyFixnum; getString newString*(Ljava/lang/String;)Lorg/jruby/RubyString; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillisnewTime(J)Lorg/jruby/RubyTime; -startsWith!?TUVWX YZ[\]^_`abcR *+,*d$! %e  fg hi jkalc\ *+,*-d(* +e* fg hi jk [\mnc/*d.e fg[oc@ +*d4e fg pqrstuc1+N*::,+- -W- d9:>?@)A,Ce> vw1fg1pq1xy,hi#z{rs|}c B- :* :,6*:*:+ dIJKNO+Q8Sef -(~wBfgBpqBBB:2V+`8 -~wr sIcm,2N*Y-*dX Z\e*fgpq rsIZcE*+,dae fgpqrsIZ}c\ -*+,--dge4 -fg -pq - - -rsc|,,2N-*+--d,*+-,dl n$qe*,fg,pq, #rsIZocYI* !(gc!"Y`"p)#$Y%&'!()'"*+,+ dxy {}Qe YfgYpqTrscc,N+*-- d -e*fgpqrs[sIc!+:,:*-./ de>!fg!pq!!vhirs[sI}c] *+,-de4 fg pq   rsc],2N*+-,d - e*fgpq rsIZc%*-0: -:*,1W+ de>%fg%pq%%VXc ;- :,6* :*2: * 3: -+ - d 1ep ;fg;pq;;;;`3,`$V X 1 -~w -cB 4 -defg`c5+>d5d6:6d+2.Sd ,2e>`5fg55`2` Vc4+7=56N6+8.:-S-d" &,2e>&`4fg4/`"Vc--*,9:*,*-0::+ d#e>w-fg-pq--# -wc9*defg c4 -*6;de  - c+* +<k YYkkkPb@k7*+=>?Y*@+AB*+CD*+EF*+GH*+Id" DM]foxehiw cXJM,+K*,LMd e hi cV$*!*NO*P**d*d"e $cH 65 -4QYRS !"d tu- -QPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -F=vWM -M -win32ole/win32ole.jarPK -F= META-INF/PK -F=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -F= win32ole/PK -F=tZ jacob.jarPK -vF= META-INF/PK -uF=%#META-INF/MANIFEST.MFP=k07)M6p3d-|NlHr!rvt{Y+k: l J -`Q+BⒸ㒒ʣز>3.>ג5b OBmw"VgJqXV*MifD %jHiDm:UL{XBKAuom||ztdw7ԑ7y#%aq@3'M7T/^+3h'Zx[pDƎ:=[ )@f%oPK -vF=Y Yx META-INF/JacobVersion.properties5̱ -0=wՔ{j%Щ -..CXoH{: -u &` ;f*$#`u4_K3--VӚƱH2I6gH PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -uF=w@Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f  bcp kV%#Nڭ] [&- VVBywJ_k;F_]W~sCMp9:W;}7< 7oŷX|/~>>}*nj/P"y7;}^O/ [P?~x~DS/>FkT_PK//}ju*~CX0QE.%/+2ylҳog=vmgb *3\^NԤg$ -f%OUVOU `u2BW>I(zq[)}J:'$fFx,vyJ^ӣkdztm]rYOw mޣl6е3իkό#3k6 g615nz.LЃ LْL+J_N)Ę)^/X2܄bf&\^Ilʾv<A2g9ш+r--CJ+NmOԘ DŽWHR2hg-57pvL*X:dGdb}I|UKSJrd,i16apK] px'2Ir۩R`_g.QN -}F,t(?썍Jy1%Ǯ͏)҈E2e]6˅\.Y.HāSsXcdz*s79<2Xn1!FHixnJɣ($~dq\.u"[Zԩp0zwBـ4f3E{G sbpnyV]l㶑^u¬r@BɝLjj#W4kG١].>ZgрA–A zuP!$2dw2RF]V# ꜖:AfklיEN[.w&`z i$g3{Q@:^ȆN8̵ ?;Fo,81<vfH_h)'ⷜ}q'8}+p]N_Npcn`Ayvqi5 F2Z[_@l8(wؽ0cg[BtA3,eR'!/&䎅N"fg -2V{`Ql f"e-Z/-(n~;d4sh4&zQf-ߢMcE(5]׭ax&#x2ٸ)Iwgr. %0r/`YX*ʩ丒+s͚bZId\$G8'SH&e|"?ɩ #r."G&<,!`OJ#D$a2$p\!*e - qz,`Uy;h2$E].Q1a <yEVx<-g"{Dfo.2gnc):IIՑȴ Qj TgPm p#gb&}vK>Lş\zT|0BAr㪞ZӍخ^؃C'r[m6Aam/Jn0Al׎+9:`c:9LQJoe^'SL48r~/G;Xm -M> a=0xwxnEx}=x5y-T/zC3[Blψ$VvQlŲ - -@v(Gx(m@ː[ [s^p=jT9!ZYk$xNT>ݪ2b9ȥߋ(C؅WZ]UGNtA֫6vy ʙ(6п1к>Zw1r -QH= eXJ ᣰP ܢ\!W#J0WLsF;`~nCT BsQg:Õp%&F]u0ͮ-= FYhma-mmƧH5|j,38YՁV -PԅCFGAn4Jb|ʹt.4t2!!Q$p qQ;%]q3~ -F"OyQ΋P6G왟A^KNUulUqx)ڡ?M䑹LRmE ]CFcTrAV}=am-}[P -<3rp&XUB,$BWg&VkSX^;ejmFD -5͡rhU! -ށP-*:n -jJ@[H*,\!z:Op=oރ}~?`vA,2}VԳr޶3P/: jNL2u!AKNfQJ -emVC\f{׷H }3p֕w ?6ji zJ5qH7m\c ~K$h 3o7 vr\{/i'פQnɋ(ra\5IYL];G )Z܎ZJ<ĝ(qd1#.qHasDB15(fP~]< - &,QXģGa85-#WSإD֧˺P#@jH5[i!a!jo7mD.- nE *hFPE - L˵؉`1^ FfN[+z}+  fCQ+ JT~**ŧJPi*TsUOqPLԨG7X,D]~\hR ֊cu=IEyQ~*b!C!""!""jZJNqEkH㳤<VH+UR@jHY 5s$ݦ }}}-UjnZ! 7;bT FbT FbT F9">5 -nZ,`'BފȽ*EM 6&r@nTKT9#Ə<V{CV. qՅYBpS)\.t -: …NZ3="SC1hFqDLI4J(xe FA}hw& -a]XF(hRUnu+(&[Q6QP=Uk(&ۑ(1? -e &ct& -jH`&'K6QPC<(xe ; -߶BEaQ+6QPsaŋ Yk -fIo5.W^(Eno#m%+5J }Hi}3+uRyQoÐ9s[ԋܢ^]G}1<-T8Wzhya6v],m|MI[&? -'>8Bn] uMxL)/FHӦtpY䙞>\i~(<=a΁vgPÃ(;gMHiu]a9i]Q+RZ]W<dMTFyvRJs؜mW5Fу(zOl v a}':tdIhC~QeTjR:JB}i$xkN25 ?Og1%&!sJH 8'ABjz^/-xRZ'8Rkshu,&x?Ԉ-@aT$w3JNMn,C7z79A-S2FʵFL*RS$ .I5Ɵ0j 杨iHiHTMJQҦHV e9#eeUR4Hi6"YFHD0:Rb|2BNVMX9y'{9ՄybMg1i-?XF'&lH0B~MI\ wA!;'s7K"cCw!;~"2>+2b ٔcf>Ş~LG6df¬PFz>kcV _[ӫyۤ0α@C]صN" -LI2jZh)b.Oүt}d>??I`F?ڏC!qh#hI':_S%PK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK - /=x2com/jacob/com/Variant.classZ |?gv73;$% ` L|n4R_V/E}aA*VQն~_;wg'3iιs|S0?C8[x<;A6uбCŨ.WqRŘ\jةb%W1b#~|O bktkUP>a'HNjn]ʏuj$7z 5Ό~ cRi8VUծDR#5Wū뇌y5إ4?7jZ hy'j z ON <MA?OJQlt W&YY<[qTncBC;5jS  > ph3 ! kCÇ5|DÝ>. wkkد5|w{5/SY[<_ ?~jMm] 퉮ɫ"퉶ZE777Υ$4-EШUWLMC*vu`N"LQߒHgoC1 R03ye'} -4ǓѪLDD,ȾDo[C(sz{z>ޜWp^KvGR+o_OOtBWHtF#q52΂jM=(03g%%EX<J3h.$WSwzz"dz˩o67/:EUMU -\XC ZObX*]eAF6LWL6'JȌjbkHS1i q!ItOQC,mjDhMqͩHn)a3FTZkf`C=)F#0oje,IQ;\C}m}MQ*~ϊU,J,NFEj6j̮1̮:3LފfSb)3y,,"c+dLzj)FYN]k"(7E2WG鄒&:kRt0ac9Ts2 &]Ka9XLH69Ua 1(Vrcb%08upa<*-JmS!'bB8ֻH98_1%O,YeF7-MfW'!IG$zebS!5K,'\jYpgZ> D'j-yT1SVfaKp U|XyXdbjU7 2L;՞EuUBŰXMŒJ̭1̱J\TTׄѾ&m'Rnjnꍧb]%dU!t -&JXNF]99^Mq$LQG=i!nc5e-`'+"ٖ8ܘles+u2@G4fy$YwY]lF=NFoCP7R vxDhюLm]w9WT:;=!aǒq6zNZh=1ҟD3PȌ7r%3;a& L -zs=ZHc61yxW,<g&_Ǜl2w{t<_6dR1R_!w:[ w>(itE_nQS[: +&ξL͐S2XS_Jy1d` \3cX;E-s`ߨxen~HG.yf+h*.EOʪ |ߠ\t*pN°%oxM6,njmlih U7-_hx1S |]u s !kᐊR<.>y鯊@ k!\Ҡ MDhqK3z7,'B(WE@- wіHPn9I :Eef7aF,*4k,4Wk"ަQ3[j()¼qS1.Is -qGGaBM4gˆu!m|ǀ:6c?<mT"#؀ppݠeMLqF /fwiϵT?벬Lu^LOW(힣5ўX#6Bܒ0a|(9*mӐ:;ie;ˣZ6twMG sJH@$vhiVӧG}9|ZHrnHǚdsJ<Ѷ$kWzv:pjTqo^/R0^?FsQk4ǙAn7M7[mfH&A6.䟒|M{m}$oMHnwM~6Qw$?f'&&'l^ɿ )dqgGK:y+tn=<*ƽD xy|U2,tʐ@4?|t-=7PHw1 ^Q-拢@fޔf6x) W ٴt^MBM0bm1F"Zo<bvA9LSp)m<dWvd!0z<fnҹT -kczc#1lr;9wwi(Z<!}I3_wz7#G9kQN?aki|' +$%aQDF(8>J%R߅dK Ĺls-l=rT'GKncl:Sh+HΟ9p8?KϹr)%+$:p2<'ί뮜;މAەӒ,4㙳u 84,–f@Bi|''YdD/=W -|mt? -~$6 g%N<"?x:k Oہ߉_ \xdƁ߉7&0OߒlwX#.<M`? y8E-<&AT=$%Qف)jcxtDL%Yl:aXHE.5xN<7̙'9<ҙVI{aD^:*atp~(1pgcXjEev%-a;f6+ ?h_: -!}5lS*zxf'iNx ~f 3kgP(EĜ,^1,gTp|/ OtAhu!B{wf >iFn !Zq0~ 8,/y7N z0Geӛn3(J?s%,f 5\Fתpfɧ8ϷŁjŁ>`)Y0TGoppbb&C8{ !lKmE,BY—i1n2pc@`85P6p\pe@ D@bHX$ NN .BG碏}tI0uGV,:o.;5)S]J (<ځi{`#Ytd7;]a 6C\t}fp>.fBehJ,&TYAi~.BٰK=YE |kn8KqCeNTȪhW sZ5Pܗ[1X+$1Zڅu ~8,/>l3T6؋?-=<@gg?-yN͙ >]Yh%aPhٻp{8(x&YW2_e*ٌo3N[0.PzFiAZƶ%io5-oQgˎ,o}IЫqL|5ac8/9كmj>kS~ 8|uȄ/=%eM?qfn-`e`YV-R|P ]fl~D9s0rN\H(HF)lFB-*kWh;6G|qn5s9+hp9IXY ->,ЕV[KOq9C F1(*J_,EԑוdrCE<է;<{z @[n]ZG`ӿ'%@Z n&8o & b@+\*;(u3,߷o9Rh;2A۔*Qu}Շ"VWR?JR̷TVTX*T|J -~ftTn*[* 7>KMe=7-7tQ?[*)7J6KeZ7rLKM2x* ^ljQA!%Gdj*"ep@*WߔTOW xrޯ܀/*7⟔"VeEYܮ\ܩܦlURV>Ux=<=-vOӭTO8g5Σ y ~9 -~,H.kym!xNno wuлīU׿vC.ِv>VGdzgC\UP+~MNU*/~0Ay&*0U9Ӕw`.T)CU>6 ͠#m.3q:϶ =#C\\UlbpkU^\lat` ?]q@OCûZ!J'(HDI\b}_sRkN|ʃYPK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -vF= AMETA-INF/PK -uF=%#+META-INF/MANIFEST.MFPK -vF=Y Yx `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A8com/jacob/PK -5`.=A`com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? >com/jacob/com/ComException.classPK -5`.=L듄,$#com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!n&com/jacob/com/DateUtilities.classPK -uF=w@G*com/jacob/com/Dispatch.classPK -5`.=F "N;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &/@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)LEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh-Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["7^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y\ncom/jacob/com/Pointer.classPK -5`.=(apcom/jacob/com/PointerWeakReference.classPK -<1=<o/rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Kcom/jacob/com/SafeArray.classPK -4`.=%b5/Ŋcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK - /=x2com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#3com/jacob/com/VariantViaEvent.classPK -5`.=#g["(Ccom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -F=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -F=0~'~')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -R = -= - - - - - -= - - -= - - - - -= - -= -=  - - - -= -= - - = =  -$ -$ -$ -$ - - -= - -= - -= - = = -  - -  - -  - - - - - -= - -= - - - - - - -! -" -#$ -%&' -O =*+EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch; timeSpentJcountI<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freestartDop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java _` YZ, -./ 01 234 56 78 9 :; <=> ?@ A BC DE DF GHI JKcom/jacob/com/Dispatch _L =M NO P QR S TU V [\ ]^ WXjava/lang/StringBuilder _ Time spent: YZ Y[ \K] ^L _` ab c d UV STjava/lang/Objecte P fg D` hi j kl m6 no#org/jruby/ext/win32ole/RubyWIN32OLEp qr kl _j st uP vw xK yz {|} ~  U {{ O}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses WXorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String;java/lang/SystemnanoTime()J safeReleaseoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;toStringjava/io/PrintStreamprintlngetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date;getInt newFixnum(I)Lorg/jruby/RubyFixnum; getString newString*(Ljava/lang/String;)Lorg/jruby/RubyString; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillisnewTime(J)Lorg/jruby/RubyTime; -startsWith!=RSTUV WXYZ[\]^_`aR *+,*b$! %c  de fg hi_ja\ *+,*-b(* +c* de fg hi YZkla/*b.c deYma@ +*b4c de nopqrsa1+N*::,+- -W- b9:>?@)A,Cc> tu1de1no1vw,fg#xypqz{a B- :* :,6*:*:+ bIJKNO+Q8Scf -(|uBdeBnoB}~B~B~:2T+^8 -|up qIam,2N*Y-*bX Z\c*deno pqIZaE*+,bac denopqIZ{a\ -*+,--bgc4 -de -no -}~ -~ -~pqa|,,2N-*+--d,*+-,bl n$qc*,de,no, #pqIZmaNI* !(gc!"Y`"p#$Y%&'!()*+ bxy {}Fc NdeNnoIpqac,N+*-+ b -c*deno~pq[sIa!+:,:*-,- bc>!de!no!~!t~fgpq[sI{a] *+,-bc4 de no }~ ~ ~pqa],2N*+-,b - c*deno pqIZa%*-.: -:*,/W+ bc>%de%no%%TVa ;- :,6* :*0: * 1: -+ - b 1cp ;de;no;}~;~;~;^3,^$T V 1 -|u -aB 2 -bcde^a5+>d3d4:6d+2,Sb ,2c>^5de55^2^ Ta4+5=34N6+6,:-S-b" &,2c>&^4de4/^"Ta--*,7:*,*-.8:+ b#c>u-de-no--# -ua9*bcde a4 -*49bc  -~ a+* +:k YYkkkPb@k7*+;<=Y*>+?@*+AB*+CD*+EF*+Gb" DM]foxcfgu aXHM,+I*,JKb c fg aV$*!*LM*N**d*b"c $aH 43 -2OYPQ !"b tu) -OPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -F=iry ry win32ole/win32ole.jarPK -F= META-INF/PK -F=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -F= win32ole/PK -F=tZ jacob.jarPK -vF= META-INF/PK -uF=%#META-INF/MANIFEST.MFP=k07)M6p3d-|NlHr!rvt{Y+k: l J -`Q+BⒸ㒒ʣز>3.>ג5b OBmw"VgJqXV*MifD %jHiDm:UL{XBKAuom||ztdw7ԑ7y#%aq@3'M7T/^+3h'Zx[pDƎ:=[ )@f%oPK -vF=Y Yx META-INF/JacobVersion.properties5̱ -0=wՔ{j%Щ -..CXoH{: -u &` ;f*$#`u4_K3--VӚƱH2I6gH PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -uF=w@Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f  bcp kV%#Nڭ] [&- VVBywJ_k;F_]W~sCMp9:W;}7< 7oŷX|/~>>}*nj/P"y7;}^O/ [P?~x~DS/>FkT_PK//}ju*~CX0QE.%/+2ylҳog=vmgb *3\^NԤg$ -f%OUVOU `u2BW>I(zq[)}J:'$fFx,vyJ^ӣkdztm]rYOw mޣl6е3իkό#3k6 g615nz.LЃ LْL+J_N)Ę)^/X2܄bf&\^Ilʾv<A2g9ш+r--CJ+NmOԘ DŽWHR2hg-57pvL*X:dGdb}I|UKSJrd,i16apK] px'2Ir۩R`_g.QN -}F,t(?썍Jy1%Ǯ͏)҈E2e]6˅\.Y.HāSsXcdz*s79<2Xn1!FHixnJɣ($~dq\.u"[Zԩp0zwBـ4f3E{G sbpnyV]l㶑^u¬r@BɝLjj#W4kG١].>ZgрA–A zuP!$2dw2RF]V# ꜖:AfklיEN[.w&`z i$g3{Q@:^ȆN8̵ ?;Fo,81<vfH_h)'ⷜ}q'8}+p]N_Npcn`Ayvqi5 F2Z[_@l8(wؽ0cg[BtA3,eR'!/&䎅N"fg -2V{`Ql f"e-Z/-(n~;d4sh4&zQf-ߢMcE(5]׭ax&#x2ٸ)Iwgr. %0r/`YX*ʩ丒+s͚bZId\$G8'SH&e|"?ɩ #r."G&<,!`OJ#D$a2$p\!*e - qz,`Uy;h2$E].Q1a <yEVx<-g"{Dfo.2gnc):IIՑȴ Qj TgPm p#gb&}vK>Lş\zT|0BAr㪞ZӍخ^؃C'r[m6Aam/Jn0Al׎+9:`c:9LQJoe^'SL48r~/G;Xm -M> a=0xwxnEx}=x5y-T/zC3[Blψ$VvQlŲ - -@v(Gx(m@ː[ [s^p=jT9!ZYk$xNT>ݪ2b9ȥߋ(C؅WZ]UGNtA֫6vy ʙ(6п1к>Zw1r -QH= eXJ ᣰP ܢ\!W#J0WLsF;`~nCT BsQg:Õp%&F]u0ͮ-= FYhma-mmƧH5|j,38YՁV -PԅCFGAn4Jb|ʹt.4t2!!Q$p qQ;%]q3~ -F"OyQ΋P6G왟A^KNUulUqx)ڡ?M䑹LRmE ]CFcTrAV}=am-}[P -<3rp&XUB,$BWg&VkSX^;ejmFD -5͡rhU! -ށP-*:n -jJ@[H*,\!z:Op=oރ}~?`vA,2}VԳr޶3P/: jNL2u!AKNfQJ -emVC\f{׷H }3p֕w ?6ji zJ5qH7m\c ~K$h 3o7 vr\{/i'פQnɋ(ra\5IYL];G )Z܎ZJ<ĝ(qd1#.qHasDB15(fP~]< - &,QXģGa85-#WSإD֧˺P#@jH5[i!a!jo7mD.- nE *hFPE - L˵؉`1^ FfN[+z}+  fCQ+ JT~**ŧJPi*TsUOqPLԨG7X,D]~\hR ֊cu=IEyQ~*b!C!""!""jZJNqEkH㳤<VH+UR@jHY 5s$ݦ }}}-UjnZ! 7;bT FbT FbT F9">5 -nZ,`'BފȽ*EM 6&r@nTKT9#Ə<V{CV. qՅYBpS)\.t -: …NZ3="SC1hFqDLI4J(xe FA}hw& -a]XF(hRUnu+(&[Q6QP=Uk(&ۑ(1? -e &ct& -jH`&'K6QPC<(xe ; -߶BEaQ+6QPsaŋ Yk -fIo5.W^(Eno#m%+5J }Hi}3+uRyQoÐ9s[ԋܢ^]G}1<-T8Wzhya6v],m|MI[&? -'>8Bn] uMxL)/FHӦtpY䙞>\i~(<=a΁vgPÃ(;gMHiu]a9i]Q+RZ]W<dMTFyvRJs؜mW5Fу(zOl v a}':tdIhC~QeTjR:JB}i$xkN25 ?Og1%&!sJH 8'ABjz^/-xRZ'8Rkshu,&x?Ԉ-@aT$w3JNMn,C7z79A-S2FʵFL*RS$ .I5Ɵ0j 杨iHiHTMJQҦHV e9#eeUR4Hi6"YFHD0:Rb|2BNVMX9y'{9ՄybMg1i-?XF'&lH0B~MI\ wA!;'s7K"cCw!;~"2>+2b ٔcf>Ş~LG6df¬PFz>kcV _[ӫyۤ0α@C]صN" -LI2jZh)b.Oүt}d>??I`F?ڏC!qh#hI':_S%PK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK - /=x2com/jacob/com/Variant.classZ |?gv73;$% ` L|n4R_V/E}aA*VQն~_;wg'3iιs|S0?C8[x<;A6uбCŨ.WqRŘ\jةb%W1b#~|O bktkUP>a'HNjn]ʏuj$7z 5Ό~ cRi8VUծDR#5Wū뇌y5إ4?7jZ hy'j z ON <MA?OJQlt W&YY<[qTncBC;5jS  > ph3 ! kCÇ5|DÝ>. wkkد5|w{5/SY[<_ ?~jMm] 퉮ɫ"퉶ZE777Υ$4-EШUWLMC*vu`N"LQߒHgoC1 R03ye'} -4ǓѪLDD,ȾDo[C(sz{z>ޜWp^KvGR+o_OOtBWHtF#q52΂jM=(03g%%EX<J3h.$WSwzz"dz˩o67/:EUMU -\XC ZObX*]eAF6LWL6'JȌjbkHS1i q!ItOQC,mjDhMqͩHn)a3FTZkf`C=)F#0oje,IQ;\C}m}MQ*~ϊU,J,NFEj6j̮1̮:3LފfSb)3y,,"c+dLzj)FYN]k"(7E2WG鄒&:kRt0ac9Ts2 &]Ka9XLH69Ua 1(Vrcb%08upa<*-JmS!'bB8ֻH98_1%O,YeF7-MfW'!IG$zebS!5K,'\jYpgZ> D'j-yT1SVfaKp U|XyXdbjU7 2L;՞EuUBŰXMŒJ̭1̱J\TTׄѾ&m'Rnjnꍧb]%dU!t -&JXNF]99^Mq$LQG=i!nc5e-`'+"ٖ8ܘles+u2@G4fy$YwY]lF=NFoCP7R vxDhюLm]w9WT:;=!aǒq6zNZh=1ҟD3PȌ7r%3;a& L -zs=ZHc61yxW,<g&_Ǜl2w{t<_6dR1R_!w:[ w>(itE_nQS[: +&ξL͐S2XS_Jy1d` \3cX;E-s`ߨxen~HG.yf+h*.EOʪ |ߠ\t*pN°%oxM6,njmlih U7-_hx1S |]u s !kᐊR<.>y鯊@ k!\Ҡ MDhqK3z7,'B(WE@- wіHPn9I :Eef7aF,*4k,4Wk"ަQ3[j()¼qS1.Is -qGGaBM4gˆu!m|ǀ:6c?<mT"#؀ppݠeMLqF /fwiϵT?벬Lu^LOW(힣5ўX#6Bܒ0a|(9*mӐ:;ie;ˣZ6twMG sJH@$vhiVӧG}9|ZHrnHǚdsJ<Ѷ$kWzv:pjTqo^/R0^?FsQk4ǙAn7M7[mfH&A6.䟒|M{m}$oMHnwM~6Qw$?f'&&'l^ɿ )dqgGK:y+tn=<*ƽD xy|U2,tʐ@4?|t-=7PHw1 ^Q-拢@fޔf6x) W ٴt^MBM0bm1F"Zo<bvA9LSp)m<dWvd!0z<fnҹT -kczc#1lr;9wwi(Z<!}I3_wz7#G9kQN?aki|' +$%aQDF(8>J%R߅dK Ĺls-l=rT'GKncl:Sh+HΟ9p8?KϹr)%+$:p2<'ί뮜;މAەӒ,4㙳u 84,–f@Bi|''YdD/=W -|mt? -~$6 g%N<"?x:k Oہ߉_ \xdƁ߉7&0OߒlwX#.<M`? y8E-<&AT=$%Qف)jcxtDL%Yl:aXHE.5xN<7̙'9<ҙVI{aD^:*atp~(1pgcXjEev%-a;f6+ ?h_: -!}5lS*zxf'iNx ~f 3kgP(EĜ,^1,gTp|/ OtAhu!B{wf >iFn !Zq0~ 8,/y7N z0Geӛn3(J?s%,f 5\Fתpfɧ8ϷŁjŁ>`)Y0TGoppbb&C8{ !lKmE,BY—i1n2pc@`85P6p\pe@ D@bHX$ NN .BG碏}tI0uGV,:o.;5)S]J (<ځi{`#Ytd7;]a 6C\t}fp>.fBehJ,&TYAi~.BٰK=YE |kn8KqCeNTȪhW sZ5Pܗ[1X+$1Zڅu ~8,/>l3T6؋?-=<@gg?-yN͙ >]Yh%aPhٻp{8(x&YW2_e*ٌo3N[0.PzFiAZƶ%io5-oQgˎ,o}IЫqL|5ac8/9كmj>kS~ 8|uȄ/=%eM?qfn-`e`YV-R|P ]fl~D9s0rN\H(HF)lFB-*kWh;6G|qn5s9+hp9IXY ->,ЕV[KOq9C F1(*J_,EԑוdrCE<է;<{z @[n]ZG`ӿ'%@Z n&8o & b@+\*;(u3,߷o9Rh;2A۔*Qu}Շ"VWR?JR̷TVTX*T|J -~ftTn*[* 7>KMe=7-7tQ?[*)7J6KeZ7rLKM2x* ^ljQA!%Gdj*"ep@*WߔTOW xrޯ܀/*7⟔"VeEYܮ\ܩܦlURV>Ux=<=-vOӭTO8g5Σ y ~9 -~,H.kym!xNno wuлīU׿vC.ِv>VGdzgC\UP+~MNU*/~0Ay&*0U9Ӕw`.T)CU>6 ͠#m.3q:϶ =#C\\UlbpkU^\lat` ?]q@OCûZ!J'(HDI\b}_sRkN|ʃYPK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -vF= AMETA-INF/PK -uF=%#+META-INF/MANIFEST.MFPK -vF=Y Yx `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A8com/jacob/PK -5`.=A`com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? >com/jacob/com/ComException.classPK -5`.=L듄,$#com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!n&com/jacob/com/DateUtilities.classPK -uF=w@G*com/jacob/com/Dispatch.classPK -5`.=F "N;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &/@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)LEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh-Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["7^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y\ncom/jacob/com/Pointer.classPK -5`.=(apcom/jacob/com/PointerWeakReference.classPK -<1=<o/rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Kcom/jacob/com/SafeArray.classPK -4`.=%b5/Ŋcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK - /=x2com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#3com/jacob/com/VariantViaEvent.classPK -5`.=#g["(Ccom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -F=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -F=Pl|'|')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -S > -> - - - - - -> - - -> - - - - -> - -> ->  - - - -> -> - - > >@  -% -% -% -% - - -> - -> - -> - > > - - - - - -  - - - - - -> - -> - - - - - - ! - " - # -$% -&'( -P >+,EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch; timeSpentJcountI<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freestartDop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java `a Z[- ./0 12 345 67 89 : ;< =>? @A B CD EF EG HIJ KLcom/jacob/com/Dispatch `M =N OP Q RS T UV W \] ^_ XYjava/lang/StringBuilder ` Time spent: Z[ Z\ ]L^ _M `a bc d e VW TUjava/lang/Objectf Q gh Ea ij k lm n7 op#org/jruby/ext/win32ole/RubyWIN32OLEq rs lm `k tu vQ wx yL z{ |}~   V {{ P}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses XYorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String;java/lang/SystemnanoTime()J safeReleaseoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;toStringjava/io/PrintStreamprintlngetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date;getInt newFixnum(I)Lorg/jruby/RubyFixnum; getString newString*(Ljava/lang/String;)Lorg/jruby/RubyString; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillisnewTime(J)Lorg/jruby/RubyTime; -startsWith!>STUVW XYZ[\]^_`abR *+,*c$! %d  ef gh ij`kb\ *+,*-c(* +d* ef gh ij Z[lmb/*c.d efZnb@ +*c4d ef opqrstb1+N*::,+- -W- c9:>?@)A,Cd> uv1ef1op1wx,gh#yzqr{|b B- :* :,6*:*:+ cIJKNO+Q8Sdf -(}vBefBopB~BB:2U+_8 -}vq rIbm,2N*Y-*cX Z\d*efop qrIZbE*+,cad efopqrIZ|b\ -*+,--cgd4 -ef -op -~ - -qrb|,,2N-*+--d,*+-,cl n$qd*,ef,op, #qrIZnbGI* !(gc!"#p$%Y&'(!)*++ cxy {}?d GefGopBqrbc,N+*-, c -d*efopqr[sIb!+:,:*--. cd>!ef!op!!ughqr[sI|b] *+,-cd4 ef op ~  qrb],2N*+-,c - d*efop qrIZb%*-/: -:*,0W+ cd>%ef%op%%UWb ;- :,6* :*1: * 2: -+ - c 1dp ;ef;op;~;;;_3,_$U W 1 -}v -bB 3 -cdef_b5+>d4d5:6d+2-Sc ,2d>_5ef55_2_ Ub4+6=45N6+7-:-S-c" &,2d>&_4ef4/_"Ub--*,8:*,*-/9:+ c#d>v-ef-op--# -vb9*cdef b4 -*5:cd  - b+* +;k YYkkkPb@k7*+<=>Y*?+@A*+BC*+DE*+FG*+Hc" DM]foxdghv bXIM,+J*,KLc d gh bV$*!*MN*O**d*c"d $bH 54 -3PYQR !"c tu* -PPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -F=E\&&win32ole/win32ole.jarPK -7F= META-INF/PK -6F=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -7F= win32ole/PK -F=tZ jacob.jarPK -vF= META-INF/PK -uF=%#META-INF/MANIFEST.MFP=k07)M6p3d-|NlHr!rvt{Y+k: l J -`Q+BⒸ㒒ʣز>3.>ג5b OBmw"VgJqXV*MifD %jHiDm:UL{XBKAuom||ztdw7ԑ7y#%aq@3'M7T/^+3h'Zx[pDƎ:=[ )@f%oPK -vF=Y Yx META-INF/JacobVersion.properties5̱ -0=wՔ{j%Щ -..CXoH{: -u &` ;f*$#`u4_K3--VӚƱH2I6gH PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -uF=w@Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f  bcp kV%#Nڭ] [&- VVBywJ_k;F_]W~sCMp9:W;}7< 7oŷX|/~>>}*nj/P"y7;}^O/ [P?~x~DS/>FkT_PK//}ju*~CX0QE.%/+2ylҳog=vmgb *3\^NԤg$ -f%OUVOU `u2BW>I(zq[)}J:'$fFx,vyJ^ӣkdztm]rYOw mޣl6е3իkό#3k6 g615nz.LЃ LْL+J_N)Ę)^/X2܄bf&\^Ilʾv<A2g9ш+r--CJ+NmOԘ DŽWHR2hg-57pvL*X:dGdb}I|UKSJrd,i16apK] px'2Ir۩R`_g.QN -}F,t(?썍Jy1%Ǯ͏)҈E2e]6˅\.Y.HāSsXcdz*s79<2Xn1!FHixnJɣ($~dq\.u"[Zԩp0zwBـ4f3E{G sbpnyV]l㶑^u¬r@BɝLjj#W4kG١].>ZgрA–A zuP!$2dw2RF]V# ꜖:AfklיEN[.w&`z i$g3{Q@:^ȆN8̵ ?;Fo,81<vfH_h)'ⷜ}q'8}+p]N_Npcn`Ayvqi5 F2Z[_@l8(wؽ0cg[BtA3,eR'!/&䎅N"fg -2V{`Ql f"e-Z/-(n~;d4sh4&zQf-ߢMcE(5]׭ax&#x2ٸ)Iwgr. %0r/`YX*ʩ丒+s͚bZId\$G8'SH&e|"?ɩ #r."G&<,!`OJ#D$a2$p\!*e - qz,`Uy;h2$E].Q1a <yEVx<-g"{Dfo.2gnc):IIՑȴ Qj TgPm p#gb&}vK>Lş\zT|0BAr㪞ZӍخ^؃C'r[m6Aam/Jn0Al׎+9:`c:9LQJoe^'SL48r~/G;Xm -M> a=0xwxnEx}=x5y-T/zC3[Blψ$VvQlŲ - -@v(Gx(m@ː[ [s^p=jT9!ZYk$xNT>ݪ2b9ȥߋ(C؅WZ]UGNtA֫6vy ʙ(6п1к>Zw1r -QH= eXJ ᣰP ܢ\!W#J0WLsF;`~nCT BsQg:Õp%&F]u0ͮ-= FYhma-mmƧH5|j,38YՁV -PԅCFGAn4Jb|ʹt.4t2!!Q$p qQ;%]q3~ -F"OyQ΋P6G왟A^KNUulUqx)ڡ?M䑹LRmE ]CFcTrAV}=am-}[P -<3rp&XUB,$BWg&VkSX^;ejmFD -5͡rhU! -ށP-*:n -jJ@[H*,\!z:Op=oރ}~?`vA,2}VԳr޶3P/: jNL2u!AKNfQJ -emVC\f{׷H }3p֕w ?6ji zJ5qH7m\c ~K$h 3o7 vr\{/i'פQnɋ(ra\5IYL];G )Z܎ZJ<ĝ(qd1#.qHasDB15(fP~]< - &,QXģGa85-#WSإD֧˺P#@jH5[i!a!jo7mD.- nE *hFPE - L˵؉`1^ FfN[+z}+  fCQ+ JT~**ŧJPi*TsUOqPLԨG7X,D]~\hR ֊cu=IEyQ~*b!C!""!""jZJNqEkH㳤<VH+UR@jHY 5s$ݦ }}}-UjnZ! 7;bT FbT FbT F9">5 -nZ,`'BފȽ*EM 6&r@nTKT9#Ə<V{CV. qՅYBpS)\.t -: …NZ3="SC1hFqDLI4J(xe FA}hw& -a]XF(hRUnu+(&[Q6QP=Uk(&ۑ(1? -e &ct& -jH`&'K6QPC<(xe ; -߶BEaQ+6QPsaŋ Yk -fIo5.W^(Eno#m%+5J }Hi}3+uRyQoÐ9s[ԋܢ^]G}1<-T8Wzhya6v],m|MI[&? -'>8Bn] uMxL)/FHӦtpY䙞>\i~(<=a΁vgPÃ(;gMHiu]a9i]Q+RZ]W<dMTFyvRJs؜mW5Fу(zOl v a}':tdIhC~QeTjR:JB}i$xkN25 ?Og1%&!sJH 8'ABjz^/-xRZ'8Rkshu,&x?Ԉ-@aT$w3JNMn,C7z79A-S2FʵFL*RS$ .I5Ɵ0j 杨iHiHTMJQҦHV e9#eeUR4Hi6"YFHD0:Rb|2BNVMX9y'{9ՄybMg1i-?XF'&lH0B~MI\ wA!;'s7K"cCw!;~"2>+2b ٔcf>Ş~LG6df¬PFz>kcV _[ӫyۤ0α@C]صN" -LI2jZh)b.Oүt}d>??I`F?ڏC!qh#hI':_S%PK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK - /=x2com/jacob/com/Variant.classZ |?gv73;$% ` L|n4R_V/E}aA*VQն~_;wg'3iιs|S0?C8[x<;A6uбCŨ.WqRŘ\jةb%W1b#~|O bktkUP>a'HNjn]ʏuj$7z 5Ό~ cRi8VUծDR#5Wū뇌y5إ4?7jZ hy'j z ON <MA?OJQlt W&YY<[qTncBC;5jS  > ph3 ! kCÇ5|DÝ>. wkkد5|w{5/SY[<_ ?~jMm] 퉮ɫ"퉶ZE777Υ$4-EШUWLMC*vu`N"LQߒHgoC1 R03ye'} -4ǓѪLDD,ȾDo[C(sz{z>ޜWp^KvGR+o_OOtBWHtF#q52΂jM=(03g%%EX<J3h.$WSwzz"dz˩o67/:EUMU -\XC ZObX*]eAF6LWL6'JȌjbkHS1i q!ItOQC,mjDhMqͩHn)a3FTZkf`C=)F#0oje,IQ;\C}m}MQ*~ϊU,J,NFEj6j̮1̮:3LފfSb)3y,,"c+dLzj)FYN]k"(7E2WG鄒&:kRt0ac9Ts2 &]Ka9XLH69Ua 1(Vrcb%08upa<*-JmS!'bB8ֻH98_1%O,YeF7-MfW'!IG$zebS!5K,'\jYpgZ> D'j-yT1SVfaKp U|XyXdbjU7 2L;՞EuUBŰXMŒJ̭1̱J\TTׄѾ&m'Rnjnꍧb]%dU!t -&JXNF]99^Mq$LQG=i!nc5e-`'+"ٖ8ܘles+u2@G4fy$YwY]lF=NFoCP7R vxDhюLm]w9WT:;=!aǒq6zNZh=1ҟD3PȌ7r%3;a& L -zs=ZHc61yxW,<g&_Ǜl2w{t<_6dR1R_!w:[ w>(itE_nQS[: +&ξL͐S2XS_Jy1d` \3cX;E-s`ߨxen~HG.yf+h*.EOʪ |ߠ\t*pN°%oxM6,njmlih U7-_hx1S |]u s !kᐊR<.>y鯊@ k!\Ҡ MDhqK3z7,'B(WE@- wіHPn9I :Eef7aF,*4k,4Wk"ަQ3[j()¼qS1.Is -qGGaBM4gˆu!m|ǀ:6c?<mT"#؀ppݠeMLqF /fwiϵT?벬Lu^LOW(힣5ўX#6Bܒ0a|(9*mӐ:;ie;ˣZ6twMG sJH@$vhiVӧG}9|ZHrnHǚdsJ<Ѷ$kWzv:pjTqo^/R0^?FsQk4ǙAn7M7[mfH&A6.䟒|M{m}$oMHnwM~6Qw$?f'&&'l^ɿ )dqgGK:y+tn=<*ƽD xy|U2,tʐ@4?|t-=7PHw1 ^Q-拢@fޔf6x) W ٴt^MBM0bm1F"Zo<bvA9LSp)m<dWvd!0z<fnҹT -kczc#1lr;9wwi(Z<!}I3_wz7#G9kQN?aki|' +$%aQDF(8>J%R߅dK Ĺls-l=rT'GKncl:Sh+HΟ9p8?KϹr)%+$:p2<'ί뮜;މAەӒ,4㙳u 84,–f@Bi|''YdD/=W -|mt? -~$6 g%N<"?x:k Oہ߉_ \xdƁ߉7&0OߒlwX#.<M`? y8E-<&AT=$%Qف)jcxtDL%Yl:aXHE.5xN<7̙'9<ҙVI{aD^:*atp~(1pgcXjEev%-a;f6+ ?h_: -!}5lS*zxf'iNx ~f 3kgP(EĜ,^1,gTp|/ OtAhu!B{wf >iFn !Zq0~ 8,/y7N z0Geӛn3(J?s%,f 5\Fתpfɧ8ϷŁjŁ>`)Y0TGoppbb&C8{ !lKmE,BY—i1n2pc@`85P6p\pe@ D@bHX$ NN .BG碏}tI0uGV,:o.;5)S]J (<ځi{`#Ytd7;]a 6C\t}fp>.fBehJ,&TYAi~.BٰK=YE |kn8KqCeNTȪhW sZ5Pܗ[1X+$1Zڅu ~8,/>l3T6؋?-=<@gg?-yN͙ >]Yh%aPhٻp{8(x&YW2_e*ٌo3N[0.PzFiAZƶ%io5-oQgˎ,o}IЫqL|5ac8/9كmj>kS~ 8|uȄ/=%eM?qfn-`e`YV-R|P ]fl~D9s0rN\H(HF)lFB-*kWh;6G|qn5s9+hp9IXY ->,ЕV[KOq9C F1(*J_,EԑוdrCE<է;<{z @[n]ZG`ӿ'%@Z n&8o & b@+\*;(u3,߷o9Rh;2A۔*Qu}Շ"VWR?JR̷TVTX*T|J -~ftTn*[* 7>KMe=7-7tQ?[*)7J6KeZ7rLKM2x* ^ljQA!%Gdj*"ep@*WߔTOW xrޯ܀/*7⟔"VeEYܮ\ܩܦlURV>Ux=<=-vOӭTO8g5Σ y ~9 -~,H.kym!xNno wuлīU׿vC.ِv>VGdzgC\UP+~MNU*/~0Ay&*0U9Ӕw`.T)CU>6 ͠#m.3q:϶ =#C\\UlbpkU^\lat` ?]q@OCûZ!J'(HDI\b}_sRkN|ʃYPK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -vF= AMETA-INF/PK -uF=%#+META-INF/MANIFEST.MFPK -vF=Y Yx `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A8com/jacob/PK -5`.=A`com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? >com/jacob/com/ComException.classPK -5`.=L듄,$#com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!n&com/jacob/com/DateUtilities.classPK -uF=w@G*com/jacob/com/Dispatch.classPK -5`.=F "N;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &/@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)LEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh-Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["7^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y\ncom/jacob/com/Pointer.classPK -5`.=(apcom/jacob/com/PointerWeakReference.classPK -<1=<o/rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Kcom/jacob/com/SafeArray.classPK -4`.=%b5/Ŋcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK - /=x2com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#3com/jacob/com/VariantViaEvent.classPK -5`.=#g["(Ccom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -7F=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -7F=]ex'x')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -R = -= - - - - - -= - - -= - - - - -= - -= -=  - - - -= -= - - = =  -$ -$ -$ -$ - - -= - -= - -= - = = -  - -  - -  - - - - - -= - -= - - - - - - -! -" -#$ -%&' -O =*+EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch; timeSpentJcountI<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freestartDop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java _` YZ, -./ 01 234 56 78 9 :; <=> ?@ A BC DE DF GHI JKcom/jacob/com/Dispatch _L =M NO P QR S TU V [\ ]^ WXjava/lang/StringBuilder _ Time spent: YZ Y[ \K] ^L _` ab c d UV STjava/lang/Objecte P fg D` hi j kl m6 no#org/jruby/ext/win32ole/RubyWIN32OLEp qr kl _j st uP vw xK yz {|} ~  U {{ O}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses WXorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String;java/lang/SystemnanoTime()J safeReleaseoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;toStringjava/io/PrintStreamprintlngetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date;getInt newFixnum(I)Lorg/jruby/RubyFixnum; getString newString*(Ljava/lang/String;)Lorg/jruby/RubyString; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillisnewTime(J)Lorg/jruby/RubyTime; -startsWith!=RSTUV WXYZ[\]^_`aR *+,*b$! %c  de fg hi_ja\ *+,*-b(* +c* de fg hi YZkla/*b.c deYma@ +*b4c de nopqrsa1+N*::,+- -W- b9:>?@)A,Cc> tu1de1no1vw,fg#xypqz{a B- :* :,6*:*:+ bIJKNO+Q8Scf -(|uBdeBnoB}~B~B~:2T+^8 -|up qIam,2N*Y-*bX Z\c*deno pqIZaE*+,bac denopqIZ{a\ -*+,--bgc4 -de -no -}~ -~ -~pqa|,,2N-*+--d,*+-,bl n$qc*,de,no, #pqIZmaHI* !(gc!"p#$Y%&'!()*+ bxy {}@c HdeHnoCpqac,N+*-+ b -c*deno~pq[sIa!+:,:*-,- bc>!de!no!~!t~fgpq[sI{a] *+,-bc4 de no }~ ~ ~pqa],2N*+-,b - c*deno pqIZa%*-.: -:*,/W+ bc>%de%no%%TVa ;- :,6* :*0: * 1: -+ - b 1cp ;de;no;}~;~;~;^3,^$T V 1 -|u -aB 2 -bcde^a5+>d3d4:6d+2,Sb ,2c>^5de55^2^ Ta4+5=34N6+6,:-S-b" &,2c>&^4de4/^"Ta--*,7:*,*-.8:+ b#c>u-de-no--# -ua9*bcde a4 -*49bc  -~ a+* +:k YYkkkPb@k7*+;<=Y*>+?@*+AB*+CD*+EF*+Gb" DM]foxcfgu aXHM,+I*,JKb c fg aV$*!*LM*N**d*b"c $aH 43 -2OYPQ !"b tu) -OPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -7F=}win32ole/win32ole.jarPK -F= META-INF/PK -F=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -F= win32ole/PK -F=tZ jacob.jarPK -vF= META-INF/PK -uF=%#META-INF/MANIFEST.MFP=k07)M6p3d-|NlHr!rvt{Y+k: l J -`Q+BⒸ㒒ʣز>3.>ג5b OBmw"VgJqXV*MifD %jHiDm:UL{XBKAuom||ztdw7ԑ7y#%aq@3'M7T/^+3h'Zx[pDƎ:=[ )@f%oPK -vF=Y Yx META-INF/JacobVersion.properties5̱ -0=wՔ{j%Щ -..CXoH{: -u &` ;f*$#`u4_K3--VӚƱH2I6gH PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -uF=w@Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f  bcp kV%#Nڭ] [&- VVBywJ_k;F_]W~sCMp9:W;}7< 7oŷX|/~>>}*nj/P"y7;}^O/ [P?~x~DS/>FkT_PK//}ju*~CX0QE.%/+2ylҳog=vmgb *3\^NԤg$ -f%OUVOU `u2BW>I(zq[)}J:'$fFx,vyJ^ӣkdztm]rYOw mޣl6е3իkό#3k6 g615nz.LЃ LْL+J_N)Ę)^/X2܄bf&\^Ilʾv<A2g9ш+r--CJ+NmOԘ DŽWHR2hg-57pvL*X:dGdb}I|UKSJrd,i16apK] px'2Ir۩R`_g.QN -}F,t(?썍Jy1%Ǯ͏)҈E2e]6˅\.Y.HāSsXcdz*s79<2Xn1!FHixnJɣ($~dq\.u"[Zԩp0zwBـ4f3E{G sbpnyV]l㶑^u¬r@BɝLjj#W4kG١].>ZgрA–A zuP!$2dw2RF]V# ꜖:AfklיEN[.w&`z i$g3{Q@:^ȆN8̵ ?;Fo,81<vfH_h)'ⷜ}q'8}+p]N_Npcn`Ayvqi5 F2Z[_@l8(wؽ0cg[BtA3,eR'!/&䎅N"fg -2V{`Ql f"e-Z/-(n~;d4sh4&zQf-ߢMcE(5]׭ax&#x2ٸ)Iwgr. %0r/`YX*ʩ丒+s͚bZId\$G8'SH&e|"?ɩ #r."G&<,!`OJ#D$a2$p\!*e - qz,`Uy;h2$E].Q1a <yEVx<-g"{Dfo.2gnc):IIՑȴ Qj TgPm p#gb&}vK>Lş\zT|0BAr㪞ZӍخ^؃C'r[m6Aam/Jn0Al׎+9:`c:9LQJoe^'SL48r~/G;Xm -M> a=0xwxnEx}=x5y-T/zC3[Blψ$VvQlŲ - -@v(Gx(m@ː[ [s^p=jT9!ZYk$xNT>ݪ2b9ȥߋ(C؅WZ]UGNtA֫6vy ʙ(6п1к>Zw1r -QH= eXJ ᣰP ܢ\!W#J0WLsF;`~nCT BsQg:Õp%&F]u0ͮ-= FYhma-mmƧH5|j,38YՁV -PԅCFGAn4Jb|ʹt.4t2!!Q$p qQ;%]q3~ -F"OyQ΋P6G왟A^KNUulUqx)ڡ?M䑹LRmE ]CFcTrAV}=am-}[P -<3rp&XUB,$BWg&VkSX^;ejmFD -5͡rhU! -ށP-*:n -jJ@[H*,\!z:Op=oރ}~?`vA,2}VԳr޶3P/: jNL2u!AKNfQJ -emVC\f{׷H }3p֕w ?6ji zJ5qH7m\c ~K$h 3o7 vr\{/i'פQnɋ(ra\5IYL];G )Z܎ZJ<ĝ(qd1#.qHasDB15(fP~]< - &,QXģGa85-#WSإD֧˺P#@jH5[i!a!jo7mD.- nE *hFPE - L˵؉`1^ FfN[+z}+  fCQ+ JT~**ŧJPi*TsUOqPLԨG7X,D]~\hR ֊cu=IEyQ~*b!C!""!""jZJNqEkH㳤<VH+UR@jHY 5s$ݦ }}}-UjnZ! 7;bT FbT FbT F9">5 -nZ,`'BފȽ*EM 6&r@nTKT9#Ə<V{CV. qՅYBpS)\.t -: …NZ3="SC1hFqDLI4J(xe FA}hw& -a]XF(hRUnu+(&[Q6QP=Uk(&ۑ(1? -e &ct& -jH`&'K6QPC<(xe ; -߶BEaQ+6QPsaŋ Yk -fIo5.W^(Eno#m%+5J }Hi}3+uRyQoÐ9s[ԋܢ^]G}1<-T8Wzhya6v],m|MI[&? -'>8Bn] uMxL)/FHӦtpY䙞>\i~(<=a΁vgPÃ(;gMHiu]a9i]Q+RZ]W<dMTFyvRJs؜mW5Fу(zOl v a}':tdIhC~QeTjR:JB}i$xkN25 ?Og1%&!sJH 8'ABjz^/-xRZ'8Rkshu,&x?Ԉ-@aT$w3JNMn,C7z79A-S2FʵFL*RS$ .I5Ɵ0j 杨iHiHTMJQҦHV e9#eeUR4Hi6"YFHD0:Rb|2BNVMX9y'{9ՄybMg1i-?XF'&lH0B~MI\ wA!;'s7K"cCw!;~"2>+2b ٔcf>Ş~LG6df¬PFz>kcV _[ӫyۤ0α@C]صN" -LI2jZh)b.Oүt}d>??I`F?ڏC!qh#hI':_S%PK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK - /=x2com/jacob/com/Variant.classZ |?gv73;$% ` L|n4R_V/E}aA*VQն~_;wg'3iιs|S0?C8[x<;A6uбCŨ.WqRŘ\jةb%W1b#~|O bktkUP>a'HNjn]ʏuj$7z 5Ό~ cRi8VUծDR#5Wū뇌y5إ4?7jZ hy'j z ON <MA?OJQlt W&YY<[qTncBC;5jS  > ph3 ! kCÇ5|DÝ>. wkkد5|w{5/SY[<_ ?~jMm] 퉮ɫ"퉶ZE777Υ$4-EШUWLMC*vu`N"LQߒHgoC1 R03ye'} -4ǓѪLDD,ȾDo[C(sz{z>ޜWp^KvGR+o_OOtBWHtF#q52΂jM=(03g%%EX<J3h.$WSwzz"dz˩o67/:EUMU -\XC ZObX*]eAF6LWL6'JȌjbkHS1i q!ItOQC,mjDhMqͩHn)a3FTZkf`C=)F#0oje,IQ;\C}m}MQ*~ϊU,J,NFEj6j̮1̮:3LފfSb)3y,,"c+dLzj)FYN]k"(7E2WG鄒&:kRt0ac9Ts2 &]Ka9XLH69Ua 1(Vrcb%08upa<*-JmS!'bB8ֻH98_1%O,YeF7-MfW'!IG$zebS!5K,'\jYpgZ> D'j-yT1SVfaKp U|XyXdbjU7 2L;՞EuUBŰXMŒJ̭1̱J\TTׄѾ&m'Rnjnꍧb]%dU!t -&JXNF]99^Mq$LQG=i!nc5e-`'+"ٖ8ܘles+u2@G4fy$YwY]lF=NFoCP7R vxDhюLm]w9WT:;=!aǒq6zNZh=1ҟD3PȌ7r%3;a& L -zs=ZHc61yxW,<g&_Ǜl2w{t<_6dR1R_!w:[ w>(itE_nQS[: +&ξL͐S2XS_Jy1d` \3cX;E-s`ߨxen~HG.yf+h*.EOʪ |ߠ\t*pN°%oxM6,njmlih U7-_hx1S |]u s !kᐊR<.>y鯊@ k!\Ҡ MDhqK3z7,'B(WE@- wіHPn9I :Eef7aF,*4k,4Wk"ަQ3[j()¼qS1.Is -qGGaBM4gˆu!m|ǀ:6c?<mT"#؀ppݠeMLqF /fwiϵT?벬Lu^LOW(힣5ўX#6Bܒ0a|(9*mӐ:;ie;ˣZ6twMG sJH@$vhiVӧG}9|ZHrnHǚdsJ<Ѷ$kWzv:pjTqo^/R0^?FsQk4ǙAn7M7[mfH&A6.䟒|M{m}$oMHnwM~6Qw$?f'&&'l^ɿ )dqgGK:y+tn=<*ƽD xy|U2,tʐ@4?|t-=7PHw1 ^Q-拢@fޔf6x) W ٴt^MBM0bm1F"Zo<bvA9LSp)m<dWvd!0z<fnҹT -kczc#1lr;9wwi(Z<!}I3_wz7#G9kQN?aki|' +$%aQDF(8>J%R߅dK Ĺls-l=rT'GKncl:Sh+HΟ9p8?KϹr)%+$:p2<'ί뮜;މAەӒ,4㙳u 84,–f@Bi|''YdD/=W -|mt? -~$6 g%N<"?x:k Oہ߉_ \xdƁ߉7&0OߒlwX#.<M`? y8E-<&AT=$%Qف)jcxtDL%Yl:aXHE.5xN<7̙'9<ҙVI{aD^:*atp~(1pgcXjEev%-a;f6+ ?h_: -!}5lS*zxf'iNx ~f 3kgP(EĜ,^1,gTp|/ OtAhu!B{wf >iFn !Zq0~ 8,/y7N z0Geӛn3(J?s%,f 5\Fתpfɧ8ϷŁjŁ>`)Y0TGoppbb&C8{ !lKmE,BY—i1n2pc@`85P6p\pe@ D@bHX$ NN .BG碏}tI0uGV,:o.;5)S]J (<ځi{`#Ytd7;]a 6C\t}fp>.fBehJ,&TYAi~.BٰK=YE |kn8KqCeNTȪhW sZ5Pܗ[1X+$1Zڅu ~8,/>l3T6؋?-=<@gg?-yN͙ >]Yh%aPhٻp{8(x&YW2_e*ٌo3N[0.PzFiAZƶ%io5-oQgˎ,o}IЫqL|5ac8/9كmj>kS~ 8|uȄ/=%eM?qfn-`e`YV-R|P ]fl~D9s0rN\H(HF)lFB-*kWh;6G|qn5s9+hp9IXY ->,ЕV[KOq9C F1(*J_,EԑוdrCE<է;<{z @[n]ZG`ӿ'%@Z n&8o & b@+\*;(u3,߷o9Rh;2A۔*Qu}Շ"VWR?JR̷TVTX*T|J -~ftTn*[* 7>KMe=7-7tQ?[*)7J6KeZ7rLKM2x* ^ljQA!%Gdj*"ep@*WߔTOW xrޯ܀/*7⟔"VeEYܮ\ܩܦlURV>Ux=<=-vOӭTO8g5Σ y ~9 -~,H.kym!xNno wuлīU׿vC.ِv>VGdzgC\UP+~MNU*/~0Ay&*0U9Ӕw`.T)CU>6 ͠#m.3q:϶ =#C\\UlbpkU^\lat` ?]q@OCûZ!J'(HDI\b}_sRkN|ʃYPK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -vF= AMETA-INF/PK -uF=%#+META-INF/MANIFEST.MFPK -vF=Y Yx `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A8com/jacob/PK -5`.=A`com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? >com/jacob/com/ComException.classPK -5`.=L듄,$#com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!n&com/jacob/com/DateUtilities.classPK -uF=w@G*com/jacob/com/Dispatch.classPK -5`.=F "N;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &/@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)LEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh-Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["7^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y\ncom/jacob/com/Pointer.classPK -5`.=(apcom/jacob/com/PointerWeakReference.classPK -<1=<o/rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Kcom/jacob/com/SafeArray.classPK -4`.=%b5/Ŋcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK - /=x2com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#3com/jacob/com/VariantViaEvent.classPK -5`.=#g["(Ccom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -F=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -F=9]%%)org/jruby/ext/win32ole/RubyWIN32OLE.class1g -I 2 -2 - - - - - -2 - - -2 - - - - -2 - -2 -2  - - - -2 -2 - - -2 - -2 - -2 - 2 2 - - - - - - - - - -2 - -2 - - - - - - - - - -  -  -D 2 2 2EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch; timeSpentJcountI<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java VW PQ     ! "# $ %& '() *+ , -. /0 /1 234 56com/jacob/com/Dispatch V7  =8 9: ; <= > ?@ AB C D LM JKjava/lang/ObjectE ; FG /@ HI J KL M! NO#org/jruby/ext/win32ole/RubyWIN32OLEP QR bc Va ST U; VW X6 YZ [\] ^_ `a bc de{{ f:}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses V NO RS TUorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date;getInt newFixnum(I)Lorg/jruby/RubyFixnum; getString newString*(Ljava/lang/String;)Lorg/jruby/RubyString; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!2IJKLM NOPQRSTUVWXR *+,*Y$! %Z  [\ ]^ _`VaX\ *+,*-Y(* +Z* [\ ]^ _` PQbcX/*Y.Z [\PdX@ +*Y4Z [\ efghijX1+N*::,+- -W- Y9:>?@)A,CZ> kl1[\1ef1mn,]^#opghqrX B- :* :,6*:*:+ YIJKNO+Q8SZf -(slB[\BefBtuBvuBwu:xy2zK+{U8 -slg h|I}~Xm,2N*Y-*YX Z\Z*[\efv gh|IZXE*+,YaZ [\efvgh|IZrX\ -*+,--YgZ4 -[\ -ef -tu -vu -ughX|,,2N-*+--d,*+-,Yl n$qZ*,[\,ef,v #gh|IZdXG*+ Y -yZ[\efghXc,N+*- Y -Z*[\efugh[s|IX!+:,:*-!" YZ>![\!ef!u!ku]^gh[s|IrX] *+,-YZ4 [\ ef tu vu wughX],2N*+-,Y - Z*[\efv gh|IZX%*-#: -:*,$W+ YZ>%[\%ef%%vzKMX ;- :,6* :*%: * &: -+ - Y 1Zp ;[\;ef;tu;vu;wu;U3xy,{U$zK M 1 -sl -XB ' -YZ[\UX5+>d(d):6d+2!SY ,2Z>U5[\55U2U zKX4+*=()N6++!:-S-Y" &,2Z>&U4[\4xy/U"zKX--*,,:*,*-#-:+ Y#Z>l-[\-ef--v# -lX9*YZ[\ X4 -*).YZ  -u X+* +/k YYkkkPb@k7*+012Y*3+45*+67*+89*+:;*+<Y" DM]foxZ]^l XX=M,+>*,?@Y Z ]^ XV$*!*AB*C**d*Y"Z $XH )( -'DYEF GHY tu -DPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -F=Awin32ole/win32ole.jarPK -ֆF= META-INF/PK -ՆF=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -F= win32ole/PK -F=tZ jacob.jarPK -vF= META-INF/PK -uF=%#META-INF/MANIFEST.MFP=k07)M6p3d-|NlHr!rvt{Y+k: l J -`Q+BⒸ㒒ʣز>3.>ג5b OBmw"VgJqXV*MifD %jHiDm:UL{XBKAuom||ztdw7ԑ7y#%aq@3'M7T/^+3h'Zx[pDƎ:=[ )@f%oPK -vF=Y Yx META-INF/JacobVersion.properties5̱ -0=wՔ{j%Щ -..CXoH{: -u &` ;f*$#`u4_K3--VӚƱH2I6gH PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -uF=w@Gcom/jacob/com/Dispatch.class՚{`[}GdY6~ɶ4n+/!f  bcp kV%#Nڭ] [&- VVBywJ_k;F_]W~sCMp9:W;}7< 7oŷX|/~>>}*nj/P"y7;}^O/ [P?~x~DS/>FkT_PK//}ju*~CX0QE.%/+2ylҳog=vmgb *3\^NԤg$ -f%OUVOU `u2BW>I(zq[)}J:'$fFx,vyJ^ӣkdztm]rYOw mޣl6е3իkό#3k6 g615nz.LЃ LْL+J_N)Ę)^/X2܄bf&\^Ilʾv<A2g9ш+r--CJ+NmOԘ DŽWHR2hg-57pvL*X:dGdb}I|UKSJrd,i16apK] px'2Ir۩R`_g.QN -}F,t(?썍Jy1%Ǯ͏)҈E2e]6˅\.Y.HāSsXcdz*s79<2Xn1!FHixnJɣ($~dq\.u"[Zԩp0zwBـ4f3E{G sbpnyV]l㶑^u¬r@BɝLjj#W4kG١].>ZgрA–A zuP!$2dw2RF]V# ꜖:AfklיEN[.w&`z i$g3{Q@:^ȆN8̵ ?;Fo,81<vfH_h)'ⷜ}q'8}+p]N_Npcn`Ayvqi5 F2Z[_@l8(wؽ0cg[BtA3,eR'!/&䎅N"fg -2V{`Ql f"e-Z/-(n~;d4sh4&zQf-ߢMcE(5]׭ax&#x2ٸ)Iwgr. %0r/`YX*ʩ丒+s͚bZId\$G8'SH&e|"?ɩ #r."G&<,!`OJ#D$a2$p\!*e - qz,`Uy;h2$E].Q1a <yEVx<-g"{Dfo.2gnc):IIՑȴ Qj TgPm p#gb&}vK>Lş\zT|0BAr㪞ZӍخ^؃C'r[m6Aam/Jn0Al׎+9:`c:9LQJoe^'SL48r~/G;Xm -M> a=0xwxnEx}=x5y-T/zC3[Blψ$VvQlŲ - -@v(Gx(m@ː[ [s^p=jT9!ZYk$xNT>ݪ2b9ȥߋ(C؅WZ]UGNtA֫6vy ʙ(6п1к>Zw1r -QH= eXJ ᣰP ܢ\!W#J0WLsF;`~nCT BsQg:Õp%&F]u0ͮ-= FYhma-mmƧH5|j,38YՁV -PԅCFGAn4Jb|ʹt.4t2!!Q$p qQ;%]q3~ -F"OyQ΋P6G왟A^KNUulUqx)ڡ?M䑹LRmE ]CFcTrAV}=am-}[P -<3rp&XUB,$BWg&VkSX^;ejmFD -5͡rhU! -ށP-*:n -jJ@[H*,\!z:Op=oރ}~?`vA,2}VԳr޶3P/: jNL2u!AKNfQJ -emVC\f{׷H }3p֕w ?6ji zJ5qH7m\c ~K$h 3o7 vr\{/i'פQnɋ(ra\5IYL];G )Z܎ZJ<ĝ(qd1#.qHasDB15(fP~]< - &,QXģGa85-#WSإD֧˺P#@jH5[i!a!jo7mD.- nE *hFPE - L˵؉`1^ FfN[+z}+  fCQ+ JT~**ŧJPi*TsUOqPLԨG7X,D]~\hR ֊cu=IEyQ~*b!C!""!""jZJNqEkH㳤<VH+UR@jHY 5s$ݦ }}}-UjnZ! 7;bT FbT FbT F9">5 -nZ,`'BފȽ*EM 6&r@nTKT9#Ə<V{CV. qՅYBpS)\.t -: …NZ3="SC1hFqDLI4J(xe FA}hw& -a]XF(hRUnu+(&[Q6QP=Uk(&ۑ(1? -e &ct& -jH`&'K6QPC<(xe ; -߶BEaQ+6QPsaŋ Yk -fIo5.W^(Eno#m%+5J }Hi}3+uRyQoÐ9s[ԋܢ^]G}1<-T8Wzhya6v],m|MI[&? -'>8Bn] uMxL)/FHӦtpY䙞>\i~(<=a΁vgPÃ(;gMHiu]a9i]Q+RZ]W<dMTFyvRJs؜mW5Fу(zOl v a}':tdIhC~QeTjR:JB}i$xkN25 ?Og1%&!sJH 8'ABjz^/-xRZ'8Rkshu,&x?Ԉ-@aT$w3JNMn,C7z79A-S2FʵFL*RS$ .I5Ɵ0j 杨iHiHTMJQҦHV e9#eeUR4Hi6"YFHD0:Rb|2BNVMX9y'{9ՄybMg1i-?XF'&lH0B~MI\ wA!;'s7K"cCw!;~"2>+2b ٔcf>Ş~LG6df¬PFz>kcV _[ӫyۤ0α@C]صN" -LI2jZh)b.Oүt}d>??I`F?ڏC!qh#hI':_S%PK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK - /=x2com/jacob/com/Variant.classZ |?gv73;$% ` L|n4R_V/E}aA*VQն~_;wg'3iιs|S0?C8[x<;A6uбCŨ.WqRŘ\jةb%W1b#~|O bktkUP>a'HNjn]ʏuj$7z 5Ό~ cRi8VUծDR#5Wū뇌y5إ4?7jZ hy'j z ON <MA?OJQlt W&YY<[qTncBC;5jS  > ph3 ! kCÇ5|DÝ>. wkkد5|w{5/SY[<_ ?~jMm] 퉮ɫ"퉶ZE777Υ$4-EШUWLMC*vu`N"LQߒHgoC1 R03ye'} -4ǓѪLDD,ȾDo[C(sz{z>ޜWp^KvGR+o_OOtBWHtF#q52΂jM=(03g%%EX<J3h.$WSwzz"dz˩o67/:EUMU -\XC ZObX*]eAF6LWL6'JȌjbkHS1i q!ItOQC,mjDhMqͩHn)a3FTZkf`C=)F#0oje,IQ;\C}m}MQ*~ϊU,J,NFEj6j̮1̮:3LފfSb)3y,,"c+dLzj)FYN]k"(7E2WG鄒&:kRt0ac9Ts2 &]Ka9XLH69Ua 1(Vrcb%08upa<*-JmS!'bB8ֻH98_1%O,YeF7-MfW'!IG$zebS!5K,'\jYpgZ> D'j-yT1SVfaKp U|XyXdbjU7 2L;՞EuUBŰXMŒJ̭1̱J\TTׄѾ&m'Rnjnꍧb]%dU!t -&JXNF]99^Mq$LQG=i!nc5e-`'+"ٖ8ܘles+u2@G4fy$YwY]lF=NFoCP7R vxDhюLm]w9WT:;=!aǒq6zNZh=1ҟD3PȌ7r%3;a& L -zs=ZHc61yxW,<g&_Ǜl2w{t<_6dR1R_!w:[ w>(itE_nQS[: +&ξL͐S2XS_Jy1d` \3cX;E-s`ߨxen~HG.yf+h*.EOʪ |ߠ\t*pN°%oxM6,njmlih U7-_hx1S |]u s !kᐊR<.>y鯊@ k!\Ҡ MDhqK3z7,'B(WE@- wіHPn9I :Eef7aF,*4k,4Wk"ަQ3[j()¼qS1.Is -qGGaBM4gˆu!m|ǀ:6c?<mT"#؀ppݠeMLqF /fwiϵT?벬Lu^LOW(힣5ўX#6Bܒ0a|(9*mӐ:;ie;ˣZ6twMG sJH@$vhiVӧG}9|ZHrnHǚdsJ<Ѷ$kWzv:pjTqo^/R0^?FsQk4ǙAn7M7[mfH&A6.䟒|M{m}$oMHnwM~6Qw$?f'&&'l^ɿ )dqgGK:y+tn=<*ƽD xy|U2,tʐ@4?|t-=7PHw1 ^Q-拢@fޔf6x) W ٴt^MBM0bm1F"Zo<bvA9LSp)m<dWvd!0z<fnҹT -kczc#1lr;9wwi(Z<!}I3_wz7#G9kQN?aki|' +$%aQDF(8>J%R߅dK Ĺls-l=rT'GKncl:Sh+HΟ9p8?KϹr)%+$:p2<'ί뮜;މAەӒ,4㙳u 84,–f@Bi|''YdD/=W -|mt? -~$6 g%N<"?x:k Oہ߉_ \xdƁ߉7&0OߒlwX#.<M`? y8E-<&AT=$%Qف)jcxtDL%Yl:aXHE.5xN<7̙'9<ҙVI{aD^:*atp~(1pgcXjEev%-a;f6+ ?h_: -!}5lS*zxf'iNx ~f 3kgP(EĜ,^1,gTp|/ OtAhu!B{wf >iFn !Zq0~ 8,/y7N z0Geӛn3(J?s%,f 5\Fתpfɧ8ϷŁjŁ>`)Y0TGoppbb&C8{ !lKmE,BY—i1n2pc@`85P6p\pe@ D@bHX$ NN .BG碏}tI0uGV,:o.;5)S]J (<ځi{`#Ytd7;]a 6C\t}fp>.fBehJ,&TYAi~.BٰK=YE |kn8KqCeNTȪhW sZ5Pܗ[1X+$1Zڅu ~8,/>l3T6؋?-=<@gg?-yN͙ >]Yh%aPhٻp{8(x&YW2_e*ٌo3N[0.PzFiAZƶ%io5-oQgˎ,o}IЫqL|5ac8/9كmj>kS~ 8|uȄ/=%eM?qfn-`e`YV-R|P ]fl~D9s0rN\H(HF)lFB-*kWh;6G|qn5s9+hp9IXY ->,ЕV[KOq9C F1(*J_,EԑוdrCE<է;<{z @[n]ZG`ӿ'%@Z n&8o & b@+\*;(u3,߷o9Rh;2A۔*Qu}Շ"VWR?JR̷TVTX*T|J -~ftTn*[* 7>KMe=7-7tQ?[*)7J6KeZ7rLKM2x* ^ljQA!%Gdj*"ep@*WߔTOW xrޯ܀/*7⟔"VeEYܮ\ܩܦlURV>Ux=<=-vOӭTO8g5Σ y ~9 -~,H.kym!xNno wuлīU׿vC.ِv>VGdzgC\UP+~MNU*/~0Ay&*0U9Ӕw`.T)CU>6 ͠#m.3q:϶ =#C\\UlbpkU^\lat` ?]q@OCûZ!J'(HDI\b}_sRkN|ʃYPK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -vF= AMETA-INF/PK -uF=%#+META-INF/MANIFEST.MFPK -vF=Y Yx `META-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A8com/jacob/PK -5`.=A`com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎. com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? >com/jacob/com/ComException.classPK -5`.=L듄,$#com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!n&com/jacob/com/DateUtilities.classPK -uF=w@G*com/jacob/com/Dispatch.classPK -5`.=F "N;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &/@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf)LEcom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Jcom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh-Ocom/jacob/com/FuncDesc.classPK -4`.=mgPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .Xcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["7^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !dcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y\ncom/jacob/com/Pointer.classPK -5`.=(apcom/jacob/com/PointerWeakReference.classPK -<1=<o/rcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? Kcom/jacob/com/SafeArray.classPK -4`.=%b5/Ŋcom/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK - /=x2com/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#3com/jacob/com/VariantViaEvent.classPK -5`.=#g["(Ccom/jacob/com/WrongThreadException.classPK.. PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -ֆF=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -ֆF=@Ņ'')org/jruby/ext/win32ole/RubyWIN32OLE.class1 -T ? -? - - - - - -? - - -? - - - - -? - -? -?  - - - -? -? - - ? ?  -$ -$; -$ -$ - - -? - -? - -? - ? ?  - -  -  - -  - - - - - -? - -? - - - - - -!" -!# -!$ -%& -'() -Q ?,-EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch; timeSpentJcountI<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freestartDop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGetresulttoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java ab [\. /01 23 456 78 9: ; <= >?@ AB C DE FG FH IJK LMcom/jacob/com/Dispatch aN =O PQ R ST U VW X ]^ _` YZjava/lang/StringBuilder a Time spent: [\ [] ^M_ `N ab cd e f WX UVjava/lang/Objectg R hi Fb jk l mn o8 pq#org/jruby/ext/win32ole/RubyWIN32OLEr st mn al uv wR xy zM {| }~   W {{ Q}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses YZorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String;java/lang/SystemnanoTime()J safeReleaseoutLjava/io/PrintStream;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;toStringjava/io/PrintStreamprintlngetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date;getInt newFixnum(I)Lorg/jruby/RubyFixnum; getString newString*(Ljava/lang/String;)Lorg/jruby/RubyString; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillisnewTime(J)Lorg/jruby/RubyTime; -startsWith!?TUVWX YZ[\]^_`abcR *+,*d$! %e  fg hi jkalc\ *+,*-d(* +e* fg hi jk [\mnc/*d.e fg[oc@ +*d4e fg pqrstuc1+N*::,+- -W- d9:>?@)A,Ce> vw1fg1pq1xy,hi#z{rs|}c B- :* :,6*:*:+ dIJKNO+Q8Sef -(~wBfgBpqBBB:2V+`8 -~wr sIcm,2N*Y-*dX Z\e*fgpq rsIZcE*+,dae fgpqrsIZ}c\ -*+,--dge4 -fg -pq - - -rsc|,,2N-*+--d,*+-,dl n$qe*,fg,pq, #rsIZocLI* !(gc!"p"#$Y%&'!(m*+,+ dxy {}De LfgLpqGrscc,N+*-- d -e*fgpqrs[sIc!+:,:*-./ de>!fg!pq!!vhirs[sI}c] *+,-de4 fg pq   rsc],2N*+-,d - e*fgpq rsIZc%*-0: -:*,1W+ de>%fg%pq%%VXc ;- :,6* :*2: * 3: -+ - d 1ep ;fg;pq;;;;`3,`$V X 1 -~w -cB 4 -defg`c5+>d5d6:6d+2.Sd ,2e>`5fg55`2` Vc4+7=56N6+8.:-S-d" &,2e>&`4fg4/`"Vc--*,9:*,*-0::+ d#e>w-fg-pq--# -wc9*defg c4 -*6;de  - c+* +<k YYkkkPb@k7*+=>?Y*@+AB*+CD*+EF*+GH*+Id" DM]foxehiw cXJM,+K*,LMd e hi cV$*!*NO*P**d*d"e $cH 65 -4QYRS !"d tu+ -QPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -F=YEY//win32ole/win32ole.jarPK -oF= META-INF/PK -nF=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -oF= win32ole/PK -F=U^ jacob.jarPK -<1= META-INF/PK -;1=/5META-INF/MANIFEST.MFP=k0ol)VJ6p3d-(ؒB}t1ݻ5ҚCdg8[%]1$!qI|傒ڣرs}nSBcw"VgJ Q9Ji,Bڍ&S|AQBɻq%RNMo/acY*HU~IO Tt>/Tl6l:fwb0NhNQ^z*ZJItKY{│R6D{YPK -<1= v META-INF/JacobVersion.properties5K -0a[S毝V])^@M7-E1z~ӢQSz::%lMuѰRKCyhz}@ΚS+U۬cYc4%PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -5`.=EFcom/jacob/com/Dispatch.class՚ xu+^7)YKc%1/!f-K6ݑ+Ɇ>H1 iBC,G!! I1ͣIڤI %=ghk-}ٹssg٫^+>kXU:a c]|# !&s% -ANE_6վKοw߃!Q~&8AB/2P *~I4گ*TJjQ;d`,|&1ݵgWP@ϖ]z6vm<Ttg3) * UtZ& -iZ['mM J 'սʘڭ~5OR*\v$œ j6_L*JfdU!ʌgP۷{vumϠvYߞkDŻzvM;6'cU=6R6^㢡o I.BZ 2I;ks*NQsʞJلL5R.hܐʏ+(*ַ}#z/ɭ3P_PmQ54HsuԸ6 W;2:8Dr }5SH DQz 5/)aXAR*h{zj2o9 Xi%^⮌wq8@T]}_ d/UN}F0t0NŇg4cFվ b]A"xOvѲ,]B.T -Rcdpu@L*KQP*3N3rxm1O0 N<OmL+#ɮ~p\."[Zpk1{wYB٠4f3?I{#H .9M1q8ht{7<H.oW0+<P`RITlu#xzn -eZ 1x L`݇Z_b vx]^6x7##ge5m1yp_it{hƶ^tSqor7r:v!ep - .Ho|fb{so[q%^;ox1<zzH0R^o?^p>Fx<0 v"{qBܔJOQl}iyK#]N?*k)t5?%znݳSˀ]MJeDAo~w+%ފx1'<m&fU&ވ=_;2"{A8=@ٜiu_Rb+=X'mrĶy΢qE7d·.ܳ0P^pθv -N S*/ i~LNU$aaK@ɬ, Iv @!3tZQ]15SٛPM=L-%j>bJZ2t,):6^k cJ>ƕ2!me;cd,_*&p% **ðva7abۭd/|>],uc-baKmjrY<HfqϖT&Աln=zxZNR&{d&5s+O-!j£Vf0\{@U@n[9Lca聍ax8}vx?AvtaC° .cPg8F|{Lv -)՘W1h,zVQԗZxٔt*#FyR+M}qb{!Bg!Ld<m^v&XutxVx}Bt}1^_2yQ/vC2W`{F\Zc{TJ32[*^S-݋}^XjmS{Ωr{kem? -qՔOC8IK9rK_(; wjGPt9B+q|c -|ƾ`(P!/COqem@FjC̻9"2ѨH=eX -q,۠ 2 2eUUfǩT8܇0<879Dh%PZg3ï͂p0\C7 ٍ]g[0; UVOYX0n6S5: ՎS+kp>o]$@AR[8dTFHk/knY4&0HfF*p qQX;(fBIZVG~a[ -/~K7&\PY:HsgqhL㳙ي`6Ǩq|^(~\AԘfKή#e1Xre8Y,Ml&vq`Q(`MjX$ƴ26V^GeV(:KVDd'f:Z4ܰԄ"I,Z":6Op8>`yhq V־VsͿ'BCP԰m&Z!S+djOM2QRNev6#NxĞu80,V>,tBl X֤Q'4+U8~' ܯq-䓠5μ,؍&˕r6V{.4 &I\Bɋ6ķo -hxfĤ:pwa=yhϵJ<yXo?G$ӂUJ}B**x(*QAʴp͑Fݫ;v -Y)T jR-B@&*i5#~Q4*Dm }EҢr<= <Qcbۡ{I&&2MB=HZ`hgS#ֈޫTAlʸI巨Ҫ?%TJWڝX4sQL6Io,";ALc<C (]Xn.tU~)sb7/1\?/b!&b!v4p-Zs:MБf(;! 2mHY 5 f̑Q5{9:m:\mf膂6ݔ@lmM 614؏s؃<@;uء*$脌/- ynP v.r@nj ۄ×&@]أ0.t -: …NBpS)\.P>kpQ- -Xӈ8.cDA)% -ù9 ->MfT% -*QA(u6.Q=Yk(u6O }.Q`{(-mH"a(h J[(C!~? Ӌ9F蜣 DK4+ ->ͅЅDAÅ6d3%v5*4^3ŮF(v;GlVN -@T"e͌A8ĥnEÏK:۴(#ՌNu"q9|!Ü'jhr2'JS m\MIį Mbp}!j_l^)[Q<V?X) EKN8 -\|6ΜfY]P' E]PM@V3E"լQ8ƁҼ3x43˭4H3>SW8gLFWԈԯvT6 M-EyfRJs5TwUC(z'$,f}Ё9'Ex J>mJQKBZ'IPS(|KOVZ8sKBm#WayJDՉڰX߅s{2Z9ɨ e|Z_GN1!b2j9$E,wsXnDa|뜘H"*+yy>喓$E)Mɩ9'Ec$6KP KO!I-s1)TAjΛJCQn)B>!]Tנ`{"<!K'6,bù r. .ho>j!瞬ڰqw#߉%a-s܁yCF~;~Cw!;DdK"i|vjh?!FY!E4Y#~YlMnb*['(v/#-[r-~Z/h/R,C+b.'ckצ>[yOQ -fI~'BG`5A3?t~1~UMkPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK - /=x2com/jacob/com/Variant.classZ |?gv73;$% ` L|n4R_V/E}aA*VQն~_;wg'3iιs|S0?C8[x<;A6uбCŨ.WqRŘ\jةb%W1b#~|O bktkUP>a'HNjn]ʏuj$7z 5Ό~ cRi8VUծDR#5Wū뇌y5إ4?7jZ hy'j z ON <MA?OJQlt W&YY<[qTncBC;5jS  > ph3 ! kCÇ5|DÝ>. wkkد5|w{5/SY[<_ ?~jMm] 퉮ɫ"퉶ZE777Υ$4-EШUWLMC*vu`N"LQߒHgoC1 R03ye'} -4ǓѪLDD,ȾDo[C(sz{z>ޜWp^KvGR+o_OOtBWHtF#q52΂jM=(03g%%EX<J3h.$WSwzz"dz˩o67/:EUMU -\XC ZObX*]eAF6LWL6'JȌjbkHS1i q!ItOQC,mjDhMqͩHn)a3FTZkf`C=)F#0oje,IQ;\C}m}MQ*~ϊU,J,NFEj6j̮1̮:3LފfSb)3y,,"c+dLzj)FYN]k"(7E2WG鄒&:kRt0ac9Ts2 &]Ka9XLH69Ua 1(Vrcb%08upa<*-JmS!'bB8ֻH98_1%O,YeF7-MfW'!IG$zebS!5K,'\jYpgZ> D'j-yT1SVfaKp U|XyXdbjU7 2L;՞EuUBŰXMŒJ̭1̱J\TTׄѾ&m'Rnjnꍧb]%dU!t -&JXNF]99^Mq$LQG=i!nc5e-`'+"ٖ8ܘles+u2@G4fy$YwY]lF=NFoCP7R vxDhюLm]w9WT:;=!aǒq6zNZh=1ҟD3PȌ7r%3;a& L -zs=ZHc61yxW,<g&_Ǜl2w{t<_6dR1R_!w:[ w>(itE_nQS[: +&ξL͐S2XS_Jy1d` \3cX;E-s`ߨxen~HG.yf+h*.EOʪ |ߠ\t*pN°%oxM6,njmlih U7-_hx1S |]u s !kᐊR<.>y鯊@ k!\Ҡ MDhqK3z7,'B(WE@- wіHPn9I :Eef7aF,*4k,4Wk"ަQ3[j()¼qS1.Is -qGGaBM4gˆu!m|ǀ:6c?<mT"#؀ppݠeMLqF /fwiϵT?벬Lu^LOW(힣5ўX#6Bܒ0a|(9*mӐ:;ie;ˣZ6twMG sJH@$vhiVӧG}9|ZHrnHǚdsJ<Ѷ$kWzv:pjTqo^/R0^?FsQk4ǙAn7M7[mfH&A6.䟒|M{m}$oMHnwM~6Qw$?f'&&'l^ɿ )dqgGK:y+tn=<*ƽD xy|U2,tʐ@4?|t-=7PHw1 ^Q-拢@fޔf6x) W ٴt^MBM0bm1F"Zo<bvA9LSp)m<dWvd!0z<fnҹT -kczc#1lr;9wwi(Z<!}I3_wz7#G9kQN?aki|' +$%aQDF(8>J%R߅dK Ĺls-l=rT'GKncl:Sh+HΟ9p8?KϹr)%+$:p2<'ί뮜;މAەӒ,4㙳u 84,–f@Bi|''YdD/=W -|mt? -~$6 g%N<"?x:k Oہ߉_ \xdƁ߉7&0OߒlwX#.<M`? y8E-<&AT=$%Qف)jcxtDL%Yl:aXHE.5xN<7̙'9<ҙVI{aD^:*atp~(1pgcXjEev%-a;f6+ ?h_: -!}5lS*zxf'iNx ~f 3kgP(EĜ,^1,gTp|/ OtAhu!B{wf >iFn !Zq0~ 8,/y7N z0Geӛn3(J?s%,f 5\Fתpfɧ8ϷŁjŁ>`)Y0TGoppbb&C8{ !lKmE,BY—i1n2pc@`85P6p\pe@ D@bHX$ NN .BG碏}tI0uGV,:o.;5)S]J (<ځi{`#Ytd7;]a 6C\t}fp>.fBehJ,&TYAi~.BٰK=YE |kn8KqCeNTȪhW sZ5Pܗ[1X+$1Zڅu ~8,/>l3T6؋?-=<@gg?-yN͙ >]Yh%aPhٻp{8(x&YW2_e*ٌo3N[0.PzFiAZƶ%io5-oQgˎ,o}IЫqL|5ac8/9كmj>kS~ 8|uȄ/=%eM?qfn-`e`YV-R|P ]fl~D9s0rN\H(HF)lFB-*kWh;6G|qn5s9+hp9IXY ->,ЕV[KOq9C F1(*J_,EԑוdrCE<է;<{z @[n]ZG`ӿ'%@Z n&8o & b@+\*;(u3,߷o9Rh;2A۔*Qu}Շ"VWR?JR̷TVTX*T|J -~ftTn*[* 7>KMe=7-7tQ?[*)7J6KeZ7rLKM2x* ^ljQA!%Gdj*"ep@*WߔTOW xrޯ܀/*7⟔"VeEYܮ\ܩܦlURV>Ux=<=-vOӭTO8g5Σ y ~9 -~,H.kym!xNno wuлīU׿vC.ِv>VGdzgC\UP+~MNU*/~0Ay&*0U9Ӕw`.T)CU>6 ͠#m.3q:϶ =#C\\UlbpkU^\lat` ?]q@OCûZ!J'(HDI\b}_sRkN|ʃYPK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -<1= AMETA-INF/PK -;1=/5+META-INF/MANIFEST.MFPK -<1= v aMETA-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -5`.=EF*com/jacob/com/Dispatch.classPK -5`.=F ".;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf),Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Icom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh Ocom/jacob/com/FuncDesc.classPK -4`.=mgcPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .Wcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !jdcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y<ncom/jacob/com/Pointer.classPK -5`.=(Apcom/jacob/com/PointerWeakReference.classPK -<1=<orcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= }ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? +com/jacob/com/SafeArray.classPK -4`.=%b5/com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK - /=x2Иcom/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#com/jacob/com/VariantViaEvent.classPK -5`.=#g["(#com/jacob/com/WrongThreadException.classPK.. ĿPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -oF=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -oF=^R%R%)org/jruby/ext/win32ole/RubyWIN32OLE.class1] -F 1 -1 - - - - - -1 - - -1 - - - - -1 - -1 -1  - - - -1 -1 - - -1 - -1 - -1 - 1 1 - - - - - - - - -1 - -1 - - - - - - - - - - -C - 1  EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java OP MN          ! " #$ %& %' ()* +,com/jacob/com/Dispatch O- y =. /0 1 23 4 56 78 9 : IJ GHjava/lang/Object; 1 <= >? @ AB C DE#org/jruby/ext/win32ole/RubyWIN32OLEF GH [\ OZ IJ K1 LM N, OP QRS TU VW XY Z[{{ \0}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses O KLorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date;getInt newFixnum(I)Lorg/jruby/RubyFixnum; getString newString*(Ljava/lang/String;)Lorg/jruby/RubyString; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!1FGHIJ KLMNOPQR *+,*R$! %S  TU VW XYOZQ\ *+,*-R(* +S* TU VW XY MN[\Q/*R.S TUM]Q@ +*R4S TU ^_`abcQ1+N*::,+- -W- R9:>?@)A,CS> de1TU1^_1fg,VW#hi`ajkQ B- :* :,6*:*:+ RIJKNO+Q8SSf -(leBTUB^_BmnBonBpn:qr2sH+tu8 -le` avIwxyQm,2N*Y-*RX Z\S*TU^_oz {|`avI}~Z}yQE*+,RaS TU^_oz`avI}~Z}kQ\ -*+,--RgS4 -TU -^_ -mn -on -n`ayQ|,,2N-*+--d,*+-,Rl n$qS*,TU,^_,oz #|`avI}~Z}]QG*+ R -vxSTU^_`aQc,N+*- R -}S*TU^_n|`a[svI}Q!+:,:*-!" RS>!TU!^_!n!dnVW|`a[svIkQ] *+,-RS4 TU ^_ mn on pn`ayQ],2N*+-,R - S*TU^_oz |`avI}~Z}Q%*-#: -:*,$W+ RS>%TU%^_%|%ozsHJQ ;- :,6* :*%: * &: -+ - R 1Sp ;TU;^_;mn;on;pn;u3qr,tu$sH J 1 -le -QB ' -RSTUuQ5+>d(d):6d+2!SR ,2S>u5TU5z5u2u sHQ4+*=()N6++!:-S-R" &,2S>&u4TU4qr/u"sHQ^+*,*-#, RS*TU^_|ozQ9*RSTU Q4 -*)-RS  -n Q+* +.k YYkkkPb@k7*+/01Y*2+34*+56*+78*+9:*+;R" DM]foxSVWe QX<M,+=*,>?R S VW QV$*!*@A*B**d*R"S ${|Q8)( -'CYDER  -CPK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -oF=]win32ole/win32ole.jarPK -)F= META-INF/PK -(F=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -)F= win32ole/PK -F=U^ jacob.jarPK -<1= META-INF/PK -;1=/5META-INF/MANIFEST.MFP=k0ol)VJ6p3d-(ؒB}t1ݻ5ҚCdg8[%]1$!qI|傒ڣرs}nSBcw"VgJ Q9Ji,Bڍ&S|AQBɻq%RNMo/acY*HU~IO Tt>/Tl6l:fwb0NhNQ^z*ZJItKY{│R6D{YPK -<1= v META-INF/JacobVersion.properties5K -0a[S毝V])^@M7-E1z~ӢQSz::%lMuѰRKCyhz}@ΚS+U۬cYc4%PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -5`.=EFcom/jacob/com/Dispatch.class՚ xu+^7)YKc%1/!f-K6ݑ+Ɇ>H1 iBC,G!! I1ͣIڤI %=ghk-}ٹssg٫^+>kXU:a c]|# !&s% -ANE_6վKοw߃!Q~&8AB/2P *~I4گ*TJjQ;d`,|&1ݵgWP@ϖ]z6vm<Ttg3) * UtZ& -iZ['mM J 'սʘڭ~5OR*\v$œ j6_L*JfdU!ʌgP۷{vumϠvYߞkDŻzvM;6'cU=6R6^㢡o I.BZ 2I;ks*NQsʞJلL5R.hܐʏ+(*ַ}#z/ɭ3P_PmQ54HsuԸ6 W;2:8Dr }5SH DQz 5/)aXAR*h{zj2o9 Xi%^⮌wq8@T]}_ d/UN}F0t0NŇg4cFվ b]A"xOvѲ,]B.T -Rcdpu@L*KQP*3N3rxm1O0 N<OmL+#ɮ~p\."[Zpk1{wYB٠4f3?I{#H .9M1q8ht{7<H.oW0+<P`RITlu#xzn -eZ 1x L`݇Z_b vx]^6x7##ge5m1yp_it{hƶ^tSqor7r:v!ep - .Ho|fb{so[q%^;ox1<zzH0R^o?^p>Fx<0 v"{qBܔJOQl}iyK#]N?*k)t5?%znݳSˀ]MJeDAo~w+%ފx1'<m&fU&ވ=_;2"{A8=@ٜiu_Rb+=X'mrĶy΢qE7d·.ܳ0P^pθv -N S*/ i~LNU$aaK@ɬ, Iv @!3tZQ]15SٛPM=L-%j>bJZ2t,):6^k cJ>ƕ2!me;cd,_*&p% **ðva7abۭd/|>],uc-baKmjrY<HfqϖT&Աln=zxZNR&{d&5s+O-!j£Vf0\{@U@n[9Lca聍ax8}vx?AvtaC° .cPg8F|{Lv -)՘W1h,zVQԗZxٔt*#FyR+M}qb{!Bg!Ld<m^v&XutxVx}Bt}1^_2yQ/vC2W`{F\Zc{TJ32[*^S-݋}^XjmS{Ωr{kem? -qՔOC8IK9rK_(; wjGPt9B+q|c -|ƾ`(P!/COqem@FjC̻9"2ѨH=eX -q,۠ 2 2eUUfǩT8܇0<879Dh%PZg3ï͂p0\C7 ٍ]g[0; UVOYX0n6S5: ՎS+kp>o]$@AR[8dTFHk/knY4&0HfF*p qQX;(fBIZVG~a[ -/~K7&\PY:HsgqhL㳙ي`6Ǩq|^(~\AԘfKή#e1Xre8Y,Ml&vq`Q(`MjX$ƴ26V^GeV(:KVDd'f:Z4ܰԄ"I,Z":6Op8>`yhq V־VsͿ'BCP԰m&Z!S+djOM2QRNev6#NxĞu80,V>,tBl X֤Q'4+U8~' ܯq-䓠5μ,؍&˕r6V{.4 &I\Bɋ6ķo -hxfĤ:pwa=yhϵJ<yXo?G$ӂUJ}B**x(*QAʴp͑Fݫ;v -Y)T jR-B@&*i5#~Q4*Dm }EҢr<= <Qcbۡ{I&&2MB=HZ`hgS#ֈޫTAlʸI巨Ҫ?%TJWڝX4sQL6Io,";ALc<C (]Xn.tU~)sb7/1\?/b!&b!v4p-Zs:MБf(;! 2mHY 5 f̑Q5{9:m:\mf膂6ݔ@lmM 614؏s؃<@;uء*$脌/- ynP v.r@nj ۄ×&@]أ0.t -: …NBpS)\.P>kpQ- -Xӈ8.cDA)% -ù9 ->MfT% -*QA(u6.Q=Yk(u6O }.Q`{(-mH"a(h J[(C!~? Ӌ9F蜣 DK4+ ->ͅЅDAÅ6d3%v5*4^3ŮF(v;GlVN -@T"e͌A8ĥnEÏK:۴(#ՌNu"q9|!Ü'jhr2'JS m\MIį Mbp}!j_l^)[Q<V?X) EKN8 -\|6ΜfY]P' E]PM@V3E"լQ8ƁҼ3x43˭4H3>SW8gLFWԈԯvT6 M-EyfRJs5TwUC(z'$,f}Ё9'Ex J>mJQKBZ'IPS(|KOVZ8sKBm#WayJDՉڰX߅s{2Z9ɨ e|Z_GN1!b2j9$E,wsXnDa|뜘H"*+yy>喓$E)Mɩ9'Ec$6KP KO!I-s1)TAjΛJCQn)B>!]Tנ`{"<!K'6,bù r. .ho>j!瞬ڰqw#߉%a-s܁yCF~;~Cw!;DdK"i|vjh?!FY!E4Y#~YlMnb*['(v/#-[r-~Z/h/R,C+b.'ckצ>[yOQ -fI~'BG`5A3?t~1~UMkPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK - /=x2com/jacob/com/Variant.classZ |?gv73;$% ` L|n4R_V/E}aA*VQն~_;wg'3iιs|S0?C8[x<;A6uбCŨ.WqRŘ\jةb%W1b#~|O bktkUP>a'HNjn]ʏuj$7z 5Ό~ cRi8VUծDR#5Wū뇌y5إ4?7jZ hy'j z ON <MA?OJQlt W&YY<[qTncBC;5jS  > ph3 ! kCÇ5|DÝ>. wkkد5|w{5/SY[<_ ?~jMm] 퉮ɫ"퉶ZE777Υ$4-EШUWLMC*vu`N"LQߒHgoC1 R03ye'} -4ǓѪLDD,ȾDo[C(sz{z>ޜWp^KvGR+o_OOtBWHtF#q52΂jM=(03g%%EX<J3h.$WSwzz"dz˩o67/:EUMU -\XC ZObX*]eAF6LWL6'JȌjbkHS1i q!ItOQC,mjDhMqͩHn)a3FTZkf`C=)F#0oje,IQ;\C}m}MQ*~ϊU,J,NFEj6j̮1̮:3LފfSb)3y,,"c+dLzj)FYN]k"(7E2WG鄒&:kRt0ac9Ts2 &]Ka9XLH69Ua 1(Vrcb%08upa<*-JmS!'bB8ֻH98_1%O,YeF7-MfW'!IG$zebS!5K,'\jYpgZ> D'j-yT1SVfaKp U|XyXdbjU7 2L;՞EuUBŰXMŒJ̭1̱J\TTׄѾ&m'Rnjnꍧb]%dU!t -&JXNF]99^Mq$LQG=i!nc5e-`'+"ٖ8ܘles+u2@G4fy$YwY]lF=NFoCP7R vxDhюLm]w9WT:;=!aǒq6zNZh=1ҟD3PȌ7r%3;a& L -zs=ZHc61yxW,<g&_Ǜl2w{t<_6dR1R_!w:[ w>(itE_nQS[: +&ξL͐S2XS_Jy1d` \3cX;E-s`ߨxen~HG.yf+h*.EOʪ |ߠ\t*pN°%oxM6,njmlih U7-_hx1S |]u s !kᐊR<.>y鯊@ k!\Ҡ MDhqK3z7,'B(WE@- wіHPn9I :Eef7aF,*4k,4Wk"ަQ3[j()¼qS1.Is -qGGaBM4gˆu!m|ǀ:6c?<mT"#؀ppݠeMLqF /fwiϵT?벬Lu^LOW(힣5ўX#6Bܒ0a|(9*mӐ:;ie;ˣZ6twMG sJH@$vhiVӧG}9|ZHrnHǚdsJ<Ѷ$kWzv:pjTqo^/R0^?FsQk4ǙAn7M7[mfH&A6.䟒|M{m}$oMHnwM~6Qw$?f'&&'l^ɿ )dqgGK:y+tn=<*ƽD xy|U2,tʐ@4?|t-=7PHw1 ^Q-拢@fޔf6x) W ٴt^MBM0bm1F"Zo<bvA9LSp)m<dWvd!0z<fnҹT -kczc#1lr;9wwi(Z<!}I3_wz7#G9kQN?aki|' +$%aQDF(8>J%R߅dK Ĺls-l=rT'GKncl:Sh+HΟ9p8?KϹr)%+$:p2<'ί뮜;މAەӒ,4㙳u 84,–f@Bi|''YdD/=W -|mt? -~$6 g%N<"?x:k Oہ߉_ \xdƁ߉7&0OߒlwX#.<M`? y8E-<&AT=$%Qف)jcxtDL%Yl:aXHE.5xN<7̙'9<ҙVI{aD^:*atp~(1pgcXjEev%-a;f6+ ?h_: -!}5lS*zxf'iNx ~f 3kgP(EĜ,^1,gTp|/ OtAhu!B{wf >iFn !Zq0~ 8,/y7N z0Geӛn3(J?s%,f 5\Fתpfɧ8ϷŁjŁ>`)Y0TGoppbb&C8{ !lKmE,BY—i1n2pc@`85P6p\pe@ D@bHX$ NN .BG碏}tI0uGV,:o.;5)S]J (<ځi{`#Ytd7;]a 6C\t}fp>.fBehJ,&TYAi~.BٰK=YE |kn8KqCeNTȪhW sZ5Pܗ[1X+$1Zڅu ~8,/>l3T6؋?-=<@gg?-yN͙ >]Yh%aPhٻp{8(x&YW2_e*ٌo3N[0.PzFiAZƶ%io5-oQgˎ,o}IЫqL|5ac8/9كmj>kS~ 8|uȄ/=%eM?qfn-`e`YV-R|P ]fl~D9s0rN\H(HF)lFB-*kWh;6G|qn5s9+hp9IXY ->,ЕV[KOq9C F1(*J_,EԑוdrCE<է;<{z @[n]ZG`ӿ'%@Z n&8o & b@+\*;(u3,߷o9Rh;2A۔*Qu}Շ"VWR?JR̷TVTX*T|J -~ftTn*[* 7>KMe=7-7tQ?[*)7J6KeZ7rLKM2x* ^ljQA!%Gdj*"ep@*WߔTOW xrޯ܀/*7⟔"VeEYܮ\ܩܦlURV>Ux=<=-vOӭTO8g5Σ y ~9 -~,H.kym!xNno wuлīU׿vC.ِv>VGdzgC\UP+~MNU*/~0Ay&*0U9Ӕw`.T)CU>6 ͠#m.3q:϶ =#C\\UlbpkU^\lat` ?]q@OCûZ!J'(HDI\b}_sRkN|ʃYPK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -<1= AMETA-INF/PK -;1=/5+META-INF/MANIFEST.MFPK -<1= v aMETA-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -5`.=EF*com/jacob/com/Dispatch.classPK -5`.=F ".;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf),Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Icom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh Ocom/jacob/com/FuncDesc.classPK -4`.=mgcPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .Wcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !jdcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y<ncom/jacob/com/Pointer.classPK -5`.=(Apcom/jacob/com/PointerWeakReference.classPK -<1=<orcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= }ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? +com/jacob/com/SafeArray.classPK -4`.=%b5/com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK - /=x2Иcom/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#com/jacob/com/VariantViaEvent.classPK -5`.=#g["(#com/jacob/com/WrongThreadException.classPK.. ĿPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -)F=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -)F=wpM$$)org/jruby/ext/win32ole/RubyWIN32OLE.class1V -D 1 -1 - - - - - -1 - - -1 - - - - -1 - -1 -1  - - - -1 -1 - - -1 - -1 - -1 - 1 1 - - - - - - - - -1 - -1 - - - - - - - - -A 1EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java MN KL  -             !" !# $%& '(com/jacob/com/Dispatch M) w =* +, - ./ 0 12 34 }5 }6 GH EFjava/lang/Object7 - 89 :; < => ? @A#org/jruby/ext/win32ole/RubyWIN32OLEB CD YZ MX EF G- HI JKL MN OP QR ST{{ U,}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses M IJorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date;getInt newFixnum(I)Lorg/jruby/RubyFixnum; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!1DEFGH IJKLMNOR *+,*P$! %Q  RS TU VWMXO\ *+,*-P(* +Q* RS TU VW KLYZO/*P.Q RSK[O@ +*P4Q RS \]^_`aO1+N*::,+- -W- P9:>?@)A,CQ> bc1RS1\]1de,TU#fg^_hiO B- :* :,6*:*:+ PIJKNO+Q8SQf -(jcBRSB\]BklBmlBnl:op2qF+rs8 -jc^ _tIuvwOm,2N*Y-*PX Z\Q*RS\]mx yz^_tI{|Z{}wOE*+,PaQ RS\]mx^_tI{|Z{~iO\ -*+,--PgQ4 -RS -\] -kl -ml -l^_wO|,,2N-*+--d,*+-,Pl n$qQ*,RS,\],mx #z^_tI{|Z{[OG*+ P -vxQRS\]^_Oc,N+*- P -}Q*RS\]lz^_[stI{O!+:,:*-!" PQ>!RS!\]!l!blTUz^_[stIiO] *+,-PQ4 RS \] kl ml nl^_wO],2N*+-,P - Q*RS\]mx z^_tI{|Z{O%*-#: -:*,$W+ PQ>%RS%\]%z%mxqFHO ;- :,6* :*%: * &: -+ - P 1Qp ;RS;\];kl;ml;nl;s3op,rs$qF H 1 -jc -OB ' -PQRSsO5+>d(d):6d+2!SP ,2Q>s5RS5x5s2s qFO4+*=()N6++!:-S-P" &,2Q>&s4RS4op/s"qFO^+*,*-#, PQ*RS\]zmxO9*PQRS O4 -*)-PQ  -l Ox+* +.b YYbbbPb@b7*+/01Y*2+34*+56*+78*+9P DM]foQxTUxc OX:M,+;*,<=P Q TU OV$*!*>?*@**d*P"Q $yzO8)( -'AYBCP  -APK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -)F=k<win32ole/win32ole.jarPK -F= META-INF/PK -F=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -F= win32ole/PK -F=U^ jacob.jarPK -<1= META-INF/PK -;1=/5META-INF/MANIFEST.MFP=k0ol)VJ6p3d-(ؒB}t1ݻ5ҚCdg8[%]1$!qI|傒ڣرs}nSBcw"VgJ Q9Ji,Bڍ&S|AQBɻq%RNMo/acY*HU~IO Tt>/Tl6l:fwb0NhNQ^z*ZJItKY{│R6D{YPK -<1= v META-INF/JacobVersion.properties5K -0a[S毝V])^@M7-E1z~ӢQSz::%lMuѰRKCyhz}@ΚS+U۬cYc4%PK -4`.=com/PK -5`.= -com/jacob/PK -5`.=com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classŗ xW7d7ːCIhʣ hd3β@BmRh>k-VRj7)(}HbwhjkkZϙL63F~ssϹN0wa7xaG'8,qgX>>c7pY|Ń7w n}C, z† A<i~wWYX^<'$X|9OgX|7Y|yvYέjWQmߩE }~ 6nwʕA9^& Mkpթm -n V%Vn _ꗃr$KWtkȓjG6ٯVh`rN!r`@F8G䎆6 0/0@gXjOkZe}Dv"Z2ڕm?*0tz?QI!?M.LV|J8PCԗ^R:J۪dwiŝ&*Ze3( -ќ֪>G| V"CL[ڢj>Kac`A jQ99~TCRQWUtk)4t)ӰI~Y[K Nk*lY*GȭQ>4_rOӷБ5j]H6#[gAjYIw6h^'Nb?Mj -)bkw~Z6 hEA{ ^2ډD"xBvev VcAݿdT%D$O4^ Ll]3t9# bsLđcdC-kv]6 _UNZ E7=Hq34n5jWį, .?`t8L%<\y:GgT>[.7ZW7q)QH>~ w?as}(]r+ -;aO X.gx^ dگk o)QGw,~EHtܕyVM^R*6/w JWIi[d'7,/HϦXdq,w5`: ?/:t'F^UwLް.=C53йXijۦݱ/m5iRzj܍R ]ZWTzj8{:_'ZJտ(^S[eRDj ju,lM ^~+'_Dnn 7TP+W"w̋|0?w5u*l$p,̖cwpI%mhW7 pU ԚLm:H.^V0Rp5Ii4j -t-ԢZQO f-c$ꉵāˈ&VФ4+(`0)e'ڛ) 4Uyަ \{X^CqL\!{93ȠoD I1EfImYM69@n'IEP1a@TsbMm6YXEQc'gjzEۄHqck!X74!z{>FɋCݝ꿠U`_ݗFI\Rh-fSV6GAcAn"! 1$fMle , aDԹ!P} >7JFjTW/ ۝jd,tWbtb H̬!56`R۞U¾vj`WegPcbH#qB4&=ޠoh ]c$P#؆Ct_r8 ءSN?TxJg(cNoE5q*'nw͌a4$&e O˹w UV)$ Do!S)r}YL0I-:1^R/{1,8ޢb(G:H6ye{h@_wKSnhyi chQg!U̦ĸ ->1SDs1WTcQy>iXWD˅[*P bX'QJ׉sB֒n%!BtAlw]t.NxJRkڅOa7KNbH1ΧH3FQ4pC#v817 4-G'R䯴G[1k{πX|n=F/ӵMϤpFMJ|#RUδtD4[7-噖LKy%n}Z.͆<D ,beoAj>´Z`Z-0V ܺZiٍ[ Nىu8^떎lxnؐtw^Ƈl&AV H, -5U 2Y&:_?jMOȵ>Ŗu[Z5:n`rú`Y-FgKsi:aqc2=&c&,nʹ\L^z1'e)9|5K֋w'o)4ɴ%$ӖdڒB,f}Ph v# ;74aa?j.~vx(Zi#(PX2e*;5#wPK -5`.=D,-com/jacob/activeX/ActiveXDispatchEvents.classmOPw֭ >'\".hbW.ݝ]˔oo$2ۖfCl{Ͻso?pU:հc@ \Ut\gKM=Lԕu_SZFgztN-({g(6ßtkv3t-6=Ѧ&g(0LK!Q'CH0ệwcs[%];pc<Y?:gx_D] xStis RS}İQJXcA]#0!wVБ-:ط*rV,CԆ+5ʨ0°\tIsw/2 LReXE"h!OAGNӜTk#)ѠؠMZ 0@'"ΒatRN©q-r~WBX8 #ae % !2JO!+{06CϘa #fCY||TpVchkO>x Y1@0u l)PPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classWs֖ky؀BBmBy`;81 - ㄒZ,*۔ yj6<L:i;M4 ̴3? ݕ,/Rs9;9_?+PaFGeL(FBNM>ux, -nEL8RLɘ(!\/ńBWQD(`J2q" -OxFB9 -^bNxI) ;MtPo MCe$QG i=;;W!7c$t \Q=mviל4-$׹mu4)Q}RxwuLko'1YnO"r m[t,cozޘw~Gi3n{ 7cIXq#Y*uQwe^wNp?ʻ@? -[.:;}Tȋ#Pg{Nәw~&22R 4[׼'fq=s6FW -@nae~49$@Ww 쭂(ablК>c {KX%)WOO^1I^K+2`f1?Ԝ`1H+ x[ڃnSq/+/ʴAk̘"U rzd6׬I`.5 )Yu]t.Sԉ5`0*NcW xm5[%Y(JZiœ_йn|1'8 ɸaV%-<URY)a5M3%h>#3wf;32JЮejk֎DA;fM4qi>s婆LZ~xKŪЯ[]-m[ wxhtC|Ĥ |3?bҳߛkF'X2s٬̗pOw Kkj}#0JWP}X\3kMe'(|SGr -=i֘e,U[)=BEj,?kH^x1tV5ҋ`|`BDIdnp,?rP.Ox;U -Tz,7k삔3#,}.3O:cl ",f[f$",r,gMcs.%XX̠<)Y ԷƔb  1P9KgTP"\@",}egҲ|z+`%]IDU%wX]*1]7$ˢ?f?c[E_lp=^G`C#ЊXAlnO`SÔ C؇G(3dpy^ӜNGp9> 6A—x p-G8plBVa7w0`'v >>(lOqeKNRs^/Q[ҠB1ǽm.]ģ b='>?z 2.a=K.ӧIK92/#%24_p -'{e<xU[i\f?Peu_ݵX-Z>;BΣ-$Jh|OD8ER'BRocDϒ)/ϡZHve&ƯǓD /2шPs5dBH8[tF0^=$W"D%$]*buEnW'e ^n*08*b0 O4{zmd6fp} $&7 ks5پ;K$CZm@ pzwxyD?OO\ILKʝ&1}re -*=R -(sU(3e( RrʡdqSb>29?PK -5`.=com/jacob/com/PK -5`.=m_com/jacob/com/Automation.classuOJ@}ӤM=7oZz.uC,O?gc 73oߛ|}|$A481!6q B0 hBZ߷JȒIn(ע1~ޑ{4τ\*+2Ml%0,ج^tn$bEd5g;1{mKk/B 'eYhp_OW?u1cԑG 4npة~PK -5`.=_5? com/jacob/com/ComException.classR]OAn[ *g|&D1Q}#˲K].ȋOA(㹳ʒM=3{9??]cPJ4DeFhy*R͎ Q4nݣP׼+hgڕ7*a+npq_^X.i.vG8h︝M{' ew<^M-lz]Aź+{TGz5Tc_R'.0wݮdrRI&<u&+vd)q'epSmGF&J;0=ho 5yY.3MFB`4<($CPMQ[ j/2dl`cXCwˢ4=@&h *`kG>K҈U<'i*VL.IKyYqD w1I:kt.*IMEhS$}A:\-[=ҬaRW+61koA XJS\ 4#]_M|A kò͚֤L`r h5j)~$(?ELeY嬪VlqN\kRtW%~g?HSr0] ͙oo$*?%6LT?'6ߒUPK -5`.=L듄,$com/jacob/com/ComFailException.classoPƿ -9es M`S$t @ζ-H|wc?d6}(1$==={ʏ?_xCk˲Dzrp ځc#;{g>.|/,/YV~? -9umك|loK;?!EtzNJ4sBZ'9#q_Mӈ``aL?>Yma8޴Ck*V -f= -&DZ9EDY$?NG^O \q%]1p,,e*K.P+Kԡ_*\Ngr0PI7(ӥ\B"k2ؤh+5\dTe"O?@kUeamjz(a,i ءjƖBe -a%YSbGĕ)YO:*M2EoVM\@n;JI]Beүצ~Fg`73s^FȈU\Kujk 5kHK#.J,P_K[PK -5`.=ѰTrcom/jacob/com/ComThread.class}TkSU~&-TPK)m54%-v,ͦN;_Й@;C3L?'K as^ϋW&0u& LnX#17b6> ,!1o&Lz ?58șXcѺ l/Z-@bu*ruUZ!Rgs |0C+7++L-vTͧ\W -DlQغ@x-Z۱Vy˩|$Jʳaۮ s۞HSx_4prs% -d[ˇ %U Anr -j05G$7wY6V*t*.تd?f6ach̹B)hB<Vu]:J-$%b\"d -g6VM\xoH|^HJk|CprRY߳UT<s3#ykafD[(&y6%> EkQ.OF+P{U+$lv(?6`Khjxz^OVOzuj]i[uQ&sTYW;! -J;8Lu@_!YD .1-թh[[-0t$c==ʸJϽD%(=S1p~ c"bft)IGJt2Ѩ 9F~<5 бvSY<t|̧u|$p[:!ZhŻLNx2BM;!6DK{:4{3g0O*Bk8O& 15Q]7(}30I\B1CX| ^BDosS5p~_aa$;H(SNƼGU<@ݞ:=|{_oؤ^Pb}({7(;Qg(i wVsn T%ZRu1:=uG 'Z /&L$D9F_"kLjlN{&~# ڿPK -4`.=*iOwcom/jacob/com/Currency.classuS[OQNoKrqoxwA (Xl'I]\v7|PMM$Q|2G,K-:3g988Ƣ⊂1qM܈Qn)- -&܉AX&] p/)ܗ\ :i3 ]bcMJTfU0k5Um<0,Ýd%S%XRLhyw y!0/u^ײUGXwa7>;g'[$,A"$?5I_L\- 7?%S; -wĊp<y5-}!`uQtLf_ф]^|+@"U =c-U(f ݵ|QĬ%J34Ψ8s*F!qp6p?Μi27ruCXۢm1 ~0KaH縥ۖN.*\:QWs*HA^U,I34ax%7(ᕊJ z/B^L)[ %*Y~h;>FˊӗGk"O!{N{t,;!Bpu_&d5vb0=!irvrd1s ~()1F9ǎW|jFH!&eK-aߣl)Qř:::jm[ZQH<t4hl#(Iйu."yuh $"AʁZ,z7ߢjj'5!z5/z#jkip-S -Z ֧-lZMɛPK -5`.=\_V!com/jacob/com/DateUtilities.class}TMsG}cXɎ L|!eŅbkVrˉK."خPS_OʛdC?'KEm|a\b -|Cd9VowWK3\1;kYpD}eɼU~9L|WZJ`vPl#Owe}j##pEʦFŬVi?:zQD6 6"$p\o'e@(K@, -_(5" -Ī 4øɐ@}I*lʸI!J Ibz&[{*Qgy UZ1N{zԍ=uOjLVG0!Shƒeܰq-c5+FtȰUjɠm{jKQ(007#iId;Xmgq X7ӽ -߾ C-kaGc!&Jw_c ԏ6y7j۩-I κ^;j4ũ{)>yv07C*@rJ'19sG8_Ez]dv`vԇHL&H1~" #[vaZ O?Evơg:i$.3lqi__',8k%LW9, -[q1R"c -4>I}KoC|bo^ w<ѿf1$d'kz y&y³SRDUx1j|LdA"ǫ{%p'A )&hi=o*9K'9T*p!9PK -5`.=EFcom/jacob/com/Dispatch.class՚ xu+^7)YKc%1/!f-K6ݑ+Ɇ>H1 iBC,G!! I1ͣIڤI %=ghk-}ٹssg٫^+>kXU:a c]|# !&s% -ANE_6վKοw߃!Q~&8AB/2P *~I4گ*TJjQ;d`,|&1ݵgWP@ϖ]z6vm<Ttg3) * UtZ& -iZ['mM J 'սʘڭ~5OR*\v$œ j6_L*JfdU!ʌgP۷{vumϠvYߞkDŻzvM;6'cU=6R6^㢡o I.BZ 2I;ks*NQsʞJلL5R.hܐʏ+(*ַ}#z/ɭ3P_PmQ54HsuԸ6 W;2:8Dr }5SH DQz 5/)aXAR*h{zj2o9 Xi%^⮌wq8@T]}_ d/UN}F0t0NŇg4cFվ b]A"xOvѲ,]B.T -Rcdpu@L*KQP*3N3rxm1O0 N<OmL+#ɮ~p\."[Zpk1{wYB٠4f3?I{#H .9M1q8ht{7<H.oW0+<P`RITlu#xzn -eZ 1x L`݇Z_b vx]^6x7##ge5m1yp_it{hƶ^tSqor7r:v!ep - .Ho|fb{so[q%^;ox1<zzH0R^o?^p>Fx<0 v"{qBܔJOQl}iyK#]N?*k)t5?%znݳSˀ]MJeDAo~w+%ފx1'<m&fU&ވ=_;2"{A8=@ٜiu_Rb+=X'mrĶy΢qE7d·.ܳ0P^pθv -N S*/ i~LNU$aaK@ɬ, Iv @!3tZQ]15SٛPM=L-%j>bJZ2t,):6^k cJ>ƕ2!me;cd,_*&p% **ðva7abۭd/|>],uc-baKmjrY<HfqϖT&Աln=zxZNR&{d&5s+O-!j£Vf0\{@U@n[9Lca聍ax8}vx?AvtaC° .cPg8F|{Lv -)՘W1h,zVQԗZxٔt*#FyR+M}qb{!Bg!Ld<m^v&XutxVx}Bt}1^_2yQ/vC2W`{F\Zc{TJ32[*^S-݋}^XjmS{Ωr{kem? -qՔOC8IK9rK_(; wjGPt9B+q|c -|ƾ`(P!/COqem@FjC̻9"2ѨH=eX -q,۠ 2 2eUUfǩT8܇0<879Dh%PZg3ï͂p0\C7 ٍ]g[0; UVOYX0n6S5: ՎS+kp>o]$@AR[8dTFHk/knY4&0HfF*p qQX;(fBIZVG~a[ -/~K7&\PY:HsgqhL㳙ي`6Ǩq|^(~\AԘfKή#e1Xre8Y,Ml&vq`Q(`MjX$ƴ26V^GeV(:KVDd'f:Z4ܰԄ"I,Z":6Op8>`yhq V־VsͿ'BCP԰m&Z!S+djOM2QRNev6#NxĞu80,V>,tBl X֤Q'4+U8~' ܯq-䓠5μ,؍&˕r6V{.4 &I\Bɋ6ķo -hxfĤ:pwa=yhϵJ<yXo?G$ӂUJ}B**x(*QAʴp͑Fݫ;v -Y)T jR-B@&*i5#~Q4*Dm }EҢr<= <Qcbۡ{I&&2MB=HZ`hgS#ֈޫTAlʸI巨Ҫ?%TJWڝX4sQL6Io,";ALc<C (]Xn.tU~)sb7/1\?/b!&b!v4p-Zs:MБf(;! 2mHY 5 f̑Q5{9:m:\mf膂6ݔ@lmM 614؏s؃<@;uء*$脌/- ynP v.r@nj ۄ×&@]أ0.t -: …NBpS)\.P>kpQ- -Xӈ8.cDA)% -ù9 ->MfT% -*QA(u6.Q=Yk(u6O }.Q`{(-mH"a(h J[(C!~? Ӌ9F蜣 DK4+ ->ͅЅDAÅ6d3%v5*4^3ŮF(v;GlVN -@T"e͌A8ĥnEÏK:۴(#ՌNu"q9|!Ü'jhr2'JS m\MIį Mbp}!j_l^)[Q<V?X) EKN8 -\|6ΜfY]P' E]PM@V3E"լQ8ƁҼ3x43˭4H3>SW8gLFWԈԯvT6 M-EyfRJs5TwUC(z'$,f}Ё9'Ex J>mJQKBZ'IPS(|KOVZ8sKBm#WayJDՉڰX߅s{2Z9ɨ e|Z_GN1!b2j9$E,wsXnDa|뜘H"*+yy>喓$E)Mɩ9'Ec$6KP KO!I-s1)TAjΛJCQn)B>!]Tנ`{"<!K'6,bù r. .ho>j!瞬ڰqw#߉%a-s܁yCF~;~Cw!;DdK"i|vjh?!FY!E4Y#~YlMnb*['(v/#-[r-~Z/h/R,C+b.'ckצ>[yOQ -fI~'BG`5A3?t~1~UMkPK -5`.=F "com/jacob/com/DispatchEvents.classVmSU~.$l,{%[BB-V -T$KX tqF3~Ff|3(ܛ4p{sssι?' ˄LIҴ2$Lϛ|yÇȸY slA-X@K~%oapm 2aRFw;ޕCS6nnY)-sζwz)+PSV2ƥ -QSShbCRcjfb -^\bLZi!MV>;jҠ`\KҦ] Lסp+o5yZP ~,&Y#ؿ艝͌ȱ.g[x8~?٣䴄$&\59ƪܪZO(?ֿm+0L^ ;ca$ uM Mu j<IyA;x\( -0A\SB453tTzFZ浌W -)бj5&rh@VB)x /3D&UӴܐ]y(j9lQq21ngYҘNi9'S`v䱥`W6Cƍ ;Upw5v i3]SǶahԝ)-LӢ+5w,Xyh+n%MKJ43-..*h~y&N[ՊrB49fcm'EH=Ms"EO;*fsx@>N< hN4W=8Kq+(H}4ZGrz jG>w$YZezŚsZy!]DDЏ(is܁" wk*W2̥KQ`TtGm=އu  -h(1+|%!&#{N 6 x`>ZH z]}ty]A۔ ŻCDLJGǘ'DͧXgt}N'_9-s[`^ CCnx"7^ C%( -;f?ЕU.IL4/0_Q*_?Q@9^phb/FjX DѕSr*T&`LTuvG -¹R)9,lX+m_PK -5`.=hu{4 &com/jacob/com/DispatchIdentifier.classWwG 4S ِax"!R, c$bˤ{^krN |T2X\Isߝwf̮yǟc{'}>asv&ޘg=θ2RL~jy?33NbcA"sA욮뉬𒴌^lE=*d#2|U|/ĊP٪-]]WXjt}#9#q6 k "sKQsU~^釶W,ii\u$qJE١M[O.ÍB]FNq\xlBd{ICPv]7Sx -[FtTS!aF5rU=F;'5M=8c֮6@Yj{>HBo}?jȱK8VПMQ75#Y]H("t-ױdWrL?M k~G΂6c"g)ot2׺.‰ڂZ:P˖xϨBOU>a>l}[፪jraiEMYlc˸k<#*z2ꇶfo:]2\1'92F#Q}7j'8hIdsb틐GhTX"հ׎ruرI9x-hh -ÜmAVʈʔCmq#F⪛=ٶJIa=ϱԌITqha޳w_fgZ<v⼅P0~1FD:qN rX\b;2uY"+T.zNjq~| -~ROe%zz4P8</TƇ74s)_-\p&j\8*ӅHI^=edrDZ></'*:kź._ux1x)G ^N^I -'^ !^ #^o ě7[ۈ;oo!vxxI Nx70|>!1 )b6-&("v{`8 {> 'p8 &g'~~,q'.Eyq $~"+%GiJ< _&~~q 'ᧈ!~~yᗈ__!~~u||^|r|vU݋OC^o*S_e~PK -5`.={'Uf)com/jacob/com/DispatchNullProgramId.classS[OA-ݥ,\AŘhф ٝE>M`zۇ9|ߙ9b;<JR51 ,c7Ma &VLm`:C zĐ^Z>bȔú`@y#O;vǙQ2fXp79z+W~q0D8ms4 M"4 B{'{5۾7h)<XU}<C#W<ZDOi뺶!zÎ:vmڭ(TUTv# -}[7Ö]bذF76uXO<,T`(`ԩ']{=zaG !mg]u6y-14L鰭ws@EH}n-/,<Cu,t[9;KEZ3Z\( ]"MVs_3V\Wp+hQ,')@eVMA)8LRuRq2Q =a ecZDMqg0 3AҥoG;M&fdtr"3PK -5`.=/0K!com/jacob/com/DispatchProxy.class}SN@=L[q -)RPCƱRNjWTB G!f@4awf̙?;رac1,x%lbU#iG  e$yVX^27>o 0Ve|?mՃ@CLT/CKwݔm>,3 &0ӯ[ߜ9xq)JUMǁhQin%_Aj=BQAM~+R<g\<<  Pa-YqlH ~G<bHf։b܋b;@Eor @' h4鶑͜(-3ʆ0_tVC)s-wWF[ `A)9BphR9Pa<aD0ncϰ'V#*\߂ =~ϩ @7J³PK -5`.=F+!com/jacob/com/Documentation.classQMo@}8q>Lچ7J\VJQ9}RGJcPE"BG!fByox+T`68lrxʡ-;c%#d÷3@\EÈzk tO8( 0xӹ?n3_腱:jr*1$<+yx) @|F:U$1Pß~ .9v|l6ovypx~-I@DO'J_#_:]QqQP? -,98 G̡`UB 6g-;I"hg,P\U+7=མZ tka{hiB:i>oMBT*M v" b/A`龅GN/z_P=d7mȆ>![s\r.0OnWr<y7j~PK -q/=2\hcom/jacob/com/EnumVariant.classuTOPڭܦ[Q`\28]Ƈ4бK!?_|D шQs:`[zι~9߹۟?bMFd\Ci 3rs_< y, ObNBF¼ЁV59ݮKn<*hYnd)w޴LwALfSrkp=gZfR4WZL;9[M3'vfݪWΩmZ0IIچebX. Zg [ơ'1 %Sm -;[wamI dB#*ҨG%@K5k7X2t֙7w-xkk߲[k=u GsMۚoþHrޮ;tH:š!M^DDRЍ1,JXRcWpϋڴu}yP7>N`{3Dˣj\̥>a.Hֳ*~%t/ !-v@(!P`(`@()60Z)!Q@>NP/AZ8'<&A'Q4Di;'$T $rAC%ϐ/tFhi0MxJ'a4L|> 6#|6a6n'~B>Ew,Jsf@-QSMe{6x% % ?ARs{JuAK9j6- }TNPK -5`.=VӴhcom/jacob/com/FuncDesc.classmJ@ϤIj(rvaF .'ӡNOFP>%L+9sg]:`ƾ+Z1%Bd0gyLU HY=$4*b^E~THyrQ&A¦r#FkYt9 t˦2Tm<M``aȰӒAƋupR:8 ФMRi#r!yNw8~m&-r~GЪMO#zg_P=u@CPK -4`.=mgcom/jacob/com/IUnknown.classTRGF BJ&BqH !WsXXʫwN$TP!\;?}`'`xc_t,cEn*m7᱆oup,\֥Ʀc v]yjOG?}?)~~_cڞp29:4rN6%<CJzi{й`ڦ!c-;yГ1m^)fcd-3Nΰ הo yfa妵]v^tU(&ajϰ*t1&Okfy2E,3%,a5+"[)mI#O0F2BjsMP+r(080to{FQ])`m1HLPn"='^Y~ZmĪ33#Y߶IL:LJ7Y8nIG6RryPkpK W38LrbܻQġQs9|)kˌrQpQ@kx;3 ՍQ{/nm0D||c}&k}RDzǩбzM'I)(1(_:s@6\uTV/Y֍huh4TQ* 5_%: kfQDB=.7]$\a]z9a -emɱȘYpO2'fXԮ40hFe ӿ5:7HG$;y!PC:8INڤŧ$3J@i -4@\ u )g/ч\'MzE57FGq_`0F B}Y_B{@TpÍpo5H'U 5C|q^#R_?M{T֩Skt}h=U⽴$"^ETpQ]0DiwU(җ%X@c_7 z5 0gK2{!2FnQ3ć#b "At*F d]PPK -5`.= #com/jacob/com/InvocationProxy.class}T[SPN)A"R(/\metIC=N"WȌrܓNgNnwowWQЫ>TЯF -;+[-YwTŐ{Vp?*0 `!J</q+`hY37ͬm:l՗c1%[ 3s^d2%Ҏg,w#fZn!+oyg: -Y)c8Tb {KI 9Ϡbh7NyPmy~)9]>ڦb`Zf9.B-1mRC.h8VKY&w5<cx+.rAQ$"=5<<5L`R5<3y BY1c6/WlP%S[/KIPw{[/W -t6}e:-.6Υq*yl11`Zc)u}Oe5*)GΡn -Y.sV)s5?S[uԍQ[6ڬMkBI1F)n=?gU -QgV%iltK҇6<d"A7@e_BVt6zSG=p,Nt%t:.Gbj5˻H~Wᤪ8t(&j?}u4vP߷ugDY4hZn>}:_"{KZ$cįŴV b*Jtvz(PK -5`.=qK .com/jacob/com/InvocationProxyAllVariants.classVKpU=/LO $ 40I#G!!tNz.XJ. VYRt#U]Yer*D1/ʼs={{?=;0qq1 *F.0$!,ax%Z(x%WÈjp-MB - -NQ=Q)P0&L*0CH`Ia~!dPz;e( -(5 )]۰\:;ZLU!1w~7;i[&h.k`װ~Ǿ1jr=FW')ЦSZ\ǰƎ,Ҕ;ְ¼E9j++KLI 3=;n6a}$_#Vbz2I=#mh%}b̮"LicҺv,K&lԼ y=GWK w$b\a4V -@M:?¾ l\Q`ԲԼ7EDŀ%'{RLb/]f5SY`zLӗn 9'w2m (fHxN 3;E⪣'ucJORMiP w漢[wge鴑͒GQ"-yLQDw,AΌWZV]8Eg,.)*}el ,17-lZC'RNʙ7ʻd{6yCĘϨL*YB4nUtehY}V -_7 f ݠsuR3i$ sGna2Lx=y -1ٸ a}.~^.~ɚi2\kd;Dn%=;Wx+hny[aT^y~\&HD %1E+/4@U/P8P%Q*/bN-{-ѰEtt#3«ТԱzȿy2mW {>x+omЛ܍&hf/X-pSNƯQP)G]sP -C=ÚxYCTGd.>[_= -zֳ|uѲoQ=\Z9l#h@X;\K9|Es4>6i`$JѠYRGץ9lX<זy:U[}^bۢyhAlDEjí_+sd/jokN|͕zє,~*l(!qg%qY|s}~|;= g4Y\#\o?ߑzLѸ!6cLq/[WtbJ+&=M1H}}A2 P{Po#݃xNw-S.r B -8$p -|9ڇuOШ]<A=ᰂ -:w@3] -6p'آLn= -j(MIFPK -5`.=~["com/jacob/com/JacobException.class}=OA *1EL<Cb'1v965AMvV&6v q wfyfO('QJ!% Vrp$zqNX!RqqCb_k2D[=XK C֐p.yߢJP&a9)cލt S7U_T;PwhCjzs=lӴp]> S`V'u'S*gSHQ94RX`Xo) X|=bQS\#AFYI:(V˳GDBSbn`Z71O*=!\g&9oA!4uʣ@ Ű PK -5`.=倥v$com/jacob/com/JacobReleaseInfo.classUmSU~,oZ@Iڪ6Pӆ+l.t鲛nU} ̨ߜ?x&Rܗy99w bs2sZ=d̫bA}_*ȩy"EKb,c A<R*悌5C ؐa)V~|#Q+YZkؖp~ɬds k/%3`euy%gwҋY =r=fy̬(4cX7+!KfYŗ*E)ub_7'+!>bR*79syڵ)iW0lR1dn9\e`6<|xl.zggr+f<?]de?p* A'q^CX}'Sݬ 슣C(i=!4L F—0(i%kB S&Q>咱 wa%\nd3MLR`g5Ew γĊ_7&HX  *w}nNi_ST B4,[ˣ|HU?Q4\6=gíd~#at9ƣb -"_7CE m5h?jHțB].skў^ /޳zIx1Fc Da[Bh!a$O :uv>( 7ԴHϛH2ua:?[)w櫾Rb2('z| [gLMem -:OƤ{*t[=9c>1Ai>uB5Kh%I35:' !4|)i6q,t\lctl!p*:á*_]aLNUѿg2[Eߟpd= Vy &*.*ޯbqQ"YBaFp4I"g.͓g1F.₟l60J\#)z\'_'v+2nʸCGnEM_c0<VQڽ<UWn X#6R m67̜y¯!{#H`QlgPS"TQgPK -]/=GrHq !com/jacob/com/LibraryLoader.classWWg~ 3,HBVhB1jL 4]!;;oWۚV[c{R-֦di4_LGCON,@#.~>~2q\x93 a$+3ILa)Ìi -a܋g% F58)S*|:oے;*{apxxDţ*SCK OG*ΨxJ.Vc9D3b=(N'N˰:GLʞ^κV,95?SvwA]Ƈ ߵsgPwI)w@eT $iFU,eC9jLXI֨I}rSYm<a$N&2Ft1fNn:$Bm3&GKMYv.mf 7<&"4f#fef\œ-l#MLQ\>ғ)>+\1] @Mg=n[=v/(HčYOgTY4k[ztgI31LM-kSUvYI];{R׻Dʥ!#{/R~fB5| yFv}JL9)89<H45W閆pL Ƶs ļMZVTM~_kx׵*zr)R4AÛ- !'5κf:*k7"K ѹ±5. J{G1aQ+x:\Ԑ9]m^Qhph"K];5'#ܚt?z2)pIJ,`9h=Pf9]sX%-ev`J,KOaif$ FrJXIO_l[KZ"s9mkSWOFOM{jƝoiӖmXasna{m+IౠL2c[+TJ. -g̸[z+CM8k";ˌYӦBIŮxߖ*w3su!iN䦮 òl^ _UQԱR+tĴL#kؓU -m53Yvw[/7eyoΰd]'23:IIsnxr?'P ]PE:h~wѾ/훨G˝R:9 Z/B\X!3`ʹB %]D0V"6Q-<Eۗ|j#%l `l#׫oWPۦW-as'6Uy"~PME7[QΏ~3E汵=[qY uu7 #yl;GrOy#>nU">C@M/՞4>Ñ"#>X4 [Qj}G^`` s/*Xq+<mxx<qx }8Ô={4 f,IgkO|hy|_>W(ÂÛo+B8:U"B}X?puKC }j' Nz g_W>0kGخk -(zx:H$%׳Peɿ^rv,{;Ü x=ge ^Pnzs-:6Zv\;<4ֶ޹='OTD0fWF?yAo/)2*'7^Kj*|[8 ϣ{PK -5`.=`:com/jacob/com/MainSTA.classm -PDg5 bcclAhĀW4bY ~%nb]v3 `"&j&c*C`Gj urh+|qډH>Z|B9 -_yNz 7`mTRi;磣 -tBoCOxjs2;G&.J72^RPK -5`.=6T3+com/jacob/com/NotImplementedException.classP=KA}gbb4Bx`I $i7%n w AK K+8w "̼y;aa -P'Tb) e+ϻ'Jmc+`.soOBXie[ڮ7 )=i ٶKBSZHFgb0SAx"BńН -ߌ톳@R[9>yMX~1uyˎJ6:LE,!l+~-dcqA%A\i1?ݦ;ENQRTJUM5PK -]/=s-^Ycom/jacob/com/Pointer.classmn0?7i]-hZ4)RA^pfxK)ugpnND"9?~x%}xk=dMc+>`p;QwHt,VRd$|r<Ly)2q: xBK"{\'9YPOHt̩~Qr=9%rVdD.$4bq,?(O|vg<2[hhaÓFy{0l^Z&82tu:qسCDSmˈNԹJ/͛;abO&7a^` sL4;@~ -UWQ5 VHְN z%lc;]7\@A6-4(%t -t%d6V~\ω5Z5hUTf?I{N%0ۯs^uPK -5`.=(com/jacob/com/PointerWeakReference.classRN@=+HVQDAM411_LLLwyKL$>~qoK9{t_^`^G&YLj0-]z"_ UYW5$ ۵[o{z7nTt{fT3F>MŊ@x;%xviݨ,$J%mwís) ɋʠWHOJYݪ@SMrʼ~}mmej  4D5HbL`&_m}ˮ> {OC`#២:`8G|}Dס `QI r4۹q0FXPT S*!;bc@lLPK -<1=<ocom/jacob/com/ROT$1.classmPN1=5bJHhbq_J6.ݨqQۑMޞspIl i줱ːjH%&CZ{btO0ZR+'HV4![Dp0[CkLJNhL1Zkȟsw/WD+CEg۲x4Hz<E {qƂ$zxFsbx|Jտ@sB>r3B3=Oa^NO¬merQ"yJ1tX*)D|2[Xz֦֟6AœEbV.c=F7\mۊ;PK -<1=acom/jacob/com/ROT$2.classRMO@}WK%q( j46)-h?e-&6ٙ{33|} ),Xò$V 1JRɠ/l]1$*^K0Lդ]S t yw/LcC+.!s5ǻ񚶎.{EbRqCoj]~mB_(G"He[ 4TzneJ!>kv| lt|[EK-KYu/q,LNFS=Rj g`dV-,fnj&=}6vi)'NiHn=QE6 OO膈~X|C!79D!ɍ4pMa> X%t,b'ۚ_PK -<1= com/jacob/com/ROT.classWxS$=`4 $)ePY~²a0IJѦ;IgH6JWtmH^ [k?8sϸO>)Y؊W؆bu"Fm:pBbwb: w  o.[V1ܭnTqJM]h~{qR}xؾKl-V{UO/O ćÇ5|D38aHð򶄊s:jpBC:֊yTǕOuk Okj`8GU|QbM[,1̚tF,k`YȌ#\ul;hzv*&3̳ٔ:9bj9`}ma+b|V4mߡ`~sNx(@iT7tzZ:;hKukgGˡ] :ȃJ= -=pM}q+nMv3 -uzҲ4P"fwj }+Z:oŒVw,#VSx>.#`6/X$SArGDAdfL_ho0{Rh(XZ:%"FH4g"u^ ;bt6"`I39tf;&y7%s^Y UT9[6i;ɇ/+yfghd͚5 -.+-7:_0U@P'p"_0}sՌC~PݎG|΀`N7 |Oֻ-XV7y | _W ķq=Yv@#VG=xC1?Ox~P Tp.'?>=%lWs0K<m+\~m` c♒A @UAPz|4fR>L? _UmJOCth 롬'b ső_7?dؒ -l (f4jюUCxj2f`ޔt>vF3O<Î٪Ycpu<U4pDd'^9\:( -M9qs=foV04$3'nu;B5Won[!nJYRBDjt98nIƙd6t*^*–g [f^wl$@ } f]!9e~ jR\|>@cs~0N1nǼ19rF,SWӍӾ3LRs8NrhqW.'`4f3EkDD$S= 3II$"pj6UgB o`>=@Ueqia+$6mfuFcxZIa%_ac-͎71#^۔Oa=4uZ_*jtwpNReX"9Y[[Rskj{ '5_HH̦sp,//+H2 ^%S®!8L3AօKS&"lu+Gun5Zctw #-s\~`Gp1O/4"PTyjeY@8F# RDx4Ҡ}<]t:Qᄇ2D@!|<Sp5X8L?fqaϐ@G>*&h(t`1CX!?i(]pā!,w܇!*| -#x7] -J`f {9 *BXJrq(ЖO"Y;&̑n,FP0sQ9> FG/)aӰHPs9NzةlIR\@]?u*n|Q_&Kpvq^L*/bQ@UEyTrSdXxR6v;i]Fi*&kA4]#tJ=2+iF'/raJhEpP#</MA,YH($%5,].J!u;Q]3Xպa1Wv9a0t'}[#0FҼ[!iݵ5U -Z]S6xԿeF -ډytTUWa=kװm$~ؙjfT=Sd c8ޓI!r\)䟃Wq89޹i 3#nŽFA?wPK -5`.=l])com/jacob/com/STA.classeR]OA=.-hdA5SbRAL|n'mkO?`Ã?e3]V6;ܹ;w_cDŽ&၉E,IoYҔel%K^EUkxd`݀͐Dj Ơy}.1hհ%&/ozSd ]ȓ8j0a>nشWo%¨0]~:gq6gZtxkQ#2<5hfz؋\ʓ_?_I,l``Ӣ[nK$ir[,l0u4 Ii<8j~ .jaȓrPwlkF<ꄼ%"y-w ,Ztt[U2NU;@rT@ -dH]%*Z !k븡H ǘ8@xo0h_iZNv&Llşb0X4Xj-JiߓfuP&KI -)dI\Rc@KVFT:"{Q+5{ <6W|-:ȼY PK -4`.=f? com/jacob/com/SafeArray.class}V |Wol6 BVHK5RɆCS6 , lHv*jIkQUiՠj]^xU]K̼73wGy8VCgA,_ Oÿx7 xʏNt'Y XHhpV [>4˖V[Dl`[2{̕cÙBjx$ͽtjtcoڥ٢t~c$w,ښYS(&WI$~kv,X HBtf43Fd D7 - Hbzt8?B!v:FSmR!۶ͬ"4)ihΊ,j;BR*c}j\7MsS9}#t8M[ |~4yCzQM2ey+mOYޝeM7kXͧJeE!V$r7V~ -B mA5s#COZ6, ]H3SABn˔L^ B5-6EР~Vf2IP -b-&Z 0n%v+Ƙ8nR&7eFϤJ1/C;;n‹:njtdžPSS Y;{գe封CqO+̩tgVhN`nExOzOX8{ĬVsUuE"zNro1I^K>6qm]9 -lY[u[Y̹eܝ 3ik|ٮ)2qJ`R!h#:II]E؈0LEcs̵j"BCv2 + 1#0dR[,WfNqTq|8z:EQts&tI'2ܞG퓒b +қ?ܴm0w^J3h[9be639;d7/ DX񼱐:n})?mc1P)_:a/j,K׊'=B|XJ'@R k'ie3;=!`5~x'{~9B%'V@6 *):ę6mmd~ij\0 n/g!ނ!| _X^vN ̶k, Ȇ=<܎;hDjNuMdGd -!+hѱ Ucm -N,}2&!#S #JwKga/4.{y(vrĹl$,>WϥuMjpABM_a1C<gхOo -5e %혇w_,,)zj.PH6=-Ϣ4Xkb2&րxj1+N~ĮlscѾ#6,G/蛈̐tYHb#pME)F -HY].H=} -Ѧ9'8o3t -vys)) EjV8Jc$W-yxs'ݍ?LּMs:BS_1ڏ"p ,[AFi94!_:-PTVb%Kqj\.H}D 1n?8HEX/x%‹VL -0n1x 7:͊ @g8LgjpbFp+ nGVpDq1Ŝ`%t% /UTIex.Ko: }.6RK\yP|omk_: {tE{tEߨxfbo["oN}Kq;ߥ7nGnFߋS|F?$xG?*xDo>Wl )ţP<Czi(~Vszޟ%|> -s- |SQ|Kw=I9&M$:BV{?vӬn5 N{Q7 5N~79ӻ؏q(inϚYa -sTSF{:4}!ndԞBjtQ -eX[y=aog #J=-FmExҢIsO{ s{-v:4W`yvv/.#mff_$gop=!<lo4?aoI{));虉R?^H-x yS)lV?#YZasa0>~)Sf>jFNqy(_4-~ڏX<u~vRƣbʝi:@b!)~ $(OPK -4`.=%b5/com/jacob/com/TypeInfo.classW[WW@Л!Ui :L&8:d0 ^Z 0`&jU[Zmk[{okVսO&<s}9gM?-p;-^=I|@C'$>%C|W$& oI|G{? $AC<P$a&4 $ujΙ-dPfjήV@1RVRW--F6I-eF* >=S f HKcB-[d0Ԡh26U6z,%HKe}:5Pd2i&Ҫah6PMKK.hBSkل$%)w0V6ȁbi<M݊qg:0E#Z"= Aj&cf <fO'0S\)V< XnөȷF^1tikym:remp=W;=jUhU%&5m5tUKX`Ri4V4ܖcO+h++a }g1 MI[b4ʖ&OjLa߻# ҒKP dթWֳXw_0kwJ.Jϙ$((˻!υݔg*^NV&Tr1vyS]}<IlLf3=Sg'Ug^ Bs謚s -x93Sƕ|i_3>=ur!;?93ݑug$XӋCؔ0c'G켕hfj(v±,^c{&3Q3A3Shv6m n GYu un-GUq^KۏU t6n= PFPu*dVgۇ a&F缑%*\z Ј1{vOD[&6<5ǩ3sD$ -@zWt5#)ѵ=rwz:s'RQ>Ŋ,Ak.s"l>hn#,Jv<Kj0 dQ2* 8 HdI ¼ %^2\Wd Wd -p P /2i縓;& 3X|8L׀ Y ~8vC+DRq;":9|{9܉! ~!nG?ፈ7qx3?QoA?&̻]qa'8L|=%3wrxbEOG hB_.G!? 79q)ӈ80 >C -9 -L:b]u]kmkB/ -q_h8hfj ._XG(,n y5\:, &y+x&` 6#h*9.⮆ -e;3v4iѬqI{ؿ/=;TZeJ%ܶ$8}OþyBQ3kcg}c/׋S/׊3*bl[[Vhlŏ+z^sngb(V +,}-{_ -W $Y֢ $lV..DF1ݕe]H$e]HJ2%5n.PK -5`.=YVcom/jacob/com/TypeLib.classTrW=Wb%@&e[&,AqbCZyz˃2Fqɣ,|H*/y*U@X"KSƪmO۷yk8YegqEEQA)FZ 0ؽ +ƽr%SvBT@:GxuձU$酭V~|(K EȯcT {*fe:\kNsE p;Gil ۮ[#uص7j;wG`J3F ֩_ݳX]]3w[3pfnm{M/VAnl9j?Z{(*xV[L8n8O]i-ا?R e&OIW=l<l, -DK; R(&GxA q6NMFN.AXgz24ѼH!OD -ݛ ihΞ#i7͗OAE[*0bIi,TaU5l+xbK*nRi}wax<sKݜ+b81L"$hS<E?'I4>dzzg{zNjj2WyRB>B_<F@OgSc)|JrVV$&1M<1L_׻Il1πiPZ5$YPlϔ#zf7$z_w.<d;!Ѧn<)1 (CNQZ"u.'x?:@K=>9|0PD/j7,c-<*|[oqdxiXHMEjz+&i<øNc/:3|e >M/G+r9WOSV??- -KćO~wjle֝PK -5`.="ecom/jacob/com/VarDesc.classuYo@gs4G]wK'$4BKc;%)ԧIMq!%i@<Dqhdo3;_`(@d!Cles=+ `Dj6)kˏ ۸lA弮bTUŌBKJPd -kZ<3%-vGSbI3nEÉ*ˊNG ƹREJX/ fWhJO2FCee -EmKQkj.MueUP -OSEC%<(  B Q9hH'g1[p=ZZYO_f%MٲQg[ukeЁݰ; =I,3H jvүeĵfլ9dn{v} _Zw6q#=DQ(FZ׭ɀڸ2oLoˉ`"<Dh< 2Q^f6.ʕU8˰+;? x<( F8A~(r18O"OqLf89^@~cE9^A^x O&M uwq:b6s1= ,_j B@ߝu_P ~*.J˸+` ^[ ^}p8y9#rwF.kxI; oCd)"" #9u y3gr`0y33?Ή:PK - /=x2com/jacob/com/Variant.classZ |?gv73;$% ` L|n4R_V/E}aA*VQն~_;wg'3iιs|S0?C8[x<;A6uбCŨ.WqRŘ\jةb%W1b#~|O bktkUP>a'HNjn]ʏuj$7z 5Ό~ cRi8VUծDR#5Wū뇌y5إ4?7jZ hy'j z ON <MA?OJQlt W&YY<[qTncBC;5jS  > ph3 ! kCÇ5|DÝ>. wkkد5|w{5/SY[<_ ?~jMm] 퉮ɫ"퉶ZE777Υ$4-EШUWLMC*vu`N"LQߒHgoC1 R03ye'} -4ǓѪLDD,ȾDo[C(sz{z>ޜWp^KvGR+o_OOtBWHtF#q52΂jM=(03g%%EX<J3h.$WSwzz"dz˩o67/:EUMU -\XC ZObX*]eAF6LWL6'JȌjbkHS1i q!ItOQC,mjDhMqͩHn)a3FTZkf`C=)F#0oje,IQ;\C}m}MQ*~ϊU,J,NFEj6j̮1̮:3LފfSb)3y,,"c+dLzj)FYN]k"(7E2WG鄒&:kRt0ac9Ts2 &]Ka9XLH69Ua 1(Vrcb%08upa<*-JmS!'bB8ֻH98_1%O,YeF7-MfW'!IG$zebS!5K,'\jYpgZ> D'j-yT1SVfaKp U|XyXdbjU7 2L;՞EuUBŰXMŒJ̭1̱J\TTׄѾ&m'Rnjnꍧb]%dU!t -&JXNF]99^Mq$LQG=i!nc5e-`'+"ٖ8ܘles+u2@G4fy$YwY]lF=NFoCP7R vxDhюLm]w9WT:;=!aǒq6zNZh=1ҟD3PȌ7r%3;a& L -zs=ZHc61yxW,<g&_Ǜl2w{t<_6dR1R_!w:[ w>(itE_nQS[: +&ξL͐S2XS_Jy1d` \3cX;E-s`ߨxen~HG.yf+h*.EOʪ |ߠ\t*pN°%oxM6,njmlih U7-_hx1S |]u s !kᐊR<.>y鯊@ k!\Ҡ MDhqK3z7,'B(WE@- wіHPn9I :Eef7aF,*4k,4Wk"ަQ3[j()¼qS1.Is -qGGaBM4gˆu!m|ǀ:6c?<mT"#؀ppݠeMLqF /fwiϵT?벬Lu^LOW(힣5ўX#6Bܒ0a|(9*mӐ:;ie;ˣZ6twMG sJH@$vhiVӧG}9|ZHrnHǚdsJ<Ѷ$kWzv:pjTqo^/R0^?FsQk4ǙAn7M7[mfH&A6.䟒|M{m}$oMHnwM~6Qw$?f'&&'l^ɿ )dqgGK:y+tn=<*ƽD xy|U2,tʐ@4?|t-=7PHw1 ^Q-拢@fޔf6x) W ٴt^MBM0bm1F"Zo<bvA9LSp)m<dWvd!0z<fnҹT -kczc#1lr;9wwi(Z<!}I3_wz7#G9kQN?aki|' +$%aQDF(8>J%R߅dK Ĺls-l=rT'GKncl:Sh+HΟ9p8?KϹr)%+$:p2<'ί뮜;މAەӒ,4㙳u 84,–f@Bi|''YdD/=W -|mt? -~$6 g%N<"?x:k Oہ߉_ \xdƁ߉7&0OߒlwX#.<M`? y8E-<&AT=$%Qف)jcxtDL%Yl:aXHE.5xN<7̙'9<ҙVI{aD^:*atp~(1pgcXjEev%-a;f6+ ?h_: -!}5lS*zxf'iNx ~f 3kgP(EĜ,^1,gTp|/ OtAhu!B{wf >iFn !Zq0~ 8,/y7N z0Geӛn3(J?s%,f 5\Fתpfɧ8ϷŁjŁ>`)Y0TGoppbb&C8{ !lKmE,BY—i1n2pc@`85P6p\pe@ D@bHX$ NN .BG碏}tI0uGV,:o.;5)S]J (<ځi{`#Ytd7;]a 6C\t}fp>.fBehJ,&TYAi~.BٰK=YE |kn8KqCeNTȪhW sZ5Pܗ[1X+$1Zڅu ~8,/>l3T6؋?-=<@gg?-yN͙ >]Yh%aPhٻp{8(x&YW2_e*ٌo3N[0.PzFiAZƶ%io5-oQgˎ,o}IЫqL|5ac8/9كmj>kS~ 8|uȄ/=%eM?qfn-`e`YV-R|P ]fl~D9s0rN\H(HF)lFB-*kWh;6G|qn5s9+hp9IXY ->,ЕV[KOq9C F1(*J_,EԑוdrCE<է;<{z @[n]ZG`ӿ'%@Z n&8o & b@+\*;(u3,߷o9Rh;2A۔*Qu}Շ"VWR?JR̷TVTX*T|J -~ftTn*[* 7>KMe=7-7tQ?[*)7J6KeZ7rLKM2x* ^ljQA!%Gdj*"ep@*WߔTOW xrޯ܀/*7⟔"VeEYܮ\ܩܦlURV>Ux=<=-vOӭTO8g5Σ y ~9 -~,H.kym!xNno wuлīU׿vC.ِv>VGdzgC\UP+~MNU*/~0Ay&*0U9Ӕw`.T)CU>6 ͠#m.3q:϶ =#C\\UlbpkU^\lat` ?]q@OCûZ!J'(HDI\b}_sRkN|ʃYPK -5`.=#x $com/jacob/com/VariantUtilities.classY |Td;\HL $yAx(*AjB &$@>I&a`2&$V-ն־UZlm-b;IJukun뾬EA?y$Li|}gq>܊ <C <烁?ċ? ‡_ίo txxÇxڋ*tGهMuW8-x[WPz IP nF -(7tC.Ce| 4GILZA&j2#E*a%:L44jWf\LLuUA;,2<r Y>g^JWU%"WNxeR,r -o - -P Yz=Jj!0Aas6l);_vj Yxaå65iikhv[uV|{]c)$-n'u mP$_-ȭ$g(\?uX]aBJZVؾ{o -eCPp7Oxj+Vx uml)8Ed`@սp%,T5YnRF !~wZV,F:Ф:lv7Yϥjh@4;( քA;) d0 i GϢʭYt8,R051g>uDWeźMVx rz<Ðql4T!!ЮV89#y_Zn\J hB6nq,:鈶(&%S5I3{PĊԁIH_3OIk٭ ibq"kSe O c(mMicPñ1 YƜj1GMi6EspuR0-A098YK6&QC4Ic,McF#}Y3#Jy7A+Cgn - XԁuiXxK@8O{tiQB 1*4@o40e\er5ehHk)ݲΐSkJlwhN ҏæD$Sv #bPWq2e\t{L|13e1! Սr)f qu)Ѕ\jGhxr)L8Oxtw*[E?WX,J>ɨ";M|Z3phL|֔9r);/-mASalj69HH "+m~S5yipCoHfۦM@  + j D{. X@|{00DBݖ-=l<c1Wܧuf0"0 /Zb3Ee*bm2nԻ #Cp IG&> -%A&[x4[㳴l,%kdXm #a9KԸ=`8H6kjO\)rHlC:|>0{'S_сU/}ޘ|{PgZb˓oʖ-ھ}hҨvȨۨSm4-zj,Lפ&^m3iZEQ3'h6k8Q5ژiTqT%;5~*f?1|'ͷ}i3@nї^_0kjeU颬o0GLBRHР[23:$ bWֹŷ㓔QV*}r$87ˁ/ʖ'R;Љ޽f ƒg o}ؐFۋO.lJ;B9!q6q h>vW^9wP%߀F1nTϕr nSk3ilhͤʦLLBHO%#Ks[24k2qMC#Wݒ) wRRv/%LgTNBqS٘Vu2EQTgIC ˳ R)W?eX#zgLA3l<lB՟Yᩴ<Qoe^&LLM貵&ųS5W<ȅO\ԇ=nџg|圅s^q.rpGv@ <Ore:DY!0W %l -!sG~LmI | -6`#/ -G V03Mj&0 -.J(&xK<M4c?a -& <3M:rUI+bvt6asHUؼ4la(,' !lcXy isK*NjG{/%k1,b6D1Q 5 8E|- T`,r+lw:.g9tu>OSKSwKGoU8//_Q]_Pܐ“"ϟWqTFte~Y> W~8o˓ç_9@gY`YkԊ\0죇P^Ӎ j8oA=sXJ|Jb?ΣcR1 ŞOǟGG8_Jr9V%O<'Wf=4$O%iqqŝh]ɣ:C5~Oߓ͚}ҾV;#:IEQFHk 4cZ0 -/q!.G=$v!p߃؅N\-AWH\ lwa)t9t5RŸ}EvCH.iN -a _bȍ1 "&#.aH+?MvT?)=|JUVc!*pabKE.1|+tRwip$r+ a7`1!A `>52b2U<LX|Vʥ&9x_b+ϻ٩9ٍ24GׅDsFI)!'0rN!`Jc>\.I`/ObZ&+ZG|iͽ!TTW,c(a >#xfҤ b: y!Q'H7V7E(lXN܂S0 t(#ZN%E굋(Oܬ]U>%=G]Vr -pg1[d v~ȯ?/ٍxn7mNUv-xߢӜ+უhy(.ӹum::_Õ:lС%!8M -?;ŖlUU!FIյն*ٍ,vƷ^ - |<J|[ ) 8^iF}ľgi??^9xQ/1^fJZkلd]6qdJObl0_)(/0ʡ!=`J^$S?hDlԡmx "d7?2@ym>NJfaQ+Jka6;48F:{q|tTzQ)tX)d%ʩdY*.N 3=2y`,$mٚ]RRvYe9g~w;4c+t*ݫ{ wیյ2*6=ųF0m)^k8)- 6~js]쭴s2V$v Ay%5ڄ҉Jقr . 6\+v(;ܠyLuv {S将le*fj(xl@i6<x$P<a;]ӀsYƟ@vX\<F'Lf.w؅MZ1 ZB]N7PK -5`.=13#com/jacob/com/VariantViaEvent.class;o>#.f^v>v~F6̼;Ff 0FTF~̼TܤԢĤO~rbNXbQ&d),fdIJLOJ2]RJKS2ADyXXd UA )`BI@ 3X30n2؁$f`P*Tdx 82 #*yPK -5`.=#g["(com/jacob/com/WrongThreadException.classJQ7i҅)]XAbRhz}==AOUECEř30_P!GQE'i+1KQz$Pljqt.Ã}%#D.!X>BMmJB,ٙφ36+*r!چ&Ú lmzc[ -ɐ.oR'dXTXZ׵5{3JxWmC^+oV~uv:x+Gd eJ@[w#<琉0"G9 - ƏgV2/J%2 -`TNNy|'䖪2f~PK -<1= AMETA-INF/PK -;1=/5+META-INF/MANIFEST.MFPK -<1= v aMETA-INF/JacobVersion.propertiesPK -4`.=Acom/PK -5`.= -A7com/jacob/PK -5`.=A_com/jacob/activeX/PK -5`.=߼ -y!(com/jacob/activeX/ActiveXComponent.classPK -5`.=D,- com/jacob/activeX/ActiveXDispatchEvents.classPK -5`.=헎.com/jacob/activeX/ActiveXInvocationProxy.classPK -5`.=Acom/jacob/com/PK -5`.=m_com/jacob/com/Automation.classPK -5`.=_5? =com/jacob/com/ComException.classPK -5`.=L듄,$"com/jacob/com/ComFailException.classPK -5`.=ѰTrcom/jacob/com/ComThread.classPK -4`.=*iOw"com/jacob/com/Currency.classPK -5`.=\_V!m&com/jacob/com/DateUtilities.classPK -5`.=EF*com/jacob/com/Dispatch.classPK -5`.=F ".;com/jacob/com/DispatchEvents.classPK -5`.=hu{4 &@com/jacob/com/DispatchIdentifier.classPK -5`.={'Uf),Ecom/jacob/com/DispatchNullProgramId.classPK -5`.=/0K!Gcom/jacob/com/DispatchProxy.classPK -5`.=F+!Icom/jacob/com/Documentation.classPK -q/=2\hKcom/jacob/com/EnumVariant.classPK -5`.=VӴh Ocom/jacob/com/FuncDesc.classPK -4`.=mgcPcom/jacob/com/IUnknown.classPK -5`.= #Tcom/jacob/com/InvocationProxy.classPK -5`.=qK .Wcom/jacob/com/InvocationProxyAllVariants.classPK -5`.=~["^com/jacob/com/JacobException.classPK -5`.=倥v$_com/jacob/com/JacobReleaseInfo.classPK -]/=GrHq !jdcom/jacob/com/LibraryLoader.classPK -5`.=`:kcom/jacob/com/MainSTA.classPK -5`.=6T3+lcom/jacob/com/NotImplementedException.classPK -]/=s-^Y<ncom/jacob/com/Pointer.classPK -5`.=(Apcom/jacob/com/PointerWeakReference.classPK -<1=<orcom/jacob/com/ROT$1.classPK -<1=ascom/jacob/com/ROT$2.classPK -<1= }ucom/jacob/com/ROT.classPK -5`.=l])~com/jacob/com/STA.classPK -4`.=f? +com/jacob/com/SafeArray.classPK -4`.=%b5/com/jacob/com/TypeInfo.classPK -5`.=YVcom/jacob/com/TypeLib.classPK -5`.="ecom/jacob/com/VarDesc.classPK - /=x2Иcom/jacob/com/Variant.classPK -5`.=#x $com/jacob/com/VariantUtilities.classPK -5`.=13#com/jacob/com/VariantViaEvent.classPK -5`.=#g["(#com/jacob/com/WrongThreadException.classPK.. ĿPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -F="`+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -F=m$$)org/jruby/ext/win32ole/RubyWIN32OLE.class1O -B 1 -1 - - - - - -1 - - -1 - - - - -1 - -1 -1  - - - -1 -1 - - -1 - -1 - -1 - 1 1 - - - - - - - - -1 - -1 - - - - - - -? 1EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java KL IJ    -               !" #$com/jacob/com/Dispatch K% ~u =& '( ) *+ , -. /0 {1 {2 EF CDjava/lang/Object3 ) 45 67 8 9: ; <=#org/jruby/ext/win32ole/RubyWIN32OLE> ?@ WX KV AB CDE FG HI JK LM{{ N(}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses K GHorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date; toJavaObject()Ljava/lang/Object;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!1BCDEF GHIJKLMR *+,*N&# 'O  PQ RS TUKVM\ *+,*-N*, -O* PQ RS TU IJWXM/*N0O PQIYM@ +*N6O PQ Z[\]^_M1+N*::,+- -W- N;<@AB)C,EO> `a1PQ1Z[1bc,RS#de\]fgM B- :* :,6*:*:+ NKLMPQ+S8UOf -(haBPQBZ[BijBkjBlj:mn2oD+pq8 -ha\ ]rIstuMm,2N*Y-*NZ \^O*PQZ[kv wx\]rIyzZy{uME*+,NcO PQZ[kv\]rIyzZy|gM\ -*+,--NiO4 -PQ -Z[ -ij -kj -}j\]~uM|,,2N-*+--d,*+-,Nn p$sO*,PQ,Z[,kv #x\]rIyzZyYMG*+ N -xzOPQZ[\]Mc,N+*- N -O*PQZ[jx\][srIyM!+:,:*-!" NO>!PQ!Z[!j!`jRSx\][srIgM] *+,-NO4 PQ Z[ ij kj lj\]uM],2N*+-,N - O*PQZ[kv x\]rIyzZyM%*-#: -:*,$W+ NO>%PQ%Z[%x%kvoDFM ;- :,6* :*%: * &: -+ - N 1Op ;PQ;Z[;ij;kj;lj;q3mn,pq$oD F 1 -ha -MB ' -NOPQqM5+>d(d):6d+2!SN ,2O>q5PQ5v5q2q oDM4+*=()N6++!:-S-N" &,2O>&q4PQ4mn/q"oDM^+*,*-#, NO*PQZ[xkvM9*NOPQ M4 -*)-NO  -j M[+* +.E <E,E#*+/01Y*2+34*+56*+7N 09IRO[RS[a MX8M,+9*,:;N O RS MV$*!*<=*>**d*N"O $wxM8)( -'?Y@AN  -?PK -F=S7Ƽ win32ole.rbrequire 'java' -require 'jacob.jar' - -require 'win32ole/win32ole' # <- java native impl of WIN32OLE -require 'win32ole/win32ole_ruby' # <- ruby impl of WIN32OLE - -import java.util.Calendar - -import com.jacob.com.Variant -import com.jacob.com.Automation -import com.jacob.com.ComFailException -import com.jacob.com.ComThread -import com.jacob.com.Dispatch -import com.jacob.com.EnumVariant -import com.jacob.com.TypeInfo -import com.jacob.com.TypeLib -import com.jacob.com.VarDesc - -import com.jacob.com.VariantUtilities - -require 'win32ole/win32ole_error' -require 'win32ole/win32ole_method' -require 'win32ole/win32ole_variant' -require 'win32ole/win32ole_variable' -require 'win32ole/win32ole_event' -require 'win32ole/win32ole_type' -require 'win32ole/win32ole_typelib' -PK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -F=⑜win32ole/utils.rbclass WIN32OLE - module Utils - # FIXME: I don't know specifically if this is a GMT or local date? - OUT_OF_RANGE_DATE = Time.local(1899, 12, 30) - - def SafeStringValue(str) - return str if str.kind_of?(::String) - if str.respond_to?(:to_str) - str = str.to_str - return str if str.kind_of?(::String) - end - raise TypeError - end - - def WIN32OLE_TYPEValue(value) - raise TypeError.new("1st argument should be WIN32OLE_TYPE object") unless value.kind_of? WIN32OLE_TYPE - value - end - - # Convert the supplied variant value to an equivalent Ruby value. - # If dispose is true then also dispose the variant itself. - def from_variant(value) - object = VariantUtilities.variant_to_object(value) - case object - when Dispatch then - object = WIN32OLE.new(object) - when java.util.Date then - object = java_date2ruby_time(object) - end - - # Jacob will return null on out of bound dates whereas MRI returns - # some date windows normally returns. We will match this. - if object.nil? && !value.nil? - case value.getvt - when Variant::VariantDate, (Variant::VariantDate|Variant::VariantByref) then - object = OUT_OF_RANGE_DATE - - end - end - - object - end - - # Simliar to MRI:vtdate2rbtime but we work with Java date instead of - # raw variant type - def java_date2ruby_time(date) - calendar = Calendar.get_instance - calendar.time = date - - Time.local(calendar.get(Calendar::YEAR), - calendar.get(Calendar::MONTH), - calendar.get(Calendar::DAY_OF_MONTH), - calendar.get(Calendar::HOUR_OF_DAY), - calendar.get(Calendar::MINUTE), - calendar.get(Calendar::SECOND)) - end - - def all_methods(typeinfo, &block) # MRI: olemethod_from_typeinfo - return unless typeinfo # Not all ole servers have this info - - # Find method in this type. - ret = find_all_methods_in(nil, typeinfo, &block) - return ret if ret - - # Now check all other type impls - typeinfo.impl_types_count.times do |i| - begin - href = typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = typeinfo.get_ref_type_info(href) - ret = find_all_methods_in(typeinfo, ref_typeinfo, &block) - return ret if ret - rescue ComFailException => e - puts "Error getting impl types #{e}" - end - end - nil - end - - # MRI: ole_method_sub - def find_all_methods_in(old_typeinfo, typeinfo, &block) - typeinfo.funcs_count.times do |i| - begin - desc = typeinfo.get_func_desc(i) - docs = typeinfo.get_documentation(desc.memid) - ret = yield typeinfo, old_typeinfo, desc, docs, i - return ret if ret - rescue ComFailException => e - puts "Error getting method info #{e}" - end - end - nil - end - - def typeinfo_from_ole # MRI: typeinfo_from_ole - typeinfo = @dispatch.type_info - docs = typeinfo.get_documentation(-1) - type_lib = typeinfo.get_containing_type_lib - type_lib.get_type_info_count.times do |i| - begin - ti = type_lib.get_type_info(i) - tdocs = type_lib.get_documentation(i) - return typelib.get_type_info(i) if tdocs.name == docs.name - rescue ComFailException => e - # We continue on failure. - end - end - type_info # Actually MRI seems like it could fail in weird case - end - - def load_typelib(path_reg, arch) - path = path_reg.open(arch) { |r| r.read(nil) }[1] -# puts "PATH = #{path}" - begin - Automation.loadTypeLib(path) - rescue ComFailException => e -# puts "Failed to load #{name} fom #{path} because: #{e}" - nil - end - end - - def find_all_typeinfo(typelib) - typelib.type_info_count.times do |i| - docs = typelib.get_documentation(i) - next unless docs - info = typelib.get_type_info(i) - next unless info - yield info, docs - end - end - - def all_vars(typeinfo) - typeinfo.vars_count.times do |i| - desc = typeinfo.get_var_desc(i) - next unless desc - names = typeinfo.get_names(desc.memid) - next if !names || names.length == 0 - name = names[0] - next unless name - yield desc, name - end - end - - def reg_each_key_for(reg, subkey, &block) - reg.open(subkey) do |subkey_reg| - subkey_reg.each_key { |key, wtime| block.call(subkey_reg, key) } - end - end - - # Walks all guid/clsid entries and yields every single version - # of those entries to the supplied block. See search_registry as - # an example of its usage. - def typelib_registry_each_guid_version - Win32::Registry::HKEY_CLASSES_ROOT.open('TypeLib') do |reg| - reg.each_key do |guid, wtime| - reg.open(guid) do |guid_reg| - guid_reg.each_key do |version_string, wtime| - version = version_string.to_f - begin - guid_reg.open(version_string) do |version_reg| - yield guid, version, version_reg - end - rescue Win32::Registry::Error => e - # Version Entry may not contain anything. Skip. - end - end - end - end - end - end - - def registry_subkey(reg, *valid_subkeys) - reg.each_key do |inner, wtime| - reg_each_key_for(reg, inner) do |subkey_reg, subkey| - yield subkey_reg, subkey if valid_subkeys.include? subkey - end - end - end - - def search_registry(typelib_name) # MRI: oletypelib_search_registry - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) -# puts "GUID #{guid} #{version} #{arch} #{type_lib}" - return type_lib if type_lib && name == typelib_name - end - end - nil - end - - def variable_kind_string(varkind) - case varkind - when VarDesc::VAR_PERINSTANCE then - "PERINSTANCE" - when VarDesc::VAR_STATIC then - "STATIC" - when VarDesc::VAR_CONST then - "CONSTANT" - when VarDesc::VAR_DISPATCH then - "DISPATCH" - else - "UNKNOWN" - end - end - end -end -PK -F=w_>"?"?win32ole/win32ole.jarPK -^F= META-INF/PK -^F=QMETA-INF/MANIFEST.MFManifest-Version: 1.0 -Ant-Version: Apache Ant 1.7.1 -Created-By: 17.0-b17 (Sun Microsystems Inc.) -Class-Path: lib/jruby.jar lib/jacob.jar - -PK -<u1=org/PK -<u1= -org/jruby/PK -<u1=org/jruby/ext/PK -<u1=org/jruby/ext/win32ole/PK -<u1= win32ole/PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.class1( - - - -!"<init>L(Lcom/jacob/com/Dispatch;Lcom/jacob/com/InvocationProxy;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis+Lorg/jruby/ext/win32ole/RubyDispatchEvents;dispatchLcom/jacob/com/Dispatch;proxyLcom/jacob/com/InvocationProxy;progIdLjava/lang/String;setupDispatchEventHandlerl(Lcom/jacob/com/Dispatch;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/win32ole/RubyDispatchEvents; eventHandler'Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyDispatchEvents.java #)org/jruby/ext/win32ole/RubyDispatchEvents*org/jruby/ext/win32ole/RubyInvocationProxy $% &'  com/jacob/com/DispatchEvents?(Lcom/jacob/com/Dispatch;Ljava/lang/Object;Ljava/lang/String;)V*(Lorg/jruby/runtime/builtin/IRubyObject;)Vcom/jacob/com/Dispatch getProgramId()Ljava/lang/String;!  -T*+,- -  *   -IY*Y+*  PK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.class1< - -% & ' ( -)*+ -,- ./0runtimeLorg/jruby/Ruby;target'Lorg/jruby/runtime/builtin/IRubyObject;<init>*(Lorg/jruby/runtime/builtin/IRubyObject;)VCodeLineNumberTableLocalVariableTablethis,Lorg/jruby/ext/win32ole/RubyInvocationProxy;invokeC(Ljava/lang/String;[Lcom/jacob/com/Variant;)Lcom/jacob/com/Variant;iI -methodNameLjava/lang/String; variantArgs[Lcom/jacob/com/Variant;context!Lorg/jruby/runtime/ThreadContext;lengthargs([Lorg/jruby/runtime/builtin/IRubyObject; -SourceFileRubyInvocationProxy.java 1  23 4 56%org/jruby/runtime/builtin/IRubyObject7 89 :;*org/jruby/ext/win32ole/RubyInvocationProxycom/jacob/com/InvocationProxy()V -getRuntime()Lorg/jruby/Ruby;org/jruby/RubygetCurrentContext#()Lorg/jruby/runtime/ThreadContext;#org/jruby/ext/win32ole/RubyWIN32OLE fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject; -callMethod(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;! -  T**+*+  C*N,6:6*,2S*-+W" -3AHCCC; 7 0!"#$PK -^F="`+org/jruby/ext/win32ole/RubyWIN32OLE$1.class1 - -<init>()VCodeLineNumberTableLocalVariableTablethis InnerClasses'Lorg/jruby/ext/win32ole/RubyWIN32OLE$1;allocateN(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/runtime/builtin/IRubyObject;runtimeLorg/jruby/Ruby;klassLorg/jruby/RubyClass; -SourceFileRubyWIN32OLE.javaEnclosingMethod #org/jruby/ext/win32ole/RubyWIN32OLE %org/jruby/ext/win32ole/RubyWIN32OLE$1java/lang/Object!org/jruby/runtime/ObjectAllocator((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V0 /* -   H -Y+, -  -  - - -PK -^F=_%_%)org/jruby/ext/win32ole/RubyWIN32OLE.class1W -D 1 -1 - - - - - -1 - - -1 - - - - -1 - -1 -1  - - - -1 -1 - - -1 - -1 - -1 - 1 1 - - - - - - - - -1 - -1 - - - - - - - -A 1 EMPTY_OBJECT_ARGS[Ljava/lang/Object;EMPTY_ERROR_ARGS[IWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator;dispatchLcom/jacob/com/Dispatch;<init>((Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)VCodeLineNumberTableLocalVariableTablethis%Lorg/jruby/ext/win32ole/RubyWIN32OLE;runtimeLorg/jruby/Ruby; metaClassLorg/jruby/RubyClass;@(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lcom/jacob/com/Dispatch;)V getDispatch()Lcom/jacob/com/Dispatch;J(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;context!Lorg/jruby/runtime/ThreadContext;RuntimeVisibleAnnotationsLorg/jruby/anno/JRubyMethod;eachc(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;valueLcom/jacob/com/Variant;blockLorg/jruby/runtime/Block; enumVariantLcom/jacob/com/EnumVariant; _getproperty(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; returnValuedispid'Lorg/jruby/runtime/builtin/IRubyObject;argsargTypes argsArrayLorg/jruby/RubyArray; -objectArgs -dispatchIdIrequired -initializer(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;([Lorg/jruby/runtime/builtin/IRubyObject;idLjava/lang/String;restinvoke_invoke -typesArraymethod_missing -methodNameole_freeop_arefq(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;property propertyNamename[]op_aset(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;[]= _setproperty setproperty invokeSet(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject; errorArgsinvokeInternal(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject; dispatchType makeErrorArgs(I)[IsizemakeObjectArgs>([Lorg/jruby/runtime/builtin/IRubyObject;I)[Ljava/lang/Object;irubyArgs -startIndexlength*(Lorg/jruby/RubyArray;)[Ljava/lang/Object;objectLjava/lang/Object;invokeMethodOrGettoJava%(Ljava/lang/Class;)Ljava/lang/Object;klassLjava/lang/Class;toObject;(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object; -rubyObject fromVariantP(Lorg/jruby/Ruby;Lcom/jacob/com/Variant;)Lorg/jruby/runtime/builtin/IRubyObject;variant date2rubyI(Lorg/jruby/Ruby;Ljava/util/Date;)Lorg/jruby/runtime/builtin/IRubyObject;dateLjava/util/Date;calLjava/util/Calendar;toProgID&(Ljava/lang/String;)Ljava/lang/String;<clinit>()V -SourceFileRubyWIN32OLE.java MN KL -              ! "# "$ %&' ()com/jacob/com/Dispatch M* w =+ ,- . /0 1 23 45 }6 }7 GH EFjava/lang/Object8 . 9: ;< = >? @ AB#org/jruby/ext/win32ole/RubyWIN32OLEC DE YZ MX FG HI org/jruby/javasupport/JavaObjectJ KLM NO PQ RS TU{{ V-}}%org/jruby/ext/win32ole/RubyWIN32OLE$1 InnerClasses M IJorg/jruby/RubyObjectorg/jruby/runtime/ThreadContext -getRuntime()Lorg/jruby/Ruby;org/jruby/javasupport/JavaUtilconvertJavaToUsableRubyObjectK(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject; toEnumVariant()Lcom/jacob/com/EnumVariant;com/jacob/com/EnumVarianthasMoreElements()Z nextElement()Lcom/jacob/com/Variant;org/jruby/runtime/Blockyieldorg/jruby/RubygetNil)()Lorg/jruby/runtime/builtin/IRubyObject;%org/jruby/runtime/builtin/IRubyObjectconvertToArray()Lorg/jruby/RubyArray;org/jruby/RubyIntegernum2long*(Lorg/jruby/runtime/builtin/IRubyObject;)Jcall2(Lcom/jacob/com/Dispatch;I)Lcom/jacob/com/Variant;D(Lcom/jacob/com/Dispatch;ILjava/lang/Object;)Lcom/jacob/com/Variant;convertToString()Lorg/jruby/RubyString;org/jruby/RubyString asJavaString()Ljava/lang/String;(Ljava/lang/String;)Vjava/lang/StringendsWith(Ljava/lang/String;)Z()I substring(II)Ljava/lang/String; safeReleasegetC(Lcom/jacob/com/Dispatch;Ljava/lang/String;)Lcom/jacob/com/Variant;put?(Lcom/jacob/com/Dispatch;Ljava/lang/String;Ljava/lang/Object;)VY(Lcom/jacob/com/Dispatch;Ljava/lang/String;I[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;H(Lcom/jacob/com/Dispatch;II[Ljava/lang/Object;[I)Lcom/jacob/com/Variant;org/jruby/RubyArray eltInternal*(I)Lorg/jruby/runtime/builtin/IRubyObject;callNV(Lcom/jacob/com/Dispatch;Ljava/lang/String;[Ljava/lang/Object;)Lcom/jacob/com/Variant;com/jacob/com/VariantgetType()S -getBoolean -newBoolean(Z)Lorg/jruby/RubyBoolean;win32ole/Win32oleService getMetaClass()Lorg/jruby/RubyClass;getDate()Ljava/util/Date; toJavaObject()Ljava/lang/Object;org/jruby/javasupport/Javawrap`(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;java/util/Calendar getInstance()Ljava/util/Calendar;setTime(Ljava/util/Date;)VgetTimeInMillis()JnewTime(J)Lorg/jruby/RubyTime; -startsWith!1DEFGH IJKLMNOR *+,*P&# 'Q  RS TU VWMXO\ *+,*-P*, -Q* RS TU VW KLYZO/*P0Q RSK[O@ +*P6Q RS \]^_`aO1+N*::,+- -W- P;<@AB)C,EQ> bc1RS1\]1de,TU#fg^_hiO B- :* :,6*:*:+ PKLMPQ+S8UQf -(jcBRSB\]BklBmlBnl:op2qF+rs8 -jc^ _tIuvwOm,2N*Y-*PZ \^Q*RS\]mx yz^_tI{|Z{}wOE*+,PcQ RS\]mx^_tI{|Z{~iO\ -*+,--PiQ4 -RS -\] -kl -ml -l^_wO|,,2N-*+--d,*+-,Pn p$sQ*,RS,\],mx #z^_tI{|Z{[OG*+ P -xzQRS\]^_Oc,N+*- P -Q*RS\]lz^_[stI{O!+:,:*-!" PQ>!RS!\]!l!blTUz^_[stIiO] *+,-PQ4 RS \] kl ml nl^_wO],2N*+-,P - Q*RS\]mx z^_tI{|Z{O%*-#: -:*,$W+ PQ>%RS%\]%z%mxqFHO ;- :,6* :*%: * &: -+ - P 1Qp ;RS;\];kl;ml;nl;s3op,rs$qF H 1 -jc -OB ' -PQRSsO5+>d(d):6d+2!SP ,2Q>s5RS5x5s2s qFO4+*=()N6++!:-S-P" &,2Q>&s4RS4op/s"qFO^+*,*-#, PQ*RS\]zmxO9*PQRS O4 -*)-PQ  -l Ol+* +.E <E,E#*+/01Y*2+34*+56*+7M,8 *,9,P 09IR[Q lTUlc[l OX:M,+;*,<=P Q TU OV$*!*>?*@**d*P"Q $yzO8)( -'AYBCP  -APK -<u1=c &&win32ole/Win32oleService.class1W -, -./ -01 -23 -456 -7 -489 -:; - < = - >?@AB win32oleClassLjava/lang/ref/WeakReference; Signature4Ljava/lang/ref/WeakReference<Lorg/jruby/RubyClass;>;<init>()VCodeLineNumberTableLocalVariableTablethisLwin32ole/Win32oleService; basicLoad(Lorg/jruby/Ruby;)ZruntimeLorg/jruby/Ruby;objectLorg/jruby/RubyClass;win32ole -ExceptionsC getMetaClass()Lorg/jruby/RubyClass; -SourceFileWin32oleService.java D EFLOADING WIN32OLEG HIJ KL M)WIN32OLE NO PQ#org/jruby/ext/win32ole/RubyWIN32OLE RSjava/lang/ref/WeakReference T  UVorg/jruby/RubyClasswin32ole/Win32oleServicejava/lang/Object*org/jruby/runtime/load/BasicLibraryServicejava/io/IOExceptionjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vcom/jacob/com/LibraryLoaderloadJacobLibraryorg/jruby/Ruby getObjectWIN32OLE_ALLOCATOR#Lorg/jruby/runtime/ObjectAllocator; defineClassa(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;defineAnnotatedMethods(Ljava/lang/Class;)V(Ljava/lang/Object;)Vget()Ljava/lang/Object;!/* -  /+M+, N- - Y-  "-*//!"#$%$&' ()" -*+PK -^F= AMETA-INF/PK -^F=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -<u1= Awin32ole/PK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0Rorg/jruby/ext/win32ole/RubyInvocationProxy.classPK -^F="`+z org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -^F=_%_%)org/jruby/ext/win32ole/RubyWIN32OLE.classPK -<u1=c &&T5win32ole/Win32oleService.classPK V;PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError +mi= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError def initialize(cause=nil) @cause = cause end def backtrace @@ -29756,11239 +369,22 @@ def to_s @cause ? @cause.to_s : super end end PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -F= AMETA-INF/PK -F=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -F= Awin32ole/PK -F=U^ jacob.jarPK -<u1=0ksqGG/qorg/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -F="`+-org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -F=m$$)aorg/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ .win32ole.rbPK -<u1=c &&Lwin32ole/Win32oleService.classPK -F=⑜ win32ole/utils.rbPK -F=w_>"?"?$win32ole/win32ole.jarPK -F= _S/Edwin32ole/win32ole_error.rbPK -F=Pewin32ole/win32ole_event.rbPK -F=Ø^//hwin32ole/win32ole_method.rbPK -F=ӱqmwin32ole/win32ole_ruby.rbPK -F=8twin32ole/win32ole_type.rbPK -F=$b{win32ole/win32ole_typelib.rbPK -F=]wwwin32ole/win32ole_variable.rbPK -F=Wc3win32ole/win32ole_variant.rbPKAPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -)F= AMETA-INF/PK -(F=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -)F= Awin32ole/PK -F=U^ jacob.jarPK -<u1=0ksqGG/qorg/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -)F=N\+-org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -)F=wpM$$)aorg/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ win32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -F=⑜ win32ole/utils.rbPK -)F=k<V%win32ole/win32ole.jarPK -F= _S/nwin32ole/win32ole_error.rbPK -F=ywin32ole/win32ole_event.rbPK -F=Ø^//Ƹwin32ole/win32ole_method.rbPK -F=ӱq.win32ole/win32ole_ruby.rbPK -F=8win32ole/win32ole_type.rbPK -F=$bwin32ole/win32ole_typelib.rbPK -F=]wwwin32ole/win32ole_variable.rbPK -F=Wc\win32ole/win32ole_variant.rbPKjPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -oF= AMETA-INF/PK -nF=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -oF= Awin32ole/PK -F=U^ jacob.jarPK -<u1=0ksqGG/qorg/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -oF=N\+-org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -oF=^R%R%)aorg/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ win32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -F=⑜z win32ole/utils.rbPK -oF=]%win32ole/win32ole.jarPK -F= _S/win32ole/win32ole_error.rbPK -F=win32ole/win32ole_event.rbPK -F=Ø^//U win32ole/win32ole_method.rbPK -F=ӱq win32ole/win32ole_ruby.rbPK -F=8win32ole/win32ole_type.rbPK -F=$bHwin32ole/win32ole_typelib.rbPK -F=]ww9#win32ole/win32ole_variable.rbPK -F=Wc%win32ole/win32ole_variant.rbPK(PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -ֆF= AMETA-INF/PK -ՆF=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -F= Awin32ole/PK -F=tZ jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0%org/jruby/ext/win32ole/RubyInvocationProxy.classPK -ֆF=N\+Morg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -ֆF=@Ņ'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ Mwin32ole.rbPK -<u1=c &&kwin32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -F=YEY//(win32ole/win32ole.jarPK -F= _S/Wwin32ole/win32ole_error.rbPK -F=Xwin32ole/win32ole_event.rbPK -F=Ø^//7\win32ole/win32ole_method.rbPK -F=ӱq`win32ole/win32ole_ruby.rbPK -F=8ghwin32ole/win32ole_type.rbPK -F=$b*owin32ole/win32ole_typelib.rbPK -F=]wwvwin32ole/win32ole_variable.rbPK -F=Wcxwin32ole/win32ole_variant.rbPK{PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -F= AMETA-INF/PK -F=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -F= Awin32ole/PK -F=tZ jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0%org/jruby/ext/win32ole/RubyInvocationProxy.classPK -F=N\+Morg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -F=9]%%)org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ win32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -F=⑜0 win32ole/utils.rbPK -F=Ar&win32ole/win32ole.jarPK -F= _S/$win32ole/win32ole_error.rbPK -F=/win32ole/win32ole_event.rbPK -F=Ø^//|win32ole/win32ole_method.rbPK -F=ӱqwin32ole/win32ole_ruby.rbPK -F=8win32ole/win32ole_type.rbPK -F=$bowin32ole/win32ole_typelib.rbPK -F=]ww`win32ole/win32ole_variable.rbPK -F=Wcwin32ole/win32ole_variant.rbPK PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -7F= AMETA-INF/PK -6F=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -7F= Awin32ole/PK -F=tZ jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0%org/jruby/ext/win32ole/RubyInvocationProxy.classPK -7F=N\+Morg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -7F=]ex'x')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ @win32ole.rbPK -<u1=c &&^win32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -7F=}(win32ole/win32ole.jarPK -F= _S/win32ole/win32ole_error.rbPK -F=win32ole/win32ole_event.rbPK -F=Ø^//Qwin32ole/win32ole_method.rbPK -F=ӱqwin32ole/win32ole_ruby.rbPK -F=8 win32ole/win32ole_type.rbPK -F=$bDwin32ole/win32ole_typelib.rbPK -F=]ww5win32ole/win32ole_variable.rbPK -F=Wcwin32ole/win32ole_variant.rbPKPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -F= AMETA-INF/PK -F=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -F= Awin32ole/PK -F=tZ jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0%org/jruby/ext/win32ole/RubyInvocationProxy.classPK -F=N\+Morg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -F=Pl|'|')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ Dwin32ole.rbPK -<u1=c &&bwin32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -F=E\&&(win32ole/win32ole.jarPK -F= _S/N win32ole/win32ole_error.rbPK -F=O win32ole/win32ole_event.rbPK -F=Ø^//*S win32ole/win32ole_method.rbPK -F=ӱqW win32ole/win32ole_ruby.rbPK -F=8Z_ win32ole/win32ole_type.rbPK -F=$bf win32ole/win32ole_typelib.rbPK -F=]wwm win32ole/win32ole_variable.rbPK -F=Wco win32ole/win32ole_variant.rbPKr PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -F= AMETA-INF/PK -F=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -F= Awin32ole/PK -F=tZ jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0%org/jruby/ext/win32ole/RubyInvocationProxy.classPK -F=N\+Morg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -F=0~'~')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ Fwin32ole.rbPK -<u1=c &&dwin32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -F=iry ry (win32ole/win32ole.jarPK -F= _S/ -win32ole/win32ole_error.rbPK -F= -win32ole/win32ole_event.rbPK -F=Ø^// -win32ole/win32ole_method.rbPK -F=ӱqm -win32ole/win32ole_ruby.rbPK -F=85 -win32ole/win32ole_type.rbPK -F=$b -win32ole/win32ole_typelib.rbPK -F=]ww -win32ole/win32ole_variable.rbPK -F=Wc -win32ole/win32ole_variant.rbPK -PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -F= AMETA-INF/PK -F=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -F= Awin32ole/PK -F=tZ jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0%org/jruby/ext/win32ole/RubyInvocationProxy.classPK -F=N\+Morg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -F=?B'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ win32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -F=vWM -M -I(win32ole/win32ole.jarPK -F= _S/ win32ole/win32ole_error.rbPK -F= win32ole/win32ole_event.rbPK -F=Ø^//! win32ole/win32ole_method.rbPK -F=ӱq win32ole/win32ole_ruby.rbPK -F=8Q win32ole/win32ole_type.rbPK -F=$b win32ole/win32ole_typelib.rbPK -F=]ww win32ole/win32ole_variable.rbPK -F=Wc win32ole/win32ole_variant.rbPK PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -#F= AMETA-INF/PK -"F=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -#F= Awin32ole/PK -#F=H2 jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0Korg/jruby/ext/win32ole/RubyInvocationProxy.classPK -#F=N\+sorg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -#F=I%%)org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ xwin32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -F=⑜ win32ole/utils.rbPK -#F=1ki i :&win32ole/win32ole.jarPK -F= _S/E win32ole/win32ole_error.rbPK -F=F win32ole/win32ole_event.rbPK -F=Ø^//.J win32ole/win32ole_method.rbPK -F=ӱqN win32ole/win32ole_ruby.rbPK -F=8^V win32ole/win32ole_type.rbPK -F=$b!] win32ole/win32ole_typelib.rbPK -F=]wwd win32ole/win32ole_variable.rbPK -F=Wcf win32ole/win32ole_variant.rbPKi PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -ĝF= AMETA-INF/PK -ÝF=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -ÝF= Awin32ole/PK -ÝF=4 jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0Porg/jruby/ext/win32ole/RubyInvocationProxy.classPK -ÝF=N\+xorg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -ÝF=$'$')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ win32ole.rbPK -<u1=c &&5win32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -ÝF=_l!%vp vp 'win32ole/win32ole.jarPK -F= _S/win32ole/win32ole_error.rbPK -F=win32ole/win32ole_event.rbPK -F=Ø^//ڜwin32ole/win32ole_method.rbPK -F=ӱqBwin32ole/win32ole_ruby.rbPK -F=8 -win32ole/win32ole_type.rbPK -F=$bͯwin32ole/win32ole_typelib.rbPK -F=]wwwin32ole/win32ole_variable.rbPK -F=Wcpwin32ole/win32ole_variant.rbPK~PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -lF= AMETA-INF/PK -kF=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -lF= Awin32ole/PK -lF=4 jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0Porg/jruby/ext/win32ole/RubyInvocationProxy.classPK -ÝF=N\+xorg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -ÝF=$'$')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ win32ole.rbPK -<u1=c &&5win32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -lF=,gم""'win32ole/win32ole.jarPK -F= _S/.win32ole/win32ole_error.rbPK -F=9win32ole/win32ole_event.rbPK -F=Ø^//win32ole/win32ole_method.rbPK -F=ӱqwin32ole/win32ole_ruby.rbPK -F=8win32ole/win32ole_type.rbPK -F=$bywin32ole/win32ole_typelib.rbPK -F=]wwj win32ole/win32ole_variable.rbPK -F=Wc win32ole/win32ole_variant.rbPK*PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -PG= AMETA-INF/PK -PG=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -PG= Awin32ole/PK -PG=4 jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0Porg/jruby/ext/win32ole/RubyInvocationProxy.classPK -PG=N\+xorg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -PG=]B(()org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ win32ole.rbPK -<u1=c && win32ole/Win32oleService.classPK -F=⑜Bwin32ole/utils.rbPK -PG=y)win32ole/win32ole.jarPK -F= _S/?win32ole/win32ole_error.rbPK -F=@win32ole/win32ole_event.rbPK -F=Ø^//Cwin32ole/win32ole_method.rbPK -F=ӱqEHwin32ole/win32ole_ruby.rbPK -F=8 Pwin32ole/win32ole_type.rbPK -F=$bVwin32ole/win32ole_typelib.rbPK -F=]ww]win32ole/win32ole_variable.rbPK -F=Wcs`win32ole/win32ole_variant.rbPKcPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -PG= AMETA-INF/PK -PG=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -PG= Awin32ole/PK -PG=4 jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0Porg/jruby/ext/win32ole/RubyInvocationProxy.classPK -PG=N\+xorg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -PG=]B(()org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ win32ole.rbPK -<u1=c && win32ole/Win32oleService.classPK -F=⑜Bwin32ole/utils.rbPK -PG=3§%j%j)win32ole/win32ole.jarPK -F= _S/ܓwin32ole/win32ole_error.rbPK -F=win32ole/win32ole_event.rbPK -F=Ø^//4win32ole/win32ole_method.rbPK -F=ӱqwin32ole/win32ole_ruby.rbPK -F=8dwin32ole/win32ole_type.rbPK -F=$b'win32ole/win32ole_typelib.rbPK -F=]wwwin32ole/win32ole_variable.rbPK -F=Wcʴwin32ole/win32ole_variant.rbPKطPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -QG= AMETA-INF/PK -QG=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -QG= Awin32ole/PK -PG=4 jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0Porg/jruby/ext/win32ole/RubyInvocationProxy.classPK -QG=N\+xorg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -QG=w@o)o))org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ bwin32ole.rbPK -<u1=c && -win32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -QG=6=g||$*win32ole/win32ole.jarPK -F= _S/win32ole/win32ole_error.rbPK -F=win32ole/win32ole_event.rbPK -F=Ø^//+win32ole/win32ole_method.rbPK -F=ӱqwin32ole/win32ole_ruby.rbPK -F=8[win32ole/win32ole_type.rbPK -F=$bwin32ole/win32ole_typelib.rbPK -F=]wwwin32ole/win32ole_variable.rbPK -F=Wc win32ole/win32ole_variant.rbPK PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -9UG= AMETA-INF/PK -8UG=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -9UG= Awin32ole/PK -9UG=  jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0_org/jruby/ext/win32ole/RubyInvocationProxy.classPK -9UG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -9UG=P s's')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ uwin32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -9UG=vss7(win32ole/win32ole.jarPK -F= _S/;win32ole/win32ole_error.rbPK -F=<win32ole/win32ole_event.rbPK -F=Ø^//5@win32ole/win32ole_method.rbPK -F=ӱqDwin32ole/win32ole_ruby.rbPK -F=8eLwin32ole/win32ole_type.rbPK -F=$b(Swin32ole/win32ole_typelib.rbPK -F=]wwZwin32ole/win32ole_variable.rbPK -F=Wc\win32ole/win32ole_variant.rbPK_PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -hZG= AMETA-INF/PK -gZG=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -hZG= Awin32ole/PK -hZG=qn jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0vorg/jruby/ext/win32ole/RubyInvocationProxy.classPK -hZG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -hZG=/p6:':')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ Swin32ole.rbPK -<u1=c &&qwin32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -hZG=C}f}f(win32ole/win32ole.jarPK -F= _S/Ŏwin32ole/win32ole_error.rbPK -F=Џwin32ole/win32ole_event.rbPK -F=Ø^//win32ole/win32ole_method.rbPK -F=ӱqwin32ole/win32ole_ruby.rbPK -F=8Mwin32ole/win32ole_type.rbPK -F=$bwin32ole/win32ole_typelib.rbPK -F=]wwwin32ole/win32ole_variable.rbPK -F=Wcwin32ole/win32ole_variant.rbPKPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -^G= AMETA-INF/PK -^G=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -^G= Awin32ole/PK -^G=eA jacob.jarPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0yorg/jruby/ext/win32ole/RubyInvocationProxy.classPK -hZG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -hZG=/p6:':')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ Vwin32ole.rbPK -<u1=c &&twin32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -^G=~Bee(win32ole/win32ole.jarPK -F= _S/win32ole/win32ole_error.rbPK -F=win32ole/win32ole_event.rbPK -F=Ø^//win32ole/win32ole_method.rbPK -F=ӱqpwin32ole/win32ole_ruby.rbPK -F=88win32ole/win32ole_type.rbPK -F=$bwin32ole/win32ole_typelib.rbPK -F=]wwwin32ole/win32ole_variable.rbPK -F=Wcwin32ole/win32ole_variant.rbPKPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -gG= AMETA-INF/PK -gG=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -gG= Awin32ole/PK -gG=l$9== jacob.jarPK -<u1=0ksqGG/"org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -gG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -gG==q(()org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ lwin32ole.rbPK -<u1=c && -win32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -gG=L7P P .*win32ole/win32ole.jarPK -F= _S/6win32ole/win32ole_error.rbPK -F=7win32ole/win32ole_event.rbPK -F=Ø^// ;win32ole/win32ole_method.rbPK -F=ӱqq?win32ole/win32ole_ruby.rbPK -F=89Gwin32ole/win32ole_type.rbPK -F=$bMwin32ole/win32ole_typelib.rbPK -F=]wwTwin32ole/win32ole_variable.rbPK -F=WcWwin32ole/win32ole_variant.rbPKZPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -F=win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - sleep 0.2 - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -PgG= AMETA-INF/PK -OgG=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -PgG= Awin32ole/PK -gG=l$9== jacob.jarPK -<u1=0ksqGG/"org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -PgG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -PgG=\Pg(()org/jruby/ext/win32ole/RubyWIN32OLE.classPK -F=S7Ƽ \win32ole.rbPK -<u1=c &&z -win32ole/Win32oleService.classPK -F=⑜win32ole/utils.rbPK -PgG= uQaQa*win32ole/win32ole.jarPK -F= _S/win32ole/win32ole_error.rbPK -F=win32ole/win32ole_event.rbPK -F=Ø^//win32ole/win32ole_method.rbPK -F=ӱqbwin32ole/win32ole_ruby.rbPK -F=8*win32ole/win32ole_type.rbPK -F=$bwin32ole/win32ole_typelib.rbPK -F=]wwީwin32ole/win32ole_variable.rbPK -F=Wcwin32ole/win32ole_variant.rbPKPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -sG=?D''win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name) - @event_handlers = {} - # TODO: Argument errors + specs - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -F=Ø^//win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - alias :to_s :name - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -F=ӱqwin32ole/win32ole_ruby.rbrequire 'win32ole/utils' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, var_desc.constant - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -F=8win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]),SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -sG= AMETA-INF/PK -sG=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -<u1=Aborg/jruby/ext/win32ole/PK -sG= Awin32ole/PK -sG=" LL jacob.jarPK -<u1=0ksqGG/1org/jruby/ext/win32ole/RubyDispatchEvents.classPK -<u1=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -sG=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -sG=/p6:':')!org/jruby/ext/win32ole/RubyWIN32OLE.classPK -sG=sU win32ole.rbPK -<u1=c && win32ole/Win32oleService.classPK -F=⑜Fwin32ole/utils.rbPK -sG=_BB)win32ole/win32ole.jarPK -F= _S/win32ole/win32ole_error.rbPK -sG=?D''win32ole/win32ole_event.rbPK -F=Ø^//gwin32ole/win32ole_method.rbPK -F=ӱqwin32ole/win32ole_ruby.rbPK -F=8win32ole/win32ole_type.rbPK -F=$bZwin32ole/win32ole_typelib.rbPK -F=]wwKwin32ole/win32ole_variable.rbPK -F=Wcwin32ole/win32ole_variant.rbPK PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -tK=ofccwin32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -tK=]awin32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def name - @docs.name - end - alias :to_s :name - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def size_opt_params - @desc.opt_params_count - end +mi=Ȯwin32ole/win32ole_event.rbclass WIN32OLE_EVENT + java_import org.racob.com.DispatchEvents - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -tK=Ԏ))win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - details = [] - typedesc_value(@param.vt, details) - details - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -tK=u? - -win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_get_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & Dispatch::Put - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def ole_put_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & (Dispatch::Put|Dispatch::PutRef) - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -tK= win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -yK= AMETA-INF/PK -yK=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -tK=Aborg/jruby/ext/win32ole/PK -tK= Awin32ole/PK -yK=O4F$$ jacob.jarPK -<u1=0ksqGG/ org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK= RR2org/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -yK=90?org/jruby/ext/win32ole/RubyInvocationProxy.classPK -tK=N\+norg/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -tK=V&&)org/jruby/ext/win32ole/RubyWIN32OLE.classPK -tK=^%a win32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -tK=f- - 2win32ole/utils.rbPK -tK=8SL - -;win32ole/win32ole.jarPK -F= _S/pFwin32ole/win32ole_error.rbPK -tK=ofcc{Gwin32ole/win32ole_event.rbPK -tK=]aKwin32ole/win32ole_method.rbPK -tK=Ԏ))>Qwin32ole/win32ole_param.rbPK -tK=u? - -Twin32ole/win32ole_ruby.rbPK -tK= ^win32ole/win32ole_type.rbPK -F=$bjwin32ole/win32ole_typelib.rbPK -F=]wwqwin32ole/win32ole_variable.rbPK -F=Wctwin32ole/win32ole_variant.rbPK6wPK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -tK=ofccwin32ole/win32ole_event.rbclass WIN32OLE_EVENT def initialize(ole, event_name=nil) @event_handlers = {} raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE if event_name.nil? # Default event name # TODO: get default event end - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -tK=]awin32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def name - @docs.name - end - alias :to_s :name - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -tK=Ԏ))win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - details = [] - typedesc_value(@param.vt, details) - details - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -tK=u? - -win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_get_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & Dispatch::Put - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def ole_put_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & (Dispatch::Put|Dispatch::PutRef) - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -tK= win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -yK= AMETA-INF/PK -yK=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -tK=Aborg/jruby/ext/win32ole/PK -yK= Awin32ole/PK -yK=O4F$$ jacob.jarPK -<u1=0ksqGG/ org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -yK=ii0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -tK=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -tK=V&&)org/jruby/ext/win32ole/RubyWIN32OLE.classPK -tK=^%a win32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -tK=f- - _win32ole/utils.rbPK -yK=~~;win32ole/win32ole.jarPK -F= _S/win32ole/win32ole_error.rbPK -tK=ofccwin32ole/win32ole_event.rbPK -tK=]awin32ole/win32ole_method.rbPK -tK=Ԏ))win32ole/win32ole_param.rbPK -tK=u? - -win32ole/win32ole_ruby.rbPK -tK= Twin32ole/win32ole_type.rbPK -F=$bqwin32ole/win32ole_typelib.rbPK -F=]wwbwin32ole/win32ole_variable.rbPK -F=Wcwin32ole/win32ole_variant.rbPK6"PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -tK=ofccwin32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - org.jruby.ext.win32ole.RubyDispatchEvents.setupDispatchEventHandler(ole, self) - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -tK=]awin32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def name - @docs.name - end - alias :to_s :name - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -tK=Ԏ))win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - details = [] - typedesc_value(@param.vt, details) - details - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -tK=u? - -win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_get_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & Dispatch::Put - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def ole_put_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & (Dispatch::Put|Dispatch::PutRef) - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -tK= win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -aK= AMETA-INF/PK -`K=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -tK=Aborg/jruby/ext/win32ole/PK -aK= Awin32ole/PK -yK=O4F$$ jacob.jarPK -<u1=0ksqGG/ org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -yK=ii0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -aK=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -aK=R; ( ()org/jruby/ext/win32ole/RubyWIN32OLE.classPK -tK=^%a !win32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -tK=f- - wwin32ole/utils.rbPK -aK=vnn<win32ole/win32ole.jarPK -F= _S/t0 win32ole/win32ole_error.rbPK -tK=ofcc1 win32ole/win32ole_event.rbPK -tK=]a5 win32ole/win32ole_method.rbPK -tK=Ԏ))B; win32ole/win32ole_param.rbPK -tK=u? - -> win32ole/win32ole_ruby.rbPK -tK= H win32ole/win32ole_type.rbPK -F=$bT win32ole/win32ole_typelib.rbPK -F=]ww[ win32ole/win32ole_variable.rbPK -F=Wc^ win32ole/win32ole_variant.rbPK6a PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -YN=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - dispatch = ole.dispatch DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id end def on_event(name=nil, &block) @@ -41014,617 +410,14 @@ def self.message_loop DispatchEvents.message_loop end end PK -tK=]awin32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def name - @docs.name - end - alias :to_s :name - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def size_opt_params - @desc.opt_params_count - end +mi=Ƌ win32ole/win32ole_method.rbclass WIN32OLE_METHOD + java_import org.racob.com.FuncDesc + java_import org.racob.com.TypeInfo - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -tK=Ԏ))win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - details = [] - typedesc_value(@param.vt, details) - details - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -tK=u? - -win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_get_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & Dispatch::Put - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def ole_put_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & (Dispatch::Put|Dispatch::PutRef) - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -tK= win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -YN= AMETA-INF/PK -YN=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -tK=Aborg/jruby/ext/win32ole/PK -YN= Awin32ole/PK -YN=O4F$$ jacob.jarPK -<u1=0ksqGG/ org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -yK=ii0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -YN=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -YN=V&&)org/jruby/ext/win32ole/RubyWIN32OLE.classPK -tK=^%a win32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -tK=f- - _win32ole/utils.rbPK -YN=h h ;win32ole/win32ole.jarPK -F= _S/!win32ole/win32ole_error.rbPK -YN=u63!win32ole/win32ole_event.rbPK -tK=]a!win32ole/win32ole_method.rbPK -tK=Ԏ))կ!win32ole/win32ole_param.rbPK -tK=u? - -6!win32ole/win32ole_ruby.rbPK -tK= u!win32ole/win32ole_type.rbPK -F=$b!win32ole/win32ole_typelib.rbPK -F=]ww!win32ole/win32ole_variable.rbPK -F=Wc5!win32ole/win32ole_variant.rbPK6C!PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -YN=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -tK=]awin32ole/win32ole_method.rbclass WIN32OLE_METHOD attr_accessor :oletype, :typeinfo def initialize(*args) # TODO: 2-arg missing currently unuised oletype ivar if args.length == 6 # Internal initializer @@ -41645,1222 +438,10 @@ def dispid @desc.memid end - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def name - @docs.name - end - alias :to_s :name - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -tK=Ԏ))win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - details = [] - typedesc_value(@param.vt, details) - details - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -tK=u? - -win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_get_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & Dispatch::Put - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def ole_put_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & (Dispatch::Put|Dispatch::PutRef) - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -tK= win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -"[N= AMETA-INF/PK -![N=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -tK=Aborg/jruby/ext/win32ole/PK -"[N= Awin32ole/PK -YN=O4F$$ jacob.jarPK -<u1=0ksqGG/ org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -"[N=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -YN=N\+ org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -YN=V&&)@org/jruby/ext/win32ole/RubyWIN32OLE.classPK -"[N== zwin32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -tK=f- - win32ole/utils.rbPK -"[N={C!!c<win32ole/win32ole.jarPK -F= _S/%#win32ole/win32ole_error.rbPK -YN=u630#win32ole/win32ole_event.rbPK -tK=]a#win32ole/win32ole_method.rbPK -tK=Ԏ))%#win32ole/win32ole_param.rbPK -tK=u? - -q(#win32ole/win32ole_ruby.rbPK -tK= 2#win32ole/win32ole_type.rbPK -F=$b>#win32ole/win32ole_typelib.rbPK -F=]wwE#win32ole/win32ole_variable.rbPK -F=WcpH#win32ole/win32ole_variant.rbPK6~K#PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -YN=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -tK=]awin32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def name - @docs.name - end - alias :to_s :name - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -tK=Ԏ))win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - details = [] - typedesc_value(@param.vt, details) - details - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -tK=u? - -win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(type_info) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(type_info) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_get_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & Dispatch::Put - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - def ole_put_methods - members = [] - all_methods(type_info) do |typeinfo, old_typeinfo, desc, docs, i| - if desc.invkind & (Dispatch::Put|Dispatch::PutRef) - members << WIN32OLE_METHOD.new(nil, typeinfo, old_typeinfo, desc, docs, i) - end - nil - end - members - end - - # TODO: All these methods in MRI do many continues on error!!! - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -tK= win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -F=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -F=]wwwin32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - # TODO: Implement ole_type, ole_type_detail - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -F=Wcwin32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_USERDEFINED = 0 - - VT_PTR = 26 # Pointer - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - end -end -PK -fnN= AMETA-INF/PK -enN=Q+META-INF/MANIFEST.MFPK -<u1=Aorg/PK -<u1= -Aorg/jruby/PK -<u1=A6org/jruby/ext/PK -tK=Aborg/jruby/ext/win32ole/PK -fnN= Awin32ole/PK -YN=O4F$$ jacob.jarPK -<u1=0ksqGG/ org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32org/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -"[N=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -fnN=N\+ org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -fnN='l8'')@org/jruby/ext/win32ole/RubyWIN32OLE.classPK -"[N== zwin32ole.rbPK -<u1=c &&win32ole/Win32oleService.classPK -tK=f- - win32ole/utils.rbPK -fnN=KR#R#c=win32ole/win32ole.jarPK -F= _S/`$win32ole/win32ole_error.rbPK -YN=u63k$win32ole/win32ole_event.rbPK -tK=]a#$win32ole/win32ole_method.rbPK -tK=Ԏ))K$win32ole/win32ole_param.rbPK -tK=u? - -$win32ole/win32ole_ruby.rbPK -tK= $win32ole/win32ole_type.rbPK -F=$b$win32ole/win32ole_typelib.rbPK -F=]ww$win32ole/win32ole_variable.rbPK -F=Wc$win32ole/win32ole_variant.rbPK6$PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -YN=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -1R=HY win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - def event? return false if @owner_typeinfo.typekind != TypeInfo::TYPEKIND_COCLASS @owner_typeinfo.impl_types_count.times do |i| begin @@ -42968,11 +549,11 @@ end include WIN32OLE::Utils end PK -1R=win32ole/win32ole_param.rbclass WIN32OLE_PARAM +mi=win32ole/win32ole_param.rbclass WIN32OLE_PARAM attr_accessor :name def initialize(method, index, param_info=nil) raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD @@ -43014,11 +595,11 @@ end include WIN32OLE::Utils end PK -1R=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' +mi=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' require 'jruby' # Shorthand vocabulary: # ti, oti - typeinfo or owner_typeinfo @@ -43130,716 +711,13 @@ private include WIN32OLE::Utils end PK -1R=d d win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def src_type - return nil if @typeinfo.typekind != TypeInfo::TYPEKIND_ALIAS - - typedesc_value @typeinfo.alias_vt - end - - def to_s - name - end +mi= win32ole/win32ole_type.rbclass WIN32OLE_TYPE + java_import org.racob.com.TypeInfo - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -1R=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -1R=+win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - def ole_type - @type.ole_type # MRI gets from vardesc, but why shouldn't this work? - end - - def ole_type_detail - # TODO: Fill in other details when they actually exist - [@type.ole_type] - end - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -1R=Q -\win32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_DECIMAL = 14 # Decimal - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_UI8 = 21 # !Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_VOID = 24 # !Jacob - VT_HRESULT = 25 # !Jacob - VT_PTR = 26 # Pointer - VT_SAFEARRAY = 27 # !Jacob - VT_CARRAY = 28 # !Jacob - VT_USERDEFINED = 29 # !Jacob - VT_LPSTR = 30 # !Jacob - VT_LPWSTR = 31 # !Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - - VARIANTS = { - VT_I2 => "I2", VT_I4 => "I4", VT_R4 => "R4", VT_R8 => "R8", - VT_CY => "CY", VT_DATE => "DATE", VT_BSTR => "BSTR", VT_BOOL => "BOOL", - VT_VARIANT => "VARIANT", VT_DECIMAL => "DECIMAL", VT_I1 => "I1", - VT_UI1 => "UI1", VT_UI2 => "UI2", VT_UI4 => "UI4", VT_I8 => "I8", - VT_UI8 => "UI8", VT_INT => "INT", VT_UINT => "UINT", VT_VOID => "VOID", - VT_HRESULT => "HRESULT", VT_PTR => "PTR", VT_SAFEARRAY => "SAFEARRAY", - VT_CARRAY => "CARRAY", VT_USERDEFINED => "USERDEFINED", - VT_UNKNOWN => "UNKNOWN", VT_DISPATCH => "DISPATCH", VT_ERROR => "ERROR", - VT_LPSTR => "LPSTR", VT_LPWSTR => "LPWSTR" - } - - def variant_to_string(vt) - VARIANTS[vt] - end - module_function :variant_to_string - end -end -PK -1R= AMETA-INF/PK -0R==+META-INF/MANIFEST.MFPK -1R=Ajruby-win32ole/PK -<u1=Aorg/PK -<u1= -A?org/jruby/PK -<u1=Agorg/jruby/ext/PK -tK=Aorg/jruby/ext/win32ole/PK -fnN= Awin32ole/PK -YN=O4F$$ jacob.jarPK -1R=v :jruby-win32ole.rbPK -1R= ??Kjruby-win32ole/version.rbPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32Uorg/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -"[N=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -fnN=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -fnN='l8'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -1R=J5 2racob.jarPK -"[N== Rwin32ole.rbPK -<u1=c &&}win32ole/Win32oleService.classPK -1R=ewin32ole/utils.rbPK -1R='y$$win32ole/win32ole.jarPK -F= _S/&win32ole/win32ole_error.rbPK -YN=u63&win32ole/win32ole_event.rbPK -1R=HY &win32ole/win32ole_method.rbPK -1R=&win32ole/win32ole_param.rbPK -1R=I}T &win32ole/win32ole_ruby.rbPK -1R=d d &win32ole/win32ole_type.rbPK -1R=$b;'win32ole/win32ole_typelib.rbPK -1R=+,'win32ole/win32ole_variable.rbPK -1R=Q -\{'win32ole/win32ole_variant.rbPK0g'PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -YN=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -1R=HY win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def event? - return false if @owner_typeinfo.typekind != TypeInfo::TYPEKIND_COCLASS - - @owner_typeinfo.impl_types_count.times do |i| - begin - flags = @owner_typeinfo.get_impl_type_flags(i) - - if flags & TypeInfo::IMPLTYPEFLAG_FSOURCE - href = @owner_typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = @owner_typeinfo.get_ref_type_info(href) - func_desc = ref_typeinfo.func_desc(@index) - documentation = ref_typeinfo.documentation(func_desc.memid) - - return true if documentation.name == name - end - rescue ComFailException => e - end - end - false - end - - def event_interface - return nil unless event? - - typelib = @typeinfo.containing_type_lib - documentation = typelib.documentation(typelib.index) - documentation.name - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def invoke_kind - invkind = @desc.invkind - if invkind & Dispatch::Get && invkind & Dispatch::Put - return "PROPERTY" - elsif invkind & Dispatch::Get - return "PROPERTYGET" - elsif invkind & Dispatch::Put - return "PROPERTYPUT" - elsif invkind & Dispatch::PutRef - return "PROPERTYPUTREF" - elsif invkind & Dispatch::Method - return "FUNC" - else - return "UNKOWN" - end - end - - def name - @docs.name - end - alias :to_s :name - - def offset_vtbl - @desc.vtable_offset - end - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def return_type - typedesc_value(@desc.return_type.vt) - end - - def return_type_detail - typedesc_value(@desc.return_type.vt, []) - end - - def return_vtype - @desc.return_type.vt - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -1R=win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - typedesc_value(@param.vt, []) - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -1R=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(typeinfo_from_ole) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(typeinfo_from_ole) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_func_methods - methods_with_flag(Dispatch::Method) - end - - def ole_get_methods - methods_with_flag(Dispatch::Get) - end - - def ole_put_methods - methods_with_flag(Dispatch::Put|Dispatch::PutRef) - end - - def ole_type - typelib = type_info.containing_type_lib - docs = typelib.documentation(typelib.index) - WIN32OLE_TYPE.new typelib, type_info, docs - end - alias :ole_obj_help :ole_type - - def ole_typelib - typelib = type_info.containing_type_lib - WIN32OLE_TYPELIB.new typelib, nil - end - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -1R=d d win32ole/win32ole_type.rbclass WIN32OLE_TYPE attr_reader :typeinfo def initialize(*args) case args.length when 2 then @@ -43984,719 +862,15 @@ end include WIN32OLE::Utils end PK -1R=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' +mi=U-win32ole/win32ole_typelib.rbrequire 'win32/registry' class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name + java_import org.racob.com.TypeLib - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -1R=+win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - def ole_type - @type.ole_type # MRI gets from vardesc, but why shouldn't this work? - end - - def ole_type_detail - # TODO: Fill in other details when they actually exist - [@type.ole_type] - end - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -1R=Q -\win32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_DECIMAL = 14 # Decimal - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_UI8 = 21 # !Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_VOID = 24 # !Jacob - VT_HRESULT = 25 # !Jacob - VT_PTR = 26 # Pointer - VT_SAFEARRAY = 27 # !Jacob - VT_CARRAY = 28 # !Jacob - VT_USERDEFINED = 29 # !Jacob - VT_LPSTR = 30 # !Jacob - VT_LPWSTR = 31 # !Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - - VARIANTS = { - VT_I2 => "I2", VT_I4 => "I4", VT_R4 => "R4", VT_R8 => "R8", - VT_CY => "CY", VT_DATE => "DATE", VT_BSTR => "BSTR", VT_BOOL => "BOOL", - VT_VARIANT => "VARIANT", VT_DECIMAL => "DECIMAL", VT_I1 => "I1", - VT_UI1 => "UI1", VT_UI2 => "UI2", VT_UI4 => "UI4", VT_I8 => "I8", - VT_UI8 => "UI8", VT_INT => "INT", VT_UINT => "UINT", VT_VOID => "VOID", - VT_HRESULT => "HRESULT", VT_PTR => "PTR", VT_SAFEARRAY => "SAFEARRAY", - VT_CARRAY => "CARRAY", VT_USERDEFINED => "USERDEFINED", - VT_UNKNOWN => "UNKNOWN", VT_DISPATCH => "DISPATCH", VT_ERROR => "ERROR", - VT_LPSTR => "LPSTR", VT_LPWSTR => "LPWSTR" - } - - def variant_to_string(vt) - VARIANTS[vt] - end - module_function :variant_to_string - end -end -PK -<R= AMETA-INF/PK -;R==+META-INF/MANIFEST.MFPK -1R=Ajruby-win32ole/PK -<u1=Aorg/PK -<u1= -A?org/jruby/PK -<u1=Agorg/jruby/ext/PK -tK=Aorg/jruby/ext/win32ole/PK -fnN= Awin32ole/PK -YN=O4F$$ jacob.jarPK -1R=v :jruby-win32ole.rbPK -1R= ??Kjruby-win32ole/version.rbPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32Uorg/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -"[N=/0org/jruby/ext/win32ole/RubyInvocationProxy.classPK -fnN=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -fnN='l8'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -1R=J5 2racob.jarPK -"[N== Rwin32ole.rbPK -<R=fI؁}win32ole/Win32oleService.classPK -1R=e:win32ole/utils.rbPK -<R= -< ' 'win32ole/win32ole.jarPK -F= _S/3)win32ole/win32ole_error.rbPK -YN=u634)win32ole/win32ole_event.rbPK -1R=HY 8)win32ole/win32ole_method.rbPK -1R=D)win32ole/win32ole_param.rbPK -1R=I}T G)win32ole/win32ole_ruby.rbPK -1R=d d Q)win32ole/win32ole_type.rbPK -1R=$b>^)win32ole/win32ole_typelib.rbPK -1R=+/e)win32ole/win32ole_variable.rbPK -1R=Q -\~h)win32ole/win32ole_variant.rbPK0jo)PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -YN=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -1R=HY win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def event? - return false if @owner_typeinfo.typekind != TypeInfo::TYPEKIND_COCLASS - - @owner_typeinfo.impl_types_count.times do |i| - begin - flags = @owner_typeinfo.get_impl_type_flags(i) - - if flags & TypeInfo::IMPLTYPEFLAG_FSOURCE - href = @owner_typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = @owner_typeinfo.get_ref_type_info(href) - func_desc = ref_typeinfo.func_desc(@index) - documentation = ref_typeinfo.documentation(func_desc.memid) - - return true if documentation.name == name - end - rescue ComFailException => e - end - end - false - end - - def event_interface - return nil unless event? - - typelib = @typeinfo.containing_type_lib - documentation = typelib.documentation(typelib.index) - documentation.name - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def invoke_kind - invkind = @desc.invkind - if invkind & Dispatch::Get && invkind & Dispatch::Put - return "PROPERTY" - elsif invkind & Dispatch::Get - return "PROPERTYGET" - elsif invkind & Dispatch::Put - return "PROPERTYPUT" - elsif invkind & Dispatch::PutRef - return "PROPERTYPUTREF" - elsif invkind & Dispatch::Method - return "FUNC" - else - return "UNKOWN" - end - end - - def name - @docs.name - end - alias :to_s :name - - def offset_vtbl - @desc.vtable_offset - end - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def return_type - typedesc_value(@desc.return_type.vt) - end - - def return_type_detail - typedesc_value(@desc.return_type.vt, []) - end - - def return_vtype - @desc.return_type.vt - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -1R=win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - typedesc_value(@param.vt, []) - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -1R=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(typeinfo_from_ole) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(typeinfo_from_ole) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_func_methods - methods_with_flag(Dispatch::Method) - end - - def ole_get_methods - methods_with_flag(Dispatch::Get) - end - - def ole_put_methods - methods_with_flag(Dispatch::Put|Dispatch::PutRef) - end - - def ole_type - typelib = type_info.containing_type_lib - docs = typelib.documentation(typelib.index) - WIN32OLE_TYPE.new typelib, type_info, docs - end - alias :ole_obj_help :ole_type - - def ole_typelib - typelib = type_info.containing_type_lib - WIN32OLE_TYPELIB.new typelib, nil - end - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -1R=d d win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def src_type - return nil if @typeinfo.typekind != TypeInfo::TYPEKIND_ALIAS - - typedesc_value @typeinfo.alias_vt - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -1R=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB attr_reader :typelib attr_reader :name alias :to_s :name def initialize(*args) @@ -44767,719 +941,15 @@ end include WIN32OLE::Utils end PK -1R=+win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - def ole_type - @type.ole_type # MRI gets from vardesc, but why shouldn't this work? - end - - def ole_type_detail - # TODO: Fill in other details when they actually exist - [@type.ole_type] - end - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -1R=Q -\win32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_DECIMAL = 14 # Decimal - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_UI8 = 21 # !Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_VOID = 24 # !Jacob - VT_HRESULT = 25 # !Jacob - VT_PTR = 26 # Pointer - VT_SAFEARRAY = 27 # !Jacob - VT_CARRAY = 28 # !Jacob - VT_USERDEFINED = 29 # !Jacob - VT_LPSTR = 30 # !Jacob - VT_LPWSTR = 31 # !Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - - VARIANTS = { - VT_I2 => "I2", VT_I4 => "I4", VT_R4 => "R4", VT_R8 => "R8", - VT_CY => "CY", VT_DATE => "DATE", VT_BSTR => "BSTR", VT_BOOL => "BOOL", - VT_VARIANT => "VARIANT", VT_DECIMAL => "DECIMAL", VT_I1 => "I1", - VT_UI1 => "UI1", VT_UI2 => "UI2", VT_UI4 => "UI4", VT_I8 => "I8", - VT_UI8 => "UI8", VT_INT => "INT", VT_UINT => "UINT", VT_VOID => "VOID", - VT_HRESULT => "HRESULT", VT_PTR => "PTR", VT_SAFEARRAY => "SAFEARRAY", - VT_CARRAY => "CARRAY", VT_USERDEFINED => "USERDEFINED", - VT_UNKNOWN => "UNKNOWN", VT_DISPATCH => "DISPATCH", VT_ERROR => "ERROR", - VT_LPSTR => "LPSTR", VT_LPWSTR => "LPWSTR" - } - - def variant_to_string(vt) - VARIANTS[vt] - end - module_function :variant_to_string - end -end -PK -OR= AMETA-INF/PK -NR==+META-INF/MANIFEST.MFPK -1R=Ajruby-win32ole/PK -<u1=Aorg/PK -<u1= -A?org/jruby/PK -<u1=Agorg/jruby/ext/PK -tK=Aorg/jruby/ext/win32ole/PK -fnN= Awin32ole/PK -YN=O4F$$ jacob.jarPK -1R=v :jruby-win32ole.rbPK -R=??Kjruby-win32ole/version.rbPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32Uorg/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -OR=S60org/jruby/ext/win32ole/RubyInvocationProxy.classPK -OR=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -OR=>'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -OR=`9  2racob.jarPK -"[N== )win32ole.rbPK -OR=s6.win32ole/Win32oleService.classPK -1R=e3win32ole/utils.rbPK -OR=+ㇰw)w)Owin32ole/win32ole.jarPK -F= _S/r,win32ole/win32ole_error.rbPK -YN=u63},win32ole/win32ole_event.rbPK -1R=HY 5,win32ole/win32ole_method.rbPK -1R=-,win32ole/win32ole_param.rbPK -1R=I}T l,win32ole/win32ole_ruby.rbPK -1R=d d C,win32ole/win32ole_type.rbPK -1R=$b,win32ole/win32ole_typelib.rbPK -1R=+,win32ole/win32ole_variable.rbPK -1R=Q -\,win32ole/win32ole_variant.rbPK0 --PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -YN=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -1R=HY win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def event? - return false if @owner_typeinfo.typekind != TypeInfo::TYPEKIND_COCLASS - - @owner_typeinfo.impl_types_count.times do |i| - begin - flags = @owner_typeinfo.get_impl_type_flags(i) - - if flags & TypeInfo::IMPLTYPEFLAG_FSOURCE - href = @owner_typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = @owner_typeinfo.get_ref_type_info(href) - func_desc = ref_typeinfo.func_desc(@index) - documentation = ref_typeinfo.documentation(func_desc.memid) - - return true if documentation.name == name - end - rescue ComFailException => e - end - end - false - end - - def event_interface - return nil unless event? - - typelib = @typeinfo.containing_type_lib - documentation = typelib.documentation(typelib.index) - documentation.name - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def invoke_kind - invkind = @desc.invkind - if invkind & Dispatch::Get && invkind & Dispatch::Put - return "PROPERTY" - elsif invkind & Dispatch::Get - return "PROPERTYGET" - elsif invkind & Dispatch::Put - return "PROPERTYPUT" - elsif invkind & Dispatch::PutRef - return "PROPERTYPUTREF" - elsif invkind & Dispatch::Method - return "FUNC" - else - return "UNKOWN" - end - end - - def name - @docs.name - end - alias :to_s :name - - def offset_vtbl - @desc.vtable_offset - end - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def return_type - typedesc_value(@desc.return_type.vt) - end - - def return_type_detail - typedesc_value(@desc.return_type.vt, []) - end - - def return_vtype - @desc.return_type.vt - end - - def size_opt_params - @desc.opt_params_count - end +mi=R1::win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE + java_import org.racob.com.VarDesc - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -1R=win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - typedesc_value(@param.vt, []) - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -1R=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(typeinfo_from_ole) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(typeinfo_from_ole) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_func_methods - methods_with_flag(Dispatch::Method) - end - - def ole_get_methods - methods_with_flag(Dispatch::Get) - end - - def ole_put_methods - methods_with_flag(Dispatch::Put|Dispatch::PutRef) - end - - def ole_type - typelib = type_info.containing_type_lib - docs = typelib.documentation(typelib.index) - WIN32OLE_TYPE.new typelib, type_info, docs - end - alias :ole_obj_help :ole_type - - def ole_typelib - typelib = type_info.containing_type_lib - WIN32OLE_TYPELIB.new typelib, nil - end - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -1R=d d win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def src_type - return nil if @typeinfo.typekind != TypeInfo::TYPEKIND_ALIAS - - typedesc_value @typeinfo.alias_vt - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -1R=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib attr_reader :name - alias :to_s :name - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -1R=+win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - def initialize(type, var_desc, name) @type, @var_desc, @name = type, var_desc, name end def ole_type @@ -45490,726 +960,28 @@ # TODO: Fill in other details when they actually exist [@type.ole_type] end def value - from_variant(@var_desc.constant) + RubyWIN32OLE.from_variant(JRuby.runtime, @var_desc.constant) end def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -1R=Q -\win32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_DECIMAL = 14 # Decimal - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_UI8 = 21 # !Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_VOID = 24 # !Jacob - VT_HRESULT = 25 # !Jacob - VT_PTR = 26 # Pointer - VT_SAFEARRAY = 27 # !Jacob - VT_CARRAY = 28 # !Jacob - VT_USERDEFINED = 29 # !Jacob - VT_LPSTR = 30 # !Jacob - VT_LPWSTR = 31 # !Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - - VARIANTS = { - VT_I2 => "I2", VT_I4 => "I4", VT_R4 => "R4", VT_R8 => "R8", - VT_CY => "CY", VT_DATE => "DATE", VT_BSTR => "BSTR", VT_BOOL => "BOOL", - VT_VARIANT => "VARIANT", VT_DECIMAL => "DECIMAL", VT_I1 => "I1", - VT_UI1 => "UI1", VT_UI2 => "UI2", VT_UI4 => "UI4", VT_I8 => "I8", - VT_UI8 => "UI8", VT_INT => "INT", VT_UINT => "UINT", VT_VOID => "VOID", - VT_HRESULT => "HRESULT", VT_PTR => "PTR", VT_SAFEARRAY => "SAFEARRAY", - VT_CARRAY => "CARRAY", VT_USERDEFINED => "USERDEFINED", - VT_UNKNOWN => "UNKNOWN", VT_DISPATCH => "DISPATCH", VT_ERROR => "ERROR", - VT_LPSTR => "LPSTR", VT_LPWSTR => "LPWSTR" - } - - def variant_to_string(vt) - VARIANTS[vt] - end - module_function :variant_to_string - end -end -PK - -R= AMETA-INF/PK - R==+META-INF/MANIFEST.MFPK -1R=Ajruby-win32ole/PK -<u1=Aorg/PK -<u1= -A?org/jruby/PK -<u1=Agorg/jruby/ext/PK -tK=Aorg/jruby/ext/win32ole/PK -fnN= Awin32ole/PK -YN=O4F$$ jacob.jarPK - -R=P|:jruby-win32ole.rbPK -R=??Jjruby-win32ole/version.rbPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32Torg/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -OR=S60org/jruby/ext/win32ole/RubyInvocationProxy.classPK -OR=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -OR=>'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK - -R=`9  1racob.jarPK -"[N== )win32ole.rbPK -OR=s6.win32ole/Win32oleService.classPK -1R=e3win32ole/utils.rbPK - -R=w_P -P -Owin32ole/win32ole.jarPK -F= _S/[0win32ole/win32ole_error.rbPK -YN=u63\0win32ole/win32ole_event.rbPK -1R=HY _0win32ole/win32ole_method.rbPK -1R=k0win32ole/win32ole_param.rbPK -1R=I}T  o0win32ole/win32ole_ruby.rbPK -1R=d d x0win32ole/win32ole_type.rbPK -1R=$b}0win32ole/win32ole_typelib.rbPK -1R=+n0win32ole/win32ole_variable.rbPK -1R=Q -\0win32ole/win32ole_variant.rbPK00PK -F= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -YN=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block + case varkind + when VarDesc::VAR_PERINSTANCE then + "PERINSTANCE" + when VarDesc::VAR_STATIC then + "STATIC" + when VarDesc::VAR_CONST then + "CONSTANT" + when VarDesc::VAR_DISPATCH then + "DISPATCH" else - @default_handler = block + "UNKNOWN" end end - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -1R=HY win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def event? - return false if @owner_typeinfo.typekind != TypeInfo::TYPEKIND_COCLASS - - @owner_typeinfo.impl_types_count.times do |i| - begin - flags = @owner_typeinfo.get_impl_type_flags(i) - - if flags & TypeInfo::IMPLTYPEFLAG_FSOURCE - href = @owner_typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = @owner_typeinfo.get_ref_type_info(href) - func_desc = ref_typeinfo.func_desc(@index) - documentation = ref_typeinfo.documentation(func_desc.memid) - - return true if documentation.name == name - end - rescue ComFailException => e - end - end - false - end - - def event_interface - return nil unless event? - - typelib = @typeinfo.containing_type_lib - documentation = typelib.documentation(typelib.index) - documentation.name - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def invoke_kind - invkind = @desc.invkind - if invkind & Dispatch::Get && invkind & Dispatch::Put - return "PROPERTY" - elsif invkind & Dispatch::Get - return "PROPERTYGET" - elsif invkind & Dispatch::Put - return "PROPERTYPUT" - elsif invkind & Dispatch::PutRef - return "PROPERTYPUTREF" - elsif invkind & Dispatch::Method - return "FUNC" - else - return "UNKOWN" - end - end - - def name - @docs.name - end - alias :to_s :name - - def offset_vtbl - @desc.vtable_offset - end - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def return_type - typedesc_value(@desc.return_type.vt) - end - - def return_type_detail - typedesc_value(@desc.return_type.vt, []) - end - - def return_vtype - @desc.return_type.vt - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -1R=win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - typedesc_value(@param.vt, []) - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -1R=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(typeinfo_from_ole) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(typeinfo_from_ole) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_func_methods - methods_with_flag(Dispatch::Method) - end - - def ole_get_methods - methods_with_flag(Dispatch::Get) - end - - def ole_put_methods - methods_with_flag(Dispatch::Put|Dispatch::PutRef) - end - - def ole_type - typelib = type_info.containing_type_lib - docs = typelib.documentation(typelib.index) - WIN32OLE_TYPE.new typelib, type_info, docs - end - alias :ole_obj_help :ole_type - - def ole_typelib - typelib = type_info.containing_type_lib - WIN32OLE_TYPELIB.new typelib, nil - end - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -1R=d d win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def src_type - return nil if @typeinfo.typekind != TypeInfo::TYPEKIND_ALIAS - - typedesc_value @typeinfo.alias_vt - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -1R=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -1R=+win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - def ole_type - @type.ole_type # MRI gets from vardesc, but why shouldn't this work? - end - - def ole_type_detail - # TODO: Fill in other details when they actually exist - [@type.ole_type] - end - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - def varkind @var_desc.varkind end def inspect @@ -46224,11 +996,11 @@ end include WIN32OLE::Utils end PK -1R=Q +mi=Q \win32ole/win32ole_variant.rbclass WIN32OLE module VARIANT VT_I2 = 2 # Short VT_I4 = 3 # Int VT_R4 = 4 # Float @@ -46278,2843 +1050,31 @@ end module_function :variant_to_string end end PK -RS= AMETA-INF/PK -RS==+META-INF/MANIFEST.MFPK -1R=Ajruby-win32ole/PK -<u1=Aorg/PK -<u1= +qi= AMETA-INF/PK +qi==+META-INF/MANIFEST.MFPK +mi=Ajruby-win32ole/PK +mi=Aorg/PK +mi= A?org/jruby/PK -<u1=Agorg/jruby/ext/PK -tK=Aorg/jruby/ext/win32ole/PK -fnN= Awin32ole/PK -YN=O4F$$ jacob.jarPK - -R=P|:jruby-win32ole.rbPK -R=??Jjruby-win32ole/version.rbPK -<u1=0ksqGG/org/jruby/ext/win32ole/RubyDispatchEvents.classPK -yK=K32Torg/jruby/ext/win32ole/RubyInvocationProxy$1.classPK -OR=S60org/jruby/ext/win32ole/RubyInvocationProxy.classPK -OR=N\+org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -OR=>'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -RS=`9  1racob.jarPK -"[N== )win32ole.rbPK -OR=s6.win32ole/Win32oleService.classPK -1R=e3win32ole/utils.rbPK -RS=hl00Owin32ole/win32ole.jarPK -F= _S/3win32ole/win32ole_error.rbPK -YN=u633win32ole/win32ole_event.rbPK -1R=HY s3win32ole/win32ole_method.rbPK -1R=k3win32ole/win32ole_param.rbPK -1R=I}T 4win32ole/win32ole_ruby.rbPK -1R=d d  4win32ole/win32ole_type.rbPK -1R=$b4win32ole/win32ole_typelib.rbPK -1R=+ 4win32ole/win32ole_variable.rbPK -1R=Q -\\#4win32ole/win32ole_variant.rbPK0H*4PK -hSS= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -hSS=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -hSS=HY win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def event? - return false if @owner_typeinfo.typekind != TypeInfo::TYPEKIND_COCLASS - - @owner_typeinfo.impl_types_count.times do |i| - begin - flags = @owner_typeinfo.get_impl_type_flags(i) - - if flags & TypeInfo::IMPLTYPEFLAG_FSOURCE - href = @owner_typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = @owner_typeinfo.get_ref_type_info(href) - func_desc = ref_typeinfo.func_desc(@index) - documentation = ref_typeinfo.documentation(func_desc.memid) - - return true if documentation.name == name - end - rescue ComFailException => e - end - end - false - end - - def event_interface - return nil unless event? - - typelib = @typeinfo.containing_type_lib - documentation = typelib.documentation(typelib.index) - documentation.name - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def invoke_kind - invkind = @desc.invkind - if invkind & Dispatch::Get && invkind & Dispatch::Put - return "PROPERTY" - elsif invkind & Dispatch::Get - return "PROPERTYGET" - elsif invkind & Dispatch::Put - return "PROPERTYPUT" - elsif invkind & Dispatch::PutRef - return "PROPERTYPUTREF" - elsif invkind & Dispatch::Method - return "FUNC" - else - return "UNKOWN" - end - end - - def name - @docs.name - end - alias :to_s :name - - def offset_vtbl - @desc.vtable_offset - end - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def return_type - typedesc_value(@desc.return_type.vt) - end - - def return_type_detail - typedesc_value(@desc.return_type.vt, []) - end - - def return_vtype - @desc.return_type.vt - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -hSS=win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - typedesc_value(@param.vt, []) - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -hSS=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(typeinfo_from_ole) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(typeinfo_from_ole) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_func_methods - methods_with_flag(Dispatch::Method) - end - - def ole_get_methods - methods_with_flag(Dispatch::Get) - end - - def ole_put_methods - methods_with_flag(Dispatch::Put|Dispatch::PutRef) - end - - def ole_type - typelib = type_info.containing_type_lib - docs = typelib.documentation(typelib.index) - WIN32OLE_TYPE.new typelib, type_info, docs - end - alias :ole_obj_help :ole_type - - def ole_typelib - typelib = type_info.containing_type_lib - WIN32OLE_TYPELIB.new typelib, nil - end - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -hSS=d d win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def src_type - return nil if @typeinfo.typekind != TypeInfo::TYPEKIND_ALIAS - - typedesc_value @typeinfo.alias_vt - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -hSS=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -hSS=+win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - def ole_type - @type.ole_type # MRI gets from vardesc, but why shouldn't this work? - end - - def ole_type_detail - # TODO: Fill in other details when they actually exist - [@type.ole_type] - end - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -hSS=Q -\win32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_DECIMAL = 14 # Decimal - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_UI8 = 21 # !Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_VOID = 24 # !Jacob - VT_HRESULT = 25 # !Jacob - VT_PTR = 26 # Pointer - VT_SAFEARRAY = 27 # !Jacob - VT_CARRAY = 28 # !Jacob - VT_USERDEFINED = 29 # !Jacob - VT_LPSTR = 30 # !Jacob - VT_LPWSTR = 31 # !Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - - VARIANTS = { - VT_I2 => "I2", VT_I4 => "I4", VT_R4 => "R4", VT_R8 => "R8", - VT_CY => "CY", VT_DATE => "DATE", VT_BSTR => "BSTR", VT_BOOL => "BOOL", - VT_VARIANT => "VARIANT", VT_DECIMAL => "DECIMAL", VT_I1 => "I1", - VT_UI1 => "UI1", VT_UI2 => "UI2", VT_UI4 => "UI4", VT_I8 => "I8", - VT_UI8 => "UI8", VT_INT => "INT", VT_UINT => "UINT", VT_VOID => "VOID", - VT_HRESULT => "HRESULT", VT_PTR => "PTR", VT_SAFEARRAY => "SAFEARRAY", - VT_CARRAY => "CARRAY", VT_USERDEFINED => "USERDEFINED", - VT_UNKNOWN => "UNKNOWN", VT_DISPATCH => "DISPATCH", VT_ERROR => "ERROR", - VT_LPSTR => "LPSTR", VT_LPWSTR => "LPWSTR" - } - - def variant_to_string(vt) - VARIANTS[vt] - end - module_function :variant_to_string - end -end -PK -iSS= AMETA-INF/PK -hSS==+META-INF/MANIFEST.MFPK -hSS=Ajruby-win32ole/PK -hSS=Aorg/PK -hSS= -A?org/jruby/PK -hSS=Agorg/jruby/ext/PK -hSS=Aorg/jruby/ext/win32ole/PK -hSS= Awin32ole/PK -hSS=P|jruby-win32ole.rbPK -hSS=??jruby-win32ole/version.rbPK -hSS=S60uorg/jruby/ext/win32ole/RubyInvocationProxy.classPK -hSS=N\+ org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -hSS=>'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -hSS=`9  9racob.jarPK -hSS=s6Jwin32ole/Win32oleService.classPK -hSS=ePwin32ole/utils.rbPK -hSS=D"2424=lwin32ole/win32ole.jarPK -hSS= _S/6win32ole/win32ole_error.rbPK -hSS=u63 6win32ole/win32ole_event.rbPK -hSS=HY 6win32ole/win32ole_method.rbPK -hSS=6win32ole/win32ole_param.rbPK -hSS=I}T 6win32ole/win32ole_ruby.rbPK -hSS=d d ϼ6win32ole/win32ole_type.rbPK -hSS=$bj6win32ole/win32ole_typelib.rbPK -hSS=+[6win32ole/win32ole_variable.rbPK -hSS=Q -\6win32ole/win32ole_variant.rbPK6PK -hSS= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -hSS=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -hSS=HY win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def event? - return false if @owner_typeinfo.typekind != TypeInfo::TYPEKIND_COCLASS - - @owner_typeinfo.impl_types_count.times do |i| - begin - flags = @owner_typeinfo.get_impl_type_flags(i) - - if flags & TypeInfo::IMPLTYPEFLAG_FSOURCE - href = @owner_typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = @owner_typeinfo.get_ref_type_info(href) - func_desc = ref_typeinfo.func_desc(@index) - documentation = ref_typeinfo.documentation(func_desc.memid) - - return true if documentation.name == name - end - rescue ComFailException => e - end - end - false - end - - def event_interface - return nil unless event? - - typelib = @typeinfo.containing_type_lib - documentation = typelib.documentation(typelib.index) - documentation.name - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def invoke_kind - invkind = @desc.invkind - if invkind & Dispatch::Get && invkind & Dispatch::Put - return "PROPERTY" - elsif invkind & Dispatch::Get - return "PROPERTYGET" - elsif invkind & Dispatch::Put - return "PROPERTYPUT" - elsif invkind & Dispatch::PutRef - return "PROPERTYPUTREF" - elsif invkind & Dispatch::Method - return "FUNC" - else - return "UNKOWN" - end - end - - def name - @docs.name - end - alias :to_s :name - - def offset_vtbl - @desc.vtable_offset - end - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def return_type - typedesc_value(@desc.return_type.vt) - end - - def return_type_detail - typedesc_value(@desc.return_type.vt, []) - end - - def return_vtype - @desc.return_type.vt - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -hSS=win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - typedesc_value(@param.vt, []) - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -hSS=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(typeinfo_from_ole) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(typeinfo_from_ole) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_func_methods - methods_with_flag(Dispatch::Method) - end - - def ole_get_methods - methods_with_flag(Dispatch::Get) - end - - def ole_put_methods - methods_with_flag(Dispatch::Put|Dispatch::PutRef) - end - - def ole_type - typelib = type_info.containing_type_lib - docs = typelib.documentation(typelib.index) - WIN32OLE_TYPE.new typelib, type_info, docs - end - alias :ole_obj_help :ole_type - - def ole_typelib - typelib = type_info.containing_type_lib - WIN32OLE_TYPELIB.new typelib, nil - end - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -hSS=d d win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def src_type - return nil if @typeinfo.typekind != TypeInfo::TYPEKIND_ALIAS - - typedesc_value @typeinfo.alias_vt - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -hSS=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -hSS=+win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - def ole_type - @type.ole_type # MRI gets from vardesc, but why shouldn't this work? - end - - def ole_type_detail - # TODO: Fill in other details when they actually exist - [@type.ole_type] - end - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -hSS=Q -\win32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_DECIMAL = 14 # Decimal - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_UI8 = 21 # !Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_VOID = 24 # !Jacob - VT_HRESULT = 25 # !Jacob - VT_PTR = 26 # Pointer - VT_SAFEARRAY = 27 # !Jacob - VT_CARRAY = 28 # !Jacob - VT_USERDEFINED = 29 # !Jacob - VT_LPSTR = 30 # !Jacob - VT_LPWSTR = 31 # !Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - - VARIANTS = { - VT_I2 => "I2", VT_I4 => "I4", VT_R4 => "R4", VT_R8 => "R8", - VT_CY => "CY", VT_DATE => "DATE", VT_BSTR => "BSTR", VT_BOOL => "BOOL", - VT_VARIANT => "VARIANT", VT_DECIMAL => "DECIMAL", VT_I1 => "I1", - VT_UI1 => "UI1", VT_UI2 => "UI2", VT_UI4 => "UI4", VT_I8 => "I8", - VT_UI8 => "UI8", VT_INT => "INT", VT_UINT => "UINT", VT_VOID => "VOID", - VT_HRESULT => "HRESULT", VT_PTR => "PTR", VT_SAFEARRAY => "SAFEARRAY", - VT_CARRAY => "CARRAY", VT_USERDEFINED => "USERDEFINED", - VT_UNKNOWN => "UNKNOWN", VT_DISPATCH => "DISPATCH", VT_ERROR => "ERROR", - VT_LPSTR => "LPSTR", VT_LPWSTR => "LPWSTR" - } - - def variant_to_string(vt) - VARIANTS[vt] - end - module_function :variant_to_string - end -end -PK -SS= AMETA-INF/PK -SS==+META-INF/MANIFEST.MFPK -hSS=Ajruby-win32ole/PK -hSS=Aorg/PK -hSS= -A?org/jruby/PK -hSS=Agorg/jruby/ext/PK -hSS=Aorg/jruby/ext/win32ole/PK -SS= Awin32ole/PK -hSS=P|jruby-win32ole.rbPK -hSS=??jruby-win32ole/version.rbPK -hSS=S60uorg/jruby/ext/win32ole/RubyInvocationProxy.classPK -hSS=N\+ org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -hSS=>'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -hSS=`9  9racob.jarPK -hSS=s6Jwin32ole/Win32oleService.classPK -hSS=ePwin32ole/utils.rbPK -SS=J66=lwin32ole/win32ole.jarPK -hSS= _S/N9win32ole/win32ole_error.rbPK -hSS=u63*O9win32ole/win32ole_event.rbPK -hSS=HY R9win32ole/win32ole_method.rbPK -hSS=^9win32ole/win32ole_param.rbPK -hSS=I}T b9win32ole/win32ole_ruby.rbPK -hSS=d d k9win32ole/win32ole_type.rbPK -hSS=$bx9win32ole/win32ole_typelib.rbPK -hSS=+|9win32ole/win32ole_variable.rbPK -hSS=Q -\˂9win32ole/win32ole_variant.rbPK9PK -US= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -US=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -US=HY win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def event? - return false if @owner_typeinfo.typekind != TypeInfo::TYPEKIND_COCLASS - - @owner_typeinfo.impl_types_count.times do |i| - begin - flags = @owner_typeinfo.get_impl_type_flags(i) - - if flags & TypeInfo::IMPLTYPEFLAG_FSOURCE - href = @owner_typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = @owner_typeinfo.get_ref_type_info(href) - func_desc = ref_typeinfo.func_desc(@index) - documentation = ref_typeinfo.documentation(func_desc.memid) - - return true if documentation.name == name - end - rescue ComFailException => e - end - end - false - end - - def event_interface - return nil unless event? - - typelib = @typeinfo.containing_type_lib - documentation = typelib.documentation(typelib.index) - documentation.name - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def invoke_kind - invkind = @desc.invkind - if invkind & Dispatch::Get && invkind & Dispatch::Put - return "PROPERTY" - elsif invkind & Dispatch::Get - return "PROPERTYGET" - elsif invkind & Dispatch::Put - return "PROPERTYPUT" - elsif invkind & Dispatch::PutRef - return "PROPERTYPUTREF" - elsif invkind & Dispatch::Method - return "FUNC" - else - return "UNKOWN" - end - end - - def name - @docs.name - end - alias :to_s :name - - def offset_vtbl - @desc.vtable_offset - end - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def return_type - typedesc_value(@desc.return_type.vt) - end - - def return_type_detail - typedesc_value(@desc.return_type.vt, []) - end - - def return_vtype - @desc.return_type.vt - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -US=win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - typedesc_value(@param.vt, []) - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -US=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(typeinfo_from_ole) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(typeinfo_from_ole) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_func_methods - methods_with_flag(Dispatch::Method) - end - - def ole_get_methods - methods_with_flag(Dispatch::Get) - end - - def ole_put_methods - methods_with_flag(Dispatch::Put|Dispatch::PutRef) - end - - def ole_type - typelib = type_info.containing_type_lib - docs = typelib.documentation(typelib.index) - WIN32OLE_TYPE.new typelib, type_info, docs - end - alias :ole_obj_help :ole_type - - def ole_typelib - typelib = type_info.containing_type_lib - WIN32OLE_TYPELIB.new typelib, nil - end - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -US=d d win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def src_type - return nil if @typeinfo.typekind != TypeInfo::TYPEKIND_ALIAS - - typedesc_value @typeinfo.alias_vt - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -US=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -US=+win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - def ole_type - @type.ole_type # MRI gets from vardesc, but why shouldn't this work? - end - - def ole_type_detail - # TODO: Fill in other details when they actually exist - [@type.ole_type] - end - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -US=Q -\win32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_DECIMAL = 14 # Decimal - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_UI8 = 21 # !Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_VOID = 24 # !Jacob - VT_HRESULT = 25 # !Jacob - VT_PTR = 26 # Pointer - VT_SAFEARRAY = 27 # !Jacob - VT_CARRAY = 28 # !Jacob - VT_USERDEFINED = 29 # !Jacob - VT_LPSTR = 30 # !Jacob - VT_LPWSTR = 31 # !Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - - VARIANTS = { - VT_I2 => "I2", VT_I4 => "I4", VT_R4 => "R4", VT_R8 => "R8", - VT_CY => "CY", VT_DATE => "DATE", VT_BSTR => "BSTR", VT_BOOL => "BOOL", - VT_VARIANT => "VARIANT", VT_DECIMAL => "DECIMAL", VT_I1 => "I1", - VT_UI1 => "UI1", VT_UI2 => "UI2", VT_UI4 => "UI4", VT_I8 => "I8", - VT_UI8 => "UI8", VT_INT => "INT", VT_UINT => "UINT", VT_VOID => "VOID", - VT_HRESULT => "HRESULT", VT_PTR => "PTR", VT_SAFEARRAY => "SAFEARRAY", - VT_CARRAY => "CARRAY", VT_USERDEFINED => "USERDEFINED", - VT_UNKNOWN => "UNKNOWN", VT_DISPATCH => "DISPATCH", VT_ERROR => "ERROR", - VT_LPSTR => "LPSTR", VT_LPWSTR => "LPWSTR" - } - - def variant_to_string(vt) - VARIANTS[vt] - end - module_function :variant_to_string - end -end -PK -US= AMETA-INF/PK -US==+META-INF/MANIFEST.MFPK -US=Ajruby-win32ole/PK -US=Aorg/PK -US= -A?org/jruby/PK -US=Agorg/jruby/ext/PK -US=Aorg/jruby/ext/win32ole/PK -US= Awin32ole/PK -US=P|jruby-win32ole.rbPK -US=??jruby-win32ole/version.rbPK -US=S60uorg/jruby/ext/win32ole/RubyInvocationProxy.classPK -US=N\+ org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -US=>'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -US=QULL 9racob.jarPK -US=||~Jwin32ole/Win32oleService.classPK -US=e6Pwin32ole/utils.rbPK -US=ɴА9А9kwin32ole/win32ole.jarPK -US= _S/;win32ole/win32ole_error.rbPK -US=u63;win32ole/win32ole_event.rbPK -US=HY <win32ole/win32ole_method.rbPK -US= <win32ole/win32ole_param.rbPK -US=I}T <win32ole/win32ole_ruby.rbPK -US=d d <win32ole/win32ole_type.rbPK -US=$b]'<win32ole/win32ole_typelib.rbPK -US=+N.<win32ole/win32ole_variable.rbPK -US=Q -\1<win32ole/win32ole_variant.rbPK8<PK -0]S= _S/win32ole/win32ole_error.rbclass WIN32OLERuntimeError < RuntimeError - def initialize(cause=nil) - @cause = cause - end - - def backtrace - @cause ? @cause.backtrace : super - end - - def to_s - @cause ? @cause.to_s : super - end -end -PK -0]S=u63win32ole/win32ole_event.rbclass WIN32OLE_EVENT - def initialize(ole, event_name=nil) - @event_handlers = {} - - raise TypeError.new("1st parameter must be WIN32OLE object") if !ole.kind_of? WIN32OLE - - if event_name.nil? # Default event name - # TODO: get default event - end - - dispatch = ole.dispatch - DispatchEvents.new dispatch, RubyInvocationProxy.new(self), dispatch.program_id - end - - def on_event(name=nil, &block) - if name - @event_handlers[name.to_s] = block - else - @default_handler = block - end - end - - def method_missing(name, *args) - name = name.to_s - handler = @event_handlers[name] - if handler - handler.call *args - elsif @default_handler - @default_handler.call name, *args - end - end - - # Almost noop this. We don't because it get CPU hot when people put this - # in a hot loop! - def self.message_loop - DispatchEvents.message_loop - end -end -PK -0]S=HY win32ole/win32ole_method.rbclass WIN32OLE_METHOD - attr_accessor :oletype, :typeinfo - - def initialize(*args) - # TODO: 2-arg missing currently unuised oletype ivar - if args.length == 6 # Internal initializer - @oletype, @typeinfo, @owner_typeinfo, @desc, @docs, @index = *args - elsif args.length == 2 # Normal constructor - @oletype, name = WIN32OLE_TYPEValue(args[0]), SafeStringValue(args[1]) - all_methods(@oletype.typeinfo) do |ti, oti, desc, docs, index| - if docs.name.downcase == name.downcase - @typeinfo, @owner_typeinfo, @desc, @docs, @index = ti, oti, desc, docs, index - break; - end - end - raise WIN32OLERuntimeError.new "not found: #{name}" if !@typeinfo - else # Error - raise ArgumentError.new("2 for #{args.length}") - end - end - - def dispid - @desc.memid - end - - def event? - return false if @owner_typeinfo.typekind != TypeInfo::TYPEKIND_COCLASS - - @owner_typeinfo.impl_types_count.times do |i| - begin - flags = @owner_typeinfo.get_impl_type_flags(i) - - if flags & TypeInfo::IMPLTYPEFLAG_FSOURCE - href = @owner_typeinfo.get_ref_type_of_impl_type(i) - ref_typeinfo = @owner_typeinfo.get_ref_type_info(href) - func_desc = ref_typeinfo.func_desc(@index) - documentation = ref_typeinfo.documentation(func_desc.memid) - - return true if documentation.name == name - end - rescue ComFailException => e - end - end - false - end - - def event_interface - return nil unless event? - - typelib = @typeinfo.containing_type_lib - documentation = typelib.documentation(typelib.index) - documentation.name - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def invkind - @desc.invkind - end - - def invoke_kind - invkind = @desc.invkind - if invkind & Dispatch::Get && invkind & Dispatch::Put - return "PROPERTY" - elsif invkind & Dispatch::Get - return "PROPERTYGET" - elsif invkind & Dispatch::Put - return "PROPERTYPUT" - elsif invkind & Dispatch::PutRef - return "PROPERTYPUTREF" - elsif invkind & Dispatch::Method - return "FUNC" - else - return "UNKOWN" - end - end - - def name - @docs.name - end - alias :to_s :name - - def offset_vtbl - @desc.vtable_offset - end - - def params - arr = [] - @desc.parameters.to_a.each_with_index do |param, i| - arr << WIN32OLE_PARAM.new(self, i, param) - end - arr - end - - def return_type - typedesc_value(@desc.return_type.vt) - end - - def return_type_detail - typedesc_value(@desc.return_type.vt, []) - end - - def return_vtype - @desc.return_type.vt - end - - def size_opt_params - @desc.opt_params_count - end - - def size_params - @desc.params_count - end - - def visible? - (@desc.flags & (FuncDesc::FUNCFLAG_FRESTRICTED | FuncDesc::FUNCFLAG_FHIDDEN | - FuncDesc::FUNCFLAG_FNONBROWSABLE)) == 0 - end - - def inspect - name - end - - include WIN32OLE::Utils -end -PK -0]S=win32ole/win32ole_param.rbclass WIN32OLE_PARAM - attr_accessor :name - - def initialize(method, index, param_info=nil) - raise TypeError.new("1st parameter must be WIN32OLE object") if !method.kind_of? WIN32OLE_METHOD - - @method, @index, @param = method, index, param_info - end - - def default - @param.is_default_value ? RubyWIN32OLE.from_variant(JRuby.runtime, @param.get_default_value) : nil - end - - def input? - @param.is_in - end - - def name - @param.name - end - alias :to_s :name - alias :inspect :name - - def ole_type - typedesc_value(@param.vt) - end - - def ole_type_detail - typedesc_value(@param.vt, []) - end - - def output? - @param.is_out - end - - def optional? - @param.is_optional - end - - def retval? - @param.is_return_value - end - - include WIN32OLE::Utils -end -PK -0]S=I}T win32ole/win32ole_ruby.rbrequire 'win32ole/utils' -require 'jruby' - -# Shorthand vocabulary: -# ti, oti - typeinfo or owner_typeinfo - -class WIN32OLE - CP_ACP = 0 - CP_OEMCP = 1 - CP_MACCP = 2 - CP_THREAD_ACP = 3 - CP_SYMBOL = 42 - CP_UTF7 = 65000 - CP_UTF8 = 65001 - - def ole_method(name) - all_methods(typeinfo_from_ole) do |*args| - return WIN32OLE_METHOD.new(nil, *args) if name == args[3].name - nil - end - end - alias :ole_method_help :ole_method - - def ole_methods - members = [] - all_methods(typeinfo_from_ole) do |*args| - members << WIN32OLE_METHOD.new(nil, *args) - nil - end - members - end - - def ole_func_methods - methods_with_flag(Dispatch::Method) - end - - def ole_get_methods - methods_with_flag(Dispatch::Get) - end - - def ole_put_methods - methods_with_flag(Dispatch::Put|Dispatch::PutRef) - end - - def ole_type - typelib = type_info.containing_type_lib - docs = typelib.documentation(typelib.index) - WIN32OLE_TYPE.new typelib, type_info, docs - end - alias :ole_obj_help :ole_type - - def ole_typelib - typelib = type_info.containing_type_lib - WIN32OLE_TYPELIB.new typelib, nil - end - - def type_info - dispatch.type_info - end - - class << self - def codepage - @@codepage ||= CP_ACP - end - - def codepage=(new_codepage) - @@codepage = new_codepage - end - - def connect(id) - WIN32OLE.new to_progid(id) - end - - def const_load(ole, a_class=WIN32OLE) - constants = {} - ole.type_info.containing_type_lib.type_info.to_a.each do |info| - info.vars_count.times do |i| - var_desc = info.get_var_desc(i) - # TODO: Missing some additional flag checks to limit no. of constants - if var_desc.constant - name = first_var_name(info, var_desc) - name = name[0].chr.upcase + name[1..-1] if name - if constant?(name) - a_class.const_set name, RubyWIN32OLE.from_variant(JRuby.runtime, var_desc.constant) - else # vars which don't start [A-Z]? - constants[name] = var_desc.constant - end - end - end - end - a_class.const_set 'CONSTANTS', constants - nil - end - - def to_progid(id) - id =~ /^{(.*)}/ ? "clsid:#{$1}" : id - end - - private - - def constant?(name) - name =~ /^[A-Z]/ - end - - def first_var_name(type_info, var_desc) - type_info.get_names(var_desc.memid)[0] - rescue - nil - end - end - - private - - include WIN32OLE::Utils -end -PK -0]S=d d win32ole/win32ole_type.rbclass WIN32OLE_TYPE - attr_reader :typeinfo - - def initialize(*args) - case args.length - when 2 then - typelib_name, olename = SafeStringValue(args[0]), SafeStringValue(args[1]) - @typelib = WIN32OLE_TYPELIB.new(typelib_name) # Internal call - find_all_typeinfo(@typelib.typelib) do |info, docs| - if (docs.name == olename) - @typeinfo, @docs = info, docs - break - end - end - raise WIN32OLERuntimeError.new("not found `#{olename}` in `#{typelib_name}") unless @typeinfo - when 3 then - @typelib, @typeinfo, @docs = *args - else - raise ArgumentError.new("wrong number of arguments (#{args.length} for 2)") - end - end - - def guid - @typeinfo.guid - end - - def helpcontext - @docs.help_context - end - - def helpstring - @docs.doc_string - end - - def helpfile - @docs.help_file - end - - def name - @docs.name - end - - def major_version - @typeinfo.major_version - end - - def minor_version - @typeinfo.minor_version - end - - def ole_methods - members = [] - all_methods(@typeinfo) do |ti, oti, desc, docs, index| - members << WIN32OLE_METHOD.new(self, ti, oti, desc, docs, index) - nil - end - members - end - - def ole_type - case typekind - when TypeInfo::TYPEKIND_ENUM then - "Enum" - when TypeInfo::TYPEKIND_RECORD then - "Record" - when TypeInfo::TYPEKIND_MODULE then - "Module" - when TypeInfo::TYPEKIND_INTERFACE then - "Interface" - when TypeInfo::TYPEKIND_DISPATCH then - "Dispatch" - when TypeInfo::TYPEKIND_COCLASS then - "Class" - when TypeInfo::TYPEKIND_ALIAS then - "Alias" - when TypeInfo::TYPEKIND_UNION then - "Union" - when TypeInfo::TYPEKIND_MAX then - "Max" - else - nil - end - end - - def progid - @typeinfo.progid - end - - def src_type - return nil if @typeinfo.typekind != TypeInfo::TYPEKIND_ALIAS - - typedesc_value @typeinfo.alias_vt - end - - def to_s - name - end - - def variables - variables = [] - all_vars(@typeinfo) do |desc, name| - variables << WIN32OLE_VARIABLE.new(self, desc, name) - end - variables - end - - def visible? - @typeinfo.flags & (TypeInfo::TYPEFLAG_FHIDDEN | TypeInfo::TYPEFLAG_FRESTRICTED) == 0 - end - - def typekind - @typeinfo.typekind - end - - class << self - # This is obsolete, but easy to emulate - def typelibs - WIN32OLE_TYPELIB.typelibs.collect {|t| t.name } - end - - def progids - array = [] - Win32::Registry::HKEY_CLASSES_ROOT.open('CLSID') do |reg| - reg.each_key do |clsid, wtime| - reg.open(clsid) do |clsid_reg| - clsid_reg.each_key do |key, wtime| - name = nil - if key == "ProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - if !name && key == "VersionIndependentProgID" - clsid_reg.open(key) {|key_reg| name = key_reg.read(nil)[1] } - end - array << name if name - end - end - end - end - array - end - - def ole_classes(tlib) - WIN32OLE_TYPELIB.ole_classes(tlib) - end - end - - include WIN32OLE::Utils -end -PK -0]S=$bwin32ole/win32ole_typelib.rbrequire 'win32/registry' - -class WIN32OLE_TYPELIB - attr_reader :typelib - attr_reader :name - alias :to_s :name - - def initialize(*args) - # TODO: Make this work internally and externally API w/ regards to inargs - if args.length == 2 - @typelib, @name = *args - puts "NO TYPELIB! for #{@name} #{@version}" unless @typelib - elsif args.length == 1 - @name = args[0] - @typelib = search_registry(@name) # TODO: Missing search_registry2 -# puts "NAME IS #{@name}///#{@typelib}" - end - end - - def guid - @typelib.guid - end - - def minor_version - @typelib.minor_version - end - - def major_version - @typelib.major_version - end - - def ole_classes # MRI: ole_types_from_typelib - ole_classes = [] - find_all_typeinfo(@typelib) do |info, docs| - ole_classes << WIN32OLE_TYPE.new(self, info, docs) - end - ole_classes - end - - def version - [minor_version, major_version].join('.') - end - - def visible? - flags = @typelib.flags - flags != 0 && (flags & TypeLib::LIBFLAG_FRESTRICTED) == 0 && - (flags & TypeLib::LIBFLAG_FHIDDEN) == 0 - end - - def inspect - name - end - - class << self - def ole_classes(typelib) - new(typelib).ole_classes - end - - def typelibs - typelibs = [] - typelib_registry_each_guid_version do |guid, version, reg| - name = reg.read(nil)[1] || '' - registry_subkey(reg, 'win32', 'win64') do |arch_reg, arch| - type_lib = load_typelib(arch_reg, arch) - # TODO: I think MRI figures out a few more typelibs than we do - typelibs << WIN32OLE_TYPELIB.new(type_lib, name) if type_lib - end - end - typelibs - end - - include WIN32OLE::Utils - end - - include WIN32OLE::Utils -end -PK -0]S=+win32ole/win32ole_variable.rbclass WIN32OLE_VARIABLE - attr_reader :name - - def initialize(type, var_desc, name) - @type, @var_desc, @name = type, var_desc, name - end - - def ole_type - @type.ole_type # MRI gets from vardesc, but why shouldn't this work? - end - - def ole_type_detail - # TODO: Fill in other details when they actually exist - [@type.ole_type] - end - - def value - from_variant(@var_desc.constant) - end - - def variable_kind - variable_kind_string(varkind) - end - - def varkind - @var_desc.varkind - end - - def inspect - "#<WIN32OLE_VARIABLE:#{to_s}=#{value.inspect}>" - end - - alias :to_s :name - - def visible? - flags = @var_desc.flags - flags & (VarDesc::VARFLAG_FHIDDEN | VarDesc::VARFLAG_FRESTRICTED | VarDesc::VARFLAG_FNONBROWSABLE) == 0 - end - - include WIN32OLE::Utils -end -PK -0]S=Q -\win32ole/win32ole_variant.rbclass WIN32OLE - module VARIANT - VT_I2 = 2 # Short - VT_I4 = 3 # Int - VT_R4 = 4 # Float - VT_R8 = 5 # Double - VT_CY = 6 # Currency - VT_DATE = 7 # Date - VT_BSTR = 8 # String - VT_DISPATCH = 9 # Dispatch - VT_ERROR = 10 # Error - VT_BOOL = 11 # Boolean - VT_VARIANT = 12 # Variant containing Variant - VT_UNKNOWN = 13 # Unknown - VT_DECIMAL = 14 # Decimal - VT_I1 = 16 # Nothing in Jacob - VT_UI1 = 17 # Byte - VT_UI2 = 18 # Nothing in Jacob - VT_UI4 = 19 # Nothing in Jacob - VT_I8 = 20 # Not in MRI win32ole but in Jacob - VT_UI8 = 21 # !Jacob - VT_INT = 22 # Nothing in Jacob - VT_UINT = 23 # Nothing in Jacob - VT_VOID = 24 # !Jacob - VT_HRESULT = 25 # !Jacob - VT_PTR = 26 # Pointer - VT_SAFEARRAY = 27 # !Jacob - VT_CARRAY = 28 # !Jacob - VT_USERDEFINED = 29 # !Jacob - VT_LPSTR = 30 # !Jacob - VT_LPWSTR = 31 # !Jacob - VT_ARRAY = 8192 # Array - VT_BYREF = 16384 # Reference - - VARIANTS = { - VT_I2 => "I2", VT_I4 => "I4", VT_R4 => "R4", VT_R8 => "R8", - VT_CY => "CY", VT_DATE => "DATE", VT_BSTR => "BSTR", VT_BOOL => "BOOL", - VT_VARIANT => "VARIANT", VT_DECIMAL => "DECIMAL", VT_I1 => "I1", - VT_UI1 => "UI1", VT_UI2 => "UI2", VT_UI4 => "UI4", VT_I8 => "I8", - VT_UI8 => "UI8", VT_INT => "INT", VT_UINT => "UINT", VT_VOID => "VOID", - VT_HRESULT => "HRESULT", VT_PTR => "PTR", VT_SAFEARRAY => "SAFEARRAY", - VT_CARRAY => "CARRAY", VT_USERDEFINED => "USERDEFINED", - VT_UNKNOWN => "UNKNOWN", VT_DISPATCH => "DISPATCH", VT_ERROR => "ERROR", - VT_LPSTR => "LPSTR", VT_LPWSTR => "LPWSTR" - } - - def variant_to_string(vt) - VARIANTS[vt] - end - module_function :variant_to_string - end -end -PK -0]S= AMETA-INF/PK -/]S==+META-INF/MANIFEST.MFPK -0]S=Ajruby-win32ole/PK -0]S=Aorg/PK -0]S= -A?org/jruby/PK -0]S=Agorg/jruby/ext/PK -0]S=Aorg/jruby/ext/win32ole/PK -0]S= Awin32ole/PK -0]S=P|jruby-win32ole.rbPK -0]S=??jruby-win32ole/version.rbPK -0]S=S60uorg/jruby/ext/win32ole/RubyInvocationProxy.classPK -0]S=N\+ org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK -0]S=>'')org/jruby/ext/win32ole/RubyWIN32OLE.classPK -0]S= -** 9racob.jarPK -0]S=||cwin32ole/Win32oleService.classPK -0]S=eiwin32ole/utils.rbPK -0]S=!M.#?<?<jwin32ole/win32ole.jarPK -0]S= _S/?=win32ole/win32ole_error.rbPK -0]S=u63J=win32ole/win32ole_event.rbPK -0]S=HY =win32ole/win32ole_method.rbPK -0]S==win32ole/win32ole_param.rbPK -0]S=I}T 9=win32ole/win32ole_ruby.rbPK -0]S=d d =win32ole/win32ole_type.rbPK -0]S=$b=win32ole/win32ole_typelib.rbPK -0]S=+=win32ole/win32ole_variable.rbPK -0]S=Q -\=win32ole/win32ole_variant.rbPK> +mi=Agorg/jruby/ext/PK +mi=Aorg/jruby/ext/win32ole/PK +mi= Awin32ole/PK +mi=?£OOjruby-win32ole.rbPK +qi=R??mjruby-win32ole/version.rbPK +mi=S60org/jruby/ext/win32ole/RubyInvocationProxy.classPK +mi=N\+ org/jruby/ext/win32ole/RubyWIN32OLE$1.classPK +mi=_B(()?org/jruby/ext/win32ole/RubyWIN32OLE.classPK +mi=||7win32ole/Win32oleService.classPK +mi=cj22?=win32ole/utils.rbPK +mi= _S/Rwin32ole/win32ole_error.rbPK +mi=ȮSwin32ole/win32ole_event.rbPK +mi=Ƌ Wwin32ole/win32ole_method.rbPK +mi=cwin32ole/win32ole_param.rbPK +mi=I}T gwin32ole/win32ole_ruby.rbPK +mi= pwin32ole/win32ole_type.rbPK +mi=U-}win32ole/win32ole_typelib.rbPK +mi=R1::ńwin32ole/win32ole_variable.rbPK +mi=Q +\:win32ole/win32ole_variant.rbPK& \ No newline at end of file