#zip file with Tcl loader prepended. Requires either builtin zipfs, or vfs::zip to mount while zipped. #Alternatively unzip so that extracted #modpod-package-version folder is in same folder as .tm file. #generated using: modpod::lib::make_zip_modpod -offsettype archive if {[catch {file normalize [info script]}]} { error "modpod zip stub error. Unable to determine module path. (possible safe interp restrictions?)" } apply {{modfile} { if {$modfile eq "" || ![file exists $modfile]} { error "modpod zip stub error. Unable to determine module path" } set moddir [file dirname $modfile] set exedir [file dirname [file normalize [info nameofexecutable]]] set mod_and_ver [file rootname [file tail $modfile]] lassign [split $mod_and_ver -] moduletail version set do_intersect {{A B} { if {[llength $A] == 0} {return {}} if {[llength $B] == 0} {return {}} if {[llength $B] > [llength $A]} { set res $A set A $B set B $res } set res {} foreach x $A {set ($x) {}} foreach x $B { if {[info exists ($x)]} { lappend res $x } } return $res }} #determine module namespace so we can mount appropriately set lcase_tmfile_segments [string tolower [file split $moddir]] set lcase_modulepaths [string tolower [tcl::tm::list]] foreach lc_mpath $lcase_modulepaths { set mpath_segments [file split $lc_mpath] if {[llength [apply $do_intersect $lcase_tmfile_segments $mpath_segments]] == [llength $mpath_segments]} { set tail_segments [lrange [file split $moddir] [llength $mpath_segments] end] ;#use properly cased tail break } } if {[llength $tail_segments]} { set fullpackage [join [concat $tail_segments $moduletail] ::] ;#full name of package as used in package require set mount_at #modpod/[file join {*}$tail_segments]/#mounted-modpod-$mod_and_ver } else { set fullpackage $moduletail set mount_at #modpod/#mounted-modpod-$mod_and_ver } if {[info commands tcl::zipfs::mount] ne ""} { #argument order changed to be consistent with vfs::zip::Mount etc #early versions: zipfs::Mount mountpoint zipname #since 2023-09: zipfs::Mount zipname mountpoint #don't use 'file exists' when testing mountpoints. (some versions at least give massive delays on windows platform for non-existance) #This is presumably related to // being interpreted as a network path set mountpoints [dict keys [tcl::zipfs::mount]] if {"//zipfs:/$mount_at" ni $mountpoints} { #despite API change tcl::zipfs package version was unfortunately not updated - so we don't know argument order without trying it if {[catch { #tcl::zipfs::mount $modfile //zipfs:/#mounted-modpod-$mod_and_ver ;#extremely slow if this is a wrong guess (artifact of aforementioned file exists issue ?) #puts "tcl::zipfs::mount $modfile $mount_at" tcl::zipfs::mount $modfile $mount_at } errM]} { #try old api if {![catch {tcl::zipfs::mount //zipfs:/$mount_at $modfile}]} { puts stderr "modpod stub>>> tcl::zipfs::mount failed.\nbut old api: tcl::zipfs::mount succeeded\n tcl::zipfs::mount //zipfs://$mount_at $modfile" puts stderr "Consider upgrading tcl runtime to one with fixed zipfs API" } } if {![file exists //zipfs:/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm]} { puts stderr "modpod stub>>> mount at //zipfs:/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm failed\n zipfs mounts: [zipfs mount]" #tcl::zipfs::unmount //zipfs:/$mount_at error "Unable to find $mod_and_ver.tm in $modfile for module $fullpackage" } } # #modpod-$mod_and_ver subdirectory always present in the archive so it can be conveniently extracted and run in that form uplevel 1 [list source //zipfs:/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm] } else { #fallback to slower vfs::zip #NB. We don't create the intermediate dirs - but the mount still works if {![file exists $exedir/$mount_at]} { if {[catch {package require vfs::zip} errM]} { set msg "Unable to load vfs::zip package to mount module $mod_and_ver (and zipfs not available either)" append msg \n "If neither zipfs or vfs::zip are available - the module can still be loaded by manually unzipping the file $modfile in place." append msg \n "The unzipped data will all be contained in a folder named #modpod-$mod_and_ver in the same parent folder as $modfile" error $msg } else { set fd [vfs::zip::Mount $modfile $exedir/$mount_at] if {![file exists $exedir/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm]} { vfs::zip::Unmount $fd $exedir/$mount_at error "Unable to find $mod_and_ver.tm in $modfile for module $fullpackage" } } } uplevel 1 [list source $exedir/$mount_at/#modpod-$mod_and_ver/$mod_and_ver.tm] } }} [file normalize [info script]] #zipped data follows PK\b(*#modpod-templates-0.1.5/templates-0.1.5.tmW[o6~8Xn;aްvЇÖ"hfBHE}d;Ur(\󝋦4{1?Gm`lP7y.Ȱf d7!W \Z+jJ+G>uϟcTNA5R`t.8vCtZyeTU1x/*ɋaQöѠ$Jkqw@5"oҪ{%~W8&HQiQvH63ul;lwRZ$:H%.J[N3vЛA'qI0atJjiC;b6_1$&? It5bww4(w+дLEJ P1 gOD1]Y(Dt!STHrɳǰQ!8  qo~̈6Z{ibnX<߸vG?pv0+SZ8V65+]{KZ+7J\ZDJߣjϔqv-Mc$M.s?OvlwĂJZ$ ^AK`b*e(0( ` 5rs!az'H+z閂jecWbS>/\QW E {{R!+ܚ'2ϻ>gO*QhBy۶ZV3xajT3Q~L4<4KT`:=G/ݺf'!Q ҨM,W{=6v::0bt?YځBd{mEt b5:#G}1@M p*` r/#)9 $!jN-cHD)]r"S$z$ NA%:K%( DZrݦq/!^ͪןT3흖kz( ^<$8%?@s[^b#K8 Zs",W͡A81V._?{7Fp},O:/8 |8y)a@;-34g'zVWO5>x 1` ])G1em5~y\׊S=Q*1-*j9 zD3q\gW8 @u.Ǯd%%,xTv 8 ߯ 7ZQ MŽ[J&mAdl.nAFbIW$I4-Lm +Le`E[i*r(Bp<^rV# a=MS?0e3-IT{A|[-J:O\\gH~zvIdlC2kŞ bFi+;=O*=.$ZS+J aԛޥK$ģ]5K鲖Fׂ.%\a) k&CF\_5ֳw"~ā1[=xe *7HH}t9w&=g[ݎՕϋ{ݖཏP箯PKQQ3H׶<=V#modpod-templates-0.1.5/templates/modpod/template_modpod-0.0.1/modpod-module-version/zSvW/Q(J/KU(̜̼t䒢*Ģ"\b̜T.)PKlX'/G#modpod-templates-0.1.5/templates/modpod/template_modpod-0.0.1/test.zip ffa"8+ҜTݲԢ<&^Ed`^{᱉[ߔ5J#Wy;w?$3(߯9Q87m6@-KIUe'O:{V;T$ãEG9ɤE2wZYtɤ+J[Y0LR3sB4pI(KJpXAy_KN=ҭ\iE1"9jd땭2Os8vd={Wt1zyf*PKXqKC#modpod-templates-0.1.5/templates/modules/template_anyname-0.0.2.tmTQo6~7p]Mf/鞪An}Py3@S'3Ejɳgl7vyxw7H[ǣ)<(rὋZMƻ , =!Mcn[PL h#˦6[_Y^"a0|&`!`zrB@k*]m0ښO)AB5[CZU KA//~bkxs>1ĉ8i@ϕ^\%Fž{ 24n[Ԧ4Xܝ|vג=LU(01?N՘2qkTCi,GoJ?JIJkeYfM|39L8-D͜&&*'aVD:%*+)\K.NA̝O>g{sqi(瀾5gm$X8EK3DyEWg$tEÕ,2y~h\ݲ.tb4/zP `o+)cdXr&st8}CR}oCH,Í0;0:V@a[/a&#"lpf ޱ&O-w"pa<:pj0=7*%a$&gCLҵ&"Џrb jT㰋եs?]HFB 7U"BR&薻#f4LCBX>=y|V}6[:U5Kf< Hmp3PKySXWʹ,C ?#modpod-templates-0.1.5/templates/modules/template_cli-0.0.1.tmVm4_1\Z۔ Nb췪gښ:^{U;3NWX(uۍg<3/ Q(#ޚ}#bߦg^GkTa*hj_ˈG DDy[n9!/@>FqaxOȘ& =YVf~ [}|!n4V ihulHj'*VqT\$O [agyX%j) \u X[H`O1KpB.AE7+?R nPabkxH,\z9B*8;0$2}bW{N%k;-"ᮁJCSa6ҺWE-/x5 a`2\LP?& k4y!`6͂θF[b6Kycwu"uˁ'<A6cmp_bi$5Jᇃmۭ0Ą`ilN\Y8ɱU]4R®Qϯ >.BjOPd١\fu~!)PLҰ,fs&*}C߷q;`yFctPriYp. &d<=%dz/8nN\ Mm}t$UsKt $*KEjg}v8T3e3ERMETlîCb^t|FvvM<xoL]O3ƢcK:<}lw#T)B."1d,dxD+KZ571Ag%%m=+4B 9L\ ST/}nEW3,.cY_K&Y[/PK|`X!JN()B#modpod-templates-0.1.5/templates/modules/template_module-0.0.1.tmXmo"7~RÔ]+4R!Rs=5Ve޳װ$w$,~33vNs~TP)•TZ G1Epcӝf ҂PTuYbA&?tـPpC *gS4ltf\–j>|d[n#2EE34:2HѲNd.{޷DSmae3:48Dc0jX P0@\ vJ _<;vBolJN`t̽7o~y?B{´k׼{8ޗ%%hS1@{c\8b_?хiןMS%i[0 pvvE/*ɥw<0uBgUwaHx]˹Vpf;rЦ2EӁO@ DXI,0,=8q Fl<+$xMz4J Q6&8&\R@ @t?S b_ KM5tv87xh5 K Tbj̖\z"0K:CԸ>/L,es F%tƂ]4?1ӎ )yNкKsa-(J;K{CAV "WۼXSO+zvbT@3J%y] %K5܊fQ׬ҊrIǭ iΊ"2|kP@C/q5ԷGرai]6onyݝ.kmxl/?2˽|!bd+"tlJa ޮrQX-5%K[3 e̦~':2D>]eq#O)6SEm;=\7tQ0s#:SkW"ɭ]n|홵ݘd9V _q +o"9_HS*= +x0jŁ;1f?ǛvPKW\K|! B#modpod-templates-0.1.5/templates/modules/template_module-0.0.4.tmYmoF a Pn;`_] E0VJ3E2\Rj;$Pޝ;("~?6wBŹEHz<+\%O[IZsv$4)M"В"kE4 6FN)hx4elޢPQ|33$,"4O'v\8ýs$VW$_W0wo?@ƀ\buI9mRT[5?B(2H^yN3Y&Cj DL I2R+,Q'{xbP*4*O!w_~%J\\;Crb^LS+Xtɟ|%^`x/?jyN_'MRo3DDBer#\?EitLHK4J&rއ.ͲM%L0"ma:z IA3E/Gy2.;pHf(&୓%ǍMӘM}t:?`.B(h|UÑcώ7jv7&{^lgCqD"_ xF")%~p]|rG#g}GcauZ{w>%&11a5/]vl3 Hыq ݘn9Ize28pS:\6Vq 23yܢPp:%ML{ZJʔGv6?3fTphaSS xCu\`Z,8Jì)E˄HD2 rGtLKd("*hmlOS1Eb[DbM <=HX0Li:xW@ʭ|za61c3ۘC2ҪTpɵY#Uv J6@SP18+, *XzBV\Br:J^ÖHA2pЕzP2%b4^C"Ť_?/=ǹ7E2?r<[j2G 3Y;س>&KFiQzx:bNJf{Ƕ9"#"+gl`&yÎɌ)4lPK\#@#modpod-templates-0.1.5/templates/modules/template_test-0.0.1.tmXmo6_q]&'ݰa^Ь+nkQ,ݾAKETr{d/mtBGx/y@ID.7WBi'Љ:S&N:L$w%[oooǷ$,)KBTZIE2rEKq-G)}{@r*T8Is/zc4+U6v, S. 1yֶXZ2J47^iuΞֻj!:eoop!hڪTt3k[n J #Yñe!L5(wMvInǐϽ~A싯M=Wr4ϋz z/=}&8Zm "^ س%N{Ke*}3:$XJ r%]Q׿Ewyw9D_K];qA}ePpXsRխL}GĨY&_!vNuè蠂4^_I#1K7y=T,,yR.v>L&~#-rRDLN6DqiAZa_Y~#MOիS)UTd(3.]f XPV?T?#|?=w k21߉E]Qǖ !!b+6JX _-[fA}b7CpUHWBT }9gЖC120̔3¬ 32#kk×3˜"-]v\n푔@k&q,ԜLxun#KJ\ќ-ݻ6z UdŮpk4Fhհb2M&ptpp@AoA>pF;"5GL5:"2 &"+JÆSgi dۆ7EyZ|kl`LSd"-(] TQ+ͲթmLjuchBtG{1VS75vEe9s W;%qoS%#]r䂛Ote1!ǃmGBjq[m3X'L:G`-9:{ivރ{S~D|7oRK=,N/t.u8+[j74xv@* *ֱ3l.,ܴ.tr?pġ9(  zhAC2K#O1"?LjF+ʅPc6h X&vî_5V2N$в/|f);"n(js\y{yVU4֔iHF6w*Id|Mx\7o )%LfBc2YȕUӁy TG}$gW V$8kz+xCvSt\sIi&Z=K90MQZ8ӷzd38N<#poI@ Qv>'{x}ظ{ *~ $vWG#j3ZėLaEyygks*\8B:؜(*9B=K1F0odu8~}ś/.(!i;zȷYIo<]^/PK Wzށ?7)8#modpod-templates-0.1.5/templates/utility/multishell.ps1ZmSȖ:2pېV%΅$ՖڶYҨ%}9-d(,u9mkJ`0P>ĶTvn&:%ZWz뻋w ; 5/\D*<1%~^d:# t1 `b_r߾P{@| yF o_mu)L{rZd  ̂YPU*jS}Wh˓Og/ys~r m5r8s&JC݄e;*1:ә $K B ۄ%é-q!/J8>:9s v5&g_iVDb&UBM+}ő2EaU{}Xi¬¹..I#MU9xQK*eRh*k"Uf&\`u3:0I g94~pvޟz{B;0Vgo:?tbP>0E'-U 93bCwG'qfkeIÖy31*E)} 8Eӥc.}4:uRZH]#vcmFߦ#%_Kk<׺{w:/F^.tnTMV JaӍH+NXH리 0h&Y|ga ԮTw w##\s I@;1::W_zduwswﯮms8>U3֟#z;%o4jwewܾ3Q_W0ꉂz*DUjc4'?[] *&vOpEG_Z !$l@'7zik+=AC&K*!(>1 L5}Z kҢ\hd,q~ +h'=RJx2_A&:iHΜIj,. %#pR״iM׵Avbꔫ)M rJ!EgԞM/tMƸ97QPK'6c,<(oC$fZ6ᎤE ̌S+lT xV|v):+ԆZNr8!^ @d~qJ>SHH^X (#$FءG ir%j.TJPqBW+/'[w.lV/;!k`p7P?W Sw-a)%&tAL9>~8JFOv+y% 1+]'u!s9},vcK,p9:W&HvR[lLmt.Ur(VN5 8U%LG!yBz#rzI ̲A͜H4Par3X"(FJ gG|Xi:.':YZi&o"Ty1k;oIgl,5lKN+[ i$k)Ȃ݀+$E'RS'.)Պ;7)7o he]Y.4z#dIG^L w(ÿp?S1jmYP#`7\_JM2nu}_С&%PS-5aȀ{`?,(V"2V}l':ܐoQVbӮoMyv /Xיo._DG e7׈-EdXh?Uac/`V|r`Տn2A8x=Fo^wvֱnm@ \ vT]jMy6{lcTCޭ"D{_|Tɳs6(0Ipޜ_x1;J(cxG;)eT=ڭ|g}y݌u^ n&vҠv૊aV~Db6n?U]g8Qƌ}DdHz}_I]o0bFwכm>CuHGl몼|;E Eu#W+(âI۽7J{ZtҚ?fm^U4p9zD,3?]"XQlR9郃HC2WNK2I9+j%ݢˠĸ&^2=M>S*_᧨]1@M:/mo ,]`y l˚J钃VG/e_L;,[ۢY\Ujh딮g -zM?PKs2\g rTCJ#modpod-templates-0.1.5/templates/utility/scriptappwrappers/multishell.cmdսc80;0@CH?.m$65iրI|&fw>$Y!I?n[Fh4k:/Ļov}+l}?Q$xq6b1 Bq47C Gt;e0LB? S07Tq/MACqM^9Y$onS >.F3{/:"PzqSS@Jb`*oXr%/{Q|b=p?/EWlT q0>[`btY"?"< bW8m88+BV1@oDR9Ak  Cgۆ 7ǂ_U %1ڏԊ]eh9Fy~݉( .DMp.o(0؍bh YTj~jMosowxx~q_vv:b{_wۻw{;b8z{(ݫ;e^yaa0]A*5Lh} 3FQ!idLw cD|DhzГZ?5>!TN7Z(2pBY›{`؋bly4 ]|/t+afM '.$!B;(p;11l$3x~ 3XO\Da `o%Nΐz@(Sm]P`,jɏ{"uFc7 fc"0snZg(G?j=\ik\ۮ酁ƾtBÎf%0zO%oBvXH^xocgw Pu(",F1{Vh1{Z(SV޾ɗS Jlв'hTHm+UmZ],]PBbMxZدM0#TsC|'x ԢP iPrYJ݊ј*znET1ְdOT k?Pc5Ƹ j8YA:.?tÅ3/AG}S\:t8nw' \۠cZ ,X) ;4Љ06 S|MkD!(0`ո (,1&_ Aᥘ>)gL#QxukibEYInu29'Xu8)U¢1,KNV;F[ *FbHn[~(d1t$AOYAНZ2WWO[1F> Dժ/WOiǧ&=`ݧՅK)8蜂HT5`.0N5`B[`IEv[̣9@ɔkRI5^S iL"nUZ(P@lg/jiq9B0NsHV|]=#NV0;3|]}_0"5Z Q*,nMsC8H M$? &8LY ]m>jAUx ܆p"lUa\&8zEpaϋ#w<ʍxS95Cb3:bS(O%c{he#wquk]1w_{D|{ Sb3صD*MNeoAI]k hFֹ㟹RT>ٳ̆$3/t YA[G`e'+G2! 3E[feJi ҩI78`a^'0"z ͠o`C^kCmx@Yi3g>3|VK6М1=:G؝: ae3WrDpvJX)SڴVF_TڑFX].HNZH.>h{u5Q5=ع[A+CTÃtRw0CApBmy1 ,67%' K*9zdݑX3P$Bc笅RjȤN1f}`/DRtuC=) p;1/%N ~U 7&  T)v(iD>S W Pn]8ΡܓSMr ]$^.~5i\9h5dRcoHxۧg| 7|~L~*3 mDRfvqBw^H~ pգB@QYN5|3uWq3Z*ٌ y-L-QUOá Cݍ"ȵȬ̽!b&pm.6AӋ3k|Xfvۏ JIaDB1yWp.\w*Ryabyg4"JNBAGATѸ{%},ȝo:g?/^k\R:y}*yK&nU]w' J6*BJE TM*qbv+h}qI;2,¹N#/2PQ*'+6nXE_@D T@55(F\yB !5mifpNbxB3i]6g.mM mł'#F#{$ș8!օMRٸ~$ @ p'i ;|q$a!h׸v#LDG?R^~2٣x#2qE0@+0v|0xharcW d?Cゼ(=ϛC՛F 6.=wSoМO_g?={V>~3T ]2wɡP q L`C_9z| `5?^1'ġ!ӹF=y0@"[gCg^vtٖv5y~$]Bdu&wapTl\]ĠtIF3d@bwabZsRTUL\t4'#GG)'f M83m ~`K L&G :\P<H|eB8#:D:J 5V|q٭.X;`P#xØñT`Wc?(8("7 I#qC"1W$=/J)t"v-rB/ s%: WeSNB*,Jj@!pP]iä+9^о.r5QB{rUqU\BP#Y*9]FFMrnK)pC3t8zh>5X; #C$LN,05v̓2y Mƨⷪ:#̐Zf tW6 D?t=dكagM56 v;V#ʳJ4wAJa!%A x8;L G ?È#*2h&FHkDPϝKخfdb^( mFAa%c c'wI֘Dh"y;!J4L2 "kzj8 +[-1u: oTk8]R] c =^Ⱥ#_)S9. XP | y4V$rFllkI{ҙ05ʰCPI_0-%ꂨПBETKs"QWY[Q`L_5e=pn'|]{EU paʚ`Y@Y =@{4 I)HR̂Ba,! '(z @ӖآHÇkF\'ΕgK >rg ?m$M.8BHjnA0S 2M~b)hg:A?#vYFA#XBLrhPC{g(),Ն\Lr E3Ht706d[λ AAc6{γMXזn\T505Map5Vtd5LPqfQo_ʼ }B&p,ok#U׷wb[L͉2230;+ejRΤʮ'NA8`_ 7jҍTw4F1? F3Ԗ($(Z$ j"rHGIS͢@^g˩nߣ늇R]6rm^ԏ~q}Vwī6qwܞT\PAj 1Ȣ[y a}Fꡓb.,S~v.C2yQ_D2/:{ίG;ۊb|+. u/>/(ɛ vj[]2*TtS/3FHpLL=?z#ZmJ r36DWl~ߠL֬C:9Nq*Yv#PSPa\ID rx PIh4jaݻ>/n " fx#NM?s:kM?n E4{K)yvTFFn l":ؑ6y d[_zvqt՝ƫ] Ivw' oYP$hǭ$м}D# '&l WN u[wyӄah1uz}vd8$X+RH1nb4r)e@|RÇg!kC5kE}8BHJFv:4ء;O qc vacK`$:>Zߢ&ܛqEorn5BeyrH(xU5vVzQC!78tTT%S7T,3h^M͝+w@dN֑8N%ӖG pP  >b'["x{ ohTzQT 4v/ ?ZT| ~I3oֽmCWjf^T#͙wVuM.h70zr4I{-x^̥%EԠ9$} :wްf]" ]d,C+{dӳTRp O6»d)"o6j H#7 ;]ۡQyO54&]ΖJKVメ/k\ |["R] }bj3+,m3mK\3롴r 9Dݔi-/h hgc&AzB~~T>* j DVo2 ,R30\22P}H)sl]؆9V' kE* aLneꞒMU0s / `*pfePw8+ޣu'TؗFH T71&,}rkH|1UQr72}.90u,๥3> {r<Hd57\5yW1[Vs*n! _RT{K uk<Ƒ|3Ozo@;n2z 4I0VVE#Y&v[% *f8W[W #ij'H:ݸ`)LEl>{@1E;N϶det7%q~7x)NB3<ȩAK}^ݛM3wkg5gpgˆ@#0$w(ˉ[‹TΝ6JpLd*c4>HcR%:g D XEY(CtPYRwܓ.KiO2#&*[(3[WqU0z%KJRtnV|k2&~BT$> I(a<"LlI4,ΠDHCP{ʀ&G\D|&puu%8݃:F"VtA .msN%eA:vG1L7>l<P3:&a Жs(:%P;ďfy?P=O\ac[A897⬨pڮ\ȵ'@&Ta^t qtzC szB*Q\?q$ SZþ;B#vdf[#J?}v9,𷥎OG* ?Z;[_[*VMRy J%2̐o*]s[<0fp{xᣇ'ͧOa_& mt [.w(wBhNw٧!<(ugɯ.)z@۬=tUf#Kb#a|+dL~߁ H)'lkƼBQ֦EWBW5}!Ee11,fI7 =='{ƢRFQٳ<\S 7d^ KfNΕ~V!ZQU3V1zʪ֭5qTru9ݶ 3Ac bЂ0 =]I"JK_J*dsbYw~j[zvJ̵xUUvJD@nfI[3DE,cQ#`9Xi-$^uɎ""QT2+y@6Lo5JD/GO"Jtmr~a ˉıZ)I9w~h!+a3stH(gnOv, feMpg|"@]E-RZ9խb@ane{[ǀ:Uee#L{ OHhd#J4$/Ӵ"A#b $GAQ, 2>ÙfSJ ( bQzfL+F*xsCʔÇO8؋m[6ؔ 7)((g:q >nq; 4j%Z8nNa5 lեoMypQ_uM.՜>b[ƃՔIq SKNܺ8-ESXXl@ut%j_;wGbä{ZiReTH&*%5uj7R9ȓg"cŹZ:M>_t?/Ê~Tڸ|.3(rd bnE<{{1:}0c9eJ_n)pVGL$=G)ZpˆY:+2<ͧ3lb Ft%2獼wΉ ׅ; LT?n⩈j!l|m9^*ymm)ID9;9Yu}q9dusAu]I_,!JKB,1"1hʣɗ\jڭ3E+&5)*v%)Op~ȹM[ +Z: J@gf=R2i_*WFωq93>mӷ'˾smC4$hΉe zwM,d8 %˸206B&8inS*BadTA PNVA<ʓbi\?."6+wEcȿHS3Km>_|Opha SĖ;E@SH|_7܀& f[Ql g׎NLo8 0#b #q&΅'-.XL/F\ I*]7 &|@ҭ|#`O E 1|O¨=Fy?US{T*Yw|EJ|WT*_TK AY,Zm⯼ًf7K'(>Z?H+Ymɭ>z鳟,nUl/sԤ6HYNދh7Y{v:w5*U[GKIG7C, 7#t]qIBmoiKt@JQ7ZPRr@Q]yeuU46,L㢘"ucQ8t]Lܱ@_3 g+o 3pvt$75H䨫.0u֗O=۪9D7UY7[A&v!41t.·DU9!Ij=!>xNO/54`7,a97Ut q_$: {.kɍXG?K" Ѕ8'`Px)9=tߪ2[-0d<8 %.S:/_H^]^^ZxhW(%bf'9^2='IvMu0ux5nXq.=w:$.!С{%>Q0('vR(ɳCBɋ^ Ƹ8AK!,[C'v' ʣIa@kԓ'хY?Y_-+!j Qa 28X\Ӛly a!!,\e*}(M߲5r`dY!03_8kE2CcxGOuF-%}n L Z򬥷SCYUu@Q=r7aQFe:nz4u)y4}Tݓ\9T,^NjEӼbR5ΡuݳnuKteJ(yg tN=I(I4ppK3F*)7ovuxP|"YΊBfoK(QH; LNPgSe&SZoPd%u5rtY9UsQo6nE'h HNiF ˄6DzAŮXR`Pͷ,||B9&Q#E# 08P4JIt?~r GUۊIoR *t:\M 9ݠp`V1Eπ6Gx%r]bГ@au?-<'* Tf;k_6lHHZt:Z@C1QQv:~4P;fQ j:ʶEr@8cQfПKnrSXM.C%”%r[Rh3BA6I#aBƧ D) ̕LdKqԚR*Z j1Л11:L'y2X&譚HR _'Z(xE׿LO/ɳzZʤ12<3+*w"4B5>zd@SUVqf)i3qWHW5wJPC ?G4^T<0ceƅ>{CTr5S'B:|`Ɣ)\J'*(XVU,+v íT%W#ȐY4ҋ :}bO"0ƃi%i b'&>$ϝp%WH{z<7o6>Y#f1)}yT*ycڱV)#hݹE>w. f$\̘`Ec$ x(gx9^hl5S|-woZ?H CJ0Y:<!iW6.)g{b@'tD̈́R񼄑B%BMf:YH]PI@:/5/E ]ZR^3/TH6+[d4º#KHց@Z',tl`x?δ퓓jŎ}i~e , E qDs8:+ ,Mn*~tB妿L=y[Kt\KԒ}/ Q]0(W(~Ö!q/1&{)ϴ U iW$#RBVW"aWhALC A?YDd]# O7':T}J2҅ tQaRtCH@28cW٫ G./ U$E(fB&D$$SČD*%; R ūU|J,J)TLFxCbȫJ yk26Pڑ3(#"E]I/#/x"BP5ʠDh>QNpyI&ñeY̘Q+AcFx< ˨Eq3;(=>k&l|:&UB.$:LP#!M]Y~{{~]v ~BJI|;ƻc0;l9 y$Q?b2Svۏ3+uoGN?)'űyk 60`<@L SDPmWlb3`au_ӈsRvߧ`eLE,ؽj%$#*`۴wD5j6<[d^n`Ne'#4#L0q#.HeF4(}s! ͜Ns@Zʏ yzo@M8O7ECn!cdP;FGRHeEw{C=URzqO>|RU(©3e<2SzÖdiמ<}4h?<}Ѩ6>|8rP2i|6&ZL`tHžLpp8CzI)* 4/2/tʹ_LT'=FQ70R~ϳ@^;FՀe( UV`%4]TuVy͢VS~Y*蝔P$kE_q>\_VOOYYɣ//wz{G_oKjmfS&{=?0Y"tЭ)tH`.+?#S8ObSXeendx3ڢ bXljǭ3ǫbrw%G`%AD )%&N 8ڢ͂vEZNKnS&!IVr~Rsw|ϥQjbe3"K"nA Gj&3Q A 1F*:'$詌Gg㰌Yl] cZE0T?<` It(IL>NH`'nCu`6v(ed3gk#<}|ռAU2ˁ`g:~lVTdIZuMj;-UDjxr:iueNh hM9+#6_HHv }$eU7щ ݦ/!^I.5OM  м PGIAb<j}~>}wn,֙g0E9 ^,~R9(,Cui>XEAȽ$,Uu M=7NfRkZ2DrbZ" $^ʵZs0t`<^ճ oZrUE}7vAeWx-Wgn6L(-c N^NE|'!HpS}্K;`ZtLylDJ|`D$3Gy1K((J@Ⴗ*'Yn5٬3'*c N)v.Rd6¡.<JG^ГKNIDIfFU@!`a4CĹU=haSDTl4ǫ y?WXe)`f)_*,O稠`[`[$u݈fTcC@$t$S-5MBzGo" # )uS*-(?W5ntqB!R'X,kRtz&7 l#y%^x2<#E 2O((-ho^Nc՚u@o֧ [fEղB$|/Ry :#(StV?I* 4;}Q/ϖ#!DIBs/ur2krtSO%!da3ר ԽX[}McL1㭴Q11P{4M_gDHۑoURxT.$#q?^1sCX~ L?4ĸ >oI9A41-X9Td$3?{mG l; W-F`e={ѡp19RK$y$jf/ti%3e>!ĐR4ԃVK> N~91IˮdIj*Xn\ TjHjn),3el)3l4=zzv P]urCyC[7s|Dk r)`a%MH}]&@k^R'%Xcn&so _dOa*0qy4f (!̾qBF\vf2.cYzt8+j,0ijE8-s*}d4]t>ިmEiQ'OȨObK9"|;zSpgpidd o!DV)6#r Rg 9@@1{rc y}*4QHPӄ@sDlTr]O2 #}L.ISQl˷ѴQTvR;D [H5j>J S!rh#BW*t;0ҺI+i%e` B+IBH!uU*by= [<9.]?IvD(kl9$Q8ԱʧF0Grtα,hctx "j$HO$U!Q6:d]V~zI΅7&pivz f?pgPlo"j gRy! JOm?/_~Ud@63X8"p7("F5= }q] VWs' O#b'ņKFrBYj E|pEv)\ltgS'mj5H-1ܑRK3ИFƐD`CWhמQpy",:I$N!L 1xQvsnoNN>`!D:)fQ{,Y;} A4Bt^x`0 !V*.}q=I6m=x ?°!Px&P ᳯ f?Xl™#p:U;*u8`t*nEiГȑQ.VsXzwh Tl2cLP.*:0eQz l'QVf'Y"8;=I(ij:v}J%H;pU"R(#Y=y"ߛNU%Vk:/O>m<~h6Ǐ᳟OÈ'$eMAĔQCP(,ڋru!_8qd?J/;&@~qQ}.qVZ{;fq񃪸 ]NXUl}*078+=zx?mMc7~Pg,z~OTyjI7ySnhwxhÚ2Ɖ(ebOzSGBl]ʻ$-u*$HX(RxH^!BhE}:$~n66_ XܽǗƓNmǣUk..5lv}>jfN0)0wHsV8;t9P_=2ElF L#jLCXwY=w8rB MR0l(z}t ZCJL( )zе5xeR~=,G+X#_Khbw219g{1N '%)vުPx]{5O'~k/9Á*wACʲUb`4g$+ Q E~ 4>a}A*Mup͒mO-ʇ6SwHi+zh?X.Jۆ$06(2 4(`v:7#(Zr_C 03Nj13ozfΥ[s2yIP` X]</8E1gNᏖ%8sE; =cu0 M: 08Tq=:oÑ"Af]PJͣ?[<]PQlD SC` _xAV9ĎLi1ntH|,b4ʞHyGR2bH=WDZ)m# n͕xHZudC2% $P\|y1a3^I`:JA\Ǝ:r%|PK֌#[=r.K#modpod-templates-0.1.5/templates/utility/scriptappwrappers/multishell1.cmd}_Ʋw ϧEc;E6$mnkHspinrdk :Ȓ#J;/J<嗀}=݇ݣ;{{ɹY DL`~DE8P~ Ǟ$-XXDhcGC~%,77T;v4~~^k/nT:ϡ6~2GM[n=BƑX'P{T}.biĹ aطؘ&~x&6z"2R)At);bD !v%Q6g3pn0sf*z0 `8tcCUƮ`q 8W)'T@(6O}c?g~lyw"j!,c(n<i*. -p/#2"I EW/On~ӭӣǣoч7ovw{b@wۻwqZ=GPNF~‹@ ·ցam2| )_>D"@73?YB6a|:)r?ci*O8u>>1v.e2ːRL8H! cfDyAaGsxUn,;%tyIaZ"'\ &+WQK7un,TH_HCb9V L` b(F0E3G&H̃ ^k K?0DQoKf(/d:5F r=s* UJ"W&D+ґW ~n)Յ]ΤdBpB#B}&'"I0DS `9p$/`*P.‰B9Da j>*y[@ZH{(^ m*4,v'wSprT=ЧTz>;v`.Zf)|\Ak98xS Ɓ wNhr+i=K5O箞d@Npi=\VfȌtLHSQRQ6%,_ci9۪hl@Yȅy`/Lc f2*?(WBGh:0o `K +pk!wAstARD;h q"*Ey "u{{H"=ҼFEEa0uXA9@@Q:Q KWjILr u`Lza F .$8pهs.T09J4y>wlrPCz&C6i],U !lN +ͣ㽃W[{b'D!s0!2p۹Z$$P$OCjrx0K1PgMh5 6yDrԡF Y,y d(tjq:q4P6(C#aV_V3ղf(.h'?X=5 A$(H5g3a? @ "ѣ 9ag9i x18#ɯMVG[(r[cwEF!=OBʉ>rdٹF3cڟ5dd`x=HZKH*u&U4(xMwIĮ!=#S/P޿JGB0ȫIa@h1rhoD J-ݣJzz xئ@h] =&q<RW8#=Q0viw~ؕx-s?-k[~25e-s?H"-s?XF-s?H8"|E4,`w½d4Ơ mWu@nq*/|4bm 5D5 [A֕6`c4:<&s{cYi;cZD;4C5TUOkvB͝Wo{n"wɆjM _7^/v ^PDv+Շl[O*[Vp һ]W]֨D򐁆-9ag9|N)Au!4 hVZaq;3Eޙ*)JGn@@W" I_4g\1hCX4hSnc7fdvТc])q UlI!;IU9:u؁70j!~ ;h LHGb4BM9<{\5J !w_2MUKJ;tu~XrDţgO4$nw6u<՟$a4MK_h;iǟ~6G)-1@j?KԆ=4rgh3'p&`#cHJF0@#`]`v_g?=f9S1#sQF!vӧ5C|(O3K#i!a0'+bc溟\/~Z'G [DМ"tap}wrB/?o :y[2yD*h KrɌ'G"$y> w zmKBe Q5͖Ǽ, %kHO? KM vL|`Q4hG%h.y^0s'bNeLp=y姧oUIX7?Ow9 Lyu]!*'nj?"E(`a<h/!^tRѺ:JsH|9\DK!XR7E--㧅Zg<ЗGHCmJ [Sdc,/P.OH$&~j*;B:swR]=CRHc>HJqiOXa`[(i-<0:C G3L2* Zēe$8/h+NPX/EZ 9*Z,E0 a vt8I4<> RC0E\{_ E00Y@{lf| ut$U2E+B'!2}"7Y>x5m(Z+X\4O,PP(T 7Q8%5@2]i[ (-oQiC8JOΪ1c9TatHh![({(Dz=}E0$Г.@;bò6w_ [hv-Zj x:;AVtg'R*/-΅DrW?źmUN2P5jSQ*VW:M9g]}f"G3L`9m|ضiaf5>Fx HT1@(q3U__{a4S5T S(|}hR߯?%8;{;llkqYdLy\ͤbÞxyE~sH V~s)ZU M@P -㉿fr']%u:| F x֏`Y>l}|eQDgQh/ԋC]Q<]_EHlVH #K|~yGj`#|}2Wt;Wr8̦- 1}k^6|i&aN3Du* i7t\6 Q6>O>kā1oW.Pn辴B=LsOv6~z&L2cs{g4#wCVET]Kdv 6Ւu+S\K6Q,QauvvThX&^hڿ\#0C8\J`?+]C"tV/n+.2f$u!_zPklҶG W(r@eRhѻ?3, b^)}#ۣ9;=FE>m5ъ^iCm~_5抝 ]s\\i zڪ BY~8jnČ9>w7=!Saia4АKF ?.2g ؕ@uh'A}GpQFgHF%ch8`{0Ё.>ônlY Vsnkt~26e͖ S ,J6EZbeQ$;@C8']=kXX`u-\܂>>>ЧDM>!-=&ƢjdZܟIh*zFC ͝m M;16N R FQ@LҪNy9Y[.QD~!a9Ya<=Ц>HbO)NME$TX:y僞'9].RgO&##Jd|Y݉;DA%0lҧC.O'5_\Lgh 4P=KkaroE{iQ!A㝫| ngiGlGmZoL @AF̆@klt_t4ʂw-2b핽+if^P󥪉X [vYyIuiRuUYZ9 |M$ǫvbc軱9_!s6:|Tn2ˎŪL3-zc(k'];& @$ !$S-/ا_і;[L< :K$;AK| }(0li?uWY^ڻWhd}޺ Aę8P X(RĕW/H>J -] a#߸Z((mgOKICɂ|كk^2^Q;k}]=W6_S+bՆ]3y,u'ӱa%rq~lD< Imx_?dnlH*ʂ'GEE>AY\|Y ԮWV99zPݬ w;t^CVktbH`X~8>F?j\H2K؊))f0!;#dtV u$Rar6p_NC>s/*f"f*BHu5ҸAE)#`1m>3r{Iv2S Wr}tNVL+t/T:\N3 #Y.0Fp=.NM@{[QtgyYuɚ_NF"<:aw>O~8RR?_q= MFlD{s9W@8^=9/ʹܴ(.K7~APYTM&)i)'je>Q.n''U=e=1B uȢOģG䭗gռQՀ.)^1m:,3pG=t}&tǮ:2/j$4VCN)l@э eWfx,͔^L1NFBAF\&]' }Y^Avz*JYnDω)*1VbgҳW@[W&E1485.,*Zx˪=Q i57Δ$cɩaY쎳OCI0D03,l GjWUFIzۈK*5xex`#3LnGT.~:sƾ$ˮ66@ҍDNNeGԴU$SNX. $QFd#sS[sg"uݬmcJp_oP#Z!h;?wgSi":n\4}xHD!OR`j[5&f\+>jAdkVMtg@`TMhRlm6(2_o{~c[j#/g +GkopU^ʑI 8UZGx|Y}\[ZeÐ-(U`Q}Z%/N;4ED05UqY\+%d?jW4"_҉vqS]#]NE`A症HTQ5)Rz6Ig@t[S[SKi/SW%l>}r6ޞCAk?' EMضdPjmjĂk/)9d4J[:W4sZV7ߗQ9cu4}>}RՌR-ok7wOvQE+%q;v3ê\i}Ieet}.ΰ抡*ZBQaKh#7Qh#Q<%Vנ9Ki4Ę?T5@۟-@;4G8MRɋ>ty vWǔ/'`uOST};uyNއ )O}|c|Qk9Lrv\ =uQ铮L#Q\0piV1sfD 898 \ +TѽO[$*]uu&jL~z͍IL5LL-0ʞPÇeуE;ȞK >![(Wd{$p!wN.5^O6i$7SY(nezu7YH_6&@gN%kd)IGB ] o (:ՅB"^ir89(ϟ mŲo('<@1@wlF6On EuK4D/g‘oa"aq92T'1M?bf{u؝rgrI;a8kh4\/3Tx~Aʮ !K7ļczYJ[\pZm>⤳,G7.НaJ$.΁~9MyUcv5F (>R&{%H6W"3Ddɝ#>gQWwMvלŵ藍(_E&Or0%-`vOLKS(U0@b!4geގe$e99Hخ\IS+if^ȥ*^.;(;_M2k8]Yi43[jo{+Qn9qYy£iQ.)g9Xg$+9iNEd }ceu[56{ pGVz>¡fGI]HǠA f̀gf6P#2?Am{DX1B~~+2x -^wGn+7f_=$+/"Է ߶ь2&A\1j7 ZZ΋PZm9)i;~ɠphn!ts@ja]ͭo~xU`TR7(%FU=:yvZ*y(d.do+RU+'t&|1 mes%kFiI0oa<ZSՈ:&#>K0F|-}/AtwK|cXmаCYӫOKRwq~M/W"q:X`A1baнO|D_þ>(hs <$PSlBA, zM eތ(.)I(K<{" (fOIs$c?Ny񐘽_Oz=t~`N:w}RovC>锠INwQawr<9gјYrL6s-e`4%$D^N4%NN^#Ls}/g[`/eLXP 72]O-YSh H@t4D @$ZX(|<Лt)O;ss:ÔYW uN7"D.+#:AV ra0MeP]95ueS?i;U;Lb@06:NiAu3NlYG[J/i>xNfsxo# } KI6^[]_y!5ĮZ?'lVm5tIL^rVumIL_N:oh:I>Flb}zrd.ZuG'rio!iHn6T#|h}:R/z#^J%b[@6Kj~|B]jxMj~_JqKtƉs ϑs"sj BOC#CԥkF K%0T=`6[a$vЦT1e=~]@n3wsw0R^I[ިA_DfwЅOGg&8zH-vl5q`{eԻDԷ \&j<6ʱ0OzF +{ju{Mi2s]?jV{B/xh:Xϓ8h6;r,>iOTnV 9W^&ڽ#SڌEL`A0$eXj4sJu:F_޾|bke'8!t7V6 2;L5*Z/Fԓ^w0 >_oՙzZޫCfO0,1p,er,Szx߇AtxB锷M]us'R1m"c%|{{1Z^B(J(uK ^e~^t{,i} ։پ40ܵ1&("*7^Aظ55â"T16Re/PKE W)a{9#modpod-templates-0.1.5/templates/utility/shellbat_v1.txtWrG}߯qlSd( !j;x4JV *$.[ΥONc'OTѣlB~/?0}ӷOW}tDV¸9z2 Aސb`Ud;7ڝ ʞZǟ`):{ǃU7&Ouꥶ }4|w _%zSi{u ٴVv1{8WraKS#A`D!Ojdڷ +ը<&PXU}k"NkL4KᘛQ25™ZgnX )@U"`%Vi'V0Fb ɰ$~u ֩Gsuz*.+C-R ֱwx/bY8X9b$*ꈜjfeЬɵbKۅv1HU:aI-)!Fb#z>ֹ:\8ȷ) 簇&hBI6!z_ln3tTZ{Wy8v9G&D!olp~OfzĽC+nAWxDոw۠?uL&TաZ1"w^'-f_g.nygČGțӺeHBbf>FP/(pRZ@!"k9wK.4_gbԌ 1#-iy660$`i4 ~Y4MՎjB!>?ATI9WPȴjXN1%"8 Z9RYUƆ^j/[55SVqMHɇr.|#X[t;b 74R$11o aȗ/hk ]wʑS${ >Co;.cA_~{J'#Z& }2-i)i6h!~JZ:͡/+|spR\Pσ٭؆gy޼(U0i&p%%qrX(cdNIצzH*ĵM,AK6'"INɾzu,qƸZZ.x,PKO WN}:#modpod-templates-0.1.5/templates/utility/tclbatheader.txtKIP(IαVrHN3TR T KTKRxtuuIIy !9\PKk Wa[8#modpod-templates-0.1.5/templates/utility/tclbattest.bat 0@Hnꐦi Ĥ4K>-.w|G]6]8*ᰯ4+;lF )2eo*ۺRt'$Pv MDЏ>dT6DkGBc`)PK)V9#modpod-templates-0.1.5/templates/utility/tclbattest2.batQAj0/&PPY =8\)X{%; =,,;ّ NL6JD(16IKkv9.奞3@'A=sYq˾3er6aeZ a2(_kc[2~oAP٣X"Bi~0 crzhh=]TPK\b(*#modpod-templates-0.1.5/templates-0.1.5.tmPK5XV#modpod-templates-0.1.5/templates/layout_refs/project#vendor+punk+project-0.1.fauxlinkPK)XUsj#modpod-templates-0.1.5/templates/modpod/template_modpod-0.0.1/modpod-module-version/modpod-loadscript.tclPKQQ3H׶<=V #modpod-templates-0.1.5/templates/modpod/template_modpod-0.0.1/modpod-module-version/zPKlX'/G #modpod-templates-0.1.5/templates/modpod/template_modpod-0.0.1/test.zipPK(NYW F XfE#modpod-templates-0.1.5/templates/modules/modulename_buildversion.txtPKVX~D#modpod-templates-0.1.5/templates/modules/modulename_description.txtPKXqKC#modpod-templates-0.1.5/templates/modules/template_anyname-0.0.2.tmPKySXWʹ,C ?u#modpod-templates-0.1.5/templates/modules/template_cli-0.0.1.tmPK|`X!JN()B#modpod-templates-0.1.5/templates/modules/template_module-0.0.1.tmPKW\K|! B*#modpod-templates-0.1.5/templates/modules/template_module-0.0.4.tmPK@2WK]N'#modpod-templates-0.1.5/templates/modules/template_moduleexactversion-0.0.1.tmPK\#@m)#modpod-templates-0.1.5/templates/modules/template_test-0.0.1.tmPK Wzށ?7)80#modpod-templates-0.1.5/templates/utility/multishell.ps1PKs2\g rTCJ@#modpod-templates-0.1.5/templates/utility/scriptappwrappers/multishell.cmdPK֌#[=r.Kh#modpod-templates-0.1.5/templates/utility/scriptappwrappers/multishell1.cmdPKE W)a{9#modpod-templates-0.1.5/templates/utility/shellbat_v1.txtPKO WN}:S#modpod-templates-0.1.5/templates/utility/tclbatheader.txtPKk Wa[8#modpod-templates-0.1.5/templates/utility/tclbattest.batPK)V9#modpod-templates-0.1.5/templates/utility/tclbattest2.batPK