(Repost with correct attachment!) Hi, Recently I tried to use the imputil and module and noticed that it had a few shortcomings, particularly in an environment like pythonwin. I implemented a few changes/additions (applicable to python 2.2 and up) to imputil (attached in newimputil.zip) to fix these problems, without breaking its basic structure. Issues addressed: 1) Objects in sys.path can break some other modules. A function has been created to make these objects appear like strings so we can do this for example: sys.path.insert(0, StringedImporter(BuiltinImporter())) The StringedImporter function will take a class instance and return another instance derived from str that also contains the Importer functionality. 2) Chaining to previous (foreign) import handlers supported if desired. A previously installed import handler can be used as shown by this example: im = ImportManager() im.install(chain=1) chain must be true to enable chaining as it is disabled by default so current assumptions should not be broken. 3) reload is implemented. An initial crude implementation of reload is provided as a starting point. An override in the Importer class can be coded to improve it in specific cases. Here is an example of code that will work for pythonwin: #====================================== import sys, new from newimputil import * class TestImporter(Importer): def get_code(self, parent, modname, fqname): if modname == 'xyzzy': def test(): return 'magic!' m = new.module('modname') vars(m)['test'] = test return (0, m, {}) return None im = ImportManager() im.install(chain=1) sys.path.insert(0, StringedImporter(TestImporter())) import xyzzy print xyzzy.test() #======================================= Any comments as to whether these changes are worth persuing? Thanks Dave Hawkes begin 666 newimputil.zip M4$L#!!0````(`+N*LRQ2K'E@B2(``$AW```-````;F5W:6UP=71I;"YP>;T] M:W/CQI'?7>7_@%"5(^A0V%TG57>E1.NRX]U$=UZO:W?SN%NK5" QE&"!&!@` MI:53]]^OG_,`0$KK.,>4LR(PT]/3W=.OZ1G.9K-//[G8-K;MDUU?5F5?FN[3 M3S[]Y,4'?&:*9%WE76>ZLT\_2>##35_E=7YM6OC.?R7]C4E*AM*T=FTZ@N$[ M4%OZ?)5WAF$F&]LFK6FJ?%W6UTG7YW61MX7"V>SJ=5_:NF,X7^W*JB]K!^[% M=E?E?33RUJQO\KKLM@1YQ1T2@)IL6ON3J9.M+7:5<:A]O:^_L7GQ=K?9E!\4 M\*>?S) DGWYRDM2V-V=)?F=+10KQK&U]JK =0,$`_DDF/R<G! Z Y665KRK MN4[^\[M]?V/K+USW;N]!75W)(%=7C W."2?[==F:=6_;O<=8N_?M;MV[K]N\ M[6[R"GM?7>55=765G"?O9Q$'9\N9@H$_!S2&)V_[%N9L"O?HDL#QXW?[Q@#( M'OY)Y_,%/']%] B?PY06$14*:[IZWB?WMKT-B)!E&4)FP8A0%,&;'92T;*8, M+<P&0((@557:F6JS3.I\:[HF7YOS.Z!&&A!UL4Q 6@"!\^3I0L:@<6:S"P8! M0Y4#7 !Z;PF%KC'K<E/"^G!#9![(Q4: `P!@"F%=RR,!T+3FKK2[+@&1+2J@ M[,Q-`S^(?J8(TK_AVQ+FV=%,Z[5)'0;+).! ."G\N%8`D(CA'BQ"T"?)&[.V ML PC)(7B-];>+GDR0N?$[MK$WM?9`'7M>57J@CWW&+R?7\GSJZOYY:!GB*?[ MV[<Y``0:4V]]A)A&TP+1@U5./#V$:FLJ4 <QHOPL1'+BI1N<'T2#HTSNZE J M(VE[8SI8RV:2VDZ?H81K#X2MXSU(T$9:?VOK@(1("5"*R#E4OJ2+<'P1,VUV M?U.BGO)R=FWZO._;E*5@7FZO$(OYDL##>HJ6RE#\0&2Q7R:]<&7@OX-6TI+P MGGB%GR8$,REGTR\^"IH3A:G'8TBFZLP!=(\QZB-Q'8(:BM^#:*Y:D]_&CU5" M6&3#-\&+P]0.I3POBJN.;*DH7_ZR%'%^"?8\% KT*D#(U[ LT""F0:O!`MW0 M>%D(?PQ9,3GY13X"2_Y)OGMS\=<OW[U(7KUX]^?77[]U;_F/==6]A*4"IJXW MVPLOA[SJ/(& ]74)C!?R\+3.:?$$=#E)[@VP%GM@<U/MDVN+C@<8CI4)')'. M;@VH,_A+UN]FU^]:LPQ!=3:I3#_ODA]V79^03&/+UV]/049R=.\VX'VQUQ>H M<%B"Z*U<V>X*UGX_$&U\O+*V!W\C;]*!]7B'1A/-'@SC:-'?Y&#Q3;(#WP_] MF.LV7ZW8Z0-.HGNVQ0ZQBE**9LE%S]0P70+$`J\+R(-SMT4B8G.%(*Z*LET0 M?%1M,-9X1DSSP7R ?[J$IED)$*_&CV,@#!F-==6ETQ(,+_F/F&(7P.4RK\J? MV ITID_L1A:/Z1SMP.NSUS6V0H^6IYW%E">AR7<5M"_!-(L9*?:@,\KU*7%? M/%8@;]OU((.VJNP]B,%J'X+*FCTS($EA[KG[#H*TSM<WU+X'? H3S!0)7YAN MC>*(ZQ7,Q97.(ITP!]CV_>>@O<ZI^1^O7OS]W8MOWUZ\_G9"E1(9`PU G9]> M+L<MAY])+Y_Z+S(5'IC:D&7!6'.8/EBY9B\/G/9;1*L[\#QTA?^(VGJ97%=V ME5<=+?4EK,*U_X)R6Y5=/U(#X ^R9TP:LF-GE'0RZ $$T8>"`#QBSF8#/[)O M]P-J-GG;H[PS<EG7P.J'*<ZC=8P?\-4-3'(+ZX[=`UOWY@,))R'#(X^ F[IW M_I #H,01&*E09&+,$J&;%AT/F!3#4Y>SUT%A378W=E>!/&M4< `A="8(QK2C M<9-WY-+H.,X\FQ8,]%!H]<.DAEERMRSL!).V\M5!)9)[7B_&4(\X$&@/=+:K M?'V[:[RSQM2"J2MOX$]4<[NZ,+"^K9UP`O#C)C!MU=.!X*K,'IT"?DY4``B/ M>\(%#<T=/)ONX00F=E'U`_-C7 \0IS5@\C0.'PL3L)>(U=M&YYQ7X 05>S"E MIE9I*KZ(.XX7#3VUS94GW+[+1)>^)_:",KJ,^Y@/:]/TR7^9_8NVM1C'CF&> M`&5A26ML#T-L+1AJG<^P>8Q"&._X-ZFB,\$CL8*^\4&9&V.3W.<4N&\L2%<" M-@G44C;=O<W+3JT_S1T6UK=6X:!H%<D\^8VHH#';-GG7GS9Y?Y-T,+U*G9XN M;@>3J4S-TUV@%7DVO<;)[HO<'A<C3Y<I7HV(!^N^*-?@T*&I2U%U=,WM]1&] M<9*X-K!"D)CLUH ;@_3V=*:!5#C!UH(SLSA@ZD[0.REIQ?UD6GN (R>'.E^( MZVC;+2C5==Z9I=>_M05D]LX#69,.FM*R'EZW6YVJCT']['J]:YV'*FQ(TM6. M0>9(!9:7O#X$U* ,P8I=Y^A EIC:VK-'NV)Q`O[K6P!:6 1ZBPKHQMX?E' + MU,\K<)5 SB"@N@4[XKRMUD3DMTB2A-V_[F>2&-SM7DB<I%X.SC'_I#1G<JR0 M%GLBY2&82F)0W1V9&'#TF9Q,%Q;HGX'I"J9*.(*RA\A_;89K;*FJ0141VNFJ ML\<4R0R@]G8[PY3"^D:C`Y5]67SW:.)S)R('9>$#O#S$@P?7L7,?SH^NX\ % M&.D<?3FQQF5X;9%=8037W:@[X$<4E^#]L[/+R*8.%>&?VK9=4J"7-,:B)IR) MOV>[#!7D;-CC2V %24_#20"C+C]2'>6]9X$G<4N__MN?!Q/<1I2)WZ&5*G$I M?VCS^MJDSY9>-J94GBA,];&V.NOR\J!C== 1P,]$^D([:6HJ'&/$N>TTCH^S M#=N#[#XL;2>8"/8):Q [S'X344B,Q:^%A7L#+A(%^'E99<F7R;;L8/5=#\$Y M.%N3UZ*L?!H`G4BOMKQ%65*@(*,,08*.1TU9F0+<:(M)NGM$! @:Z7*[$\>? M?.WZ>K `/];B:S_QD8*.XS@1R>73X1-<\D'#G&P6N\:Y1+9$8J3K! ,1Z\%$ MF*?_A%_,\"@B/!C^<'BH05 <];TA#+HHY"IK49T:YKF P#,\"Z7O7=!YK2WS M1#1"*N9NX9SBN@CE5'6&AT?Y! "!WBHFC4 3H!HALPXR*/"RB7'1-F!/"G<] M0!1@2FH%OH9V/#T-A#>8:3 XN$AY0#58@J>5N3/53,/@B*2#K1,4**$].D_X M-?4"AH_D[90]&*JN$P?*K>W6;##G92E9!8L&LU%N';7.UT!JY?T0&CJ\)3DB MGC"4JROOW,:7$BH%,FQRH@:L;HBDAL"@X=JT8&07K / =1)RDI?0E.M;?&8W MO++=%BR:EFR$F6QJ"=M(;]4&5QBKBU!@D4>[&A6+-X?=$"#,;,M.T?V($+(. MPQ0J=T()4XH[0KMEX<DKA.\H>TCBR_Y&""O$6)1;;>XUMY;\22;%L)\H8$F< M>$ <PU[Q<S1&L?3@4Y <T(AQCH4HFCM\@=6-:=$1%P(+'F(DU+?H:?<D'45$ M)YX:X%CRM.J^"ZP@C#:4:XE7EN%V(\K)H!V*PY3L^VQ/' U[:@Q"8LGY*_]P MRII!80]L4@BX3;2(7>Y%QLE:W-(:I;%.`LG8]5U9D%AXFM]0J$4N0[G>5;"4 MXA46$:]$__=T&&0>%%1BKOI>]4<SNH_3X=I9&>^YW96K"@"%G!X*9/3]_5EY M.6SZ2!8*^QS/6+*1+%$/WV&2@6&R-$A;L$W$_O%N2(=!#6)'"0&T`4@V,@*< M!RUM[>)+EZ1GNX1L!)F.EDGH%R&0VF]3V-4/9MU+UUPU5] C6/3D#.- I<=N M[+L$NZ?8>.G&FO* 15C."6[F*40[]0-WUE13T(/"C*,#A-MJ,HYNH BDR2$G M<Y0G/N26M"-[$[C!:VG'!^FGOI2S!@]A-W:^)E ZEAX<I :#+@>=2=2A)&Z$ M,3"T(VWXR#G$#-&(9'HR'[U]SNA-5Y <)NE1;];MZDXLQ@E:GS@ZR J;'O:X M`SV .Z$\23L$=12B%QBOR%4^O#TBN_=^3R36S/P:M8@-=#3FE&!-XS_HQ(&_ MV=@.E2LHW<(TIN8>(\VL<P,.8E(+5$=E\DZS6\E=7I4%%ZK!JQ+W8M$M\6@& MHJEZZ%P1?UQB0EQ:?3D2Z@9KJ@ITQ9![0IQ!L0=^)EG'S5.A?TQ(>YOO,TD^ M[KK FF$EH8B)"SZWZ'$6IC+72(VR)W*-1,$)Y\3 <7F8KPS[^)+"0<F8U[33 M1DAJY$!67* 1B-84^71)@6"GO-''@:/(/W=ZJ CA<1^!)?\<+%70R0YR4CQA MF-9XERJRPB!CLSQ;9>L9Y:>;UMZ!-U6(S^(*"V;<!$&C62:A0X AJ!4P]IY: MCZCIFW'&T.URD#H`4UZE'M6Q,TTN`/A5*(^:*&.D8]]JE@=L.[Y#0%&*>Q<X M9[2G9,/T3M*W9CJ;`$UC7+6_J!ZDJ @^I9MISD'[N"M,+DC_("@A5@"-HNXA MR"3%J"\$!O$9.4&EFCQ8HK)<-Z:GC?Z221/ZAXM#N''"^-[G$9YP<6,QQG(Y MF@CKRQ <38(AT-ZOWSU '$$_E/FJVI-9<K',(IN4"AF[MH7;6"9_6N0B;2Q& M2R68DOU"V8F)M1"4S/[0Y+E:&)T`MPT['&:F,YBQ^TY6@/8ODC*:.7_&K&W! M)^%RFGH*'<&!?>-M^0'ED\$CP30%,=B+62+E,4 >(Z!+J*I<9\HBU!0&@/7% M?*-6Q+K"-!AU>BX:P\AB3\2 4W!.J8A=0V,Y/A/(,2PM%U+B#--9O^>,N>:L M%/4^2C(HL$!::7)4CEDHD=RDEKP'U&&6)3$?&H@33#$Q3<IU-;PKHWO-<1D2 M(YTYB1THG,A\*"52[G1@KV"L^XA"H/E<.+M,BEFL`E=CR\6#3(5I:,;84FA) M`Q"5+1J'?-/6$EV"RO%[X(7IWKR(]D/[\N,]>;6W0> ZBEC'>_ A!'2,8J2< M(6.(6.\$*H-T)"G$$&-.Q814[+#T2DP65C]AW_00Q2*AD+[ ._06IB<Z3#'$ M\=*55,-?,:B4__$U2 ,TA@*D2]K/#M<U:ET-W@-LFZF*FDX"GM%\G0>G+2>+ M-DC<!G-@D4MIH2R%$^!/[\ $#2<F&T=N6/D>.S%%622.+PO%`W1IONYWN2JY M+Y(TU+,Y#2RY@9!KG2_%".(^QC*LPX\IK4$4#^Y2[21B:U@"6-9%64A,'@,+ MS >S9@R0(Q$;' 8#3CBTL%NP%L;QNY_ MLE@4 W_G(@&F)]@X$0G`]QF>9ZL MP-@5Y09L&?"@VG\1+%A9]6'0(K(ZU49WPQ/Z*R18:W[<E:WD_8<ATV"0J[+> M6 (S%$-:P3\.%N#$"LB+HD37%:2!)<T;."%6NC(;2T; K'>]!CV#6DB'E\1O MNP9CP%2$=^P,ZJ)#SXUJ;MAP9!G$H[=4\G!74BSJ.T[H/1<XQ@,PIL;AZ;=N M`CWG+%TD8A17'A"S4#*'$XX18-4Y="/I" E,$[T47@U(3*%$0:><JGWDWI!# M2 1Q:+LD9'X-WC?O;2N?RYHJ&8:TGAU#?(9'(O8@;=?D-X%[L@M=+*]SCUD= M!U-PTV++QZA '^E(XD.CG=#"SM3&LB;IW/:%H+3TD5?23P=:'EJXX5CEOMY+ M)*0`KP#H00Z9U7Q;2!/:8-,O&]J!:6G+DO >"(W+2<]^W66_[F;)KY-TZRC% M<YTH21@%U4*6"6N*'Y'<J0W_B9WJV7"G>C:Q4^W+``)F#=TT]9'$Z9\*I>?J M'4F%CU\,+)S89T;4SN8C)V_^V9RV#\2_''GR/0?C047A7([^S4-(=WE;TB%$ MT&QT%"C0>IC^[1))NW0+;,*SC+U8PJ0^%#4[#_Z<9I(Z0@!AOQ_S1#[45+>2 MAZDOGL4R>7^YB/0G3A3H> 09YQZ3Y)&*95>ST>(I(ANGL,'-]%-&O9N6HRW: M;7E]TVN24/.'OPJC8OQ@HAGP^M4YT0I#B[ 8QLD(M)G*]<+C\4+QM-'E@KTG M.P-24\LF'':I@TQ T+(+`C2!'GZF5A)$\#X5R03'Q20#16O'ETG'D<61-!1H MFB]!&6V;/N!18#[=/GEO=9,J%)5WG'&@<R.4L82E3E5G"$(C)=D.UO.=DISX M`^+X/%@!&C)R7$L>J%.M`;K^"R;7A:.-%.C&+P>[==YZ_":99U@[HQ#B;MXB MC7G-!-5^RV"8<?;X8$VPI)S4BR-)EAESA0=ES\HZC)O @Q965/N!=!T(9J+D MZ<\KFPMV#@YO&F!]C0ORK@%!-<(1LTY<00,?4))*AQ'_HU2]]W.#=NC-1HW8 MT?4MA.D#E\&_/Q ^C@<6WS><1+V[9:\/5:E_0:=_A3;9NC)Y&Q_B(B;(%LRQ M$#8([<)1FUU/!Q5H9(CF.+$6Y'$F*,8AB(VWDX9$&T<'8T<K7B#3))H(#T9! MP4-9]\=]!);\HSGYY-WKY/5?7[QY<_'UBZ@%2K"+3Q^?;YG-7I(1IZ1HWY;F M+O#UU1$(93W2BK*6O<++8X664*$TELY0*.SK>YBF6 N87 32A1MH6N\%5AE$ M+Y=[$VCU2IU%"(C6&4CA^B9"3*8<819EE)(450_[IXLPJ)G0_;)J0K6.!R:K M:G_Z(X3^?)0_< (S=Y QJ#.+T\3B&!-<YVG/6FO[6>R.3\56O!WG`DL:TK^] M" Y!U=8)`?DITOK\W-4A^7ZAA9-"KT#?<KU#\MO3?M<,A. SK505C/4,`AWV MD($11%"-IPF,`9QW2%<\7,C5$4*(ST]Q;!DY`$*6%R0![U9XBDV>#8XY,,/V M*$!@JGO.RC@T>>,`J^#H4$J8V4^XLF\"N\Z \!52O*%UEB[#XR129:SL-9,< M8R91=1$*'N9MN%\842]4F'!$W!,>U\N3(\GB&%=M"U*IR6"9R2O.[@(5\Y8" ML]5B8I: 4^LGF9,)0 \?_%O9%7A"V0B@5]GJ%LS4/#DQ0BEQW*UP,TPD#S*D M'XRFI.%Y#\#YS4,-T -R2\)5,NSP!8;&D@?)Q:3=;GT3P\/:1UHJ`^DEB0#* M_TT=O ';U6^/H?$<1.#A_SI9O$\$`=U3<$3Y+-^ S?HL&#T&B%EN2FDS[YZ4 M[K!O<<A39+_ZS0X4S=:H8ZUF07?Z*[,%E6"*:",[M-E'S<?#KI%0LMS(OER$ MX41"]B/2W@&<J&)FG#D=>Z(@O6CFUK;9AVC&_@U^G.6/$W XAGL8>*83N='C MZ2UMA=-YR MXW ?@X#4_;W'K"C<]]WHX7O31A?A''37$IG@&^W1MMTV)6ZQ8 M^R:GQK&XH\W7Y$SIF65\!$R"&9C5#ITII.-\/4<].;?S!R Z. ""CD-#/!)" MQN[D?TOG%*NG).@`*08.;QME)XC2'[D5;^32B?(%+$C9#^SLKEUS+9_3:VQ5 MJO#>G=4^^8..\AQ7M,.;"H)#E02C,)B1S?H.=QI<'6;>@&IJVA*3\/#/'4## M-+<_J^&.O7>QKNSR.U.(T\LV/:A$1 ;RU0SB,G5<)Q_,<RY*$L0,)B<UC8YP M7#I#^XJB.'&'/_G&`MJT^C)'6/Z#,*1*0&"7;>B0CK)CWLX7&>8_])("6(1! M>UY=^O7]Z;-+RF!\7\^#Y1'!#[[\AAIZ'$C>W(U+F<J&[X$*RB&&"\Z7[YYH M*H;$0ZR,,-CO:\2[@IOA= =2"H/<K[1R2H^>O![N#/*N(#6)M<(FNV_!?*3S M[Y_R_\(B+'W)EW!EZ(6D\S]<S,,%$&X0\.5<6;';-J+Y-A&T3;7K;M+H46?, M;?ITF3R=&+:4"Q>V^76Y3A=1BW5E.^-#//$(F8BPL.62#V06_$FUWC_8$N^= MXB"=UG5\Y8>NY+<0)>\:T!_=7%4Q5U^1=?+U5GP>`*Q:L2-!D62+@^CWALG: M2GY=)8<A4XSGMFLC#/$!YB0;VY4?*"]);0/6=09OWY@_"=*@Y$51#U?PT6N! M`%77SNO^&*SOOQ\"J_M#D HDT,> @@Z'8-GN\X^#!1T.P=KFZTE8U ]>COOA M!P4"Z9_FRV24O"RQI/(<$)D/7N!'"PWB-U38#2P?`9J?S=G?`9=Y`EJ.\SU# M4Y2/<0#5=<:ZZVP*$^R;H\(ZF\<O=5,8WJV45)$6F#KJ!C$:,$QLTUJ7`KF@ M+HE?,M$F]O@C>N)9C.8<_OL%"(N[.6+WF1XCB+X%K0YT!L)'@,;AP0(23;Q! M<:3WW(*/?+@;A?AAH'KXX:BMTT:^0ZB@^(U74?2N[+",74V TU7?X%&]6#W! M;.4<;<:=%EK/&=N53G0C(ND!BW2P&7G]=FA&HD1G\"#%U&_R;\G39__^%#YT MJOKIT]_AWVXJSF2,I_'&5R"20S1R&;QS\/\PF0J&@0G]QR59EU_8%?ZGKO@\ MT6KAP:66J?ZA%/UY2;=#53 G$C4*'N$M7H4E9<87(DC2P*<K1B>.1F3WKP:W MA@SCSI)*FD&DU?=*92)#E=+S19TEW;[TU5\NOGEW\:UOP4=,&!!3]Q%POOOO MJY=O7O_/BPC.*+8Z\<FE1T[X&LU GV'%*A=I2;836Y?AWJ3H7L:&PF%^DCIF M1G5"RR2=T]&\)<TB=)P$^E,-EI?)/Y+__1>(^04POJ6M5]U4H)VI*,7J$XP^ ML AD?.)VLDDYCVZ@"[E(L;N[<NP\>9]<AHF%?]G5?CID!J&7J8MTZF:_:(-' M$OE(#CJMQ.C 7U.+-*[(TTT`U7EI9$W2$,:Q(KV!*$<;5T=K\,:B-3SW\O%J M2._;4\G!?+&Y4Q&B:IB\3G#'=*]9\>2BEY#68+5VF)\[H:B75*X-<@YR)(FC MUN@1#D,9U!#&D$4+S4@'>[:#>I1.#]?&Y<R##5M;<[6W[-K>&Z\&W2F>H5X- MX$6G%T/M$K'PN)"XO=GF]AKFAEOPJA,?<14=?09YL+".Q VJ_-?8>-+^/.#P MZ.>C%D$0CJNNF#]Z9OPY5) SN7KPXQ*(W.+]YY>'VN#MJ4IXNO94T3W:(:?# MRY>DU5QB8&(,$8-G2T7DV:5F-Q]EI+@29:B^,'B)5-V `JC/"2,_&RJ8X*Q; MV'+Z5K(-[FF&+IT"''#@H&NG'Y_V<%VF#WRJU753=$,N&9N'%=Y#EO%Q'\V8 M_N7ERXN_GW[UY=L77R<7K[Y[_>;=BS=O)4N*RVM\<>-!C&6ZY%F?.]Z\/SO] M[:7/)7$;6$-[:$,>, %A+UA?K9$GWH^7*R;YO>3&HN0%]Y&#([351L=HZ>GS M<_HCX(7+="%<3.JM!@<"-YSC^]U"K]<,DD-#[XW"+\I:[>H@;^5 +*):%<47 M`0^PTH_,3W-<5)$19[=<2DJ@<9Y]%!D/^.!?:'914XI,!D1GF.9ZJOL4_T"5 MANU &21G#)K<.7:A)J\)/>0Z@<>!]X<.'2BZ_?2<WDWY+*4[Y?Z ^-'4FY#% MW-@-`JHIS"4><GE=P7,3#NF@C$!D2J!)FA_TAQ]:IX_[R&I^A>6]N3\(RC:^ M*O%IPEEC:9F4)G%'[S/>D</TZ/ W"])A!+A@EQ)9,VH+P_;.99[-9B-T=+MJ M$B_L]$]@Y1+XHB9(,+L2<\JA:+ X8KF^2F-W/A]=.JA>3=]F<>-YJ"HF1#LB M@7Y(:.@-RUG?#F&TIFDG(HL`%6R1>D C+ #5XP"Z_FA_.7)?KG:]<;/)1WDT MF0039K+/G-I,W/VFU9OT?@(V?@17/?_OFL8MC]O6([@I(&U9IDJ,7VXA2A8* M@H&Z=S;3W^',)<)1#7Q&SYQ"IVL2.^BF3] W8NVC&\LUMPIH4!ZXS('0B'H? M.Q</W#L]Q:(9?1:R<8+J(73N69]*=*054'.?EP-K#H)^AQ9=J7$1!D3I(M.? M>I!A?Z8J^&792?KRW>NO7\N?E$UX6=9U\I5=XP\MX/E%_WLM[OBJ9Y;^3 M= MU821'-W$R0<XON#^97R)MT().W?HW:(LA'>#<VVT.WRDVETJUC;6XNWC=B-8 M)EI\R;^6(X_"XQASZ,(_BK#O'+!3^(SN`W#91&[S_/ES?0,@_#/WY0]"CSE MGN,=IL"VT[)>/(^'80$QCQBFY*L2HN?X((LE[6/10P(PC^=,OKE@Z'C_ZLMO MA)Y2BS7\>25:`A2[Z,T[P+4;H-WI?2GG8R/!%QF@^\ TYM(?Z&&3C6N-KSU" M\\D/MO;.!)>*X;Y]MUNQW7M__4-WQA=F4 $-%K,6E]RO,/KS,[Z43&_KX!8_ M[DR[#]+%B)@ISKCRQVW4N.D*.*.RW.R?@.,-_]FD*1M$#N\6Z?C 1 4]GLC< M)-U+63GN>E]V-XD<0V#I+. +<C7(T]SP578`3L_5.-GD=*#!(V"X.]G;MC1. MT)G#I\_)>W6W'VTQ>\:7037(@)=O3U=YYP30]1[<(^>>WQK3>#9T-I&[2JA8 M#<]#)76YEL-5?!6NR"$1)92K/]FVL+7,O-D!)4#2@(."(960J43A-@CM5? . M?TK2A;ZZ7/'7-'A2+H"]*PM[%LA93U<]@B8ED)\E=*8>DUIZ#PA6\)CZKFSI M5\1<OQO-&C%N]WEU>[HUI[O&:9:^S7MSO:>"R7?E%AKEJ\Y6>(A.WPFS<SS9 MAI=C4O0?:*$LRRXUHN&VFRHG&8>60$P'4'CQ19(2\[K#UT9R'8MH/)BZ60=7 M83G>,@*B,^14(YJWCFZ[:=<WT*B+.9'@_8<&UHSM#5_/(=WY/@&Y,8;N-_SV M];MD%9X2X](KUB3EQNV NY7'ZKVQ5;FF$MX6D_Z_UU(60IZD"&A]9]H6GGFM M?@BMO.!SO%)!0W52_ :?]K:A\) NLB,[L^):!VSPQS??O.0[)4K^X10-(?EU MB_<78)U@J=>*#=Z;38X_OB:7!^'NX9X+I/4FZ:A2`J<)*DD4/QWY0M4#;1T* MV-D.DOU1-A.^O=W7??Z!$C=?!,2AFE"LWZ\3^5& 'O'',B1EOQ8*)K/";F%] MSQ(^H-??G-*FC59HY%79[^4.'SRQ0 +#%<MNN/!0-&@8EBD*@%3ARZAR&9@4 M=M[CD>&9))9G?*1UO\*;C&7?8_:ILTVTQ*D&=(M8T_E+)Z2H)@"_,VG[-[V0 M7 N$2CI$%U:ZGHV3V*32Z+;='(%P7^Q!*HJF+UFXSN>KW=5P'=]FE./N=HYZ M`&%(@AH)"W@C"."&IMX=`/9F<I_D0QT[9Q=I;V@)21$QX91QS5M<RUV0@<0- M<\#BB978F"^!00"@(TS=T48PBN0:%YA<N:UHL&UE_^WWR=[NB""MN4:/MT4W MC#")F@,I5GO7A@54J@%)]7QE+0FA"M,2;,:N$P(C@(PJVG$P-U >W+2IXRS] M]%%S_H0V`TOU^-)/][RL^3HNVL+7,\4D(72K/(HYU@R#HF^P`/)D]!-^', O MG*%K3=[2C=8B<QL/L;!*VY8._?'=QS0=9B4B5+06,1T@PQ5K;0OKR-+=85[> M8!AP3LJ.?]X`[QNC-*)LVV0BX*_V3Z;6@U= \;Q0,-6?T37R//FSO<?](+KD MI>NQ9I&%/U%)H>UH`H=5U&1>GW/79PNO/VAAH [?CSP_W%<!GM+BX^,9IXW% MF(K;,RRR5TCB3FW[$S;/X.#L<OF93VSX^0.#QN/))L^I;EL=&;)&Q[-:8DJM MY0,I3LUWP:0OYNA4&JI\OJ"U@6$L6?B<?PS!LE"4(-6O2)&%Q;FROO@Z'83G M-7#OEG.7I+PJ$3P`$,-7F#IP:7@J"_IA)@0D-Z>)R8@XX 2&T*%#\BBGH!E6 MB#=%;+?TBW^;P! '%+T7'QJ!H$*O:)KW>=U[A%#H578VQK#M0LAX"Z<[?ZZ& MMG<_X4,W:U1\IQZ>WM_!O(6I=%U>\EEM*$CH]Y_A:'SP#J 35_!70G$DUIZL M'JI*N(>_*N.J"_&=_VT]\BG.],@(860U98(M;^C>`>B5EQ7?`AB<YB&WCP^& M"K/Q7#:=241(>O!PQHX'4___`%!+`0(4"Q0````(`+N*LRQ2K'E@B2(``$AW M```-``````````$`( ````````!N97=I;7!U=&EL+G!Y4$L%!@`````!``$` *.P```+0B```````` ` end
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4