From 11dcd27c849f326ce3447ebcb33649aea72b602c Mon Sep 17 00:00:00 2001 From: Rob Fuller Date: Sun, 1 Dec 2013 02:15:13 -0500 Subject: [PATCH] update mdwiki and add avatar --- images/avatar.jpg | Bin 0 -> 33004 bytes index.html | 17 +- {mdwiki-0.5.5 => mdwiki-0.5.8}/GPLv3.txt | 0 {mdwiki-0.5.5 => mdwiki-0.5.8}/LICENSE.txt | 0 {mdwiki-0.5.5 => mdwiki-0.5.8}/README.md | 0 .../mdwiki-debug.html | 532 ++++++++++++------ .../mdwiki-slim.html | 17 +- {mdwiki-0.5.5 => mdwiki-0.5.8}/mdwiki.html | 17 +- 8 files changed, 383 insertions(+), 200 deletions(-) create mode 100644 images/avatar.jpg rename {mdwiki-0.5.5 => mdwiki-0.5.8}/GPLv3.txt (100%) rename {mdwiki-0.5.5 => mdwiki-0.5.8}/LICENSE.txt (100%) rename {mdwiki-0.5.5 => mdwiki-0.5.8}/README.md (100%) rename {mdwiki-0.5.5 => mdwiki-0.5.8}/mdwiki-debug.html (96%) rename {mdwiki-0.5.5 => mdwiki-0.5.8}/mdwiki-slim.html (55%) rename {mdwiki-0.5.5 => mdwiki-0.5.8}/mdwiki.html (89%) diff --git a/images/avatar.jpg b/images/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4d7330e599c4cf8e8bd54da2586890f93ccc7e1b GIT binary patch literal 33004 zcmbTd1y~%-wl+FIkf0&KH9>+yAUF(=AcF*V2F>6;xQ0N2TX2HA3@`)&46X_8?(Xg` zm+Za2@0|VrXFuoOTk|~AJ>AvQRjc0hzH3!iKTJL>0-niA$w&c^kN^Or#}D9P1|SYV zLH<+ze4{*;CumRp6bv*pRJ5lUn3zv7o<7CI#>2+M!o_;}6bBy%7w_3K{AZZh&tE)$ z_Tq8>*`Gf_`g0}96O6|TpJ6@4dOZ67u{<;b@G+1Ukrq*qXaLCgNGSM755E9Ze;SE~ z^7!?4K|)1C$9Rg2@&xnoywx+n=DXKD7u%zi1y)?DTTU@gRMqj1eGI^X;Z1yTx|$LY1&faouFcfaJ4^6>e>LA@<$ zJ#o-c^8grO^x@TQJ7Yymzh1CTxKEv?zSqjT_t*{faFWPJK2c0R2|O<~`?u=itKri` z+&9$j7o3rY?655ROMm{GZP6~18&H+UCW2gc;v3VxJ;nL?lA;A%P2Fb0FEfIq-+{2O z{)+Kz51y4*YIm6u`%7?mXl@roo3TYNp?cOep!}>E7{O(IUNds5ei%c?Uw9AdA+UM(|MpsICDaR zN5uyYR_FP2+To=;SljO1i2RXW!+Br+Xl>P=Nk$#ma@#O|jQc~HY)~Q<33iDmw37~c zo^xY>n`^8NiUyf6({Ty8A%veh-f#t;m_%q65UOsKSTmo?HYx1kJpfo$eSq>d;P1Kn z2iQ3^;;(>jD1_imqajm|mTw0R+7EFaBfqM*I9NtrG2ZKrAAfAs~(!3V)2LdB)SrPfOq-qRuT4 zo9hjtHoI}el$_1}8WgdWpi-5TwL(j+Oly)8;8ou~UU3%d8xWCrq)v?keqpyFyHQ$n zmiJ?{3apV-n4O&w-KUCzJt94&_r@(=0GDjM%@1&OvOo#M66k#IZ>cvG66j3~oSDfY zTOM)C-`cXjA46)Gewl*xo7ZPRmEnq(*JhtxsH5i2XD3!PnN~O|nY#lWXJz(2{j8h1 zFCqP2j$_(nFSQ~$A$N!N2~`r1~!j1e3fwYKNewnSA88W!6j7DbHv(W-sqn+uE)nn(n!j&cIi$IH?s6Inyp%gN#AX2*1{Zi8t zX#0fhd@ryud*a%4GvLO^Ew6LuWQQ8Tr?#~{XQm3QsuiFqM7pv#(tdRv1?IUq+V?qq zGQg4Cn5g_#Hm7sqNAbqqUaTb( zPq{{hNuns>%Rw8Mb%&~pyte}#Wtl*o1%XJIw;oahPSIyG7krCvUl#hTDX$mO$&?+H zqD!}Y9~fV?Cn@$cO#?v{oy#%dg2rDt7Paa_!eRSsuRnU3Hpo&hX@V^2z$B~skph@< zE9I~qyHv5ne;IanASnDm6x``nOQXdV37uPI&#SBV+t-~R040O>mi5^E&XDPyFxTwK z_GQYk!mg_~C#T-|4}c!pdwczEpt^a9y)_RjR3wnK;tqrpcz5pl_F4~b9X4?!zj`-A zMSM>70I0hbH`qx|?d}1h(B{{S4vVDrrNJ2~bZLDfHtG1=0(D(=Sk8!6W3z12pBC(M zvFTQx4*u*H5hD{;%ks8?CY*t}8ni3i;- z)^xzFx$5F7qc(2W5}FE@emnpg``3Ns9xrkcUv-&G)TiQuIO2*vI#UwNYSiH_H@$OW zpHn4%3#8HSW`auvFUqTW0N7;QeabAkkj-;VP?&MS3Zk_5NyJjw-8hxEAU$mv8Wz=< zxfdTn+T|WzVzI-7f!suTIxRKMi6C?#lY6jn)KmKA09Q)&b1r4^r+I=kGf=8LqhH|YP}vQwG89&g02o- zYAp`{3(w2@rO0=OHg-d7gB}}db45IIJHH0!jRV9c3x83~MT9Um@4R^;B+%LZ#xZWA z3%x8s`c+Yk^98G**7Qk8EroH|=>q^2OutQ+l@#o^B(&Ap)--gU_9z*VS1m4*a8^~J zxHxFEPgwcM83ix(#nkM;mXl}_eA|w;|JR5#9eHU@AQe^bqwTHqvwgI_-%B+?L!i2w z>!AZ&hB~=pI;}m@%Uza<824P2I@kNW2YOa>NY>TrYC~Ik;*LL6`c&4x=Y%BXNhfZ^ zf5r;cdfJR4(2OPE64T}Lv#zZ|kk-*I`Fpim0*-3_-bF}(1#`g+w!^4c7sX^-;q2m| zu2@fS^M1*~fK;`VGI&ZKPNf>7@(J7Yj@shjxbp#!Ld<_Q763x4f{Qe@V{!N>w;4SE zyiff^9Ng+miSw8OfW~1y3s_iDP zm-fWD)rC_Xw)3kydfKLZES2g&7z>-c5F|R{`DD*Lz5hn~0I$m_e;fIhChJBfX6*2O z_uw);3kCUZsO%$NC~=H^`Y~B2T+pj|Dx+2(03@u9A|RX~2GP8KVcs$H(fRR(`EA?R zDSRdvA5rrF_yZf!Kd`a(2pPY;T`aT(O1kBapEK%pUsoZEhUMOjRSJ0{ybLC*Awz;4 zs+v$YyH&r*Ix7RUzVTTE z$+Rv~ac0N6bLQ~|sf+p79W5m;QK8S&+EfNF(w*)G6g&2-dW43|y$1M}_?``Zs?iiTs!BY}CKN9*; zare*Km^!<@J1RKML-FD5gSCNT1}lzxwGk7lmM|+_9k0>4 zJbbAvd6loHEg8xZK!aw{01D5W~gVB23 z6qZb{{Y$n%uF~^qDNYQTbJK&daW*6M;x=hHp1szH?Hi!#{OqX}3k`H{;s-GPMiZyI zEt^?-$L-1)^4mW`Um5EK4?3D>vh;cT0R)^;N(J3FM@xf|`aW^H9mv>KK-w(l(GlTb zq_43rtBbXlxH9<^S}za=!J6IRjRpY#`!ZMq`f_>k)#7F0uD^K)EVd|?Co2hgx?1w9 zbNVz(^Lqs!04mo=I(*0KTj$%KIGyG^`=ye9>h33Q&9?1Am$nMeJR8y7v22ca()yf1 zd4d>070Ea(SBf^hBPphHJ1Z7O4O=@lo{^R3zc>$#A!7hakJD2llZ&Ve#j%-c>rt`* zxG>JUVisnmxwF9zMMYenBidLmEaLjI^Y1n(pe;R6U=Z9xklD~{oXh}6PsSB-ogJJU zwJ6~I%FHfCPEl>EAB*>xth3FuG@^0U+d8e*omTYH_TwDWe(no3ND)O?nuKJ|v?X4T zQ6X)~Tx$I=o1@&Gjz`|&QZE-UM!AzqC~~rC0X7p}w5dlud32AVBYBLlWaPNjpDlP9 z3!L^;1lyDY7TtAquEU%dD4E~wMBLRY?3akX-@NaLJbd2;@AO|i%cA)ev!NLT;k#mO)qvcNi`li2>|`3C>=765>|!Q$*CYLh}PP_DyZ zooVfL?a?DIqjEXbJ!R>Rk{?5rAgjN!<1nu9V|rtMBi^#Hg^l$mxP%z2pHVH4_{)As z$KtgeuV>{5FUg~Z=Ui&cjVpj+3PfaA>aP0oC~b7p>{Du&@MM37fDY&%Am=c?)L?y7Dz z16WJuJ{|L#5PWQPomD^_xay^#U z#GrFwA3x$kuiYO+pE;D>;UerjP%3T6e2wk|?qcXx3-|$`gOWxTx)3V}Zxbh9P0ROK z2XNN^;x?er-St3u$1qByjP?M)$Nz`}xw4r(x0uU~ejCWuxVxU>LL+EWuE*&daFtiW zSL+)1+dk8;FoH7FfLs?ZFxSen2SOU7uqO_>a-O+M73}-;>>yD25K&3&I_kbfH_ThT z<|E3<1ybl-h>4l_9w;C%@Co+LRsC(vc+eTzjAb46&{I-qxu%MM|5|;kG}SPdV8q?n zhgz$bHu4mw{eWPIBL?kDKhBxoVmzp;dL!){4c9Z82~=R-I2$xUNKzh*4`l&Z80mX3 z>(swEUhWkt$Xwpsw^2Lh-bz~wE{3Eryt(SOGp_yMCrF+AmXhNiRYvSVz6 z6zlY@c~BUIgnTIyl&R2iAfdznh*``a!&;f%A!Z~eu##2XqO%8j z*rO^tSgx*u;{{zfuLOYZNscio7u(hME|da7H>nKx?8V;1P*tH+^GGF|s-ho#&!Q5@ z>78j4^})S#zI(K^1qX9#J$dD5qeBB97BS-a-uQ80&{EcGhIr(q3x`Zw&$@Q#S|Ka4 zrOWYtq2%mSRVVj7NE^*>zStKugR*E-Nru1B&R>}iEzwM&5z4J?7g%=0OUXNz%ju*A z+)jPBm7(I_N=+`bGiGnWCwOk@)8j7P$-_Q0+onUU{LcMzO3EKNqEI%qQ%8;xwN-1D z4dhjuPuCHunF?&4I%f$adC{HInXF{eZUpaYyl}T+RnauZDXD9vGQc@6_pOd(>pkRb zV?Pw-+!Xe>ChB12#;(-b8}FP(VcdGdC zY3cP&?jH?qpf~VvE8&mgkwl)E)h_J)B`pSgH*?N`Dz=|iEIrHu+g!$6EjMRH3d_g3 z4?XeFJ&1=<|EdYL){&k-uNqLHVUudxPz^Ge*>Ly1U1*wrQL=vMdkV8buMg!|hO&`D zv2MH$IGX;_8<9BqjEg9fTLt=$3x1+Qc}*db^AeJ}vmg2J>eRa2c9#`Bi!2gX2&(ir zY!ev1=S**IGY1H{5TtruTso}D?2?(zeTg2E!^G0M`Smy zs;bY}%v~AJxLIbMsqQ5{s`ewMvOb({!Hi^n#Se-NMd;ZWQD0wb+>SqHD!7civAAuz zT20jccDZKVB_=W?M+0t0MoyadEd}>74*)m#*^t2vTJ{yg-E#f%(aBm{j$7Y}~Kh6hV~5Hd|Z z9~RU}VRVZ;pl%ijl7W;>KhE-xjaILWwsV^dORsz$e?u(r3(Zd&1IN+b)HbcJ&PF6U zu&<^!;0T%snW=d3p>yC<$8$Gt*)E^g>g!ntEfE1Gy8H29Cxjrf?y{UVrPng=8So3% z<1-V~(!TBSi$*p+Po)Fas^9`^0;jBz{H=9rZj(l0V6Ru|8@i~0==XxhC&wl&^&On` zQ5TjW;eKOD9+_7*F*@qMvFy=V9aL3iB0ihV)QXSB92&ClDl>0~<(|=cnnG!4ie&;D z<6!Ibopbt>kQ3{2%>j%QnY^qx(l-IL2zGce2f3x2?O2YHGN z-Dg3(=fE*O4WBUbx?L|;+lE%=z!rv0sf{NNoWJ2#Yxzz#FC#M6R$wUN&Q9eBYkA`V z$JOt@4?Kg}p+FhB3z5oG=f6QSAXS98!7^u}?1_M;S2z0a{RN@QII0A~+h>s~G=UL> zD$?*I9dpK|XQ~pDlN1{ch$`LXm7{3ceF-E;Lag`}&urXiPo0>(< z0Ea1I`NC`9e%4uwi$9?=ZW7ol;r|8@Jp5NaA(=~N^|jwmQ0J9r0eophbrMD$KjoaN zs}zRRLlHYV49Orp-~V<-cT0kmct*fuZS3hqhtSP3v!r3SzW4wjTr8xkO=irq|hFmmXH=L6=_4YG|Za^4u+> zwFbt8y+*w*2U<)fuT^@vpxkB%{j~;=(oc@^pTbHOyxToebL|kvIjh-J9tS%*qX8<* zAI5&4Tr&kk!M(!j8)5|6TKca>re!aD3ggOt+aT1&8usmxN+S69qh$b2RCJy&+u{q7 zguuya^||CQbv(a!Iqdcwv=ln)jk2!o!x-DR`hpoEUY3x!Y3(u9hJk2JV&H**V~R(# z%)aIb+h1&Nz>^SS$C;JMzfU}z`qx2?^6cT|Ccj3ZX}c?+bPy~aFIC}{k6r58#mT2f zPE$Z6x1taKon4sx=j`IsKeCJae`Xi<5)x?4?uyQ@^G0;ZtOP0s9Z_2?v25C1nqu1| zfoj$Xd3bL=f$=E?WfeTwjCXT+gmqkKskp!s`GvMcp6AOku2nu-dvQiq;6m0hHT+H; z%Jn=ivp#90Bjc0^sw)3%oA8>kp>j{0VNxd8X0FqV78Z8{f^cEDmG3sjOF!b8=6=r3 zk?ZWP^_Oc>LwpEtZXx-D<=>aLEZ!{d#}D$pSTx-JlgZWB8Z9Lw_|~$BC4F|uB3IKd zLJsr@9{@irMWcP@S^7ArMRfV^f2{e$`7ZssZRvghaAX`l0GM8cuHJu?vMHuoS=oeW z*#B$m)zK}z^J;ZA?l1G|=dS%7D~>k0Xkn@8{OlHJe?mS2KR*EJa7)UgC68XnNs`0Z zUWllo0(GN6{a}97*m>I+B6!AkoABrZQW|Vo%vK&ZKjwSQEC=foY%N>BO%r zM#SnaZ#z80&p*z6D7U^=Gd5iS5_6c)Y}Ob2G8b-tct%m2ul07#zP693(>xXUBr|WX z#G-yj(Bw!`PGx1J36wal42~9?P}oz#q|8L{k@VV#LhZW8PT3=O-5vl>*odLTlDm}f z%HKUyZDBm*WBm zcod`{@*FPP%E1zTzLV=_KOzYGt-R|Q7o$II%k2mev2}wKc-gj`3S^Y>clM2{?ax`s z>91^33RDw;PLwR=)Y--pqrR-K2bTjtz7&(pSz<&2?h+y~dfhje2}hGeQpFC(LEf+H z;?4;fR(>$)zboEDkNg(DVEuNN_f-9T+-9vC7;(-V-#$b;xn46*hwY>)d0I@J5P1sK z4H*}w7tF)wiO&q&!E9=jx|#dnO1V08EbK{@mN(+ypZa#-WnqN))*gXu`yAx?%(}(( za8V>Z{dv~VZ-ts+F<*JN;c^Xr=N)>WE>a`^)zs=C!yriaQa?LjiIgf5olRDmcQ`0C zN>KcN1B~$S_?gad1uZbBve0<4BHP zQ?<%O2dtHrey(>$uOmAE6|9+jY#v~hT-VX3uJHFG75^k>C1@wu|J_SjWwdT?^MtG$ z%RxFA__|NsirELUS!)!rhqZbAH)J?cf&E`5uVteWJ1VH%y@_=GN;iFCBIOHxP=$%d zz&>5u5|SIlivK@}y%EDlD(PRm4y7NdjSo~((=XUE2_Kn++f}KTMRY~HBXH!Ve#a^Q zqG=CRP^+n}f64ux!|nTY@H|pxoz^2!$kkRWn&$>sJt7K`*aM>^|OpB5WKxxy#rA>-}Qy z@25<&u`zl)c8Xl=5WU@HLuOAb{}lD_kiBl=Zvi+7%^!%w6)hGpI5TvEQos2Vz3cLI zOZ<<~d&2)3y^jQp-to@V9qixTAAYw5TC`byO17E1xcH;59~#&h)|Vk1XcnOB8J|9^ z=oRW6n+E_lyWHk)NFUS=h~3xj&{`H65So%C-c6s+L^4cTuxT6LCAgAbmd<}Da6YZ9B(kVN@ndMV29$93(-HR_6|#TiK`TY{R3k`Ve2m}^<^uIJOAhpvjB(ux;2QiWnv+`1kT)MFl5k>eu?S+l5?Do%Vc-6Znrdtm1F1HkEyx z-m{0$us!jI+p$m%!%DTS^CE&5NBWeVt9yIXO3lh3VJrN*SDs^1D*B%n7HK0x1Z55x-aR zS9Cl)K^EnnN)IC9>>>Yj2+sXWt}!0~T$M4Ui|tf+DlJW{took*f@mJj&P{jWvi*`@ z=QS~I53q?k@9VU{f%od~kE3UXzHc2X*ji67_y=)^w`x=CWx&UHRg7c459EDfe(9RS z{WSF%Rgi``o3uL%&%l=VFTEY>oxBh-pf}{CqR;ck7E3{JRG9hRI4N`R(Ydcpg9(4N zT<+(xp6*wtN&A|UYUvTpt zo+Iew$mwWT)7P5;eQoKE!iR+_xypGIk@S@OR;Bvzl~;@$bT6+U5yLbqqZUlJ6Oq>L zE%q0t_T1Jj>~f5hX5_r?o*boCT-<*M=8>dtm^>u3J?8{Q8u5C1(N>?hU;YD7OSwg7 z7kn8(p@D+ULA6$vkgV*qa@Bx$FLI%0+|NH9qikFR_jRY<+FFHA<>Wgq4cCI4kG7W)4}jMGl4L#mxhfAhEPG%~m%FlNOvU*5)(i@m9lFv#VPaQ{Kqa~_ z7}LF;G5EMeLo;ZDr9H28Gp2?JPaejX21asEScUa=ZJ&FR@%O)t7?ztgD-~Z5;?#*f zE}CDjhw5cH!QY~$%Sx)@`n0R5_fsyV4gUNU=?HgS0l_CrSI0cJ;2(YgH$r>2rZpfW zhBrN%F8{^PX>(VGCTVDqk9gDg>uILJI#D^#Ex~0+E$`!mpgTjB*Y4hgY=fN=aYiI+;CKZi!8pvxa(d(9sJKpQ0U z(g>iDIzmLnMzOjADxzJ{@BmQMn<1y{Ha;QX=5jD=OXQ=*oVP)>0d@zZt;oEL#w_^G ztw@>D0eE*A5?}G&%;U$cqmA)QOKa7lg&>JZ{EDItU#KIEIhROYcxz@9LWJW)N))|lO@irdhKo&! zvyfqa*?w+e1!v_Ha){hluHoC)PiaK5H15ZD^7naY^^`Ytu>PK)cZG*M048~;yF?EN zb0)p6?Ef)G&u&iY_?ap$QdeYbWN1jlG9jR>vA8JLscBSGVCeS=zjQm&_WNsM?55)~ zfv{p3gXsJAws`8Jx||(5B3dA~g3rsYHVs2&JFU&0PsN$h5mm1nN=aI_;ii!L*9iu* z7g?w0#y}1NFD~Vwk&)3O;wpR@iVs#vcLsJAPml(`Fz;Pix#`|N2Wy|N*xr^;>2t@4pqXj)mey=y+>>UE&zoGTfDq zuMcX|R71&YrpsqEQBBG>ic8gFot=((wJcvn*J^S}&ku`FuYVKwZF%ynVZ0H;DHTWD z)COl z9eHH=O&MNrvbubrJ$K$>o5BTGi)Us{U0g^@J~if^EZPuf=P zS1nS}wd##7s+IK}K;(F@ED!Jn=MieBsNx#KStt#R%E)ZH9_te8>!;$IfU%p9JjuwX$2 zGxxofOLPFj60d#eo5mI+p+xz1ylF+J329F)g5ss+et@^NLszdB_OfU0$=Pl^YdrIF zxpQYe=1Lw z4)b%)oK?4TvJE}^WpMQK?66p@LQ1b@j!|3S&1i9;4%v#Bk+Y9`1{NDyx{rq;%g>)1%tgu|y;u|iK)@TuD}Ck+)`Bm^*3l;irc+?TqbWc7@ik zgb)!@#?7s*ZMV=FjGTzqJbj-^5fy%b&3AE-#?m2|J58}`=FX&Zeh508(6{MOGY3AV zSYRRq5@6V{FFsBI*6`lM;gjZs```Ze(f@c5Yv6SL#f_I{BKLg7#mTgwmQP(tElG&y zJif|^9Fi!o_N}2GhoX%x%$X|A5FI&5>zUW&r61gh0W(QeTAeFTP>T4+>hrM;^=4yd zcoUk!FD=u-xpPIR%Yi#%RsqDRZ#*9UvlrBRG3i9MA zb6Oc(%E&hwdnS(opo}Wtd)-~NVO})Bs7V(=TwS3Dz;v1XB%Y(kq7x})_wH8dREhYm z!)%lLu3sft*TD#RXwF%4c)y9?mAC`c{K+zAfVAf~k^Dd2tLMzzxOFWziyM;b+Z^VM z+33QzT<9DN?>Xp@{&i(Ub&GWTK3L7E()TRwv za|#d6W?<<#ZqN~_EQ%&*4_kvPRX?P^_CF3a!(-+J3q8ZO#+h=-@#wATkzKRo`o8&AmfE zHK`2tv8pIoYSWT(hdXBf1~J-`^iT+6{z|fnQemstXJ2)Qp{qm~3W%GF|U-S>o64ALQYWkWtc2@&#Vy*b$=2>C3fj+Br zrN2k5C9-_n^r{<3-FMVCipx?B2BJUr)bKg@<~nt|x-EZ96LhB55t!lwe-dXYGAqaJ)7NBr%PIzgA^a7(J#RM{z^pj`rbe1v(tGbz~jjCSzhPkMv zEz_j+`v72>%icks)%#)p z05A&?TOs%G3`tt#3N=U`{BXJB915*Q%$9(&4ytC(;%m-F{FmQ5XyeU*000Fe;wahc5=+R_1g(1_-ZWSS6-4%TiUFwjln-8g~_i z*G)|oFjVSWSkh!TfOOs>5}QtK&+sNMUUym$vtfK1%se0Rot8>xy_&-Br|t$NW?QP3 zW8pp=C{q->n!e(q^|Ng)yM$LZO2U~`Ny%+`!Z0XEOhN()|Jf4>ZR;lzD#$d9lNdqC zNcb-dX=tpUND@p5zVtu^>^CSN3jtpA4nDp#qk@%|7eKpit|-)b-rpfr$U7pjpCBtS zyyBEs^@DT(Vc(;LtJqpd?mrG&-t9gn!K*afC5}7zek^cY)9-k_ngVAR8O3`~i6%n8 zD03%`hrhL*g+_qX>PWzj7+VcZAbjqS@p+1j=2gZ2W{5wQ@}6atpTp86DuFuY<~i12 z`@N@da9DhLQ^cw_1J~d>h^vAH8mK9%v_CFMOoyC-`Y;n6bshX|>{P;yuB;LV$cwX80GDx}LIwT7zw? zp6sAnM#c9F(khMm^SRiuT`HcH>SXa*5!(DM0`Ix1{T#9skjX)e3QC#L-x)EE{gK~% zXG+Q7l?V#5`A=Z@3oQhb7}d|cFypszB<)5{9mdCd2gmtdWt_37Bi<*T$!}rot87UO zZcqvp`z$|?w+vT)$Nfx1dKuwMJIRGoztV}m$kGAh{{k=Y`Z1GFFnEU4N8*C~v$n|1 zid0giJ2^SW8}xC*xx;URt3gti9+q8h*L*7>2!1_pD}GY!s@ym8L(e*@yeXc6J8Fco zyF5;3dP7f%oN`?2m8Uya(yfta3D5h0M!u@si;bCQCLLTk4RWUELmQ3A74_vuB23vY zWnLur&CtSj(CH%a2g3^6KaYLs`=U(ejE^6otwVWeR$IbRiyU$$VLPo|V!Tgrkau{t zxeXA)e`FlB|2;de@5@{b3>M_sg|UuH%PRxhG5?hZiHL z{NLccT&?#qBe>sl+W0!L!y%`?T6Usy7+O|;>pa@%9+8(xHJF}$q_Pt} z4`1CtuMhfpl7`jcyD2`~))FSv8R!@-LwCjiTlGjuyKD_W4xvhm!hZ77Nb*@s(0~byc)#WqdY;vyCRbo- zlJuzi_}ZE$qy~c(cvgoTJQC+SV65M&lo7tUMohp!LYm?cXF{cV-iX4M{0v-Iv2tRo zvpD%`kfduG=PQ!%**VN#So(QIP6OP-fZj_F!ueqYS<)q~5hQ)@ZOj}<)#DzU5;~$H zc`#ASGj=2gD{h<>no)Z{pF<5lE3)U3@ZqNbgg*(p zUen%nb`U)2k zyttG`w^G{pE4li5lX*f$nH?R`2nAYqZQ45wyp^Hfk%2#M9}}gLvlQacfL| z)eS`5Js+k%30bs17F>=W_|z+nXn0=aRiQ%`q#?&@TGPbe@0D`hnmA-YT?9E7Upe7m znDKiv0TZ6t%1==rm1I3YXGra~_?{bHHpnZTW%qfr!NkEkq`ZA=UmjkZm-Y3kUrDh) zpbkmp1!r6|e;vi=3kH_*-3iXNfl*ls5vc#vx}KVvBvYhU~L_6T;yw!rqMhV#BYUe!u*>!&uY^_ za=y$GB7+SLM3+koKVvCHWt?Rr1_rp#GQ8}PAX(${0r zXKXJ1?C^OPe^Wp0HR$KZSVf`NO&$nRnyv{Y^%>^1%u?UO(f7+8Wo^IQ;QrshbGbH% zRBEE1*}hTZBS60l#P+0@Vk>gTpaYj@Ow4|1HuOr4J?-b0p3IfWl~atMQjyh&S$eJ2c9|H15tbg?K@6rT^HArj}jhoG0boWXy#oa(a8(@6VN`Dbi^ z`rr}m>tgbmtb=ll+$1ZnfkZBT*!PpGO!7K*Wj*MWY))}~r1-{kJXvzrCUiQ50^f$m z(1D=p(L8?tGS9PlKN>cH7n`sT{xw~a1P%LT$9m-0&pl0kn0Su9@@i(M*y&?Y)U2KX~pD zmx9@1(9EW*Uzx&))5xeIpKVU3Vy@owjkBa2Aep@&=CusoWs^!2CB3Rs?2JwSnxXJ; z-`RZbGGubcyFYolB)%U;LdrqU^Y#rolWVSwWoC__I4Yf?&~{{@-pqJxcDcl~Yh`JH z{Z-4wXl;y40QUe38JUOQ`Wee$gr?)uj~YE%a~#~P&gy2GY4tG3$8tyc-t$E&7`$ef z=fu6BIj$|k%9H6la_Gf)=aeOlBf1x%3#mM9cO6+nG|ZDiF~5s43A$exo)oWW`0Hfu zpydJ?ZkJ?>NOee-!U;Hy%!(6l96jR=1|iovYr0xOuCTOIN@Xcuwe(j@FZ$| zriS3BVr2=Vc!d~&X6CmF654MJDVbJwj@Sz;QL+p2PmBRmdTEWzrz~BDxR?LiRwv^cZfs4#1n=Darr^Bs>BXn!hagMP}#&Dn&zzS<4qZpKE>r&}5j!okz=lkeDa;FALT?t?6Zf zg$2tt9Q7E#>%vdtH#?KW^g)%8!-bePae7|iPW?#5B4b}#oEna$m#>UDpgYmk#gU%W zm;~(i?*w+fO1$5mulOH1TufI@LW{ysnQ{~#!^+T=DeROn2m^Z|Cz&tVi zovj02p&GlZ3c8BW%FXrob3}g21j&A0e2H=)E5ShSPyHPx8YtcgR90tL3Jqgh_|Z=l znP$#tId!E;-PQmr4EgF^8H?$tkwl+f@kqWfu^FC`*IoJC5hf)@d4tlcSS!T5Jk)e8 z(kS&CnqQn@ANl=Qwt3y`7xJ*)5z~hTgI8+x<(o7y+B^Ztqxc|t*p4DotV!{DTO;k5 z0!q?S?*uaNWg*A=Nv*2y1WN06xggp`rCu5uoLw3kl1>huZaawbfCzMbQuega=C`JJ=z&VZ7sUi=xgw}>`}E2o#OYl0;8VAeiJNI$ju4R4z_3!u-N2kBuyYWZEBpFGU}F< z?x+oCr9pc`wW;fm!|G6DSTGaET04`h$Q!Zcl5?!BP-w>2Lnqht=lbagC$6*XJaAPXz0>h{p! z>7&j6jFpulqteF6k2OM05AkS1sJm9xI=NSg6gtzWRudX-T_vwO40fPD6ULy$>XVdL z6b5~Bf;h~22o+U3+n#y1b+lyr9rMYIUU%4ZYA?b+~%F-p3iffzmz1T6ELc zQM=_;Q0kf-+|DT7f>LO&@?-wPXF;=k-P3pJgoI<4uWPeqN8i)DN`K53|A!#!G2TLg zD&reMeg6bv;spQHgFy)iG7Kpx&Z8_QbVi249Jly*_g8LP@%&#RRSHVTBTKBUjS2Xs zW3VXu)>rKv_4ZfI_F*-l~HYVTf3o@(xMeyTco&4aa!C{9D){i2<}iQTHM_=Sdk#Xixt=4PO;$b z^ya+heB*xSJ>R|K{<#0Lc6LVg+Iv51%6jHA0VM-fK|&7YwpF2X-*9etimAL8yV)mN zpkE7H1w?6(?pqb}U2Dz}K2Bi(;)@fAJT1ofsVAo&RMwMtYT<%OH(G8ljf2KCDAhVW z0FNq-A>X8$k3WuExWEOi7#Vu)={2De^PPY=^NJ-V?+A9|5QCOyz{6G(5qUkAOZ2a~v2RhUTt0?+0ak*os zU~FQ;=E^U-n^k6dAu{31>v4UFB=ha{TQ&H$$=a*cXBoXMD2#x%ksXo)7uDW>qV&-f zKAwcu3j?3R`J7$UhR*EBqX3U%6$_fPjhd7lk`h~vlNxoBuLvs#{*kW=|DQ33Jc`yM zA^ElUui)o75^pqrOCNRN9N44))^U0O0i=Gmd%@rrz;?7ySmu2)-1vht+Gv7NC9%cbA)GF zYPR69$Wo8#Yvee)phyOjCFFo7F~aM+QEG_D^v6$k;al)QAfEj;_SOYN~nNVrE|dvwjddJl-Xr01YF zs-IV{LP9knb%ra0sA!$b1?U=wiYQd5dg z$*A2RPsOVR7cAE8u%L&mJ~zzP1rIsOZ3Yu(kJ}jh`LovtlxRBa8|EG!927m(u;o67 z!lvDUX_e<7p?wyoYHFA}bIe%0)$_F|!B(a@L4l^(oiZy$F7g)^PJ@fMp{n!rhF}g^ zR1`|}ph`t0FOG)uneo@=#d|X0ALK}6C>W=#Z*Sdsu=Nfbc-U3e+Kh#xy`vi|)#Y=c zsz7a~t}lf_r^)Wl7#&&#Ra5nQtv)83C+gE8U)~9mK1UUP=us71ZtYFGuh(Dyu_wFY z_Ra0EXI@b}&!zzs9NY*GUF+Z58YF-C0-4}G102bvTak;adZ*Ssy5C{MB&mw8jxVII z{Y?1!HNu!&1nn{l6~|o*Tr?`crw^neCLD0Np2L&S@7$_)+lM!*%jmJy@Mkqi~CRKF@>}S{qO=9!f=Q^!R%I zR$Ggw{{x`gVSOj2CI;M>L5LsD*c(rYzH&mz)==v`$uVmpvcn^sPXhx0KSTj#K7MWb z+Isj6Kow%E-wvI^$oc}Hzj^_QxeMd&oX{1fjq=TpLvg0CgF_blsV&b;tJnMeJWKQQ z=~)=WXqM(m=79&&1-EJe0XIzvAD*RlKSK`?F2gklQd4(5=*{629Z^wlJl}l%QslIl zZkjM1|5I`MEMw{HIQ)E7miS_uUn4i7{)?S>g?%+>r<7@zHM+EXP&meEK+sgrVlRc{ zd3?gxsZFf|;fe}P&t6Hp(#XwBd7X@Ve)aLzfh|HxD?!66tpWWhm|S&*!D7`~WpRv` zy^W8l+muQN+1!T5LEKoy679+F4Z0!myOvu~4Pp5cC3{ocbf!6=)q2re$kE1@n|e?`FeYSpooV+u(SUr(&E1IKu4 z!oTpzx|(Ot5c`(2W`^cwxa}Tamt^2?8W|n?}B4g=nDNW1(XmMRv6giz1vPJY`Cj;ST`)>&E=Xgjjxdsy?=oD`%0NsTO|I z{HSk6>(pXh3#Zzo5Q$Vhg`q$r8dcj$iW8>E)AnK@uG?6vTg85UPT09K0Zhhdt3R^Z z?OL7c0hkXJ24;rm|0Z`@ILoAo65l%rI$<@Pbd|5E!rE_T`U40fnqx55A*a1y!hR=d zQQt%RGq<{5=z%|4g~a>G)e;-eMN}NADv;h@3@9lskB0af;XKj9!Y4GGl)AQo+8vFy zAX`$L7u$2TSw%#wFJZQR9$mV2nlcxw68H!3`vQ(F{?yC^LFF*25rr_o_vQim@aPZ+ zJQv~D$LzT*(tJIJO1_T5C=b+Q_jROj$_j)u;S?{PS1M-+#Uq5-jB=Ye+tPTu-tp7s z6RVr*@zABbmKM={Y*drCexK+cheDn(l4b=<;>i)(=y;mQ3iRYQ-jXKYZOyYpNv(0@ zc0a#>v<07_MJ=eiRK>>$@C}aYZ;#;5@6C_l31^7%wlh!aFnV@f$IJ!2!#QmF1cfC*QUoY1vz+7kqu3d?wRlNsCUu>`v9MrjI`v7_ z$umJSIO)iy{9PTqS|~P4-{#d}(1GQkhySk;PJ!r1)4Jz*IM;8#eS9U2I+645K>cs% z{ANQ%_4@C@2o~Ka^blr8DoglT#(D)Tw)|ecTrcA7ymLwy}km6mFw`Hq(V#M z7nQ^8u?)-B=Q?j#8}2!ZpAm5!WFOuVmZ{9>-g5W9VOTe()}}PX>)kA^IF;Xeh?|k= z8t}ZN2$ElMsZS|^9%1`cPG>H zsPL7gHRkxlDt`1*N-tQWK$5lkQ0f5}bU6dx{xFXJ0<6r*c_nw;8yp}DKA3a7q_eq< z>I#YsW4v|lSA~k?RuhWL>L|Y?qRn!Mjn+EW57%3qN?>~}r%g|O%2_2D{cYi4ehKK% zzO-vQJ|$*)X3iG>)Jr!C0d!y8P)ir>$8_1E=8qkIDP)**EeNUA$6AL)L%=TEGk9go zv7aWvZ*0ws8|SR$?{!CXy~)+kU*4)DNsj`}n%bmYt(!QqBUNsTLx#sDN8{uoIh46= zMMd98e2WGu4TP4Ad&US33o0)1cXmFBMH2N|JtMNooeDs+r14^KVPedC%G)>e|9j9;k_jo&jI_MGg; zK_=+mjcO`v1&AQ3udPkm737+93nv4WlO2_9T6FEeHw%Tja89>Qa9O=cL;^`hjL9c|LPxQ~6lBYov8-gN+W9Pr|;#*~{;;iYvD+B#B#om>T{}H)sH1f zH!sN|@-8RtGR@)--_)~*7C7etUOHtXck5xnXO0a?BvwrTGoMm^%WJ|gynW}q!onGK zFjrhn8h?$iH<|IODn!rLJfo>5xpP3U#axs?y&d)GMm5pTus-qVNT4b?J*=*QL}1!! zVyfn&&Ir5b>8;#F0M2va=f6Y}Er@QYz|JbI-y$efBcjDpRjlOUly9S;BPKp6hdC9Q zGSj-tZB>!@_@64bEU>GJa0Y{QJ0s8pi{O`XQFc~=glvW zGsl(>q^&Hi#Ur9@)bl@FXpQcu`6dNPlyBp$eXy<=XDvz>4mO1reNyWlZKVa< z=tKrw7sbq1*A`scZ8g7zBT`m-_Uoo#l`R?qjA1yQn|)1c6!m50ajg@)ZhS%}F6ylL zc}ZEtbL<(o_&|-RPEjTU0{wA+xtniBx1Oo(;gFQZrKeE>yw}?UcP?rLZJ$C1+uFwu zk&eQTW(}VDq8mZyB5yo`FwhbI8jXKc)_SjC0_Q|9eEhMMc-tBz;x774m*6OX4f2a1ic+u*WM4$-I^a0fHsNF7r30(& zmZQtp*X~|UDKivKIafB{hXp*Fl6lJsBgo2Kh6)GweA0Rvm0!I5me0R)EF0}@PF~G| zm3c)WU}l7Udti3h_S4xQJtC zr^q=!A(;yhALr1*QTG9IF0JhEq48KW{KEN~PThu6HB3vk0|6_^&>hc8)lj` zId?oTWFI-II97?H0P+|w4-JjS!AH_6nZ8jmWDZB*3@il*oo~y#S{Q}b?lpIEH zQZy5gzOwMWB8@lvatj?6{DZr>3ulv96u?B-;2WIn;+mDMI!Dd9$ek&!EeLYlR&9K_ z@pUHu#uqK&uFNc6^}x5VT55flHYaiHRwD8XOJ5ZeVWY>C^3Ja%?2%`~*b2Idv5ihV zCruqL=+k1yhritUW3%qK5(a~G&8aCqwG!1$#vam_<#sDYQk-!C3#=e2W*okMWK_aGBS{n} z|5!vmcSuM+M|&cp{F#p~0V{saM2-qaEHGobE}1_EB_kVcTvHnxi#4mTv%=mifK#r} z&TT$D*f=!BSXA{70FTA^%g7&q$cxAsRjJXGu{(3Jz_ehg)xHE2kZ+F*X4p4cyC)0@dJY6V&vT_tSQMU$OjJd`E^hyN$Qt}sZC3Z zIXJl_Um4mPVtPhLGlAwYcC||^S*HgAxS zZ?u5*Ed70pnrn0_yVCFnqP36|#IM*G(08q2rlqZ7;ZG+!C1p{?r7XW~zBVHEDG=gL zt*;oq3-ytEUSedGH?x@ehQ}-jIivu=792nu2qLtywg)MzJNmD;B#iapTFlLgakzjCq;!vL_}Wf znOV5%EGbg?WrYGhxrG<4C&Xq{>EV9~(6@rytM!B=C_z|?nEMGp@KRnYXr5Tw_4_D0%6ObPj(zWoYt8&!Uqv~Q?&VSOu{pQi z5G7#Z9A4ggr-N#L&#yaZgcd$8ge%wno+grt`6#oGTyUbiy?q#oMW;j4sbnn%)FgD2 z{z{1c8+`SgM)3vtH)E^o+?<-}rIeL`%7UEy{#%{GwR3WIGYHT3FnV3e&w|{p=o5vS zwh{<`gq2Wme3YMz3U!uEb14PCHbom9WpT3-A{-XpBy=ENv$5)hHo5c)*Nj8GuZZsL zGrVmDg#l0#Bn!7Lth0D*on5p-)=@<+EH^;v=Q?Jv60Rd*`e3hPcUr*0xP0ul?MV8r z{tr1Y-VmilM8+vOcTc1U|K`ByuJ+D>nhQzZLBM3nx+VG2u8I~Gd>Up&oVhh??mg-0 zfR9}Tt*}|FU(iGQoFCL^t^KAtc2YRGOOr5}zqRv5#Ps`51KTKp(-F^F72f(aWtE@k zTw%RFR>}A-ZsEP1NXCSDa$^2F)%}905Da-zlUE~)X;PdGaPGEK^FvGI=UpA~3k`N# z*H?>IOqT0|aV+k3f8f|+oaJ}QilRsqC}>kv7o@VYcPM*?NULwA=*;-KPVFYSfIq*9 zD?_T)wHC~8AN)-04#hJ>vMqL4EA7T*kzml-;m9NJcPEkZmzOaxyof)n79cF3e_yRbh>$J4E3qOTm?` zp?+3v7xZqe16I1XF)5p8L>J4@R0R)&|#2~I&7+Kn;7mm=v;UpisW+UqwJ}1WP zmv0o{{HW`K)>`2F4z57yT{&ZwNv-d=Bx_|Kh143IZw(QTn_Cy-?Xk?ClT_1}FuBmr zGwB3esO_{{LgZrKBHd8WGUG=$Z=jaN6$LC9KGS|}<2Rp2v_G0>KOhWlgXV_zgFpU+eFiG4Y;p3fmKra`IL%UmJ?^vE)UmBiZPI8Rl@qiBPN#T1^w6gQ z$JM5|m0BzicVKXwmsg|-dJ`(etT$iZ&x!|Z`R`$|QI<4W13R{gy}<&zRAp)J`)GV^ z*A7ur$js>Zt?!T&82FQ zy}RmQkF$|?{^t=CUp)%Fmd~h{b+26Lm_kZ%{YWwJSlZvc;uNOWeV)e={glR(_bb{j zl&DgA$h%M7@h3PZObi*^4tw`8pi=6NojE(lXK3;k=*G?cBe&Dx~`EV}{EJ zfe(jF0(2GHU?7U$TOf0TRHf$geC@@?mX&^`iTqqzRL0*r<#Iyl&LB21K`paomU5N4 z{W$*l^?)Ff^S+JWgXdiJW7ohqJ3ITzQZz%&Csz5cC3}Ra;*E?YS@&6BEH`rSJ)63Z zsQ^rVtfcnJXu>BrrsJGGKqpE?3dfV4s%ti6?&SvICKlFq&nto@i^VwPGo<^y`Sysu(0ksOztGIV3qk~y5o@D$R-6Q75qOhI3UhT74j1>CaOU>ob- zP>35Fqp&(fe*}<^coQnRhOJ96$V7(>_xJj375e>7sL5-y(i<7K3p=zl%V`jNdofyL z%(NrniW$AxB){7_qcb6ywx?*DElQblNZTHG`1=7e^C&C&X%Tt%(3kq})T{2}Zl6nT z`ht`1BC{5O*?wbguiHDX9DU)|e*iRj+XefrYj)4=WnI+*F6(vA8+rTtXi%S)aM!CNIY`i^$O^3H1!7{Y` zFE?tc%^mUHmbvr>YpTM>;XikZ0yHxCqmBKY$dEcRC`3BfAd;2v8-re)gX$w1Y)$>; z;trXQcZ1^_{MP%en#S{HTotr+@@yYqp^TOX_4C?$Ol7pD!Yn*OX0m39zj-2zb>g=9 zy8-AbGJ5!FY+>}9EatfB@hgv3n$gJgJdn?`roW=`*Srs3Kc)^rVPO-Qd6`8&gnI2I zejE4i8?QC5AfW7XjkE<3U(rwZ@_y(`zy5ltzJb?CkGRdTmt_VwwC6bANA5S+u88lz zB5tfY>fMn(UrNYC?KJeq$etxu9di8vNEB#V>;D*^k%fKxi;E0n8=A`b2wNU?TL5m8K{ zmNscv!t&(1Y3OVhLy?VgD#l^WPQ~JM{SBJ{rZrD+euE@e>5{fZHC(-84uryy+}+2` zht3_F;V)e%d#Fko>%GzQEvQkHCQ~B**vB3hOeOd*UeUiVv?}VIh;Y2QG(Lws7QGDj zRaAORAVaFFp+5}#bK=O+<1uOCKPPVZz4LyC>55c<%6q5Q{5qbsZ{QE0N%|3iM1kC4 z9Z9XslJ7_BNGA8m8ICt*m-zF+Aldtc+JQ$|5czYAtn40!- zhR5~2d{=mAqv#aqxD{o@5r-b0Du}$Cr_sn)(lO)#j)dXx3RO_k1?amQ6e~7M%d&h5 z+`pC#D?OxqK-Sn;$#L>~hZyg8e)?o_Gx|W!7yq#Of$2b_{Zx+Hf-jzK*Ke^33i<=+ zXUjWR{{!F|c<4Ttxan)%IhYPQ?SF3OiNCH*vGswh>_O$!(UP{2j_*X; z70Irnf4AE!jQQy=4<6$+jIh56#+C49*tY@qLBe{+&=qt0@xi`PQcu#mcIX|ltAcTP zVM6cBsXS@d?4jn9nJ*n=FF&1N+%F212$}!9@<`VY#3rvcO~2jNmF5a`t|5q-ZC`6Dr=@uB>+Vx;r^d!cT$i9tfmToFxihmC`cTHK zwEG?t_b3l2)a|$q9qKJCoT=x%6_X4QnV={pzM2(Z8t00QK#iohly1{$7LUXM^EB+H=qH~NFX`T{Z9B!#Uk6Qex)a0-Lt^;o3Z7&*16@L z+xj@9NrQ%pMH&2VlX5-Xx-nwLOEV9tvruPwms^x~Xnrh_P1p}riD5tjrQnUa}*s+;&M_BoMxF4=yO8Nxtkdkr}O88|x~bmzX;m43nS1E<$}k@nX-GZ$Qn zuLy%}FhN;5iVS#nUiF|WN}hWCJr?41{f!9IsI}*^+0A8+RuPF8g}M20XpcUj5dtC9$Kp$b6LHHvmt+{x}nRcG4xS80{}0 z9qq>Sh3R!m;w7OrAKf^YEP7hfo~l!ouTH=!VlJi6h1{{13w=BqEvaOA8JTqg%(N%P zUj~k~Js91~m0CTH-l1i!&!hk6vE5eT6B)SWfrKQSMC|XRb!1RX2e?hz2)zyX$VUeu z<9@y2FBrcHV=S|@$j8l6na=uV3@fN?82BET`9?k!$Me}a-I6xJ$&X_1hV%EywsO>L z1^L7=Zt-KKO$FYkshcrv(%vVu4t-G^SB@zn-vlr?*2E^><_S=gpbUiV2cPm&B%;oV zqmP9?|7)p1LFsz>gfI(|MJTpzOrD(UGUZ!ybhKU_r}$L!QPGvB1-u|GC3=ZJ`H-TM z57Ixic@RokIsa>zYrs8n6ZQvSy5mjHgx@DU5!6g^3Gpj6P&aDax&7Q=ybK3kFoyn` zSf2UxX1_X_og(EfT)PF!+O{|`$L$Vb56%8W_4tUP-Xba<-E}qNVufs0B{~afpZaiD zX8@J@e${GsuN_{YmNf1QCt+K@Xg)DxggO-F)baET4+MXYT$=V#O(Q+E%&$6q#d2CM zvv~BL4!gObapqwR4)^Sz$&}WxX6)ga=F7Dn6nE&o$@|zP?dStKhQ^Y zq2$69eWI$03N#cVX|=1ulWWy3!H=@T{6MqS%Srd3lz8P8)&}AzV7(I^cgNN3yje8P zASWU92l)HJ=ZvVP7x_HXnQgjr?D4Y#HOMw5zv9!MBy9)*-1v5hcCTuK^ji-iqr5^< za^isgT4BHY7x@~fO`#PChD;`@-&QX^2{ra8l$Q~)(8Tz}XT&MVBBTi34#KUj%O);J zCWAA_Ch@>87|YHxhZFYs_t=ZQ^7midY&HB~M6e0_(5RpDaKGUe5J<_!>^!mlihh(M zVrm=jG)FPv#T|s~Fh*lO;U|3*zI|;AvTT~QI`=vJ1IV{y+k#ZFf4mMMd^e zkb^u~20f@n;%`O0HATCu&TGwQ6z#9sqs@jU|Dgh%xRn~K!4#FrMNzSa?#crEHefWV zuKA4niL4JjK6VEMf2dzyO)IZ;24R^b_IhGRm!2ZNf(co`OdX%g6-JWXv&?AC9bwsm ztq9@dGD*|cVQQhD7P>>OqIx^@m~NfD*{&&Ts+Q#wswp(lG7ImMI7d|GXusC9Qv(8r z&N3plVJ(t!&XHNd!Ug;F&y8)s3oKJpw#HJZ5@4u50MKXuQGX%RTVvqEw1PB~ZZB5W zp;sVC8vKrqh(;2o|@{c*9jv*cl(9-6e-^%vA)rS)0@z5KYtR~{9f!e25R_U>kca{dRp({ zUejo=D3G?{0nPajz>Hu=Be~_@#+pNCZAN}`o|G6EJ>c>4T)Vzj zNH#(fu2m@@l7N&rfvP^p<#BSi|2veYW~@a5Bp>ea%G`ZJC_|1a5i2(aclesO!G8d* z-!DtXeXlB3zH_KU;^x`r^Cj<=8+@62G%E4xUJ(!-t|Y2{;k9;x;!Gj*FdGxyY8*6*|EvxFP1m*qj=jVV`6@E5)dpk5qD^6ZKM z>bxU1%TL}ZowtEQVRgf_od=tnB95hPzdWc>OP!HSOM4e@wP>;3TRqx5?#IO3pdXWS z2hMe`q^5&|IqB0nknI2g_Wl^|rNnrL8wSP`cV49z%p;qoMZ-F}8#6iK=q*|P*`>$G zVo(&1*Y@m#wK_q?PyGiaOV=x$I2VJ5Wl2%`MqRkK8~c>9m{{DWVVvVXr4Hf09B3v8 z8TIG(xN$;#W`g{e#qXxTR*LhJy=Ea(WAjYJ6rQnoiOk@GKLEK=N=gu_jYX*c&DI8+ z+y^nRbu-A7(}S`E!m9Yx_{k59907L}5fNOpI{W{PTP^BM^GWV``v|MOL@rdl(z?z1 zy$_$@2d`DOb8hD~t_DVqkSF^{9|a>pu3?j`&LP3}-m-*ZfDyf>T-Mgzw*7q9rU;}!QJWo;77X$xmwFn&C` zfU=x>Wzo@(q1iMBO*!tiVq2wUuGP%!ku%xat8mU8IfGlAsqb~N9}FYP(yINUB7wr0 z&G?4JuFrCo^*Dg+BV2f@0`}4d_GA`VIY<@M{~tI+Ta}PBoI;Z5k){&OaX)wH%r2#!&H37-XK=j z`ftNF^USk1kAq{^pOLFwbRnjz@By*~kxConzadQhRczry`RxnBt7DalwOcY@%C@3r z?eo`cN2`T8UFUrFqCRdKe*nnX>;J`G3id!DNo&22h(2W^hYv+r?Y|@%y6ez-gUh4( zd+Yb6pq(8C`~qYbHXMOhpEQn(F^(e2kBwQNvj@c!yzb)q17@iHzAmzLn^DOsM~4fR zFBs-ngeNsX7F!XQ&W`HcGe~ZlNuq46$A$wI3sJ9NSyRWigP9hGgYODvGNolqOxgDa zT#`bOV1!6%1(F=T;~}(f&5=QWYWa;O+sPYXXy{I#$Exr{)hn#Qlgs7YrR$>|c9dXm zHY{{OTau{fn>ufLhns4W;4*dF_X`ud&6&2OC5-Qj z%1hmoo?Hq+hvKB!?=0p&^-6z!{&ef$A94oRN;kI7dzR2(q~Y6L8P>Cd>6j&;4hRj! z$n?g~Ql|fsE=C`#5$wlv>O3H9Bh6les`zRju<=ZWuyB;_?%pgJ!DGU*13cbkrMXfp z0XUzB7-$-xs^3uIxC`Z7bs?Qu=Brz0Ecj>P1T|b!e;y=ZFBcv&H3LS;X;!qFIa`WW zhC`)fT9?oLoLT%Uls%YvEE~Y_Z7|a0dHr+)@Ca~JMRyR;X9u^tPMZ0Q_LbuEgFKUa z+8Uiy@5$EY3|M!|Ug3}dP-&ui0(kj3q9hMBnn8@ciC(bg|J}-@2&F5xfcxxdoC%n6 zkxllj7H@B|{Dy#cY~pKwGc;}dX?i~?_EG)-cp+`a|G>q;-*B;@J2A+NtPJ-JS8u^) zZ6L!1uIMebpN?KKR$X8}+7ccp=RF+hv=bPWsngX(vdmWyO)gsAA%#gMtJS}MV?moX z^pD%Xd?7qak7#~{GPCvep(lG7^OcqJQ9m1FAK z8kBSVwn>d0GnPXG1J^jI!02@e8T4)w*N^(h)Tg!`$5sC4 zb&4hP)-jgrj$68s3$BP8=7I>+e<2h_d%{0RxuH@DRG< zywcQl?*(x3e%o%6I@1T2`EVlk8cT#=(N@f?x zHaN~9#l>qnMW82>S4}*?gqpz5urFNJZmDs-$ABRN+T)Q9S3`?~)m)Z9zmm`#lB?4R z-!V_Zm2!hHbryrUKLEqpMV*hQ;{mRiVlkpu(`?<4q^bi{JO#>?n*VD^*M2K%cj3A| zfk4f({9V~Jt7Ge|(JKwOw1kv$5Zv4pNB%g4RyxpD;`HLOiTOA;^S34rh0FWSjOx;b zXXUXOA~1!Oy}5oFhZ|CrfzMdo9nRYM`1O);RHH~enr;WJ>K_OY|(? zXP_uD6-37mD^hUkJ7t`s5~Z6oW?ZRS4D*#J$#3VUK*j1uE8vTiDB!$F4PZap{fvyrQt=}Xa$iAsZV3v z5QdF!GY(yF)MxQoF?}y|N>wniu&;j`JAf%?aFt~x=u;+TtC0@X;T}$cTQ{t)S*1}5 zD@!`MIK*YW(_@bPc~#GRvuhID(N0?oNm=GgoPq^U+W8iYrRndM9+2c=9@H0sFoGB8 z=dje3!d-u8+{~!+78R@tauD64`cr+g*-F=>xqA@wyEx~9>tk9L+kncnM2c7#ip(p0 zPz`yOf0Y$B)I?4yZheW;X50*mj6L1r?HeB1egfcAwQ8+e+Vd)mYPYd_sfhA@WFkGY z5#Bpz70K)fOHm_E$1Ju^d(ZspC1z98Cr3n`wRI*oxew$b|J*L8!GOx&Ah$BV%=(Du zrFvTp1|+1WzN9rSGYHuE)Hhz1js+MKd{TSx|!5(LUr2B^D3J3cy~`! z7IG^~ASWEujc?MTEY5#j zs*yl4uN$VEZ69-Mr(Zq38mk_9LVdw9%I<+EE&3r%YD}I6pnP)9cVjM6)k}k{IsF6h zd-i4*iLT9I#AiCj=dIL8!}^5kEyn8)sZsU?^m(Ym^$XdR*Di~fcGHXV%ng_=YN})P zOf9d6f&Hwg(ab7RhhGLb4yvcl8Bh8*?KWOSv5-1Jvk~dh+XLhMc#aXm{+0RSGF}}k zVeb68_}aXJABu*@p@n%zk7dzB2CXC0evnGhYzC?3)2NeAEw>nd0QI0+aoZ)@VwJH$ zyKy6&8`!Vp3CnAkY3k~(31|5Yl}#B_G7 z8kYap11ZAqI$DZbUr$h`B7)QafDVkO=vXhG>+khNKrXWbH8p*bRpJLSdn%KlW4m{D zE4C2{_45{`@0^p$zJg6`vF*U1XAbCw=%tPinmFu#0A88pe*kKWej*wX<0{SDxt5=A zD5W2jM#J1y&NmegWacYPm;QDp5bm&ndxb1cxKQjn+q7tt9{&S~uU!Ymp8NgYzfKa} zaCuxisyX^Fu+;k|N>u*8{y^W|8zr<}cBI+$))p#ALUlYhlX5N-tQ>$`uT0pLmHce(D zHqs;*lnUDNo@yp*+Ok&ibZJO4YFD*YYMk`S&dbY>J1b%$){`aIeJ?|Cxy>A#698J3 z;d4^L6~lR6sx6O-qeFz5zG2);Hl~hfw6ZRRUvaqBU+N7+GZ_$lZuwz5J)Plq^N$;} zQFhvT;v-EIXA7IJugfr*N4^zIY8IBb?j*iwwD5WaTZ~it?0E7Aw1TKU#)wvagG0`% zR8P{)p!Jd5q7Mg$@Y9x;ewXTf4diG?JeB4lf0w$&PrcP>!kHm_4{-WF5(m@ zxo$ER`_zdx$wQ#OP)iwyLcgFt;jKh=ygg;u08>2RiB81vOX9Pw5?s3UKr ztN3Qf`m{8__0FmTS;(jBC!$rn_3mMaK9q`b{b$fFV)BT}r&rFN=c;+Ss%nw0hD5&A zXIW<)FLx-4Bzef}CWV#N0#{hL`Yp=Tm3AOo66tp>;M;|RatCrwTTQY@p=vFj97B|# z?#@?#00abgjRH2ZbQLelEe0Czf3$#rDN7A^T4QSw-_`r5{{VEWF~tpd2$uKuaCYX6 z3M*Q7?^*~ONp)vL7$8OoazZ=CY3mbfQ%HUO64iH4#qYIrzk{Tn6Dez=D_Ry^{n)n| z2otIn0#(nFdO^+q049)knw7GQu&3e31L}t;i{2h2z + MDwiki @@ -15,6 +16,10 @@ /* hide the main content while we assemble everything */ .md-hidden-load { display: none; } + .anchor-highlight { + font-size: 0.7em; + margin-left: 0.25em; + } /* for pageContentMenu */ #md-page-menu { position: static; @@ -77,6 +82,7 @@ } #md-all .md-copyright-footer { background-color: !important; + font-size: smaller; } @@ -187,8 +193,8 @@ var hljs=new function(){function l(o){return o.replace(/&/gm,"&").replace(/< - + @@ -199,11 +205,6 @@ var c=a(b);c.css("position","relative"),c.css("margin-top","1em"),a("#md-all").a
-
-
-
-
-
diff --git a/mdwiki-0.5.5/GPLv3.txt b/mdwiki-0.5.8/GPLv3.txt similarity index 100% rename from mdwiki-0.5.5/GPLv3.txt rename to mdwiki-0.5.8/GPLv3.txt diff --git a/mdwiki-0.5.5/LICENSE.txt b/mdwiki-0.5.8/LICENSE.txt similarity index 100% rename from mdwiki-0.5.5/LICENSE.txt rename to mdwiki-0.5.8/LICENSE.txt diff --git a/mdwiki-0.5.5/README.md b/mdwiki-0.5.8/README.md similarity index 100% rename from mdwiki-0.5.5/README.md rename to mdwiki-0.5.8/README.md diff --git a/mdwiki-0.5.5/mdwiki-debug.html b/mdwiki-0.5.8/mdwiki-debug.html similarity index 96% rename from mdwiki-0.5.5/mdwiki-debug.html rename to mdwiki-0.5.8/mdwiki-debug.html index deb9b5d..ce1b8e3 100644 --- a/mdwiki-0.5.5/mdwiki-debug.html +++ b/mdwiki-0.5.8/mdwiki-debug.html @@ -1,13 +1,14 @@ + MDwiki @@ -15,6 +16,10 @@ /* hide the main content while we assemble everything */ .md-hidden-load { display: none; } + .anchor-highlight { + font-size: 0.7em; + margin-left: 0.25em; + } /* for pageContentMenu */ #md-page-menu { position: static; @@ -77,6 +82,7 @@ } #md-all .md-copyright-footer { background-color: !important; + font-size: smaller; } @@ -1329,15 +1335,15 @@ if (typeof exports === 'object') { // default config $.md.config = { title: null, - useSideNav: true, - /* can be: gfm, original */ + useSideMenu: true, lineBreaks: 'gfm', + additionalFooterText: '', + anchorCharacter: '¶' }; $.md.gimmicks = []; $.md.stages = []; - $.md.debug = true; // the location of the main markdown file we display $.md.mainHref = ''; @@ -1425,6 +1431,7 @@ if (typeof exports === 'object') { if(d.state() !== 'resolved') { log.fatal('Timeout reached for done callback in stage: ' + self.name + '. Did you forget a done() call in a .subscribe() ?'); + log.fatal('stage ' + name + ' failed running subscribed function: ' + fn ); } }); @@ -1519,24 +1526,26 @@ if (typeof exports === 'object') { var publicMethods = {}; $.md.publicMethods = $.extend ({}, $.md.publicMethods, publicMethods); - function registerFetchMarkdown() { - var transformMarkdown = function(markdown) { - var options = { - gfm: true, - tables: true, - breaks: true - }; - if ($.md.config.lineBreaks === 'original') - options.breaks = false; - else if ($.md.config.lineBreaks === 'gfm') - options.breaks = true; - - marked.setOptions(options); - - // get sample markdown - var uglyHtml = marked(markdown); - return uglyHtml; + function transformMarkdown (markdown) { + var options = { + gfm: true, + tables: true, + breaks: true }; + if ($.md.config.lineBreaks === 'original') + options.breaks = false; + else if ($.md.config.lineBreaks === 'gfm') + options.breaks = true; + + marked.setOptions(options); + + // get sample markdown + var uglyHtml = marked(markdown); + return uglyHtml; + } + + function registerFetchMarkdown() { + var md = ''; $.md.stage('init').subscribe(function(done) { @@ -1555,6 +1564,7 @@ if (typeof exports === 'object') { }); }); + // find baseUrl $.md.stage('transform').subscribe(function(done) { var len = $.md.mainHref.lastIndexOf('/'); var baseUrl = $.md.mainHref.substring(0, len+1); @@ -1562,33 +1572,97 @@ if (typeof exports === 'object') { done(); }); - $.md.stage('ready').subscribe(function(done) { + $.md.stage('transform').subscribe(function(done) { var uglyHtml = transformMarkdown(md); $('#md-content').html(uglyHtml); md = ''; - done(); + var dfd = $.Deferred(); + loadExternalIncludes(dfd); + dfd.always(function () { + done(); + }); }); } + // load [include](/foo/bar.md) external links + function loadExternalIncludes(parent_dfd) { + + function findExternalIncludes () { + return $('a').filter (function () { + var href = $(this).attr('href'); + var text = $(this).toptext(); + var isMarkdown = $.md.util.hasMarkdownFileExtension(href); + var isInclude = text === 'include'; + var isPreview = text.startsWith('preview:'); + return (isInclude || isPreview) && isMarkdown; + }); + } + + function selectPreviewElements ($jqcol, num_elements) { + function isTextNode(node) { + return node.nodeType === 3; + } + var count = 0; + var elements = []; + $jqcol.each(function (i,e) { + if (count < num_elements) { + elements.push(e); + if (!isTextNode(e)) count++; + } + }); + return $(elements); + } + + var external_links = findExternalIncludes (); + // continue execution when all external resources are fully loaded + var latch = $.md.util.countDownLatch (external_links.length); + latch.always (function () { + parent_dfd.resolve(); + }); + + external_links.each(function (i,e) { + var $el = $(e); + var href = $el.attr('href'); + var text = $el.toptext(); + + $.ajax({ + url: href, + dataType: 'text' + }) + .done(function (data) { + var $html = $(transformMarkdown(data)); + if (text.startsWith('preview:')) { + // only insert the selected number of paragraphs; default 3 + var num_preview_elements = parseInt(text.substring(8), 10) ||3; + var $preview = selectPreviewElements ($html, num_preview_elements); + $preview.last().append(' ...read more ➜'); + $preview.insertBefore($el.parent('p').eq(0)); + $el.remove(); + } else { + $html.insertAfter($el.parents('p')); + $el.remove(); + } + }).always(function () { + latch.countDown(); + }); + }); + } // modify internal links so we load them through our engine function processPageLinks(domElement, baseUrl) { - - function hasMarkdownFileExtension (str) { - var markdownExtensions = [ '.md', '.markdown', '.mdown' ]; - var result = false; - $(markdownExtensions).each(function (i,ext) { - if (str.toLowerCase().endsWith (ext)) { - result = true; - } - }); - return result; - } - var html = $(domElement); if (baseUrl === undefined) { baseUrl = ''; } + // HACK against marked: empty links will have empy href attribute + // we remove the href attribute from the a tag + html.find('a').not('#md-menu a').filter(function () { + var $this = $(this); + var attr = $this.attr('href'); + if (!attr || attr.length === 0) + $this.removeAttr('href'); + }); + html.find('a, img').each(function(i,e) { var link = $(e); // link must be jquery collection @@ -1601,38 +1675,52 @@ if (typeof exports === 'object') { } var href = link.attr(hrefAttribute); + if (href && href.lastIndexOf ('#!') >= 0) + return; + + if (! $.md.util.isRelativeUrl(href)) + return; + + if (isImage && ! $.md.util.isRelativePath(href)) + return; + if (!isImage && $.md.util.isGimmickLink(link)) return; - if ($.md.util.isRelativeUrl(href)) { - var newHref = baseUrl + href; - if (!hasMarkdownFileExtension(newHref)) - return; - if (!isImage) - link.attr(hrefAttribute, '#!' + newHref); + function build_link (url) { + if ($.md.util.hasMarkdownFileExtension (url)) + return '#!' + url; else - link.attr(hrefAttribute, newHref); + return url; } + + var newHref = baseUrl + href; + if (isImage) + link.attr(hrefAttribute, newHref); + else if ($.md.util.isRelativePath (href)) + link.attr(hrefAttribute, build_link(newHref)); + else + link.attr(hrefAttribute, build_link(href)); }); } var navMD = ''; - $.md.NavgiationDfd = $.Deferred(); + $.md.NavigationDfd = $.Deferred(); var ajaxReq = { url: 'navigation.md', dataType: 'text' }; $.ajax(ajaxReq).done(function(data) { navMD = data; - $.md.NavgiationDfd.resolve(); + $.md.NavigationDfd.resolve(); }).fail(function() { - $.md.NavgiationDfd.reject(); + $.md.NavigationDfd.reject(); }); function registerBuildNavigation() { $.md.stage('init').subscribe(function(done) { - $.md.NavgiationDfd.done(function() { + $.md.NavigationDfd.done(function() { done(); }) .fail(function() { @@ -1664,12 +1752,21 @@ if (typeof exports === 'object') { done(); }); + $.md.stage('postgimmick').subscribe(function(done) { + var num_links = $('#md-menu a').length; + var has_header = $('#md-menu .navbar-brand').eq(0).toptext().trim().length > 0; + if (!has_header && num_links <= 1) + $('#md-menu').hide(); + + done(); + }); } $.md.ConfigDfd = $.Deferred(); - $.get('config.json', { dataType: 'text/plain'}).done(function(data) { + $.ajax({url: 'config.json', dataType: 'text'}).done(function(data) { try { - $.md.config = $.extend($.md.config, data); + var data_json = JSON.parse(data); + $.md.config = $.extend($.md.config, data_json); log.info('Found a valid config.json file, using configuration'); } catch(err) { log.error('config.json was not JSON parsable: ' + err); @@ -1707,7 +1804,6 @@ if (typeof exports === 'object') { } function loadContent(href) { - $.md.mainHref = href; registerFetchMarkdown(); @@ -1803,9 +1899,10 @@ if (typeof exports === 'object') { } else { href = window.location.hash.substring(1); } + href = decodeURIComponent(href); // extract possible in-page anchor - var ex_pos = href.indexOf('!'); + var ex_pos = href.indexOf('#'); if (ex_pos !== -1) { $.md.inPageAnchor = href.substring(ex_pos + 1); $.md.mainHref = href.substring(0, ex_pos); @@ -1850,13 +1947,31 @@ if (typeof exports === 'object') { return false; } }, + isRelativePath: function(path) { + if (path === undefined) + return false; + if (path.startsWith('/')) + return false; + return true; + }, isGimmickLink: function(domAnchor) { - if (domAnchor.text().indexOf ('gimmick:') !== -1) { + if (domAnchor.toptext().indexOf ('gimmick:') !== -1) { return true; } else { return false; } }, + hasMarkdownFileExtension: function (str) { + var markdownExtensions = [ '.md', '.markdown', '.mdown' ]; + var result = false; + var value = str.toLowerCase().split('#')[0]; + $(markdownExtensions).each(function (i,ext) { + if (value.toLowerCase().endsWith (ext)) { + result = true; + } + }); + return result; + }, wait: function(time) { return $.Deferred(function(dfd) { setTimeout(dfd.resolve, time); @@ -1876,12 +1991,45 @@ if (typeof exports === 'object') { }; } + $.fn.extend ({ + toptext: function () { + return this.clone().children().remove().end().text(); + } + }); + // adds a :icontains selector to jQuery that is case insensitive $.expr[':'].icontains = $.expr.createPseudo(function(arg) { return function(elem) { - return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0; + return $(elem).toptext().toUpperCase().indexOf(arg.toUpperCase()) >= 0; }; }); + + $.md.util.getInpageAnchorText = function (text) { + var subhash = text.replace(/ /g, '_'); + // TODO remove more unwanted characters like ?/,- etc. + return subhash; + + }; + $.md.util.getInpageAnchorHref = function (text, href) { + href = href || $.md.mainHref; + var subhash = $.md.util.getInpageAnchorText(text); + return '#!' + href + '#' + subhash; + }; + + // a count-down latch as in Java7. + $.md.util.countDownLatch = function (capacity, min) { + min = min || 0; + var dfd = $.Deferred(); + if (capacity <= min) dfd.resolve(); + dfd.capacity = capacity; + dfd.countDown = function () { + dfd.capacity--; + if (dfd.capacity <= min) + dfd.resolve(); + }; + return dfd; + }; + }(jQuery)); (function($) { @@ -2124,7 +2272,7 @@ if (typeof exports === 'object') { } function getGimmickLinkParts($link) { - var link_text = $.trim($link.text()); + var link_text = $.trim($link.toptext()); // returns linkTrigger, options, linkText if (link_text.match(/gimmick:/i) === null) { return null; @@ -2209,33 +2357,27 @@ if (typeof exports === 'object') { } }(jQuery)); - (function($) { var publicMethods = { createBasicSkeleton: function() { setPageTitle(); wrapParagraphText(); + linkImagesToSelf(); groupImages(); removeBreaks(); addInpageAnchors (); $.md.stage('all_ready').subscribe(function(done) { if ($.md.inPageAnchor !== '') { - $.md.scrollToInPageAnchor($.md.inPageAnchor); + $.md.util.wait(500).then(function () { + $.md.scrollToInPageAnchor($.md.inPageAnchor); + }); } done(); }); return; - //processPreviews(); - //markFirstHeading (); - // activate syntax highlighting on
 blocks
-            // via highlight.js
-            /*$('pre code').each(function(i, e) {
-                hljs.highlightBlock(e)
-            }); */
-
         }
     };
     $.md.publicMethods = $.extend ({}, $.md.publicMethods, publicMethods);
