From a377f744eefefe99a3ff4bbf8b5247ab2b718a2e Mon Sep 17 00:00:00 2001 From: Gitshaoxiang <1026025056@qq.com> Date: Fri, 6 Mar 2020 12:02:10 +0800 Subject: [PATCH] add page PDF download function --- docs/assets/css/main-min.css | 15 +- .../faq/Updater_FW20200114_A2_BTV231_01.webp | Bin 0 -> 56152 bytes .../faq/Updater_FW20200114_A2_BTV231_02.webp | Bin 0 -> 101494 bytes docs/assets/img/faq/ch552/ch552_01.webp | Bin 111830 -> 0 bytes docs/assets/img/faq/ch552/ch552_02.webp | Bin 56412 -> 0 bytes docs/assets/js/docify.js | 9894 ++++++++--------- docs/assets/js/docify.min.js | 443 +- docs/en/core/atom_lite.md | 2 +- docs/en/core/atom_matrix.md | 5 +- docs/en/hat/hat-8servos.md | 2 +- docs/index.html | 534 +- docs/index_source.html | 76 +- docs/zh_CN/core/atom_lite.md | 2 +- docs/zh_CN/core/atom_matrix.md | 2 +- docs/zh_CN/core/basic.md | 31 +- docs/zh_CN/core/face_kit.md | 31 +- docs/zh_CN/core/m5stickt.md | 6 +- 17 files changed, 5585 insertions(+), 5458 deletions(-) create mode 100644 docs/assets/img/faq/Updater_FW20200114_A2_BTV231_01.webp create mode 100644 docs/assets/img/faq/Updater_FW20200114_A2_BTV231_02.webp delete mode 100644 docs/assets/img/faq/ch552/ch552_01.webp delete mode 100644 docs/assets/img/faq/ch552/ch552_02.webp diff --git a/docs/assets/css/main-min.css b/docs/assets/css/main-min.css index a625721d..e64ad8d4 100644 --- a/docs/assets/css/main-min.css +++ b/docs/assets/css/main-min.css @@ -1045,7 +1045,7 @@ mark { } .easyloader-box p { - margin: 0 15px; + margin: 10px 25px; color: white } @@ -1063,8 +1063,15 @@ mark { justify-content: center } + +.easyloader-mask a{ + margin-top:50px; + text-align: center; +} + .video_play { - bottom: -100% + bottom: -100%; + } .easyloader-btn { @@ -1072,8 +1079,8 @@ mark { display: flex; flex-direction: row; justify-content: space-around; - bottom: 6%; - width: 100% + bottom: 7%; + width: 100%; } .easyloader-btn a { diff --git a/docs/assets/img/faq/Updater_FW20200114_A2_BTV231_01.webp b/docs/assets/img/faq/Updater_FW20200114_A2_BTV231_01.webp new file mode 100644 index 0000000000000000000000000000000000000000..7bf0ee041455623650843255a1a36ca7416a0826 GIT binary patch literal 56152 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� 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 TObeJ`Dp=YUFvHl)6(Gd`7iKk; literal 0 HcmV?d00001 diff --git a/docs/assets/img/faq/Updater_FW20200114_A2_BTV231_02.webp b/docs/assets/img/faq/Updater_FW20200114_A2_BTV231_02.webp new file mode 100644 index 0000000000000000000000000000000000000000..e7a4ae3980f1076f0c6998bde9796a1c21e2e06a GIT binary patch literal 101494 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

HnD6`e6-@b$ytG@t-8;x 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 bI#N(T!Wk?YWup&{5m4;daWMb@tRdWs diff --git a/docs/assets/img/faq/ch552/ch552_02.webp b/docs/assets/img/faq/ch552/ch552_02.webp deleted file mode 100644 index dad89db518483f4be924e1b42de76c34d3327e36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56412 zcmWIYbaM;2!@v;k>J$(bU=hK^z`(%5z`)SS!f=v_AuPZ`A?FqYg8>)wTt=-fmQzf2 zh9Vu#N{Wi2{$Cgrm|3=Lud~vbp_g47$PoTH^MG3(&ue9)zk=WLKi;2K|Ms_MWkcPZ z`We5i-!VR8{yO_x`pxXG;dk;cu%BT6TK`QpWnN?a@_DQ4zuBkTaqiEl<^5XmkN?l_ z-}ztVZ^gf?U$;N$pYE^vZ}VUOUmt(x|MmLW-;RGcKl$IpzpMWo|Cayi{=5CxYFz3a zAG4qP-}ztgU;20ZU*ZSnAKtg@Z}D&TALl>pzq$YW|CvAT|N8#@{Hy;j?AO#?`tAPH z|GoX~{p$Af{uljX{nP*B{nzs^_uu<}=6}xr#s5~nnS8T;U!7CE`Tzg_-=BT#_&@aT z`_GGi{y(9=!d~s)>%Y7IZ2$BAz5Vw4Qg*$6pa0tat^QB^qxwI8X8+v(t^fV~x%aQx z9jNcGH~e?-@A5zGzxm(H|NsBZ-`W3G|Iz=v{$2gAzhZlt|4zTN{s#Z2_b=*S?BDr+ z*8k1_od5s-zy8SlyZay2cm8ku@Bi2R|NnpW()&&R{ru1TC;jLB-}fKZ|NsB}FULR6 zKfnL{|Nj1C{dfDL_5c58epmm`{`dL&|Nr-ItluL4w?5F$qdwOD<-hv>|3&WqNpCF= z-hL%H=-<4!_^*DvXZxnBJQcgV;Loex#MH)5b)ejY;?Q!;R-{{m;7kW@oMIMdhu5Yb7}|)lV9ep#t%cwkOd1$9=uk=yqan;k+v)z@t9h?vTUH3i2rS84w-)&NdWAv1^ zS8{w#{W|z~ zZ6BMWBxiATi+lT?8GcB0)O_}I_Mfb_iAv?sc~T6KN;(Q}A7%Pm$cu7U{ho1bir)Sk ze>RCVig-;GRd)WmhS~46%XvM=+PYYmvoDVwYT#OvDZ@QI(75W?O{+C8QXNISk4XRH zzOh%LX!hpxstARDX*@qRhWZ!ozh=JD;iYP^=0RaIy#P?q!?{TePen!q?CdcwsbG!Mry>9+vJ!k#32b#VL=@R_>97$R=I~CUy`CilN z-+1g$wA7vhN@`Z|b>HuZy_3uFd;jn8{h(?2&(g4h)K5mfdzzR3S`?wwbZq*gSN(#^ z*Y`;9yk8{siNnOAe(tp63k&W2*k73MKCJlr|BhI%NbZ{}ETc9jWqw^Ob?8$6s*RVj zxEAE>zje{AH16dZpG8mA)m?i}i|&|nXX*B{p*Vopl!VE=e`jxYP*+FZ_$%R)4Ia?2#$=E>?DRz9#j;^d}D zk2n~Z6#oP)XXURKQ0KSa+`lEdoONPR`~D8$_PIBYx43_(sE)n=f?>zz4O#WOf7L60Kf#r>Mn}x2(Pnmw|0=x1t zJ?-m9qTH9VKjl_@-Qn3-Wue!)|CqMO@l@OA5zdDTn*?JkgdfT6y7YgsY>OK|^Pa6= z#k}`^wADZ0(O~g}{gBqK1Xb_XXBir@XFAWAQ+KeVzWLB;xqjFG`BU_|qN*B98aDAe zo>W;sRhN%JEPry1$%_Jp%{8+hE_ZHVo&DrKum1E9zv*W+4}Ie-Yluz^3ErW?d~t*P zxz-Nh4*z3|m+9vvHEuAK=x*CE;o6h0T(%3?`cAHHR9rkU)FjJX$hU1V+u7PZPFF2X zGx-`Y<*ZXtIv(=VsX9|v^KQvczP4FlTcwz*gWO5$1J zZRfeljg1N3UgA?uSM~-yVx8T%ecrRjmNy!m`~HPS_sDPdcjR|uXPNP(CHIXJ2hY)z zvIi`cOSk`GsuWk8%rPZ%QJ1RE;}El4zK#X@)5;vLzGAvIxu-_Q5VD4y7~*>1_K<#m6! zEc-UO*k{jtX5G4Jd53Vh?`4S{Uc!y6O@Eps?g_Wn?^vF9QRvFIdu*~Ty{c&s9|e?) zE1lfEZ{nPYV-AuGEvRY2N`^rPp1V{xtY2`gtEpe-j>gnl+pS?gRWEUESGybP%enu7 zc%iFS`O`$1w>;l+p4783N&Bbl|NF$c>r&04wA=i5ujyTr5NMF<-6(wexMxth`dh!V z#fKlb1U3A*c!Tlm%<$;HFO#GnwCH|1;F@W1{+jeT?oDi-t}K$j^1If>uRry9;Q=OG z5%Q#8_LtAI*2!sFN%^O)ocK0tV!A`##Jz1xGOT?|yn?^~h;s5$N^-e;eb%ajvhNj+ znr&Iza>R&BJ$I(#Pg!~6hBG+l%Tevf+XMFehnkTCNBr7$~rSi(-d{dPVjO;ZX8mBkRdbs3y{*g}` zOgg5{jDr-45U*G;MDFwba2X{u3%w>K&kmVV7dq)9imSHHHtJPk0!c7Zn^< zHda|SW984i8Goa?>=klMSKduYk<&jGR<`oq7ju)mey2Hc-!*1V-*l;tUsY|Q4gH_?vx44OTkZ*URxw`ddqqJ$a#z(2N3ZLDZTq>-JzV&5hiv?8t15$U@;^Az z{fcfy6e->dT0A|iJM=3jqNKuMesOsI&c81dQoq-3 z5W=vVaZVeXLW|dOu2cJitC$Kj^jI3yg~MO(cz1T5Q|+Gkrf`&c1QBE&AMX~tZV(X5 zcX;@Y|8GMB`#o7!nf-IJzxot&{xv#eo(*sM=KwmzGnou@QOC`12nu36@^mawglBX65-{ACh-DF1uj z88sV6Vc#CN>{YgV3_R}1pIR1m`ONALj>!}L1eMqron7~P=JuFr3>NNvH^t9#zuup6 z^nm$298vu4757RtHRhF`8hHwe^9{@{-Fx++w$^H|m!VL^)h`9NjKgeyJp8inAJc>H zKX!OoI`rFo+4ym$sQUY!=41El&d<|H|0bPn$N;NX5#a$!Li?ZJ%DQ*#_|FHk7k}6O z!fl;q#K`?2eNxtTMd@3?8scFd{EkvA0sS&ENk(1T#yiAA#igqVGVS`ur?)Oj^bY-!WyHD=(T8XdC_6tf&P}pjCDmQxT z*|~0~J{hDWHHC>)zI{{Z{ASOZjohtA7Ad~?P%{0cRzu8f*6!NVf0g{wcvL@G3sq)6 z!dZme2W5Vl%tOYHUwZE3xG$vH99I65OC#dL3BlQ`GF><6&y;v}W>;UsPW5@Wf8I$u zm62zEUf$(aZP>(+a@G39H%$)o&fk`pDtrImHP#!=YjX`h+)TdZUZWyVr~7B3vu^J0 zdnMSi9=r-}J=amQ%1J|axxw+BcfK!w)NK7q+T8QQpGQFo97Q^9r}ZS5^CRb-DwQ&G zu=~G+U%E5$XmWF1(G@*8@iys*JQf}U$;IKU3Gerwe{wM{d4ayb)ds1XhjK6NUf`3e zilZU}1*r7pvj=4C7{krC%nN_|uIdJJQ+u}4b1SA)CWd2Gub+QkUAB`Y-oI3J=Z4Kr z^0$@tUAMZnIUrF-F^+AA1=uW>nPcN`tiM+e!pf<6#HbWSY)tL zJ!_TB-VLaQ4cy1eog0{YHB%n_Kjr+V$W`d!n*}W@HzJZ#CDn9Y+rxIAS--{P?2b=G zoSU`#v%|g`Vi&USK=orQdroTGX#n8XVM2carjOmi| z=OwuOwHK9DiQfLYxodh!`CE}s%K{{~6z{UR*<|^+g)vkvDLe6oOUb4sYt{7TMI~%I zY*M)7me*S~mpI?8zf}BpEWnf2Bsa}jKkwOcB@(xkN}!iCg%}thdcd+^s$T*A1<#i|lK*-4Bmk zlw}d2}#hHY48a6Czzak2h|5;j{Da_NZ^M`?GiQOwpWZlyi$ytC8`pnAHP`+qbS;mqr%| z##A4DB30@dHEY}Jrq=FxqAz^B6eC5xJ$?H>cKQC;qInvr+ixuMWPa!(A9z4B%`!># zfIikn*pvIbma8{gZmu<3YRXn=Klxx~YD|3W56x2R?4T4gMfdPDgS{UveS7%yf`Iht zC$gIlK5@-`)*MneFS^%0c@uvUPq-L2!zClRr6FQJ48LbolxfDqpF0}R@M!s`nL2VA z5?}1P?DH}#r`~+Z7`|ca!7bY|VgerO`DB0T-W_eVRpp;ecgLT1&y;7J{qV5fcFyt| z%vu$a(354l&Q0;W-`3!=|J3^HA1Al5-c=5Ai2cPVS@$7jI{A6Z4)zLhSN%U%29U17dR3Xg@-j;GC{Zs83{JwB7qS{!$e zy1a0vSLMh2D+j&=OtO8kRcc3Y^QXVbvJTgFv`h)pInDG zzM^}aS5Mk4OuV3bpbT5 z8I_x4CH(m1rlGrL=C1{AuD|DgQC`y%uTg9t6UXQFXtr(4p&+CAu4-#Jjw*Zz<@UU{ z)neL@eFs$%O;)O&Rr)jGjr|dmB{TYoOl3dcJ7z`6>z!bT%q`~IH$zQ zPVLx2_7}d!rHB5;)Gb{0e9IC8bJw#!n++HhE0+3k#tWu=u8YW(XX`qntt4;3bZ5rq z+Z#*Vdgk0*81Kksyt4A>(xU9t7nQ-YZk+5@$T-s$B3|D3C?jP38u2U0U0mc)y!2d6 zAbgqWPWJa97Sa#&?w4m-$Szrv!KRjzb63Orh2xX-(@_ZD0XdQ!pqB*`Cao& zRq|{fFT6ab_~sY?=H^b55VIAfNgk6PY~uLnaQ`n$mim^gJu7N`Z=a1{**jM+;K;+c z*S#4xwyETcoO5$3JuuZBR|za`si5VOUTh?|@#@d_r^HK@y=eMQ>eBMxIo2)2t4QX%yIpi+S+TFe2m)DuEhiwkoE5z-+(|Bl-kMwe- zIcp})ls^AUTEJmRwb;96t(zeXE)(JdHy-^a^C3$A#vGmv)3jbOl)Yc}B+J&!XKtdS zqaEufiyJ?MGj?#^b)UKF%GU0g#ea?Omb}``zGKI`UxvSD-+YoL|MrY<^nHmNdoG+# z!`86`)yLv%SHE61Z(8>>o9qcyf*HrKPjHu8H5t_ABar z*4!;SeH^xb_-MJ9~Rb-r;0;>@WYiTCl=2f@AUh$GJI1!9G`%?(M%W7dv}H z#+{P|wv#?v1s5?#e(>dr(B65zWuwGPS@w)Hhj-kTuj&rV9xmTl-kb;<+W-}M@O~`9 z`NiQY^xnOD_n^t30c9uzoATW&ZC%m2PLM(#X$S?XFQJWr;onl}fX0?xp(^T{9x`9_ z=3SW8r|8Kcwr54~Pllz!cl6dC`OJFm!JQkbQavUmuk0^vWnDFE!OySfSMKzj5PSVc zw94Da@Fhv#8!fNQXZj~1ad+O2UhnV%hQrNFi*r>>t&cV3N?Vz(Ec#S-qwe#nTXXCk zW9?)(t`>gYpz(cGJL~S+!V2Ep#;bB-ACg5>chBzs|Mq3@5|4=aAzzpt|F`}p!5Ops zX5_Ca>!uZFKPc(2RI*nKza+Jpdv5;!<^HVqh0fU4|NnZnHT>ujPR%n1`CM)PUHZ9R z)}ozxUhB8g&`p^Nf9AExuKgo?D0*cl@7iPU`qZ5+&g)v-VDcs)bB#rWif`td)tM4^ zjY8M9J%4$W;RA2T;(x7qI|Tn;eIE1wSjsvZ zca3e`cP-DjTjt$KIQ>H|MP$_*g@U7>iuzwqzxkMV3;TgNtgI8{jr&t4?#()unyvBX zVul<4(S4F1w%*(CwQJplwKl3O7A7_E*&V03tiLu*P3%7R?pB|{z4h+tVFp3cQD!oQ>+%HM`}xKU%%v{s%5s)(~ymo%{(4k8}L7ez9%g;gziAos+M9 zG7fc^aNvccZB^jY`~}<6tDH`nemeckI;XNcRG$U|n+MG!-l67tB-{)S|WaD;mt_PE2}P>D{hlinZH=->W#QQWhJIhrBnN7m~r zu78PMJwG{;XNgJPtm6;X%KlR;*|)y#o51fSU++!*74f$!LvF=U4W$F7Rg$x`C;!!- z$~b|~W|zoQrXLRLyu5z>7o0h*<@{H*+V0SG3bE@q$0)zCk_>NKmt+2}Bdcn9Tjepo z4vZy{X_lF9}caY z+;wQh=jgu?T8Af={#Wc0J2>Qg!Y3$93$6Q6A;+a{n;T#r@hEcte!s{PWzIU|ZH7;3az(ei zm~x|f??Ugsx@j(R-q-#3@&0yE?TWp|uY=7mytrn6TVu22jPFL(pRefswl}Z+^lg2k ze|zYPyAA!;vQmEn)Kvsn*g8XtqXI=fTo+J(wWQiZH^W0(BW~OMn3Jw={FO>x>zy~6 zBG`Kmo4rohe$L&wiToj@t**Ny>*INwc0QV5 zJB@csuEqU&Vea&TKk57=YvfwLK}-6J~lqHT^v`rJYU}dQ}4S&+rLUz?z2_=*IIeCa8KP5x59PzmqbkLec@5~#xLKCGp>kP zuDbE)V+#@M3yQq&rswRk(lB0nTqdKh!q54NYG4$@o=2(j13))+MX;)swqeaX)?_w7iNZqV>d$`~P_nbv{?`!q4TPg6#SV=xf_Wd0l zG}-Ua%=ONHO4eWam$2p8ri?v#e{S{m|G#>8^{G3X!yF?X{$RP9rJENK>>Ty$)E>vC zWxM`6Ef=;rHKVrZ^T~6yN+0yw*>66be&K%UtBCEhBPSPSoBA$4v$(&c*86Ru=qrJ_ z*QINgeK~wj^W3we6Bb{;sjwz^L5GWlez($w$Get%yu3^JmUXKBCa#zJn39v6cUtn6 zzT0jS_AzMJ&uh=^K89bssn43VP$BNy5<#EJNf|-vD<$08`W6N3k$iUYZnMBo%ljXq z9oGwQd)Zi2pmOwZz2w1yoEht6=l#2!{G=h1UEc0hfZg_pUA1rX?AW!o`t_U?+ADUGrmf{Il=ed z?PKW0Nx|GPfzHd=qnuTaFFc(U{q^hPzNgAdA4*KRSJczLdA9OTp8Yni-h5jRC8n`1 zXJ+*+)9-m7T>t0tMoHU8uMd2v>=3<3>Si_`J|G=Yj z#+MJdRaJOP?#|2!v?}}}z8^Dp&X9ZMW8)ExVZY|CK3vFL{=Cy#MsEbxxe-W|Q`hGh@`ab}%KrFyQ$o&iehf zb``hG4~OS(boZQ-zjL%HcBMz!?8M|nl~2nj${)YN@byg0OM`4{snY>m@+XDZ6!Ndn zzTvU);+k(IjVESa3{C8Qamp+zP3B9HK;yAH<+nq``2Jtb{I7erep`YuudVN^X=Y8| z)Tc+ZU;c7!_Sp|Vwgh_q34VRc=4$z8gRH3;Je7viA6E*@o|duuv&f8y8P7*v~MeKO^k2ft3kGkFp+u6Y@SawnVnLXeBMW_Ch-Q#PQ(hRfO zFa6_9(YNO_Q%(8KE@RsBKcZvJM1`C=@1FY}xNo1-+bE*@X637&*Xzp^c1_k^H>FbI zPm58h!D+?Zzvt7NHgEeUU%n*lvcPFa)}sL*_8k;3F|>4-79#`>Y!+1 z{e?NgA|=H_@_ymX^>faDyu&zgiHOFwWvtKb_sx>D;P`Ejcc}1#oFsch^(_0HC%i5C z+Ai(SoL2VY&S70YDULIo^1nYGEZlhLWq*!IK~voch5v`Y6s*LFM&oHGw6kv;MaI1>HvQSRJmwh(NhnA~)mOJc}x^zYeFpjlX=}8J(#tb@S}wQp-t< zEz)M+-n(>Y)>`dK4!I;b)1CW#TtrJ=A`^?|`tC2ybJA6wwNxMYcQA6#l!MEcZkL_( z#>M7XnScuq? zb=oP{g{3}~uIE;)lCd{G_Eqghb;oj6w>1-DdUNzp?dAMbQ8pDy{M zaNjKMXw@zup__YJ)qe(gD+U*5!WUMdlY-De=aGSeK}m^Wx|_mM)QAZyA~}| zIWc>#Mt@@5`-37G@AG_Z9^1K0F@1bw{X2t=(;U3nHF_?w_P#$kXWs?Bb|ZFUm7V9# z$Qm~OVg5Jg%<^>4nR9rL8W#tMESrC*?EaxwzeU%%zYXi^-LJJ6Uwz z3EuXfe*K~Qmt*oJt9A0MSIiPTH1oWBPWhZeDFt&y^JbKI`R9LS%lv&l`e^i*#Y`Gk z4n{9DSe5W1y6d&}6m`be?e6Oyy8W-~dUA5jr44?2T7@H4Z;trB!p+Q3bfSpUKjFCo zV#UYTE}zN5nD%hxhElB*S(jx2|7t}p2yng6KikZh2F7v;Wr|&(@?_d1z ztK;Flcc<1ZPLpI|UZ*%KS#7e0?7h>6*fghz`oCp!nSDJVGDdZi1?TxYd+hdYV~`Q$ z{%cmk|Kr5WWR~^_lPQLsjUI=NSt#f_DJ;0LvP)-?fQa?`MQzvi*{>7mOxI+~TirBe z{m#SFPlkCP(^FDkmpsu=^;h177uQeQ_s@9lbnZf4?swPXnNJz+ZR9wk@cXJ~lkSn3 zC2kMHBd>M+VLLDWk~d|Vw}wT;|1a#))y=jxZ9juE9bQbI7cI4O!qzMe4QVNdHCs=a z$Gh!zNZG>uqv86hoe`zmTq=|1&%cu#cdemzSw>g4z50RHovT;gOq;UuIY!c(O{pX^+^Q;A#4?1(6(f>4sRqMH|@#I4y^Z@SDNxJ_~FJY(bkrM@{?OMHn;y&(2!6#U}+t) z=?U}NWv!FDFHI`+RJ-#ezPD$(uB4;~XLrnJr}xH+=l$Nd{SSD}_=x#u)LY$Y#d4ar ztsIW98Z41vJ*#E>^O1bs+^t!z$HfvRmRp;9u2R0eW&hjdKKu(K`W2>SFmwuvSFQ4G zXWzQ?!4~T!jn+I$&v|dFTHdNl?PJziE)wA=x!p1DZb+~qx71EQBfekmU6QM!Wq3Gu z*IifGr}0#xvBp4V!m_K|GIwm4|8ufJanD7k{@E`~9g>!?Y~6S_M}~i6+}b&1Me1ic z7jkg%)$y=*v^umm6kXiZKB4P&;Fd2>RadPEs3`3`So+zub=77GlUxt>1zAxeSzh*^i1T(i+;o_2z> zRoL@GH1o!t@9aN2$>`0m;5>6)jA65Z-U4H`9qO(&f7&Db|TVI zX`MO8W-RcW`y(;s&l|l56HZ1ur~ixl_PQ`_rR?TM6NO66yJW8|nY!NMrf%8U4y$K3 zm(H=8?8W=+#FIU>`rfP71a$gk`?zubpQRoxR`kk@Be`q3)k*(wh3swLg4fhMx#)Me zu5Jh81=)EL2^k4@?E37Z%Sxx^35b81-@P|J^fS+D8})^1^D+afr#3rk{#?m0cN4Gh zZJFk`eIB>0Wiv19KE1c-%zalM^~UBKF_%8+svS=eU!I#=)yrp);wW@zwqWnm`wfmB ztvYHYzpP{@YMQUVXSz4FbIac^J0qS=nzZNbGrl`V z32dt4j~8s#yLNb5!pWB=yp{99FDN-Xf37;bCP{SfqLVS^ZGZQ@JrVY=^xTDxu1jUH zd*&vu{`UKJ(Z45`Ip%VzroK_zKYQbY8RA-;_uhM5Wb?9qYJcuV7fa#+&zIBEbMD(* zVp7&y|K(63lVOxI)225KD zlKO2OC2FFNns@}ivsuQZ<~mPkZsgH*DPM1fNgvwlmvbRWeOJVml&{-XpGfOb+UUFX z+4{#Xul&@U=NvDtbN_6v>qMXOc;Jfzoy6ek0&&s4jVn)8z-&U+h+p<hWbuu_ijEQ@@v_B-gaf@0j~gOLu* z&AnCU)Ce($2j3Yioi+#gXY1p z+O4M3)ui^$?3Mlb?f8@vU&D6Yc(5pOzsI@5S#wzn3PK7Qvh=4uoaa!OaE5=Q=K&t| zT*>=AMZY{dUv!u(s~3!2^E~(wv#HM3z(*>F+#XK5yW%?k_tFAS`+zUMC2wC@`{3^; z^JCu1d6PJ=*4|ul((}iU7wyK1;c38C5F+Ed{iCPdQan$zS z9JgOTH_r{|pHs5q)X_;iC%(wWUW(dnr7)@E)RXwv>$G`yn9b)rmejg*P4q){A-AS7 z0lz~64{lnYu+civ>(gAJbnn&XyGyfT#QkU6ZB^tF5?H9n?HZ?_-zN1(;BM?>dB>Z& zDS=DETUHbc1|2=ce$=kWYK36>Im5w?m5lb+;6$8o}7xP=AD^FPp9V^Z~h_sT0;8c$AWFoCm-K0;a97- zqiyn@*HfC=;!I8FIXLv5@X4R5aLAB<%I=T8*4eJ=rY)1VH#POLy`K`IFA}G*C$P%= zzV(@?TCWJhupK8o%03;wvGh`!pRfMk7`ER%R_~b0xMZ_eMa-}ejMLZ`urO@d0}y=N z5L|HP*Q?uW8#BI!O=4!@|MI)1@$j4k{@ar2n}6R6nmtp6_v(=nCe>Frr)eCG{ny*6 z7~u9uBlbg`u|i7s+`|UTSF&cT{-q~mckWP2LdVBfd!Ow(@FmP}Do=u%$f8bD#Z^9* z`;JK_%(k8Xw$Ds7N_cNkW9PX(5oLjwCz9l&cRdbiX0)01{~FB7KGPzA8CYhJ}Ss7yNzsbdAchUqP34nQyqbE-2OTbj0yb>ng`t7-ZpL% z9@^REe^&M35N%#HafUkg6{dV;ioS#m(`5&&sii%T4hx( z+_`No-%PPX3eoOoL}#sx46*yJcQS7_^D5`Q3>(O_}mhxFTS z9I_LZHb?ynUAdXhy)NQNWxZ`lnaGNTK@3Ymg1%qgB*9c}4xPBD(~a3MS|ZW1t!0{EX4i4aeLsF^YyF$vU%t5YiGVFS~BmrWZUAI z(oQbNlO+R^%#3`Gy=aWvap+mB@rFH}-}l9O{m`3u^-N*?+%0)mKb%3So&Dh*yP3}# z&2|M&fh{xKEN=UVl%BctfF;;Dkze7$;}y2|ax6dhAAGv?!Z|MYTnnC`7iRHKJn22< z$on%H6<1z5xK{+NS#j-r|8560&m+^8gy!y8rfey_@A8jI&8oBOw%00Vb$1+#diR&} z;AMZwgYVPc>^|8Ou`>J3I#!7pQs>t!=9;8g`?>C_zlq?4*met!|3!vJzZI`#IsgCl z!(f4qX%n^ApLUzY@cG{AtYV$Bubu`nZ#t~_p7qu;E7M7@ zZoRHl)(krEq3lJnocJO4AMwx5?c}L`==N*=oQT+@jG~FxlU@j)jJ8%fe=Wi0ac@-H zbi@0(vhjLs3_N|z3v!D;zpnZAB(5)Jy44PcALlP-xw1N~lnmOTm26t1#=?NLD{l17JD>jmBw z+<13MlXz!A;Wqt+D?T3BR#l}xaqogpw{oon-`^=aw?!rQ)%%y)vsW=xSe=x8FoW-K zu4r#kO5Z*q!|r!HCrejJzRho+hpOj%Q6AWPcNUjr<&RNY{SK*pWVqzQ!_hn69 zOFn#Ny~!l>n3KiXnLF;@*d}eW@Tqp~T}I&ydgO)Z2|Yx+)mMPQ>T@w~e{a^3JvI{G5;b{Ed*-fJK9{lUr16$DA(ut3?GF9lV0}xM(>U@=qSl8S|MoZGciK9J2CXR0S?9iJ2b;yb`C*Vcd&QkY&t&ds zX#S9k*cvJMmGgy{XwLR^3kA>bF+MugcyYT1+wrGiJ9XVoPX6E<*&`zz+_BZhT-N*F z5u?P@2iNmD9hNcBi}}FVQMr26msZ~mtFAOIFWNQzV*34*JtxmzOp9ROTHnB$@w`^1 zJILYgiM#S_lt60z@1ZjuL#^*&LGp+ee+i4+PmkOZU;H95pHSSzEjn_ z=ivX!4gZ|u)$26&GoKb)t!!~e_56FkJ}u!s`_fAWr5feyn$Ld7zx8Zeq~GnLEAt7km=Z`<9g65!-I*F$gf zvFR)OU9?2}HwVqInRsqyKj-t4nGY+av$wD$6mi$i`aW;t#0T|8u75aB_MDKN9a`)& zYvNYTjb4j(8{RUo|0*Ua@_704jxv+3ZB_HddtRK*zH)ThmwbjRGQl}LwR^u?ixedl z-DS-FKg&;!wSw2jKz1pI`;ERYZ*ohzQmyA}XEuJd33+Mo-nVVjR^QcCZ!{h=Hpjhs z==0Ij=8`VcO7`_zB{uu;uG!`ko9ZHKb%isu?6cRSTZh7r$<8?a>Ts>Rhc8#CYW|H} zrd_+Vo*(^l>I1W|vX|@5R6VN<$Cb^uRK9sKa{e>e+kLM;H>2v2M9oZzCkfw{6LI&(FNuynSmb8$+`Aif?8K7DD=_)eanG(iOo!yR(y@ZTWLWdi~z} zYS|tB|Br64tWsGYv-rY<$H%TNQDxv~&t0Bym_sPkTYqNm-Wx&_5v6-Zmfxi0M+-{J!wcv}8%{{VmEnn>VENs^5;quZ0#%ELw6jqHubx>AZH>|)P~@F9@l31tle91 z?(2uB>*ow#e%fo}lApCUQOb$)N)|)xV~5li*%MEBY`Kx(H~UrU674UG3XD}A@ZLDL z_rc1q-q&{--52G$a}e^==!xLLyZP0xhG+3Qnt%*`s6!Yn6d(W7lU>Ns3uxaD1wX5K#dO4iWb zc`x6ov>%+G9F;|vZ#a1B-inawZ7(YJAs7u_sEFFX}?(HRY|PG0})>9%JsA7EfKja9AW zFETY=wwt$}|JZ^3f78>Hv)A(+iTN>4YW@LkDV~WYdo;KVU5cMPPE<_^+&9IxBq;R5 z_9tEkVuEC6SlIhLlhxqXNvIK;+4gZHERY-BY!Vp-P4vX6-);oX8Q&#z|){dim> zU)fwY_fqV=oo~Y(ELJJMdTaXo^SgiEGopCb-JbT~@rUhe1Ujd1F}AB+l%J}2E?fMA zv= zG|d#vEj(W2pL}H7BI~Y`$Ml>2oh)H)YW*uBZThy{m*L#DQ&h{uU$9_BXxrXUHHlp%HOB<% ztW4HtOE4*(p4|5GBUf5RK}YBMv?lTYkDp9;uH6-uJ3nIfA+NZ14>I;Q9Ahfqd|JJ)K)47i=;)&*Z0>4isyI$rlq8v5^&Sa|2$ zr&)H3mhmmvarE8;&9hdsP9CaEO%D)!`QKY$)}tDYs;7$;#Gfn|{y(*$b5Y&mKhvJw zENVV;KrdUQylx7ge-UTL!rMjj?G;z0-v9A%EvMM4Exo$Gp7O}|M}EHK?&Ve?d-v(X znVUE6UA;Rb@9evaZ(hp>zPuc9@`PN?=AgCl5y^Jm?uA-~|1QYYCnxSd!okNHV=bxn zxWr+7Ok%O#%o}kozwg^|7(A0H%bIum|E)m9cm3k!+ZHe|-t^LsdNAjk@bm2p7OnDF zne^OQ`4vwYR&L?=5g?j(XLlt(`4J>lc3eerJXeM^Ne2SNnGP@u?^O@Y3};wsG;2 zrrFmrCkL5rk`zvUx2x{csp;>6Bacp=Stj(n)hW#3d{U+6g>~Cr%x%Nf*!urO+vN{4EhnXJcN5Spf452E$j)PyRysk49rQxgs_wM(pQz>* zsVP-dn|{b(Z`gImElJIba*b2EJHkSAyp6*=gchE!D_ee4KH>h;AjYH1N|zST>)G!m zTp-q8nsXva{^*_P5A{V(i**vOFPo^G zd^ILvd%bL3qp_C9CzEAy<_|gQHI)}c$wyt;=astP>7B_fGbhSD*lIt~;^RG8$AXR% zH+NZ_S(fqXXPC{D>lvq9y&ct`YbH(Eba0s+)BOXzOV?+!Ue~I3+4uUtIs5*J%iq{< zx-sF0$gG8qkNT2IE0?C+_Axs1#o+S9Sgo2}-=>-iKG|btwm|l^$A+x)``29b6#u)= z{9wV7w5@tUURg;ecn)qo5FoTEPJW4D-J@%(qc+@=4)!Yz694yRwQTnscaC+J-Wq6@ zE#E$`lwHX(_rs#tWNph^e*7gaq4S>k|x+TT` z@J^}DYB%0jbCME%GgvQO&evyTEg>f8`1-)IS8UEve(jR$|2lnnUYo&uWslK6k8L?O zGTeR?ADO+~ZC=+E^;rr3W*?Yvmq*lTo`UBI_jxOV4X@1iozQA8!~JieOYfYVnCb($ zf#pKW*sEWfz3*s^E;}pFHvh{v=N%}$najm^0kJEbDN!aMK3Vse>>y4x}J-}#*>R&+4@SBzAN6< z@aw{spLLx_xVrg6CH)093H8|R7yLGNX-@3!@~!9M|20j&q2hDvA#ca-*=5VFy-27F zm7aUccHg7B+O1QA_Pki-{@EdAcJs}}x=Z<4b*JtAyZ%iQ`w|tGy}a9;_ccx1$}hG- zwte!;$+KSRXR=CEZ~OQ1rElJ(fR)Q0R!hn^XB#UQP1;R@QE_`BA3M@h@+@ZSHWo?CkEH$hJvf#`3;f*H?scdn;Y- z{%`9uw|_~*6SV{rrunDj7UtH7gnqsJZS!fPWmEnytT|`Ox;x~z+P%Id4?lEf{ZQoI z^DXDWkH*VaKi#?ewn;OpVY>LiaP>pQyX^AkTKszVb+Y56Wt>i5&Hi8hP{eyBB85Hn z%7@7_<=DS;DSwhovfOdQ^0saUzpm=_=HqLY&i+2lVvkPJ-0oI6EP`r4;h7mIc0Z?{P)3xwqQ>F+n3xj|{p=5L)zJ8o_Na&D)0-@&PW zHpSdx)sEUOyk|2H@4_!UVG7Kq!Pyf+P_vo;&PiFb#Ln%nocC?Qf|8@s*V5Mo_Ut}! zW8b+v)e7;bpuBH}m&F*XQ;+R^&oBAHHEVHT`SxAzf%*rQeZ3%ha>e2cT#CP^Z8C1n zx|x>zY0nma+lPt;w|zGFd|P8!zo`B0&(k)hqPLAVa8GEyIrH`Md+{$II=1U=IT0B; zgE4t=uFaxzo))vV-t(RR#p~*(1E!4y$COTV_o#QpofX)zWvf*x*LK&oC7o_N*Q!q4 ze6r!`!~7Kt3=G#=UxzLKYT;qGdh)r&qL=pnvRb>s>EpZO`k`KbU%cr4y6WMya=AU+ z`#8>tWxDoH$mFa^?=-Ra#yWM~l{cZU{ktEAtCg-&-MPtMt32#)+XYRhuDwVh$BFRNZ(!$9KUJz+8$!w%`?5yppa?^J(0^QO&(b2-x(o4vw* zeP{p4{`l1ib>b3>XB=_>Jkv}@8UFpfYr09FiJncJsyXyr1 z%t$-?Zf24qt8vAB=_P55!Z`^`&&40|HMBjwaJnov>-2B81bB1(v`+WwpIv)y*Bs5p z+*=Lvs+R^X|MKp|levo@iW`UCWpMX)xiKw$%AU&%i;X%C%Ivy#Fz%dwTOL!umWdl* z96hvrVFmM)b1S2HS}(~hJjx??vCeq+6}{7K`5kpE?>$$t8KSrJq-D1~(@R;IvefVJ z{NLMIQxGXm3rqo$V}+`2YRW z7JA(Y`zh%#K}FzqZ|<_`uV3h7<`^z{H_6?FqhGt)Z2kSG8nc-6_br$57rr-hjaAgF z$xn~4GBd8Nld|3w(V+Km)vx<5QLAL1&pIx`Q2DxVSt?sz!<}mFmAf)cR##l=zSgfRhbJ%AztmYG?skW3V-#n@bMc4Y0+#NcS<9yTcHfi* zE2R0?g!by%b6*ko7PL3&g7O}QCe2Lq1(%W{uZM|G%&T2)?fC0{@vip{+n*NXwl?=@ zd5a$?^>D9RxId+guSw1{^K>hBXf(_9kj0fwDGz!MM@%QZ!08NBu+N& zP2bD+T9)TFV`5#vVZOdjlrN1-H zxcJrZ#ab*uSK??1QN zAY%72{bKvQ)(xApN{Xk{TC(i4B#=sH6^6wW*5&4vUU}%lop*)h^Iff;Eez~TR*M_+ zU89XIX7=YYi2by_Hv3uDq}}r0{r_^j*VCKdb?V2~1chK87TYG%eIHF!GuNJ*Uz@z! zO6PS$+vf$GNmVV?rt>#$&&%4%sAj2Dq;N^MD$xBW$ANWA-Mk-v;s|%<>NW2|J(n*tnd2PyC#git20=ZJlM48_e_Oq={3qL7ay9oGwMcIZ~PLQqBL=r z-&QG$-?FX>4ffxc5cFftZri5&wjbg}{+P3BY1pams9gRt-~#)psddHvj#uSU(~X&T zzBwGr`g&sIyEnT(&(u&$-+uSN(ctK$2g?uU?6Fyxm(LZ~w7T`Q;?*0+gad+3tT`I# z*wyPh^@G9ec)nEYElO&4m}4U|__T||9;hvLyQy!q&YI~{alO*Se9ybLQ&&v?5!qUP z+WnU1(`C`??moP_#@cedixcal-3=SQ?7kUb=Cv;Km0a-CFQWCG**Yuho_aH06*62O z{qk+&mAh#{X(osN8rHc9XkY$pRGhu>-0I!$LQl+ciE^s+cKo4mJKyrnWr``Ha~pET>Z;>_6MF_3$hOug){xI`L#4} zyZVacv&W_d?c1|wT0v=OY)FprZ{Ab#^W8S+6t^y|ols;Te$?f=$2a?LN^*wB4;@!j zWH8sB5mvb0NlYWpfA+m==hr>vx|S!jCvjQQouwHCH)dW`J(#fU=8`n)h~g|IGi^>;1`5L{e>BjxlTjsg$FRoRx1i4|;f%2jnYN?{?Jj_%x&KmemQP#FYIDFRl2P>AS1)`l2l- zTV56~7Ia^KckiP^@~?ygb^X3@=)5RA zDblxLw#4znPeos8sK45vk3OpGUmwR|l>B>d>t0bY!z>N~2cxnj<$_E*xIb zx%(XJ>Rpq;JL)o-EDfX66oA@fx$13m)2k{iEsOH8u;D%?pUL zn)U42=DX#rakGDB1>HDzl%3HjsbEIqg-vzEM@$+ zO`BO=rim}Ex;g9DyB&!SOJ7bp<#lbc-t$Gy$AU`AJEV zTq*m?4u*F|aT7$9*EF4!ob7$rpGiLdP_3WHg~KleL9?t@H!l8p?s4CituCK;%l*^O z);@5&WjN_?=AV!D#^GLSDbwn9EL!D*br1 zylc(YA347|1m2wbuzZsF4@DVU5gGPlTkk6T?zJmq7ExJerDw`ud+CPC_wMt{W=zcc zyx_u(_vRZym$|21$@ShSJx$Cm{?Ws>qs-l%CH5i5XKd23dT*M3*EpA5S3^OPX^yK|K zdb@uwWuK-rQ9imUisgxUbl&s2?LTE>4gT{t2VLB=)al9VqsPx24zMz6tcWTKyKs2w z(MzBypw&HkftAY6K6kHtn7pyyD>H(5dcoD&kmYvTQnP06cpR2~Z>CKAvJd5^-)7xV z&7M)s_wV|)OU)A*+4T+HPhu@KzWbu|_pIF!>(dP9Up2nTuaeldG;BqwkICC@N753$ zE_Je2DzSR*wsYOlV5W*meLp$Y?^h0w**tB++^n+L%}+(sj;!Wtwvqo7u2voY@NmKV zYlXa3|H9G_axR}}empUyibz;=cQHp1Bq8V!BookxpReqQF{nDwsM#PDEZv}^L7 zNloADetBkoB z*Wvul-`7lJ+tLr1uWC78=%m+Dxptb*LQlu}np;%A%!sMFZzeKZulTF7S8@(56ht`m!*AAZr;UOxc}3G6{a6Vj^6z|anbq@6;4@UCtQx-{^F!3 znx#>@*tzPIPRzdkEKl>-QhDkEr6%9C4jyyiG?_Fd{lY5AV-?*0KYn`W%W_5}dmi7) z2R`Y0o-gVBes|ZcYt^owCshfop47pt+|YLP7{}7b6Mjmyea^Y{|ADjE{l~ zM@*f|=kIGx7RajVPM_qqYRb>s?`1>_uIxP_X>%oItLRjxis)1Gb#61v(o}bUk;(6p z()8H>Y>t-3%GHfiTim#(ewiKT8W8Yn{i2q0C)Z5uP4M1f^WdBA&7OeM|2;X?%}?4M zYwpu{7#v>Up0@IqiKhRKjq?1p7v^36o!qN=ep`AOYvR9kQk`;dH=NwnxIgNYjo11+ z$q$|;`+SLgdPr@S>U){2ob+J8lK&I_mVE6%suUjYG_?f$I z#XM*8C7z43-mHEgyJ^jL^OR3^)AQD{{bTySQP*Xt8(<#%%KmkygSd8y-T?{|9wr?QG?Jc`lXc-c3gl`~|!$-CRi4>MJ~ z%;oOx%KD@f+P1RK_R_93|M~wfU|>Ax6xr5>z1hcm=ijoO6S3g0%0%|+*emMCHm?)b{68yybL{O| zucd$N`nSPR_P>*Y$ej(5`xRQ!)I8c0E}hPmm{-Qrlw`Ph>E9>5%Ps5656M5?_$2@A z<4r%99xbfkTq2;psP2!ut)X(2i$Piz*KG#_-P`})Tq&$S>JXX0?#}do--ewh@5iht z5evI}a}irbcBCpO7yd=N!;2d3fm8#~3X=f%SSvIL$ z&icRo*bhCCo@+}_c?R=dcic4pedg^_&OJ{Qq@1@tydynFz2!muDe116cN9)$ihR9s za;0-p{THrg?IjnGJbwRv$3nC3nUY$`x2N^xPO>>4^6{#Q&C0LGS8U!Nw%|nmKeiB6 z`!n}`qpx0BR_`w0t;^|d4Ha?a1QSTUAD6iy^d76o!%7wrl63?Wqr2AgM|wjfBl@` zC$PwNv*eGNap97OcQ5>Z&(%Nq#HS!pSNAO4T{@>7#q{;9|7w0?n8)wY$HE;U+`9Jj zpE;_l?Dkzd?05I#hEq}(|2|PG>Xkfh5UxGjH_tdyZC!lv)BhH~v!<1kZm&K4GJEdxz<%MCyr!3uH(j{kVcKL@ z8R2Pg`7-y8V}BhMsT{jI>+~#bCC9Bi9CHIUDLe={^E2Yc*RUI(I>n04>%N}+_Jy8{ zHFxHjrD;nz4leFmcWQ+Xlh)IH7XnNIKdhV+S-`@4naxG`GRM@28+Sen{AfP7#8#l_ zZmTNirGlB_vp2;Q+Q*$QTg_fKA!ca;)93Q;8Gow2Uf0X&UDnsp;B|EF#S=Y72cz10 zw=YwSnY1QFZArq3{#z&0AIZM{Xn1=I}(lM0@b^oM3)jK?DSX%b? z>XG$2;(_6g@u_Z1bN&Peg727+FTMADKGvFZdd7myQEZcRFYl{A9;Q2`fO)a#)V{`r@=@<( z+_GZjS_JZ2ni9E>8h&73|9zu&wS3r>i<$mkmT27#d3UGX$e8bBuEF_hTqpbIt1i@;V=CT9f(+JaidhZS=V_ae4HrXt(pL>Mr>& ze{-;A+W)V`;`giUrsxE53SVH!=xwz9+nUMuC?|RXN4D|QgS`@SBiH373SQW;t*grD z%rW!6gCZFdre~dU)Q*vQ;2)vOwOuo8qvGysj@%Cl{{0S%gRHtxlmEWf#`eIviAOCQ z*Re=CDj!yubkmhT<5Ab6!%0oYy>l$W|Jrz5Q`uW=&{ul=;oHeOnf}g{W=d^g`lTnB zm(*S=xu-@kabD@U#I+nh>kqAyXnSTFZ?L>B)Mo!e-M;Ef%jDfD4sAcL+f@0yEo5sd z-E}_mkj^Bvj%ls_Mat|uzVkR)KUk{y-#E_MCRE{2{kfHsMZ;7WIyGjBX+-$u99vpi z!D}%?ahHol`G&yw>vpvtYUdkT-bz`OcSp(6h1WjvC-)l1j~~6xRz05X=WojN%En)c z4`n&uIM|9Vc6x*bD$9Zerr*cgZ(!KZV zWCwe(fuDH8^*`I+y!l~T9&!6!OThBWy4&lfJ`sBVs6Am#%B@#hj!fA!w@~re%db3H zUzT%h{jB$XsUOe9vXv%Pd4}?vYF}kHaZDHZlac-T`Tm^XxaOVvuR99N+|U{3zB=Tw z?6;ZgFP3)wwdDD7{L4XsgO#dfhjR9uTBNmyMdc~?-=6Nr4oAK7H;efN%In!>v?jWCo=c+T^YAl@wc3}qcG>k!VSMLs;qfGnoQ9Obl%Own9p46Xr7^0; z?9Wk8XIu5UrR}OMq^OHH_++=@>mwche2FYG%lVDg1!XhbU_T#JG3R9aw^w&3b6Zty zoo{Ws_IljRUiY1vo1i(;gz6S2=0s=JtkpTu;PKH_x7F^IL|cge6_4oq5)svy;A`y}_On z=2w0A#lk1U#4EBeNg(?N3k6&}+G6O3+eo&HaVVZ-kzK_%|A=j;6TPI=ed z*U;P+daGzxLPJ*e!EV+0TdfY3+|c}_mCx?{Wu1liTJu*Dg$ukwXI4Zk3d@&RD|f?r zPI|-s|MI#{QxC}pA5l4etZGB?%DJXD(h?mCFTP9UNqNb4ZRa}Uyp1Q#4Ik`3qi!#^ zo?SjsGkDVftv8D%ahZN!(!jvLz>#Jm(`|GtbgP}~DU0Yyd{$2yjy# zgVvsm%2U5paIEY0wURyW{x0}0G(|!-^w3;)31dFL(_haqsZXwC{8KG!>wD_X`YQi( z9bYc2uu-hO@cvA*d!kp?rQ^1BaVf{HyBi~CGndR#x^4MSZ=d%RC->|ut^1KZB_4|! z?oIj8zg@sW`NoXNyH3Uaxi^JP=f~30!0@^5`~1AD1u_i+AO60X^!Co(Ze!;od~sP8 zC*CAPxU#SNqr?{)cz{FXeU__paJl}Kg!ES*qNFED6ia`7*uQu#cYfq-wp*sQis2iR zXYEm+a_!ZDqJw4k3ztNFS=7H$urb!FXZrCc++8}W|HY;3XHICA@jbx0VUy>AxByQ9 zonMEoZeB353$dbtP(Z_#U$^z=iQEZO=m|K6R~*Eia^X>{G1lrB9%aox-n!o2;?8>VtjOZM9n z!eD>yr<~>7Uu))kKX2;RnwM{0?HTuU#|N2Pm#37wO=D)xEqe7xE92yx(6TQMR*Vk= zdu)m>ix|s(3NPBX!Q3JI)r+@LN7W~){@%Lfj^VBv=F3LYb-NgZZ9R;3FVa)|`}SR$ zR`T7<442tgJziw!Z(OP{GfC#muGK!%&qlL<5jbh_Ec>;9SmjHothHA3Rk8&@n zmh?CNJ3HsuyW|A{PtCVK6Zcq9wJEi~SHO~L9rm{=% zq32(ZWM~a}2A2ywwm92QYM=N@bMGza~ z_O49#4~t}1U$;#?!+7A~ytHpBzqYa-yK-2mds;-Z&1}O2iM+4*>UY?_^YfKG^K{mA z+;n2G-^`SkY5WY&H7?F6X03dn8EaN*lC7{TfAejLKNF{2Iqh*nYQ?fWTc!sjo?m+{ zrpd+radryZ#}o0#Rdq~4Ef1T0knor;zUss5M;oKIMb7w>aA@y4d#S_u!Pj2j)vbz4 zkN7`7WM}M&86V<3js_*a3o)D8RgAy)PM}zj#UXerW-om_>$`!+RmC^`*M9wy{UxKS+y6E zs~>c2Dt6oTbN@l_gk#gI7r6h6;}P3eWWyvsKkjDE9*^G0%UKh(yQd}p*eg?b{lUuO ziq}(nd(Rv4ci0v7-&vn%ub*wn!f|QdXX~u?-<}JeeL5}5dpC9FyCuO}O3YqVI<4Y} z>G< z+{jJ%r}M;8T)pTBtG07ZYJ6Xg&KcEn>k=nF4Vm7aZAO2}oWP=?M_`JyMgW2EO=+Zb%BmE?(C5VKad_tJXpPWxOR3IElTWtk@Z_%QkT z9re|V)8G8pcwO4}v~S+mBVwkW8Jpr&OaH1FxlFz9Hz!7M(!)@Jh1StevI=hq>PDP> z>r-QF)o{4|-G1SM;5QGK&#)8NpfAV#{)xff|2IBO)@(k=eW-3T*R-ZUU-2Qt<*1oBY z`YfnpYuF)Tr_Pdc=E|crU#|Knot?paYKC3Ck8zz;Jl`6_27VU-?CJezX#lH6x3a=E&El$ zk@!jY_Q(0T(|+up_-5gns)U0%W;0)J(wcP*yv6d;R%5%XGm9$kcUhZn^6sgvSL1%O z(k3Ex-=#ZWm#KP-$a2W+o{*8`0otgQbm;T!H9I(+>jIYKEMDw#>q2J2wlhck_x9$9 z_G{VoH$2?+PIX#oW`bI;j%jZE$zl$c?6 zfbV5!T}h4XLWk+18OMctXNRcs`*?2tVP@OreMVElbw>TZTK#udL@J+E^(tI1=I^L1 z?%E!_XZG2|-~|uvKbY3p=$gCZtp9OKso1qKr%&Ew?^YLVpLVoevn;h#TCVPmxM_vI z=Gvwh9Bxpj=pubfK_?_SIrku_9DlB-6?n${Bgha zJ*O=Uw^+RxBX;d(3wHW-Ct-)evYm>OtEOun*sFbvO4VJU!$DU4| zH8KA2(=;hLjhs*;?}v>)%ocy^YM6d#?bTb^-=E+8GxcI;<>9UcMc%jE8G=Hdr8a)5 zYM;`T^gQ6`M%l!Uq;^4u3v28Br)lS&t^9bEx8Q1oq=LLe!)A`{&!==|W^j3mg?2xD z|5)hDJMM^8T^mWrtz3OS(X8MZh)%nM_u1`5RSD~&t<=8(4&9YnZDgm1= z+Qc5Z6}P^?cEzsZGl$m{&Np@XbVlUr>Cb^TT+)_a{qcV1=hFf_N2=}kp1eJ>dwro> zyYBwTg8#dZOT3tQD&W}~oh7Nl+?Niho-2NTTjb39uA^Bu(-IC>zTCaI_?7ZU?rA%h z+M7PVwxqKlVA82eHVjF#9PfDT+10pMG4+g!*0~g)8Liv5x%ftj|5eubpcAF5_xHtw z^~=pUW>oDg7xdZe$_Yx{_Ck`8SJ=h;nVf@n9$xyVsi#Bd(2bW*=T$6=d&n{??*F-r z=raFHE__oS&OBVZ;H=z?pVJh--2V1}SLe-{yHW=}`<}}RINy_S>`9*b+`F!~XK6Zp zzr~(8aYfsXW6PJkcler?H?`?PkelW4GeugD!!O-BcIoFNRUTT(M)vFPI5wkgPQoMIQ*O%|qpxKp?A{~m+sC!{CCBTuBjvZGE;7}L)UwaM zQmC=oxO!3k^{)SuPH?n~TyP4BW4!AbdVzy?1e~wlSwD5HU#zA=`0aNgddH54#B;naobUGO@3QSPk~N+sC&;&y zo!!4$XY0zWxsK*9ZQf_ENji6ce|uMMy+zYSPuE=xVL2Zs|1UQa7U7Evd;XT=MH^o< zTi;o|@1NebPu)MqVd_@nuk*uMc?4Ibc|ma|M~ed{7%^=pH3d@adj7qf4I?o zDWC1iBa^R-XcnhDn7%Y?-LF&Zle<#nC;Cp5(GuRC^;GlMcB%BHnsbG9V%lOB*QI}2 z2sr1@Ju1q*`%}TQ^wT#TLqGp^Np1P>%XoXo0cMTPgsYxf75tB`mvnsk?iA?E!584h zD9$YIzV+3NU5l@WN_Bo>X7`kkFWg*m=hMfU%TBBTMz?J%;P|$@O_t;EmtymZoS}%UgIp&50dRC(%$qc9{+r}|AY7XfMa_3{jAcCKF^q5 zRGeIDn)%dZ`e1Gx4?KT}KVUvcio4i~$Bo3yvjQVq_l z`&DyTc82ecxOqFfY-_Sb=7bcv8U~1HBp5C+eN?#E{NR_Q`Rt9a78-8=WdOmR^s~YE(UIJ3yWU2g}+t97cIYPSo!>OXJ!GViJ0lLlwIr4xUwQOr)1TNKOoF`_0Z zB6hazla%NXOEJ|CzKt*U$eyiTwv99DncRtGTYp~)ncXb8FYQytD^2eb{UZldnZL0g z+E>}~B5i)^SE*M;XKZhnRVQ_Mxg=PQzhu+v&s{n z3ghB%$2?9QX1`lSYn(>i!|jqUn18{^DE5;kTn znf8py>{@P8!4xn5o(lpj`L7CJZ#&SwGX18niq}rDe|J8;=y>|Z zKieEoo5TP7ro`H9@(0zne6^pWp?cvOTY8#^?2AVo)te4wRHo_5&hzq1UYV0pp!)cn zY(U$QJ( zWGpM|q^AB`CH9k9=h9rD!-2bLcGuaWRO zxI;Af$_>%Yf0p>#-MMBF&Y#O%cU-ut@jzIP8%q(V@S44P9aBzPgyj|;6VmZsB>j2O z6x&07>W`A8Pu)wNvPsJMMts4eRiLGPnyxc^e{OiT#(n>pEd3^x8k2M}=GR+}fAdvr zbeW>T7guuWo7{m*a(8mKy;HOfv-|d}aGL6zr=j|lN1m)>OYK_pIqA7P-*m^EpJ$TJ z8klXmDYmj(_r)PbX5q9fC;ybD{2L0gx%W2ay)ZaiUlSm7@2i}x%st_pz8^WgGR|?zy{Wrb(SgLAhfs|fw?*FEnq4%a1`%m1)c1B8`i@VkM z{!P35=N zh^~$IEVMZ%HTq8wIMX-RXrY$KWBzGM%XXgEmBI*}Z%);lFBP*i$|`eoeiPXA{Yku{ zRqWla?YkOIaHu^bl@0XaXZ#< z@!c~F8!v9_D4z5C+fid{Cc$&Q{NBlnj@w@A=}kMixo_!}IFrw>gIsoKc&28`F=#AJ z73RA?XX)iG=7lQL-|gSEBK%Pur*##VztNIUb>A*Yzx{jVgOa`5rm8JEljqO)rf^v0 zj!xdU`Rg0>*p^g8a9s@jwYv3Y=Ci3gei$YHkzi*I)VGP9n?I$rSoha$dApY)tJ8EM z>=hIRw@x{hqFC2x;qhbF8N20ue^=ZvO!~Lr!3^WcUPt!F?e0!fx$Bl0xLhIV?7QU} zOKl^U3Z7tTu-rEz_0-#BpFfvYZ0?EiUR-*vL&a*r_nGaJzjxVB|G-qVUG_#@mGtBX z3^!dTI%_e0@^qh(aL$NLxOl;mnX&J^ADY~psC8rex-PFdiW^w8 z{dm`xWRKN}H&0GueKaM*axPcxX{oG}rN5@1xwC!gUCU!yrQgm;>{aFEb^${+YIIdAQY2vp`PK zODpnkU!+dxR~{7^QFZfb*2SS;j<){&=rQ4T*cQbUKW4VlH76X_&fg)Z>pH1ry;D|x z)b19c$a)>V*7;m=ZAN{kyL*~!=GAFVUT@UV>3W54*7uIZ4o}{v89e{DJk|KvsU-`2 z4gNnhi7B*9p8JAdU3FSY2=}c{bCJtV`p(XsFAi=!yhXP+g<-dYLDSNz;&T=TO9g%& z@qHeW>X0#a&f=-_K6H3Y-gc@yV1ld5>Wd*u?&sP*XqdTDrr*0$mo@4y1Ea;F8)^HZ zy15h{c^B<&GFh|j!D5~JM-pTAPk+8G?vP68@)J_(O2=C>R$u?LVe&<9E$7EQ!u|hk zGsPCT=oro_>E$sy8*)US``fWCm0WRMYo=+~2G3+?ub*KMD!$yY#Y#t`U;07b()87S zKR4(-I2`S;shZ1&cc_D@HL$T`&^OdHrV9 z^j%wwYm9HZ++Jext(~t{lU4j0gB*vg_4he{U3cs$%bZ)0wS9ws+z~O|Kl-~ibEzrr zTA=%ubFXz~kv)&5tw<-T}_IX=!)$A{uml)jTJae7Jf9k>r&cwRC zb&OuBc{}?93vX=+ag40r{^e<^$0^1osr`G5jwLVq9eS-qne)7FpZ!Z2gF820&J?_1 zzEPUz(v=^^8CpdS3=BLS5mTe)UwNqTYuA2Ot3%gP?w@hqv&pU?Ts1iRL6D|lfd^-i z@*U4IhO75WCbEaKm$-(4htt{*c)N8pz07#XSH4MrMb7QNaedz39qbzgrd^qOS@xNz z_WMgmQa7daeS z?8r8M!iGKnbe9FU-`l-XVAD#knbP&spRM@w_sj$ft)$ac1`Q5JZq8b?!0Z)w@m%Ga zFOom^eLHQmuGiJqMAd)m^-XPUFBR`M_XRAz_V#PUh7ERKgYUj5kKC6jU%tmk;y%-| zsUGPXR}+Gs2r_??nz%Y|@`N2G-%Z^j9GA&v7dTFg?=_2F(7&EV)S4r}_}zA;mp)~x z@83Fz9+tl$qZ$4F$;^`PY|A_MHm=kV3i-!kdHQMfq>tfj)p~~9JF@m|n{FdIae?NF zwtT&_ZA-rfp7FoLuue{HvXicU=lrjpuJs$LP0#b)o4inOS<=?`;hRtU9@JNNc`0n} z8qvbmZxq6Dzss2Mabo|X3i-K_JFRbPpFMt}^44<$1_lNePT#^XM}c*Z{@KgLzo_=@ zD@<8&*7_NPQHf4W=DCC7Lf7Oq@0+*w{gzZ!op7<|(&S6xb$u4=^t73ixfTw7cyyoT>Mz$;By7P&qjVOR|7-doZK|)$fU^+U3@%!O?^D84?Enuz09mW z<6B{h#;bqP;r|w=tPA`tqSml?_l7A?S8eoI%BCP$d*jWA50anuXGWc2dV4m|fmcf_ z=AM*QACo}-Om?}2HuILOX1w}m?wqDu?&ngL?k@atJ7-FP*r^#&S@-t;`e5+Q%JBPq zLxT>Pm%PSbyjaRVX}Y0MD`U;K(y*M&m)q}eYBalkxox@T-I589MPsMkxu7g@-bkuHYv<9d z?h4nbjKYCCjISJjTJePa$FolYP8#3Cce)%;W}9OBVPSLx$7e^gTXIXqCLGo&YnWm3 zUGgK>x|RY7hWkr?9G{n&B(GZ)GfC7`lR3TMN>0NT-`A0XxGBuqS(oei)c9u?8VPE}}JLqcL!FM?^-{O}Xc$X3LbbG}YaliZ% z{3RDQ{@7s(tKDrJtR{5Ra76mHl1 z@B6vR1Ll7ZY_wd@uvSr1%~x1sC-0u^29GAVt1bMgv0}%;`2lM70uw?t1VmGLxAlj! zN`BP55Tbui)GyvYr64mPi;2y!MX3L5<>4jiQ7@A+qkYR8f5}znA9P-pCOX|?t~zV` zr(~H54?`1yYs+62bWV8?6O>-K@2b$s)tzzA3O4!fSv7Zxv4HTahH2b>I{$kjdPS{E zjZKOd7V;&vonM~v>}dMNS~u0}V!I~o-F)9$Jjim6yZ(Is>+v$tzK(Y;9rs*0H$6`z z(lR1E|5b|6{z)^gGc7cW=sBMBAhR#gZsYy(z?Rm?Go6!uww#-yXgaZK*Us|y{pC|T z9sF+AtaG!J-M_7SbM?wontr!6HSX7>zusL|mnrM0k+DJ~I>{5d<#3a6obQ^5HxVLE zRSRkxZ*MJGd+C$KF;E}h>c)lT+uAcUOxk((#8^+a*e_N7*STJ$+OQxk(`n+b`asu{ zkL{F=Z|*+$eW&F4U+*2^!}kU*{cSyu4%C*-_cdj2IX|kSsxGWww+p(QZ-}746ylKjYS^r)gI;7G!En&^p z#}i_&1e?TzP63$H5wm#Occ1&Lf+sn)S2cy4V6#s`GfH%pYAeWLrstH$)9lupwe+1I7*H)d)tFKNkhTXSND=boufja=8oTu(mc z4t=6DXVJc|Ci{86r1IEDM_EociD0<5CR%x!r|qe3y;pB$F9}XnVqN$5eBSQ}zw2iv zrdixq{89TMJV3f~L`F`mcM}7yLCLq37JF)h< z-{PFAm??MWd|Z8@RB5HDwLWWI9qV`9h97b9lY_;gFSanTWjr}JE#ib>-+O)G{l7j0 zwKASQH*Nd=J%2M+uB=$;k^J%sn{emZkFOLqn<}brXsQfUVN(0o{AcF@d+?!1Mb>ea z>dhYMPONg&GywYl$X@QwdJ{?)xYbV&Eb z{I-h^r+l72W#x69cimx2Hg4W|?3dTWZ>r4;?Yd`p#Yy$)7-&nz)>_q_xIS-VN9!!R z{b$!)+1ttPx3VBkr%`v0%k-#E*+F|3@wz>GGSBep^?eKX2l0iwDqXcXX}tQ^8tv0J zJGZxOxi9-yB3_eAfcyV~^AAOZ9-S8KpZqe~Y}ecz2i1QmXaDZrAth7FzI%6Wko&)$ z>UFxGUgU82-qZZlZ=t&W;rju|cY+e&xF}EsVe0HW_mLJE+k0;KN*| zMNZ#NIfwKw&U%#nGv`nAim>_z!fu>yLdK#Y3IZ~ovddOj?LYs+sFo@ARBQBvw+03O zv*x#X*C(~lmg)5EYMI+H*|aKN?Ckm87$f2LGk(gXRVq7PFU_;hE11Wh*U9ntOigUp zA9?rcJKc=yd;3>MD}L8&6JHR_<9FtpM6-?V{f#~5lg{z2TD`T_aq>i!ee3sMcDTio zy8f&EwTOpDrChYXFVN9GdCzdp?F=uIZRe(N>)e)(+4>==$#Tc%!>pIwS3Er-nDd}< zYEzTPRRf*rjgw|gEquC|eUZuD>@H>LGK)<=(^oDCOFFE%b=ollhDBMw4pqAsU&+z! zE{L9Xp<=q}N-2;2_-k`kZEM}EyH7UmvUEd{*?acO&+lpe+FbK~wfswNt;WALJWFo; z*nC7GU1P;g#(TeCdDyC4O4GI8?sekrYyHAIv5Cvof6aSy?87df>$eu4RjuE??9=+{ z*W2aZFjrSCuQP7@#owS65;Wn3gusvI{(G)Foi2a&uI{^0HxA8w zs`Oo|-;Pys z@uIo1<$3KVrNn*LPure3ClY49J<5HV%R7HPafX~tI(bZ2bGQC6%k;NGdy?DP zmrRX#Zl3v3AvWb@{MW3T2~r1kBnzfEo%`QDH!_^f=Z=iU=JPZBkI%R|dxf)K{N?%LazJ1Y)dN$?H_4!c~1H#r$V_d`CW+>(oxcY7N z^nZTo-E}w2n(lV-9($5v1)3!1-VtB?S7z>&&KL7P-MoLvNAkpn6KAt3UwDaER4oeC z-QQ*Hq_Okb$uN%Q-eVQdsx??`6ippBe{an;<+*pEVypL7O+W3nkmVB`Bo1HN&UQ9{ z(cJCOiIopHoR}=-fBfh3NvJs^Vm7Veww2wEZ?YnbWE7`Oo!qx3dq-7+gzW^YRvG8S zX>E;Pj0!%dWK|h2@`_t#H)Ccsh}>kdu`Slai|?a{Y?GC$8>a9Uk5 z;qw%2GwZV}DvkXwhplFrbd-5Imzqm~?q}W4M$sqE^Q!IeUKk?JQ*9|YC*U}vvx``z zCv4ySWTVLcnx9_YmEHJM(tf7EhXv*v^Dq427g*ddiDC0bJ^jmu?FPFdWktW&pI)By zQ07f*o^i#IJ_oh-9maFzm8PU7_F7+%n-|J&z~~ye=UnuKBgZp;ty;)-?Zf}G&L2gR zBt#Tuam|QYl>bim{dWGYs$f_7;Da&ygSrm>Jw54QhIieb32Ij*^`{@yVtsqB_P8~t zD|i9fQGv#%-QFJC4?kbIEp}3Kor|W5-sJChG+(qiFjN-WALKak>{6+^o8wcLrX1FKq}@$Qv#!7Q44$~E^5@?JTbP-q^Z$Qt zWBd3cWZHj|oX25aueAZMW@O&Z?YMFz!d+GGo5_P>-Uxwx%_p8}b)8?gOMj`tLX}Oi z|78l>(pEC zrJL-%0-3f?>fBoF#^|?W^A`35POI1RDmxcFb^TaQV*_nrOi4~_LythYd(?2hTI3rn|E|O+_qEP zS-By-OUAW%f`o%r+S`q+3^zR_4~F~)*ZRI6W=S^%B?YEETFx@%u+Ss%o_V_l_ zf_B#_+476RYh!Kqf3g3n`*PLP9h(l{f1*&Hm~~_4w3i1nwl4kFQyVIpewa1j{4V9> z-JUG^LJuD2#5)H*Ztj`0==lAGF&S@8uk2o2v2V#<-ddU2?SG&Dw~bVpe@jaGu0_|w zzdzTgOL-}t{gUZmWe?r}KGS~o`=>L0-S0}cU00rbAo>eaM@Ajn%B#MOoV$$g34zK8}GSJ+#a0Pl6&D#?rhJJD>4^i zY%lz}wl_n!{EI5Ch%cz={J8kxCY11isFXmmfi{#Ufn)_&jgytXL z?bSBf^V^NKO)v0x`*%z1?7M!!#nByyTz2dYZ@Is4O1shYO2K=Zg$*N87#JA3bl2>A ztiLP7$8P)1qd#h=XyjLgzGQJ+w(;gYrV3TfBguOX1}*U{cTJmM@#4Uz?Ye~tW;YWX zHi>Ub{haYHWICS><6q97|NXE3{rjPVakc8(Uv(-IF10E6bsy~pk3-A6u~sm@XZCud z(g7Jx@mYI6xCA?_Ik!vk?xU)dwNW)t&_rFB;rV+{W`?$xN;w%q82$g=PMEB@tVoH@<;LPhMyoqhfrg;=X@3x)Nof7(**^ejs_5V}YC z#J$9i9$XXmCiTk~#W6p*k@aUz$^QL4$7BDoiF-`Y;H@!Jy*R&dGS}<8&Kp7xjOF7h zE(lK2wP_D>tXO*razy#&5G(IvTN9oJFFv$=gGQgq8{>;JW+!oN5-D;~Sx~*b4ZMz1WgA{n~oonFnf)Cf}ZOqK3IL{l8CUkJBZWVzqhI zhnybn-5jJkD`=9V=e?+Byi>lIK8VvQeEr~#=&MAoN4B7S#Qb3}v%> z&7ZS7b1GCWguFR2|LGlx2AxTBp^;@281Pbv^NN9|Q@;??UXFjoivu3ImM`g$OjOr4 z-^u^+;suG8Td$WMRlcXmuAc7EWj_!Z9UCe@TlFPmg$^*8hSAzg-h#vf$9WtPn` z^s!zWc>K)E>1FbF*rVHx*OqKFSv$GWZSilW`|o1?51Xss{hI&Hf=MJdc-n-lP`Ovx z7rJ9U&5=0wxK8uw=~E}qZa9(2pM1j3;Q2Ly%=VbPVE3@EXN(2kf0pX*^*i-y^Nf!F zPd02#G0>RQ%6R(RthmFsezVl`Dp(YR^l42 zcXVQA>%VZZkn5JuRN>3@a)1Ao)#^Ctz(1{4VuRqmEeqdl`m5*3HEYV;+7~lc<}IBn zAZ&79dRkbPYkmLJ85tD|H-?;)2@I>^ll^j}@J!R2E7oUSs`#%(2j4d~6Hho}780A2r@8@X+FYZShuT zWufPzms`2}noaEwGMVAOgZG`B%-b`Q+M=3MC%VlwIyqbY%dXmjK-Oi?UbQ*46vL%9?BD z5CfR2JgelT zGvki=-8F}07Rj9wpQoc7o2U?c{(K+wu1hQZ3a9VTOS-> z;`UDIj4PLK#IKqa)2msVmtB(U=)D$|&#Ia5=JYw$wk5F5Iq5gbBO2d&YAEr=hb~mq z{Pu8y#E$7HrV;_b{Sey<$NjTNWoSD*E|x@!vS`hPBF z^Cyc*X@%^OXyd7x_4VP}Gm-I^pIqTww?KPl|F*YMH?41ZPB4=Rezb(yt<3*a+}x9| zyjL2`SuA)~tbOL@r#AXmj`tpTa^mZM-hv+XqX)MiH#Km#G%aSae%h5w=8b$s98s<9R1yK2A=T^8-WOWwAoqlquZQ8@p&O?c9Fe^pP{4D3x{$`pg1KChMqVmED!F;uM1;HU z2;81q!16Z3W0CRm>v9d>C>e`axXrXSDjN>GxbA`tm(VOo1`Yxot*MU^Y4OR9ve6gFD~x5 zSK9RP|DA0!%9a>?oOnONa$VMo^oq?vUuT@$dNs3CTglP)Q1BDR|2vi@i9B@UG)wfD zXRj0;;HeI^UYEYpxaI@*j%cxd zf7PE=|5GnHIe)0tHoeMx$9UqO#yanNOJ2L>J(kotdr#$9ZsW=;31{A~I=|d({zpgs zO&eeDTd1|GbgSf?6O9hRYZAFP9=s{Pe7l~28vEXvrO($SDW*+u*!1-GyM0UkewWIe zx~mCbJZxTeRB5~M0=4b#F}JtWKDu7g?e5O`I5eY>8w$N!`yrBoUfU)OmoSERnt>Pr$s|N2Ri z>gRN&j`ePy$bYPANdiMxy5^$A+apr!zlw>a@tFL)H7)!8(XG>bC715by!?|OKRTN^Y_kIvz_kGJ1G@*^K}gzk=M^Uf74Wv|#Ly6m{_C6^?}BYgZK zvoq9_Ry{r4d+_9qx-;`PmdM^wTK{H_VXoI#iQOOKqI0=^U-A^*@jLskQw85O8Rhh= z_h+ALe6XP)e&VW?at7~PMGPJv`RHUhbyLwFms+u>vIin=R^@vyzm)Irr=Gpy)Pk-H zNh#e*C$!_<$}Y*cR-W)UN%+^~XifBobk6)MB`YU_=*d}Iv z6ud8)vLP`0yhNP(te^c?(l&d3E;^|bENK17q) zZ{iZ^e$efC&9&#a9)r-!An}Bao7z4}C5u0j_WqY5wu0+UA$I|nKY#n7uB!KTo7Vn1 z@m)bwc+b3#X1A)B<*Y25PJl?`>(y95_mr0s&8!`^HO_6fvuN z+zFfSx8ug_-^XMtPrtu*xRLGaJomfL1Dl&#SDycDdT)KryYspW_-}^h>^XEX=xyyr zsUU`G{W<#-DkJ>z^u=FjZ*r427vRo6dD&Ruetwa3PRz;wj>7eh|6-0D2zqX~r0Tp7 zPveYJN|sIEdc~JSG_I&WeBhPSiP$B_ZZ4_THn{N7Iceo2W3y-P_%uGMZrpP5Qsv?P zTd5YcuXi0;9$N6jw0C!SXV#jiUupZo`4d7kG>`1wI%$EzoU1I}9d#DGfz3~%4W5+G z`=k`ao;!P`E8o3d=GpgFu1T{u=(T6vQFCJ7(aX+h-JJZ{?4^CSw_t<0r)+gl%< zW%CL6)RG<7^=oeVjXbWUM+`rOHC&jg9j@&tB_Uh1JmqxdqLm!iu2u!CtldBF$(z{S zsp(hC z+;P0g`oga-cQ@L6^=sAr`u5bkRtfU10_ZY^Cy9W1W6y-h?zE`eQIi967J_x4M4brm04EvvLy->G#?( zvFd)DseMsSV9ti{Sw*w_OYfw&E)ls~Hm@N$w|JvbYu{@2Nq4RMeMl_p{bKd){(OlI8WVWU`Ce2SNKQ>XWne2G37`1& z6o9Yzi~o{St?H0AEqOxCbB_lREUWmIcKC}me-1hP%iOJ@?9I0|hDly`7#J9sH2AWM z&Fodyhg@!(TCjVninGU#^EcS13w61E>0D8J$1Owg@u8MKv(t61?!Q$0TsNig;DL_I zf1|m!xFm^nRCHZBRP?y+`2R;yTvKLEk_!oW`XoUjSGRZ*AKICwC7}IT)JHFnD_Y3$J|Fg$7kftS6F&a+;4Jmz=123JsI~rOm!Me zOH5x@J*ag#)>fRdHY41~NPh7_8^4m^yIbz396C2|ZTh+M=|OvVSNN*F={lOvn5M99 zgOk>_>7TMKf28-AyKLOg-dfDj!r&&-UbygQU8rY8*=MnpmB;nWTg7fJEtu0E-{0eW zglW|uW$t-Fo4;NLAH=oma$Z@WObmzE?(e}#hZdTzGW42vG1dRqim6S1>^T>NBQ@z_ z`7)fsc0Ly4)>1g+xbkLfSh1k|pJ`%i+E|4G7FhN?Dt{Ei>z(jFb#1GYb_nu~30M8* z_O6@gv%L6eZud<47fSgr>`%|KShVJgjQT9=&wcMDcCSz1_WCe+<)0-t7VnGqbgzo} zz3#-bIZ{_uJx;v2YTeLy(3~rp&1Ai0Z(53X*@HzhT^9SSY&(B5#sAQUk4{aCen!5t z7hYnwWa%0HoWwi{r6l8$7U@H?Pw$p%OXy$!thd`u;3>=ht&WBoa-DpuH~xQYBKh#S z-tsM*H|}t~5Od4nU*C$r=Wl*2u-`lHLw&mHp75~k+z;-2l{i~n&ULB8Irv!V#`88S zUOV;f*!5HQD_2y2#;5noGWMUHTO?^bf18eL-g)D&0IT!c*061gIF_gt{rB+I$X6-W zHzST|id%{Qj|_+)hqfZv?tek$vvYTCybfidp7V2JdRer_GP{N z>a9m^@*6W8_{CfPd&_s}O&j@6_lPJ(=f0v`1!u6hpw=)3brw)FR?ha zbdj`k;<1oN-~KZlXcb(&K<$Mb-(8+>`3IyYeP4BbV#LYLHT$g&h0SGrwp?Osz4WaW z^S=Ela4bB(nxW;sn=>;!nDXJO$?@H) zee?44=lwX&Y}9X)W!7`^q9cFoY$L0~dxX_L=FYtCp)8rLuDm(qoBf}oE}5pnUP+4s zl4I5W={{*!*S)NG&TaB%&CueFvliV?Um#Myckg8Lh}-6;d=BSsIKS)1lI|G}DPMzM z*M4=lJV(#%lt6{vXl5=f7Dm`QEiP?I}8@j?2!@W4tYA@7mwHoyAwfg;l)c_kOmt z`;7T@?jJw&*WKE>dg+mj3QzW*3=hAnF3!-lj;{fAd_KK&vCGX=HMz37C~S7;w>gH3 zwtbzeZ@oXm{)nb`uaREYuc$N28Q*tv+`M_$VCz+$AZ^X(Vl!6XPdoiQGl2K@+NYL5 zQSaWblx=JNsyzF-aq5}uW!q%hU8Q3l)i-a=_cuN7^n9NoTWr&MwW{>(au+lY>{~In ztKyKCyKt@FV^xhbvzr#aRebL!c-@&bDQ_clhFssGRDPz)S-)cASo2zYS5V*@9AxvIRluSSt^wOP9MgGIN_dhOCRY7Y2x zrK3ylx-qMpMbejU0aN}j&;M!MbdGWHt<_n0w%+JlpRw|CpA`)=m;Jc2X>*XSVWa6= za|_UY74F}9w&R-Qmh^zeH&@wjo|O|8{AH%~hW(NET6weEe?pqOjz(HAFO_$y z%2qNIHM@PpEO|oAtREb{&lfMX+2Q)^$?1oaj>m3Uu)^Ce|J%WixQsX(!A|)vKMpNC zbaT6x3|D=__UgGV4Q#qf2Upwu+icpeNU)lva>POKF%2K@e^Fq2T3oAT zHE*kc@b-!~yQQp-eciF(diB0%Rc!{L`>gIt7w9_&c1L{8?YsRyTYXU`^MU2MX1%vn zS3mzWYg#}2Lc+>3QCfLVtFBkGxK9szxmWwo?c8}w_PlBfN$F8i$P@Lfz4BG=UWkIJ z@QF79Oc}Q=b4{JUv5K3&`Maq2;GD@EO4aP~^FYV6D$Qfb*5R@Xe|E=x1LK}4X|q({ zdwO{;t!AG1XuSf*jtzI%J%WF;BuH!zw>uskR~CHWLd&(&B5R@^ZLchRAmw29bhlF& z$GTqE)63Ho4GstXJ9lOOv}J3q9R9d8N&esQML+gic!xBI>X(WpUOB|a7+m#&>yf8| z@9S-i3LeE%j5I9nT?@anM7gzI>hM}8W4o|=MW##r?-h-wWSp~XI;d|T8hzfSPcSk* z^*bxuo@@Nx28~KW6{lj}21Z>{k?$hrOv_rl;Me+;D#Cx;e^h@-*f(3x5YGD)n5yW>qY-KKEjYSxbZh+v7eh&iVSX z#gDIk?3Uy6yUHOZ`I~X-_vEuoGp0Yu$vmZ3d#X22hfPO7ID6`QU2Z99g9k^Qv?fho z+L;{i&90I$JgL*<>h7$n$!oVu&E(eG(IsNDtDbKrCx@VRfTVMylktAOmS>-Rbl$l< zyk(xEJoBu)(hk0odl%DB3kaQjWcEqp)m^1CF;#974^1_1^u2y^s+K7%;33E2YqiUE z{RppPcyDpW;C)Y7`Ye|`^S;?yi^5(cB;>9#JrVXa(fBTt!Q{rhuO5i}DDjQlf5p8z zo@KH|+02{sj$ak~rgvt4WbkAiZl8cN>5Rhbl{??KB4V_;;#jkHZ(f4VxivO<%JFa2*Nb&aKZ) z8h8HCWGOxsIGOLk{C?G{UE)uy+`gpNrT#aFvbIX0|gS&6t z7Tj6CYHwNJ%za<4{^Nf8v`w7z$FZ{QKd)^&TmAEO;yEa|tf`&puXoyS&;@`_F1Kk zU%#gF&K6Vr`>s^hd*Q`@*2RB38gG{}+o$iE=y%)r{~`Z;LAggQF&!MT|5n>OGB^t_ zN`G`Sln zWA<~J{=H5J=s7FoPkO5HSff7tHk6q!q#4&7UG z%GCaG?!FTyx&@Etu`S*CL@jQ^ogOobb7wxcaz&@Art#V2A7oeh6;&QvEA&Ehx>&HM zv|LXN+xj`bxmPU=kU4JZlXTkrl(=WZeT6sw%3sV@IN$y9*!&IuPA54(2+C?@@3L&$ z?&S07UE^}MlET_qU-y+f);NF0+*_?tG-JXEHDzflpGa2 znq!A$szJoMo|)w*mP$q>`+Z?wKGpdQLtt3G@w6{S%Xtc_Q@aJ8U2k76xOn-e-|FVS zZ_P~p7|(xhht_l-{_VWQT#aWRxmd0E;=nM=U#oZV_osb~aeE$IY*t)i+pq9_QheKe z(fsLVUTa_dJH06&|3s^T#!JgT^gE!qD@?=0zH z`S`mKv@*zQ5BiB#-90Ih>4BTHV)z)XPG2g2b!-dk%;(p8b<;&MS#RWTv5-7J{g&DH zITO1@HeBFIZMytW_mP;B7n}D1w?%tr9CKZy<#cUALzsAJ9&APXxq74NUq5h|ulZ#6 z-l|7NMAxr==K9M9-Ek{7G2Q)eWT9lO$m}0k-%cBOeN4L8I&aTyy-890Y)Py_p5^Da z$6VU6ZNt6#(LuB>0Bm;OCXrtkAT zyY}OnlYTP_ykpCLkX&WLmtQk~eqi>rkVLgLv5TETny-79_I~w_;FtfX%&X(Qvp__} z?R$*+NyT%o`i*KNf)Z?hc}p8ynEtI|vwW#;^P2T4EygkND^krf*I4#8->^uznsHoe z<#E;BMn4Uwys~}8=&&OD)*XHewWP>Z6HJr66Paxcn?Jm5x>8tm{Quc0EUM?vh)aga z`>mhoWwh!?l>L!Cs!v}1k8=8zS}iUXu(eb5=nFr`XD5R=J5wY?6sD{x-`eNsVq!Fv z_p5&Tiv6!Dl-5Yd{Ih%dN-wPWo}O^nm3d2ViO${keQ_Pgmt=`IYcS-<8lXsKK8$8M`h%m3dCnH{s} zb#FxGhAUfJ=G^y+3J{^Ys2X3OkPX&3d*o<6(Y%~fk+%|@k{yC-S2 zSzj?YXT|N2?R{+j?X#0EvR}*pwRq2$PkWBmao1fCKOkVDHML5zPyh4dyvI37&);9? zEeKYcT(?!@bVJu?gA<+$r{$k=oj+ZtA^iKY-xhO2WG;jsDds9aqjM_5O6FR`?W&5N zYge2vO0S!}eM8;B$$Fo|r2~r(U*M1kpT`dBC;$8W?s1q@j;U^x4e zv!L?udk^~+tDOGNSXz{{V?ohFlk+EE9AEWQgM-oUy}ewnY2gzC9iK&NO-VD{53bFa zIwRvkf$yPd2YdD2?f9sESFPeop%GJi=PxD+@7Dr?|9Y=Tong?-V{2ekX#2^oduE#p z7yoA~b|Kx4Kh<{C-HrG5?$1%4aA`}9&bm)#`kUwQbS%EWd8Tu+P<$nP_{pyudVBZj z4-5=4XO;VRBnL0x?_feYR!hQa&ep4qpkwy(J7ZpMy?gsd2KVtv(*okByT!V9UB4+I zo3Z6^h!X4B;MaWlbr&MfTzlMD4ZbJu+>9n>cadp*&mU=R{oQlrPw~X1x2~Sq^Y!Pm z^&*$sYbPvT{WDi(it5?jX_kWT75pP7D14px#$=Y_TjR|~`1*tm6byvlhMawRchSlu zoib(F$59efXWu&&S*)xzdvgBAAifW3WxR%kvVS%P8-G6)m)Q_F(al`5E9c1zrMs(#iiqoYC6|3fMkaWh?6bZgT?!;9uW_x@c{DxA)D z_b@m3J~{2hx$4~)OEx@S?0NHvpzh%no2LDeC^~s5yqMu!skUy(9YwAm?vEOsf5=aD zdtTO8VCcL*X#S@kO*1^^iLTqjk?Rt8LTCQLhwmR0o_+EA$y2dgzE3~%JT_f;Uc+ts zgPNlJ|HA*y-FSU1`ES5yE|x{jGahgRZcSLHo_IJRK;NWUx@CdhfA#t}$NP$3PqJN3 zEIDv%2Uq6=P&euGvJL*}>Q}aBUyXhDG-awl$?E{sFh6JUZQDe!&e!UX^X6mu zX`}Gs74sf>ra-f5p^HZt7l`eAT;t!ywvXda?z^>X;#^LxkUaD{U*BfuLl1^j&kfV zY`5^k-J1^@GFP42`RI^R9AAd?H65#4g)wJ7SvhPs{2tzTGW7ei`4@j~diKa#m-KGqw}Gx@=@EK{?(<@0TiDkXEUAGR>~Wa z_VzD-{XcR4-|X!znm1kFhCMC|T9bGPJka2N;DqVxcdff`9N+lvq3lVe$`6Mc zq@3Oh;o|gigFS1H9XNge4gc0D2V4UxjyAe9WNuf!zuJ=N>fU2a4Gav7<@;qt-39%G zW=_@6R{fa7v-p>K-qb@Oo8$yIvMwf_O6NGU>cAtT|83#bdaWuJX>S{k`!>(rdh_D^ z#Aoskvmn2tmtf*{Qs@SgzxU%J0_Uu zeeQ8!S=)Gt6LP`f0>x7O_&FBaUQWE`yS1)VwRu{n=#`Q7M5N+&PX?RW-Y(GP_2Kc2H+I=w z(Mk9eJK^gi7xi{Sx9B-56{4C;W}CBaF}v*;Tj={wrri6nK(z_)6T6+e&7PZ!hW_?q z3^Q$g*7EwYV46dy5$)(N(rtJ6Gk zX@l&^-?KnN&;h%6i!yJU->;fhw8xXdpvV0M*Sn}1r9+k)C#Sd`kNrL?R?+^PQuN=b zB`&-2))XzwdKhx-dGX$xfh!`8Y2WNgiBejko5?;|Q0b-ft}gbOdoQPN@i5t8`~O(# zf>l$loTGv#`s1;$$Ar)9tT$_KzE$55_uV*1s(!y#)vDaxJolTc z^_AGS^IZA-CvSfHhuFNE?-@^t8J@E^ao&6t&q?{Z-X$Vy=S~k z{zz~0_d10Y5l4S-K6h+Fg62Pe(>*t0FMe2-Z@Oj4i}1)jZO?9MI90^!oSU^FV~)|~ z+N5b#ZB4Ts&A=&7^x-Gstb#e<3T0-#cs!S;e;P0iTnX z%e2kY&((HbmXy@lJI^E?-d&zucQ~8W(TDx+VeW~-#gruM*zd0I9zIE;qdO7dgijSaa-K_AxPrSmwmm8>D z7QVBqT;Sib(hrIoq{ZinMH>62SQoZ>m$q{`95DOntMO07d8?G?VWonvVO2BPGIt9^ z=A6@2`<9ky9>3gBwN{Q>S@Tnkd+_Vf$SIc@dV@};8*pmQ zNQ*B2WjA-~i{9W>%7G3Ik;_;Qe30l_e0QeUjRkg(qbxk;+FhU67Z{VKa%FbYnv7pI z+6Df5X3i--wg6ooxPpVuxR;j z6VnRg-KEX(&jox>$32qeZ?crX`RVeKy6dsOt`+92TXACZhNo}0E_L&?KP8oLBw&kr z?#bSlH#KCHA*<+by)AyfUNR;{va$R*H}8#EGOtte0`nD3{oS6VCE ze<|_w$(dRItka_el7ltwv|h|in03|4Fs^xv&7`)e{X!=w9ENt&3IgKDrzCqVfzH5 zeQzok1PlG??X`40zujZ)QD%`D7hG1nUe(1B#!w%l70K-R(s}jKU5+9tipT9|9$r01 zW=<>DwX)ay%9n;+dtmARi1Ur`v02*}U1grR!mC7iZIZ<-C1km_^3WXYEw#M@4GeK~IWeS-GWUZ-8g`oAY# z=8)WZe*a=o=Pwyiou3cc-R(Fy+dl8mGsUMox)m4xO24*gn|iaY@TEhTV9?z9gGT$W zPFd-2{r8GI?!1F9qZT=v{z-r9H}&o%CEEm#^y%A@EB(CB8AT|(HJ_7ECg#v^w`^U- z*9D8U71UJgmaY{vy?6S*<)LRDp5?C!`qn(qJpKOv?mXef0!HzMXRB*VbtP8peC5pZ z-L&Q9)bBIQ4JwvdwB)ZTqWr3w@phhh(^~oO~n3 zd#l-`v>ea1Z_O4=6Ifrn+}F<~^IS#jvS$*zPS1^$VbQgT^YHI=&RS;_zLSlacmAy{ z7fx@;xc125#5^C*wEvU(vQqDDo%(dbOLm3dX8&*8Pktt7w>FpAU~%$oH;cL7l?9Ya z{|o)zc;7_b@_O*Zm|x`uR+{#g-(Ngmoh%pkb8>}`!$~#vil(bOn)G_o7V#cts{S2Y zAXFMGUbx9OUh?kA?OwbFFW7e7S@3^mxXGq7HS5l|Tl?<0WS8q4lDRtlqm#<1qMv3Z zx(|cuUJ3A|B{|f6X4}hFkXBoO5~h&gsjP#4p%L3g_h= z=u*&HG3VpF|10aR{gPGQF#G1L`qO{6PBD%QcBoN*YEvp!tiwD>;Rv6qU{PyPfDH%^@k8Slko%Hrgek^<_bJnIxfyw))1^cLgtYUU%l-S6#sP)|G%K}r<~aQCQN&Q`FcCV<6tGV2=7`i8J;|Acb4*u0yfCa{RH z_!29B(xxA$g6IBqY^nd3x$o_jUq>eW+yB@6MC}IM=)5kamXPn)ewDR7pA`J;(cPfU za~>q5zt40#toGtY#AEUQUlu1h2maA&3-J`X5VGXTgikB)dayl9F?##OTzmQ7Rp-*r zO`5MaYcf0AOp%kv*d%gICKvA7m^HEe+UfNMKU>@bSLm+osC7@@5`SRwT)ukH2$V{Y zgU6(kQ#U@D(7O1QR>CXpp4fLxb1tu3Ge@JK-#uBTYF~*((S@Z`E=_s(uUGcD?{S7t zKLyra^!7AwUid3qT0Cm)ijzm&E^F886fD%&3)rW1<#c8J%1E!fqPH%aeTkFWurk8S zKHfcG85jHi*AnfuvA*no8dm=KZZy^J%+u5VCQJC#PrhWA@V8%*Z^zlQHdTM#GM<|D z<63!3;@kO!?}B`-xU6%ZZh$nN`uH zf5hXVuwK#;?%0fd7Z%n;ZvB6tO}AciWX*Y^R$_7 zesDT!(YuF-3RD)<#c#?gi`@{fwPX*pw<>+8JLl34&r_);6F0spvk{%lWOKauhUw4j z*vmqPr*vp{D?R!6^}AK*GRcp|vcZt8`D$mbiZX8ZV_;yosqT8{W4877ozE5&%d3SH z9+~IY)}r^?^75YMaMq$voEt74NSh{e*l}g^EtPK`e;#PgT{463`P9bpUlR|q@5;$x zP*^g1-nHW8a?57k3{#aAI`D3jo|)aT{i>gro?ZW2=#$JvH&3~_*IHcWI4-F2Gkca2 zliK&@#g=$e5q9V@Efq=W7s8%)AA04FG7En#vS&JUZUQH46 z{Ez>xduLWFz4N@(gJrI2f3xMja=OpjyrcD0Q$F*jU+?)01z11uC+-dqRpru1D2WPk zxBEAF!@|8=Wdb#o-@p1{xcQRkg+=XJIvP<6bZY)sB=)DQdz8?_)xJ30uT*abXZ4?L zjqdXQYbHqS=)U0nVcE;+@<)x1>s~TV(mt?fl0{Y1ZXW&pH@BrIZap>Q$^|_iU+;4< z&MLG2yZq9y{*-^sdPCF7Pk*O~`^^-1mynTDD*fklBAdPYiHj>(8(ZVv+qtXiS+yI!2%Bul^6t36M$5@BQXcvr z+;r}HT-}Yoe{N24owD3&#~G10=;Ew^X+I_2b6I|v{ow93$uD7vD%YPEJlgLa9w+uX zZeH1s+BelwH`|}=tke9WX#9vN&i_ zztHsWZ0S@7@!Q4|FFrW&>ygUlqH~G7Ki2$_?LH>8PEkPr)lUm~8_p`OgyWU>c^9u) z>sNT_b!=PK**a6zMom|YIAVof(xSJ`xYOKa{wJ7 zu;`B3sonnzSQo$C%upHQuUPoc@XCGW!t`CYm)krqJGlPY+3Z&}PW#PQFT8ple5;~{ z1n&z$R1)->-#)(Qchh^y#YLf^YLcbF&Kh_7uCz5!=UHu#$j^KEdt)OC zepkMj*Qa`U>KRiWo(?Ocn#dEVV0lZkTEK)rLvCuX|G9nyRwdN3MC#+*bYiukrLnn#Zgb-jf%zlBkl>-D*G8`_{6a zjUk=83S!Rte0zM0HR0$=wbue>jW1rQ+t(WCu+1uKbdK#=#CiMs;l7tON&IPzw;L}y z$L(nGWWRUVrn_4%ruVP$^lW1b2Io27S4?ioUbE!hfm`-AA@62~q-?V2`8!{P{rl#7 z{BNFY?|OCZVVq8yrQkA+!loy251KE!T-jA!#wB+yn%UDLFY4;aZ_V@1^Iw79eS9O{ z_=;iE+K<;>9I4s;DbQ^Bx5(Byd!8P%Euy?!T6_0wC{NL~k>*~+*`Oz^{W9W282fvd zf`^N@U)X$bj{vi3Udua~t_s058|FsOy{0G_`95EM&n`2i9ldWvwe{#h<@LX&F1rt{qNfKbnkSV;He?s4&=+kZP@$P}2Q^57wi1K_idB1x4V5J_t@Jx8&f{q*yMiRH>vJsq*=)G5U=e@_ixu8k!L8Kv$pWM zZa`Hl`$VbpQ)Q#o=JLe9KIhJ0^z?&2Uy;}2R`;n9CdvBA@&*$oh|52EH0RL~Md7J0 zd7EOq3wZke{SR&3`qgFiq}h{;qj@GiLS)t>_f%(nu&QCX#36jqzOM26ZHp-VpZd#Y zl?wiKn4NAvGidhW`q<|B-KUSd|F=hEp+nK-1MSn!i%_y#9#?|$zly{adwN%uCjTL zB9&x(*toLhtUvTkzsmN1*xIS}`u?dM6Aqhg%JaB>NnP-}>P)tUynQ-}vNGn=nG4;t zT&^D2JYD18zf8O05czbIiXDkxlT?(2nTx7cSh0NJ`D-`xMG_=$T-&>#$lwC|mOpkf z?|Ywr3jiMjF(+;F3w|qMu|O`@5Ropg>t|{rF0uaI6C|T5<7@V=l8dL~U$|dI_EWw} z@3RJ6#u`0>mokFNep&y&YvXOtap<|d$fJxO&27I{?3QRt zZJTeIQ7R^Qs`ZlGEB3{?!OBngzF%H{=3Cx}x)irJB%Si$wEJGGz|;t_^`94R-r~8B z$LmYVt=q-z?Tn8%m%3lz(f#*1b=}Dh`I>8UeinV}?u_MNeg9MJ)h>~+8M+r2mdTZ5 z#j8iDubyu$5Vk}}Ea1=&QSGMrM?Teww|9w%O4!tHFPz<7di&h3Ygyv!woGODch`Kz z>~Pmo{tNp>Ii47w3f!>f`Z~*!C!YiK79aVzFvDV5$dY2)v! z>iiLUi`F&mJJl7v*Zseh{mjluoAwkQxa?Ezf4<=TqQ|Cln>aU5f5Y5xG;<=O;)2b_ zfgKIZtEcX?@{tIeP-!Tn*P8e_bN{-7`|mz|RQ^AXD`0_T<;LrfBRf2zF7c}=x!yF} zHJ|fc+q~Jezcqw&o_|}>?R=-m%h)OD?wkI!Ch`A|pRNenuGVrxXnEwP#j76#KE3aA zv3|DI6Qi7K65Cd|vDfu)-m)-YN0BU>!Na7>1ic80j;LeJYT z-v2N8sPjjed(I!H=W`#nSWgw+DbVL^v(#uxgL8n}1{ceogUA0Z|K9#OS7UeUQBlSj z-QVMO-28iZ(MKuo8&5A!KI^cnU-(#S3e#D|6W%lS9KIWQPPuu5Y5M;cY5O{7+vNFO zeJ0Pgz{PsT#F8cVE1JT0+|dqjd4F>o+cEzvuR{M{i}p?H=Y4VH(0#`&UV~$N%bskV zq$VCBrZ;WhQL9yUZQG}>aAADQH~qz~6W27EAN{y)Ir%e(Qs{IionK|=yM$RIPM&@o znw(sG#`)m~p^L9$7qp&LHc@6TIJ>Xdfxl!Mr|o0mvPP#3g?@C4(H*RXRj$KvU}G@HT##H!Z-A8 z<*R5N>sTaeC~%f}_Pt+MAKh7H_b=e*MztWdqwQDv@@tmwZ?KujzVuJ;yK;3DkA#E?ANNp={EBgJ*@5iCCU5Y5j%UAe?rCX)R!eDjXShE>$s-+b}dQp+I7UD z5q=K23TNolhtCE6ow_jdRC~SL>D#BaoVhlAZJ|qY-f_hPK`v3VrK;{9vzxVhh31P0 zf5&Y~i=^}N9z5z7ik9}3Ri9(=cNysH&`L3Gub`dJdr}2u4puk4J4stT)P;=IW;fw zJv_Hzt#jL@vqwYtj_0T!cjC@b4%cl8S|qmSnbPdCE{-SDA6#|oTbVY`>rnQ&%TFFp zJF3Wjz+sL?UxcI6^M#8Z{`}7tvE|;?ck6$*n}lncrhXIMGTmNBs`F>+`mU?DoZo#o zq+^)r$Y+?q^ZDw`yy*6}m`=O(hBv!1rf_zd%DjuMRukHj{gf9mn+ko8_yeK76i8UpFJR&-1e4-`uL`T^+XEod20xR?o@Qw>?Bwf<!&)gSq@Jc^S7w z&z`enE`K?BK}J{2SD95!;Yzl`wYshw=VUNn+r$#s_U^1A7mHQUvz^yw3uLkucdGH^ zZ-066?EI(3f~N%{?<}mW+8@vuz-2jQU&b`qz24Kj99))3$rY7%vIiI`d20N6drm9P z-cBSnw&ZfJ)5RG!tNVitb}lc77wBGLWVq;pTDbqaSbnAL=CKOD69Tq#DK~8Y8a(^0 z-&3!r+tVgJ*f)EVM{b&o+?*e;(j7Im_gN_XF)i3=Com;h&ARew|azbvh?yy=;f?LZ2P8^wW7>*RnH5z3yGSjW{U8E+ur0 z`e%Xd(TBHbcdmD-@;KNn8&K7eVJ!LAVC%%B-1{4h`Je2R)oQCME@)ab<@S{_6)t5yZ!_t})*Hyy(fO+XB~_lMkv*z2WSg^+R-lsoc9gUzsf*OnTx|ndftO%c^^t zF8Sf-HdG2do60=@HAAEB?xT9;cXB1CUgSL?E&bh3&ABi9n`gku=_gJv?CJ}9kQ}70 zYukT%p|Z#_@FnLm_muj54Bp;c)BG&=!oScjKW9JKeBnj9^ep*Z;h$tJjz#XsG08Z6 zCUE+ms>6pnlCq48WCN~CiuYUFv<33%bWWd=^Juc4is60d#cGCyO>RyZ8ZzP=V^4)= zn)B@!;F)i!eP7Q~UV6H;FUJ+uIUhVT&mBD1-MeZjqmACw9qLc+*ZMa&x2^i{boZ21 zS^QkKY@zLo{wd5068Ppnf1-%Ssxw9FxKFH4Gn{|bI7Dt&^Q)Nmy~f_x*A<_hvOapz zG&>$WUbaG~#@#lDn=O(*D?Bi~&3fvR=%n`_U;0LIMC9r=%8IewyI%G|b=_9We`$L( zAD+>hb0>GpS@93ApWXJ}V;{}@;~?j(<*(0(m|bROJ#gF0A?E(uN>(P%+XWBuUQ1rt z6K&_Gv|JoCqM7_+-PHs^q>oRMm$20$efgeZO0ZSDB=oyJY*O=JDyIZCl>v z>GDkN`~BNz`mL1f&n6!TcAoZPYxJQ_B_~AtyEGCP_edr!=H*^6f6C=0?Moy7UzT!B z&6}|4p77O8iaD9<777J7^Br|qo#;EoQGNG`N%QMKl`R9uebC{n47y7tS`+77{qkvD zSWN(Xu~OxfeTyE?s%Wd9SRcJH?aImrEuXJ_XjSS8jE!5lq+;#Y=qf`Q>09s5u(p`g znm6sce*WUCqYHK^-ZC@vQZ%YCUv|OgqnP~an&-}@a#7cEm%fbQlj^wdRgrCxyvtsi z_2d0SiTn>wuk_DRHb1dJSTo7U)LT*ITd(W%V87<(jql&JFSXRt-TY3=>zUj{-rrC5 zC+S`+9!eZ=7i_Y8vvp~^c$ zr@4o@NJ(x#^zO#R#p}-LzkBa&v8HC{|7TNoFk3A?d^KM=$ZyBC-Ek%7V?;lSxD+hB zm-UR3gSBZ!)M=(!+G}dAD=GdteX;l)i_Wq6xw9rbOI}xf_4tI}$%P@OuQRxmc&T@9 z-MDIVkzex{tDFSUt6yGtcDn@|HE2IAU-PEp$M)x)L0(g4P5n3fgK%%(s-Um0=85jG zd${=B>wDebZC5_{tRB7of*zA=-x5ZSyA}KVLK^cACh#(y zRNUxed|J$E$#(u8=Zm{T%~sak$@xERNEnZIA`78q@GSfLQ5r`P6Myl}$NM~CVp_t^V# zs7>W9{jj2`v*EdO)Q*Dfr6CMjT}|hDGjHy;O8p_@wfX$C?H_-e*%WP^@lUtK>5(s^ zO1DJbbw>8~V2zoFA9Q!@+%Yq2|5G|$EUnKn9{sj%TQJF zynCSGtQWa*+TM-}jW=K3U1_hj&2HcQ1rM)fE&I>kC48y>^hT@lKUUd&yKXlx5D;5A zab0rtq=_dK(?5Mpf44ZqD*Ny;@AbS3-}!Gl5_d9hfj2MPd5TbtCX0MpOk8qS8N3m)>l#hD=EpgRRU>p z&M!(;Fx4~BGf=YQQczH^DN0GR3UYCSYA;GjvsKC{DJihh*Do(G*DE*H%P&gTH?*|0 z)Hg8FH!{*KN=ef#uFNY*tkBIXR)!b?Gsh*hIJqdZpd>RtPXT0ZVp4u-iLH_n$RY(8 zfVeZYA`@X#Ua=n7(R#`Gx%wa(eM3D1eYn{m<3XZU0htx4IT0?Ixv6=@nfZBkhK6QF zHed}HQV1(;z*<9#Q;VGQb8}PkO6-D@i&9hbiZk*{pqh~-(KUkYj6~RJZfFA4g)Rft fX`>JFI#N(T!Wk?YWup&{5m4;daWMb@?|oT| diff --git a/docs/assets/js/docify.js b/docs/assets/js/docify.js index 8b05f8d0..287ff480 100644 --- a/docs/assets/js/docify.js +++ b/docs/assets/js/docify.js @@ -1,5134 +1,5134 @@ (function () { - /** - * Create a cached version of a pure function. - */ - function cached(fn) { - var cache = Object.create(null); - return function (str) { - var key = isPrimitive(str) ? str : JSON.stringify(str); - var hit = cache[key]; - return hit || (cache[key] = fn(str)) + /** + * Create a cached version of a pure function. + */ + function cached(fn) { + var cache = Object.create(null); + return function (str) { + var key = isPrimitive(str) ? str : JSON.stringify(str); + var hit = cache[key]; + return hit || (cache[key] = fn(str)) + } + } + + /** + * Hyphenate a camelCase string. + */ + var hyphenate = cached(function (str) { + return str.replace(/([A-Z])/g, function (m) { return '-' + m.toLowerCase(); }) + }); + + var hasOwn = Object.prototype.hasOwnProperty; + + /** + * Simple Object.assign polyfill + */ + var merge = + Object.assign || + function (to) { + var arguments$1 = arguments; + + for (var i = 1; i < arguments.length; i++) { + var from = Object(arguments$1[i]); + + for (var key in from) { + if (hasOwn.call(from, key)) { + to[key] = from[key]; + } + } + } + + return to + }; + + /** + * Check if value is primitive + */ + function isPrimitive(value) { + return typeof value === 'string' || typeof value === 'number' + } + + /** + * Perform no operation. + */ + function noop() {} + + /** + * Check if value is function + */ + function isFn(obj) { + return typeof obj === 'function' + } + + function config () { + var config = merge( + { + el: '#app', + repo: '', + maxLevel: 6, + subMaxLevel: 0, + loadSidebar: null, + loadNavbar: null, + homepage: 'README.md', + coverpage: '', + basePath: '', + auto2top: false, + name: '', + themeColor: '', + nameLink: window.location.pathname, + autoHeader: false, + executeScript: null, + noEmoji: false, + ga: '', + ext: '.md', + mergeNavbar: false, + formatUpdated: '', + externalLinkTarget: '_blank', + routerMode: 'hash', + noCompileLinks: [], + relativePath: false + }, + window.$docsify + ); + + var script = + document.currentScript || + [].slice + .call(document.getElementsByTagName('script')) + .filter(function (n) { return /docsify\./.test(n.src); })[0]; + + if (script) { + for (var prop in config) { + if (hasOwn.call(config, prop)) { + var val = script.getAttribute('data-' + hyphenate(prop)); + + if (isPrimitive(val)) { + config[prop] = val === '' ? true : val; + } + } + } + + if (config.loadSidebar === true) { + config.loadSidebar = '_sidebar' + config.ext; + } + if (config.loadNavbar === true) { + config.loadNavbar = '_navbar' + config.ext; + } + if (config.coverpage === true) { + config.coverpage = '_coverpage' + config.ext; + } + if (config.repo === true) { + config.repo = ''; + } + if (config.name === true) { + config.name = ''; } } - - /** - * Hyphenate a camelCase string. - */ - var hyphenate = cached(function (str) { - return str.replace(/([A-Z])/g, function (m) { return '-' + m.toLowerCase(); }) + + window.$docsify = config; + + return config + } + + function initLifecycle(vm) { + var hooks = [ + 'init', + 'mounted', + 'beforeEach', + 'afterEach', + 'doneEach', + 'ready' + ]; + + vm._hooks = {}; + vm._lifecycle = {}; + hooks.forEach(function (hook) { + var arr = (vm._hooks[hook] = []); + vm._lifecycle[hook] = function (fn) { return arr.push(fn); }; }); - - var hasOwn = Object.prototype.hasOwnProperty; - - /** - * Simple Object.assign polyfill - */ - var merge = - Object.assign || - function (to) { - var arguments$1 = arguments; - - for (var i = 1; i < arguments.length; i++) { - var from = Object(arguments$1[i]); - - for (var key in from) { - if (hasOwn.call(from, key)) { - to[key] = from[key]; - } - } - } - - return to - }; - - /** - * Check if value is primitive - */ - function isPrimitive(value) { - return typeof value === 'string' || typeof value === 'number' - } - - /** - * Perform no operation. - */ - function noop() {} - - /** - * Check if value is function - */ - function isFn(obj) { - return typeof obj === 'function' - } - - function config () { - var config = merge( - { - el: '#app', - repo: '', - maxLevel: 6, - subMaxLevel: 0, - loadSidebar: null, - loadNavbar: null, - homepage: 'README.md', - coverpage: '', - basePath: '', - auto2top: false, - name: '', - themeColor: '', - nameLink: window.location.pathname, - autoHeader: false, - executeScript: null, - noEmoji: false, - ga: '', - ext: '.md', - mergeNavbar: false, - formatUpdated: '', - externalLinkTarget: '_blank', - routerMode: 'hash', - noCompileLinks: [], - relativePath: false - }, - window.$docsify - ); - - var script = - document.currentScript || - [].slice - .call(document.getElementsByTagName('script')) - .filter(function (n) { return /docsify\./.test(n.src); })[0]; - - if (script) { - for (var prop in config) { - if (hasOwn.call(config, prop)) { - var val = script.getAttribute('data-' + hyphenate(prop)); - - if (isPrimitive(val)) { - config[prop] = val === '' ? true : val; - } - } - } - - if (config.loadSidebar === true) { - config.loadSidebar = '_sidebar' + config.ext; - } - if (config.loadNavbar === true) { - config.loadNavbar = '_navbar' + config.ext; - } - if (config.coverpage === true) { - config.coverpage = '_coverpage' + config.ext; - } - if (config.repo === true) { - config.repo = ''; - } - if (config.name === true) { - config.name = ''; - } - } - - window.$docsify = config; - - return config - } - - function initLifecycle(vm) { - var hooks = [ - 'init', - 'mounted', - 'beforeEach', - 'afterEach', - 'doneEach', - 'ready' - ]; - - vm._hooks = {}; - vm._lifecycle = {}; - hooks.forEach(function (hook) { - var arr = (vm._hooks[hook] = []); - vm._lifecycle[hook] = function (fn) { return arr.push(fn); }; - }); - } - - function callHook(vm, hook, data, next) { - if ( next === void 0 ) next = noop; - - var queue = vm._hooks[hook]; - - var step = function (index) { - var hook = queue[index]; - if (index >= queue.length) { - next(data); - } else if (typeof hook === 'function') { - if (hook.length === 2) { - hook(data, function (result) { - data = result; - step(index + 1); - }); - } else { - var result = hook(data); - data = result === undefined ? data : result; + } + + function callHook(vm, hook, data, next) { + if ( next === void 0 ) next = noop; + + var queue = vm._hooks[hook]; + + var step = function (index) { + var hook = queue[index]; + if (index >= queue.length) { + next(data); + } else if (typeof hook === 'function') { + if (hook.length === 2) { + hook(data, function (result) { + data = result; step(index + 1); - } + }); } else { + var result = hook(data); + data = result === undefined ? data : result; step(index + 1); } - }; - - step(0); - } - - var inBrowser = !false; - - var isMobile = inBrowser && document.body.clientWidth <= 600; - - /** - * @see https://github.com/MoOx/pjax/blob/master/lib/is-supported.js - */ - var supportsPushState = - inBrowser && - (function () { - // Borrowed wholesale from https://github.com/defunkt/jquery-pjax - return ( - window.history && - window.history.pushState && - window.history.replaceState && - // PushState isn’t reliable on iOS until 5. - !navigator.userAgent.match( - /((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/ - ) - ) - })(); - - var cacheNode = {}; - - /** - * Get Node - * @param {String|Element} el - * @param {Boolean} noCache - * @return {Element} - */ - function getNode(el, noCache) { - if ( noCache === void 0 ) noCache = false; - - if (typeof el === 'string') { - if (typeof window.Vue !== 'undefined') { - return find(el) - } - el = noCache ? find(el) : cacheNode[el] || (cacheNode[el] = find(el)); - } - - return el - } - - var $ = inBrowser && document; - - var body = inBrowser && $.body; - - var head = inBrowser && $.head; - - /** - * Find element - * @example - * find('nav') => document.querySelector('nav') - * find(nav, 'a') => nav.querySelector('a') - */ - function find(el, node) { - if(el == null) return; - return node ? el.querySelector(node) : $.querySelector(el) - } - - /** - * Find all elements - * @example - * findAll('a') => [].slice.call(document.querySelectorAll('a')) - * findAll(nav, 'a') => [].slice.call(nav.querySelectorAll('a')) - */ - function findAll(el, node) { - return [].slice.call( - node ? el.querySelectorAll(node) : $.querySelectorAll(el) - ) - } - - function create(node, tpl) { - node = $.createElement(node); - if (tpl) { - node.innerHTML = tpl; - } - return node - } - - function appendTo(target, el) { - return target.appendChild(el) - } - - function before(target, el) { - if(target == null) return; - return target.insertBefore(el, target.children[0]) - } - - function on(el, type, handler) { - if(el == null) return; - isFn(type) ? - window.addEventListener(el, type) : - el.addEventListener(type, handler); - } - - function off(el, type, handler) { - isFn(type) ? - window.removeEventListener(el, type) : - el.removeEventListener(type, handler); - } - - /** - * Toggle class - * - * @example - * toggleClass(el, 'active') => el.classList.toggle('active') - * toggleClass(el, 'add', 'active') => el.classList.add('active') - */ - function toggleClass(el, type, val) { - el && el.classList[val ? type : 'toggle'](val || type); - } - - function style(content) { - appendTo(head, create('style', content)); - } - - - var dom = Object.freeze({ - getNode: getNode, - $: $, - body: body, - head: head, - find: find, - findAll: findAll, - create: create, - appendTo: appendTo, - before: before, - on: on, - off: off, - toggleClass: toggleClass, - style: style - }); - - /** - * Render github corner - * @param {Object} data - * @return {String} - */ - function corner(data) { - if (!data) { - return '' - } - if (!/\/\//.test(data)) { - data = 'https://github.com/' + data; - } - data = data.replace(/^git\+/, ''); - - return ( - "" + - '' + - '' - ) - } - - /** - * Render main content - */ - function main(config) { - var aside = - '' + - '

'; - return ( - ("
") + - '
' + - '
' + - '
' + - '
' - ) - - // return ( - // (isMobile ? (aside + "
") : ("
" + aside)) + - // '
' + - // '
' + - // '
' + - // '
' - // ) - } - - /** - * Cover Page - */ - function cover() { - var SL = ', 100%, 85%'; - var bgc = - 'linear-gradient(to left bottom, ' + - "hsl(" + (Math.floor(Math.random() * 255) + SL) + ") 0%," + - "hsl(" + (Math.floor(Math.random() * 255) + SL) + ") 100%)"; - - return ( - "
" + - '
' + - '
' + - '
' - ) - } - - /** - * Render tree - * @param {Array} tree - * @param {String} tpl - * @return {String} - */ - function tree(toc, tpl) { - if ( tpl === void 0 ) tpl = '
    {inner}
'; - - if (!toc || !toc.length) { - return '' - } - var innerHTML = ''; - toc.forEach(function (node) { - innerHTML += "
  • " + (node.title) + "
  • "; - if (node.children) { - innerHTML += tree(node.children, tpl); - } - }); - return tpl.replace('{inner}', innerHTML) - } - - function helper(className, content) { - return ("

    " + (content.slice(5).trim()) + "

    ") - } - - function theme(color) { - return ("") - } - - var barEl; - var timeId; - - /** - * Init progress component - */ - function init() { - var div = create('div'); - - div.classList.add('progress'); - appendTo(body, div); - barEl = div; - } - /** - * Render progress bar - */ - function progressbar (ref) { - var loaded = ref.loaded; - var total = ref.total; - var step = ref.step; - - var num; - - !barEl && init(); - - if (step) { - num = parseInt(barEl.style.width || 0, 10) + step; - num = num > 80 ? 80 : num; } else { - num = Math.floor(loaded / total * 100); + step(index + 1); } - - barEl.style.opacity = 1; - barEl.style.width = num >= 95 ? '100%' : num + '%'; - - if (num >= 95) { - clearTimeout(timeId); - timeId = setTimeout(function (_) { - barEl.style.opacity = 0; - barEl.style.width = '0%'; - }, 200); - } - } - - var cache = {}; - - /** - * Simple ajax get - * @param {string} url - * @param {boolean} [hasBar=false] has progress bar - * @return { then(resolve, reject), abort } - */ - function get(url, hasBar, headers) { - if ( hasBar === void 0 ) hasBar = false; - if ( headers === void 0 ) headers = {}; - - var xhr = new XMLHttpRequest(); - var on = function () { - xhr.addEventListener.apply(xhr, arguments); - }; - var cached$$1 = cache[url]; - - if (cached$$1) { - return {then: function (cb) { return cb(cached$$1.content, cached$$1.opt); }, abort: noop} - } - - xhr.open('GET', url); - for (var i in headers) { - if (hasOwn.call(headers, i)) { - xhr.setRequestHeader(i, headers[i]); - } - } - xhr.send(); - - return { - then: function (success, error) { - if ( error === void 0 ) error = noop; - - if (hasBar) { - var id = setInterval( - function (_) { return progressbar({ - step: Math.floor(Math.random() * 5 + 1) - }); }, - 500 - ); - - on('progress', progressbar); - on('loadend', function (evt) { - progressbar(evt); - clearInterval(id); - }); - } - - on('error', error); - on('load', function (ref) { - var target = ref.target; - - if (target.status >= 400) { - error(target); - } else { - var result = (cache[url] = { - content: target.response, - opt: { - updatedAt: xhr.getResponseHeader('last-modified') - } - }); - - success(result.content, result.opt); - } - }); - }, - abort: function (_) { return xhr.readyState !== 4 && xhr.abort(); } - } - } - - function replaceVar(block, color) { - block.innerHTML = block.innerHTML.replace( - /var\(\s*--theme-color.*?\)/g, - color - ); - } - - function cssVars (color) { - // Variable support - if (window.CSS && window.CSS.supports && window.CSS.supports('(--v:red)')) { - return - } - - var styleBlocks = findAll('style:not(.inserted),link'); - [].forEach.call(styleBlocks, function (block) { - if (block.nodeName === 'STYLE') { - replaceVar(block, color); - } else if (block.nodeName === 'LINK') { - var href = block.getAttribute('href'); - - if (!/\.css$/.test(href)) { - return - } - - get(href).then(function (res) { - var style$$1 = create('style', res); - - head.appendChild(style$$1); - replaceVar(style$$1, color); - }); - } - }); - } - - var RGX = /([^{]*?)\w(?=\})/g; - - var dict = { - YYYY: 'getFullYear', - YY: 'getYear', - MM: function (d) { - return d.getMonth() + 1; - }, - DD: 'getDate', - HH: 'getHours', - mm: 'getMinutes', - ss: 'getSeconds' }; - - function tinydate (str) { - var parts=[], offset=0; - str.replace(RGX, function (key, _, idx) { - // save preceding string - parts.push(str.substring(offset, idx - 1)); - offset = idx += key.length + 1; - // save function - parts.push(function(d){ - return ('00' + (typeof dict[key]==='string' ? d[dict[key]]() : dict[key](d))).slice(-key.length); - }); - }); - - if (offset !== str.length) { - parts.push(str.substring(offset)); - } - - return function (arg) { - var out='', i=0, d=arg||new Date(); - for (; i document.querySelector('nav') + * find(nav, 'a') => nav.querySelector('a') + */ + function find(el, node) { + if(el == null) return; + return node ? el.querySelector(node) : $.querySelector(el) + } + + /** + * Find all elements + * @example + * findAll('a') => [].slice.call(document.querySelectorAll('a')) + * findAll(nav, 'a') => [].slice.call(nav.querySelectorAll('a')) + */ + function findAll(el, node) { + return [].slice.call( + node ? el.querySelectorAll(node) : $.querySelectorAll(el) + ) + } + + function create(node, tpl) { + node = $.createElement(node); + if (tpl) { + node.innerHTML = tpl; } - - var marked = createCommonjsModule(function (module, exports) { - /** - * marked - a markdown parser - * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT Licensed) - * https://github.com/markedjs/marked - */ - - (function(root) { - var block = { - newline: /^\n+/, - code: /^( {4}[^\n]+\n*)+/, - fences: noop, - hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/, - heading: /^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/, - nptable: noop, - blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/, - list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, - html: '^ {0,3}(?:' // optional indentation - + '<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)' // (1) - + '|comment[^\\n]*(\\n+|$)' // (2) - + '|<\\?[\\s\\S]*?\\?>\\n*' // (3) - + '|\\n*' // (4) - + '|\\n*' // (5) - + '|)[\\s\\S]*?(?:\\n{2,}|$)' // (6) - + '|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)' // (7) open tag - + '|(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)' // (7) closing tag - + ')', - def: /^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/, - table: noop, - lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, - paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/, - text: /^[^\n]+/ - }; - - block._label = /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/; - block._title = /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/; - block.def = edit(block.def) - .replace('label', block._label) - .replace('title', block._title) - .getRegex(); - - block.bullet = /(?:[*+-]|\d+\.)/; - block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; - block.item = edit(block.item, 'gm') - .replace(/bull/g, block.bullet) - .getRegex(); - - block.list = edit(block.list) - .replace(/bull/g, block.bullet) - .replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))') - .replace('def', '\\n+(?=' + block.def.source + ')') - .getRegex(); - - block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' - + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' - + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' - + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' - + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' - + '|track|ul'; - block._comment = //; - block.html = edit(block.html, 'i') - .replace('comment', block._comment) - .replace('tag', block._tag) - .replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/) - .getRegex(); - - block.paragraph = edit(block.paragraph) - .replace('hr', block.hr) - .replace('heading', block.heading) - .replace('lheading', block.lheading) - .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks - .getRegex(); - - block.blockquote = edit(block.blockquote) - .replace('paragraph', block.paragraph) - .getRegex(); - - /** - * Normal Block Grammar - */ - - block.normal = merge({}, block); - - /** - * GFM Block Grammar - */ - - block.gfm = merge({}, block.normal, { - fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/, - paragraph: /^/, - heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ + return node + } + + function appendTo(target, el) { + return target.appendChild(el) + } + + function before(target, el) { + if(target == null) return; + return target.insertBefore(el, target.children[0]) + } + + function on(el, type, handler) { + if(el == null) return; + isFn(type) ? + window.addEventListener(el, type) : + el.addEventListener(type, handler); + } + + function off(el, type, handler) { + isFn(type) ? + window.removeEventListener(el, type) : + el.removeEventListener(type, handler); + } + + /** + * Toggle class + * + * @example + * toggleClass(el, 'active') => el.classList.toggle('active') + * toggleClass(el, 'add', 'active') => el.classList.add('active') + */ + function toggleClass(el, type, val) { + el && el.classList[val ? type : 'toggle'](val || type); + } + + function style(content) { + appendTo(head, create('style', content)); + } + + + var dom = Object.freeze({ + getNode: getNode, + $: $, + body: body, + head: head, + find: find, + findAll: findAll, + create: create, + appendTo: appendTo, + before: before, + on: on, + off: off, + toggleClass: toggleClass, + style: style + }); + + /** + * Render github corner + * @param {Object} data + * @return {String} + */ + function corner(data) { + if (!data) { + return '' + } + if (!/\/\//.test(data)) { + data = 'https://github.com/' + data; + } + data = data.replace(/^git\+/, ''); + + return ( + "" + + '' + + '' + ) + } + + /** + * Render main content + */ + function main(config) { + var aside = + '' + + ''; + return ( + ("
    ") + + '
    ' + + '
    ' + + '
    ' + + '
    ' + ) + + // return ( + // (isMobile ? (aside + "
    ") : ("
    " + aside)) + + // '
    ' + + // '
    ' + + // '
    ' + + // '
    ' + // ) + } + + /** + * Cover Page + */ + function cover() { + var SL = ', 100%, 85%'; + var bgc = + 'linear-gradient(to left bottom, ' + + "hsl(" + (Math.floor(Math.random() * 255) + SL) + ") 0%," + + "hsl(" + (Math.floor(Math.random() * 255) + SL) + ") 100%)"; + + return ( + "
    " + + '
    ' + + '
    ' + + '
    ' + ) + } + + /** + * Render tree + * @param {Array} tree + * @param {String} tpl + * @return {String} + */ + function tree(toc, tpl) { + if ( tpl === void 0 ) tpl = '
      {inner}
    '; + + if (!toc || !toc.length) { + return '' + } + var innerHTML = ''; + toc.forEach(function (node) { + innerHTML += "
  • " + (node.title) + "
  • "; + if (node.children) { + innerHTML += tree(node.children, tpl); + } }); - - block.gfm.paragraph = edit(block.paragraph) - .replace('(?!', '(?!' - + block.gfm.fences.source.replace('\\1', '\\2') + '|' - + block.list.source.replace('\\1', '\\3') + '|') - .getRegex(); - - /** - * GFM + Tables Block Grammar - */ - - block.tables = merge({}, block.gfm, { - nptable: /^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/, - table: /^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/ - }); - - /** - * Pedantic grammar - */ - - block.pedantic = merge({}, block.normal, { - html: edit( - '^ *(?:comment *(?:\\n|\\s*$)' - + '|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)' // closed tag - + '|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))') - .replace('comment', block._comment) - .replace(/tag/g, '(?!(?:' - + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' - + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' - + '\\b)\\w+(?!:|[^\\w\\s@]*@)\\b') - .getRegex(), - def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/ - }); - - /** - * Block Lexer - */ - - function Lexer(options) { - this.tokens = []; - this.tokens.links = Object.create(null); - this.options = options || marked.defaults; - this.rules = block.normal; - - if (this.options.pedantic) { - this.rules = block.pedantic; - } else if (this.options.gfm) { - if (this.options.tables) { - this.rules = block.tables; - } else { - this.rules = block.gfm; - } + return tpl.replace('{inner}', innerHTML) + } + + function helper(className, content) { + return ("

    " + (content.slice(5).trim()) + "

    ") + } + + function theme(color) { + return ("") + } + + var barEl; + var timeId; + + /** + * Init progress component + */ + function init() { + var div = create('div'); + + div.classList.add('progress'); + appendTo(body, div); + barEl = div; + } + /** + * Render progress bar + */ + function progressbar (ref) { + var loaded = ref.loaded; + var total = ref.total; + var step = ref.step; + + var num; + + !barEl && init(); + + if (step) { + num = parseInt(barEl.style.width || 0, 10) + step; + num = num > 80 ? 80 : num; + } else { + num = Math.floor(loaded / total * 100); + } + + barEl.style.opacity = 1; + barEl.style.width = num >= 95 ? '100%' : num + '%'; + + if (num >= 95) { + clearTimeout(timeId); + timeId = setTimeout(function (_) { + barEl.style.opacity = 0; + barEl.style.width = '0%'; + }, 200); + } + } + + var cache = {}; + + /** + * Simple ajax get + * @param {string} url + * @param {boolean} [hasBar=false] has progress bar + * @return { then(resolve, reject), abort } + */ + function get(url, hasBar, headers) { + if ( hasBar === void 0 ) hasBar = false; + if ( headers === void 0 ) headers = {}; + + var xhr = new XMLHttpRequest(); + var on = function () { + xhr.addEventListener.apply(xhr, arguments); + }; + var cached$$1 = cache[url]; + + if (cached$$1) { + return {then: function (cb) { return cb(cached$$1.content, cached$$1.opt); }, abort: noop} + } + + xhr.open('GET', url); + for (var i in headers) { + if (hasOwn.call(headers, i)) { + xhr.setRequestHeader(i, headers[i]); } } - - /** - * Expose Block Rules - */ - - Lexer.rules = block; - - /** - * Static Lex Method - */ - - Lexer.lex = function(src, options) { - var lexer = new Lexer(options); - return lexer.lex(src); - }; - - /** - * Preprocessing - */ - - Lexer.prototype.lex = function(src) { - src = src - .replace(/\r\n|\r/g, '\n') - .replace(/\t/g, ' ') - .replace(/\u00a0/g, ' ') - .replace(/\u2424/g, '\n'); - - return this.token(src, true); - }; - - /** - * Lexing - */ - - Lexer.prototype.token = function(src, top) { - var this$1 = this; - - src = src.replace(/^ +$/gm, ''); - var next, - loose, - cap, - bull, - b, - item, - listStart, - listItems, - t, - space, - i, - tag, - l, - isordered, - istask, - ischecked; - - while (src) { - // newline - if (cap = this$1.rules.newline.exec(src)) { - src = src.substring(cap[0].length); - if (cap[0].length > 1) { - this$1.tokens.push({ - type: 'space' - }); - } - } - - // code - if (cap = this$1.rules.code.exec(src)) { - src = src.substring(cap[0].length); - cap = cap[0].replace(/^ {4}/gm, ''); - this$1.tokens.push({ - type: 'code', - text: !this$1.options.pedantic - ? rtrim(cap, '\n') - : cap + xhr.send(); + + return { + then: function (success, error) { + if ( error === void 0 ) error = noop; + + if (hasBar) { + var id = setInterval( + function (_) { return progressbar({ + step: Math.floor(Math.random() * 5 + 1) + }); }, + 500 + ); + + on('progress', progressbar); + on('loadend', function (evt) { + progressbar(evt); + clearInterval(id); }); - continue; } - - // fences (gfm) - if (cap = this$1.rules.fences.exec(src)) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'code', - lang: cap[2], - text: cap[3] || '' - }); - continue; - } - - // heading - if (cap = this$1.rules.heading.exec(src)) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'heading', - depth: cap[1].length, - text: cap[2] - }); - continue; - } - - // table no leading pipe (gfm) - if (top && (cap = this$1.rules.nptable.exec(src))) { - item = { - type: 'table', - header: splitCells(cap[1].replace(/^ *| *\| *$/g, '')), - align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), - cells: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : [] - }; - - if (item.header.length === item.align.length) { - src = src.substring(cap[0].length); - - for (i = 0; i < item.align.length; i++) { - if (/^ *-+: *$/.test(item.align[i])) { - item.align[i] = 'right'; - } else if (/^ *:-+: *$/.test(item.align[i])) { - item.align[i] = 'center'; - } else if (/^ *:-+ *$/.test(item.align[i])) { - item.align[i] = 'left'; - } else { - item.align[i] = null; + + on('error', error); + on('load', function (ref) { + var target = ref.target; + + if (target.status >= 400) { + error(target); + } else { + var result = (cache[url] = { + content: target.response, + opt: { + updatedAt: xhr.getResponseHeader('last-modified') } - } - - for (i = 0; i < item.cells.length; i++) { - item.cells[i] = splitCells(item.cells[i], item.header.length); - } - - this$1.tokens.push(item); - - continue; + }); + + success(result.content, result.opt); } + }); + }, + abort: function (_) { return xhr.readyState !== 4 && xhr.abort(); } + } + } + + function replaceVar(block, color) { + block.innerHTML = block.innerHTML.replace( + /var\(\s*--theme-color.*?\)/g, + color + ); + } + + function cssVars (color) { + // Variable support + if (window.CSS && window.CSS.supports && window.CSS.supports('(--v:red)')) { + return + } + + var styleBlocks = findAll('style:not(.inserted),link'); + [].forEach.call(styleBlocks, function (block) { + if (block.nodeName === 'STYLE') { + replaceVar(block, color); + } else if (block.nodeName === 'LINK') { + var href = block.getAttribute('href'); + + if (!/\.css$/.test(href)) { + return } - - // hr - if (cap = this$1.rules.hr.exec(src)) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'hr' + + get(href).then(function (res) { + var style$$1 = create('style', res); + + head.appendChild(style$$1); + replaceVar(style$$1, color); + }); + } + }); + } + + var RGX = /([^{]*?)\w(?=\})/g; + + var dict = { + YYYY: 'getFullYear', + YY: 'getYear', + MM: function (d) { + return d.getMonth() + 1; + }, + DD: 'getDate', + HH: 'getHours', + mm: 'getMinutes', + ss: 'getSeconds' + }; + + function tinydate (str) { + var parts=[], offset=0; + str.replace(RGX, function (key, _, idx) { + // save preceding string + parts.push(str.substring(offset, idx - 1)); + offset = idx += key.length + 1; + // save function + parts.push(function(d){ + return ('00' + (typeof dict[key]==='string' ? d[dict[key]]() : dict[key](d))).slice(-key.length); }); - continue; - } - - // blockquote - if (cap = this$1.rules.blockquote.exec(src)) { - src = src.substring(cap[0].length); - - this$1.tokens.push({ - type: 'blockquote_start' - }); - - cap = cap[0].replace(/^ *> ?/gm, ''); - - // Pass `top` to keep the current - // "toplevel" state. This is exactly - // how markdown.pl works. - this$1.token(cap, top); - + }); + + if (offset !== str.length) { + parts.push(str.substring(offset)); + } + + return function (arg) { + var out='', i=0, d=arg||new Date(); + for (; i ?(paragraph|[^\n]*)(?:\n|$))+/, + list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, + html: '^ {0,3}(?:' // optional indentation + + '<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)' // (1) + + '|comment[^\\n]*(\\n+|$)' // (2) + + '|<\\?[\\s\\S]*?\\?>\\n*' // (3) + + '|\\n*' // (4) + + '|\\n*' // (5) + + '|)[\\s\\S]*?(?:\\n{2,}|$)' // (6) + + '|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)' // (7) open tag + + '|(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)' // (7) closing tag + + ')', + def: /^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/, + table: noop, + lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, + paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/, + text: /^[^\n]+/ + }; + + block._label = /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/; + block._title = /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/; + block.def = edit(block.def) + .replace('label', block._label) + .replace('title', block._title) + .getRegex(); + + block.bullet = /(?:[*+-]|\d+\.)/; + block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; + block.item = edit(block.item, 'gm') + .replace(/bull/g, block.bullet) + .getRegex(); + + block.list = edit(block.list) + .replace(/bull/g, block.bullet) + .replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))') + .replace('def', '\\n+(?=' + block.def.source + ')') + .getRegex(); + + block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + + '|track|ul'; + block._comment = //; + block.html = edit(block.html, 'i') + .replace('comment', block._comment) + .replace('tag', block._tag) + .replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/) + .getRegex(); + + block.paragraph = edit(block.paragraph) + .replace('hr', block.hr) + .replace('heading', block.heading) + .replace('lheading', block.lheading) + .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks + .getRegex(); + + block.blockquote = edit(block.blockquote) + .replace('paragraph', block.paragraph) + .getRegex(); + + /** + * Normal Block Grammar + */ + + block.normal = merge({}, block); + + /** + * GFM Block Grammar + */ + + block.gfm = merge({}, block.normal, { + fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/, + paragraph: /^/, + heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ + }); + + block.gfm.paragraph = edit(block.paragraph) + .replace('(?!', '(?!' + + block.gfm.fences.source.replace('\\1', '\\2') + '|' + + block.list.source.replace('\\1', '\\3') + '|') + .getRegex(); + + /** + * GFM + Tables Block Grammar + */ + + block.tables = merge({}, block.gfm, { + nptable: /^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/, + table: /^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/ + }); + + /** + * Pedantic grammar + */ + + block.pedantic = merge({}, block.normal, { + html: edit( + '^ *(?:comment *(?:\\n|\\s*$)' + + '|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)' // closed tag + + '|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))') + .replace('comment', block._comment) + .replace(/tag/g, '(?!(?:' + + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + + '\\b)\\w+(?!:|[^\\w\\s@]*@)\\b') + .getRegex(), + def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/ + }); + + /** + * Block Lexer + */ + + function Lexer(options) { + this.tokens = []; + this.tokens.links = Object.create(null); + this.options = options || marked.defaults; + this.rules = block.normal; + + if (this.options.pedantic) { + this.rules = block.pedantic; + } else if (this.options.gfm) { + if (this.options.tables) { + this.rules = block.tables; + } else { + this.rules = block.gfm; + } + } + } + + /** + * Expose Block Rules + */ + + Lexer.rules = block; + + /** + * Static Lex Method + */ + + Lexer.lex = function(src, options) { + var lexer = new Lexer(options); + return lexer.lex(src); + }; + + /** + * Preprocessing + */ + + Lexer.prototype.lex = function(src) { + src = src + .replace(/\r\n|\r/g, '\n') + .replace(/\t/g, ' ') + .replace(/\u00a0/g, ' ') + .replace(/\u2424/g, '\n'); + + return this.token(src, true); + }; + + /** + * Lexing + */ + + Lexer.prototype.token = function(src, top) { + var this$1 = this; + + src = src.replace(/^ +$/gm, ''); + var next, + loose, + cap, + bull, + b, + item, + listStart, + listItems, + t, + space, + i, + tag, + l, + isordered, + istask, + ischecked; + + while (src) { + // newline + if (cap = this$1.rules.newline.exec(src)) { + src = src.substring(cap[0].length); + if (cap[0].length > 1) { this$1.tokens.push({ - type: 'blockquote_end' + type: 'space' }); - - continue; } - - // list - if (cap = this$1.rules.list.exec(src)) { + } + + // code + if (cap = this$1.rules.code.exec(src)) { + src = src.substring(cap[0].length); + cap = cap[0].replace(/^ {4}/gm, ''); + this$1.tokens.push({ + type: 'code', + text: !this$1.options.pedantic + ? rtrim(cap, '\n') + : cap + }); + continue; + } + + // fences (gfm) + if (cap = this$1.rules.fences.exec(src)) { + src = src.substring(cap[0].length); + this$1.tokens.push({ + type: 'code', + lang: cap[2], + text: cap[3] || '' + }); + continue; + } + + // heading + if (cap = this$1.rules.heading.exec(src)) { + src = src.substring(cap[0].length); + this$1.tokens.push({ + type: 'heading', + depth: cap[1].length, + text: cap[2] + }); + continue; + } + + // table no leading pipe (gfm) + if (top && (cap = this$1.rules.nptable.exec(src))) { + item = { + type: 'table', + header: splitCells(cap[1].replace(/^ *| *\| *$/g, '')), + align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), + cells: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : [] + }; + + if (item.header.length === item.align.length) { src = src.substring(cap[0].length); - bull = cap[2]; - isordered = bull.length > 1; - - listStart = { - type: 'list_start', - ordered: isordered, - start: isordered ? +bull : '', - loose: false - }; - - this$1.tokens.push(listStart); - - // Get each top-level item. - cap = cap[0].match(this$1.rules.item); - - listItems = []; - next = false; - l = cap.length; - i = 0; - - for (; i < l; i++) { - item = cap[i]; - - // Remove the list item's bullet - // so it is seen as the next token. - space = item.length; - item = item.replace(/^ *([*+-]|\d+\.) +/, ''); - - // Outdent whatever the - // list item contains. Hacky. - if (~item.indexOf('\n ')) { - space -= item.length; - item = !this$1.options.pedantic - ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') - : item.replace(/^ {1,4}/gm, ''); - } - - // Determine whether the next list item belongs here. - // Backpedal if it does not belong in this list. - if (this$1.options.smartLists && i !== l - 1) { - b = block.bullet.exec(cap[i + 1])[0]; - if (bull !== b && !(bull.length > 1 && b.length > 1)) { - src = cap.slice(i + 1).join('\n') + src; - i = l - 1; - } - } - - // Determine whether item is loose or not. - // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ - // for discount behavior. - loose = next || /\n\n(?!\s*$)/.test(item); - if (i !== l - 1) { - next = item.charAt(item.length - 1) === '\n'; - if (!loose) { loose = next; } - } - - if (loose) { - listStart.loose = true; - } - - // Check for task list items - istask = /^\[[ xX]\] /.test(item); - ischecked = undefined; - if (istask) { - ischecked = item[1] !== ' '; - item = item.replace(/^\[[ xX]\] +/, ''); + + for (i = 0; i < item.align.length; i++) { + if (/^ *-+: *$/.test(item.align[i])) { + item.align[i] = 'right'; + } else if (/^ *:-+: *$/.test(item.align[i])) { + item.align[i] = 'center'; + } else if (/^ *:-+ *$/.test(item.align[i])) { + item.align[i] = 'left'; + } else { + item.align[i] = null; } - - t = { - type: 'list_item_start', - task: istask, - checked: ischecked, - loose: loose - }; - - listItems.push(t); - this$1.tokens.push(t); - - // Recurse. - this$1.token(item, false); - - this$1.tokens.push({ - type: 'list_item_end' - }); } - - if (listStart.loose) { - l = listItems.length; - i = 0; - for (; i < l; i++) { - listItems[i].loose = true; - } + + for (i = 0; i < item.cells.length; i++) { + item.cells[i] = splitCells(item.cells[i], item.header.length); } - - this$1.tokens.push({ - type: 'list_end' - }); - + + this$1.tokens.push(item); + continue; } - - // html - if (cap = this$1.rules.html.exec(src)) { - src = src.substring(cap[0].length); + } + + // hr + if (cap = this$1.rules.hr.exec(src)) { + src = src.substring(cap[0].length); + this$1.tokens.push({ + type: 'hr' + }); + continue; + } + + // blockquote + if (cap = this$1.rules.blockquote.exec(src)) { + src = src.substring(cap[0].length); + + this$1.tokens.push({ + type: 'blockquote_start' + }); + + cap = cap[0].replace(/^ *> ?/gm, ''); + + // Pass `top` to keep the current + // "toplevel" state. This is exactly + // how markdown.pl works. + this$1.token(cap, top); + + this$1.tokens.push({ + type: 'blockquote_end' + }); + + continue; + } + + // list + if (cap = this$1.rules.list.exec(src)) { + src = src.substring(cap[0].length); + bull = cap[2]; + isordered = bull.length > 1; + + listStart = { + type: 'list_start', + ordered: isordered, + start: isordered ? +bull : '', + loose: false + }; + + this$1.tokens.push(listStart); + + // Get each top-level item. + cap = cap[0].match(this$1.rules.item); + + listItems = []; + next = false; + l = cap.length; + i = 0; + + for (; i < l; i++) { + item = cap[i]; + + // Remove the list item's bullet + // so it is seen as the next token. + space = item.length; + item = item.replace(/^ *([*+-]|\d+\.) +/, ''); + + // Outdent whatever the + // list item contains. Hacky. + if (~item.indexOf('\n ')) { + space -= item.length; + item = !this$1.options.pedantic + ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') + : item.replace(/^ {1,4}/gm, ''); + } + + // Determine whether the next list item belongs here. + // Backpedal if it does not belong in this list. + if (this$1.options.smartLists && i !== l - 1) { + b = block.bullet.exec(cap[i + 1])[0]; + if (bull !== b && !(bull.length > 1 && b.length > 1)) { + src = cap.slice(i + 1).join('\n') + src; + i = l - 1; + } + } + + // Determine whether item is loose or not. + // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ + // for discount behavior. + loose = next || /\n\n(?!\s*$)/.test(item); + if (i !== l - 1) { + next = item.charAt(item.length - 1) === '\n'; + if (!loose) { loose = next; } + } + + if (loose) { + listStart.loose = true; + } + + // Check for task list items + istask = /^\[[ xX]\] /.test(item); + ischecked = undefined; + if (istask) { + ischecked = item[1] !== ' '; + item = item.replace(/^\[[ xX]\] +/, ''); + } + + t = { + type: 'list_item_start', + task: istask, + checked: ischecked, + loose: loose + }; + + listItems.push(t); + this$1.tokens.push(t); + + // Recurse. + this$1.token(item, false); + this$1.tokens.push({ - type: this$1.options.sanitize - ? 'paragraph' - : 'html', - pre: !this$1.options.sanitizer - && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'), - text: cap[0] + type: 'list_item_end' }); - continue; } - - // def - if (top && (cap = this$1.rules.def.exec(src))) { - src = src.substring(cap[0].length); - if (cap[3]) { cap[3] = cap[3].substring(1, cap[3].length - 1); } - tag = cap[1].toLowerCase().replace(/\s+/g, ' '); - if (!this$1.tokens.links[tag]) { - this$1.tokens.links[tag] = { - href: cap[2], - title: cap[3] - }; + + if (listStart.loose) { + l = listItems.length; + i = 0; + for (; i < l; i++) { + listItems[i].loose = true; } - continue; } - - // table (gfm) - if (top && (cap = this$1.rules.table.exec(src))) { - item = { - type: 'table', - header: splitCells(cap[1].replace(/^ *| *\| *$/g, '')), - align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), - cells: cap[3] ? cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') : [] + + this$1.tokens.push({ + type: 'list_end' + }); + + continue; + } + + // html + if (cap = this$1.rules.html.exec(src)) { + src = src.substring(cap[0].length); + this$1.tokens.push({ + type: this$1.options.sanitize + ? 'paragraph' + : 'html', + pre: !this$1.options.sanitizer + && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'), + text: cap[0] + }); + continue; + } + + // def + if (top && (cap = this$1.rules.def.exec(src))) { + src = src.substring(cap[0].length); + if (cap[3]) { cap[3] = cap[3].substring(1, cap[3].length - 1); } + tag = cap[1].toLowerCase().replace(/\s+/g, ' '); + if (!this$1.tokens.links[tag]) { + this$1.tokens.links[tag] = { + href: cap[2], + title: cap[3] }; - - if (item.header.length === item.align.length) { - src = src.substring(cap[0].length); - - for (i = 0; i < item.align.length; i++) { - if (/^ *-+: *$/.test(item.align[i])) { - item.align[i] = 'right'; - } else if (/^ *:-+: *$/.test(item.align[i])) { - item.align[i] = 'center'; - } else if (/^ *:-+ *$/.test(item.align[i])) { - item.align[i] = 'left'; - } else { - item.align[i] = null; - } + } + continue; + } + + // table (gfm) + if (top && (cap = this$1.rules.table.exec(src))) { + item = { + type: 'table', + header: splitCells(cap[1].replace(/^ *| *\| *$/g, '')), + align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), + cells: cap[3] ? cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') : [] + }; + + if (item.header.length === item.align.length) { + src = src.substring(cap[0].length); + + for (i = 0; i < item.align.length; i++) { + if (/^ *-+: *$/.test(item.align[i])) { + item.align[i] = 'right'; + } else if (/^ *:-+: *$/.test(item.align[i])) { + item.align[i] = 'center'; + } else if (/^ *:-+ *$/.test(item.align[i])) { + item.align[i] = 'left'; + } else { + item.align[i] = null; } - - for (i = 0; i < item.cells.length; i++) { - item.cells[i] = splitCells( - item.cells[i].replace(/^ *\| *| *\| *$/g, ''), - item.header.length); - } - - this$1.tokens.push(item); - - continue; + } + + for (i = 0; i < item.cells.length; i++) { + item.cells[i] = splitCells( + item.cells[i].replace(/^ *\| *| *\| *$/g, ''), + item.header.length); } - } - - // lheading - if (cap = this$1.rules.lheading.exec(src)) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'heading', - depth: cap[2] === '=' ? 1 : 2, - text: cap[1] - }); + + this$1.tokens.push(item); + continue; } - - // top-level paragraph - if (top && (cap = this$1.rules.paragraph.exec(src))) { - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'paragraph', - text: cap[1].charAt(cap[1].length - 1) === '\n' - ? cap[1].slice(0, -1) - : cap[1] - }); - continue; - } - - // text - if (cap = this$1.rules.text.exec(src)) { - // Top-level should never reach here. - src = src.substring(cap[0].length); - this$1.tokens.push({ - type: 'text', - text: cap[0] - }); - continue; - } - - if (src) { - throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); - } + } + + // lheading + if (cap = this$1.rules.lheading.exec(src)) { + src = src.substring(cap[0].length); + this$1.tokens.push({ + type: 'heading', + depth: cap[2] === '=' ? 1 : 2, + text: cap[1] + }); + continue; + } + + // top-level paragraph + if (top && (cap = this$1.rules.paragraph.exec(src))) { + src = src.substring(cap[0].length); + this$1.tokens.push({ + type: 'paragraph', + text: cap[1].charAt(cap[1].length - 1) === '\n' + ? cap[1].slice(0, -1) + : cap[1] + }); + continue; + } + + // text + if (cap = this$1.rules.text.exec(src)) { + // Top-level should never reach here. + src = src.substring(cap[0].length); + this$1.tokens.push({ + type: 'text', + text: cap[0] + }); + continue; + } + + if (src) { + throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); } - - return this.tokens; - }; - - /** - * Inline-Level Grammar - */ - - var inline = { - escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, - autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/, - url: noop, - tag: '^comment' - + '|^' // self-closing tag - + '|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' // open tag - + '|^<\\?[\\s\\S]*?\\?>' // processing instruction, e.g. - + '|^' // declaration, e.g. - + '|^', // CDATA section - link: /^!?\[(label)\]\(href(?:\s+(title))?\s*\)/, - reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/, - nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/, - strong: /^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/, - em: /^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/, - code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, - br: /^( {2,}|\\)\n(?!\s*$)/, - del: noop, - text: /^(`+|[^`])[\s\S]*?(?=[\\?@\[\]\\^_`{|}~])/g; - - inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/; - inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/; - inline.autolink = edit(inline.autolink) - .replace('scheme', inline._scheme) - .replace('email', inline._email) - .getRegex(); - - inline._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/; - - inline.tag = edit(inline.tag) - .replace('comment', block._comment) - .replace('attribute', inline._attribute) - .getRegex(); - - inline._label = /(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/; - inline._href = /\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f\\]*\)|[^\s\x00-\x1f()\\])*?)/; - inline._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/; - - inline.link = edit(inline.link) + } + + return this.tokens; + }; + + /** + * Inline-Level Grammar + */ + + var inline = { + escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, + autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/, + url: noop, + tag: '^comment' + + '|^' // self-closing tag + + '|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' // open tag + + '|^<\\?[\\s\\S]*?\\?>' // processing instruction, e.g. + + '|^' // declaration, e.g. + + '|^', // CDATA section + link: /^!?\[(label)\]\(href(?:\s+(title))?\s*\)/, + reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/, + nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/, + strong: /^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/, + em: /^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/, + code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, + br: /^( {2,}|\\)\n(?!\s*$)/, + del: noop, + text: /^(`+|[^`])[\s\S]*?(?=[\\?@\[\]\\^_`{|}~])/g; + + inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/; + inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/; + inline.autolink = edit(inline.autolink) + .replace('scheme', inline._scheme) + .replace('email', inline._email) + .getRegex(); + + inline._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/; + + inline.tag = edit(inline.tag) + .replace('comment', block._comment) + .replace('attribute', inline._attribute) + .getRegex(); + + inline._label = /(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/; + inline._href = /\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f\\]*\)|[^\s\x00-\x1f()\\])*?)/; + inline._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/; + + inline.link = edit(inline.link) + .replace('label', inline._label) + .replace('href', inline._href) + .replace('title', inline._title) + .getRegex(); + + inline.reflink = edit(inline.reflink) + .replace('label', inline._label) + .getRegex(); + + /** + * Normal Inline Grammar + */ + + inline.normal = merge({}, inline); + + /** + * Pedantic Inline Grammar + */ + + inline.pedantic = merge({}, inline.normal, { + strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, + em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/, + link: edit(/^!?\[(label)\]\((.*?)\)/) .replace('label', inline._label) - .replace('href', inline._href) - .replace('title', inline._title) - .getRegex(); - - inline.reflink = edit(inline.reflink) + .getRegex(), + reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/) .replace('label', inline._label) - .getRegex(); - - /** - * Normal Inline Grammar - */ - - inline.normal = merge({}, inline); - - /** - * Pedantic Inline Grammar - */ - - inline.pedantic = merge({}, inline.normal, { - strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, - em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/, - link: edit(/^!?\[(label)\]\((.*?)\)/) - .replace('label', inline._label) - .getRegex(), - reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/) - .replace('label', inline._label) - .getRegex() - }); - - /** - * GFM Inline Grammar - */ - - inline.gfm = merge({}, inline.normal, { - escape: edit(inline.escape).replace('])', '~|])').getRegex(), - _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/, - url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, - _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/, - del: /^~+(?=\S)([\s\S]*?\S)~+/, - text: edit(inline.text) - .replace(']|', '~]|') - .replace('|$', '|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&\'*+/=?^_`{\\|}~-]+@|$') - .getRegex() - }); - - inline.gfm.url = edit(inline.gfm.url) - .replace('email', inline.gfm._extended_email) - .getRegex(); - /** - * GFM + Line Breaks Inline Grammar - */ - - inline.breaks = merge({}, inline.gfm, { - br: edit(inline.br).replace('{2,}', '*').getRegex(), - text: edit(inline.gfm.text).replace('{2,}', '*').getRegex() - }); - - /** - * Inline Lexer & Compiler - */ - - function InlineLexer(links, options) { - this.options = options || marked.defaults; - this.links = links; - this.rules = inline.normal; - this.renderer = this.options.renderer || new Renderer(); - this.renderer.options = this.options; - - if (!this.links) { - throw new Error('Tokens array requires a `links` property.'); + .getRegex() + }); + + /** + * GFM Inline Grammar + */ + + inline.gfm = merge({}, inline.normal, { + escape: edit(inline.escape).replace('])', '~|])').getRegex(), + _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/, + url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, + _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/, + del: /^~+(?=\S)([\s\S]*?\S)~+/, + text: edit(inline.text) + .replace(']|', '~]|') + .replace('|$', '|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&\'*+/=?^_`{\\|}~-]+@|$') + .getRegex() + }); + + inline.gfm.url = edit(inline.gfm.url) + .replace('email', inline.gfm._extended_email) + .getRegex(); + /** + * GFM + Line Breaks Inline Grammar + */ + + inline.breaks = merge({}, inline.gfm, { + br: edit(inline.br).replace('{2,}', '*').getRegex(), + text: edit(inline.gfm.text).replace('{2,}', '*').getRegex() + }); + + /** + * Inline Lexer & Compiler + */ + + function InlineLexer(links, options) { + this.options = options || marked.defaults; + this.links = links; + this.rules = inline.normal; + this.renderer = this.options.renderer || new Renderer(); + this.renderer.options = this.options; + + if (!this.links) { + throw new Error('Tokens array requires a `links` property.'); + } + + if (this.options.pedantic) { + this.rules = inline.pedantic; + } else if (this.options.gfm) { + if (this.options.breaks) { + this.rules = inline.breaks; + } else { + this.rules = inline.gfm; + } + } + } + + /** + * Expose Inline Rules + */ + + InlineLexer.rules = inline; + + /** + * Static Lexing/Compiling Method + */ + + InlineLexer.output = function(src, links, options) { + var inline = new InlineLexer(links, options); + return inline.output(src); + }; + + /** + * Lexing/Compiling + */ + + InlineLexer.prototype.output = function(src) { + var this$1 = this; + + var out = '', + link, + text, + href, + title, + cap, + prevCapZero; + + while (src) { + // escape + if (cap = this$1.rules.escape.exec(src)) { + src = src.substring(cap[0].length); + out += cap[1]; + continue; } - - if (this.options.pedantic) { - this.rules = inline.pedantic; - } else if (this.options.gfm) { - if (this.options.breaks) { - this.rules = inline.breaks; + + // autolink + if (cap = this$1.rules.autolink.exec(src)) { + src = src.substring(cap[0].length); + if (cap[2] === '@') { + text = escape(this$1.mangle(cap[1])); + href = 'mailto:' + text; } else { - this.rules = inline.gfm; + text = escape(cap[1]); + href = text; } + out += this$1.renderer.link(href, null, text); + continue; } - } - - /** - * Expose Inline Rules - */ - - InlineLexer.rules = inline; - - /** - * Static Lexing/Compiling Method - */ - - InlineLexer.output = function(src, links, options) { - var inline = new InlineLexer(links, options); - return inline.output(src); - }; - - /** - * Lexing/Compiling - */ - - InlineLexer.prototype.output = function(src) { - var this$1 = this; - - var out = '', - link, - text, - href, - title, - cap, - prevCapZero; - - while (src) { - // escape - if (cap = this$1.rules.escape.exec(src)) { - src = src.substring(cap[0].length); - out += cap[1]; - continue; - } - - // autolink - if (cap = this$1.rules.autolink.exec(src)) { - src = src.substring(cap[0].length); - if (cap[2] === '@') { - text = escape(this$1.mangle(cap[1])); - href = 'mailto:' + text; + + // url (gfm) + if (!this$1.inLink && (cap = this$1.rules.url.exec(src))) { + if (cap[2] === '@') { + text = escape(cap[0]); + href = 'mailto:' + text; + } else { + // do extended autolink path validation + do { + prevCapZero = cap[0]; + cap[0] = this$1.rules._backpedal.exec(cap[0])[0]; + } while (prevCapZero !== cap[0]); + text = escape(cap[0]); + if (cap[1] === 'www.') { + href = 'http://' + text; } else { - text = escape(cap[1]); href = text; } - out += this$1.renderer.link(href, null, text); - continue; - } - - // url (gfm) - if (!this$1.inLink && (cap = this$1.rules.url.exec(src))) { - if (cap[2] === '@') { - text = escape(cap[0]); - href = 'mailto:' + text; - } else { - // do extended autolink path validation - do { - prevCapZero = cap[0]; - cap[0] = this$1.rules._backpedal.exec(cap[0])[0]; - } while (prevCapZero !== cap[0]); - text = escape(cap[0]); - if (cap[1] === 'www.') { - href = 'http://' + text; - } else { - href = text; - } - } - src = src.substring(cap[0].length); - out += this$1.renderer.link(href, null, text); - continue; - } - - // tag - if (cap = this$1.rules.tag.exec(src)) { - if (!this$1.inLink && /^/i.test(cap[0])) { - this$1.inLink = false; - } - if (!this$1.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])) { - this$1.inRawBlock = true; - } else if (this$1.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])) { - this$1.inRawBlock = false; - } - - src = src.substring(cap[0].length); - out += this$1.options.sanitize - ? this$1.options.sanitizer - ? this$1.options.sanitizer(cap[0]) - : escape(cap[0]) - : cap[0]; - continue; - } - - // link - if (cap = this$1.rules.link.exec(src)) { - src = src.substring(cap[0].length); - this$1.inLink = true; - href = cap[2]; - if (this$1.options.pedantic) { - link = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href); - - if (link) { - href = link[1]; - title = link[3]; - } else { - title = ''; - } - } else { - title = cap[3] ? cap[3].slice(1, -1) : ''; - } - href = href.trim().replace(/^<([\s\S]*)>$/, '$1'); - out += this$1.outputLink(cap, { - href: InlineLexer.escapes(href), - title: InlineLexer.escapes(title) - }); - this$1.inLink = false; - continue; - } - - // reflink, nolink - if ((cap = this$1.rules.reflink.exec(src)) - || (cap = this$1.rules.nolink.exec(src))) { - src = src.substring(cap[0].length); - link = (cap[2] || cap[1]).replace(/\s+/g, ' '); - link = this$1.links[link.toLowerCase()]; - if (!link || !link.href) { - out += cap[0].charAt(0); - src = cap[0].substring(1) + src; - continue; - } - this$1.inLink = true; - out += this$1.outputLink(cap, link); - this$1.inLink = false; - continue; - } - - // strong - if (cap = this$1.rules.strong.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.strong(this$1.output(cap[4] || cap[3] || cap[2] || cap[1])); - continue; - } - - // em - if (cap = this$1.rules.em.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.em(this$1.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1])); - continue; - } - - // code - if (cap = this$1.rules.code.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.codespan(escape(cap[2].trim(), true)); - continue; - } - - // br - if (cap = this$1.rules.br.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.br(); - continue; - } - - // del (gfm) - if (cap = this$1.rules.del.exec(src)) { - src = src.substring(cap[0].length); - out += this$1.renderer.del(this$1.output(cap[1])); - continue; - } - - // text - if (cap = this$1.rules.text.exec(src)) { - src = src.substring(cap[0].length); - if (this$1.inRawBlock) { - out += this$1.renderer.text(cap[0]); - } else { - out += this$1.renderer.text(escape(this$1.smartypants(cap[0]))); - } - continue; - } - - if (src) { - throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); } + src = src.substring(cap[0].length); + out += this$1.renderer.link(href, null, text); + continue; } - - return out; - }; - - InlineLexer.escapes = function(text) { - return text ? text.replace(InlineLexer.rules._escapes, '$1') : text; - }; - - /** - * Compile Link - */ - - InlineLexer.prototype.outputLink = function(cap, link) { - var href = link.href, - title = link.title ? escape(link.title) : null; - - return cap[0].charAt(0) !== '!' - ? this.renderer.link(href, title, this.output(cap[1])) - : this.renderer.image(href, title, escape(cap[1])); - }; - - /** - * Smartypants Transformations - */ - - InlineLexer.prototype.smartypants = function(text) { - if (!this.options.smartypants) { return text; } - return text - // em-dashes - .replace(/---/g, '\u2014') - // en-dashes - .replace(/--/g, '\u2013') - // opening singles - .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') - // closing singles & apostrophes - .replace(/'/g, '\u2019') - // opening doubles - .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') - // closing doubles - .replace(/"/g, '\u201d') - // ellipses - .replace(/\.{3}/g, '\u2026'); - }; - - /** - * Mangle Links - */ - - InlineLexer.prototype.mangle = function(text) { - if (!this.options.mangle) { return text; } - var out = '', - l = text.length, - i = 0, - ch; - - for (; i < l; i++) { - ch = text.charCodeAt(i); - if (Math.random() > 0.5) { - ch = 'x' + ch.toString(16); + + // tag + if (cap = this$1.rules.tag.exec(src)) { + if (!this$1.inLink && /^/i.test(cap[0])) { + this$1.inLink = false; } - out += '&#' + ch + ';'; + if (!this$1.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])) { + this$1.inRawBlock = true; + } else if (this$1.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])) { + this$1.inRawBlock = false; + } + + src = src.substring(cap[0].length); + out += this$1.options.sanitize + ? this$1.options.sanitizer + ? this$1.options.sanitizer(cap[0]) + : escape(cap[0]) + : cap[0]; + continue; + } + + // link + if (cap = this$1.rules.link.exec(src)) { + src = src.substring(cap[0].length); + this$1.inLink = true; + href = cap[2]; + if (this$1.options.pedantic) { + link = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href); + + if (link) { + href = link[1]; + title = link[3]; + } else { + title = ''; + } + } else { + title = cap[3] ? cap[3].slice(1, -1) : ''; + } + href = href.trim().replace(/^<([\s\S]*)>$/, '$1'); + out += this$1.outputLink(cap, { + href: InlineLexer.escapes(href), + title: InlineLexer.escapes(title) + }); + this$1.inLink = false; + continue; + } + + // reflink, nolink + if ((cap = this$1.rules.reflink.exec(src)) + || (cap = this$1.rules.nolink.exec(src))) { + src = src.substring(cap[0].length); + link = (cap[2] || cap[1]).replace(/\s+/g, ' '); + link = this$1.links[link.toLowerCase()]; + if (!link || !link.href) { + out += cap[0].charAt(0); + src = cap[0].substring(1) + src; + continue; + } + this$1.inLink = true; + out += this$1.outputLink(cap, link); + this$1.inLink = false; + continue; + } + + // strong + if (cap = this$1.rules.strong.exec(src)) { + src = src.substring(cap[0].length); + out += this$1.renderer.strong(this$1.output(cap[4] || cap[3] || cap[2] || cap[1])); + continue; + } + + // em + if (cap = this$1.rules.em.exec(src)) { + src = src.substring(cap[0].length); + out += this$1.renderer.em(this$1.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1])); + continue; + } + + // code + if (cap = this$1.rules.code.exec(src)) { + src = src.substring(cap[0].length); + out += this$1.renderer.codespan(escape(cap[2].trim(), true)); + continue; + } + + // br + if (cap = this$1.rules.br.exec(src)) { + src = src.substring(cap[0].length); + out += this$1.renderer.br(); + continue; + } + + // del (gfm) + if (cap = this$1.rules.del.exec(src)) { + src = src.substring(cap[0].length); + out += this$1.renderer.del(this$1.output(cap[1])); + continue; + } + + // text + if (cap = this$1.rules.text.exec(src)) { + src = src.substring(cap[0].length); + if (this$1.inRawBlock) { + out += this$1.renderer.text(cap[0]); + } else { + out += this$1.renderer.text(escape(this$1.smartypants(cap[0]))); + } + continue; + } + + if (src) { + throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); } - - return out; - }; - - /** - * Renderer - */ - - function Renderer(options) { - this.options = options || marked.defaults; } - - Renderer.prototype.code = function(code, lang, escaped) { - if (this.options.highlight) { - var out = this.options.highlight(code, lang); - if (out != null && out !== code) { - escaped = true; - code = out; - } + + return out; + }; + + InlineLexer.escapes = function(text) { + return text ? text.replace(InlineLexer.rules._escapes, '$1') : text; + }; + + /** + * Compile Link + */ + + InlineLexer.prototype.outputLink = function(cap, link) { + var href = link.href, + title = link.title ? escape(link.title) : null; + + return cap[0].charAt(0) !== '!' + ? this.renderer.link(href, title, this.output(cap[1])) + : this.renderer.image(href, title, escape(cap[1])); + }; + + /** + * Smartypants Transformations + */ + + InlineLexer.prototype.smartypants = function(text) { + if (!this.options.smartypants) { return text; } + return text + // em-dashes + .replace(/---/g, '\u2014') + // en-dashes + .replace(/--/g, '\u2013') + // opening singles + .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') + // closing singles & apostrophes + .replace(/'/g, '\u2019') + // opening doubles + .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') + // closing doubles + .replace(/"/g, '\u201d') + // ellipses + .replace(/\.{3}/g, '\u2026'); + }; + + /** + * Mangle Links + */ + + InlineLexer.prototype.mangle = function(text) { + if (!this.options.mangle) { return text; } + var out = '', + l = text.length, + i = 0, + ch; + + for (; i < l; i++) { + ch = text.charCodeAt(i); + if (Math.random() > 0.5) { + ch = 'x' + ch.toString(16); } - - if (!lang) { - return '
    '
    -          + (escaped ? code : escape(code, true))
    -          + '
    '; + out += '&#' + ch + ';'; + } + + return out; + }; + + /** + * Renderer + */ + + function Renderer(options) { + this.options = options || marked.defaults; + } + + Renderer.prototype.code = function(code, lang, escaped) { + if (this.options.highlight) { + var out = this.options.highlight(code, lang); + if (out != null && out !== code) { + escaped = true; + code = out; } - - return '
    '
    +    }
    +  
    +    if (!lang) {
    +      return '
    '
             + (escaped ? code : escape(code, true))
    -        + '
    \n'; - }; - - Renderer.prototype.blockquote = function(quote) { - return '
    \n' + quote + '
    \n'; - }; - - Renderer.prototype.html = function(html) { - return html; - }; - - Renderer.prototype.heading = function(text, level, raw) { - if (this.options.headerIds) { - return '' - + text - + '\n'; - } - // ignore IDs - return '' + text + '\n'; - }; - - Renderer.prototype.hr = function() { - return this.options.xhtml ? '
    \n' : '
    \n'; - }; - - Renderer.prototype.list = function(body, ordered, start) { - var type = ordered ? 'ol' : 'ul', - startatt = (ordered && start !== 1) ? (' start="' + start + '"') : ''; - return '<' + type + startatt + '>\n' + body + '\n'; - }; - - Renderer.prototype.listitem = function(text) { - return '
  • ' + text + '
  • \n'; - }; - - Renderer.prototype.checkbox = function(checked) { - return ' '; - }; - - Renderer.prototype.paragraph = function(text) { - return '

    ' + text + '

    \n'; - }; - - Renderer.prototype.table = function(header, body) { - if (body) { body = '' + body + ''; } - - return '\n' - + '\n' - + header - + '\n' - + body - + '
    \n'; - }; - - Renderer.prototype.tablerow = function(content) { - return '\n' + content + '\n'; - }; - - Renderer.prototype.tablecell = function(content, flags) { - var type = flags.header ? 'th' : 'td'; - var tag = flags.align - ? '<' + type + ' align="' + flags.align + '">' - : '<' + type + '>'; - return tag + content + '\n'; - }; - - // span level renderer - Renderer.prototype.strong = function(text) { - return '' + text + ''; - }; - - Renderer.prototype.em = function(text) { - return '' + text + ''; - }; - - Renderer.prototype.codespan = function(text) { - return '' + text + ''; - }; - - Renderer.prototype.br = function() { - return this.options.xhtml ? '
    ' : '
    '; - }; - - Renderer.prototype.del = function(text) { - return '' + text + ''; - }; - - Renderer.prototype.link = function(href, title, text) { - if (this.options.sanitize) { - try { - var prot = decodeURIComponent(unescape(href)) - .replace(/[^\w:]/g, '') - .toLowerCase(); - } catch (e) { - return text; - } - if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) { - return text; - } - } - if (this.options.baseUrl && !originIndependentUrl.test(href)) { - href = resolveUrl(this.options.baseUrl, href); - } + + '
    '; + } + + return '
    '
    +      + (escaped ? code : escape(code, true))
    +      + '
    \n'; + }; + + Renderer.prototype.blockquote = function(quote) { + return '
    \n' + quote + '
    \n'; + }; + + Renderer.prototype.html = function(html) { + return html; + }; + + Renderer.prototype.heading = function(text, level, raw) { + if (this.options.headerIds) { + return '' + + text + + '\n'; + } + // ignore IDs + return '' + text + '\n'; + }; + + Renderer.prototype.hr = function() { + return this.options.xhtml ? '
    \n' : '
    \n'; + }; + + Renderer.prototype.list = function(body, ordered, start) { + var type = ordered ? 'ol' : 'ul', + startatt = (ordered && start !== 1) ? (' start="' + start + '"') : ''; + return '<' + type + startatt + '>\n' + body + '\n'; + }; + + Renderer.prototype.listitem = function(text) { + return '
  • ' + text + '
  • \n'; + }; + + Renderer.prototype.checkbox = function(checked) { + return ' '; + }; + + Renderer.prototype.paragraph = function(text) { + return '

    ' + text + '

    \n'; + }; + + Renderer.prototype.table = function(header, body) { + if (body) { body = '' + body + ''; } + + return '\n' + + '\n' + + header + + '\n' + + body + + '
    \n'; + }; + + Renderer.prototype.tablerow = function(content) { + return '\n' + content + '\n'; + }; + + Renderer.prototype.tablecell = function(content, flags) { + var type = flags.header ? 'th' : 'td'; + var tag = flags.align + ? '<' + type + ' align="' + flags.align + '">' + : '<' + type + '>'; + return tag + content + '\n'; + }; + + // span level renderer + Renderer.prototype.strong = function(text) { + return '' + text + ''; + }; + + Renderer.prototype.em = function(text) { + return '' + text + ''; + }; + + Renderer.prototype.codespan = function(text) { + return '' + text + ''; + }; + + Renderer.prototype.br = function() { + return this.options.xhtml ? '
    ' : '
    '; + }; + + Renderer.prototype.del = function(text) { + return '' + text + ''; + }; + + Renderer.prototype.link = function(href, title, text) { + if (this.options.sanitize) { try { - href = encodeURI(href).replace(/%25/g, '%'); + var prot = decodeURIComponent(unescape(href)) + .replace(/[^\w:]/g, '') + .toLowerCase(); } catch (e) { return text; } - var out = '
    '; - return out; - }; - - Renderer.prototype.image = function(href, title, text) { - if (this.options.baseUrl && !originIndependentUrl.test(href)) { - href = resolveUrl(this.options.baseUrl, href); - } - var out = '' + text + '' : '>'; - return out; - }; - - Renderer.prototype.text = function(text) { - return text; - }; - - /** - * TextRenderer - * returns only the textual part of the token - */ - - function TextRenderer() {} - - // no need for block level renderers - - TextRenderer.prototype.strong = - TextRenderer.prototype.em = - TextRenderer.prototype.codespan = - TextRenderer.prototype.del = - TextRenderer.prototype.text = function (text) { - return text; - }; - - TextRenderer.prototype.link = - TextRenderer.prototype.image = function(href, title, text) { - return '' + text; - }; - - TextRenderer.prototype.br = function() { - return ''; - }; - - /** - * Parsing & Compiling - */ - - function Parser(options) { - this.tokens = []; - this.token = null; - this.options = options || marked.defaults; - this.options.renderer = this.options.renderer || new Renderer(); - this.renderer = this.options.renderer; - this.renderer.options = this.options; } - - /** - * Static Parse Method - */ - - Parser.parse = function(src, options) { - var parser = new Parser(options); - return parser.parse(src); - }; - - /** - * Parse Loop - */ - - Parser.prototype.parse = function(src) { - var this$1 = this; - - this.inline = new InlineLexer(src.links, this.options); - // use an InlineLexer with a TextRenderer to extract pure text - this.inlineText = new InlineLexer( - src.links, - merge({}, this.options, {renderer: new TextRenderer()}) - ); - this.tokens = src.reverse(); - - var out = ''; - while (this.next()) { - out += this$1.tok(); + if (this.options.baseUrl && !originIndependentUrl.test(href)) { + href = resolveUrl(this.options.baseUrl, href); + } + try { + href = encodeURI(href).replace(/%25/g, '%'); + } catch (e) { + return text; + } + var out = ''; + return out; + }; + + Renderer.prototype.image = function(href, title, text) { + if (this.options.baseUrl && !originIndependentUrl.test(href)) { + href = resolveUrl(this.options.baseUrl, href); + } + var out = '' + text + '' : '>'; + return out; + }; + + Renderer.prototype.text = function(text) { + return text; + }; + + /** + * TextRenderer + * returns only the textual part of the token + */ + + function TextRenderer() {} + + // no need for block level renderers + + TextRenderer.prototype.strong = + TextRenderer.prototype.em = + TextRenderer.prototype.codespan = + TextRenderer.prototype.del = + TextRenderer.prototype.text = function (text) { + return text; + }; + + TextRenderer.prototype.link = + TextRenderer.prototype.image = function(href, title, text) { + return '' + text; + }; + + TextRenderer.prototype.br = function() { + return ''; + }; + + /** + * Parsing & Compiling + */ + + function Parser(options) { + this.tokens = []; + this.token = null; + this.options = options || marked.defaults; + this.options.renderer = this.options.renderer || new Renderer(); + this.renderer = this.options.renderer; + this.renderer.options = this.options; + } + + /** + * Static Parse Method + */ + + Parser.parse = function(src, options) { + var parser = new Parser(options); + return parser.parse(src); + }; + + /** + * Parse Loop + */ + + Parser.prototype.parse = function(src) { + var this$1 = this; + + this.inline = new InlineLexer(src.links, this.options); + // use an InlineLexer with a TextRenderer to extract pure text + this.inlineText = new InlineLexer( + src.links, + merge({}, this.options, {renderer: new TextRenderer()}) + ); + this.tokens = src.reverse(); + + var out = ''; + while (this.next()) { + out += this$1.tok(); + } + + return out; + }; + + /** + * Next Token + */ + + Parser.prototype.next = function() { + return this.token = this.tokens.pop(); + }; + + /** + * Preview Next Token + */ + + Parser.prototype.peek = function() { + return this.tokens[this.tokens.length - 1] || 0; + }; + + /** + * Parse Text Tokens + */ + + Parser.prototype.parseText = function() { + var this$1 = this; + + var body = this.token.text; + + while (this.peek().type === 'text') { + body += '\n' + this$1.next().text; + } + + return this.inline.output(body); + }; + + /** + * Parse Current Token + */ + + Parser.prototype.tok = function() { + var this$1 = this; + + switch (this.token.type) { + case 'space': { + return ''; } - - return out; - }; - - /** - * Next Token - */ - - Parser.prototype.next = function() { - return this.token = this.tokens.pop(); - }; - - /** - * Preview Next Token - */ - - Parser.prototype.peek = function() { - return this.tokens[this.tokens.length - 1] || 0; - }; - - /** - * Parse Text Tokens - */ - - Parser.prototype.parseText = function() { - var this$1 = this; - - var body = this.token.text; - - while (this.peek().type === 'text') { - body += '\n' + this$1.next().text; + case 'hr': { + return this.renderer.hr(); } - - return this.inline.output(body); - }; - - /** - * Parse Current Token - */ - - Parser.prototype.tok = function() { - var this$1 = this; - - switch (this.token.type) { - case 'space': { - return ''; + case 'heading': { + return this.renderer.heading( + this.inline.output(this.token.text), + this.token.depth, + unescape(this.inlineText.output(this.token.text))); + } + case 'code': { + return this.renderer.code(this.token.text, + this.token.lang, + this.token.escaped); + } + case 'table': { + var header = '', + body = '', + i, + row, + cell, + j; + + // header + cell = ''; + for (i = 0; i < this.token.header.length; i++) { + cell += this$1.renderer.tablecell( + this$1.inline.output(this$1.token.header[i]), + { header: true, align: this$1.token.align[i] } + ); } - case 'hr': { - return this.renderer.hr(); - } - case 'heading': { - return this.renderer.heading( - this.inline.output(this.token.text), - this.token.depth, - unescape(this.inlineText.output(this.token.text))); - } - case 'code': { - return this.renderer.code(this.token.text, - this.token.lang, - this.token.escaped); - } - case 'table': { - var header = '', - body = '', - i, - row, - cell, - j; - - // header + header += this.renderer.tablerow(cell); + + for (i = 0; i < this.token.cells.length; i++) { + row = this$1.token.cells[i]; + cell = ''; - for (i = 0; i < this.token.header.length; i++) { + for (j = 0; j < row.length; j++) { cell += this$1.renderer.tablecell( - this$1.inline.output(this$1.token.header[i]), - { header: true, align: this$1.token.align[i] } + this$1.inline.output(row[j]), + { header: false, align: this$1.token.align[j] } ); } - header += this.renderer.tablerow(cell); - - for (i = 0; i < this.token.cells.length; i++) { - row = this$1.token.cells[i]; - - cell = ''; - for (j = 0; j < row.length; j++) { - cell += this$1.renderer.tablecell( - this$1.inline.output(row[j]), - { header: false, align: this$1.token.align[j] } - ); - } - - body += this$1.renderer.tablerow(cell); - } - return this.renderer.table(header, body); + + body += this$1.renderer.tablerow(cell); } - case 'blockquote_start': { - body = ''; - - while (this.next().type !== 'blockquote_end') { - body += this$1.tok(); - } - - return this.renderer.blockquote(body); + return this.renderer.table(header, body); + } + case 'blockquote_start': { + body = ''; + + while (this.next().type !== 'blockquote_end') { + body += this$1.tok(); } - case 'list_start': { - body = ''; - var ordered = this.token.ordered, - start = this.token.start; - - while (this.next().type !== 'list_end') { - body += this$1.tok(); - } - - return this.renderer.list(body, ordered, start); + + return this.renderer.blockquote(body); + } + case 'list_start': { + body = ''; + var ordered = this.token.ordered, + start = this.token.start; + + while (this.next().type !== 'list_end') { + body += this$1.tok(); } - case 'list_item_start': { - body = ''; - var loose = this.token.loose; - - if (this.token.task) { - body += this.renderer.checkbox(this.token.checked); - } - - while (this.next().type !== 'list_item_end') { - body += !loose && this$1.token.type === 'text' - ? this$1.parseText() - : this$1.tok(); - } - - return this.renderer.listitem(body); + + return this.renderer.list(body, ordered, start); + } + case 'list_item_start': { + body = ''; + var loose = this.token.loose; + + if (this.token.task) { + body += this.renderer.checkbox(this.token.checked); } - case 'html': { - // TODO parse inline content if parameter markdown=1 - return this.renderer.html(this.token.text); - } - case 'paragraph': { - return this.renderer.paragraph(this.inline.output(this.token.text)); - } - case 'text': { - return this.renderer.paragraph(this.parseText()); + + while (this.next().type !== 'list_item_end') { + body += !loose && this$1.token.type === 'text' + ? this$1.parseText() + : this$1.tok(); } + + return this.renderer.listitem(body); + } + case 'html': { + // TODO parse inline content if parameter markdown=1 + return this.renderer.html(this.token.text); + } + case 'paragraph': { + return this.renderer.paragraph(this.inline.output(this.token.text)); + } + case 'text': { + return this.renderer.paragraph(this.parseText()); + } + } + }; + + /** + * Helpers + */ + + function escape(html, encode) { + if (encode) { + if (escape.escapeTest.test(html)) { + return html.replace(escape.escapeReplace, function (ch) { return escape.replacements[ch] }); + } + } else { + if (escape.escapeTestNoEncode.test(html)) { + return html.replace(escape.escapeReplaceNoEncode, function (ch) { return escape.replacements[ch] }); + } + } + + return html; + } + + escape.escapeTest = /[&<>"']/; + escape.escapeReplace = /[&<>"']/g; + escape.replacements = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; + + escape.escapeTestNoEncode = /[<>"']|&(?!#?\w+;)/; + escape.escapeReplaceNoEncode = /[<>"']|&(?!#?\w+;)/g; + + function unescape(html) { + // explicitly match decimal, hex, and named HTML entities + return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig, function(_, n) { + n = n.toLowerCase(); + if (n === 'colon') { return ':'; } + if (n.charAt(0) === '#') { + return n.charAt(1) === 'x' + ? String.fromCharCode(parseInt(n.substring(2), 16)) + : String.fromCharCode(+n.substring(1)); + } + return ''; + }); + } + + function edit(regex, opt) { + regex = regex.source || regex; + opt = opt || ''; + return { + replace: function(name, val) { + val = val.source || val; + val = val.replace(/(^|[^\[])\^/g, '$1'); + regex = regex.replace(name, val); + return this; + }, + getRegex: function() { + return new RegExp(regex, opt); } }; - - /** - * Helpers - */ - - function escape(html, encode) { - if (encode) { - if (escape.escapeTest.test(html)) { - return html.replace(escape.escapeReplace, function (ch) { return escape.replacements[ch] }); - } + } + + function resolveUrl(base, href) { + if (!baseUrls[' ' + base]) { + // we can ignore everything in base after the last slash of its path component, + // but we might need to add _that_ + // https://tools.ietf.org/html/rfc3986#section-3 + if (/^[^:]+:\/*[^/]*$/.test(base)) { + baseUrls[' ' + base] = base + '/'; } else { - if (escape.escapeTestNoEncode.test(html)) { - return html.replace(escape.escapeReplaceNoEncode, function (ch) { return escape.replacements[ch] }); - } - } - - return html; - } - - escape.escapeTest = /[&<>"']/; - escape.escapeReplace = /[&<>"']/g; - escape.replacements = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' - }; - - escape.escapeTestNoEncode = /[<>"']|&(?!#?\w+;)/; - escape.escapeReplaceNoEncode = /[<>"']|&(?!#?\w+;)/g; - - function unescape(html) { - // explicitly match decimal, hex, and named HTML entities - return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig, function(_, n) { - n = n.toLowerCase(); - if (n === 'colon') { return ':'; } - if (n.charAt(0) === '#') { - return n.charAt(1) === 'x' - ? String.fromCharCode(parseInt(n.substring(2), 16)) - : String.fromCharCode(+n.substring(1)); - } - return ''; - }); - } - - function edit(regex, opt) { - regex = regex.source || regex; - opt = opt || ''; - return { - replace: function(name, val) { - val = val.source || val; - val = val.replace(/(^|[^\[])\^/g, '$1'); - regex = regex.replace(name, val); - return this; - }, - getRegex: function() { - return new RegExp(regex, opt); - } - }; - } - - function resolveUrl(base, href) { - if (!baseUrls[' ' + base]) { - // we can ignore everything in base after the last slash of its path component, - // but we might need to add _that_ - // https://tools.ietf.org/html/rfc3986#section-3 - if (/^[^:]+:\/*[^/]*$/.test(base)) { - baseUrls[' ' + base] = base + '/'; - } else { - baseUrls[' ' + base] = rtrim(base, '/', true); - } - } - base = baseUrls[' ' + base]; - - if (href.slice(0, 2) === '//') { - return base.replace(/:[\s\S]*/, ':') + href; - } else if (href.charAt(0) === '/') { - return base.replace(/(:\/*[^/]*)[\s\S]*/, '$1') + href; - } else { - return base + href; + baseUrls[' ' + base] = rtrim(base, '/', true); } } - var baseUrls = {}; - var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i; - - function noop() {} - noop.exec = noop; - - function merge(obj) { - var arguments$1 = arguments; - - var i = 1, - target, - key; - - for (; i < arguments.length; i++) { - target = arguments$1[i]; - for (key in target) { - if (Object.prototype.hasOwnProperty.call(target, key)) { - obj[key] = target[key]; + base = baseUrls[' ' + base]; + + if (href.slice(0, 2) === '//') { + return base.replace(/:[\s\S]*/, ':') + href; + } else if (href.charAt(0) === '/') { + return base.replace(/(:\/*[^/]*)[\s\S]*/, '$1') + href; + } else { + return base + href; + } + } + var baseUrls = {}; + var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i; + + function noop() {} + noop.exec = noop; + + function merge(obj) { + var arguments$1 = arguments; + + var i = 1, + target, + key; + + for (; i < arguments.length; i++) { + target = arguments$1[i]; + for (key in target) { + if (Object.prototype.hasOwnProperty.call(target, key)) { + obj[key] = target[key]; + } + } + } + + return obj; + } + + function splitCells(tableRow, count) { + // ensure that every cell-delimiting pipe has a space + // before it to distinguish it from an escaped pipe + var row = tableRow.replace(/\|/g, function (match, offset, str) { + var escaped = false, + curr = offset; + while (--curr >= 0 && str[curr] === '\\') { escaped = !escaped; } + if (escaped) { + // odd number of slashes means | is escaped + // so we leave it alone + return '|'; + } else { + // add space before unescaped | + return ' |'; } - } - } - - return obj; + }), + cells = row.split(/ \|/), + i = 0; + + if (cells.length > count) { + cells.splice(count); + } else { + while (cells.length < count) { cells.push(''); } } - - function splitCells(tableRow, count) { - // ensure that every cell-delimiting pipe has a space - // before it to distinguish it from an escaped pipe - var row = tableRow.replace(/\|/g, function (match, offset, str) { - var escaped = false, - curr = offset; - while (--curr >= 0 && str[curr] === '\\') { escaped = !escaped; } - if (escaped) { - // odd number of slashes means | is escaped - // so we leave it alone - return '|'; - } else { - // add space before unescaped | - return ' |'; - } - }), - cells = row.split(/ \|/), + + for (; i < cells.length; i++) { + // leading or trailing whitespace is ignored per the gfm spec + cells[i] = cells[i].trim().replace(/\\\|/g, '|'); + } + return cells; + } + + // Remove trailing 'c's. Equivalent to str.replace(/c*$/, ''). + // /c*$/ is vulnerable to REDOS. + // invert: Remove suffix of non-c chars instead. Default falsey. + function rtrim(str, c, invert) { + if (str.length === 0) { + return ''; + } + + // Length of suffix matching the invert condition. + var suffLen = 0; + + // Step left until we fail to match the invert condition. + while (suffLen < str.length) { + var currChar = str.charAt(str.length - suffLen - 1); + if (currChar === c && !invert) { + suffLen++; + } else if (currChar !== c && invert) { + suffLen++; + } else { + break; + } + } + + return str.substr(0, str.length - suffLen); + } + + /** + * Marked + */ + + function marked(src, opt, callback) { + // throw error in case of non string input + if (typeof src === 'undefined' || src === null) { + throw new Error('marked(): input parameter is undefined or null'); + } + if (typeof src !== 'string') { + throw new Error('marked(): input parameter is of type ' + + Object.prototype.toString.call(src) + ', string expected'); + } + + if (callback || typeof opt === 'function') { + if (!callback) { + callback = opt; + opt = null; + } + + opt = merge({}, marked.defaults, opt || {}); + + var highlight = opt.highlight, + tokens, + pending, i = 0; - - if (cells.length > count) { - cells.splice(count); - } else { - while (cells.length < count) { cells.push(''); } + + try { + tokens = Lexer.lex(src, opt); + } catch (e) { + return callback(e); } - - for (; i < cells.length; i++) { - // leading or trailing whitespace is ignored per the gfm spec - cells[i] = cells[i].trim().replace(/\\\|/g, '|'); - } - return cells; - } - - // Remove trailing 'c's. Equivalent to str.replace(/c*$/, ''). - // /c*$/ is vulnerable to REDOS. - // invert: Remove suffix of non-c chars instead. Default falsey. - function rtrim(str, c, invert) { - if (str.length === 0) { - return ''; - } - - // Length of suffix matching the invert condition. - var suffLen = 0; - - // Step left until we fail to match the invert condition. - while (suffLen < str.length) { - var currChar = str.charAt(str.length - suffLen - 1); - if (currChar === c && !invert) { - suffLen++; - } else if (currChar !== c && invert) { - suffLen++; - } else { - break; - } - } - - return str.substr(0, str.length - suffLen); - } - - /** - * Marked - */ - - function marked(src, opt, callback) { - // throw error in case of non string input - if (typeof src === 'undefined' || src === null) { - throw new Error('marked(): input parameter is undefined or null'); - } - if (typeof src !== 'string') { - throw new Error('marked(): input parameter is of type ' - + Object.prototype.toString.call(src) + ', string expected'); - } - - if (callback || typeof opt === 'function') { - if (!callback) { - callback = opt; - opt = null; - } - - opt = merge({}, marked.defaults, opt || {}); - - var highlight = opt.highlight, - tokens, - pending, - i = 0; - - try { - tokens = Lexer.lex(src, opt); - } catch (e) { - return callback(e); - } - - pending = tokens.length; - - var done = function(err) { - if (err) { - opt.highlight = highlight; - return callback(err); - } - - var out; - - try { - out = Parser.parse(tokens, opt); - } catch (e) { - err = e; - } - + + pending = tokens.length; + + var done = function(err) { + if (err) { opt.highlight = highlight; - - return err - ? callback(err) - : callback(null, out); - }; - - if (!highlight || highlight.length < 3) { - return done(); + return callback(err); } - - delete opt.highlight; - - if (!pending) { return done(); } - - for (; i < tokens.length; i++) { - (function(token) { - if (token.type !== 'code') { + + var out; + + try { + out = Parser.parse(tokens, opt); + } catch (e) { + err = e; + } + + opt.highlight = highlight; + + return err + ? callback(err) + : callback(null, out); + }; + + if (!highlight || highlight.length < 3) { + return done(); + } + + delete opt.highlight; + + if (!pending) { return done(); } + + for (; i < tokens.length; i++) { + (function(token) { + if (token.type !== 'code') { + return --pending || done(); + } + return highlight(token.text, token.lang, function(err, code) { + if (err) { return done(err); } + if (code == null || code === token.text) { return --pending || done(); } - return highlight(token.text, token.lang, function(err, code) { - if (err) { return done(err); } - if (code == null || code === token.text) { - return --pending || done(); + token.text = code; + token.escaped = true; + --pending || done(); + }); + })(tokens[i]); + } + + return; + } + try { + if (opt) { opt = merge({}, marked.defaults, opt); } + return Parser.parse(Lexer.lex(src, opt), opt); + } catch (e) { + e.message += '\nPlease report this to https://github.com/markedjs/marked.'; + if ((opt || marked.defaults).silent) { + return '

    An error occurred:

    '
    +          + escape(e.message + '', true)
    +          + '
    '; + } + throw e; + } + } + + /** + * Options + */ + + marked.options = + marked.setOptions = function(opt) { + merge(marked.defaults, opt); + return marked; + }; + + marked.getDefaults = function () { + return { + baseUrl: null, + breaks: false, + gfm: true, + headerIds: true, + headerPrefix: '', + highlight: null, + langPrefix: 'language-', + mangle: true, + pedantic: false, + renderer: new Renderer(), + sanitize: false, + sanitizer: null, + silent: false, + smartLists: false, + smartypants: false, + tables: true, + xhtml: false + }; + }; + + marked.defaults = marked.getDefaults(); + + /** + * Expose + */ + + marked.Parser = Parser; + marked.parser = Parser.parse; + + marked.Renderer = Renderer; + marked.TextRenderer = TextRenderer; + + marked.Lexer = Lexer; + marked.lexer = Lexer.lex; + + marked.InlineLexer = InlineLexer; + marked.inlineLexer = InlineLexer.output; + + marked.parse = marked; + + { + module.exports = marked; + } + })(commonjsGlobal || (typeof window !== 'undefined' ? window : commonjsGlobal)); + }); + + var prism = createCommonjsModule(function (module) { + /* ********************************************** + Begin prism-core.js + ********************************************** */ + + var _self = (typeof window !== 'undefined') + ? window // if in browser + : ( + (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) + ? self // if in worker + : {} // if in node js + ); + + /** + * Prism: Lightweight, robust, elegant syntax highlighting + * MIT license http://www.opensource.org/licenses/mit-license.php/ + * @author Lea Verou http://lea.verou.me + */ + + var Prism = (function(){ + + // Private helper vars + var lang = /\blang(?:uage)?-([\w-]+)\b/i; + var uniqueId = 0; + + var _ = _self.Prism = { + manual: _self.Prism && _self.Prism.manual, + disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, + util: { + encode: function (tokens) { + if (tokens instanceof Token) { + return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); + } else if (_.util.type(tokens) === 'Array') { + return tokens.map(_.util.encode); + } else { + return tokens.replace(/&/g, '&').replace(/ text.length) { + // Something went terribly wrong, ABORT, ABORT! + return; + } + + if (str instanceof Token) { + continue; + } + + if (greedy && i != strarr.length - 1) { + pattern.lastIndex = pos; + var match = pattern.exec(text); + if (!match) { + break; + } + + var from = match.index + (lookbehind ? match[1].length : 0), + to = match.index + match[0].length, + k = i, + p = pos; + + for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) { + p += strarr[k].length; + // Move the index i to the element in strarr that is closest to from + if (from >= p) { + ++i; + pos = p; + } + } + + // If strarr[i] is a Token, then the match starts inside another Token, which is invalid + if (strarr[i] instanceof Token) { + continue; + } + + // Number of tokens to delete and replace with the new match + delNum = k - i; + str = text.slice(pos, p); + match.index -= pos; + } else { + pattern.lastIndex = 0; + + var match = pattern.exec(str), + delNum = 1; + } + + if (!match) { + if (oneshot) { + break; + } + + continue; + } + + if(lookbehind) { + lookbehindLength = match[1] ? match[1].length : 0; + } + + var from = match.index + lookbehindLength, + match = match[0].slice(lookbehindLength), + to = from + match.length, + before = str.slice(0, from), + after = str.slice(to); + + var args = [i, delNum]; + + if (before) { + ++i; + pos += before.length; + args.push(before); + } + + var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy); + + args.push(wrapped); + + if (after) { + args.push(after); + } + + Array.prototype.splice.apply(strarr, args); + + if (delNum != 1) + { _.matchGrammar(text, strarr, grammar, i, pos, true, token); } + + if (oneshot) + { break; } + } + } + } + }, + + tokenize: function(text, grammar, language) { + var strarr = [text]; + + var rest = grammar.rest; + + if (rest) { + for (var token in rest) { + grammar[token] = rest[token]; + } + + delete grammar.rest; + } + + _.matchGrammar(text, strarr, grammar, 0, 0, false); + + return strarr; + }, + + hooks: { + all: {}, + + add: function (name, callback) { + var hooks = _.hooks.all; + + hooks[name] = hooks[name] || []; + + hooks[name].push(callback); + }, + + run: function (name, env) { + var callbacks = _.hooks.all[name]; + + if (!callbacks || !callbacks.length) { + return; + } + + for (var i=0, callback; callback = callbacks[i++];) { + callback(env); + } + } } - try { - if (opt) { opt = merge({}, marked.defaults, opt); } - return Parser.parse(Lexer.lex(src, opt), opt); - } catch (e) { - e.message += '\nPlease report this to https://github.com/markedjs/marked.'; - if ((opt || marked.defaults).silent) { - return '

    An error occurred:

    '
    -            + escape(e.message + '', true)
    -            + '
    '; - } - throw e; + }; + + var Token = _.Token = function(type, content, alias, matchedStr, greedy) { + this.type = type; + this.content = content; + this.alias = alias; + // Copy of the full string this token was created from + this.length = (matchedStr || "").length|0; + this.greedy = !!greedy; + }; + + Token.stringify = function(o, language, parent) { + if (typeof o == 'string') { + return o; } - } - - /** - * Options - */ - - marked.options = - marked.setOptions = function(opt) { - merge(marked.defaults, opt); - return marked; - }; - - marked.getDefaults = function () { - return { - baseUrl: null, - breaks: false, - gfm: true, - headerIds: true, - headerPrefix: '', - highlight: null, - langPrefix: 'language-', - mangle: true, - pedantic: false, - renderer: new Renderer(), - sanitize: false, - sanitizer: null, - silent: false, - smartLists: false, - smartypants: false, - tables: true, - xhtml: false + + if (_.util.type(o) === 'Array') { + return o.map(function(element) { + return Token.stringify(element, language, o); + }).join(''); + } + + var env = { + type: o.type, + content: Token.stringify(o.content, language, parent), + tag: 'span', + classes: ['token', o.type], + attributes: {}, + language: language, + parent: parent }; - }; - - marked.defaults = marked.getDefaults(); - - /** - * Expose - */ - - marked.Parser = Parser; - marked.parser = Parser.parse; - - marked.Renderer = Renderer; - marked.TextRenderer = TextRenderer; - - marked.Lexer = Lexer; - marked.lexer = Lexer.lex; - - marked.InlineLexer = InlineLexer; - marked.inlineLexer = InlineLexer.output; - - marked.parse = marked; - - { - module.exports = marked; - } - })(commonjsGlobal || (typeof window !== 'undefined' ? window : commonjsGlobal)); - }); - - var prism = createCommonjsModule(function (module) { - /* ********************************************** - Begin prism-core.js - ********************************************** */ - - var _self = (typeof window !== 'undefined') - ? window // if in browser - : ( - (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) - ? self // if in worker - : {} // if in node js - ); - - /** - * Prism: Lightweight, robust, elegant syntax highlighting - * MIT license http://www.opensource.org/licenses/mit-license.php/ - * @author Lea Verou http://lea.verou.me - */ - - var Prism = (function(){ - - // Private helper vars - var lang = /\blang(?:uage)?-([\w-]+)\b/i; - var uniqueId = 0; - - var _ = _self.Prism = { - manual: _self.Prism && _self.Prism.manual, - disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, - util: { - encode: function (tokens) { - if (tokens instanceof Token) { - return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); - } else if (_.util.type(tokens) === 'Array') { - return tokens.map(_.util.encode); - } else { - return tokens.replace(/&/g, '&').replace(/ text.length) { - // Something went terribly wrong, ABORT, ABORT! - return; - } - - if (str instanceof Token) { - continue; - } - - if (greedy && i != strarr.length - 1) { - pattern.lastIndex = pos; - var match = pattern.exec(text); - if (!match) { - break; - } - - var from = match.index + (lookbehind ? match[1].length : 0), - to = match.index + match[0].length, - k = i, - p = pos; - - for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) { - p += strarr[k].length; - // Move the index i to the element in strarr that is closest to from - if (from >= p) { - ++i; - pos = p; - } - } - - // If strarr[i] is a Token, then the match starts inside another Token, which is invalid - if (strarr[i] instanceof Token) { - continue; - } - - // Number of tokens to delete and replace with the new match - delNum = k - i; - str = text.slice(pos, p); - match.index -= pos; - } else { - pattern.lastIndex = 0; - - var match = pattern.exec(str), - delNum = 1; - } - - if (!match) { - if (oneshot) { - break; - } - - continue; - } - - if(lookbehind) { - lookbehindLength = match[1] ? match[1].length : 0; - } - - var from = match.index + lookbehindLength, - match = match[0].slice(lookbehindLength), - to = from + match.length, - before = str.slice(0, from), - after = str.slice(to); - - var args = [i, delNum]; - - if (before) { - ++i; - pos += before.length; - args.push(before); - } - - var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy); - - args.push(wrapped); - - if (after) { - args.push(after); - } - - Array.prototype.splice.apply(strarr, args); - - if (delNum != 1) - { _.matchGrammar(text, strarr, grammar, i, pos, true, token); } - - if (oneshot) - { break; } - } - } - } - }, - - tokenize: function(text, grammar, language) { - var strarr = [text]; - - var rest = grammar.rest; - - if (rest) { - for (var token in rest) { - grammar[token] = rest[token]; - } - - delete grammar.rest; - } - - _.matchGrammar(text, strarr, grammar, 0, 0, false); - - return strarr; - }, - - hooks: { - all: {}, - - add: function (name, callback) { - var hooks = _.hooks.all; - - hooks[name] = hooks[name] || []; - - hooks[name].push(callback); - }, - - run: function (name, env) { - var callbacks = _.hooks.all[name]; - - if (!callbacks || !callbacks.length) { - return; - } - - for (var i=0, callback; callback = callbacks[i++];) { - callback(env); - } - } - } - }; - - var Token = _.Token = function(type, content, alias, matchedStr, greedy) { - this.type = type; - this.content = content; - this.alias = alias; - // Copy of the full string this token was created from - this.length = (matchedStr || "").length|0; - this.greedy = !!greedy; - }; - - Token.stringify = function(o, language, parent) { - if (typeof o == 'string') { - return o; - } - - if (_.util.type(o) === 'Array') { - return o.map(function(element) { - return Token.stringify(element, language, o); - }).join(''); - } - - var env = { - type: o.type, - content: Token.stringify(o.content, language, parent), - tag: 'span', - classes: ['token', o.type], - attributes: {}, - language: language, - parent: parent - }; - - if (o.alias) { - var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; - Array.prototype.push.apply(env.classes, aliases); - } - - _.hooks.run('wrap', env); - - var attributes = Object.keys(env.attributes).map(function(name) { - return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"'; - }).join(' '); - - return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + ''; - - }; - - if (!_self.document) { - if (!_self.addEventListener) { - // in Node.js - return _self.Prism; - } - - if (!_.disableWorkerMessageHandler) { - // In worker - _self.addEventListener('message', function (evt) { - var message = JSON.parse(evt.data), - lang = message.language, - code = message.code, - immediateClose = message.immediateClose; - - _self.postMessage(_.highlight(code, _.languages[lang], lang)); - if (immediateClose) { - _self.close(); - } - }, false); - } - - return _self.Prism; - } - - //Get current script and highlight - var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop(); - - if (script) { - _.filename = script.src; - - if (!_.manual && !script.hasAttribute('data-manual')) { - if(document.readyState !== "loading") { - if (window.requestAnimationFrame) { - window.requestAnimationFrame(_.highlightAll); - } else { - window.setTimeout(_.highlightAll, 16); - } - } - else { - document.addEventListener('DOMContentLoaded', _.highlightAll); - } - } - } - - return _self.Prism; - - })(); - - if ('object' !== 'undefined' && module.exports) { - module.exports = Prism; - } - - // hack for components to work correctly in node.js - if (typeof commonjsGlobal !== 'undefined') { - commonjsGlobal.Prism = Prism; - } - - - /* ********************************************** - Begin prism-markup.js - ********************************************** */ - - Prism.languages.markup = { - 'comment': //, - 'prolog': /<\?[\s\S]+?\?>/, - 'doctype': //i, - 'cdata': //i, - 'tag': { - pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, - greedy: true, - inside: { - 'tag': { - pattern: /^<\/?[^\s>\/]+/i, - inside: { - 'punctuation': /^<\/?/, - 'namespace': /^[^\s>\/:]+:/ - } - }, - 'attr-value': { - pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i, - inside: { - 'punctuation': [ - /^=/, - { - pattern: /(^|[^\\])["']/, - lookbehind: true - } - ] - } - }, - 'punctuation': /\/?>/, - 'attr-name': { - pattern: /[^\s>\/]+/, - inside: { - 'namespace': /^[^\s>\/:]+:/ - } - } - - } - }, - 'entity': /&#?[\da-z]{1,8};/i - }; - - Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = - Prism.languages.markup['entity']; - - // Plugin to make entity title show the real entity, idea by Roman Komarov - Prism.hooks.add('wrap', function(env) { - - if (env.type === 'entity') { - env.attributes['title'] = env.content.replace(/&/, '&'); - } - }); - - Prism.languages.xml = Prism.languages.markup; - Prism.languages.html = Prism.languages.markup; - Prism.languages.mathml = Prism.languages.markup; - Prism.languages.svg = Prism.languages.markup; - - - /* ********************************************** - Begin prism-css.js - ********************************************** */ - - Prism.languages.css = { - 'comment': /\/\*[\s\S]*?\*\//, - 'atrule': { - pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, - inside: { - 'rule': /@[\w-]+/ - // See rest below - } - }, - 'url': /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, - 'selector': /[^{}\s][^{};]*?(?=\s*\{)/, - 'string': { - pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - greedy: true - }, - 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, - 'important': /\B!important\b/i, - 'function': /[-a-z0-9]+(?=\()/i, - 'punctuation': /[(){};:]/ - }; - - Prism.languages.css['atrule'].inside.rest = Prism.languages.css; - - if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - 'style': { - pattern: /()[\s\S]*?(?=<\/style>)/i, - lookbehind: true, - inside: Prism.languages.css, - alias: 'language-css', - greedy: true - } - }); - - Prism.languages.insertBefore('inside', 'attr-value', { - 'style-attr': { - pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, - inside: { - 'attr-name': { - pattern: /^\s*style/i, - inside: Prism.languages.markup.tag.inside - }, - 'punctuation': /^\s*=\s*['"]|['"]\s*$/, - 'attr-value': { - pattern: /.+/i, - inside: Prism.languages.css - } - }, - alias: 'language-css' - } - }, Prism.languages.markup.tag); - } - - /* ********************************************** - Begin prism-clike.js - ********************************************** */ - - Prism.languages.clike = { - 'comment': [ - { - pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, - lookbehind: true - }, - { - pattern: /(^|[^\\:])\/\/.*/, - lookbehind: true, - greedy: true - } - ], - 'string': { - pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - greedy: true - }, - 'class-name': { - pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, - lookbehind: true, - inside: { - punctuation: /[.\\]/ - } - }, - 'keyword': /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, - 'boolean': /\b(?:true|false)\b/, - 'function': /[a-z0-9_]+(?=\()/i, - 'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, - 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, - 'punctuation': /[{}[\];(),.:]/ - }; - - - /* ********************************************** - Begin prism-javascript.js - ********************************************** */ - - Prism.languages.javascript = Prism.languages.extend('clike', { - 'keyword': /\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/, - 'number': /\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/, - // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) - 'function': /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i, - 'operator': /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ - }); - - Prism.languages.insertBefore('javascript', 'keyword', { - 'regex': { - pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/, - lookbehind: true, - greedy: true - }, - // This must be declared before keyword because we use "function" inside the look-forward - 'function-variable': { - pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i, - alias: 'function' - }, - 'constant': /\b[A-Z][A-Z\d_]*\b/ - }); - - Prism.languages.insertBefore('javascript', 'string', { - 'template-string': { - pattern: /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/, - greedy: true, - inside: { - 'interpolation': { - pattern: /\${[^}]+}/, - inside: { - 'interpolation-punctuation': { - pattern: /^\${|}$/, - alias: 'punctuation' - }, - rest: null // See below - } - }, - 'string': /[\s\S]+/ - } - } - }); - Prism.languages.javascript['template-string'].inside['interpolation'].inside.rest = Prism.languages.javascript; - - if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - 'script': { - pattern: /()[\s\S]*?(?=<\/script>)/i, - lookbehind: true, - inside: Prism.languages.javascript, - alias: 'language-javascript', - greedy: true - } - }); - } - - Prism.languages.js = Prism.languages.javascript; - - - /* ********************************************** - Begin prism-file-highlight.js - ********************************************** */ - - (function () { - if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) { - return; - } - - self.Prism.fileHighlight = function() { - - var Extensions = { - 'js': 'javascript', - 'py': 'python', - 'rb': 'ruby', - 'ps1': 'powershell', - 'psm1': 'powershell', - 'sh': 'bash', - 'bat': 'batch', - 'h': 'c', - 'tex': 'latex' - }; - - Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) { - var src = pre.getAttribute('data-src'); - - var language, parent = pre; - var lang = /\blang(?:uage)?-([\w-]+)\b/i; - while (parent && !lang.test(parent.className)) { - parent = parent.parentNode; - } - - if (parent) { - language = (pre.className.match(lang) || [, ''])[1]; - } - - if (!language) { - var extension = (src.match(/\.(\w+)$/) || [, ''])[1]; - language = Extensions[extension] || extension; - } - - var code = document.createElement('code'); - code.className = 'language-' + language; - - pre.textContent = ''; - - code.textContent = 'Loading…'; - - pre.appendChild(code); - - var xhr = new XMLHttpRequest(); - - xhr.open('GET', src, true); - - xhr.onreadystatechange = function () { - if (xhr.readyState == 4) { - - if (xhr.status < 400 && xhr.responseText) { - code.textContent = xhr.responseText; - - Prism.highlightElement(code); - } - else if (xhr.status >= 400) { - code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText; - } - else { - code.textContent = '✖ Error: File does not exist or is empty'; - } - } - }; - - xhr.send(null); - }); - - if (Prism.plugins.toolbar) { - Prism.plugins.toolbar.registerButton('download-file', function (env) { - var pre = env.element.parentNode; - if (!pre || !/pre/i.test(pre.nodeName) || !pre.hasAttribute('data-src') || !pre.hasAttribute('data-download-link')) { - return; - } - var src = pre.getAttribute('data-src'); - var a = document.createElement('a'); - a.textContent = pre.getAttribute('data-download-link-label') || 'Download'; - a.setAttribute('download', ''); - a.href = src; - return a; - }); - } - - }; - - document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight); - - })(); - }); - - /** - * Gen toc tree - * @link https://github.com/killercup/grock/blob/5280ae63e16c5739e9233d9009bc235ed7d79a50/styles/solarized/assets/js/behavior.coffee#L54-L81 - * @param {Array} toc - * @param {Number} maxLevel - * @return {Array} - */ - function genTree(toc, maxLevel) { - var headlines = []; - var last = {}; - - toc.forEach(function (headline) { - var level = headline.level || 1; - var len = level - 1; - - if (level > maxLevel) { - return - } - if (last[len]) { - last[len].children = (last[len].children || []).concat(headline); - } else { - headlines.push(headline); - } - last[level] = headline; + + if (o.alias) { + var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; + Array.prototype.push.apply(env.classes, aliases); + } + + _.hooks.run('wrap', env); + + var attributes = Object.keys(env.attributes).map(function(name) { + return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"'; + }).join(' '); + + return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + ''; + + }; + + if (!_self.document) { + if (!_self.addEventListener) { + // in Node.js + return _self.Prism; + } + + if (!_.disableWorkerMessageHandler) { + // In worker + _self.addEventListener('message', function (evt) { + var message = JSON.parse(evt.data), + lang = message.language, + code = message.code, + immediateClose = message.immediateClose; + + _self.postMessage(_.highlight(code, _.languages[lang], lang)); + if (immediateClose) { + _self.close(); + } + }, false); + } + + return _self.Prism; + } + + //Get current script and highlight + var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop(); + + if (script) { + _.filename = script.src; + + if (!_.manual && !script.hasAttribute('data-manual')) { + if(document.readyState !== "loading") { + if (window.requestAnimationFrame) { + window.requestAnimationFrame(_.highlightAll); + } else { + window.setTimeout(_.highlightAll, 16); + } + } + else { + document.addEventListener('DOMContentLoaded', _.highlightAll); + } + } + } + + return _self.Prism; + + })(); + + if ('object' !== 'undefined' && module.exports) { + module.exports = Prism; + } + + // hack for components to work correctly in node.js + if (typeof commonjsGlobal !== 'undefined') { + commonjsGlobal.Prism = Prism; + } + + + /* ********************************************** + Begin prism-markup.js + ********************************************** */ + + Prism.languages.markup = { + 'comment': //, + 'prolog': /<\?[\s\S]+?\?>/, + 'doctype': //i, + 'cdata': //i, + 'tag': { + pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, + greedy: true, + inside: { + 'tag': { + pattern: /^<\/?[^\s>\/]+/i, + inside: { + 'punctuation': /^<\/?/, + 'namespace': /^[^\s>\/:]+:/ + } + }, + 'attr-value': { + pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i, + inside: { + 'punctuation': [ + /^=/, + { + pattern: /(^|[^\\])["']/, + lookbehind: true + } + ] + } + }, + 'punctuation': /\/?>/, + 'attr-name': { + pattern: /[^\s>\/]+/, + inside: { + 'namespace': /^[^\s>\/:]+:/ + } + } + + } + }, + 'entity': /&#?[\da-z]{1,8};/i + }; + + Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = + Prism.languages.markup['entity']; + + // Plugin to make entity title show the real entity, idea by Roman Komarov + Prism.hooks.add('wrap', function(env) { + + if (env.type === 'entity') { + env.attributes['title'] = env.content.replace(/&/, '&'); + } + }); + + Prism.languages.xml = Prism.languages.markup; + Prism.languages.html = Prism.languages.markup; + Prism.languages.mathml = Prism.languages.markup; + Prism.languages.svg = Prism.languages.markup; + + + /* ********************************************** + Begin prism-css.js + ********************************************** */ + + Prism.languages.css = { + 'comment': /\/\*[\s\S]*?\*\//, + 'atrule': { + pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, + inside: { + 'rule': /@[\w-]+/ + // See rest below + } + }, + 'url': /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, + 'selector': /[^{}\s][^{};]*?(?=\s*\{)/, + 'string': { + pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: true + }, + 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, + 'important': /\B!important\b/i, + 'function': /[-a-z0-9]+(?=\()/i, + 'punctuation': /[(){};:]/ + }; + + Prism.languages.css['atrule'].inside.rest = Prism.languages.css; + + if (Prism.languages.markup) { + Prism.languages.insertBefore('markup', 'tag', { + 'style': { + pattern: /()[\s\S]*?(?=<\/style>)/i, + lookbehind: true, + inside: Prism.languages.css, + alias: 'language-css', + greedy: true + } }); - - return headlines - } - - var cache$1 = {}; - var re = /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g; - - function lower(string) { - return string.toLowerCase() - } - - function slugify(str) { - if (typeof str !== 'string') { - return '' + + Prism.languages.insertBefore('inside', 'attr-value', { + 'style-attr': { + pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, + inside: { + 'attr-name': { + pattern: /^\s*style/i, + inside: Prism.languages.markup.tag.inside + }, + 'punctuation': /^\s*=\s*['"]|['"]\s*$/, + 'attr-value': { + pattern: /.+/i, + inside: Prism.languages.css + } + }, + alias: 'language-css' + } + }, Prism.languages.markup.tag); + } + + /* ********************************************** + Begin prism-clike.js + ********************************************** */ + + Prism.languages.clike = { + 'comment': [ + { + pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, + lookbehind: true + }, + { + pattern: /(^|[^\\:])\/\/.*/, + lookbehind: true, + greedy: true + } + ], + 'string': { + pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: true + }, + 'class-name': { + pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, + lookbehind: true, + inside: { + punctuation: /[.\\]/ + } + }, + 'keyword': /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, + 'boolean': /\b(?:true|false)\b/, + 'function': /[a-z0-9_]+(?=\()/i, + 'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, + 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, + 'punctuation': /[{}[\];(),.:]/ + }; + + + /* ********************************************** + Begin prism-javascript.js + ********************************************** */ + + Prism.languages.javascript = Prism.languages.extend('clike', { + 'keyword': /\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/, + 'number': /\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/, + // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) + 'function': /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i, + 'operator': /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ + }); + + Prism.languages.insertBefore('javascript', 'keyword', { + 'regex': { + pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/, + lookbehind: true, + greedy: true + }, + // This must be declared before keyword because we use "function" inside the look-forward + 'function-variable': { + pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i, + alias: 'function' + }, + 'constant': /\b[A-Z][A-Z\d_]*\b/ + }); + + Prism.languages.insertBefore('javascript', 'string', { + 'template-string': { + pattern: /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/, + greedy: true, + inside: { + 'interpolation': { + pattern: /\${[^}]+}/, + inside: { + 'interpolation-punctuation': { + pattern: /^\${|}$/, + alias: 'punctuation' + }, + rest: null // See below + } + }, + 'string': /[\s\S]+/ + } } - - var slug = str - .trim() - .replace(/[A-Z]+/g, lower) - .replace(/<[^>\d]+>/g, '') - .replace(re, '') - .replace(/\s/g, '-') - .replace(/-+/g, '-') - .replace(/^(\d)/, '_$1'); - var count = cache$1[slug]; - - count = hasOwn.call(cache$1, slug) ? count + 1 : 0; - cache$1[slug] = count; - - if (count) { - slug = slug + '-' + count; - } - - return slug - } - - slugify.clear = function () { - cache$1 = {}; - }; - - function replace(m, $1) { - return '' + $1 + '' - } - - function emojify(text) { - return text - .replace(/<(pre|template|code)[^>]*?>[\s\S]+?<\/(pre|template|code)>/g, function (m) { return m.replace(/:/g, '__colon__'); }) - .replace(/:(\w+?):/ig, (inBrowser && window.emojify) || replace) - .replace(/__colon__/g, ':') - } - - var decode = decodeURIComponent; - var encode = encodeURIComponent; - - function parseQuery(query) { - var res = {}; - - query = query.trim().replace(/^(\?|#|&)/, ''); - - if (!query) { - return res - } - - // Simple parse - query.split('&').forEach(function (param) { - var parts = param.replace(/\+/g, ' ').split('='); - - res[parts[0]] = parts[1] && decode(parts[1]); + }); + Prism.languages.javascript['template-string'].inside['interpolation'].inside.rest = Prism.languages.javascript; + + if (Prism.languages.markup) { + Prism.languages.insertBefore('markup', 'tag', { + 'script': { + pattern: /()[\s\S]*?(?=<\/script>)/i, + lookbehind: true, + inside: Prism.languages.javascript, + alias: 'language-javascript', + greedy: true + } }); - + } + + Prism.languages.js = Prism.languages.javascript; + + + /* ********************************************** + Begin prism-file-highlight.js + ********************************************** */ + + (function () { + if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) { + return; + } + + self.Prism.fileHighlight = function() { + + var Extensions = { + 'js': 'javascript', + 'py': 'python', + 'rb': 'ruby', + 'ps1': 'powershell', + 'psm1': 'powershell', + 'sh': 'bash', + 'bat': 'batch', + 'h': 'c', + 'tex': 'latex' + }; + + Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) { + var src = pre.getAttribute('data-src'); + + var language, parent = pre; + var lang = /\blang(?:uage)?-([\w-]+)\b/i; + while (parent && !lang.test(parent.className)) { + parent = parent.parentNode; + } + + if (parent) { + language = (pre.className.match(lang) || [, ''])[1]; + } + + if (!language) { + var extension = (src.match(/\.(\w+)$/) || [, ''])[1]; + language = Extensions[extension] || extension; + } + + var code = document.createElement('code'); + code.className = 'language-' + language; + + pre.textContent = ''; + + code.textContent = 'Loading…'; + + pre.appendChild(code); + + var xhr = new XMLHttpRequest(); + + xhr.open('GET', src, true); + + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + + if (xhr.status < 400 && xhr.responseText) { + code.textContent = xhr.responseText; + + Prism.highlightElement(code); + } + else if (xhr.status >= 400) { + code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText; + } + else { + code.textContent = '✖ Error: File does not exist or is empty'; + } + } + }; + + xhr.send(null); + }); + + if (Prism.plugins.toolbar) { + Prism.plugins.toolbar.registerButton('download-file', function (env) { + var pre = env.element.parentNode; + if (!pre || !/pre/i.test(pre.nodeName) || !pre.hasAttribute('data-src') || !pre.hasAttribute('data-download-link')) { + return; + } + var src = pre.getAttribute('data-src'); + var a = document.createElement('a'); + a.textContent = pre.getAttribute('data-download-link-label') || 'Download'; + a.setAttribute('download', ''); + a.href = src; + return a; + }); + } + + }; + + document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight); + + })(); + }); + + /** + * Gen toc tree + * @link https://github.com/killercup/grock/blob/5280ae63e16c5739e9233d9009bc235ed7d79a50/styles/solarized/assets/js/behavior.coffee#L54-L81 + * @param {Array} toc + * @param {Number} maxLevel + * @return {Array} + */ + function genTree(toc, maxLevel) { + var headlines = []; + var last = {}; + + toc.forEach(function (headline) { + var level = headline.level || 1; + var len = level - 1; + + if (level > maxLevel) { + return + } + if (last[len]) { + last[len].children = (last[len].children || []).concat(headline); + } else { + headlines.push(headline); + } + last[level] = headline; + }); + + return headlines + } + + var cache$1 = {}; + var re = /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g; + + function lower(string) { + return string.toLowerCase() + } + + function slugify(str) { + if (typeof str !== 'string') { + return '' + } + + var slug = str + .trim() + .replace(/[A-Z]+/g, lower) + .replace(/<[^>\d]+>/g, '') + .replace(re, '') + .replace(/\s/g, '-') + .replace(/-+/g, '-') + .replace(/^(\d)/, '_$1'); + var count = cache$1[slug]; + + count = hasOwn.call(cache$1, slug) ? count + 1 : 0; + cache$1[slug] = count; + + if (count) { + slug = slug + '-' + count; + } + + return slug + } + + slugify.clear = function () { + cache$1 = {}; + }; + + function replace(m, $1) { + return '' + $1 + '' + } + + function emojify(text) { + return text + .replace(/<(pre|template|code)[^>]*?>[\s\S]+?<\/(pre|template|code)>/g, function (m) { return m.replace(/:/g, '__colon__'); }) + .replace(/:(\w+?):/ig, (inBrowser && window.emojify) || replace) + .replace(/__colon__/g, ':') + } + + var decode = decodeURIComponent; + var encode = encodeURIComponent; + + function parseQuery(query) { + var res = {}; + + query = query.trim().replace(/^(\?|#|&)/, ''); + + if (!query) { return res } - - function stringifyQuery(obj, ignores) { - if ( ignores === void 0 ) ignores = []; - - var qs = []; - - for (var key in obj) { - if (ignores.indexOf(key) > -1) { - continue - } - qs.push( - obj[key] ? - ((encode(key)) + "=" + (encode(obj[key]))).toLowerCase() : - encode(key) - ); + + // Simple parse + query.split('&').forEach(function (param) { + var parts = param.replace(/\+/g, ' ').split('='); + + res[parts[0]] = parts[1] && decode(parts[1]); + }); + + return res + } + + function stringifyQuery(obj, ignores) { + if ( ignores === void 0 ) ignores = []; + + var qs = []; + + for (var key in obj) { + if (ignores.indexOf(key) > -1) { + continue } - - return qs.length ? ("?" + (qs.join('&'))) : '' + qs.push( + obj[key] ? + ((encode(key)) + "=" + (encode(obj[key]))).toLowerCase() : + encode(key) + ); } - - var isAbsolutePath = cached(function (path) { - return /(:|(\/{2}))/g.test(path) - }); - - var getParentPath = cached(function (path) { - return /\/$/g.test(path) ? - path : - (path = path.match(/(\S*\/)[^/]+$/)) ? path[1] : '' - }); - - var cleanPath = cached(function (path) { - return path.replace(/^\/+/, '/').replace(/([^:])\/{2,}/g, '$1/') - }); - - var resolvePath = cached(function (path) { - var segments = path.replace(/^\//, '').split('/'); - var resolved = []; - for (var i = 0, len = segments.length; i < len; i++) { - var segment = segments[i]; - if (segment === '..') { - resolved.pop(); - } else if (segment !== '.') { - resolved.push(segment); - } + + return qs.length ? ("?" + (qs.join('&'))) : '' + } + + var isAbsolutePath = cached(function (path) { + return /(:|(\/{2}))/g.test(path) + }); + + var getParentPath = cached(function (path) { + return /\/$/g.test(path) ? + path : + (path = path.match(/(\S*\/)[^/]+$/)) ? path[1] : '' + }); + + var cleanPath = cached(function (path) { + return path.replace(/^\/+/, '/').replace(/([^:])\/{2,}/g, '$1/') + }); + + var resolvePath = cached(function (path) { + var segments = path.replace(/^\//, '').split('/'); + var resolved = []; + for (var i = 0, len = segments.length; i < len; i++) { + var segment = segments[i]; + if (segment === '..') { + resolved.pop(); + } else if (segment !== '.') { + resolved.push(segment); } - return '/' + resolved.join('/') - }); - - function getPath() { - var args = [], len = arguments.length; - while ( len-- ) args[ len ] = arguments[ len ]; - - return cleanPath(args.join('/')) } - - var replaceSlug = cached(function (path) { - return path.replace('#', '?id=') - }); - - Prism.languages['markup-templating'] = {}; - - Object.defineProperties(Prism.languages['markup-templating'], { - buildPlaceholders: { - // Tokenize all inline templating expressions matching placeholderPattern - // If the replaceFilter function is provided, it will be called with every match. - // If it returns false, the match will not be replaced. - value: function (env, language, placeholderPattern, replaceFilter) { - if (env.language !== language) { - return; - } - - env.tokenStack = []; - - env.code = env.code.replace(placeholderPattern, function(match) { - if (typeof replaceFilter === 'function' && !replaceFilter(match)) { - return match; - } - var i = env.tokenStack.length; - // Check for existing strings - while (env.code.indexOf('___' + language.toUpperCase() + i + '___') !== -1) - { ++i; } - - // Create a sparse array - env.tokenStack[i] = match; - - return '___' + language.toUpperCase() + i + '___'; - }); - - // Switch the grammar to markup - env.grammar = Prism.languages.markup; - } - }, - tokenizePlaceholders: { - // Replace placeholders with proper tokens after tokenizing - value: function (env, language) { - if (env.language !== language || !env.tokenStack) { - return; - } - - // Switch the grammar back - env.grammar = Prism.languages[language]; - - var j = 0; - var keys = Object.keys(env.tokenStack); - var walkTokens = function (tokens) { - if (j >= keys.length) { - return; - } - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; - if (typeof token === 'string' || (token.content && typeof token.content === 'string')) { - var k = keys[j]; - var t = env.tokenStack[k]; - var s = typeof token === 'string' ? token : token.content; - - var index = s.indexOf('___' + language.toUpperCase() + k + '___'); - if (index > -1) { - ++j; - var before = s.substring(0, index); - var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar, language), 'language-' + language, t); - var after = s.substring(index + ('___' + language.toUpperCase() + k + '___').length); - var replacement; - if (before || after) { - replacement = [before, middle, after].filter(function (v) { return !!v; }); - walkTokens(replacement); - } else { - replacement = middle; - } - if (typeof token === 'string') { - Array.prototype.splice.apply(tokens, [i, 1].concat(replacement)); - } else { - token.content = replacement; - } - - if (j >= keys.length) { - break; - } - } - } else if (token.content && typeof token.content !== 'string') { - walkTokens(token.content); - } - } - }; - - walkTokens(env.tokens); - } - } - }); - - // See https://github.com/PrismJS/prism/pull/1367 - var cachedLinks = {}; - - function getAndRemoveConfig(str) { - if ( str === void 0 ) str = ''; - - var config = {}; - - if (str) { - str = str - .replace(/^'/, '') - .replace(/'$/, '') - .replace(/(?:^|\s):([\w-]+)=?([\w-]+)?/g, function (m, key, value) { - config[key] = (value && value.replace(/"/g, '')) || true; - return '' - }) - .trim(); - } - - return {str: str, config: config} - } - - var compileMedia = { - markdown: function markdown(url) { - return { - url: url - } - }, - mermaid: function mermaid(url) { - return { - url: url - } - }, - iframe: function iframe(url, title) { - return { - html: ("") - } - }, - video: function video(url, title) { - return { - html: ("") - } - }, - audio: function audio(url, title) { - return { - html: ("") - } - }, - code: function code(url, title) { - var lang = url.match(/\.(\w+)$/); - - lang = title || (lang && lang[1]); - if (lang === 'md') { - lang = 'markdown'; - } - - return { - url: url, - lang: lang - } - } - }; - - var Compiler = function Compiler(config, router) { - var this$1 = this; - - this.config = config; - this.router = router; - this.cacheTree = {}; - this.toc = []; - this.cacheTOC = {}; - this.linkTarget = config.externalLinkTarget || '_blank'; - this.contentBase = router.getBasePath(); - - var renderer = this._initRenderer(); - var compile; - var mdConf = config.markdown || {}; - - if (isFn(mdConf)) { - compile = mdConf(marked, renderer); - } else { - marked.setOptions( - merge(mdConf, { - renderer: merge(renderer, mdConf.renderer) - }) - ); - compile = marked; - } - - this._marked = compile; - this.compile = function (text) { - var isCached = true; - var result = cached(function (_) { - isCached = false; - var html = ''; - - if (!text) { - return text + return '/' + resolved.join('/') + }); + + function getPath() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return cleanPath(args.join('/')) + } + + var replaceSlug = cached(function (path) { + return path.replace('#', '?id=') + }); + + Prism.languages['markup-templating'] = {}; + + Object.defineProperties(Prism.languages['markup-templating'], { + buildPlaceholders: { + // Tokenize all inline templating expressions matching placeholderPattern + // If the replaceFilter function is provided, it will be called with every match. + // If it returns false, the match will not be replaced. + value: function (env, language, placeholderPattern, replaceFilter) { + if (env.language !== language) { + return; + } + + env.tokenStack = []; + + env.code = env.code.replace(placeholderPattern, function(match) { + if (typeof replaceFilter === 'function' && !replaceFilter(match)) { + return match; + } + var i = env.tokenStack.length; + // Check for existing strings + while (env.code.indexOf('___' + language.toUpperCase() + i + '___') !== -1) + { ++i; } + + // Create a sparse array + env.tokenStack[i] = match; + + return '___' + language.toUpperCase() + i + '___'; + }); + + // Switch the grammar to markup + env.grammar = Prism.languages.markup; } - - if (isPrimitive(text)) { - html = compile(text); - } else { - html = compile.parser(text); + }, + tokenizePlaceholders: { + // Replace placeholders with proper tokens after tokenizing + value: function (env, language) { + if (env.language !== language || !env.tokenStack) { + return; + } + + // Switch the grammar back + env.grammar = Prism.languages[language]; + + var j = 0; + var keys = Object.keys(env.tokenStack); + var walkTokens = function (tokens) { + if (j >= keys.length) { + return; + } + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (typeof token === 'string' || (token.content && typeof token.content === 'string')) { + var k = keys[j]; + var t = env.tokenStack[k]; + var s = typeof token === 'string' ? token : token.content; + + var index = s.indexOf('___' + language.toUpperCase() + k + '___'); + if (index > -1) { + ++j; + var before = s.substring(0, index); + var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar, language), 'language-' + language, t); + var after = s.substring(index + ('___' + language.toUpperCase() + k + '___').length); + var replacement; + if (before || after) { + replacement = [before, middle, after].filter(function (v) { return !!v; }); + walkTokens(replacement); + } else { + replacement = middle; + } + if (typeof token === 'string') { + Array.prototype.splice.apply(tokens, [i, 1].concat(replacement)); + } else { + token.content = replacement; + } + + if (j >= keys.length) { + break; + } + } + } else if (token.content && typeof token.content !== 'string') { + walkTokens(token.content); + } + } + }; + + walkTokens(env.tokens); } - - html = config.noEmoji ? html : emojify(html); - slugify.clear(); - - return html - })(text); - - var curFileName = this$1.router.parse().file; - - if (isCached) { - this$1.toc = this$1.cacheTOC[curFileName]; + } + }); + + // See https://github.com/PrismJS/prism/pull/1367 + var cachedLinks = {}; + + function getAndRemoveConfig(str) { + if ( str === void 0 ) str = ''; + + var config = {}; + + if (str) { + str = str + .replace(/^'/, '') + .replace(/'$/, '') + .replace(/(?:^|\s):([\w-]+)=?([\w-]+)?/g, function (m, key, value) { + config[key] = (value && value.replace(/"/g, '')) || true; + return '' + }) + .trim(); + } + + return {str: str, config: config} + } + + var compileMedia = { + markdown: function markdown(url) { + return { + url: url + } + }, + mermaid: function mermaid(url) { + return { + url: url + } + }, + iframe: function iframe(url, title) { + return { + html: ("") + } + }, + video: function video(url, title) { + return { + html: ("") + } + }, + audio: function audio(url, title) { + return { + html: ("") + } + }, + code: function code(url, title) { + var lang = url.match(/\.(\w+)$/); + + lang = title || (lang && lang[1]); + if (lang === 'md') { + lang = 'markdown'; + } + + return { + url: url, + lang: lang + } + } + }; + + var Compiler = function Compiler(config, router) { + var this$1 = this; + + this.config = config; + this.router = router; + this.cacheTree = {}; + this.toc = []; + this.cacheTOC = {}; + this.linkTarget = config.externalLinkTarget || '_blank'; + this.contentBase = router.getBasePath(); + + var renderer = this._initRenderer(); + var compile; + var mdConf = config.markdown || {}; + + if (isFn(mdConf)) { + compile = mdConf(marked, renderer); + } else { + marked.setOptions( + merge(mdConf, { + renderer: merge(renderer, mdConf.renderer) + }) + ); + compile = marked; + } + + this._marked = compile; + this.compile = function (text) { + var isCached = true; + var result = cached(function (_) { + isCached = false; + var html = ''; + + if (!text) { + return text + } + + if (isPrimitive(text)) { + html = compile(text); } else { - this$1.cacheTOC[curFileName] = [].concat( this$1.toc ); + html = compile.parser(text); } - - return result - }; + + html = config.noEmoji ? html : emojify(html); + slugify.clear(); + + return html + })(text); + + var curFileName = this$1.router.parse().file; + + if (isCached) { + this$1.toc = this$1.cacheTOC[curFileName]; + } else { + this$1.cacheTOC[curFileName] = [].concat( this$1.toc ); + } + + return result }; - - Compiler.prototype.compileEmbed = function compileEmbed (href, title) { + }; + + Compiler.prototype.compileEmbed = function compileEmbed (href, title) { + var ref = getAndRemoveConfig(title); + var str = ref.str; + var config = ref.config; + var embed; + title = str; + + if (config.include) { + if (!isAbsolutePath(href)) { + href = getPath( + this.contentBase, + getParentPath(this.router.getCurrentPath()), + href + ); + } + + var media; + if (config.type && (media = compileMedia[config.type])) { + embed = media.call(this, href, title); + embed.type = config.type; + } else { + var type = 'code'; + if (/\.(md|markdown)/.test(href)) { + type = 'markdown'; + } else if (/\.mmd/.test(href)) { + type = 'mermaid'; + } else if (/\.html?/.test(href)) { + type = 'iframe'; + } else if (/\.(mp4|ogg)/.test(href)) { + type = 'video'; + } else if (/\.mp3/.test(href)) { + type = 'audio'; + } + embed = compileMedia[type].call(this, href, title); + embed.type = type; + } + embed.fragment = config.fragment; + + return embed + } + }; + + Compiler.prototype._matchNotCompileLink = function _matchNotCompileLink (link) { + var links = this.config.noCompileLinks || []; + + for (var i = 0; i < links.length; i++) { + var n = links[i]; + var re = cachedLinks[n] || (cachedLinks[n] = new RegExp(("^" + n + "$"))); + + if (re.test(link)) { + return link + } + } + }; + + Compiler.prototype._initRenderer = function _initRenderer () { + var renderer = new marked.Renderer(); + var ref = this; + var linkTarget = ref.linkTarget; + var router = ref.router; + var contentBase = ref.contentBase; + var _self = this; + var origin = {}; + + /** + * Render anchor tag + * @link https://github.com/markedjs/marked#overriding-renderer-methods + */ + origin.heading = renderer.heading = function (text, level) { + var ref = getAndRemoveConfig(text); + var str = ref.str; + var config = ref.config; + var nextToc = {level: level, title: str}; + + if (/{docsify-ignore}/g.test(str)) { + str = str.replace('{docsify-ignore}', ''); + nextToc.title = str; + nextToc.ignoreSubHeading = true; + } + + if (/{docsify-ignore-all}/g.test(str)) { + str = str.replace('{docsify-ignore-all}', ''); + nextToc.title = str; + nextToc.ignoreAllSubs = true; + } + + var slug = slugify(config.id || str); + var url = router.toURL(router.getCurrentPath(), {id: slug}); + nextToc.slug = url; + _self.toc.push(nextToc); + + return ("
    " + str + "") + }; + // Highlight code + origin.code = renderer.code = function (code, lang) { + if ( lang === void 0 ) lang = ''; + + code = code.replace(/@DOCSIFY_QM@/g, '`'); + var hl = prism.highlight( + code, + prism.languages[lang] || prism.languages.markup + ); + + return ("
    " + hl + "
    ") + }; + origin.link = renderer.link = function (href, title, text) { + if ( title === void 0 ) title = ''; + + var attrs = ''; + var ref = getAndRemoveConfig(title); var str = ref.str; var config = ref.config; - var embed; title = str; - - if (config.include) { - if (!isAbsolutePath(href)) { - href = getPath( - this.contentBase, - getParentPath(this.router.getCurrentPath()), - href - ); + + if ( + !isAbsolutePath(href) && + !_self._matchNotCompileLink(href) && + !config.ignore + ) { + if (href === _self.config.homepage) { + href = 'README'; } - - var media; - if (config.type && (media = compileMedia[config.type])) { - embed = media.call(this, href, title); - embed.type = config.type; - } else { - var type = 'code'; - if (/\.(md|markdown)/.test(href)) { - type = 'markdown'; - } else if (/\.mmd/.test(href)) { - type = 'mermaid'; - } else if (/\.html?/.test(href)) { - type = 'iframe'; - } else if (/\.(mp4|ogg)/.test(href)) { - type = 'video'; - } else if (/\.mp3/.test(href)) { - type = 'audio'; - } - embed = compileMedia[type].call(this, href, title); - embed.type = type; - } - embed.fragment = config.fragment; - - return embed - } - }; - - Compiler.prototype._matchNotCompileLink = function _matchNotCompileLink (link) { - var links = this.config.noCompileLinks || []; - - for (var i = 0; i < links.length; i++) { - var n = links[i]; - var re = cachedLinks[n] || (cachedLinks[n] = new RegExp(("^" + n + "$"))); - - if (re.test(link)) { - return link - } - } - }; - - Compiler.prototype._initRenderer = function _initRenderer () { - var renderer = new marked.Renderer(); - var ref = this; - var linkTarget = ref.linkTarget; - var router = ref.router; - var contentBase = ref.contentBase; - var _self = this; - var origin = {}; - - /** - * Render anchor tag - * @link https://github.com/markedjs/marked#overriding-renderer-methods - */ - origin.heading = renderer.heading = function (text, level) { - var ref = getAndRemoveConfig(text); - var str = ref.str; - var config = ref.config; - var nextToc = {level: level, title: str}; - - if (/{docsify-ignore}/g.test(str)) { - str = str.replace('{docsify-ignore}', ''); - nextToc.title = str; - nextToc.ignoreSubHeading = true; - } - - if (/{docsify-ignore-all}/g.test(str)) { - str = str.replace('{docsify-ignore-all}', ''); - nextToc.title = str; - nextToc.ignoreAllSubs = true; - } - - var slug = slugify(config.id || str); - var url = router.toURL(router.getCurrentPath(), {id: slug}); - nextToc.slug = url; - _self.toc.push(nextToc); - - return ("" + str + "") - }; - // Highlight code - origin.code = renderer.code = function (code, lang) { - if ( lang === void 0 ) lang = ''; - - code = code.replace(/@DOCSIFY_QM@/g, '`'); - var hl = prism.highlight( - code, - prism.languages[lang] || prism.languages.markup - ); - - return ("
    " + hl + "
    ") - }; - origin.link = renderer.link = function (href, title, text) { - if ( title === void 0 ) title = ''; - - var attrs = ''; - - var ref = getAndRemoveConfig(title); - var str = ref.str; - var config = ref.config; - title = str; - - if ( - !isAbsolutePath(href) && - !_self._matchNotCompileLink(href) && - !config.ignore - ) { - if (href === _self.config.homepage) { - href = 'README'; - } - href = router.toURL(href, null, router.getCurrentPath()); - } else { - attrs += href.indexOf('mailto:') === 0 ? '' : (" target=\"" + linkTarget + "\""); - } - - if (config.target) { - attrs += ' target=' + config.target; - } - - if (config.disabled) { - attrs += ' disabled'; - href = 'javascript:void(0)'; - } - - if (title) { - attrs += " title=\"" + title + "\""; - } - - return ("" + text + "") - }; - origin.paragraph = renderer.paragraph = function (text) { - var result; - if (/^!>/.test(text)) { - result = helper('tip', text); - } else if (/^\?>/.test(text)) { - result = helper('warn', text); - } else { - result = "

    " + text + "

    "; - } - return result - }; - origin.image = renderer.image = function (href, title, text) { - var url = href; - var attrs = ''; - - var ref = getAndRemoveConfig(title); - var str = ref.str; - var config = ref.config; - title = str; - - if (config['no-zoom']) { - attrs += ' data-no-zoom'; - } - - if (title) { - attrs += " title=\"" + title + "\""; - } - - var size = config.size; - if (size) { - var sizes = size.split('x'); - if (sizes[1]) { - attrs += 'width=' + sizes[0] + ' height=' + sizes[1]; - } else { - attrs += 'width=' + sizes[0]; - } - } - - if (!isAbsolutePath(href)) { - url = getPath(contentBase, getParentPath(router.getCurrentPath()), href); - } - - return ("\""") - }; - origin.list = renderer.list = function (body, ordered, start) { - var isTaskList = /
  • /.test(body.split('class="task-list"')[0]); - var isStartReq = start && start > 1; - var tag = ordered ? 'ol' : 'ul'; - var tagAttrs = [ - (isTaskList ? 'class="task-list"' : ''), - (isStartReq ? ("start=\"" + start + "\"") : '') - ].join(' ').trim(); - - return ("<" + tag + " " + tagAttrs + ">" + body + "") - }; - origin.listitem = renderer.listitem = function (text) { - var isTaskItem = /^(]*>)/.test(text); - var html = isTaskItem ? ("
  • ") : ("
  • " + text + "
  • "); - - return html - }; - - renderer.origin = origin; - - return renderer - }; - - /** - * Compile sidebar - */ - Compiler.prototype.sidebar = function sidebar (text, level) { - var ref = this; - var toc = ref.toc; - var currentPath = this.router.getCurrentPath(); - var html = ''; - - if (text) { - html = this.compile(text); + href = router.toURL(href, null, router.getCurrentPath()); } else { - for (var i = 0; i < toc.length; i++) { - if (toc[i].ignoreSubHeading) { - var deletedHeaderLevel = toc[i].level; - toc.splice(i, 1); - // Remove headers who are under current header - for (var j = i; deletedHeaderLevel < toc[j].level && j < toc.length; j++) { - toc.splice(j, 1) && j-- && i++; - } - i--; - } + attrs += href.indexOf('mailto:') === 0 ? '' : (" target=\"" + linkTarget + "\""); + } + + if (config.target) { + attrs += ' target=' + config.target; + } + + if (config.disabled) { + attrs += ' disabled'; + href = 'javascript:void(0)'; + } + + if (title) { + attrs += " title=\"" + title + "\""; + } + + return ("" + text + "") + }; + origin.paragraph = renderer.paragraph = function (text) { + var result; + if (/^!>/.test(text)) { + result = helper('tip', text); + } else if (/^\?>/.test(text)) { + result = helper('warn', text); + } else { + result = "

    " + text + "

    "; + } + return result + }; + origin.image = renderer.image = function (href, title, text) { + var url = href; + var attrs = ''; + + var ref = getAndRemoveConfig(title); + var str = ref.str; + var config = ref.config; + title = str; + + if (config['no-zoom']) { + attrs += ' data-no-zoom'; + } + + if (title) { + attrs += " title=\"" + title + "\""; + } + + var size = config.size; + if (size) { + var sizes = size.split('x'); + if (sizes[1]) { + attrs += 'width=' + sizes[0] + ' height=' + sizes[1]; + } else { + attrs += 'width=' + sizes[0]; } - var tree$$1 = this.cacheTree[currentPath] || genTree(toc, level); - html = tree(tree$$1, '
      {inner}
    '); - this.cacheTree[currentPath] = tree$$1; } - - // return html - return ''; - }; - - /** - * Compile sub sidebar - */ - Compiler.prototype.subSidebar = function subSidebar (level) { - if (!level) { - this.toc = []; - return + + if (!isAbsolutePath(href)) { + url = getPath(contentBase, getParentPath(router.getCurrentPath()), href); } - var currentPath = this.router.getCurrentPath(); - var ref = this; - var cacheTree = ref.cacheTree; - var toc = ref.toc; - - toc[0] && toc[0].ignoreAllSubs && toc.splice(0); - toc[0] && toc[0].level === 1 && toc.shift(); - - for (var i = 0; i < toc.length; i++) { - toc[i].ignoreSubHeading && toc.splice(i, 1) && i--; - } - var tree$$1 = cacheTree[currentPath] || genTree(toc, level); - - cacheTree[currentPath] = tree$$1; - this.toc = []; - return tree(tree$$1) + + return ("\""") }; - - Compiler.prototype.article = function article (text) { - return this.compile(text) + origin.list = renderer.list = function (body, ordered, start) { + var isTaskList = /
  • /.test(body.split('class="task-list"')[0]); + var isStartReq = start && start > 1; + var tag = ordered ? 'ol' : 'ul'; + var tagAttrs = [ + (isTaskList ? 'class="task-list"' : ''), + (isStartReq ? ("start=\"" + start + "\"") : '') + ].join(' ').trim(); + + return ("<" + tag + " " + tagAttrs + ">" + body + "") }; - - /** - * Compile cover page - */ - Compiler.prototype.cover = function cover$$1 (text) { - var cacheToc = this.toc.slice(); - var html = this.compile(text); - - this.toc = cacheToc.slice(); - + origin.listitem = renderer.listitem = function (text) { + var isTaskItem = /^(]*>)/.test(text); + var html = isTaskItem ? ("
  • ") : ("
  • " + text + "
  • "); + return html }; - - var title = $.title; - /** - * Toggle button - */ - function btn(el) { - var toggle = function (_) { return body.classList.toggle('close'); }; - - el = getNode(el); - if (el == null) { - return - } - on(el, 'click', function (e) { - e.stopPropagation(); - toggle(); - }); - - isMobile && - on( - body, - 'click', - function (_) { return body.classList.contains('close') && toggle(); } - ); - } - - function collapse(el) { - el = getNode(el); - if (el == null) { - return - } - on(el, 'click', function (ref) { - var target = ref.target; - - if ( - target.nodeName === 'A' && - target.nextSibling && - target.nextSibling.classList.contains('app-sub-sidebar') - ) { - toggleClass(target.parentNode, 'collapse'); + + renderer.origin = origin; + + return renderer + }; + + /** + * Compile sidebar + */ + Compiler.prototype.sidebar = function sidebar (text, level) { + var ref = this; + var toc = ref.toc; + var currentPath = this.router.getCurrentPath(); + var html = ''; + + if (text) { + html = this.compile(text); + } else { + for (var i = 0; i < toc.length; i++) { + if (toc[i].ignoreSubHeading) { + var deletedHeaderLevel = toc[i].level; + toc.splice(i, 1); + // Remove headers who are under current header + for (var j = i; deletedHeaderLevel < toc[j].level && j < toc.length; j++) { + toc.splice(j, 1) && j-- && i++; + } + i--; } - }); - } - - function sticky() { - var cover = getNode('section.cover'); - if (!cover) { - return } - var coverHeight = cover.getBoundingClientRect().height; - - if (window.pageYOffset >= coverHeight || cover.classList.contains('hidden')) { - toggleClass(body, 'add', 'sticky'); + var tree$$1 = this.cacheTree[currentPath] || genTree(toc, level); + html = tree(tree$$1, '
      {inner}
    '); + this.cacheTree[currentPath] = tree$$1; + } + + // return html + return ''; + }; + + /** + * Compile sub sidebar + */ + Compiler.prototype.subSidebar = function subSidebar (level) { + if (!level) { + this.toc = []; + return + } + var currentPath = this.router.getCurrentPath(); + var ref = this; + var cacheTree = ref.cacheTree; + var toc = ref.toc; + + toc[0] && toc[0].ignoreAllSubs && toc.splice(0); + toc[0] && toc[0].level === 1 && toc.shift(); + + for (var i = 0; i < toc.length; i++) { + toc[i].ignoreSubHeading && toc.splice(i, 1) && i--; + } + var tree$$1 = cacheTree[currentPath] || genTree(toc, level); + + cacheTree[currentPath] = tree$$1; + this.toc = []; + return tree(tree$$1) + }; + + Compiler.prototype.article = function article (text) { + return this.compile(text) + }; + + /** + * Compile cover page + */ + Compiler.prototype.cover = function cover$$1 (text) { + var cacheToc = this.toc.slice(); + var html = this.compile(text); + + this.toc = cacheToc.slice(); + + return html + }; + + var title = $.title; + /** + * Toggle button + */ + function btn(el) { + var toggle = function (_) { return body.classList.toggle('close'); }; + + el = getNode(el); + if (el == null) { + return + } + on(el, 'click', function (e) { + e.stopPropagation(); + toggle(); + }); + + isMobile && + on( + body, + 'click', + function (_) { return body.classList.contains('close') && toggle(); } + ); + } + + function collapse(el) { + el = getNode(el); + if (el == null) { + return + } + on(el, 'click', function (ref) { + var target = ref.target; + + if ( + target.nodeName === 'A' && + target.nextSibling && + target.nextSibling.classList.contains('app-sub-sidebar') + ) { + toggleClass(target.parentNode, 'collapse'); + } + }); + } + + function sticky() { + var cover = getNode('section.cover'); + if (!cover) { + return + } + var coverHeight = cover.getBoundingClientRect().height; + + if (window.pageYOffset >= coverHeight || cover.classList.contains('hidden')) { + toggleClass(body, 'add', 'sticky'); + } else { + toggleClass(body, 'remove', 'sticky'); + } + } + + /** + * Get and active link + * @param {object} router + * @param {string|element} el + * @param {Boolean} isParent acitve parent + * @param {Boolean} autoTitle auto set title + * @return {element} + */ + function getAndActive(router, el, isParent, autoTitle) { + el = getNode(el); + var links = []; + if (el != null) { + links = findAll(el, 'a'); + } + var hash = decodeURI(router.toURL(router.getCurrentPath())); + var target; + + links.sort(function (a, b) { return b.href.length - a.href.length; }).forEach(function (a) { + var href = a.getAttribute('href'); + var node = isParent ? a.parentNode : a; + + if (hash.indexOf(href) === 0 && !target) { + target = a; + toggleClass(node, 'add', 'active'); } else { - toggleClass(body, 'remove', 'sticky'); + toggleClass(node, 'remove', 'active'); } + }); + + if (autoTitle) { + $.title = target ? (target.title || ((target.innerText) + " - " + title)) : title; } - - /** - * Get and active link - * @param {object} router - * @param {string|element} el - * @param {Boolean} isParent acitve parent - * @param {Boolean} autoTitle auto set title - * @return {element} - */ - function getAndActive(router, el, isParent, autoTitle) { - el = getNode(el); - var links = []; - if (el != null) { - links = findAll(el, 'a'); - } - var hash = decodeURI(router.toURL(router.getCurrentPath())); - var target; - - links.sort(function (a, b) { return b.href.length - a.href.length; }).forEach(function (a) { - var href = a.getAttribute('href'); - var node = isParent ? a.parentNode : a; - - if (hash.indexOf(href) === 0 && !target) { - target = a; - toggleClass(node, 'add', 'active'); - } else { - toggleClass(node, 'remove', 'active'); + + return target + } + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) { descriptor.writable = true; } Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) { defineProperties(Constructor.prototype, protoProps); } if (staticProps) { defineProperties(Constructor, staticProps); } return Constructor; }; }(); + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + var Tweezer = function () { + function Tweezer() { + var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, Tweezer); + + this.duration = opts.duration || 1000; + this.ease = opts.easing || this._defaultEase; + this.start = opts.start; + this.end = opts.end; + + this.frame = null; + this.next = null; + this.isRunning = false; + this.events = {}; + this.direction = this.start < this.end ? 'up' : 'down'; + } + + _createClass(Tweezer, [{ + key: 'begin', + value: function begin() { + if (!this.isRunning && this.next !== this.end) { + this.frame = window.requestAnimationFrame(this._tick.bind(this)); } - }); - - if (autoTitle) { - $.title = target ? (target.title || ((target.innerText) + " - " + title)) : title; + return this; } - - return target - } - - var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) { descriptor.writable = true; } Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) { defineProperties(Constructor.prototype, protoProps); } if (staticProps) { defineProperties(Constructor, staticProps); } return Constructor; }; }(); - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - var Tweezer = function () { - function Tweezer() { - var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, Tweezer); - - this.duration = opts.duration || 1000; - this.ease = opts.easing || this._defaultEase; - this.start = opts.start; - this.end = opts.end; - - this.frame = null; - this.next = null; + }, { + key: 'stop', + value: function stop() { + window.cancelAnimationFrame(this.frame); this.isRunning = false; - this.events = {}; - this.direction = this.start < this.end ? 'up' : 'down'; + this.frame = null; + this.timeStart = null; + this.next = null; + return this; } - - _createClass(Tweezer, [{ - key: 'begin', - value: function begin() { - if (!this.isRunning && this.next !== this.end) { - this.frame = window.requestAnimationFrame(this._tick.bind(this)); - } - return this; - } - }, { - key: 'stop', - value: function stop() { - window.cancelAnimationFrame(this.frame); - this.isRunning = false; - this.frame = null; - this.timeStart = null; - this.next = null; - return this; - } - }, { - key: 'on', - value: function on(name, handler) { - this.events[name] = this.events[name] || []; - this.events[name].push(handler); - return this; - } - }, { - key: 'emit', - value: function emit(name, val) { - var _this = this; - - var e = this.events[name]; - e && e.forEach(function (handler) { - return handler.call(_this, val); - }); - } - }, { - key: '_tick', - value: function _tick(currentTime) { - this.isRunning = true; - - var lastTick = this.next || this.start; - - if (!this.timeStart) { this.timeStart = currentTime; } - this.timeElapsed = currentTime - this.timeStart; - this.next = Math.round(this.ease(this.timeElapsed, this.start, this.end - this.start, this.duration)); - - if (this._shouldTick(lastTick)) { - this.emit('tick', this.next); - this.frame = window.requestAnimationFrame(this._tick.bind(this)); - } else { - this.emit('tick', this.end); - this.emit('done', null); - } - } - }, { - key: '_shouldTick', - value: function _shouldTick(lastTick) { - return { - up: this.next < this.end && lastTick <= this.next, - down: this.next > this.end && lastTick >= this.next - }[this.direction]; - } - }, { - key: '_defaultEase', - value: function _defaultEase(t, b, c, d) { - if ((t /= d / 2) < 1) { return c / 2 * t * t + b; } - return -c / 2 * (--t * (t - 2) - 1) + b; - } - }]); - - return Tweezer; - }(); - - var nav = {}; - var hoverOver = false; - var scroller = null; - var enableScrollEvent = true; - var coverHeight = 0; - - function scrollTo(el) { - if (scroller) { - scroller.stop(); + }, { + key: 'on', + value: function on(name, handler) { + this.events[name] = this.events[name] || []; + this.events[name].push(handler); + return this; } - enableScrollEvent = false; - scroller = new Tweezer({ - start: window.pageYOffset, - end: el.getBoundingClientRect().top + window.pageYOffset, - duration: 500 - }) - .on('tick', function (v) { return window.scrollTo(0, v); }) - .on('done', function () { - enableScrollEvent = true; - scroller = null; - }) - .begin(); - } - - function highlight(path) { - if (!enableScrollEvent) { - return + }, { + key: 'emit', + value: function emit(name, val) { + var _this = this; + + var e = this.events[name]; + e && e.forEach(function (handler) { + return handler.call(_this, val); + }); } - var sidebar = getNode('.sidebar'); - var anchors = findAll('.anchor'); - var wrap = find(sidebar, '.sidebar-nav'); - var active = find(sidebar, 'li.active'); - var doc = document.documentElement; - var top = ((doc && doc.scrollTop) || document.body.scrollTop) - coverHeight; - var last; - - for (var i = 0, len = anchors.length; i < len; i += 1) { - var node = anchors[i]; - - if (node.offsetTop > top) { - if (!last) { - last = node; - } - break + }, { + key: '_tick', + value: function _tick(currentTime) { + this.isRunning = true; + + var lastTick = this.next || this.start; + + if (!this.timeStart) { this.timeStart = currentTime; } + this.timeElapsed = currentTime - this.timeStart; + this.next = Math.round(this.ease(this.timeElapsed, this.start, this.end - this.start, this.duration)); + + if (this._shouldTick(lastTick)) { + this.emit('tick', this.next); + this.frame = window.requestAnimationFrame(this._tick.bind(this)); } else { + this.emit('tick', this.end); + this.emit('done', null); + } + } + }, { + key: '_shouldTick', + value: function _shouldTick(lastTick) { + return { + up: this.next < this.end && lastTick <= this.next, + down: this.next > this.end && lastTick >= this.next + }[this.direction]; + } + }, { + key: '_defaultEase', + value: function _defaultEase(t, b, c, d) { + if ((t /= d / 2) < 1) { return c / 2 * t * t + b; } + return -c / 2 * (--t * (t - 2) - 1) + b; + } + }]); + + return Tweezer; + }(); + + var nav = {}; + var hoverOver = false; + var scroller = null; + var enableScrollEvent = true; + var coverHeight = 0; + + function scrollTo(el) { + if (scroller) { + scroller.stop(); + } + enableScrollEvent = false; + scroller = new Tweezer({ + start: window.pageYOffset, + end: el.getBoundingClientRect().top + window.pageYOffset, + duration: 500 + }) + .on('tick', function (v) { return window.scrollTo(0, v); }) + .on('done', function () { + enableScrollEvent = true; + scroller = null; + }) + .begin(); + } + + function highlight(path) { + if (!enableScrollEvent) { + return + } + var sidebar = getNode('.sidebar'); + var anchors = findAll('.anchor'); + var wrap = find(sidebar, '.sidebar-nav'); + var active = find(sidebar, 'li.active'); + var doc = document.documentElement; + var top = ((doc && doc.scrollTop) || document.body.scrollTop) - coverHeight; + var last; + + for (var i = 0, len = anchors.length; i < len; i += 1) { + var node = anchors[i]; + + if (node.offsetTop > top) { + if (!last) { last = node; } - } - if (!last) { - return - } - var li = nav[getNavKey(decodeURIComponent(path), last.getAttribute('data-id'))]; - - if (!li || li === active) { - return - } - - active && active.classList.remove('active'); - li.classList.add('active'); - active = li; - - // Scroll into view - // https://github.com/vuejs/vuejs.org/blob/master/themes/vue/source/js/common.js#L282-L297 - if (!hoverOver && body.classList.contains('sticky')) { - var height = sidebar.clientHeight; - var curOffset = 0; - var cur = active.offsetTop + active.clientHeight + 40; - var isInView = - active.offsetTop >= wrap.scrollTop && cur <= wrap.scrollTop + height; - var notThan = cur - curOffset < height; - var top$1 = isInView ? wrap.scrollTop : notThan ? curOffset : cur - height; - - sidebar.scrollTop = top$1; + break + } else { + last = node; } } - - function getNavKey(path, id) { - return (path + "?id=" + id) + if (!last) { + return } - - function scrollActiveSidebar(router) { - var cover = find('.cover.show'); - coverHeight = cover ? cover.offsetHeight : 0; - - var sidebar = getNode('.sidebar'); - var lis = []; - if (sidebar != null) { - lis = findAll(sidebar, 'li'); + var li = nav[getNavKey(decodeURIComponent(path), last.getAttribute('data-id'))]; + + if (!li || li === active) { + return + } + + active && active.classList.remove('active'); + li.classList.add('active'); + active = li; + + // Scroll into view + // https://github.com/vuejs/vuejs.org/blob/master/themes/vue/source/js/common.js#L282-L297 + if (!hoverOver && body.classList.contains('sticky')) { + var height = sidebar.clientHeight; + var curOffset = 0; + var cur = active.offsetTop + active.clientHeight + 40; + var isInView = + active.offsetTop >= wrap.scrollTop && cur <= wrap.scrollTop + height; + var notThan = cur - curOffset < height; + var top$1 = isInView ? wrap.scrollTop : notThan ? curOffset : cur - height; + + sidebar.scrollTop = top$1; + } + } + + function getNavKey(path, id) { + return (path + "?id=" + id) + } + + function scrollActiveSidebar(router) { + var cover = find('.cover.show'); + coverHeight = cover ? cover.offsetHeight : 0; + + var sidebar = getNode('.sidebar'); + var lis = []; + if (sidebar != null) { + lis = findAll(sidebar, 'li'); + } + + for (var i = 0, len = lis.length; i < len; i += 1) { + var li = lis[i]; + var a = li.querySelector('a'); + if (!a) { + continue } - - for (var i = 0, len = lis.length; i < len; i += 1) { - var li = lis[i]; - var a = li.querySelector('a'); - if (!a) { - continue - } - var href = a.getAttribute('href'); - - if (href !== '/') { - var ref = router.parse(href); - var id = ref.query.id; - var path$1 = ref.path; - if (id) { - href = getNavKey(path$1, id); - } - } - - if (href) { - nav[decodeURIComponent(href)] = li; + var href = a.getAttribute('href'); + + if (href !== '/') { + var ref = router.parse(href); + var id = ref.query.id; + var path$1 = ref.path; + if (id) { + href = getNavKey(path$1, id); } } - - if (isMobile) { - return + + if (href) { + nav[decodeURIComponent(href)] = li; } - var path = router.getCurrentPath(); - off('scroll', function () { return highlight(path); }); - on('scroll', function () { return highlight(path); }); - on(sidebar, 'mouseover', function () { - hoverOver = true; - }); - on(sidebar, 'mouseleave', function () { - hoverOver = false; - }); } - - function scrollIntoView(path, id) { - if (!id) { - return - } - - var section = find('#' + id); - section && scrollTo(section); - - var li = nav[getNavKey(path, id)]; - var sidebar = getNode('.sidebar'); - var active = find(sidebar, 'li.active'); - active && active.classList.remove('active'); - li && li.classList.add('active'); + + if (isMobile) { + return } - - var scrollEl = $.scrollingElement || $.documentElement; - - function scroll2Top(offset) { - if ( offset === void 0 ) offset = 0; - - scrollEl.scrollTop = offset === true ? 0 : Number(offset); + var path = router.getCurrentPath(); + off('scroll', function () { return highlight(path); }); + on('scroll', function () { return highlight(path); }); + on(sidebar, 'mouseover', function () { + hoverOver = true; + }); + on(sidebar, 'mouseleave', function () { + hoverOver = false; + }); + } + + function scrollIntoView(path, id) { + if (!id) { + return } - - var cached$1 = {}; - - function walkFetchEmbed(ref, cb) { - var embedTokens = ref.embedTokens; - var compile = ref.compile; - var fetch = ref.fetch; - - var token; - var step = 0; - var count = 1; - - if (!embedTokens.length) { - return cb({}) - } - - while ((token = embedTokens[step++])) { - var next = (function (token) { - return function (text) { - var embedToken; - if (text) { - if (token.embed.type === 'markdown') { - embedToken = compile.lexer(text); - } else if (token.embed.type === 'code') { - if (token.embed.fragment) { - var fragment = token.embed.fragment; - var pattern = new RegExp(("(?:###|\\/\\/\\/)\\s*\\[" + fragment + "\\]([\\s\\S]*)(?:###|\\/\\/\\/)\\s*\\[" + fragment + "\\]")); - text = ((text.match(pattern) || [])[1] || '').trim(); - } - embedToken = compile.lexer( - '```' + - token.embed.lang + - '\n' + - text.replace(/`/g, '@DOCSIFY_QM@') + - '\n```\n' - ); - } else if (token.embed.type === 'mermaid') { - embedToken = [ - {type: 'html', text: ("
    \n" + text + "\n
    ")} - ]; - embedToken.links = {}; - } else { - embedToken = [{type: 'html', text: text}]; - embedToken.links = {}; + + var section = find('#' + id); + section && scrollTo(section); + + var li = nav[getNavKey(path, id)]; + var sidebar = getNode('.sidebar'); + var active = find(sidebar, 'li.active'); + active && active.classList.remove('active'); + li && li.classList.add('active'); + } + + var scrollEl = $.scrollingElement || $.documentElement; + + function scroll2Top(offset) { + if ( offset === void 0 ) offset = 0; + + scrollEl.scrollTop = offset === true ? 0 : Number(offset); + } + + var cached$1 = {}; + + function walkFetchEmbed(ref, cb) { + var embedTokens = ref.embedTokens; + var compile = ref.compile; + var fetch = ref.fetch; + + var token; + var step = 0; + var count = 1; + + if (!embedTokens.length) { + return cb({}) + } + + while ((token = embedTokens[step++])) { + var next = (function (token) { + return function (text) { + var embedToken; + if (text) { + if (token.embed.type === 'markdown') { + embedToken = compile.lexer(text); + } else if (token.embed.type === 'code') { + if (token.embed.fragment) { + var fragment = token.embed.fragment; + var pattern = new RegExp(("(?:###|\\/\\/\\/)\\s*\\[" + fragment + "\\]([\\s\\S]*)(?:###|\\/\\/\\/)\\s*\\[" + fragment + "\\]")); + text = ((text.match(pattern) || [])[1] || '').trim(); } - } - cb({token: token, embedToken: embedToken}); - if (++count >= step) { - cb({}); + embedToken = compile.lexer( + '```' + + token.embed.lang + + '\n' + + text.replace(/`/g, '@DOCSIFY_QM@') + + '\n```\n' + ); + } else if (token.embed.type === 'mermaid') { + embedToken = [ + {type: 'html', text: ("
    \n" + text + "\n
    ")} + ]; + embedToken.links = {}; + } else { + embedToken = [{type: 'html', text: text}]; + embedToken.links = {}; } } - })(token); - - if (token.embed.url) { - { - get(token.embed.url).then(next); + cb({token: token, embedToken: embedToken}); + if (++count >= step) { + cb({}); } - } else { - next(token.embed.html); } + })(token); + + if (token.embed.url) { + { + get(token.embed.url).then(next); + } + } else { + next(token.embed.html); } } - - function prerenderEmbed(ref, done) { - var compiler = ref.compiler; - var raw = ref.raw; if ( raw === void 0 ) raw = ''; - var fetch = ref.fetch; - - var hit = cached$1[raw]; - if (hit) { - var copy = hit.slice(); - copy.links = hit.links; - return done(copy) - } - - var compile = compiler._marked; - var tokens = compile.lexer(raw); - var embedTokens = []; - var linkRE = compile.InlineLexer.rules.link; - var links = tokens.links; - - tokens.forEach(function (token, index) { - if (token.type === 'paragraph') { - token.text = token.text.replace( - new RegExp(linkRE.source, 'g'), - function (src, filename, href, title) { - var embed = compiler.compileEmbed(href, title); - - if (embed) { - embedTokens.push({ - index: index, - embed: embed - }); - } - - return src + } + + function prerenderEmbed(ref, done) { + var compiler = ref.compiler; + var raw = ref.raw; if ( raw === void 0 ) raw = ''; + var fetch = ref.fetch; + + var hit = cached$1[raw]; + if (hit) { + var copy = hit.slice(); + copy.links = hit.links; + return done(copy) + } + + var compile = compiler._marked; + var tokens = compile.lexer(raw); + var embedTokens = []; + var linkRE = compile.InlineLexer.rules.link; + var links = tokens.links; + + tokens.forEach(function (token, index) { + if (token.type === 'paragraph') { + token.text = token.text.replace( + new RegExp(linkRE.source, 'g'), + function (src, filename, href, title) { + var embed = compiler.compileEmbed(href, title); + + if (embed) { + embedTokens.push({ + index: index, + embed: embed + }); } - ); - } - }); - - var moveIndex = 0; - walkFetchEmbed({compile: compile, embedTokens: embedTokens, fetch: fetch}, function (ref) { - var embedToken = ref.embedToken; - var token = ref.token; - - if (token) { - var index = token.index + moveIndex; - - merge(links, embedToken.links); - - tokens = tokens - .slice(0, index) - .concat(embedToken, tokens.slice(index + 1)); - moveIndex += embedToken.length - 1; - } else { - cached$1[raw] = tokens.concat(); - tokens.links = cached$1[raw].links = links; - done(tokens); - } - }); + + return src + } + ); + } + }); + + var moveIndex = 0; + walkFetchEmbed({compile: compile, embedTokens: embedTokens, fetch: fetch}, function (ref) { + var embedToken = ref.embedToken; + var token = ref.token; + + if (token) { + var index = token.index + moveIndex; + + merge(links, embedToken.links); + + tokens = tokens + .slice(0, index) + .concat(embedToken, tokens.slice(index + 1)); + moveIndex += embedToken.length - 1; + } else { + cached$1[raw] = tokens.concat(); + tokens.links = cached$1[raw].links = links; + done(tokens); + } + }); + } + + function executeScript() { + var script = findAll('.markdown-section>script') + .filter(function (s) { return !/template/.test(s.type); })[0]; + if (!script) { + return false } - - function executeScript() { - var script = findAll('.markdown-section>script') - .filter(function (s) { return !/template/.test(s.type); })[0]; - if (!script) { - return false - } - var code = script.innerText.trim(); - if (!code) { - return false - } - + var code = script.innerText.trim(); + if (!code) { + return false + } + + setTimeout(function (_) { + window.__EXECUTE_RESULT__ = new Function(code)(); + }, 0); + } + + function formatUpdated(html, updated, fn) { + updated = + typeof fn === 'function' ? + fn(updated) : + typeof fn === 'string' ? + tinydate(fn)(new Date(updated)) : + updated; + + return html.replace(/{docsify-updated}/g, updated) + } + + function renderMain(html) { + if (!html) { + html = '

    404 - Not found

    '; + } + + this._renderTo('.markdown-section', html); + // Render sidebar with the TOC + !this.config.loadSidebar && this._renderSidebar(); + + // Execute script + if ( + this.config.executeScript !== false && + typeof window.Vue !== 'undefined' && + !executeScript() + ) { setTimeout(function (_) { - window.__EXECUTE_RESULT__ = new Function(code)(); + var vueVM = window.__EXECUTE_RESULT__; + vueVM && vueVM.$destroy && vueVM.$destroy(); + window.__EXECUTE_RESULT__ = new window.Vue().$mount('#main'); }, 0); + } else { + this.config.executeScript && executeScript(); } - - function formatUpdated(html, updated, fn) { - updated = - typeof fn === 'function' ? - fn(updated) : - typeof fn === 'string' ? - tinydate(fn)(new Date(updated)) : - updated; - - return html.replace(/{docsify-updated}/g, updated) + } + + function renderNameLink(vm) { + var el = getNode('.app-name-link'); + var nameLink = vm.config.nameLink; + var path = vm.route.path; + + if (!el) { + return } - - function renderMain(html) { - if (!html) { - html = '

    404 - Not found

    '; + + if (isPrimitive(vm.config.nameLink)) { + el.setAttribute('href', nameLink); + } else if (typeof nameLink === 'object') { + var match = Object.keys(nameLink).filter(function (key) { return path.indexOf(key) > -1; })[0]; + + el.setAttribute('href', nameLink[match]); + } + } + + function renderMixin(proto) { + proto._renderTo = function (el, content, replace) { + var node = getNode(el); + if (node) { + node[replace ? 'outerHTML' : 'innerHTML'] = content; } - - this._renderTo('.markdown-section', html); - // Render sidebar with the TOC - !this.config.loadSidebar && this._renderSidebar(); - - // Execute script - if ( - this.config.executeScript !== false && - typeof window.Vue !== 'undefined' && - !executeScript() - ) { - setTimeout(function (_) { - var vueVM = window.__EXECUTE_RESULT__; - vueVM && vueVM.$destroy && vueVM.$destroy(); - window.__EXECUTE_RESULT__ = new window.Vue().$mount('#main'); - }, 0); + }; + + proto._renderSidebar = function (text) { + var ref = this.config; + var maxLevel = ref.maxLevel; + var subMaxLevel = ref.subMaxLevel; + var loadSidebar = ref.loadSidebar; + + this._renderTo('.sidebar-nav', this.compiler.sidebar(text, maxLevel)); + var activeEl = getAndActive(this.router, '.sidebar-nav', true, true); + if (loadSidebar && activeEl) { + activeEl.parentNode.innerHTML += + this.compiler.subSidebar(subMaxLevel) || ''; } else { - this.config.executeScript && executeScript(); + // Reset toc + this.compiler.subSidebar(); } - } - - function renderNameLink(vm) { - var el = getNode('.app-name-link'); - var nameLink = vm.config.nameLink; - var path = vm.route.path; - - if (!el) { - return - } - - if (isPrimitive(vm.config.nameLink)) { - el.setAttribute('href', nameLink); - } else if (typeof nameLink === 'object') { - var match = Object.keys(nameLink).filter(function (key) { return path.indexOf(key) > -1; })[0]; - - el.setAttribute('href', nameLink[match]); - } - } - - function renderMixin(proto) { - proto._renderTo = function (el, content, replace) { - var node = getNode(el); - if (node) { - node[replace ? 'outerHTML' : 'innerHTML'] = content; + // Bind event + this._bindEventOnRendered(activeEl); + }; + + proto._bindEventOnRendered = function (activeEl) { + var ref = this.config; + var autoHeader = ref.autoHeader; + var auto2top = ref.auto2top; + + scrollActiveSidebar(this.router); + + if (autoHeader && activeEl) { + var main$$1 = getNode('#main'); + var firstNode = main$$1.children[0]; + if (firstNode && firstNode.tagName !== 'H1') { + var h1 = create('h1'); + h1.innerText = activeEl.innerText; + before(main$$1, h1); } - }; - - proto._renderSidebar = function (text) { - var ref = this.config; - var maxLevel = ref.maxLevel; - var subMaxLevel = ref.subMaxLevel; - var loadSidebar = ref.loadSidebar; - - this._renderTo('.sidebar-nav', this.compiler.sidebar(text, maxLevel)); - var activeEl = getAndActive(this.router, '.sidebar-nav', true, true); - if (loadSidebar && activeEl) { - activeEl.parentNode.innerHTML += - this.compiler.subSidebar(subMaxLevel) || ''; + } + + auto2top && scroll2Top(auto2top); + }; + + // proto._renderNav = function (text) { + // text && this._renderTo('nav', this.compiler.compile(text)); + // if (this.config.loadNavbar) { + // getAndActive(this.router, 'nav'); + // } + // }; + + proto._renderMain = function (text, opt, next) { + var this$1 = this; + if ( opt === void 0 ) opt = {}; + + if (!text) { + return renderMain.call(this, text) + } + + callHook(this, 'beforeEach', text, function (result) { + var html; + var callback = function () { + if (opt.updatedAt) { + html = formatUpdated(html, opt.updatedAt, this$1.config.formatUpdated); + } + + callHook(this$1, 'afterEach', html, function (text) { completeLoading();return renderMain.call(this$1, text); }); + }; + if (this$1.isHTML) { + html = this$1.result = text; + callback(); + next(); } else { - // Reset toc - this.compiler.subSidebar(); - } - // Bind event - this._bindEventOnRendered(activeEl); - }; - - proto._bindEventOnRendered = function (activeEl) { - var ref = this.config; - var autoHeader = ref.autoHeader; - var auto2top = ref.auto2top; - - scrollActiveSidebar(this.router); - - if (autoHeader && activeEl) { - var main$$1 = getNode('#main'); - var firstNode = main$$1.children[0]; - if (firstNode && firstNode.tagName !== 'H1') { - var h1 = create('h1'); - h1.innerText = activeEl.innerText; - before(main$$1, h1); - } - } - - auto2top && scroll2Top(auto2top); - }; - - proto._renderNav = function (text) { - text && this._renderTo('nav', this.compiler.compile(text)); - if (this.config.loadNavbar) { - getAndActive(this.router, 'nav'); - } - }; - - proto._renderMain = function (text, opt, next) { - var this$1 = this; - if ( opt === void 0 ) opt = {}; - - if (!text) { - return renderMain.call(this, text) - } - - callHook(this, 'beforeEach', text, function (result) { - var html; - var callback = function () { - if (opt.updatedAt) { - html = formatUpdated(html, opt.updatedAt, this$1.config.formatUpdated); + prerenderEmbed( + { + compiler: this$1.compiler, + raw: result + }, + function (tokens) { + html = this$1.compiler.compile(tokens); + callback(); + next(); } - - callHook(this$1, 'afterEach', html, function (text) { completeLoading();return renderMain.call(this$1, text); }); - }; - if (this$1.isHTML) { - html = this$1.result = text; - callback(); - next(); - } else { - prerenderEmbed( - { - compiler: this$1.compiler, - raw: result - }, - function (tokens) { - html = this$1.compiler.compile(tokens); - callback(); - next(); - } - ); - } - }); - }; - - proto._renderCover = function (text, coverOnly) { - var el = getNode('.cover'); - - toggleClass(getNode('main'), coverOnly ? 'add' : 'remove', 'hidden'); - if (!text) { - toggleClass(el, 'remove', 'show'); - return + ); } - toggleClass(el, 'add', 'show'); - - var html = this.coverIsHTML ? text : this.compiler.cover(text); - - var m = html - .trim() - .match('

    ([^<]*?)

    $'); - - if (m) { - if (m[2] === 'color') { - el.style.background = m[1] + (m[3] || ''); - } else { - var path = m[1]; - - toggleClass(el, 'add', 'has-mask'); - if (!isAbsolutePath(m[1])) { - path = getPath(this.router.getBasePath(), m[1]); - } - el.style.backgroundImage = "url(" + path + ")"; - el.style.backgroundSize = 'cover'; - el.style.backgroundPosition = 'center center'; - } - html = html.replace(m[0], ''); - } - - this._renderTo('.cover-main', html); - sticky(); - }; - - proto._updateRender = function () { - // Render name link - renderNameLink(this); - }; - } - - function initRender(vm) { - var config = vm.config; - - // Init markdown compiler - vm.compiler = new Compiler(config, vm.router); - if (inBrowser) { - window.__current_docsify_compiler__ = vm.compiler; - } - - var id = config.el || '#app'; - var navEl = find('nav') || create('nav'); - - var el = find(id); - var html = ''; - var navAppendToTarget = body; - - if (el) { - if (config.repo) { - html += corner(config.repo); - } - if (config.coverpage) { - html += cover(); - } - - if (config.logo) { - var isBase64 = /^data:image/.test(config.logo); - var isExternal = /(?:http[s]?:)?\/\//.test(config.logo); - var isRelative = /^\./.test(config.logo); - - if (!isBase64 && !isExternal && !isRelative) { - config.logo = getPath(vm.router.getBasePath(), config.logo); - } - } - - html += main(config); - // Render main app - vm._renderTo(el, html, true); - } else { - vm.rendered = true; - } - - if (config.mergeNavbar && isMobile) { - navAppendToTarget = find('.sidebar'); - } else { - navEl.classList.add('app-nav'); - - if (!config.repo) { - navEl.classList.add('no-badge'); - } - } - - // Add nav - if (config.loadNavbar) { - before(navAppendToTarget, navEl); - } - - if (config.themeColor) { - $.head.appendChild( - create('div', theme(config.themeColor)).firstElementChild - ); - // Polyfll - cssVars(config.themeColor); - } - vm._updateRender(); - toggleClass(body, 'ready'); - } - - var cached$2 = {}; - - function getAlias(path, alias, last) { - var match = Object.keys(alias).filter(function (key) { - var re = cached$2[key] || (cached$2[key] = new RegExp(("^" + key + "$"))); - return re.test(path) && path !== last - })[0]; - - return match ? - getAlias(path.replace(cached$2[match], alias[match]), alias, path) : - path - } - - function getFileName(path, ext) { - return new RegExp(("\\.(" + (ext.replace(/^\./, '')) + "|html)$"), 'g').test(path) ? - path : - /\/$/g.test(path) ? (path + "README" + ext) : ("" + path + ext) - } - - var History = function History(config) { - this.config = config; - }; - - History.prototype.getBasePath = function getBasePath () { - return this.config.basePath - }; - - History.prototype.getFile = function getFile (path, isRelative) { - if ( path === void 0 ) path = this.getCurrentPath(); - - var ref = this; - var config = ref.config; - var base = this.getBasePath(); - var ext = typeof config.ext === 'string' ? config.ext : '.md'; - - path = config.alias ? getAlias(path, config.alias) : path; - path = getFileName(path, ext); - path = path === ("/README" + ext) ? config.homepage || path : path; - path = isAbsolutePath(path) ? path : getPath(base, path); - - if (isRelative) { - path = path.replace(new RegExp(("^" + base)), ''); - } - - return path - }; - - History.prototype.onchange = function onchange (cb) { - if ( cb === void 0 ) cb = noop; - - cb(); - }; - - History.prototype.getCurrentPath = function getCurrentPath () {}; - - History.prototype.normalize = function normalize () {}; - - History.prototype.parse = function parse () {}; - - History.prototype.toURL = function toURL (path, params, currentRoute) { - var local = currentRoute && path[0] === '#'; - var route = this.parse(replaceSlug(path)); - - route.query = merge({}, route.query, params); - path = route.path + stringifyQuery(route.query); - path = path.replace(/\.md(\?)|\.md$/, '$1'); - - if (local) { - var idIndex = currentRoute.indexOf('?'); - path = - (idIndex > 0 ? currentRoute.substring(0, idIndex) : currentRoute) + path; - } - - if (this.config.relativePath && path.indexOf('/') !== 0) { - var currentDir = currentRoute.substring(0, currentRoute.lastIndexOf('/') + 1); - return cleanPath(resolvePath(currentDir + path)) - } - return cleanPath('/' + path) - }; - - function replaceHash(path) { - var i = location.href.indexOf('#'); - location.replace(location.href.slice(0, i >= 0 ? i : 0) + '#' + path); - } - - var HashHistory = (function (History$$1) { - function HashHistory(config) { - History$$1.call(this, config); - this.mode = 'hash'; - } - - if ( History$$1 ) HashHistory.__proto__ = History$$1; - HashHistory.prototype = Object.create( History$$1 && History$$1.prototype ); - HashHistory.prototype.constructor = HashHistory; - - HashHistory.prototype.getBasePath = function getBasePath () { - var path = window.location.pathname || ''; - var base = this.config.basePath; - - return /^(\/|https?:)/g.test(base) ? base : cleanPath(path + '/' + base) - }; - - HashHistory.prototype.getCurrentPath = function getCurrentPath () { - // We can't use location.hash here because it's not - // consistent across browsers - Firefox will pre-decode it! - var href = location.href; - var index = href.indexOf('#'); - return index === -1 ? '' : href.slice(index + 1) - }; - - HashHistory.prototype.onchange = function onchange (cb) { - if ( cb === void 0 ) cb = noop; - - on('hashchange', cb); - }; - - HashHistory.prototype.normalize = function normalize () { - var path = this.getCurrentPath(); - - path = replaceSlug(path); - - if (path.charAt(0) === '/') { - return replaceHash(path) - } - replaceHash('/' + path); - }; - - /** - * Parse the url - * @param {string} [path=location.herf] - * @return {object} { path, query } - */ - HashHistory.prototype.parse = function parse (path) { - if ( path === void 0 ) path = location.href; - - var query = ''; - - var hashIndex = path.indexOf('#'); - if (hashIndex >= 0) { - path = path.slice(hashIndex + 1); - } - - var queryIndex = path.indexOf('?'); - if (queryIndex >= 0) { - query = path.slice(queryIndex + 1); - path = path.slice(0, queryIndex); - } - - return { - path: path, - file: this.getFile(path, true), - query: parseQuery(query) - } - }; - - HashHistory.prototype.toURL = function toURL (path, params, currentRoute) { - return '#' + History$$1.prototype.toURL.call(this, path, params, currentRoute) - }; - - return HashHistory; - }(History)); - - var HTML5History = (function (History$$1) { - function HTML5History(config) { - History$$1.call(this, config); - this.mode = 'history'; - } - - if ( History$$1 ) HTML5History.__proto__ = History$$1; - HTML5History.prototype = Object.create( History$$1 && History$$1.prototype ); - HTML5History.prototype.constructor = HTML5History; - - HTML5History.prototype.getCurrentPath = function getCurrentPath () { - var base = this.getBasePath(); - var path = window.location.pathname; - - if (base && path.indexOf(base) === 0) { - path = path.slice(base.length); - } - - return (path || '/') + window.location.search + window.location.hash - }; - - HTML5History.prototype.onchange = function onchange (cb) { - if ( cb === void 0 ) cb = noop; - - on('click', function (e) { - var el = e.target.tagName === 'A' ? e.target : e.target.parentNode; - - if (el.tagName === 'A' && !/_blank/.test(el.target)) { - e.preventDefault(); - var url = el.href; - window.history.pushState({key: url}, '', url); - cb(); - } - }); - - on('popstate', cb); - }; - - /** - * Parse the url - * @param {string} [path=location.href] - * @return {object} { path, query } - */ - HTML5History.prototype.parse = function parse (path) { - if ( path === void 0 ) path = location.href; - - var query = ''; - - var queryIndex = path.indexOf('?'); - if (queryIndex >= 0) { - query = path.slice(queryIndex + 1); - path = path.slice(0, queryIndex); - } - - var base = getPath(location.origin); - var baseIndex = path.indexOf(base); - - if (baseIndex > -1) { - path = path.slice(baseIndex + base.length); - } - - return { - path: path, - file: this.getFile(path), - query: parseQuery(query) - } - }; - - return HTML5History; - }(History)); - - function routerMixin(proto) { - proto.route = {}; - } - - var lastRoute = {}; - - function updateRender(vm) { - vm.router.normalize(); - vm.route = vm.router.parse(); - body.setAttribute('data-page', vm.route.file); - } - - function initRouter(vm) { - var config = vm.config; - var mode = config.routerMode || 'hash'; - var router; - - if (mode === 'history' && supportsPushState) { - router = new HTML5History(config); - } else { - router = new HashHistory(config); - } - - vm.router = router; - updateRender(vm); - lastRoute = vm.route; - - router.onchange(function (_) { - updateRender(vm); - vm._updateRender(); - - if (lastRoute.path === vm.route.path) { - vm.$resetEvents(); - return - } - - vm.$fetch(); - lastRoute = vm.route; }); + }; + + // proto._renderCover = function (text, coverOnly) { + // var el = getNode('.cover'); + + // toggleClass(getNode('main'), coverOnly ? 'add' : 'remove', 'hidden'); + // if (!text) { + // toggleClass(el, 'remove', 'show'); + // return + // } + // toggleClass(el, 'add', 'show'); + + // var html = this.coverIsHTML ? text : this.compiler.cover(text); + + // var m = html + // .trim() + // .match('

    ([^<]*?)

    $'); + + // if (m) { + // if (m[2] === 'color') { + // el.style.background = m[1] + (m[3] || ''); + // } else { + // var path = m[1]; + + // toggleClass(el, 'add', 'has-mask'); + // if (!isAbsolutePath(m[1])) { + // path = getPath(this.router.getBasePath(), m[1]); + // } + // el.style.backgroundImage = "url(" + path + ")"; + // el.style.backgroundSize = 'cover'; + // el.style.backgroundPosition = 'center center'; + // } + // html = html.replace(m[0], ''); + // } + + // this._renderTo('.cover-main', html); + // sticky(); + // }; + + proto._updateRender = function () { + // Render name link + renderNameLink(this); + }; + } + + function initRender(vm) { + var config = vm.config; + + // Init markdown compiler + vm.compiler = new Compiler(config, vm.router); + if (inBrowser) { + window.__current_docsify_compiler__ = vm.compiler; } - - function eventMixin(proto) { - proto.$resetEvents = function () { - scrollIntoView(this.route.path, this.route.query.id); - - if (this.config.loadNavbar) { - getAndActive(this.router, 'nav'); + + var id = config.el || '#app'; + var navEl = find('nav') || create('nav'); + + var el = find(id); + var html = ''; + var navAppendToTarget = body; + + if (el) { + if (config.repo) { + html += corner(config.repo); + } + if (config.coverpage) { + html += cover(); + } + + if (config.logo) { + var isBase64 = /^data:image/.test(config.logo); + var isExternal = /(?:http[s]?:)?\/\//.test(config.logo); + var isRelative = /^\./.test(config.logo); + + if (!isBase64 && !isExternal && !isRelative) { + config.logo = getPath(vm.router.getBasePath(), config.logo); } - }; + } + + html += main(config); + // Render main app + vm._renderTo(el, html, true); + } else { + vm.rendered = true; } - - function initEvent(vm) { - // Bind toggle button - btn('button.sidebar-toggle', vm.router); - collapse('.sidebar', vm.router); - // Bind sticky effect - if (vm.config.coverpage) { - !isMobile && on('scroll', sticky); - } else { - body.classList.add('sticky'); + + if (config.mergeNavbar && isMobile) { + navAppendToTarget = find('.sidebar'); + } else { + navEl.classList.add('app-nav'); + + if (!config.repo) { + navEl.classList.add('no-badge'); } } - - function loadNested(path, qs, file, next, vm, first) { - path = first ? path : path.replace(/\/$/, ''); - path = getParentPath(path); - - if (!path) { + + // Add nav + if (config.loadNavbar) { + before(navAppendToTarget, navEl); + } + + if (config.themeColor) { + $.head.appendChild( + create('div', theme(config.themeColor)).firstElementChild + ); + // Polyfll + cssVars(config.themeColor); + } + vm._updateRender(); + toggleClass(body, 'ready'); + } + + var cached$2 = {}; + + function getAlias(path, alias, last) { + var match = Object.keys(alias).filter(function (key) { + var re = cached$2[key] || (cached$2[key] = new RegExp(("^" + key + "$"))); + return re.test(path) && path !== last + })[0]; + + return match ? + getAlias(path.replace(cached$2[match], alias[match]), alias, path) : + path + } + + function getFileName(path, ext) { + return new RegExp(("\\.(" + (ext.replace(/^\./, '')) + "|html)$"), 'g').test(path) ? + path : + /\/$/g.test(path) ? (path + "README" + ext) : ("" + path + ext) + } + + var History = function History(config) { + this.config = config; + }; + + History.prototype.getBasePath = function getBasePath () { + return this.config.basePath + }; + + History.prototype.getFile = function getFile (path, isRelative) { + if ( path === void 0 ) path = this.getCurrentPath(); + + var ref = this; + var config = ref.config; + var base = this.getBasePath(); + var ext = typeof config.ext === 'string' ? config.ext : '.md'; + + path = config.alias ? getAlias(path, config.alias) : path; + path = getFileName(path, ext); + path = path === ("/README" + ext) ? config.homepage || path : path; + path = isAbsolutePath(path) ? path : getPath(base, path); + + if (isRelative) { + path = path.replace(new RegExp(("^" + base)), ''); + } + + return path + }; + + History.prototype.onchange = function onchange (cb) { + if ( cb === void 0 ) cb = noop; + + cb(); + }; + + History.prototype.getCurrentPath = function getCurrentPath () {}; + + History.prototype.normalize = function normalize () {}; + + History.prototype.parse = function parse () {}; + + History.prototype.toURL = function toURL (path, params, currentRoute) { + var local = currentRoute && path[0] === '#'; + var route = this.parse(replaceSlug(path)); + + route.query = merge({}, route.query, params); + path = route.path + stringifyQuery(route.query); + path = path.replace(/\.md(\?)|\.md$/, '$1'); + + if (local) { + var idIndex = currentRoute.indexOf('?'); + path = + (idIndex > 0 ? currentRoute.substring(0, idIndex) : currentRoute) + path; + } + + if (this.config.relativePath && path.indexOf('/') !== 0) { + var currentDir = currentRoute.substring(0, currentRoute.lastIndexOf('/') + 1); + return cleanPath(resolvePath(currentDir + path)) + } + return cleanPath('/' + path) + }; + + function replaceHash(path) { + var i = location.href.indexOf('#'); + location.replace(location.href.slice(0, i >= 0 ? i : 0) + '#' + path); + } + + var HashHistory = (function (History$$1) { + function HashHistory(config) { + History$$1.call(this, config); + this.mode = 'hash'; + } + + if ( History$$1 ) HashHistory.__proto__ = History$$1; + HashHistory.prototype = Object.create( History$$1 && History$$1.prototype ); + HashHistory.prototype.constructor = HashHistory; + + HashHistory.prototype.getBasePath = function getBasePath () { + var path = window.location.pathname || ''; + var base = this.config.basePath; + + return /^(\/|https?:)/g.test(base) ? base : cleanPath(path + '/' + base) + }; + + HashHistory.prototype.getCurrentPath = function getCurrentPath () { + // We can't use location.hash here because it's not + // consistent across browsers - Firefox will pre-decode it! + var href = location.href; + var index = href.indexOf('#'); + return index === -1 ? '' : href.slice(index + 1) + }; + + HashHistory.prototype.onchange = function onchange (cb) { + if ( cb === void 0 ) cb = noop; + + on('hashchange', cb); + }; + + HashHistory.prototype.normalize = function normalize () { + var path = this.getCurrentPath(); + + path = replaceSlug(path); + + if (path.charAt(0) === '/') { + return replaceHash(path) + } + replaceHash('/' + path); + }; + + /** + * Parse the url + * @param {string} [path=location.herf] + * @return {object} { path, query } + */ + HashHistory.prototype.parse = function parse (path) { + if ( path === void 0 ) path = location.href; + + var query = ''; + + var hashIndex = path.indexOf('#'); + if (hashIndex >= 0) { + path = path.slice(hashIndex + 1); + } + + var queryIndex = path.indexOf('?'); + if (queryIndex >= 0) { + query = path.slice(queryIndex + 1); + path = path.slice(0, queryIndex); + } + + return { + path: path, + file: this.getFile(path, true), + query: parseQuery(query) + } + }; + + HashHistory.prototype.toURL = function toURL (path, params, currentRoute) { + return '#' + History$$1.prototype.toURL.call(this, path, params, currentRoute) + }; + + return HashHistory; + }(History)); + + var HTML5History = (function (History$$1) { + function HTML5History(config) { + History$$1.call(this, config); + this.mode = 'history'; + } + + if ( History$$1 ) HTML5History.__proto__ = History$$1; + HTML5History.prototype = Object.create( History$$1 && History$$1.prototype ); + HTML5History.prototype.constructor = HTML5History; + + HTML5History.prototype.getCurrentPath = function getCurrentPath () { + var base = this.getBasePath(); + var path = window.location.pathname; + + if (base && path.indexOf(base) === 0) { + path = path.slice(base.length); + } + + return (path || '/') + window.location.search + window.location.hash + }; + + HTML5History.prototype.onchange = function onchange (cb) { + if ( cb === void 0 ) cb = noop; + + on('click', function (e) { + var el = e.target.tagName === 'A' ? e.target : e.target.parentNode; + + if (el.tagName === 'A' && !/_blank/.test(el.target)) { + e.preventDefault(); + var url = el.href; + window.history.pushState({key: url}, '', url); + cb(); + } + }); + + on('popstate', cb); + }; + + /** + * Parse the url + * @param {string} [path=location.href] + * @return {object} { path, query } + */ + HTML5History.prototype.parse = function parse (path) { + if ( path === void 0 ) path = location.href; + + var query = ''; + + var queryIndex = path.indexOf('?'); + if (queryIndex >= 0) { + query = path.slice(queryIndex + 1); + path = path.slice(0, queryIndex); + } + + var base = getPath(location.origin); + var baseIndex = path.indexOf(base); + + if (baseIndex > -1) { + path = path.slice(baseIndex + base.length); + } + + return { + path: path, + file: this.getFile(path), + query: parseQuery(query) + } + }; + + return HTML5History; + }(History)); + + function routerMixin(proto) { + proto.route = {}; + } + + var lastRoute = {}; + + function updateRender(vm) { + vm.router.normalize(); + vm.route = vm.router.parse(); + body.setAttribute('data-page', vm.route.file); + } + + function initRouter(vm) { + var config = vm.config; + var mode = config.routerMode || 'hash'; + var router; + + if (mode === 'history' && supportsPushState) { + router = new HTML5History(config); + } else { + router = new HashHistory(config); + } + + vm.router = router; + updateRender(vm); + lastRoute = vm.route; + + router.onchange(function (_) { + updateRender(vm); + vm._updateRender(); + + if (lastRoute.path === vm.route.path) { + vm.$resetEvents(); return } - - get( - vm.router.getFile(path + file) + qs, - false, - vm.config.requestHeaders - ).then(next, function (_) { return loadNested(path, qs, file, next, vm); }); + + vm.$fetch(); + lastRoute = vm.route; + }); + } + + function eventMixin(proto) { + proto.$resetEvents = function () { + scrollIntoView(this.route.path, this.route.query.id); + + if (this.config.loadNavbar) { + getAndActive(this.router, 'nav'); + } + }; + } + + function initEvent(vm) { + // Bind toggle button + btn('button.sidebar-toggle', vm.router); + collapse('.sidebar', vm.router); + // Bind sticky effect + if (vm.config.coverpage) { + !isMobile && on('scroll', sticky); + } else { + body.classList.add('sticky'); } - - function fetchMixin(proto) { - var last; - - var abort = function () { return last && last.abort && last.abort(); }; - var request = function (url, hasbar, requestHeaders) { - abort(); - last = get(url, true, requestHeaders); - return last - }; - - var get404Path = function (path, config) { - var notFoundPage = config.notFoundPage; - var ext = config.ext; - var defaultPath = '_404' + (ext || '.md'); - var key; - var path404; - - switch (typeof notFoundPage) { - case 'boolean': - path404 = defaultPath; - break - case 'string': - path404 = notFoundPage; - break - - case 'object': - key = Object.keys(notFoundPage) - .sort(function (a, b) { return b.length - a.length; }) - .find(function (key) { return path.match(new RegExp('^' + key)); }); - - path404 = (key && notFoundPage[key]) || defaultPath; - break - - default: - break + } + + function loadNested(path, qs, file, next, vm, first) { + path = first ? path : path.replace(/\/$/, ''); + path = getParentPath(path); + + if (!path) { + return + } + + get( + vm.router.getFile(path + file) + qs, + false, + vm.config.requestHeaders + ).then(next, function (_) { return loadNested(path, qs, file, next, vm); }); + } + + function fetchMixin(proto) { + var last; + + var abort = function () { return last && last.abort && last.abort(); }; + var request = function (url, hasbar, requestHeaders) { + abort(); + last = get(url, true, requestHeaders); + return last + }; + + var get404Path = function (path, config) { + var notFoundPage = config.notFoundPage; + var ext = config.ext; + var defaultPath = '_404' + (ext || '.md'); + var key; + var path404; + + switch (typeof notFoundPage) { + case 'boolean': + path404 = defaultPath; + break + case 'string': + path404 = notFoundPage; + break + + case 'object': + key = Object.keys(notFoundPage) + .sort(function (a, b) { return b.length - a.length; }) + .find(function (key) { return path.match(new RegExp('^' + key)); }); + + path404 = (key && notFoundPage[key]) || defaultPath; + break + + default: + break + } + + return path404 + }; + + proto._loadSideAndNav = function (path, qs, loadSidebar, cb) { + var this$1 = this; + + return function () { + if (!loadSidebar) { + return cb() } - - return path404 - }; - - proto._loadSideAndNav = function (path, qs, loadSidebar, cb) { - var this$1 = this; - - return function () { - if (!loadSidebar) { - return cb() - } - - var fn = function (result) { - this$1._renderSidebar(result); - cb(); - }; - - // Load sidebar - loadNested(path, qs, loadSidebar, fn, this$1, true); - } - }; - - proto._fetch = function (cb) { - var this$1 = this; - if ( cb === void 0 ) cb = noop; - - var ref = this.route; - var path = ref.path; - var query = ref.query; - var qs = stringifyQuery(query, ['id']); - var ref$1 = this.config; - var loadNavbar = ref$1.loadNavbar; - var requestHeaders = ref$1.requestHeaders; - var loadSidebar = ref$1.loadSidebar; - // Abort last request - - var file = this.router.getFile(path); - var req = request(file + qs, true, requestHeaders); - - // Current page is html - this.isHTML = /\.html$/g.test(file); - - // Load main content - req.then( - function (text, opt) { return this$1._renderMain( - text, - opt, - this$1._loadSideAndNav(path, qs, loadSidebar, cb) - ); }, - function (_) { - this$1._fetchFallbackPage(file, qs, cb) || this$1._fetch404(file, qs, cb); - } - ); - - // Load nav - loadNavbar && - loadNested( - path, - qs, - loadNavbar, - function (text) { return this$1._renderNav(text); }, - this, - true - ); - }; - - proto._fetchCover = function () { - var this$1 = this; - - var ref = this.config; - var coverpage = ref.coverpage; - var requestHeaders = ref.requestHeaders; - var query = this.route.query; - var root = getParentPath(this.route.path); - - if (coverpage) { - var path = null; - var routePath = this.route.path; - if (typeof coverpage === 'string') { - if (routePath === '/') { - path = coverpage; - } - } else if (Array.isArray(coverpage)) { - path = coverpage.indexOf(routePath) > -1 && '_coverpage'; - } else { - var cover = coverpage[routePath]; - path = cover === true ? '_coverpage' : cover; - } - - var coverOnly = Boolean(path) && this.config.onlyCover; - if (path) { - path = this.router.getFile(root + path); - this.coverIsHTML = /\.html$/g.test(path); - get(path + stringifyQuery(query, ['id']), false, requestHeaders).then( - function (text) { return this$1._renderCover(text, coverOnly); } - ); - } else { - this._renderCover(null, coverOnly); - } - return coverOnly - } - }; - - proto.$fetch = function (cb) { - var this$1 = this; - if ( cb === void 0 ) cb = noop; - - var done = function () { - callHook(this$1, 'doneEach'); + + var fn = function (result) { + this$1._renderSidebar(result); cb(); }; - - var onlyCover = this._fetchCover(); - - if (onlyCover) { - done(); - } else { - this._fetch(function () { - this$1.$resetEvents(); - done(); - }); + + // Load sidebar + loadNested(path, qs, loadSidebar, fn, this$1, true); + } + }; + + proto._fetch = function (cb) { + var this$1 = this; + if ( cb === void 0 ) cb = noop; + + var ref = this.route; + var path = ref.path; + var query = ref.query; + var qs = stringifyQuery(query, ['id']); + var ref$1 = this.config; + var loadNavbar = ref$1.loadNavbar; + var requestHeaders = ref$1.requestHeaders; + var loadSidebar = ref$1.loadSidebar; + // Abort last request + + var file = this.router.getFile(path); + var req = request(file + qs, true, requestHeaders); + + // Current page is html + this.isHTML = /\.html$/g.test(file); + + // Load main content + req.then( + function (text, opt) { return this$1._renderMain( + text, + opt, + this$1._loadSideAndNav(path, qs, loadSidebar, cb) + ); }, + function (_) { + this$1._fetchFallbackPage(file, qs, cb) || this$1._fetch404(file, qs, cb); } - }; - - proto._fetchFallbackPage = function (path, qs, cb) { - var this$1 = this; - if ( cb === void 0 ) cb = noop; - - var ref = this.config; - var requestHeaders = ref.requestHeaders; - var fallbackLanguages = ref.fallbackLanguages; - var loadSidebar = ref.loadSidebar; - - if (!fallbackLanguages) { - return false - } - - var local = path.split('/')[1]; - - if (fallbackLanguages.indexOf(local) === -1) { - return false - } - var newPath = path.replace(new RegExp(("^/" + local)), ''); - var req = request(newPath + qs, true, requestHeaders); - - req.then( - function (text, opt) { return this$1._renderMain( - text, - opt, - this$1._loadSideAndNav(path, qs, loadSidebar, cb) - ); }, - function () { return this$1._fetch404(path, qs, cb); } + ); + + // Load nav + loadNavbar && + loadNested( + path, + qs, + loadNavbar, + function (text) { return this$1._renderNav(text); }, + this, + true ); - - return true - }; - /** - * Load the 404 page - * @param path - * @param qs - * @param cb - * @returns {*} - * @private - */ - proto._fetch404 = function (path, qs, cb) { - var this$1 = this; - if ( cb === void 0 ) cb = noop; - - var ref = this.config; - var loadSidebar = ref.loadSidebar; - var requestHeaders = ref.requestHeaders; - var notFoundPage = ref.notFoundPage; - - var fnLoadSideAndNav = this._loadSideAndNav(path, qs, loadSidebar, cb); - if (notFoundPage) { - var path404 = get404Path(path, this.config); - - request(this.router.getFile(path404), true, requestHeaders).then( - function (text, opt) { return this$1._renderMain(text, opt, fnLoadSideAndNav); }, - function () { return this$1._renderMain(null, {}, fnLoadSideAndNav); } + }; + + proto._fetchCover = function () { + var this$1 = this; + + var ref = this.config; + var coverpage = ref.coverpage; + var requestHeaders = ref.requestHeaders; + var query = this.route.query; + var root = getParentPath(this.route.path); + + if (coverpage) { + var path = null; + var routePath = this.route.path; + if (typeof coverpage === 'string') { + if (routePath === '/') { + path = coverpage; + } + } else if (Array.isArray(coverpage)) { + path = coverpage.indexOf(routePath) > -1 && '_coverpage'; + } else { + var cover = coverpage[routePath]; + path = cover === true ? '_coverpage' : cover; + } + + var coverOnly = Boolean(path) && this.config.onlyCover; + if (path) { + path = this.router.getFile(root + path); + this.coverIsHTML = /\.html$/g.test(path); + get(path + stringifyQuery(query, ['id']), false, requestHeaders).then( + function (text) { return this$1._renderCover(text, coverOnly); } ); - return true + } else { + this._renderCover(null, coverOnly); } - - this._renderMain(null, {}, fnLoadSideAndNav); - return false + return coverOnly + } + }; + + proto.$fetch = function (cb) { + var this$1 = this; + if ( cb === void 0 ) cb = noop; + + var done = function () { + callHook(this$1, 'doneEach'); + cb(); }; - } - - function initFetch(vm) { - var ref = vm.config; - var loadSidebar = ref.loadSidebar; - - // Server-Side Rendering - if (vm.rendered) { - var activeEl = getAndActive(vm.router, '.sidebar-nav', true, true); - if (loadSidebar && activeEl) { - activeEl.parentNode.innerHTML += window.__SUB_SIDEBAR__; - } - vm._bindEventOnRendered(activeEl); - vm.$resetEvents(); - callHook(vm, 'doneEach'); - callHook(vm, 'ready'); + + var onlyCover = this._fetchCover(); + + if (onlyCover) { + done(); } else { - vm.$fetch(function (_) { return callHook(vm, 'ready'); }); + this._fetch(function () { + this$1.$resetEvents(); + done(); + }); } - } - - function initMixin(proto) { - proto._init = function () { - var vm = this; - vm.config = config(); - - initLifecycle(vm); // Init hooks - initPlugin(vm); // Install plugins - callHook(vm, 'init'); - initRouter(vm); // Add router - initRender(vm); // Render base DOM - initEvent(vm); // Bind events - initFetch(vm); // Fetch data - callHook(vm, 'mounted'); - }; - } - - function initPlugin(vm) { - [].concat(vm.config.plugins).forEach(function (fn) { return isFn(fn) && fn(vm._lifecycle, vm); }); - } - - - - var util = Object.freeze({ - cached: cached, - hyphenate: hyphenate, - hasOwn: hasOwn, - merge: merge, - isPrimitive: isPrimitive, - noop: noop, - isFn: isFn, - inBrowser: inBrowser, - isMobile: isMobile, - supportsPushState: supportsPushState, - parseQuery: parseQuery, - stringifyQuery: stringifyQuery, - isAbsolutePath: isAbsolutePath, - getParentPath: getParentPath, - cleanPath: cleanPath, - resolvePath: resolvePath, - getPath: getPath, - replaceSlug: replaceSlug - }); - - function initGlobalAPI () { - window.Docsify = { - util: util, - dom: dom, - get: get, - slugify: slugify, - version: '4.9.4' - }; - window.DocsifyCompiler = Compiler; - window.marked = marked; - window.Prism = prism; - } - - /** - * Fork https://github.com/bendrucker/document-ready/blob/master/index.js - */ - function ready(callback) { - var state = document.readyState; - - if (state === 'complete' || state === 'interactive') { - return setTimeout(callback, 0) + }; + + proto._fetchFallbackPage = function (path, qs, cb) { + var this$1 = this; + if ( cb === void 0 ) cb = noop; + + var ref = this.config; + var requestHeaders = ref.requestHeaders; + var fallbackLanguages = ref.fallbackLanguages; + var loadSidebar = ref.loadSidebar; + + if (!fallbackLanguages) { + return false } - - document.addEventListener('DOMContentLoaded', callback); - } - - function Docsify() { - this._init(); - } - - var proto = Docsify.prototype; - - initMixin(proto); - routerMixin(proto); - renderMixin(proto); - fetchMixin(proto); - eventMixin(proto); - + + var local = path.split('/')[1]; + + if (fallbackLanguages.indexOf(local) === -1) { + return false + } + var newPath = path.replace(new RegExp(("^/" + local)), ''); + var req = request(newPath + qs, true, requestHeaders); + + req.then( + function (text, opt) { return this$1._renderMain( + text, + opt, + this$1._loadSideAndNav(path, qs, loadSidebar, cb) + ); }, + function () { return this$1._fetch404(path, qs, cb); } + ); + + return true + }; /** - * Global API + * Load the 404 page + * @param path + * @param qs + * @param cb + * @returns {*} + * @private */ - initGlobalAPI(); - - /** - * Run Docsify - */ - ready(function (_) { return new Docsify(); }); - - }()); \ No newline at end of file + proto._fetch404 = function (path, qs, cb) { + var this$1 = this; + if ( cb === void 0 ) cb = noop; + + var ref = this.config; + var loadSidebar = ref.loadSidebar; + var requestHeaders = ref.requestHeaders; + var notFoundPage = ref.notFoundPage; + + var fnLoadSideAndNav = this._loadSideAndNav(path, qs, loadSidebar, cb); + if (notFoundPage) { + var path404 = get404Path(path, this.config); + + request(this.router.getFile(path404), true, requestHeaders).then( + function (text, opt) { return this$1._renderMain(text, opt, fnLoadSideAndNav); }, + function () { return this$1._renderMain(null, {}, fnLoadSideAndNav); } + ); + return true + } + + this._renderMain(null, {}, fnLoadSideAndNav); + return false + }; + } + + function initFetch(vm) { + var ref = vm.config; + var loadSidebar = ref.loadSidebar; + + // Server-Side Rendering + if (vm.rendered) { + var activeEl = getAndActive(vm.router, '.sidebar-nav', true, true); + if (loadSidebar && activeEl) { + activeEl.parentNode.innerHTML += window.__SUB_SIDEBAR__; + } + vm._bindEventOnRendered(activeEl); + vm.$resetEvents(); + callHook(vm, 'doneEach'); + callHook(vm, 'ready'); + } else { + vm.$fetch(function (_) { return callHook(vm, 'ready'); }); + } + } + + function initMixin(proto) { + proto._init = function () { + var vm = this; + vm.config = config(); + + initLifecycle(vm); // Init hooks + initPlugin(vm); // Install plugins + callHook(vm, 'init'); + initRouter(vm); // Add router + initRender(vm); // Render base DOM + initEvent(vm); // Bind events + initFetch(vm); // Fetch data + callHook(vm, 'mounted'); + }; + } + + function initPlugin(vm) { + [].concat(vm.config.plugins).forEach(function (fn) { return isFn(fn) && fn(vm._lifecycle, vm); }); + } + + + + var util = Object.freeze({ + cached: cached, + hyphenate: hyphenate, + hasOwn: hasOwn, + merge: merge, + isPrimitive: isPrimitive, + noop: noop, + isFn: isFn, + inBrowser: inBrowser, + isMobile: isMobile, + supportsPushState: supportsPushState, + parseQuery: parseQuery, + stringifyQuery: stringifyQuery, + isAbsolutePath: isAbsolutePath, + getParentPath: getParentPath, + cleanPath: cleanPath, + resolvePath: resolvePath, + getPath: getPath, + replaceSlug: replaceSlug + }); + + function initGlobalAPI () { + window.Docsify = { + util: util, + dom: dom, + get: get, + slugify: slugify, + version: '4.9.4' + }; + window.DocsifyCompiler = Compiler; + window.marked = marked; + window.Prism = prism; + } + + /** + * Fork https://github.com/bendrucker/document-ready/blob/master/index.js + */ + function ready(callback) { + var state = document.readyState; + + if (state === 'complete' || state === 'interactive') { + return setTimeout(callback, 0) + } + + document.addEventListener('DOMContentLoaded', callback); + } + + function Docsify() { + this._init(); + } + + var proto = Docsify.prototype; + + initMixin(proto); + routerMixin(proto); + renderMixin(proto); + fetchMixin(proto); + eventMixin(proto); + + /** + * Global API + */ + initGlobalAPI(); + + /** + * Run Docsify + */ + ready(function (_) { return new Docsify(); }); + + }()); \ No newline at end of file diff --git a/docs/assets/js/docify.min.js b/docs/assets/js/docify.min.js index 8343c296..26e541f4 100644 --- a/docs/assets/js/docify.min.js +++ b/docs/assets/js/docify.min.js @@ -1,2 +1,441 @@ -!function(){function a(a){var b=Object.create(null);return function(c){var d=e(c)?c:JSON.stringify(c),f=b[d];return f||(b[d]=a(c))}}function e(a){return"string"==typeof a||"number"==typeof a}function f(){}function g(a){return"function"==typeof a}function h(){var g,h,a=d({el:"#app",repo:"",maxLevel:6,subMaxLevel:0,loadSidebar:null,loadNavbar:null,homepage:"README.md",coverpage:"",basePath:"",auto2top:!1,name:"",themeColor:"",nameLink:window.location.pathname,autoHeader:!1,executeScript:null,noEmoji:!1,ga:"",ext:".md",mergeNavbar:!1,formatUpdated:"",externalLinkTarget:"_blank",routerMode:"hash",noCompileLinks:[],relativePath:!1},window.$docsify),f=document.currentScript||[].slice.call(document.getElementsByTagName("script")).filter(function(a){return/docsify\./.test(a.src)})[0];if(f){for(g in a)c.call(a,g)&&(h=f.getAttribute("data-"+b(g)),e(h)&&(a[g]=""===h?!0:h));a.loadSidebar===!0&&(a.loadSidebar="_sidebar"+a.ext),a.loadNavbar===!0&&(a.loadNavbar="_navbar"+a.ext),a.coverpage===!0&&(a.coverpage="_coverpage"+a.ext),a.repo===!0&&(a.repo=""),a.name===!0&&(a.name="")}return window.$docsify=a,a}function i(a){var b=["init","mounted","beforeEach","afterEach","doneEach","ready"];a._hooks={},a._lifecycle={},b.forEach(function(b){var c=a._hooks[b]=[];a._lifecycle[b]=function(a){return c.push(a)}})}function j(a,b,c,d){var e,g;void 0===d&&(d=f),e=a._hooks[b],g=function(a){var f,b=e[a];a>=e.length?d(c):"function"==typeof b?2===b.length?b(c,function(b){c=b,g(a+1)}):(f=b(c),c=void 0===f?c:f,g(a+1)):g(a+1)},g(0)}function o(a,b){if(void 0===b&&(b=!1),"string"==typeof a){if("undefined"!=typeof window.Vue)return s(a);a=b?s(a):n[a]||(n[a]=s(a))}return a}function s(a,b){return null!=a?b?a.querySelector(b):p.querySelector(a):void 0}function t(a,b){return[].slice.call(b?a.querySelectorAll(b):p.querySelectorAll(a))}function u(a,b){return a=p.createElement(a),b&&(a.innerHTML=b),a}function v(a,b){return a.appendChild(b)}function w(a,b){return null!=a?a.insertBefore(b,a.children[0]):void 0}function x(a,b,c){null!=a&&(g(b)?window.addEventListener(a,b):a.addEventListener(b,c))}function y(a,b,c){g(b)?window.removeEventListener(a,b):a.removeEventListener(b,c)}function z(a,b,c){a&&a.classList[c?b:"toggle"](c||b)}function A(a){v(r,u("style",a))}function C(a){return a?(/\/\//.test(a)||(a="https://github.com/"+a),a=a.replace(/^git\+/,""),''+'"+""):""}function D(a){return'",'
    '}function E(){var a=", 100%, 85%",b="linear-gradient(to left bottom, hsl("+(Math.floor(255*Math.random())+a)+") 0%,"+"hsl("+(Math.floor(255*Math.random())+a)+") 100%)";return'
    '+'
    '+'
    '+"
    "}function F(a,b){if(void 0===b&&(b='
      {inner}
    '),!a||!a.length)return"";var c="";return a.forEach(function(a){c+='
  • '+a.title+"
  • ",a.children&&(c+=F(a.children,b))}),b.replace("{inner}",c)}function G(a,b){return'

    '+b.slice(5).trim()+"

    "}function H(a){return""}function K(){var a=u("div");a.classList.add("progress"),v(q,a),I=a}function L(a){var e,b=a.loaded,c=a.total,d=a.step;!I&&K(),d?(e=parseInt(I.style.width||0,10)+d,e=e>80?80:e):e=Math.floor(100*(b/c)),I.style.opacity=1,I.style.width=e>=95?"100%":e+"%",e>=95&&(clearTimeout(J),J=setTimeout(function(){I.style.opacity=0,I.style.width="0%"},200))}function N(a,b,d){var e,g,h,i;if(void 0===b&&(b=!1),void 0===d&&(d={}),e=new XMLHttpRequest,g=function(){e.addEventListener.apply(e,arguments)},h=M[a])return{then:function(a){return a(h.content,h.opt)},abort:f};e.open("GET",a);for(i in d)c.call(d,i)&&e.setRequestHeader(i,d[i]);return e.send(),{then:function(c,d){if(void 0===d&&(d=f),b){var h=setInterval(function(){return L({step:Math.floor(5*Math.random()+1)})},500);g("progress",L),g("loadend",function(a){L(a),clearInterval(h)})}g("error",d),g("load",function(b){var g,f=b.target;f.status>=400?d(f):(g=M[a]={content:f.response,opt:{updatedAt:e.getResponseHeader("last-modified")}},c(g.content,g.opt))})},abort:function(){return 4!==e.readyState&&e.abort()}}}function O(a,b){a.innerHTML=a.innerHTML.replace(/var\(\s*--theme-color.*?\)/g,b)}function P(a){if(!(window.CSS&&window.CSS.supports&&window.CSS.supports("(--v:red)"))){var b=t("style:not(.inserted),link");[].forEach.call(b,function(b){if("STYLE"===b.nodeName)O(b,a);else if("LINK"===b.nodeName){var c=b.getAttribute("href");if(!/\.css$/.test(c))return;N(c).then(function(b){var c=u("style",b);r.appendChild(c),O(c,a)})}})}}function S(a){var b=[],c=0;return a.replace(Q,function(d,e,f){b.push(a.substring(c,f-1)),c=f+=d.length+1,b.push(function(a){return("00"+("string"==typeof R[d]?a[R[d]]():R[d](a))).slice(-d.length)})}),c!==a.length&&b.push(a.substring(c)),function(a){for(var c="",d=0,e=a||new Date;db||(d[f]?d[f].children=(d[f].children||[]).concat(a):c.push(a),d[e]=a)}),c}function $(a){return a.toLowerCase()}function _(a){var b,d;return"string"!=typeof a?"":(b=a.trim().replace(/[A-Z]+/g,$).replace(/<[^>\d]+>/g,"").replace(Z,"").replace(/\s/g,"-").replace(/-+/g,"-").replace(/^(\d)/,"_$1"),d=Y[b],d=c.call(Y,b)?d+1:0,Y[b]=d,d&&(b=b+"-"+d),b)}function ab(a,b){return''+b+''}function bb(a){return a.replace(/<(pre|template|code)[^>]*?>[\s\S]+?<\/(pre|template|code)>/g,function(a){return a.replace(/:/g,"__colon__")}).replace(/:(\w+?):/gi,k&&window.emojify||ab).replace(/__colon__/g,":")}function eb(a){var b={};return(a=a.trim().replace(/^(\?|#|&)/,""))?(a.split("&").forEach(function(a){var c=a.replace(/\+/g," ").split("=");b[c[0]]=c[1]&&cb(c[1])}),b):b}function fb(a,b){var c,d;void 0===b&&(b=[]),c=[];for(d in a)b.indexOf(d)>-1||c.push(a[d]?(db(d)+"="+db(a[d])).toLowerCase():db(d));return c.length?"?"+c.join("&"):""}function kb(){for(var a=[],b=arguments.length;b--;)a[b]=arguments[b];return ib(a.join("/"))}function nb(a){void 0===a&&(a="");var b={};return a&&(a=a.replace(/^'/,"").replace(/'$/,"").replace(/(?:^|\s):([\w-]+)=?([\w-]+)?/g,function(a,c,d){return b[c]=d&&d.replace(/"/g,"")||!0,""}).trim()),{str:a,config:b}}function rb(a){var b=function(){return q.classList.toggle("close")};a=o(a),null!=a&&(x(a,"click",function(a){a.stopPropagation(),b()}),l&&x(q,"click",function(){return q.classList.contains("close")&&b()}))}function sb(a){a=o(a),null!=a&&x(a,"click",function(a){var b=a.target;"A"===b.nodeName&&b.nextSibling&&b.nextSibling.classList.contains("app-sub-sidebar")&&z(b.parentNode,"collapse")})}function tb(){var b,a=o("section.cover");a&&(b=a.getBoundingClientRect().height,window.pageYOffset>=b||a.classList.contains("hidden")?z(q,"add","sticky"):z(q,"remove","sticky"))}function ub(a,b,c,d){var e,f,g;return b=o(b),e=[],null!=b&&(e=t(b,"a")),f=decodeURI(a.toURL(a.getCurrentPath())),e.sort(function(a,b){return b.href.length-a.href.length}).forEach(function(a){var b=a.getAttribute("href"),d=c?a.parentNode:a;0!==f.indexOf(b)||g?z(d,"remove","active"):(g=a,z(d,"add","active"))}),d&&(p.title=g?g.title||g.innerText+" - "+qb:qb),g}function wb(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function Db(a){Ab&&Ab.stop(),Bb=!1,Ab=new xb({start:window.pageYOffset,end:a.getBoundingClientRect().top+window.pageYOffset,duration:500}).on("tick",function(a){return window.scrollTo(0,a)}).on("done",function(){Bb=!0,Ab=null}).begin()}function Eb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,p,r,u,v;if(Bb){for(b=o(".sidebar"),c=t(".anchor"),d=s(b,".sidebar-nav"),e=s(b,"li.active"),f=document.documentElement,g=(f&&f.scrollTop||document.body.scrollTop)-Cb,i=0,j=c.length;j>i;i+=1){if(k=c[i],k.offsetTop>g){h||(h=k);break}h=k}h&&(l=yb[Fb(decodeURIComponent(a),h.getAttribute("data-id"))],l&&l!==e&&(e&&e.classList.remove("active"),l.classList.add("active"),e=l,!zb&&q.classList.contains("sticky")&&(m=b.clientHeight,n=0,p=e.offsetTop+e.clientHeight+40,r=e.offsetTop>=d.scrollTop&&p<=d.scrollTop+m,u=m>p-n,v=r?d.scrollTop:u?n:p-m,b.scrollTop=v)))}}function Fb(a,b){return a+"?id="+b}function Gb(a){var c,d,e,f,g,h,i,j,k,m,n,b=s(".cover.show");for(Cb=b?b.offsetHeight:0,c=o(".sidebar"),d=[],null!=c&&(d=t(c,"li")),e=0,f=d.length;f>e;e+=1)g=d[e],h=g.querySelector("a"),h&&(i=h.getAttribute("href"),"/"!==i&&(j=a.parse(i),k=j.query.id,m=j.path,k&&(i=Fb(m,k))),i&&(yb[decodeURIComponent(i)]=g));l||(n=a.getCurrentPath(),y("scroll",function(){return Eb(n)}),x("scroll",function(){return Eb(n)}),x(c,"mouseover",function(){zb=!0}),x(c,"mouseleave",function(){zb=!1}))}function Hb(a,b){var c,d,e,f;b&&(c=s("#"+b),c&&Db(c),d=yb[Fb(a,b)],e=o(".sidebar"),f=s(e,"li.active"),f&&f.classList.remove("active"),d&&d.classList.add("active"))}function Jb(a){void 0===a&&(a=0),Ib.scrollTop=a===!0?0:Number(a)}function Lb(a,b){var f,g,h,i,c=a.embedTokens,d=a.compile;if(a.fetch,g=0,h=1,!c.length)return b({});for(;f=c[g++];)i=function(a){return function(c){var e,f,i;c&&("markdown"===a.embed.type?e=d.lexer(c):"code"===a.embed.type?(a.embed.fragment&&(f=a.embed.fragment,i=new RegExp("(?:###|\\/\\/\\/)\\s*\\["+f+"\\]([\\s\\S]*)(?:###|\\/\\/\\/)\\s*\\["+f+"\\]"),c=((c.match(i)||[])[1]||"").trim()),e=d.lexer("```"+a.embed.lang+"\n"+c.replace(/`/g,"@DOCSIFY_QM@")+"\n```\n")):"mermaid"===a.embed.type?(e=[{type:"html",text:'
    \n'+c+"\n
    "}],e.links={}):(e=[{type:"html",text:c}],e.links={})),b({token:a,embedToken:e}),++h>=g&&b({})}}(f),f.embed.url?N(f.embed.url).then(i):i(f.embed.html)}function Mb(a,b){var f,g,h,i,j,k,l,m,n,c=a.compiler,e=a.raw;return void 0===e&&(e=""),f=a.fetch,(g=Kb[e])?(h=g.slice(),h.links=g.links,b(h)):(i=c._marked,j=i.lexer(e),k=[],l=i.InlineLexer.rules.link,m=j.links,j.forEach(function(a,b){"paragraph"===a.type&&(a.text=a.text.replace(new RegExp(l.source,"g"),function(a,d,e,f){var g=c.compileEmbed(e,f);return g&&k.push({index:b,embed:g}),a}))}),n=0,Lb({compile:i,embedTokens:k,fetch:f},function(a){var g,c=a.embedToken,f=a.token;f?(g=f.index+n,d(m,c.links),j=j.slice(0,g).concat(c,j.slice(g+1)),n+=c.length-1):(Kb[e]=j.concat(),j.links=Kb[e].links=m,b(j))}),void 0)}function Nb(){var b,a=t(".markdown-section>script").filter(function(a){return!/template/.test(a.type)})[0];return a?(b=a.innerText.trim())?(setTimeout(function(){window.__EXECUTE_RESULT__=new Function(b)()},0),void 0):!1:!1}function Ob(a,b,c){return b="function"==typeof c?c(b):"string"==typeof c?S(c)(new Date(b)):b,a.replace(/{docsify-updated}/g,b)}function Pb(a){a||(a="

    404 - Not found

    "),this._renderTo(".markdown-section",a),!this.config.loadSidebar&&this._renderSidebar(),this.config.executeScript===!1||"undefined"==typeof window.Vue||Nb()?this.config.executeScript&&Nb():setTimeout(function(){var b=window.__EXECUTE_RESULT__;b&&b.$destroy&&b.$destroy(),window.__EXECUTE_RESULT__=(new window.Vue).$mount("#main")},0)}function Qb(a){var f,b=o(".app-name-link"),c=a.config.nameLink,d=a.route.path;b&&(e(a.config.nameLink)?b.setAttribute("href",c):"object"==typeof c&&(f=Object.keys(c).filter(function(a){return d.indexOf(a)>-1})[0],b.setAttribute("href",c[f])))}function Rb(a){a._renderTo=function(a,b,c){var d=o(a);d&&(d[c?"outerHTML":"innerHTML"]=b)},a._renderSidebar=function(a){var f,b=this.config,c=b.maxLevel,d=b.subMaxLevel,e=b.loadSidebar;this._renderTo(".sidebar-nav",this.compiler.sidebar(a,c)),f=ub(this.router,".sidebar-nav",!0,!0),e&&f?f.parentNode.innerHTML+=this.compiler.subSidebar(d)||"":this.compiler.subSidebar(),this._bindEventOnRendered(f)},a._bindEventOnRendered=function(a){var e,f,g,b=this.config,c=b.autoHeader,d=b.auto2top;Gb(this.router),c&&a&&(e=o("#main"),f=e.children[0],f&&"H1"!==f.tagName&&(g=u("h1"),g.innerText=a.innerText,w(e,g))),d&&Jb(d)},a._renderNav=function(a){a&&this._renderTo("nav",this.compiler.compile(a)),this.config.loadNavbar&&ub(this.router,"nav")},a._renderMain=function(a,b,c){var d=this;return void 0===b&&(b={}),a?(j(this,"beforeEach",a,function(e){var f,g=function(){b.updatedAt&&(f=Ob(f,b.updatedAt,d.config.formatUpdated)),j(d,"afterEach",f,function(a){return completeLoading(),Pb.call(d,a)})};d.isHTML?(f=d.result=a,g(),c()):Mb({compiler:d.compiler,raw:e},function(a){f=d.compiler.compile(a),g(),c()})}),void 0):Pb.call(this,a)},a._renderCover=function(a,b){var d,e,f,c=o(".cover");return z(o("main"),b?"add":"remove","hidden"),a?(z(c,"add","show"),d=this.coverIsHTML?a:this.compiler.cover(a),e=d.trim().match('

    ([^<]*?)

    $'),e&&("color"===e[2]?c.style.background=e[1]+(e[3]||""):(f=e[1],z(c,"add","has-mask"),gb(e[1])||(f=kb(this.router.getBasePath(),e[1])),c.style.backgroundImage="url("+f+")",c.style.backgroundSize="cover",c.style.backgroundPosition="center center"),d=d.replace(e[0],"")),this._renderTo(".cover-main",d),tb(),void 0):(z(c,"remove","show"),void 0)},a._updateRender=function(){Qb(this)}}function Sb(a){var c,d,e,f,g,h,i,j,b=a.config;a.compiler=new pb(b,a.router),k&&(window.__current_docsify_compiler__=a.compiler),c=b.el||"#app",d=s("nav")||u("nav"),e=s(c),f="",g=q,e?(b.repo&&(f+=C(b.repo)),b.coverpage&&(f+=E()),b.logo&&(h=/^data:image/.test(b.logo),i=/(?:http[s]?:)?\/\//.test(b.logo),j=/^\./.test(b.logo),h||i||j||(b.logo=kb(a.router.getBasePath(),b.logo))),f+=D(b),a._renderTo(e,f,!0)):a.rendered=!0,b.mergeNavbar&&l?g=s(".sidebar"):(d.classList.add("app-nav"),b.repo||d.classList.add("no-badge")),b.loadNavbar&&w(g,d),b.themeColor&&(p.head.appendChild(u("div",H(b.themeColor)).firstElementChild),P(b.themeColor)),a._updateRender(),z(q,"ready")}function Ub(a,b,c){var d=Object.keys(b).filter(function(b){var d=Tb[b]||(Tb[b]=new RegExp("^"+b+"$"));return d.test(a)&&a!==c})[0];return d?Ub(a.replace(Tb[d],b[d]),b,a):a}function Vb(a,b){return new RegExp("\\.("+b.replace(/^\./,"")+"|html)$","g").test(a)?a:/\/$/g.test(a)?a+"README"+b:""+a+b}function Xb(a){var b=location.href.indexOf("#");location.replace(location.href.slice(0,b>=0?b:0)+"#"+a)}function $b(a){a.route={}}function ac(a){a.router.normalize(),a.route=a.router.parse(),q.setAttribute("data-page",a.route.file)}function bc(a){var d,b=a.config,c=b.routerMode||"hash";d="history"===c&&m?new Zb(b):new Yb(b),a.router=d,ac(a),_b=a.route,d.onchange(function(){return ac(a),a._updateRender(),_b.path===a.route.path?(a.$resetEvents(),void 0):(a.$fetch(),_b=a.route,void 0)})}function cc(a){a.$resetEvents=function(){Hb(this.route.path,this.route.query.id),this.config.loadNavbar&&ub(this.router,"nav")}}function dc(a){rb("button.sidebar-toggle",a.router),sb(".sidebar",a.router),a.config.coverpage?!l&&x("scroll",tb):q.classList.add("sticky")}function ec(a,b,c,d,e,f){a=f?a:a.replace(/\/$/,""),a=hb(a),a&&N(e.router.getFile(a+c)+b,!1,e.config.requestHeaders).then(d,function(){return ec(a,b,c,d,e)})}function fc(a){var b,c=function(){return b&&b.abort&&b.abort()},d=function(a,d,e){return c(),b=N(a,!0,e)},e=function(a,b){var f,g,c=b.notFoundPage,d=b.ext,e="_404"+(d||".md");switch(typeof c){case"boolean":g=e;break;case"string":g=c;break;case"object":f=Object.keys(c).sort(function(a,b){return b.length-a.length}).find(function(b){return a.match(new RegExp("^"+b))}),g=f&&c[f]||e}return g};a._loadSideAndNav=function(a,b,c,d){var e=this;return function(){if(!c)return d();var f=function(a){e._renderSidebar(a),d()};ec(a,b,c,f,e,!0)}},a._fetch=function(a){var c,e,g,h,i,j,k,l,m,n,b=this;void 0===a&&(a=f),c=this.route,e=c.path,g=c.query,h=fb(g,["id"]),i=this.config,j=i.loadNavbar,k=i.requestHeaders,l=i.loadSidebar,m=this.router.getFile(e),n=d(m+h,!0,k),this.isHTML=/\.html$/g.test(m),n.then(function(c,d){return b._renderMain(c,d,b._loadSideAndNav(e,h,l,a))},function(){b._fetchFallbackPage(m,h,a)||b._fetch404(m,h,a)}),j&&ec(e,h,j,function(a){return b._renderNav(a)},this,!0)},a._fetchCover=function(){var g,h,i,j,a=this,b=this.config,c=b.coverpage,d=b.requestHeaders,e=this.route.query,f=hb(this.route.path);return c?(g=null,h=this.route.path,"string"==typeof c?"/"===h&&(g=c):Array.isArray(c)?g=c.indexOf(h)>-1&&"_coverpage":(i=c[h],g=i===!0?"_coverpage":i),j=Boolean(g)&&this.config.onlyCover,g?(g=this.router.getFile(f+g),this.coverIsHTML=/\.html$/g.test(g),N(g+fb(e,["id"]),!1,d).then(function(b){return a._renderCover(b,j)})):this._renderCover(null,j),j):void 0},a.$fetch=function(a){var c,d,b=this;void 0===a&&(a=f),c=function(){j(b,"doneEach"),a()},d=this._fetchCover(),d?c():this._fetch(function(){b.$resetEvents(),c()})},a._fetchFallbackPage=function(a,b,c){var g,h,i,j,k,l,m,e=this;return void 0===c&&(c=f),g=this.config,h=g.requestHeaders,i=g.fallbackLanguages,j=g.loadSidebar,i?(k=a.split("/")[1],-1===i.indexOf(k)?!1:(l=a.replace(new RegExp("^/"+k),""),m=d(l+b,!0,h),m.then(function(d,f){return e._renderMain(d,f,e._loadSideAndNav(a,b,j,c))},function(){return e._fetch404(a,b,c)}),!0)):!1},a._fetch404=function(a,b,c){var h,i,j,k,l,m,g=this;return void 0===c&&(c=f),h=this.config,i=h.loadSidebar,j=h.requestHeaders,k=h.notFoundPage,l=this._loadSideAndNav(a,b,i,c),k?(m=e(a,this.config),d(this.router.getFile(m),!0,j).then(function(a,b){return g._renderMain(a,b,l)},function(){return g._renderMain(null,{},l)}),!0):(this._renderMain(null,{},l),!1)}}function gc(a){var d,b=a.config,c=b.loadSidebar;a.rendered?(d=ub(a.router,".sidebar-nav",!0,!0),c&&d&&(d.parentNode.innerHTML+=window.__SUB_SIDEBAR__),a._bindEventOnRendered(d),a.$resetEvents(),j(a,"doneEach"),j(a,"ready")):a.$fetch(function(){return j(a,"ready")})}function hc(a){a._init=function(){var a=this;a.config=h(),i(a),ic(a),j(a,"init"),bc(a),Sb(a),dc(a),gc(a),j(a,"mounted")}}function ic(a){[].concat(a.config.plugins).forEach(function(b){return g(b)&&b(a._lifecycle,a)})}function kc(){window.Docsify={util:jc,dom:B,get:N,slugify:_,version:"4.9.4"},window.DocsifyCompiler=pb,window.marked=V,window.Prism=W}function lc(a){var b=document.readyState;return"complete"===b||"interactive"===b?setTimeout(a,0):(document.addEventListener("DOMContentLoaded",a),void 0)}function mc(){this._init()}var I,J,cb,db,gb,hb,ib,jb,lb,mb,ob,pb,qb,vb,xb,yb,zb,Ab,Bb,Cb,Ib,Kb,Tb,Wb,Yb,Zb,_b,jc,nc,b=a(function(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}),c=Object.prototype.hasOwnProperty,d=Object.assign||function(a){var d,e,f,b=arguments;for(d=1;d=0&&"\\"===c[e];)d=!d;return d?"|":" |"}),d=c.split(/ \|/),e=0;if(d.length>b)d.splice(b);else for(;d.lengthAn error occurred:

    "+j(k.message+"",!0)+"
    ";throw k}}var e,n,o,c={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:p,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,nptable:p,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)|(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:p,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/,text:/^[^\n]+/};c._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,c._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,c.def=l(c.def).replace("label",c._label).replace("title",c._title).getRegex(),c.bullet=/(?:[*+-]|\d+\.)/,c.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,c.item=l(c.item,"gm").replace(/bull/g,c.bullet).getRegex(),c.list=l(c.list).replace(/bull/g,c.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+c.def.source+")").getRegex(),c._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",c._comment=//,c.html=l(c.html,"i").replace("comment",c._comment).replace("tag",c._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),c.paragraph=l(c.paragraph).replace("hr",c.hr).replace("heading",c.heading).replace("lheading",c.lheading).replace("tag",c._tag).getRegex(),c.blockquote=l(c.blockquote).replace("paragraph",c.paragraph).getRegex(),c.normal=q({},c),c.gfm=q({},c.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),c.gfm.paragraph=l(c.paragraph).replace("(?!","(?!"+c.gfm.fences.source.replace("\\1","\\2")+"|"+c.list.source.replace("\\1","\\3")+"|").getRegex(),c.tables=q({},c.gfm,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),c.pedantic=q({},c.normal,{html:l("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",c._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/}),d.rules=c,d.lex=function(a,b){var c=new d(b);return c.lex(a)},d.prototype.lex=function(a){return a=a.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(a,!0)},d.prototype.token=function(a,b){var e,f,g,h,i,j,k,l,m,n,o,p,q,t,u,v,d=this;for(a=a.replace(/^ +$/gm,"");a;)if((g=d.rules.newline.exec(a))&&(a=a.substring(g[0].length),g[0].length>1&&d.tokens.push({type:"space"})),g=d.rules.code.exec(a))a=a.substring(g[0].length),g=g[0].replace(/^ {4}/gm,""),d.tokens.push({type:"code",text:d.options.pedantic?g:s(g,"\n")});else if(g=d.rules.fences.exec(a))a=a.substring(g[0].length),d.tokens.push({type:"code",lang:g[2],text:g[3]||""});else if(g=d.rules.heading.exec(a))a=a.substring(g[0].length),d.tokens.push({type:"heading",depth:g[1].length,text:g[2]});else if(b&&(g=d.rules.nptable.exec(a))&&(j={type:"table",header:r(g[1].replace(/^ *| *\| *$/g,"")),align:g[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:g[3]?g[3].replace(/\n$/,"").split("\n"):[]},j.header.length===j.align.length)){for(a=a.substring(g[0].length),o=0;o ?/gm,""),d.token(g,b),d.tokens.push({type:"blockquote_end"});else if(g=d.rules.list.exec(a)){for(a=a.substring(g[0].length),h=g[2],t=h.length>1,k={type:"list_start",ordered:t,start:t?+h:"",loose:!1},d.tokens.push(k),g=g[0].match(d.rules.item),l=[],e=!1,q=g.length,o=0;q>o;o++)j=g[o],n=j.length,j=j.replace(/^ *([*+-]|\d+\.) +/,""),~j.indexOf("\n ")&&(n-=j.length,j=d.options.pedantic?j.replace(/^ {1,4}/gm,""):j.replace(new RegExp("^ {1,"+n+"}","gm"),"")),d.options.smartLists&&o!==q-1&&(i=c.bullet.exec(g[o+1])[0],h===i||h.length>1&&i.length>1||(a=g.slice(o+1).join("\n")+a,o=q-1)),f=e||/\n\n(?!\s*$)/.test(j),o!==q-1&&(e="\n"===j.charAt(j.length-1),f||(f=e)),f&&(k.loose=!0),u=/^\[[ xX]\] /.test(j),v=void 0,u&&(v=" "!==j[1],j=j.replace(/^\[[ xX]\] +/,"")),m={type:"list_item_start",task:u,checked:v,loose:f},l.push(m),d.tokens.push(m),d.token(j,!1),d.tokens.push({type:"list_item_end"});if(k.loose)for(q=l.length,o=0;q>o;o++)l[o].loose=!0;d.tokens.push({type:"list_end"})}else if(g=d.rules.html.exec(a))a=a.substring(g[0].length),d.tokens.push({type:d.options.sanitize?"paragraph":"html",pre:!d.options.sanitizer&&("pre"===g[1]||"script"===g[1]||"style"===g[1]),text:g[0]});else if(b&&(g=d.rules.def.exec(a)))a=a.substring(g[0].length),g[3]&&(g[3]=g[3].substring(1,g[3].length-1)),p=g[1].toLowerCase().replace(/\s+/g," "),d.tokens.links[p]||(d.tokens.links[p]={href:g[2],title:g[3]});else if(b&&(g=d.rules.table.exec(a))&&(j={type:"table",header:r(g[1].replace(/^ *| *\| *$/g,"")),align:g[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:g[3]?g[3].replace(/(?: *\| *)?\n$/,"").split("\n"):[]},j.header.length===j.align.length)){for(a=a.substring(g[0].length),o=0;o?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:p,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(href(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:p,text:/^(`+|[^`])[\s\S]*?(?=[\\?@\[\]\\^_`{|}~])/g,e._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,e._email=/[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,e.autolink=l(e.autolink).replace("scheme",e._scheme).replace("email",e._email).getRegex(),e._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,e.tag=l(e.tag).replace("comment",c._comment).replace("attribute",e._attribute).getRegex(),e._label=/(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/,e._href=/\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f\\]*\)|[^\s\x00-\x1f()\\])*?)/,e._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,e.link=l(e.link).replace("label",e._label).replace("href",e._href).replace("title",e._title).getRegex(),e.reflink=l(e.reflink).replace("label",e._label).getRegex(),e.normal=q({},e),e.pedantic=q({},e.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:l(/^!?\[(label)\]\((.*?)\)/).replace("label",e._label).getRegex(),reflink:l(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",e._label).getRegex()}),e.gfm=q({},e.normal,{escape:l(e.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:l(e.text).replace("]|","~]|").replace("|$","|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|$").getRegex()}),e.gfm.url=l(e.gfm.url).replace("email",e.gfm._extended_email).getRegex(),e.breaks=q({},e.gfm,{br:l(e.br).replace("{2,}","*").getRegex(),text:l(e.gfm.text).replace("{2,}","*").getRegex()}),f.rules=e,f.output=function(a,b,c){var d=new f(b,c); -return d.output(a)},f.prototype.output=function(a){for(var d,e,g,h,i,k,b=this,c="";a;)if(i=b.rules.escape.exec(a))a=a.substring(i[0].length),c+=i[1];else if(i=b.rules.autolink.exec(a))a=a.substring(i[0].length),"@"===i[2]?(e=j(b.mangle(i[1])),g="mailto:"+e):(e=j(i[1]),g=e),c+=b.renderer.link(g,null,e);else if(b.inLink||!(i=b.rules.url.exec(a))){if(i=b.rules.tag.exec(a))!b.inLink&&/^/i.test(i[0])&&(b.inLink=!1),!b.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(i[0])?b.inRawBlock=!0:b.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(i[0])&&(b.inRawBlock=!1),a=a.substring(i[0].length),c+=b.options.sanitize?b.options.sanitizer?b.options.sanitizer(i[0]):j(i[0]):i[0];else if(i=b.rules.link.exec(a))a=a.substring(i[0].length),b.inLink=!0,g=i[2],b.options.pedantic?(d=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(g),d?(g=d[1],h=d[3]):h=""):h=i[3]?i[3].slice(1,-1):"",g=g.trim().replace(/^<([\s\S]*)>$/,"$1"),c+=b.outputLink(i,{href:f.escapes(g),title:f.escapes(h)}),b.inLink=!1;else if((i=b.rules.reflink.exec(a))||(i=b.rules.nolink.exec(a))){if(a=a.substring(i[0].length),d=(i[2]||i[1]).replace(/\s+/g," "),d=b.links[d.toLowerCase()],!d||!d.href){c+=i[0].charAt(0),a=i[0].substring(1)+a;continue}b.inLink=!0,c+=b.outputLink(i,d),b.inLink=!1}else if(i=b.rules.strong.exec(a))a=a.substring(i[0].length),c+=b.renderer.strong(b.output(i[4]||i[3]||i[2]||i[1]));else if(i=b.rules.em.exec(a))a=a.substring(i[0].length),c+=b.renderer.em(b.output(i[6]||i[5]||i[4]||i[3]||i[2]||i[1]));else if(i=b.rules.code.exec(a))a=a.substring(i[0].length),c+=b.renderer.codespan(j(i[2].trim(),!0));else if(i=b.rules.br.exec(a))a=a.substring(i[0].length),c+=b.renderer.br();else if(i=b.rules.del.exec(a))a=a.substring(i[0].length),c+=b.renderer.del(b.output(i[1]));else if(i=b.rules.text.exec(a))a=a.substring(i[0].length),c+=b.inRawBlock?b.renderer.text(i[0]):b.renderer.text(j(b.smartypants(i[0])));else if(a)throw new Error("Infinite loop on byte: "+a.charCodeAt(0))}else{if("@"===i[2])e=j(i[0]),g="mailto:"+e;else{do k=i[0],i[0]=b.rules._backpedal.exec(i[0])[0];while(k!==i[0]);e=j(i[0]),g="www."===i[1]?"http://"+e:e}a=a.substring(i[0].length),c+=b.renderer.link(g,null,e)}return c},f.escapes=function(a){return a?a.replace(f.rules._escapes,"$1"):a},f.prototype.outputLink=function(a,b){var c=b.href,d=b.title?j(b.title):null;return"!"!==a[0].charAt(0)?this.renderer.link(c,d,this.output(a[1])):this.renderer.image(c,d,j(a[1]))},f.prototype.smartypants=function(a){return this.options.smartypants?a.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014\/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):a},f.prototype.mangle=function(a){if(!this.options.mangle)return a;for(var e,b="",c=a.length,d=0;c>d;d++)e=a.charCodeAt(d),Math.random()>.5&&(e="x"+e.toString(16)),b+="&#"+e+";";return b},g.prototype.code=function(a,b,c){if(this.options.highlight){var d=this.options.highlight(a,b);null!=d&&d!==a&&(c=!0,a=d)}return b?'
    '+(c?a:j(a,!0))+"
    \n":"
    "+(c?a:j(a,!0))+"
    "},g.prototype.blockquote=function(a){return"
    \n"+a+"
    \n"},g.prototype.html=function(a){return a},g.prototype.heading=function(a,b,c){return this.options.headerIds?"'+a+"\n":""+a+"\n"},g.prototype.hr=function(){return this.options.xhtml?"
    \n":"
    \n"},g.prototype.list=function(a,b,c){var d=b?"ol":"ul",e=b&&1!==c?' start="'+c+'"':"";return"<"+d+e+">\n"+a+"\n"},g.prototype.listitem=function(a){return"
  • "+a+"
  • \n"},g.prototype.checkbox=function(a){return" "},g.prototype.paragraph=function(a){return"

    "+a+"

    \n"},g.prototype.table=function(a,b){return b&&(b=""+b+""),"\n\n"+a+"\n"+b+"
    \n"},g.prototype.tablerow=function(a){return"\n"+a+"\n"},g.prototype.tablecell=function(a,b){var c=b.header?"th":"td",d=b.align?"<"+c+' align="'+b.align+'">':"<"+c+">";return d+a+"\n"},g.prototype.strong=function(a){return""+a+""},g.prototype.em=function(a){return""+a+""},g.prototype.codespan=function(a){return""+a+""},g.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},g.prototype.del=function(a){return""+a+""},g.prototype.link=function(a,b,c){var d,f;if(this.options.sanitize){try{d=decodeURIComponent(k(a)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return c}if(0===d.indexOf("javascript:")||0===d.indexOf("vbscript:")||0===d.indexOf("data:"))return c}this.options.baseUrl&&!o.test(a)&&(a=m(this.options.baseUrl,a));try{a=encodeURI(a).replace(/%25/g,"%")}catch(e){return c}return f='
    "},g.prototype.image=function(a,b,c){this.options.baseUrl&&!o.test(a)&&(a=m(this.options.baseUrl,a));var d=''+c+'":">"},g.prototype.text=function(a){return a},h.prototype.strong=h.prototype.em=h.prototype.codespan=h.prototype.del=h.prototype.text=function(a){return a},h.prototype.link=h.prototype.image=function(a,b,c){return""+c},h.prototype.br=function(){return""},i.parse=function(a,b){var c=new i(b);return c.parse(a)},i.prototype.parse=function(a){var c,b=this;for(this.inline=new f(a.links,this.options),this.inlineText=new f(a.links,q({},this.options,{renderer:new h})),this.tokens=a.reverse(),c="";this.next();)c+=b.tok();return c},i.prototype.next=function(){return this.token=this.tokens.pop()},i.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},i.prototype.parseText=function(){for(var a=this,b=this.token.text;"text"===this.peek().type;)b+="\n"+a.next().text;return this.inline.output(b)},i.prototype.tok=function(){var d,e,f,g,b,c,h,i,j,a=this;switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,k(this.inlineText.output(this.token.text)));case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":for(b="",c="",f="",d=0;d"']/,j.escapeReplace=/[&<>"']/g,j.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},j.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,j.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g,n={},o=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i,p.exec=p,t.options=t.setOptions=function(a){return q(t.defaults,a),t},t.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new g,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tables:!0,xhtml:!1}},t.defaults=t.getDefaults(),t.Parser=i,t.parser=i.parse,t.Renderer=g,t.TextRenderer=h,t.Lexer=d,t.lexer=d.lex,t.InlineLexer=f,t.inlineLexer=f.output,t.parse=t,a.exports=t}(T||("undefined"!=typeof window?window:T))}),W=U(function(a){var b="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},c=function(){var f,a=/\blang(?:uage)?-([\w-]+)\b/i,c=0,d=b.Prism={manual:b.Prism&&b.Prism.manual,disableWorkerMessageHandler:b.Prism&&b.Prism.disableWorkerMessageHandler,util:{encode:function(a){return a instanceof e?new e(a.type,d.util.encode(a.content),a.alias):"Array"===d.util.type(a)?a.map(d.util.encode):a.replace(/&/g,"&").replace(/a.length)return;if(!(v instanceof i)){if(p&&t!=b.length-1){if(m.lastIndex=u,w=m.exec(a),!w)break;for(x=w.index+(o?w[1].length:0),y=w.index+w[0].length,z=t,A=u,B=b.length;B>z&&(y>A||!b[z].type&&!b[z-1].greedy);++z)A+=b[z].length,x>=A&&(++t,u=A);if(b[t]instanceof i)continue;C=z-t,v=a.slice(u,A),w.index-=u}else m.lastIndex=0,w=m.exec(v),C=1;if(w){if(o&&(q=w[1]?w[1].length:0),x=w.index+q,w=w[0].slice(q),y=x+w.length,D=v.slice(0,x),E=v.slice(y),F=[t,C],D&&(++t,u+=D.length,F.push(D)),G=new i(j,n?d.tokenize(w,n):w,r,w,p),F.push(G),E&&F.push(E),Array.prototype.splice.apply(b,F),1!=C&&d.matchGrammar(a,b,c,t,u,!0,j),g)break}else if(g)break}}}},tokenize:function(a,b){var g,e=[a],f=b.rest;if(f){for(g in f)b[g]=f[g];delete b.rest}return d.matchGrammar(a,e,b,0,0,!1),e},hooks:{all:{},add:function(a,b){var c=d.hooks.all;c[a]=c[a]||[],c[a].push(b)},run:function(a,b){var f,e,c=d.hooks.all[a];if(c&&c.length)for(e=0;f=c[e++];)f(b)}}},e=d.Token=function(a,b,c,d,e){this.type=a,this.content=b,this.alias=c,this.length=0|(d||"").length,this.greedy=!!e};return e.stringify=function(a,b,c){var f,g,h;return"string"==typeof a?a:"Array"===d.util.type(a)?a.map(function(c){return e.stringify(c,b,a)}).join(""):(f={type:a.type,content:e.stringify(a.content,b,c),tag:"span",classes:["token",a.type],attributes:{},language:b,parent:c},a.alias&&(g="Array"===d.util.type(a.alias)?a.alias:[a.alias],Array.prototype.push.apply(f.classes,g)),d.hooks.run("wrap",f),h=Object.keys(f.attributes).map(function(a){return a+'="'+(f.attributes[a]||"").replace(/"/g,""")+'"'}).join(" "),"<"+f.tag+' class="'+f.classes.join(" ")+'"'+(h?" "+h:"")+">"+f.content+"")},b.document?(f=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop(),f&&(d.filename=f.src,d.manual||f.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(d.highlightAll):window.setTimeout(d.highlightAll,16):document.addEventListener("DOMContentLoaded",d.highlightAll))),b.Prism):b.addEventListener?(d.disableWorkerMessageHandler||b.addEventListener("message",function(a){var c=JSON.parse(a.data),e=c.language,f=c.code,g=c.immediateClose;b.postMessage(d.highlight(f,d.languages[e],e)),g&&b.close()},!1),b.Prism):b.Prism}();a.exports&&(a.exports=c),"undefined"!=typeof T&&(T.Prism=c),c.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},c.languages.markup["tag"].inside["attr-value"].inside["entity"]=c.languages.markup["entity"],c.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes["title"]=a.content.replace(/&/,"&"))}),c.languages.xml=c.languages.markup,c.languages.html=c.languages.markup,c.languages.mathml=c.languages.markup,c.languages.svg=c.languages.markup,c.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},c.languages.css["atrule"].inside.rest=c.languages.css,c.languages.markup&&(c.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:c.languages.css,alias:"language-css",greedy:!0}}),c.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:c.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:c.languages.css}},alias:"language-css"}},c.languages.markup.tag)),c.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(?:true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},c.languages.javascript=c.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,"function":/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),c.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/}),c.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}}}),c.languages.javascript["template-string"].inside["interpolation"].inside.rest=c.languages.javascript,c.languages.markup&&c.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:c.languages.javascript,alias:"language-javascript",greedy:!0}}),c.languages.js=c.languages.javascript,function(){"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var a={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(b){for(var e,h,i,j,d=b.getAttribute("data-src"),f=b,g=/\blang(?:uage)?-([\w-]+)\b/i;f&&!g.test(f.className);)f=f.parentNode;f&&(e=(b.className.match(g)||[,""])[1]),e||(h=(d.match(/\.(\w+)$/)||[,""])[1],e=a[h]||h),i=document.createElement("code"),i.className="language-"+e,b.textContent="",i.textContent="Loading…",b.appendChild(i),j=new XMLHttpRequest,j.open("GET",d,!0),j.onreadystatechange=function(){4==j.readyState&&(j.status<400&&j.responseText?(i.textContent=j.responseText,c.highlightElement(i)):i.textContent=j.status>=400?"✖ Error "+j.status+" while fetching file: "+j.statusText:"✖ Error: File does not exist or is empty")},j.send(null)}),c.plugins.toolbar&&c.plugins.toolbar.registerButton("download-file",function(a){var c,d,b=a.element.parentNode;if(b&&/pre/i.test(b.nodeName)&&b.hasAttribute("data-src")&&b.hasAttribute("data-download-link"))return c=b.getAttribute("data-src"),d=document.createElement("a"),d.textContent=b.getAttribute("data-download-link-label")||"Download",d.setAttribute("download",""),d.href=c,d})},document.addEventListener("DOMContentLoaded",self.Prism.fileHighlight))}()}),Y={},Z=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,.\/:;<=>?@[\]^`{|}~]/g;_.clear=function(){Y={}},cb=decodeURIComponent,db=encodeURIComponent,gb=a(function(a){return/(:|(\/{2}))/g.test(a)}),hb=a(function(a){return/\/$/g.test(a)?a:(a=a.match(/(\S*\/)[^\/]+$/))?a[1]:""}),ib=a(function(a){return a.replace(/^\/+/,"/").replace(/([^:])\/{2,}/g,"$1/")}),jb=a(function(a){var d,e,f,b=a.replace(/^\//,"").split("/"),c=[];for(d=0,e=b.length;e>d;d++)f=b[d],".."===f?c.pop():"."!==f&&c.push(f);return"/"+c.join("/")}),lb=a(function(a){return a.replace("#","?id=")}),Prism.languages["markup-templating"]={},Object.defineProperties(Prism.languages["markup-templating"],{buildPlaceholders:{value:function(a,b,c,d){a.language===b&&(a.tokenStack=[],a.code=a.code.replace(c,function(c){if("function"==typeof d&&!d(c))return c;for(var e=a.tokenStack.length;-1!==a.code.indexOf("___"+b.toUpperCase()+e+"___");)++e;return a.tokenStack[e]=c,"___"+b.toUpperCase()+e+"___"}),a.grammar=Prism.languages.markup)}},tokenizePlaceholders:{value:function(a,b){var c,d,e;a.language===b&&a.tokenStack&&(a.grammar=Prism.languages[b],c=0,d=Object.keys(a.tokenStack),e=function(f){var g,h,i,j,k,l,m,n,o,p;if(!(c>=d.length))for(g=0;g-1&&(++c,m=k.substring(0,l),n=new Prism.Token(b,Prism.tokenize(j,a.grammar,b),"language-"+b,j),o=k.substring(l+("___"+b.toUpperCase()+i+"___").length),m||o?(p=[m,n,o].filter(function(a){return!!a}),e(p)):p=n,"string"==typeof h?Array.prototype.splice.apply(f,[g,1].concat(p)):h.content=p,c>=d.length))break}else h.content&&"string"!=typeof h.content&&e(h.content)},e(a.tokens))}}}),mb={},ob={markdown:function(a){return{url:a}},mermaid:function(a){return{url:a}},iframe:function(a,b){return{html:'"}},video:function(a,b){return{html:'"}},audio:function(a,b){return{html:'"}},code:function(a,b){var c=a.match(/\.(\w+)$/);return c=b||c&&c[1],"md"===c&&(c="markdown"),{url:a,lang:c}}},pb=function(b,c){var h,i,j,f=this;this.config=b,this.router=c,this.cacheTree={},this.toc=[],this.cacheTOC={},this.linkTarget=b.externalLinkTarget||"_blank",this.contentBase=c.getBasePath(),h=this._initRenderer(),j=b.markdown||{},g(j)?i=j(V,h):(V.setOptions(d(j,{renderer:d(h,j.renderer)})),i=V),this._marked=i,this.compile=function(c){var d=!0,g=a(function(){d=!1;var f="";return c?(f=e(c)?i(c):i.parser(c),f=b.noEmoji?f:bb(f),_.clear(),f):c})(c),h=f.router.parse().file;return d?f.toc=f.cacheTOC[h]:f.cacheTOC[h]=[].concat(f.toc),g}},pb.prototype.compileEmbed=function(a,b){var f,g,h,c=nb(b),d=c.str,e=c.config;return b=d,e.include?(gb(a)||(a=kb(this.contentBase,hb(this.router.getCurrentPath()),a)),e.type&&(g=ob[e.type])?(f=g.call(this,a,b),f.type=e.type):(h="code",/\.(md|markdown)/.test(a)?h="markdown":/\.mmd/.test(a)?h="mermaid":/\.html?/.test(a)?h="iframe":/\.(mp4|ogg)/.test(a)?h="video":/\.mp3/.test(a)&&(h="audio"),f=ob[h].call(this,a,b),f.type=h),f.fragment=e.fragment,f):void 0},pb.prototype._matchNotCompileLink=function(a){var c,d,e,b=this.config.noCompileLinks||[];for(c=0;c'+e+""},g.code=a.code=function(a,b){void 0===b&&(b=""),a=a.replace(/@DOCSIFY_QM@/g,"`");var c=W.highlight(a,W.languages[b]||W.languages.markup);return'
    '+c+"
    "},g.link=a.link=function(a,b,e){var g,h,i,j;return void 0===b&&(b=""),g="",h=nb(b),i=h.str,j=h.config,b=i,gb(a)||f._matchNotCompileLink(a)||j.ignore?g+=0===a.indexOf("mailto:")?"":' target="'+c+'"':(a===f.config.homepage&&(a="README"),a=d.toURL(a,null,d.getCurrentPath())),j.target&&(g+=" target="+j.target),j.disabled&&(g+=" disabled",a="javascript:void(0)"),b&&(g+=' title="'+b+'"'),'"+e+""},g.paragraph=a.paragraph=function(a){var b;return b=/^!>/.test(a)?G("tip",a):/^\?>/.test(a)?G("warn",a):"

    "+a+"

    "},g.image=a.image=function(a,b,c){var k,l,f=a,g="",h=nb(b),i=h.str,j=h.config;return b=i,j["no-zoom"]&&(g+=" data-no-zoom"),b&&(g+=' title="'+b+'"'),k=j.size,k&&(l=k.split("x"),g+=l[1]?"width="+l[0]+" height="+l[1]:"width="+l[0]),gb(a)||(f=kb(e,hb(d.getCurrentPath()),a)),''+c+'"},g.list=a.list=function(a,b,c){var d=/
  • /.test(a.split('class="task-list"')[0]),e=c&&c>1,f=b?"ol":"ul",g=[d?'class="task-list"':"",e?'start="'+c+'"':""].join(" ").trim();return"<"+f+" "+g+">"+a+""},g.listitem=a.listitem=function(a){var b=/^(]*>)/.test(a),c=b?'
  • ":"
  • "+a+"
  • ";return c},a.origin=g,a},pb.prototype.sidebar=function(a,b){var g,h,i,j,c=this,d=c.toc,e=this.router.getCurrentPath(),f="";if(a)f=this.compile(a);else{for(g=0;g{inner}"),this.cacheTree[e]=j}return""},pb.prototype.subSidebar=function(a){var b,c,d,e,f,g;if(!a)return this.toc=[],void 0;for(b=this.router.getCurrentPath(),c=this,d=c.cacheTree,e=c.toc,e[0]&&e[0].ignoreAllSubs&&e.splice(0),e[0]&&1===e[0].level&&e.shift(),f=0;f0&&void 0!==arguments[0]?arguments[0]:{};wb(this,a),this.duration=b.duration||1e3,this.ease=b.easing||this._defaultEase,this.start=b.start,this.end=b.end,this.frame=null,this.next=null,this.isRunning=!1,this.events={},this.direction=this.startthis.end&&a>=this.next}[this.direction]}},{key:"_defaultEase",value:function(a,b,c,d){return(a/=d/2)<1?c/2*a*a+b:-c/2*(--a*(a-2)-1)+b}}]),a}(),yb={},zb=!1,Ab=null,Bb=!0,Cb=0,Ib=p.scrollingElement||p.documentElement,Kb={},Tb={},Wb=function(a){this.config=a},Wb.prototype.getBasePath=function(){return this.config.basePath},Wb.prototype.getFile=function(a,b){var c,d,e,f;return void 0===a&&(a=this.getCurrentPath()),c=this,d=c.config,e=this.getBasePath(),f="string"==typeof d.ext?d.ext:".md",a=d.alias?Ub(a,d.alias):a,a=Vb(a,f),a=a==="/README"+f?d.homepage||a:a,a=gb(a)?a:kb(e,a),b&&(a=a.replace(new RegExp("^"+e),"")),a},Wb.prototype.onchange=function(a){void 0===a&&(a=f),a()},Wb.prototype.getCurrentPath=function(){},Wb.prototype.normalize=function(){},Wb.prototype.parse=function(){},Wb.prototype.toURL=function(a,b,c){var g,h,e=c&&"#"===a[0],f=this.parse(lb(a));return f.query=d({},f.query,b),a=f.path+fb(f.query),a=a.replace(/\.md(\?)|\.md$/,"$1"),e&&(g=c.indexOf("?"),a=(g>0?c.substring(0,g):c)+a),this.config.relativePath&&0!==a.indexOf("/")?(h=c.substring(0,c.lastIndexOf("/")+1),ib(jb(h+a))):ib("/"+a)},Yb=function(a){function b(b){a.call(this,b),this.mode="hash"}return a&&(b.__proto__=a),b.prototype=Object.create(a&&a.prototype),b.prototype.constructor=b,b.prototype.getBasePath=function(){var a=window.location.pathname||"",b=this.config.basePath;return/^(\/|https?:)/g.test(b)?b:ib(a+"/"+b)},b.prototype.getCurrentPath=function(){var a=location.href,b=a.indexOf("#");return-1===b?"":a.slice(b+1)},b.prototype.onchange=function(a){void 0===a&&(a=f),x("hashchange",a)},b.prototype.normalize=function(){var a=this.getCurrentPath();return a=lb(a),"/"===a.charAt(0)?Xb(a):(Xb("/"+a),void 0)},b.prototype.parse=function(a){var b,c,d;return void 0===a&&(a=location.href),b="",c=a.indexOf("#"),c>=0&&(a=a.slice(c+1)),d=a.indexOf("?"),d>=0&&(b=a.slice(d+1),a=a.slice(0,d)),{path:a,file:this.getFile(a,!0),query:eb(b)}},b.prototype.toURL=function(b,c,d){return"#"+a.prototype.toURL.call(this,b,c,d)},b}(Wb),Zb=function(a){function b(b){a.call(this,b),this.mode="history"}return a&&(b.__proto__=a),b.prototype=Object.create(a&&a.prototype),b.prototype.constructor=b,b.prototype.getCurrentPath=function(){var a=this.getBasePath(),b=window.location.pathname;return a&&0===b.indexOf(a)&&(b=b.slice(a.length)),(b||"/")+window.location.search+window.location.hash},b.prototype.onchange=function(a){void 0===a&&(a=f),x("click",function(b){var d,c="A"===b.target.tagName?b.target:b.target.parentNode;"A"!==c.tagName||/_blank/.test(c.target)||(b.preventDefault(),d=c.href,window.history.pushState({key:d},"",d),a())}),x("popstate",a)},b.prototype.parse=function(a){var b,c,d,e;return void 0===a&&(a=location.href),b="",c=a.indexOf("?"),c>=0&&(b=a.slice(c+1),a=a.slice(0,c)),d=kb(location.origin),e=a.indexOf(d),e>-1&&(a=a.slice(e+d.length)),{path:a,file:this.getFile(a),query:eb(b)}},b}(Wb),_b={},jc=Object.freeze({cached:a,hyphenate:b,hasOwn:c,merge:d,isPrimitive:e,noop:f,isFn:g,inBrowser:k,isMobile:l,supportsPushState:m,parseQuery:eb,stringifyQuery:fb,isAbsolutePath:gb,getParentPath:hb,cleanPath:ib,resolvePath:jb,getPath:kb,replaceSlug:lb}),nc=mc.prototype,hc(nc),$b(nc),Rb(nc),fc(nc),cc(nc),kc(),lc(function(){return new mc})}(); \ No newline at end of file +(function(){function cached(fn){var cache=Object.create(null);return function(str){var key=isPrimitive(str)?str:JSON.stringify(str);var hit=cache[key];return hit||(cache[key]=fn(str))}} +var hyphenate=cached(function(str){return str.replace(/([A-Z])/g,function(m){return'-'+m.toLowerCase();})});var hasOwn=Object.prototype.hasOwnProperty;var merge=Object.assign||function(to){var arguments$1=arguments;for(var i=1;i=queue.length){next(data);}else if(typeof hook==='function'){if(hook.length===2){hook(data,function(result){data=result;step(index+1);});}else{var result=hook(data);data=result===undefined?data:result;step(index+1);}}else{step(index+1);}};step(0);} +var inBrowser=!false;var isMobile=inBrowser&&document.body.clientWidth<=600;var supportsPushState=inBrowser&&(function(){return(window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/))})();var cacheNode={};function getNode(el,noCache){if(noCache===void 0)noCache=false;if(typeof el==='string'){if(typeof window.Vue!=='undefined'){return find(el)} +el=noCache?find(el):cacheNode[el]||(cacheNode[el]=find(el));} +return el} +var $=inBrowser&&document;var body=inBrowser&&$.body;var head=inBrowser&&$.head;function find(el,node){if(el==null)return;return node?el.querySelector(node):$.querySelector(el)} +function findAll(el,node){return[].slice.call(node?el.querySelectorAll(node):$.querySelectorAll(el))} +function create(node,tpl){node=$.createElement(node);if(tpl){node.innerHTML=tpl;} +return node} +function appendTo(target,el){return target.appendChild(el)} +function before(target,el){if(target==null)return;return target.insertBefore(el,target.children[0])} +function on(el,type,handler){if(el==null)return;isFn(type)?window.addEventListener(el,type):el.addEventListener(type,handler);} +function off(el,type,handler){isFn(type)?window.removeEventListener(el,type):el.removeEventListener(type,handler);} +function toggleClass(el,type,val){el&&el.classList[val?type:'toggle'](val||type);} +function style(content){appendTo(head,create('style',content));} +var dom=Object.freeze({getNode:getNode,$:$,body:body,head:head,find:find,findAll:findAll,create:create,appendTo:appendTo,before:before,on:on,off:off,toggleClass:toggleClass,style:style});function corner(data){if(!data){return''} +if(!/\/\//.test(data)){data='https://github.com/'+data;} +data=data.replace(/^git\+/,'');return(""+''+'')} +function main(config){var aside=''+'';return(("
    ")+'
    '+'
    '+'
    '+'
    ')} +function cover(){var SL=', 100%, 85%';var bgc='linear-gradient(to left bottom, '+"hsl("+(Math.floor(Math.random()*255)+SL)+") 0%,"+"hsl("+(Math.floor(Math.random()*255)+SL)+") 100%)";return("
    "+'
    '+'
    '+'
    ')} +function tree(toc,tpl){if(tpl===void 0)tpl='
      {inner}
    ';if(!toc||!toc.length){return''} +var innerHTML='';toc.forEach(function(node){innerHTML+="
  • "+(node.title)+"
  • ";if(node.children){innerHTML+=tree(node.children,tpl);}});return tpl.replace('{inner}',innerHTML)} +function helper(className,content){return("

    "+(content.slice(5).trim())+"

    ")} +function theme(color){return("")} +var barEl;var timeId;function init(){var div=create('div');div.classList.add('progress');appendTo(body,div);barEl=div;} +function progressbar(ref){var loaded=ref.loaded;var total=ref.total;var step=ref.step;var num;!barEl&&init();if(step){num=parseInt(barEl.style.width||0,10)+step;num=num>80?80:num;}else{num=Math.floor(loaded/total*100);} +barEl.style.opacity=1;barEl.style.width=num>=95?'100%':num+'%';if(num>=95){clearTimeout(timeId);timeId=setTimeout(function(_){barEl.style.opacity=0;barEl.style.width='0%';},200);}} +var cache={};function get(url,hasBar,headers){if(hasBar===void 0)hasBar=false;if(headers===void 0)headers={};var xhr=new XMLHttpRequest();var on=function(){xhr.addEventListener.apply(xhr,arguments);};var cached$$1=cache[url];if(cached$$1){return{then:function(cb){return cb(cached$$1.content,cached$$1.opt);},abort:noop}} +xhr.open('GET',url);for(var i in headers){if(hasOwn.call(headers,i)){xhr.setRequestHeader(i,headers[i]);}} +xhr.send();return{then:function(success,error){if(error===void 0)error=noop;if(hasBar){var id=setInterval(function(_){return progressbar({step:Math.floor(Math.random()*5+1)});},500);on('progress',progressbar);on('loadend',function(evt){progressbar(evt);clearInterval(id);});} +on('error',error);on('load',function(ref){var target=ref.target;if(target.status>=400){error(target);}else{var result=(cache[url]={content:target.response,opt:{updatedAt:xhr.getResponseHeader('last-modified')}});success(result.content,result.opt);}});},abort:function(_){return xhr.readyState!==4&&xhr.abort();}}} +function replaceVar(block,color){block.innerHTML=block.innerHTML.replace(/var\(\s*--theme-color.*?\)/g,color);} +function cssVars(color){if(window.CSS&&window.CSS.supports&&window.CSS.supports('(--v:red)')){return} +var styleBlocks=findAll('style:not(.inserted),link');[].forEach.call(styleBlocks,function(block){if(block.nodeName==='STYLE'){replaceVar(block,color);}else if(block.nodeName==='LINK'){var href=block.getAttribute('href');if(!/\.css$/.test(href)){return} +get(href).then(function(res){var style$$1=create('style',res);head.appendChild(style$$1);replaceVar(style$$1,color);});}});} +var RGX=/([^{]*?)\w(?=\})/g;var dict={YYYY:'getFullYear',YY:'getYear',MM:function(d){return d.getMonth()+1;},DD:'getDate',HH:'getHours',mm:'getMinutes',ss:'getSeconds'};function tinydate(str){var parts=[],offset=0;str.replace(RGX,function(key,_,idx){parts.push(str.substring(offset,idx-1));offset=idx+=key.length+1;parts.push(function(d){return('00'+(typeof dict[key]==='string'?d[dict[key]]():dict[key](d))).slice(-key.length);});});if(offset!==str.length){parts.push(str.substring(offset));} +return function(arg){var out='',i=0,d=arg||new Date();for(;i ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:'^ {0,3}(?:' ++'<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)' ++'|comment[^\\n]*(\\n+|$)' ++'|<\\?[\\s\\S]*?\\?>\\n*' ++'|\\n*' ++'|\\n*' ++'|)[\\s\\S]*?(?:\\n{2,}|$)' ++'|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)' ++'|(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)' ++')',def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/,text:/^[^\n]+/};block._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;block._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;block.def=edit(block.def).replace('label',block._label).replace('title',block._title).getRegex();block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=edit(block.item,'gm').replace(/bull/g,block.bullet).getRegex();block.list=edit(block.list).replace(/bull/g,block.bullet).replace('hr','\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))').replace('def','\\n+(?='+block.def.source+')').getRegex();block._tag='address|article|aside|base|basefont|blockquote|body|caption' ++'|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' ++'|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' ++'|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' ++'|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' ++'|track|ul';block._comment=//;block.html=edit(block.html,'i').replace('comment',block._comment).replace('tag',block._tag).replace('attribute',/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();block.paragraph=edit(block.paragraph).replace('hr',block.hr).replace('heading',block.heading).replace('lheading',block.lheading).replace('tag',block._tag).getRegex();block.blockquote=edit(block.blockquote).replace('paragraph',block.paragraph).getRegex();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/});block.gfm.paragraph=edit(block.paragraph).replace('(?!','(?!' ++block.gfm.fences.source.replace('\\1','\\2')+'|' ++block.list.source.replace('\\1','\\3')+'|').getRegex();block.tables=merge({},block.gfm,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/});block.pedantic=merge({},block.normal,{html:edit('^ *(?:comment *(?:\\n|\\s*$)' ++'|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)' ++'|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))').replace('comment',block._comment).replace(/tag/g,'(?!(?:' ++'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' ++'|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' ++'\\b)\\w+(?!:|[^\\w\\s@]*@)\\b').getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/});function Lexer(options){this.tokens=[];this.tokens.links=Object.create(null);this.options=options||marked.defaults;this.rules=block.normal;if(this.options.pedantic){this.rules=block.pedantic;}else if(this.options.gfm){if(this.options.tables){this.rules=block.tables;}else{this.rules=block.gfm;}}} +Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src);};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,'\n').replace(/\t/g,' ').replace(/\u00a0/g,' ').replace(/\u2424/g,'\n');return this.token(src,true);};Lexer.prototype.token=function(src,top){var this$1=this;src=src.replace(/^ +$/gm,'');var next,loose,cap,bull,b,item,listStart,listItems,t,space,i,tag,l,isordered,istask,ischecked;while(src){if(cap=this$1.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this$1.tokens.push({type:'space'});}} +if(cap=this$1.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,'');this$1.tokens.push({type:'code',text:!this$1.options.pedantic?rtrim(cap,'\n'):cap});continue;} +if(cap=this$1.rules.fences.exec(src)){src=src.substring(cap[0].length);this$1.tokens.push({type:'code',lang:cap[2],text:cap[3]||''});continue;} +if(cap=this$1.rules.heading.exec(src)){src=src.substring(cap[0].length);this$1.tokens.push({type:'heading',depth:cap[1].length,text:cap[2]});continue;} +if(top&&(cap=this$1.rules.nptable.exec(src))){item={type:'table',header:splitCells(cap[1].replace(/^ *| *\| *$/g,'')),align:cap[2].replace(/^ *|\| *$/g,'').split(/ *\| */),cells:cap[3]?cap[3].replace(/\n$/,'').split('\n'):[]};if(item.header.length===item.align.length){src=src.substring(cap[0].length);for(i=0;i ?/gm,'');this$1.token(cap,top);this$1.tokens.push({type:'blockquote_end'});continue;} +if(cap=this$1.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];isordered=bull.length>1;listStart={type:'list_start',ordered:isordered,start:isordered?+bull:'',loose:false};this$1.tokens.push(listStart);cap=cap[0].match(this$1.rules.item);listItems=[];next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join('\n')+src;i=l-1;}} +loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==='\n';if(!loose){loose=next;}} +if(loose){listStart.loose=true;} +istask=/^\[[ xX]\] /.test(item);ischecked=undefined;if(istask){ischecked=item[1]!==' ';item=item.replace(/^\[[ xX]\] +/,'');} +t={type:'list_item_start',task:istask,checked:ischecked,loose:loose};listItems.push(t);this$1.tokens.push(t);this$1.token(item,false);this$1.tokens.push({type:'list_item_end'});} +if(listStart.loose){l=listItems.length;i=0;for(;i?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:noop,tag:'^comment' ++'|^' ++'|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' ++'|^<\\?[\\s\\S]*?\\?>' ++'|^' ++'|^',link:/^!?\[(label)\]\(href(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:noop,text:/^(`+|[^`])[\s\S]*?(?=[\\?@\[\]\\^_`{|}~])/g;inline._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;inline._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;inline.autolink=edit(inline.autolink).replace('scheme',inline._scheme).replace('email',inline._email).getRegex();inline._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;inline.tag=edit(inline.tag).replace('comment',block._comment).replace('attribute',inline._attribute).getRegex();inline._label=/(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/;inline._href=/\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f\\]*\)|[^\s\x00-\x1f()\\])*?)/;inline._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;inline.link=edit(inline.link).replace('label',inline._label).replace('href',inline._href).replace('title',inline._title).getRegex();inline.reflink=edit(inline.reflink).replace('label',inline._label).getRegex();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:edit(/^!?\[(label)\]\((.*?)\)/).replace('label',inline._label).getRegex(),reflink:edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace('label',inline._label).getRegex()});inline.gfm=merge({},inline.normal,{escape:edit(inline.escape).replace('])','~|])').getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:edit(inline.text).replace(']|','~]|').replace('|$','|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&\'*+/=?^_`{\\|}~-]+@|$').getRegex()});inline.gfm.url=edit(inline.gfm.url).replace('email',inline.gfm._extended_email).getRegex();inline.breaks=merge({},inline.gfm,{br:edit(inline.br).replace('{2,}','*').getRegex(),text:edit(inline.gfm.text).replace('{2,}','*').getRegex()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer();this.renderer.options=this.options;if(!this.links){throw new Error('Tokens array requires a `links` property.');} +if(this.options.pedantic){this.rules=inline.pedantic;}else if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks;}else{this.rules=inline.gfm;}}} +InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src);};InlineLexer.prototype.output=function(src){var this$1=this;var out='',link,text,href,title,cap,prevCapZero;while(src){if(cap=this$1.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue;} +if(cap=this$1.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==='@'){text=escape(this$1.mangle(cap[1]));href='mailto:'+text;}else{text=escape(cap[1]);href=text;} +out+=this$1.renderer.link(href,null,text);continue;} +if(!this$1.inLink&&(cap=this$1.rules.url.exec(src))){if(cap[2]==='@'){text=escape(cap[0]);href='mailto:'+text;}else{do{prevCapZero=cap[0];cap[0]=this$1.rules._backpedal.exec(cap[0])[0];}while(prevCapZero!==cap[0]);text=escape(cap[0]);if(cap[1]==='www.'){href='http://'+text;}else{href=text;}} +src=src.substring(cap[0].length);out+=this$1.renderer.link(href,null,text);continue;} +if(cap=this$1.rules.tag.exec(src)){if(!this$1.inLink&&/^/i.test(cap[0])){this$1.inLink=false;} +if(!this$1.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])){this$1.inRawBlock=true;}else if(this$1.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])){this$1.inRawBlock=false;} +src=src.substring(cap[0].length);out+=this$1.options.sanitize?this$1.options.sanitizer?this$1.options.sanitizer(cap[0]):escape(cap[0]):cap[0];continue;} +if(cap=this$1.rules.link.exec(src)){src=src.substring(cap[0].length);this$1.inLink=true;href=cap[2];if(this$1.options.pedantic){link=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href);if(link){href=link[1];title=link[3];}else{title='';}}else{title=cap[3]?cap[3].slice(1,-1):'';} +href=href.trim().replace(/^<([\s\S]*)>$/,'$1');out+=this$1.outputLink(cap,{href:InlineLexer.escapes(href),title:InlineLexer.escapes(title)});this$1.inLink=false;continue;} +if((cap=this$1.rules.reflink.exec(src))||(cap=this$1.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g,' ');link=this$1.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue;} +this$1.inLink=true;out+=this$1.outputLink(cap,link);this$1.inLink=false;continue;} +if(cap=this$1.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this$1.renderer.strong(this$1.output(cap[4]||cap[3]||cap[2]||cap[1]));continue;} +if(cap=this$1.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this$1.renderer.em(this$1.output(cap[6]||cap[5]||cap[4]||cap[3]||cap[2]||cap[1]));continue;} +if(cap=this$1.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this$1.renderer.codespan(escape(cap[2].trim(),true));continue;} +if(cap=this$1.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this$1.renderer.br();continue;} +if(cap=this$1.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this$1.renderer.del(this$1.output(cap[1]));continue;} +if(cap=this$1.rules.text.exec(src)){src=src.substring(cap[0].length);if(this$1.inRawBlock){out+=this$1.renderer.text(cap[0]);}else{out+=this$1.renderer.text(escape(this$1.smartypants(cap[0])));} +continue;} +if(src){throw new Error('Infinite loop on byte: '+src.charCodeAt(0));}} +return out;};InlineLexer.escapes=function(text){return text?text.replace(InlineLexer.rules._escapes,'$1'):text;};InlineLexer.prototype.outputLink=function(cap,link){var href=link.href,title=link.title?escape(link.title):null;return cap[0].charAt(0)!=='!'?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]));};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants){return text;} +return text.replace(/---/g,'\u2014').replace(/--/g,'\u2013').replace(/(^|[-\u2014/(\[{"\s])'/g,'$1\u2018').replace(/'/g,'\u2019').replace(/(^|[-\u2014/(\[{\u2018\s])"/g,'$1\u201c').replace(/"/g,'\u201d').replace(/\.{3}/g,'\u2026');};InlineLexer.prototype.mangle=function(text){if(!this.options.mangle){return text;} +var out='',l=text.length,i=0,ch;for(;i0.5){ch='x'+ch.toString(16);} +out+='&#'+ch+';';} +return out;};function Renderer(options){this.options=options||marked.defaults;} +Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out;}} +if(!lang){return'
    '
    ++(escaped?code:escape(code,true))
    ++'
    ';} +return'
    '
    ++(escaped?code:escape(code,true))
    ++'
    \n';};Renderer.prototype.blockquote=function(quote){return'
    \n'+quote+'
    \n';};Renderer.prototype.html=function(html){return html;};Renderer.prototype.heading=function(text,level,raw){if(this.options.headerIds){return'' ++text ++'\n';} +return''+text+'\n';};Renderer.prototype.hr=function(){return this.options.xhtml?'
    \n':'
    \n';};Renderer.prototype.list=function(body,ordered,start){var type=ordered?'ol':'ul',startatt=(ordered&&start!==1)?(' start="'+start+'"'):'';return'<'+type+startatt+'>\n'+body+'\n';};Renderer.prototype.listitem=function(text){return'
  • '+text+'
  • \n';};Renderer.prototype.checkbox=function(checked){return' ';};Renderer.prototype.paragraph=function(text){return'

    '+text+'

    \n';};Renderer.prototype.table=function(header,body){if(body){body=''+body+'';} +return'\n' ++'\n' ++header ++'\n' ++body ++'
    \n';};Renderer.prototype.tablerow=function(content){return'\n'+content+'\n';};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?'th':'td';var tag=flags.align?'<'+type+' align="'+flags.align+'">':'<'+type+'>';return tag+content+'\n';};Renderer.prototype.strong=function(text){return''+text+'';};Renderer.prototype.em=function(text){return''+text+'';};Renderer.prototype.codespan=function(text){return''+text+'';};Renderer.prototype.br=function(){return this.options.xhtml?'
    ':'
    ';};Renderer.prototype.del=function(text){return''+text+'';};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,'').toLowerCase();}catch(e){return text;} +if(prot.indexOf('javascript:')===0||prot.indexOf('vbscript:')===0||prot.indexOf('data:')===0){return text;}} +if(this.options.baseUrl&&!originIndependentUrl.test(href)){href=resolveUrl(this.options.baseUrl,href);} +try{href=encodeURI(href).replace(/%25/g,'%');}catch(e){return text;} +var out='
    ';return out;};Renderer.prototype.image=function(href,title,text){if(this.options.baseUrl&&!originIndependentUrl.test(href)){href=resolveUrl(this.options.baseUrl,href);} +var out=''+text+'':'>';return out;};Renderer.prototype.text=function(text){return text;};function TextRenderer(){} +TextRenderer.prototype.strong=TextRenderer.prototype.em=TextRenderer.prototype.codespan=TextRenderer.prototype.del=TextRenderer.prototype.text=function(text){return text;};TextRenderer.prototype.link=TextRenderer.prototype.image=function(href,title,text){return''+text;};TextRenderer.prototype.br=function(){return'';};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer();this.renderer=this.options.renderer;this.renderer.options=this.options;} +Parser.parse=function(src,options){var parser=new Parser(options);return parser.parse(src);};Parser.prototype.parse=function(src){var this$1=this;this.inline=new InlineLexer(src.links,this.options);this.inlineText=new InlineLexer(src.links,merge({},this.options,{renderer:new TextRenderer()}));this.tokens=src.reverse();var out='';while(this.next()){out+=this$1.tok();} +return out;};Parser.prototype.next=function(){return this.token=this.tokens.pop();};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0;};Parser.prototype.parseText=function(){var this$1=this;var body=this.token.text;while(this.peek().type==='text'){body+='\n'+this$1.next().text;} +return this.inline.output(body);};Parser.prototype.tok=function(){var this$1=this;switch(this.token.type){case'space':{return'';} +case'hr':{return this.renderer.hr();} +case'heading':{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,unescape(this.inlineText.output(this.token.text)));} +case'code':{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);} +case'table':{var header='',body='',i,row,cell,j;cell='';for(i=0;i"']/;escape.escapeReplace=/[&<>"']/g;escape.replacements={'&':'&','<':'<','>':'>','"':'"',"'":'''};escape.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/;escape.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;function unescape(html){return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,function(_,n){n=n.toLowerCase();if(n==='colon'){return':';} +if(n.charAt(0)==='#'){return n.charAt(1)==='x'?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1));} +return'';});} +function edit(regex,opt){regex=regex.source||regex;opt=opt||'';return{replace:function(name,val){val=val.source||val;val=val.replace(/(^|[^\[])\^/g,'$1');regex=regex.replace(name,val);return this;},getRegex:function(){return new RegExp(regex,opt);}};} +function resolveUrl(base,href){if(!baseUrls[' '+base]){if(/^[^:]+:\/*[^/]*$/.test(base)){baseUrls[' '+base]=base+'/';}else{baseUrls[' '+base]=rtrim(base,'/',true);}} +base=baseUrls[' '+base];if(href.slice(0,2)==='//'){return base.replace(/:[\s\S]*/,':')+href;}else if(href.charAt(0)==='/'){return base.replace(/(:\/*[^/]*)[\s\S]*/,'$1')+href;}else{return base+href;}} +var baseUrls={};var originIndependentUrl=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function noop(){} +noop.exec=noop;function merge(obj){var arguments$1=arguments;var i=1,target,key;for(;i=0&&str[curr]==='\\'){escaped=!escaped;} +if(escaped){return'|';}else{return' |';}}),cells=row.split(/ \|/),i=0;if(cells.length>count){cells.splice(count);}else{while(cells.lengthAn error occurred:

    '
    ++escape(e.message+'',true)
    ++'
    ';} +throw e;}} +marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked;};marked.getDefaults=function(){return{baseUrl:null,breaks:false,gfm:true,headerIds:true,headerPrefix:'',highlight:null,langPrefix:'language-',mangle:true,pedantic:false,renderer:new Renderer(),sanitize:false,sanitizer:null,silent:false,smartLists:false,smartypants:false,tables:true,xhtml:false};};marked.defaults=marked.getDefaults();marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.TextRenderer=TextRenderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;{module.exports=marked;}})(commonjsGlobal||(typeof window!=='undefined'?window:commonjsGlobal));});var prism=createCommonjsModule(function(module){var _self=(typeof window!=='undefined')?window:((typeof WorkerGlobalScope!=='undefined'&&self instanceof WorkerGlobalScope)?self:{});var Prism=(function(){var lang=/\blang(?:uage)?-([\w-]+)\b/i;var uniqueId=0;var _=_self.Prism={manual:_self.Prism&&_self.Prism.manual,disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,util:{encode:function(tokens){if(tokens instanceof Token){return new Token(tokens.type,_.util.encode(tokens.content),tokens.alias);}else if(_.util.type(tokens)==='Array'){return tokens.map(_.util.encode);}else{return tokens.replace(/&/g,'&').replace(/text.length){return;} +if(str instanceof Token){continue;} +if(greedy&&i!=strarr.length-1){pattern.lastIndex=pos;var match=pattern.exec(text);if(!match){break;} +var from=match.index+(lookbehind?match[1].length:0),to=match.index+match[0].length,k=i,p=pos;for(var len=strarr.length;k=p){++i;pos=p;}} +if(strarr[i]instanceof Token){continue;} +delNum=k-i;str=text.slice(pos,p);match.index-=pos;}else{pattern.lastIndex=0;var match=pattern.exec(str),delNum=1;} +if(!match){if(oneshot){break;} +continue;} +if(lookbehind){lookbehindLength=match[1]?match[1].length:0;} +var from=match.index+lookbehindLength,match=match[0].slice(lookbehindLength),to=from+match.length,before=str.slice(0,from),after=str.slice(to);var args=[i,delNum];if(before){++i;pos+=before.length;args.push(before);} +var wrapped=new Token(token,inside?_.tokenize(match,inside):match,alias,match,greedy);args.push(wrapped);if(after){args.push(after);} +Array.prototype.splice.apply(strarr,args);if(delNum!=1) +{_.matchGrammar(text,strarr,grammar,i,pos,true,token);} +if(oneshot) +{break;}}}}},tokenize:function(text,grammar,language){var strarr=[text];var rest=grammar.rest;if(rest){for(var token in rest){grammar[token]=rest[token];} +delete grammar.rest;} +_.matchGrammar(text,strarr,grammar,0,0,false);return strarr;},hooks:{all:{},add:function(name,callback){var hooks=_.hooks.all;hooks[name]=hooks[name]||[];hooks[name].push(callback);},run:function(name,env){var callbacks=_.hooks.all[name];if(!callbacks||!callbacks.length){return;} +for(var i=0,callback;callback=callbacks[i++];){callback(env);}}}};var Token=_.Token=function(type,content,alias,matchedStr,greedy){this.type=type;this.content=content;this.alias=alias;this.length=(matchedStr||"").length|0;this.greedy=!!greedy;};Token.stringify=function(o,language,parent){if(typeof o=='string'){return o;} +if(_.util.type(o)==='Array'){return o.map(function(element){return Token.stringify(element,language,o);}).join('');} +var env={type:o.type,content:Token.stringify(o.content,language,parent),tag:'span',classes:['token',o.type],attributes:{},language:language,parent:parent};if(o.alias){var aliases=_.util.type(o.alias)==='Array'?o.alias:[o.alias];Array.prototype.push.apply(env.classes,aliases);} +_.hooks.run('wrap',env);var attributes=Object.keys(env.attributes).map(function(name){return name+'="'+(env.attributes[name]||'').replace(/"/g,'"')+'"';}).join(' ');return'<'+env.tag+' class="'+env.classes.join(' ')+'"'+(attributes?' '+attributes:'')+'>'+env.content+'';};if(!_self.document){if(!_self.addEventListener){return _self.Prism;} +if(!_.disableWorkerMessageHandler){_self.addEventListener('message',function(evt){var message=JSON.parse(evt.data),lang=message.language,code=message.code,immediateClose=message.immediateClose;_self.postMessage(_.highlight(code,_.languages[lang],lang));if(immediateClose){_self.close();}},false);} +return _self.Prism;} +var script=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();if(script){_.filename=script.src;if(!_.manual&&!script.hasAttribute('data-manual')){if(document.readyState!=="loading"){if(window.requestAnimationFrame){window.requestAnimationFrame(_.highlightAll);}else{window.setTimeout(_.highlightAll,16);}} +else{document.addEventListener('DOMContentLoaded',_.highlightAll);}}} +return _self.Prism;})();if('object'!=='undefined'&&module.exports){module.exports=Prism;} +if(typeof commonjsGlobal!=='undefined'){commonjsGlobal.Prism=Prism;} +Prism.languages.markup={'comment'://,'prolog':/<\?[\s\S]+?\?>/,'doctype'://i,'cdata'://i,'tag':{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:true,inside:{'tag':{pattern:/^<\/?[^\s>\/]+/i,inside:{'punctuation':/^<\/?/,'namespace':/^[^\s>\/:]+:/}},'attr-value':{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{'punctuation':[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:true}]}},'punctuation':/\/?>/,'attr-name':{pattern:/[^\s>\/]+/,inside:{'namespace':/^[^\s>\/:]+:/}}}},'entity':/&#?[\da-z]{1,8};/i};Prism.languages.markup['tag'].inside['attr-value'].inside['entity']=Prism.languages.markup['entity'];Prism.hooks.add('wrap',function(env){if(env.type==='entity'){env.attributes['title']=env.content.replace(/&/,'&');}});Prism.languages.xml=Prism.languages.markup;Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.css={'comment':/\/\*[\s\S]*?\*\//,'atrule':{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{'rule':/@[\w-]+/}},'url':/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,'selector':/[^{}\s][^{};]*?(?=\s*\{)/,'string':{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:true},'property':/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,'important':/\B!important\b/i,'function':/[-a-z0-9]+(?=\()/i,'punctuation':/[(){};:]/};Prism.languages.css['atrule'].inside.rest=Prism.languages.css;if(Prism.languages.markup){Prism.languages.insertBefore('markup','tag',{'style':{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:true,inside:Prism.languages.css,alias:'language-css',greedy:true}});Prism.languages.insertBefore('inside','attr-value',{'style-attr':{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{'attr-name':{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},'punctuation':/^\s*=\s*['"]|['"]\s*$/,'attr-value':{pattern:/.+/i,inside:Prism.languages.css}},alias:'language-css'}},Prism.languages.markup.tag);} +Prism.languages.clike={'comment':[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:true},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:true,greedy:true}],'string':{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:true},'class-name':{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:true,inside:{punctuation:/[.\\]/}},'keyword':/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,'boolean':/\b(?:true|false)\b/,'function':/[a-z0-9_]+(?=\()/i,'number':/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,'operator':/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,'punctuation':/[{}[\];(),.:]/};Prism.languages.javascript=Prism.languages.extend('clike',{'keyword':/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,'number':/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,'function':/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,'operator':/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/});Prism.languages.insertBefore('javascript','keyword',{'regex':{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:true,greedy:true},'function-variable':{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:'function'},'constant':/\b[A-Z][A-Z\d_]*\b/});Prism.languages.insertBefore('javascript','string',{'template-string':{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:true,inside:{'interpolation':{pattern:/\${[^}]+}/,inside:{'interpolation-punctuation':{pattern:/^\${|}$/,alias:'punctuation'},rest:null}},'string':/[\s\S]+/}}});Prism.languages.javascript['template-string'].inside['interpolation'].inside.rest=Prism.languages.javascript;if(Prism.languages.markup){Prism.languages.insertBefore('markup','tag',{'script':{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:true,inside:Prism.languages.javascript,alias:'language-javascript',greedy:true}});} +Prism.languages.js=Prism.languages.javascript;(function(){if(typeof self==='undefined'||!self.Prism||!self.document||!document.querySelector){return;} +self.Prism.fileHighlight=function(){var Extensions={'js':'javascript','py':'python','rb':'ruby','ps1':'powershell','psm1':'powershell','sh':'bash','bat':'batch','h':'c','tex':'latex'};Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function(pre){var src=pre.getAttribute('data-src');var language,parent=pre;var lang=/\blang(?:uage)?-([\w-]+)\b/i;while(parent&&!lang.test(parent.className)){parent=parent.parentNode;} +if(parent){language=(pre.className.match(lang)||[,''])[1];} +if(!language){var extension=(src.match(/\.(\w+)$/)||[,''])[1];language=Extensions[extension]||extension;} +var code=document.createElement('code');code.className='language-'+language;pre.textContent='';code.textContent='Loading…';pre.appendChild(code);var xhr=new XMLHttpRequest();xhr.open('GET',src,true);xhr.onreadystatechange=function(){if(xhr.readyState==4){if(xhr.status<400&&xhr.responseText){code.textContent=xhr.responseText;Prism.highlightElement(code);} +else if(xhr.status>=400){code.textContent='✖ Error '+xhr.status+' while fetching file: '+xhr.statusText;} +else{code.textContent='✖ Error: File does not exist or is empty';}}};xhr.send(null);});if(Prism.plugins.toolbar){Prism.plugins.toolbar.registerButton('download-file',function(env){var pre=env.element.parentNode;if(!pre||!/pre/i.test(pre.nodeName)||!pre.hasAttribute('data-src')||!pre.hasAttribute('data-download-link')){return;} +var src=pre.getAttribute('data-src');var a=document.createElement('a');a.textContent=pre.getAttribute('data-download-link-label')||'Download';a.setAttribute('download','');a.href=src;return a;});}};document.addEventListener('DOMContentLoaded',self.Prism.fileHighlight);})();});function genTree(toc,maxLevel){var headlines=[];var last={};toc.forEach(function(headline){var level=headline.level||1;var len=level-1;if(level>maxLevel){return} +if(last[len]){last[len].children=(last[len].children||[]).concat(headline);}else{headlines.push(headline);} +last[level]=headline;});return headlines} +var cache$1={};var re=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g;function lower(string){return string.toLowerCase()} +function slugify(str){if(typeof str!=='string'){return''} +var slug=str.trim().replace(/[A-Z]+/g,lower).replace(/<[^>\d]+>/g,'').replace(re,'').replace(/\s/g,'-').replace(/-+/g,'-').replace(/^(\d)/,'_$1');var count=cache$1[slug];count=hasOwn.call(cache$1,slug)?count+1:0;cache$1[slug]=count;if(count){slug=slug+'-'+count;} +return slug} +slugify.clear=function(){cache$1={};};function replace(m,$1){return''+$1+''} +function emojify(text){return text.replace(/<(pre|template|code)[^>]*?>[\s\S]+?<\/(pre|template|code)>/g,function(m){return m.replace(/:/g,'__colon__');}).replace(/:(\w+?):/ig,(inBrowser&&window.emojify)||replace).replace(/__colon__/g,':')} +var decode=decodeURIComponent;var encode=encodeURIComponent;function parseQuery(query){var res={};query=query.trim().replace(/^(\?|#|&)/,'');if(!query){return res} +query.split('&').forEach(function(param){var parts=param.replace(/\+/g,' ').split('=');res[parts[0]]=parts[1]&&decode(parts[1]);});return res} +function stringifyQuery(obj,ignores){if(ignores===void 0)ignores=[];var qs=[];for(var key in obj){if(ignores.indexOf(key)>-1){continue} +qs.push(obj[key]?((encode(key))+"="+(encode(obj[key]))).toLowerCase():encode(key));} +return qs.length?("?"+(qs.join('&'))):''} +var isAbsolutePath=cached(function(path){return/(:|(\/{2}))/g.test(path)});var getParentPath=cached(function(path){return/\/$/g.test(path)?path:(path=path.match(/(\S*\/)[^/]+$/))?path[1]:''});var cleanPath=cached(function(path){return path.replace(/^\/+/,'/').replace(/([^:])\/{2,}/g,'$1/')});var resolvePath=cached(function(path){var segments=path.replace(/^\//,'').split('/');var resolved=[];for(var i=0,len=segments.length;i=keys.length){return;} +for(var i=0;i-1){++j;var before=s.substring(0,index);var middle=new Prism.Token(language,Prism.tokenize(t,env.grammar,language),'language-'+language,t);var after=s.substring(index+('___'+language.toUpperCase()+k+'___').length);var replacement;if(before||after){replacement=[before,middle,after].filter(function(v){return!!v;});walkTokens(replacement);}else{replacement=middle;} +if(typeof token==='string'){Array.prototype.splice.apply(tokens,[i,1].concat(replacement));}else{token.content=replacement;} +if(j>=keys.length){break;}}}else if(token.content&&typeof token.content!=='string'){walkTokens(token.content);}}};walkTokens(env.tokens);}}});var cachedLinks={};function getAndRemoveConfig(str){if(str===void 0)str='';var config={};if(str){str=str.replace(/^'/,'').replace(/'$/,'').replace(/(?:^|\s):([\w-]+)=?([\w-]+)?/g,function(m,key,value){config[key]=(value&&value.replace(/"/g,''))||true;return''}).trim();} +return{str:str,config:config}} +var compileMedia={markdown:function markdown(url){return{url:url}},mermaid:function mermaid(url){return{url:url}},iframe:function iframe(url,title){return{html:("")}},video:function video(url,title){return{html:("")}},audio:function audio(url,title){return{html:("")}},code:function code(url,title){var lang=url.match(/\.(\w+)$/);lang=title||(lang&&lang[1]);if(lang==='md'){lang='markdown';} +return{url:url,lang:lang}}};var Compiler=function Compiler(config,router){var this$1=this;this.config=config;this.router=router;this.cacheTree={};this.toc=[];this.cacheTOC={};this.linkTarget=config.externalLinkTarget||'_blank';this.contentBase=router.getBasePath();var renderer=this._initRenderer();var compile;var mdConf=config.markdown||{};if(isFn(mdConf)){compile=mdConf(marked,renderer);}else{marked.setOptions(merge(mdConf,{renderer:merge(renderer,mdConf.renderer)}));compile=marked;} +this._marked=compile;this.compile=function(text){var isCached=true;var result=cached(function(_){isCached=false;var html='';if(!text){return text} +if(isPrimitive(text)){html=compile(text);}else{html=compile.parser(text);} +html=config.noEmoji?html:emojify(html);slugify.clear();return html})(text);var curFileName=this$1.router.parse().file;if(isCached){this$1.toc=this$1.cacheTOC[curFileName];}else{this$1.cacheTOC[curFileName]=[].concat(this$1.toc);} +return result};};Compiler.prototype.compileEmbed=function compileEmbed(href,title){var ref=getAndRemoveConfig(title);var str=ref.str;var config=ref.config;var embed;title=str;if(config.include){if(!isAbsolutePath(href)){href=getPath(this.contentBase,getParentPath(this.router.getCurrentPath()),href);} +var media;if(config.type&&(media=compileMedia[config.type])){embed=media.call(this,href,title);embed.type=config.type;}else{var type='code';if(/\.(md|markdown)/.test(href)){type='markdown';}else if(/\.mmd/.test(href)){type='mermaid';}else if(/\.html?/.test(href)){type='iframe';}else if(/\.(mp4|ogg)/.test(href)){type='video';}else if(/\.mp3/.test(href)){type='audio';} +embed=compileMedia[type].call(this,href,title);embed.type=type;} +embed.fragment=config.fragment;return embed}};Compiler.prototype._matchNotCompileLink=function _matchNotCompileLink(link){var links=this.config.noCompileLinks||[];for(var i=0;i
    "+str+"")};origin.code=renderer.code=function(code,lang){if(lang===void 0)lang='';code=code.replace(/@DOCSIFY_QM@/g,'`');var hl=prism.highlight(code,prism.languages[lang]||prism.languages.markup);return("
    "+hl+"
    ")};origin.link=renderer.link=function(href,title,text){if(title===void 0)title='';var attrs='';var ref=getAndRemoveConfig(title);var str=ref.str;var config=ref.config;title=str;if(!isAbsolutePath(href)&&!_self._matchNotCompileLink(href)&&!config.ignore){if(href===_self.config.homepage){href='README';} +href=router.toURL(href,null,router.getCurrentPath());}else{attrs+=href.indexOf('mailto:')===0?'':(" target=\""+linkTarget+"\"");} +if(config.target){attrs+=' target='+config.target;} +if(config.disabled){attrs+=' disabled';href='javascript:void(0)';} +if(title){attrs+=" title=\""+title+"\"";} +return(""+text+"")};origin.paragraph=renderer.paragraph=function(text){var result;if(/^!>/.test(text)){result=helper('tip',text);}else if(/^\?>/.test(text)){result=helper('warn',text);}else{result="

    "+text+"

    ";} +return result};origin.image=renderer.image=function(href,title,text){var url=href;var attrs='';var ref=getAndRemoveConfig(title);var str=ref.str;var config=ref.config;title=str;if(config['no-zoom']){attrs+=' data-no-zoom';} +if(title){attrs+=" title=\""+title+"\"";} +var size=config.size;if(size){var sizes=size.split('x');if(sizes[1]){attrs+='width='+sizes[0]+' height='+sizes[1];}else{attrs+='width='+sizes[0];}} +if(!isAbsolutePath(href)){url=getPath(contentBase,getParentPath(router.getCurrentPath()),href);} +return("\""+text+"\""+attrs+"")};origin.list=renderer.list=function(body,ordered,start){var isTaskList=/
  • /.test(body.split('class="task-list"')[0]);var isStartReq=start&&start>1;var tag=ordered?'ol':'ul';var tagAttrs=[(isTaskList?'class="task-list"':''),(isStartReq?("start=\""+start+"\""):'')].join(' ').trim();return("<"+tag+" "+tagAttrs+">"+body+"")};origin.listitem=renderer.listitem=function(text){var isTaskItem=/^(]*>)/.test(text);var html=isTaskItem?("
  • "):("
  • "+text+"
  • ");return html};renderer.origin=origin;return renderer};Compiler.prototype.sidebar=function sidebar(text,level){var ref=this;var toc=ref.toc;var currentPath=this.router.getCurrentPath();var html='';if(text){html=this.compile(text);}else{for(var i=0;i{inner}');this.cacheTree[currentPath]=tree$$1;} +return'';};Compiler.prototype.subSidebar=function subSidebar(level){if(!level){this.toc=[];return} +var currentPath=this.router.getCurrentPath();var ref=this;var cacheTree=ref.cacheTree;var toc=ref.toc;toc[0]&&toc[0].ignoreAllSubs&&toc.splice(0);toc[0]&&toc[0].level===1&&toc.shift();for(var i=0;i=coverHeight||cover.classList.contains('hidden')){toggleClass(body,'add','sticky');}else{toggleClass(body,'remove','sticky');}} +function getAndActive(router,el,isParent,autoTitle){el=getNode(el);var links=[];if(el!=null){links=findAll(el,'a');} +var hash=decodeURI(router.toURL(router.getCurrentPath()));var target;links.sort(function(a,b){return b.href.length-a.href.length;}).forEach(function(a){var href=a.getAttribute('href');var node=isParent?a.parentNode:a;if(hash.indexOf(href)===0&&!target){target=a;toggleClass(node,'add','active');}else{toggleClass(node,'remove','active');}});if(autoTitle){$.title=target?(target.title||((target.innerText)+" - "+title)):title;} +return target} +var _createClass=function(){function defineProperties(target,props){for(var i=0;i0&&arguments[0]!==undefined?arguments[0]:{};_classCallCheck(this,Tweezer);this.duration=opts.duration||1000;this.ease=opts.easing||this._defaultEase;this.start=opts.start;this.end=opts.end;this.frame=null;this.next=null;this.isRunning=false;this.events={};this.direction=this.startthis.end&&lastTick>=this.next}[this.direction];}},{key:'_defaultEase',value:function _defaultEase(t,b,c,d){if((t/=d/2)<1){return c/2*t*t+b;} +return-c/2*(--t*(t-2)-1)+b;}}]);return Tweezer;}();var nav={};var hoverOver=false;var scroller=null;var enableScrollEvent=true;var coverHeight=0;function scrollTo(el){if(scroller){scroller.stop();} +enableScrollEvent=false;scroller=new Tweezer({start:window.pageYOffset,end:el.getBoundingClientRect().top+window.pageYOffset,duration:500}).on('tick',function(v){return window.scrollTo(0,v);}).on('done',function(){enableScrollEvent=true;scroller=null;}).begin();} +function highlight(path){if(!enableScrollEvent){return} +var sidebar=getNode('.sidebar');var anchors=findAll('.anchor');var wrap=find(sidebar,'.sidebar-nav');var active=find(sidebar,'li.active');var doc=document.documentElement;var top=((doc&&doc.scrollTop)||document.body.scrollTop)-coverHeight;var last;for(var i=0,len=anchors.length;itop){if(!last){last=node;} +break}else{last=node;}} +if(!last){return} +var li=nav[getNavKey(decodeURIComponent(path),last.getAttribute('data-id'))];if(!li||li===active){return} +active&&active.classList.remove('active');li.classList.add('active');active=li;if(!hoverOver&&body.classList.contains('sticky')){var height=sidebar.clientHeight;var curOffset=0;var cur=active.offsetTop+active.clientHeight+40;var isInView=active.offsetTop>=wrap.scrollTop&&cur<=wrap.scrollTop+height;var notThan=cur-curOffset\n"+text+"\n")}];embedToken.links={};}else{embedToken=[{type:'html',text:text}];embedToken.links={};}} +cb({token:token,embedToken:embedToken});if(++count>=step){cb({});}}})(token);if(token.embed.url){{get(token.embed.url).then(next);}}else{next(token.embed.html);}}} +function prerenderEmbed(ref,done){var compiler=ref.compiler;var raw=ref.raw;if(raw===void 0)raw='';var fetch=ref.fetch;var hit=cached$1[raw];if(hit){var copy=hit.slice();copy.links=hit.links;return done(copy)} +var compile=compiler._marked;var tokens=compile.lexer(raw);var embedTokens=[];var linkRE=compile.InlineLexer.rules.link;var links=tokens.links;tokens.forEach(function(token,index){if(token.type==='paragraph'){token.text=token.text.replace(new RegExp(linkRE.source,'g'),function(src,filename,href,title){var embed=compiler.compileEmbed(href,title);if(embed){embedTokens.push({index:index,embed:embed});} +return src});}});var moveIndex=0;walkFetchEmbed({compile:compile,embedTokens:embedTokens,fetch:fetch},function(ref){var embedToken=ref.embedToken;var token=ref.token;if(token){var index=token.index+moveIndex;merge(links,embedToken.links);tokens=tokens.slice(0,index).concat(embedToken,tokens.slice(index+1));moveIndex+=embedToken.length-1;}else{cached$1[raw]=tokens.concat();tokens.links=cached$1[raw].links=links;done(tokens);}});} +function executeScript(){var script=findAll('.markdown-section>script').filter(function(s){return!/template/.test(s.type);})[0];if(!script){return false} +var code=script.innerText.trim();if(!code){return false} +setTimeout(function(_){window.__EXECUTE_RESULT__=new Function(code)();},0);} +function formatUpdated(html,updated,fn){updated=typeof fn==='function'?fn(updated):typeof fn==='string'?tinydate(fn)(new Date(updated)):updated;return html.replace(/{docsify-updated}/g,updated)} +function renderMain(html){if(!html){html='

    404 - Not found

    ';} +this._renderTo('.markdown-section',html);!this.config.loadSidebar&&this._renderSidebar();if(this.config.executeScript!==false&&typeof window.Vue!=='undefined'&&!executeScript()){setTimeout(function(_){var vueVM=window.__EXECUTE_RESULT__;vueVM&&vueVM.$destroy&&vueVM.$destroy();window.__EXECUTE_RESULT__=new window.Vue().$mount('#main');},0);}else{this.config.executeScript&&executeScript();}} +function renderNameLink(vm){var el=getNode('.app-name-link');var nameLink=vm.config.nameLink;var path=vm.route.path;if(!el){return} +if(isPrimitive(vm.config.nameLink)){el.setAttribute('href',nameLink);}else if(typeof nameLink==='object'){var match=Object.keys(nameLink).filter(function(key){return path.indexOf(key)>-1;})[0];el.setAttribute('href',nameLink[match]);}} +function renderMixin(proto){proto._renderTo=function(el,content,replace){var node=getNode(el);if(node){node[replace?'outerHTML':'innerHTML']=content;}};proto._renderSidebar=function(text){var ref=this.config;var maxLevel=ref.maxLevel;var subMaxLevel=ref.subMaxLevel;var loadSidebar=ref.loadSidebar;this._renderTo('.sidebar-nav',this.compiler.sidebar(text,maxLevel));var activeEl=getAndActive(this.router,'.sidebar-nav',true,true);if(loadSidebar&&activeEl){activeEl.parentNode.innerHTML+=this.compiler.subSidebar(subMaxLevel)||'';}else{this.compiler.subSidebar();} +this._bindEventOnRendered(activeEl);};proto._bindEventOnRendered=function(activeEl){var ref=this.config;var autoHeader=ref.autoHeader;var auto2top=ref.auto2top;scrollActiveSidebar(this.router);if(autoHeader&&activeEl){var main$$1=getNode('#main');var firstNode=main$$1.children[0];if(firstNode&&firstNode.tagName!=='H1'){var h1=create('h1');h1.innerText=activeEl.innerText;before(main$$1,h1);}} +auto2top&&scroll2Top(auto2top);};proto._renderMain=function(text,opt,next){var this$1=this;if(opt===void 0)opt={};if(!text){return renderMain.call(this,text)} +callHook(this,'beforeEach',text,function(result){var html;var callback=function(){if(opt.updatedAt){html=formatUpdated(html,opt.updatedAt,this$1.config.formatUpdated);} +callHook(this$1,'afterEach',html,function(text){completeLoading();return renderMain.call(this$1,text);});};if(this$1.isHTML){html=this$1.result=text;callback();next();}else{prerenderEmbed({compiler:this$1.compiler,raw:result},function(tokens){html=this$1.compiler.compile(tokens);callback();next();});}});};proto._updateRender=function(){renderNameLink(this);};} +function initRender(vm){var config=vm.config;vm.compiler=new Compiler(config,vm.router);if(inBrowser){window.__current_docsify_compiler__=vm.compiler;} +var id=config.el||'#app';var navEl=find('nav')||create('nav');var el=find(id);var html='';var navAppendToTarget=body;if(el){if(config.repo){html+=corner(config.repo);} +if(config.coverpage){html+=cover();} +if(config.logo){var isBase64=/^data:image/.test(config.logo);var isExternal=/(?:http[s]?:)?\/\//.test(config.logo);var isRelative=/^\./.test(config.logo);if(!isBase64&&!isExternal&&!isRelative){config.logo=getPath(vm.router.getBasePath(),config.logo);}} +html+=main(config);vm._renderTo(el,html,true);}else{vm.rendered=true;} +if(config.mergeNavbar&&isMobile){navAppendToTarget=find('.sidebar');}else{navEl.classList.add('app-nav');if(!config.repo){navEl.classList.add('no-badge');}} +if(config.loadNavbar){before(navAppendToTarget,navEl);} +if(config.themeColor){$.head.appendChild(create('div',theme(config.themeColor)).firstElementChild);cssVars(config.themeColor);} +vm._updateRender();toggleClass(body,'ready');} +var cached$2={};function getAlias(path,alias,last){var match=Object.keys(alias).filter(function(key){var re=cached$2[key]||(cached$2[key]=new RegExp(("^"+key+"$")));return re.test(path)&&path!==last})[0];return match?getAlias(path.replace(cached$2[match],alias[match]),alias,path):path} +function getFileName(path,ext){return new RegExp(("\\.("+(ext.replace(/^\./,''))+"|html)$"),'g').test(path)?path:/\/$/g.test(path)?(path+"README"+ext):(""+path+ext)} +var History=function History(config){this.config=config;};History.prototype.getBasePath=function getBasePath(){return this.config.basePath};History.prototype.getFile=function getFile(path,isRelative){if(path===void 0)path=this.getCurrentPath();var ref=this;var config=ref.config;var base=this.getBasePath();var ext=typeof config.ext==='string'?config.ext:'.md';path=config.alias?getAlias(path,config.alias):path;path=getFileName(path,ext);path=path===("/README"+ext)?config.homepage||path:path;path=isAbsolutePath(path)?path:getPath(base,path);if(isRelative){path=path.replace(new RegExp(("^"+base)),'');} +return path};History.prototype.onchange=function onchange(cb){if(cb===void 0)cb=noop;cb();};History.prototype.getCurrentPath=function getCurrentPath(){};History.prototype.normalize=function normalize(){};History.prototype.parse=function parse(){};History.prototype.toURL=function toURL(path,params,currentRoute){var local=currentRoute&&path[0]==='#';var route=this.parse(replaceSlug(path));route.query=merge({},route.query,params);path=route.path+stringifyQuery(route.query);path=path.replace(/\.md(\?)|\.md$/,'$1');if(local){var idIndex=currentRoute.indexOf('?');path=(idIndex>0?currentRoute.substring(0,idIndex):currentRoute)+path;} +if(this.config.relativePath&&path.indexOf('/')!==0){var currentDir=currentRoute.substring(0,currentRoute.lastIndexOf('/')+1);return cleanPath(resolvePath(currentDir+path))} +return cleanPath('/'+path)};function replaceHash(path){var i=location.href.indexOf('#');location.replace(location.href.slice(0,i>=0?i:0)+'#'+path);} +var HashHistory=(function(History$$1){function HashHistory(config){History$$1.call(this,config);this.mode='hash';} +if(History$$1)HashHistory.__proto__=History$$1;HashHistory.prototype=Object.create(History$$1&&History$$1.prototype);HashHistory.prototype.constructor=HashHistory;HashHistory.prototype.getBasePath=function getBasePath(){var path=window.location.pathname||'';var base=this.config.basePath;return/^(\/|https?:)/g.test(base)?base:cleanPath(path+'/'+base)};HashHistory.prototype.getCurrentPath=function getCurrentPath(){var href=location.href;var index=href.indexOf('#');return index===-1?'':href.slice(index+1)};HashHistory.prototype.onchange=function onchange(cb){if(cb===void 0)cb=noop;on('hashchange',cb);};HashHistory.prototype.normalize=function normalize(){var path=this.getCurrentPath();path=replaceSlug(path);if(path.charAt(0)==='/'){return replaceHash(path)} +replaceHash('/'+path);};HashHistory.prototype.parse=function parse(path){if(path===void 0)path=location.href;var query='';var hashIndex=path.indexOf('#');if(hashIndex>=0){path=path.slice(hashIndex+1);} +var queryIndex=path.indexOf('?');if(queryIndex>=0){query=path.slice(queryIndex+1);path=path.slice(0,queryIndex);} +return{path:path,file:this.getFile(path,true),query:parseQuery(query)}};HashHistory.prototype.toURL=function toURL(path,params,currentRoute){return'#'+History$$1.prototype.toURL.call(this,path,params,currentRoute)};return HashHistory;}(History));var HTML5History=(function(History$$1){function HTML5History(config){History$$1.call(this,config);this.mode='history';} +if(History$$1)HTML5History.__proto__=History$$1;HTML5History.prototype=Object.create(History$$1&&History$$1.prototype);HTML5History.prototype.constructor=HTML5History;HTML5History.prototype.getCurrentPath=function getCurrentPath(){var base=this.getBasePath();var path=window.location.pathname;if(base&&path.indexOf(base)===0){path=path.slice(base.length);} +return(path||'/')+window.location.search+window.location.hash};HTML5History.prototype.onchange=function onchange(cb){if(cb===void 0)cb=noop;on('click',function(e){var el=e.target.tagName==='A'?e.target:e.target.parentNode;if(el.tagName==='A'&&!/_blank/.test(el.target)){e.preventDefault();var url=el.href;window.history.pushState({key:url},'',url);cb();}});on('popstate',cb);};HTML5History.prototype.parse=function parse(path){if(path===void 0)path=location.href;var query='';var queryIndex=path.indexOf('?');if(queryIndex>=0){query=path.slice(queryIndex+1);path=path.slice(0,queryIndex);} +var base=getPath(location.origin);var baseIndex=path.indexOf(base);if(baseIndex>-1){path=path.slice(baseIndex+base.length);} +return{path:path,file:this.getFile(path),query:parseQuery(query)}};return HTML5History;}(History));function routerMixin(proto){proto.route={};} +var lastRoute={};function updateRender(vm){vm.router.normalize();vm.route=vm.router.parse();body.setAttribute('data-page',vm.route.file);} +function initRouter(vm){var config=vm.config;var mode=config.routerMode||'hash';var router;if(mode==='history'&&supportsPushState){router=new HTML5History(config);}else{router=new HashHistory(config);} +vm.router=router;updateRender(vm);lastRoute=vm.route;router.onchange(function(_){updateRender(vm);vm._updateRender();if(lastRoute.path===vm.route.path){vm.$resetEvents();return} +vm.$fetch();lastRoute=vm.route;});} +function eventMixin(proto){proto.$resetEvents=function(){scrollIntoView(this.route.path,this.route.query.id);if(this.config.loadNavbar){getAndActive(this.router,'nav');}};} +function initEvent(vm){btn('button.sidebar-toggle',vm.router);collapse('.sidebar',vm.router);if(vm.config.coverpage){!isMobile&&on('scroll',sticky);}else{body.classList.add('sticky');}} +function loadNested(path,qs,file,next,vm,first){path=first?path:path.replace(/\/$/,'');path=getParentPath(path);if(!path){return} +get(vm.router.getFile(path+file)+qs,false,vm.config.requestHeaders).then(next,function(_){return loadNested(path,qs,file,next,vm);});} +function fetchMixin(proto){var last;var abort=function(){return last&&last.abort&&last.abort();};var request=function(url,hasbar,requestHeaders){abort();last=get(url,true,requestHeaders);return last};var get404Path=function(path,config){var notFoundPage=config.notFoundPage;var ext=config.ext;var defaultPath='_404'+(ext||'.md');var key;var path404;switch(typeof notFoundPage){case'boolean':path404=defaultPath;break +case'string':path404=notFoundPage;break +case'object':key=Object.keys(notFoundPage).sort(function(a,b){return b.length-a.length;}).find(function(key){return path.match(new RegExp('^'+key));});path404=(key&¬FoundPage[key])||defaultPath;break +default:break} +return path404};proto._loadSideAndNav=function(path,qs,loadSidebar,cb){var this$1=this;return function(){if(!loadSidebar){return cb()} +var fn=function(result){this$1._renderSidebar(result);cb();};loadNested(path,qs,loadSidebar,fn,this$1,true);}};proto._fetch=function(cb){var this$1=this;if(cb===void 0)cb=noop;var ref=this.route;var path=ref.path;var query=ref.query;var qs=stringifyQuery(query,['id']);var ref$1=this.config;var loadNavbar=ref$1.loadNavbar;var requestHeaders=ref$1.requestHeaders;var loadSidebar=ref$1.loadSidebar;var file=this.router.getFile(path);var req=request(file+qs,true,requestHeaders);this.isHTML=/\.html$/g.test(file);req.then(function(text,opt){return this$1._renderMain(text,opt,this$1._loadSideAndNav(path,qs,loadSidebar,cb));},function(_){this$1._fetchFallbackPage(file,qs,cb)||this$1._fetch404(file,qs,cb);});loadNavbar&&loadNested(path,qs,loadNavbar,function(text){return this$1._renderNav(text);},this,true);};proto._fetchCover=function(){var this$1=this;var ref=this.config;var coverpage=ref.coverpage;var requestHeaders=ref.requestHeaders;var query=this.route.query;var root=getParentPath(this.route.path);if(coverpage){var path=null;var routePath=this.route.path;if(typeof coverpage==='string'){if(routePath==='/'){path=coverpage;}}else if(Array.isArray(coverpage)){path=coverpage.indexOf(routePath)>-1&&'_coverpage';}else{var cover=coverpage[routePath];path=cover===true?'_coverpage':cover;} +var coverOnly=Boolean(path)&&this.config.onlyCover;if(path){path=this.router.getFile(root+path);this.coverIsHTML=/\.html$/g.test(path);get(path+stringifyQuery(query,['id']),false,requestHeaders).then(function(text){return this$1._renderCover(text,coverOnly);});}else{this._renderCover(null,coverOnly);} +return coverOnly}};proto.$fetch=function(cb){var this$1=this;if(cb===void 0)cb=noop;var done=function(){callHook(this$1,'doneEach');cb();};var onlyCover=this._fetchCover();if(onlyCover){done();}else{this._fetch(function(){this$1.$resetEvents();done();});}};proto._fetchFallbackPage=function(path,qs,cb){var this$1=this;if(cb===void 0)cb=noop;var ref=this.config;var requestHeaders=ref.requestHeaders;var fallbackLanguages=ref.fallbackLanguages;var loadSidebar=ref.loadSidebar;if(!fallbackLanguages){return false} +var local=path.split('/')[1];if(fallbackLanguages.indexOf(local)===-1){return false} +var newPath=path.replace(new RegExp(("^/"+local)),'');var req=request(newPath+qs,true,requestHeaders);req.then(function(text,opt){return this$1._renderMain(text,opt,this$1._loadSideAndNav(path,qs,loadSidebar,cb));},function(){return this$1._fetch404(path,qs,cb);});return true};proto._fetch404=function(path,qs,cb){var this$1=this;if(cb===void 0)cb=noop;var ref=this.config;var loadSidebar=ref.loadSidebar;var requestHeaders=ref.requestHeaders;var notFoundPage=ref.notFoundPage;var fnLoadSideAndNav=this._loadSideAndNav(path,qs,loadSidebar,cb);if(notFoundPage){var path404=get404Path(path,this.config);request(this.router.getFile(path404),true,requestHeaders).then(function(text,opt){return this$1._renderMain(text,opt,fnLoadSideAndNav);},function(){return this$1._renderMain(null,{},fnLoadSideAndNav);});return true} +this._renderMain(null,{},fnLoadSideAndNav);return false};} +function initFetch(vm){var ref=vm.config;var loadSidebar=ref.loadSidebar;if(vm.rendered){var activeEl=getAndActive(vm.router,'.sidebar-nav',true,true);if(loadSidebar&&activeEl){activeEl.parentNode.innerHTML+=window.__SUB_SIDEBAR__;} +vm._bindEventOnRendered(activeEl);vm.$resetEvents();callHook(vm,'doneEach');callHook(vm,'ready');}else{vm.$fetch(function(_){return callHook(vm,'ready');});}} +function initMixin(proto){proto._init=function(){var vm=this;vm.config=config();initLifecycle(vm);initPlugin(vm);callHook(vm,'init');initRouter(vm);initRender(vm);initEvent(vm);initFetch(vm);callHook(vm,'mounted');};} +function initPlugin(vm){[].concat(vm.config.plugins).forEach(function(fn){return isFn(fn)&&fn(vm._lifecycle,vm);});} +var util=Object.freeze({cached:cached,hyphenate:hyphenate,hasOwn:hasOwn,merge:merge,isPrimitive:isPrimitive,noop:noop,isFn:isFn,inBrowser:inBrowser,isMobile:isMobile,supportsPushState:supportsPushState,parseQuery:parseQuery,stringifyQuery:stringifyQuery,isAbsolutePath:isAbsolutePath,getParentPath:getParentPath,cleanPath:cleanPath,resolvePath:resolvePath,getPath:getPath,replaceSlug:replaceSlug});function initGlobalAPI(){window.Docsify={util:util,dom:dom,get:get,slugify:slugify,version:'4.9.4'};window.DocsifyCompiler=Compiler;window.marked=marked;window.Prism=prism;} +function ready(callback){var state=document.readyState;if(state==='complete'||state==='interactive'){return setTimeout(callback,0)} +document.addEventListener('DOMContentLoaded',callback);} +function Docsify(){this._init();} +var proto=Docsify.prototype;initMixin(proto);routerMixin(proto);renderMixin(proto);fetchMixin(proto);eventMixin(proto);initGlobalAPI();ready(function(_){return new Docsify();});}()); \ No newline at end of file diff --git a/docs/en/core/atom_lite.md b/docs/en/core/atom_lite.md index a683402c..85abc334 100644 --- a/docs/en/core/atom_lite.md +++ b/docs/en/core/atom_lite.md @@ -1,6 +1,6 @@ # ATOM Lite{docsify-ignore-all} - + ## Description diff --git a/docs/en/core/atom_matrix.md b/docs/en/core/atom_matrix.md index ed3a04f1..65688036 100644 --- a/docs/en/core/atom_matrix.md +++ b/docs/en/core/atom_matrix.md @@ -1,6 +1,6 @@ # ATOM Matrix {docsify-ignore-all} - + ## Description @@ -12,9 +12,6 @@ - - - ## Product Features - USB Type-C diff --git a/docs/en/hat/hat-8servos.md b/docs/en/hat/hat-8servos.md index bde0251a..d469d3b4 100644 --- a/docs/en/hat/hat-8servos.md +++ b/docs/en/hat/hat-8servos.md @@ -53,7 +53,7 @@
    - +

    Description:

    This test program will test whether the drive servo function of each port of the 8Servos HAT module is normal.

    diff --git a/docs/index.html b/docs/index.html index 431ee559..76a37575 100755 --- a/docs/index.html +++ b/docs/index.html @@ -1,473 +1,69 @@ - - +M5Stack - A series of modular stackable development devices - - - - - - - - - - -
    - -
    -
    - M5Stack Docs
    - -
    - -
    loading...
    - - - - - - - - - - - - - - - + window.addEventListener('hashchange', function(event) { + var loadingMask = document.getElementById('loading'); + let url = window.location.href.split('#')[1]; + if (url.length < 2 || url == '/zh_CN/' || url == '/en/') { - \ No newline at end of file + }else if(url.indexOf("?id=") < 0 ){ + loadingMask.style.display = 'block'; + } + }) +
    loading...
    \ No newline at end of file diff --git a/docs/index_source.html b/docs/index_source.html index 8daed37d..c751b17d 100644 --- a/docs/index_source.html +++ b/docs/index_source.html @@ -47,6 +47,9 @@ + + + @@ -93,6 +96,7 @@ +
    loading...
    @@ -360,7 +364,7 @@ var Label2 = 'here is the anchor_name'; function anchor_create(anchor_name,anchor_id){ var Part_A = Label1.replace(/here is the anchor_id/, anchor_id); - var Part_B = Label2.replace(/here is the anchor_name/, anchor_name); + var Part_B = Label2.replace(/here is the anchor_name/, anchor_name.toUpperCase()); if((anchor_name == "DESCRIPTION")||(anchor_name == "描述")){ $(".anchor-box").append(Part_A+description_icon+Part_B); } @@ -373,11 +377,21 @@ else if((anchor_name == "VIDEO")||(anchor_name == "相关视频")){ $(".anchor-box").append(Part_A+video_icon+Part_B); } - else if((anchor_name == "QUICK START")||(anchor_name == "快速上手")){ - $(".anchor-box").append(Part_A+quickstart_icon+Part_B); - } else if(icon_list.hasOwnProperty(anchor_name)){ $(".anchor-box").append(Part_A+""+Part_B); + if (anchor_name == "EASYLOADER"){ + if(("#example_video").length >0) + $("#play-btn").on("click",function(ev){ + ev.stopPropagation(); + $(".easyloader-mask").toggleClass('video_play'); + $("#example_video")[0].play(); + }) + $("#example_video").on("click",function(ev){ + ev.preventDefault(); + $(".easyloader-mask").toggleClass('video_play'); + $("#example_video")[0].pause(); + }) + } } } function anchor_search(purchase_link="none",quickstart_link="none"){ @@ -399,8 +413,8 @@ var quickstart_name = "快速上手" } else { - var purchase_name = "Purchase" - var quickstart_name = "Quick Start" + var purchase_name = "PURCHASE" + var quickstart_name = "QUICK START" } } if(purchase_link!="none"){ @@ -457,4 +471,54 @@ window.onscroll = scrollFunc; + + + \ No newline at end of file diff --git a/docs/zh_CN/core/atom_lite.md b/docs/zh_CN/core/atom_lite.md index e1aea023..e997311c 100644 --- a/docs/zh_CN/core/atom_lite.md +++ b/docs/zh_CN/core/atom_lite.md @@ -58,7 +58,7 @@
    - +

    案例描述:

    通过变色呼吸灯程序,测试RGB LED与按键是否工作正常.

    diff --git a/docs/zh_CN/core/atom_matrix.md b/docs/zh_CN/core/atom_matrix.md index 6475a5a5..6ca0eaf9 100644 --- a/docs/zh_CN/core/atom_matrix.md +++ b/docs/zh_CN/core/atom_matrix.md @@ -61,7 +61,7 @@
    - +

    案例描述:

    通过矩阵屏幕文字滚屏显示与按键计数功能,测试RGB LED与按键是否工作正常.

    diff --git a/docs/zh_CN/core/basic.md b/docs/zh_CN/core/basic.md index 7c95ea18..4afb1bd9 100644 --- a/docs/zh_CN/core/basic.md +++ b/docs/zh_CN/core/basic.md @@ -59,16 +59,29 @@ M5Stack Basic 由两个可分离部分堆叠组成. 顶部放置了电路板, ## EasyLoader - - - - ->1.EasyLoader是一个简洁快速的程序烧录器,每一个产品页面里的EasyLoader都提供了一个与产品相关的案例程序.**(目前EasyLoader仅适用于Windows操作系统)** - ->2.下载软件后,双击运行应用程序,将M5设备通过数据线连接至电脑,选择端口参数,点击 **"Burn"** 即可开始烧录 - -!>3.EasyLoader烧录前需要安装有CP210X(USB驱动程序),[点击此处查看驱动安装教程](zh_CN/related_documents/M5Burner#安装串口驱动) +>EasyLoader是一个简洁快速的程序烧录器,每一个产品页面里的EasyLoader都提供了一个与产品相关的案例程序,通过简单步骤将其烧录至主控,能够进行一系列的功能验证.**(目前EasyLoader仅适用于Windows操作系统)** +
    +
    +
    +
    + Windows + +
    +
    +
    + +
    + + +

    案例描述:

    +

    该案例将执行喇叭,wifi,按键,加速计,SD卡,屏幕等硬件运行测试.

    +
    +
    +
    ## 外设的管脚映射 diff --git a/docs/zh_CN/core/face_kit.md b/docs/zh_CN/core/face_kit.md index 6713a6d5..309e5237 100644 --- a/docs/zh_CN/core/face_kit.md +++ b/docs/zh_CN/core/face_kit.md @@ -79,18 +79,31 @@ - ## EasyLoader - +>EasyLoader是一个简洁快速的程序烧录器,每一个产品页面里的EasyLoader都提供了一个与产品相关的案例程序,通过简单步骤将其烧录至主控,能够进行一系列的功能验证.**(烧录前请安装CP210X驱动程序)** - - ->1.EasyLoader是一个简洁快速的程序烧录器,每一个产品页面里的EasyLoader都提供了一个与产品相关的案例程序.**(目前EasyLoader仅适用于Windows操作系统)** - ->2.下载软件后,双击运行应用程序,将M5设备通过数据线连接至电脑,选择端口参数,点击 **"Burn"** 即可开始烧录 - -!>3.EasyLoader烧录前需要安装有CP210X(USB驱动程序),[点击此处查看驱动安装教程](zh_CN/related_documents/M5Burner#安装串口驱动),在为Faces烧录固件前,请点击"Erase"进行一次内存擦除. +
    +
    +
    +
    + Windows + +
    +
    +
    + +
    + + +

    案例描述:

    +

    该案例将默认运行FACES键盘输入测试程序,重启选择程序列表可以切换不同的面板测试项.

    +
    +
    +
    ### 相关链接 diff --git a/docs/zh_CN/core/m5stickt.md b/docs/zh_CN/core/m5stickt.md index 695e1b86..a2f08f85 100644 --- a/docs/zh_CN/core/m5stickt.md +++ b/docs/zh_CN/core/m5stickt.md @@ -1,8 +1,6 @@ # M5StickT {docsify-ignore-all} - - - + @@ -104,7 +102,7 @@ M5StickT仅支持WIN10&Linux&MAC(10.15以下)免驱,其余操作系统则需
    - +

    案例描述:

    热成像操作说明:A键切换跟踪模式,B键切换显示模式,拨轮调整灵敏度.