@@ -2244,16 +2386,14 @@ if (typeof exports === 'object') {
     // the first h1 element as title if no title is given
     function setPageTitle() {
         var $pageTitle;
-        if ($.md.config.title instanceof String) {
-            // HACK we use .html so we can embed img tags
-            $pageTitle = $('

').html($.md.config.title); - } else { - $pageTitle = $('#md-content h1').eq(0); - } - if ($.trim($pageTitle.text()).length > 0) { + if ($.md.config.title) + $('title').text($.md.config.title); + + $pageTitle = $('#md-content h1').eq(0); + if ($.trim($pageTitle.toptext()).length > 0) { $('#md-title').prepend($pageTitle); - var title = $pageTitle.text(); - document.title = title; + var title = $pageTitle.toptext(); + // document.title = title; } else { $('#md-title').remove(); } @@ -2358,68 +2498,83 @@ if (typeof exports === 'object') { par.addClass('md-image-group'); } - function addInpageAnchors() - { - // adds a page inline anchor to each h1,h2,h3,h4,h5,h6 element - // which can be accessed by the headings text (with spaces) - // and heading text where spaces are replaced by underscores - $('h1,h2,h3,h4,h5,h6').each (function () { - var $heading = $(this); - $heading.addClass('md-inpage-anchor'); - - //var name = $.trim ($heading.text ()); - //var $anchor1 = $('').attr ('name', name).addClass('md-inpage-anchor md-inpage-anchor-space'); - //$heading.wrap ($anchor1); - // replace spaces with underscores and add that anchor, too - //name = name.replace (/ /g, '_'); - //var $anchor2 = $('').attr ('name', name).addClass ('md-inpage-anchor md-inpage-anchor-underscore'); - //$heading.wrap ($anchor2); + // takes a standard tag and adds a hyperlink to the image source + // needed since we scale down images via css and want them to be accessible + // in original format + function linkImagesToSelf () { + function selectNonLinkedImages () { + // only select images that do not have a non-empty parent link + $images = $('img').filter(function(index) { + var $parent_link = $(this).parents('a').eq(0); + if ($parent_link.length === 0) return true; + var attr = $parent_link.attr('href'); + return (attr && attr.length === 0); + }); + return $images; + } + var $images = selectNonLinkedImages (); + return $images.each(function() { + var $this = $(this); + var img_src = $this.attr('src'); + var img_title = $this.attr('title'); + if (img_title === undefined) { + img_title = ''; + } + // wrap the tag in an anchor and copy the title of the image + $this.wrap(' '); }); } - /* - function processPreviews () { - // if we had a preview, we need to process it - $('.md-preview-begin').each (function () { - var $this = $(this); - var $href = $this.attr ('data-href'); - var $elems = $this.nextUntil('.md-preview-end'); - $elems.find('.md-text').last().append($('...Read more').attr ('href', $href)); - //var lastText = $elems.find('.md-text').last(); - var $previewDiv = $('
').addClass('md-preview').append($elems); - // TODO localized versions - $this.replaceWith ($previewDiv); - }); - } */ - /*function markFirstHeading() { - // TODO replace, maybe css selector magic? - // if the page starts with a heading first or second degree, - // mark this heading to be the first one - var firstElem = $('#md-content').find('p, h1, h2').eq(0); - if (firstElem.length === 0) { - return; + + function addInpageAnchors() + { + // adds a pilcrow (paragraph) character to heading with a link for the + // inpage anchor + function addPilcrow ($heading, href) { + var c = $.md.config.anchorCharacter; + var $pilcrow = $('' + c + ''); + $pilcrow.find('a').attr('href', href); + $pilcrow.hide(); + + var mouse_entered = false; + $heading.mouseenter(function () { + mouse_entered = true; + $.md.util.wait(300).then(function () { + if (!mouse_entered) return; + $pilcrow.fadeIn(200); + }); + }); + $heading.mouseleave(function () { + mouse_entered = false; + $pilcrow.fadeOut(200); + }); + $pilcrow.appendTo($heading); } - if (firstElem[0].tagName === 'H1' || firstElem[0].tagName === 'H2') { - $(firstElem).addClass('md-first-heading'); - } - }*/ - $.md.scrollToInPageAnchor = function(anchor) { + // adds a page inline anchor to each h1,h2,h3,h4,h5,h6 element + // which can be accessed by the headings text + $('h1,h2,h3,h4,h5,h6').not('#md-title h1').each (function () { + var $heading = $(this); + $heading.addClass('md-inpage-anchor'); + var text = $heading.clone().children('.anchor-highlight').remove().end().text(); + var href = $.md.util.getInpageAnchorHref(text); + addPilcrow($heading, href); + }); + } + + $.md.scrollToInPageAnchor = function(anchortext) { // we match case insensitive - var spaceAnchor = anchor.toLowerCase(); - var underscoreAnchor = spaceAnchor.replace(/ /g, '_'); var doBreak = false; - - $('*.md-inpage-anchor').each (function () { + $('.md-inpage-anchor').each (function () { if (doBreak) { return; } - var $this = $(this); - var match = $this.text().toLowerCase().replace(/ /g, '_'); - if (spaceAnchor === match || underscoreAnchor === match) { + // don't use the text of any subnode + var text = $this.toptext(); + var match = $.md.util.getInpageAnchorText (text); + if (anchortext === match) { this.scrollIntoView (true); - // TODO actually figure the real height of the navbar, because - // custom themes may have different height - window.scrollBy(0, -50); + var navbar_offset = $('.navbar-collapse').height() + 5; + window.scrollBy(0, -navbar_offset + 5); doBreak = true; } }); @@ -2471,6 +2626,7 @@ if (typeof exports === 'object') { createPageContentMenu(); } addFooter(); + addAdditionalFooterText(); done(); }); $.md.stage('postgimmick').subscribe(function(done) { @@ -2526,7 +2682,7 @@ if (typeof exports === 'object') { // the menu should be the first element in the body $('#md-menu').prependTo ('#md-all'); - var brand_text = $('#md-menu h1').text(); + var brand_text = $('#md-menu h1').toptext(); $('#md-menu h1').remove(); $('a.navbar-brand').text(brand_text); @@ -2610,6 +2766,15 @@ if (typeof exports === 'object') { ul.parent('li').addClass('dropdown'); }); + // submenu headers + $('#md-menu li.dropdown').find('h1, h2, h3').each(function(i,e) { + var $e = $(e); + var text = $e.toptext(); + var header = $('
  • '); var $a = $(''); - $a.attr('href', $heading.text()); + $a.attr('href', $.md.util.getInpageAnchorHref($heading.toptext())); $a.click(function(ev) { ev.preventDefault(); var $this = $(this); - $.md.scrollToInPageAnchor($this.text()); + var anchortext = $.md.util.getInpageAnchorText($this.toptext()); + $.md.scrollToInPageAnchor(anchortext); }); - $a.text($heading.text()); + $a.text($heading.toptext()); $li.append($a); $ul.append($li); }); @@ -2743,8 +2911,6 @@ if (typeof exports === 'object') { // HEADING var jumbo = $('