From 3c04613f8a282acf27e35311e278ab56b863a7b1 Mon Sep 17 00:00:00 2001 From: Silvan Wakker Date: Thu, 12 Sep 2019 17:17:01 +0200 Subject: [PATCH 01/36] Update index.md (#2288) * Update index.md It wasn't at first clear to me you should declare the component before instantiating your app. This hopefully makes that clear to even beginners. * Update src/v2/guide/index.md Co-Authored-By: Phan An --- src/v2/guide/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/v2/guide/index.md b/src/v2/guide/index.md index d8b7e4328..b4a02efc3 100644 --- a/src/v2/guide/index.md +++ b/src/v2/guide/index.md @@ -289,6 +289,8 @@ var app6 = new Vue({ Vue.component('todo-item', { template: '
  • 这是个待办项
  • ' }) + +var app = new Vue(...) ``` 现在你可以用它构建另一个组件模板: From 0fc0f99ca1e0dcf2dd145f3cde9983241e0f1e59 Mon Sep 17 00:00:00 2001 From: Grgur Grisogono Date: Thu, 12 Sep 2019 17:25:17 +0200 Subject: [PATCH 02/36] Minor A11y & Perf fixes (#2292) * rel="nooper" where target blank * fixed id conflict * ensure aria label in search field * force https * display:swap for google fonts * restore config * revert formatting * Revert indentation and coding style --- themes/vue/layout/icons/github-dark.ejs | 2 +- themes/vue/layout/index.ejs | 15 +- themes/vue/layout/layout.ejs | 6 +- themes/vue/layout/page.ejs | 4 +- .../layout/partials/ecosystem_dropdown.ejs | 36 ++-- .../vue/layout/partials/language_dropdown.ejs | 14 +- themes/vue/layout/partials/learn_dropdown.ejs | 6 +- themes/vue/layout/partials/main_menu.ejs | 2 +- .../vue/layout/partials/platinum_sponsors.ejs | 2 +- themes/vue/layout/partials/sponsors.ejs | 12 +- .../vue/layout/partials/sponsors_sidebar.ejs | 2 +- .../layout/partials/support_vue_dropdown.ejs | 6 +- themes/vue/layout/search-page.ejs | 179 ++++++++++++++++++ themes/vue/layout/sponsors-page.ejs | 18 +- themes/vue/source/js/common.js | 2 +- 15 files changed, 245 insertions(+), 61 deletions(-) create mode 100644 themes/vue/layout/search-page.ejs diff --git a/themes/vue/layout/icons/github-dark.ejs b/themes/vue/layout/icons/github-dark.ejs index eb71a11da..296fede1e 100644 --- a/themes/vue/layout/icons/github-dark.ejs +++ b/themes/vue/layout/icons/github-dark.ejs @@ -1 +1 @@ -GitHub Dark icon +GitHub Dark icon diff --git a/themes/vue/layout/index.ejs b/themes/vue/layout/index.ejs index bc4bf0dbf..0163eb65f 100644 --- a/themes/vue/layout/index.ejs +++ b/themes/vue/layout/index.ejs @@ -20,7 +20,7 @@ <%- partial('icons/play') %> WHY VUE.JS? ">起步 - + <%- partial('icons/github-dark') %> GITHUB

    @@ -31,7 +31,7 @@

    特别赞助

    <%_ for (const sponsor of theme.platinum_sponsors_china) { _%> - + <%_ } _%> @@ -80,6 +80,7 @@ id="revue-form" name="revue-form" target="_blank" + rel="noopener" action="https://www.getrevue.co/profile/vuenewsletter/add_subscriber" method="post" @submit="subscribe" @@ -101,24 +102,24 @@ >

    - 你可以在 news.vuejs.org 翻阅往期的 issue,也可以收听 podcast。 + 你可以在 news.vuejs.org 翻阅往期的 issue,也可以收听 podcast。

    diff --git a/themes/vue/layout/layout.ejs b/themes/vue/layout/layout.ejs index a3495348f..c8e81f54b 100644 --- a/themes/vue/layout/layout.ejs +++ b/themes/vue/layout/layout.ejs @@ -48,6 +48,10 @@ + + + + @@ -68,7 +72,7 @@ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', '<%- theme.google_analytics %>', '<%- theme.root_domain %>'); ga('send', 'pageview'); diff --git a/themes/vue/layout/page.ejs b/themes/vue/layout/page.ejs index e4b67c5db..99a13dcb4 100644 --- a/themes/vue/layout/page.ejs +++ b/themes/vue/layout/page.ejs @@ -11,7 +11,7 @@ <% if (page.type) { %> <% if (page.type === 'menu') { %>
    - +
    <%- partial('partials/toc', { type: 'guide' }) %> <% } else { %> @@ -48,7 +48,7 @@ <%- partial('partials/ad-text') %> <%_ } _%> 发现错误?想参与编辑? - + 在 GitHub 上编辑此页! diff --git a/themes/vue/layout/partials/ecosystem_dropdown.ejs b/themes/vue/layout/partials/ecosystem_dropdown.ejs index 5dd76aff2..35c60498d 100644 --- a/themes/vue/layout/partials/ecosystem_dropdown.ejs +++ b/themes/vue/layout/partials/ecosystem_dropdown.ejs @@ -3,38 +3,38 @@ diff --git a/themes/vue/layout/partials/language_dropdown.ejs b/themes/vue/layout/partials/language_dropdown.ejs index 95d1b0f24..5d2ae22a0 100644 --- a/themes/vue/layout/partials/language_dropdown.ejs +++ b/themes/vue/layout/partials/language_dropdown.ejs @@ -1,12 +1,12 @@ diff --git a/themes/vue/layout/partials/learn_dropdown.ejs b/themes/vue/layout/partials/learn_dropdown.ejs index d7a4efdc8..071641828 100644 --- a/themes/vue/layout/partials/learn_dropdown.ejs +++ b/themes/vue/layout/partials/learn_dropdown.ejs @@ -14,9 +14,9 @@
  • 视频教程

  • diff --git a/themes/vue/layout/partials/main_menu.ejs b/themes/vue/layout/partials/main_menu.ejs index b413ff5ab..2554f7355 100644 --- a/themes/vue/layout/partials/main_menu.ejs +++ b/themes/vue/layout/partials/main_menu.ejs @@ -1,6 +1,6 @@
  • - +
  • <%- partial('partials/learn_dropdown') %> diff --git a/themes/vue/layout/partials/platinum_sponsors.ejs b/themes/vue/layout/partials/platinum_sponsors.ejs index 91e736d20..69c982a4a 100644 --- a/themes/vue/layout/partials/platinum_sponsors.ejs +++ b/themes/vue/layout/partials/platinum_sponsors.ejs @@ -3,7 +3,7 @@ 白金赞助商
    <%_ for (const sponsor of theme.platinum_sponsors) {_%> - <%_ } _%> diff --git a/themes/vue/layout/partials/sponsors.ejs b/themes/vue/layout/partials/sponsors.ejs index 0e9351cf4..e6f16f403 100644 --- a/themes/vue/layout/partials/sponsors.ejs +++ b/themes/vue/layout/partials/sponsors.ejs @@ -15,14 +15,14 @@

    Patreon 赞助商

    <%_ for (const sponsor of theme.platinum_sponsors) {_%> - + <%-sponsor.name-%> <%_ } _%>

    <%_ for (const sponsor of theme.gold_sponsors) {_%> - + <%-sponsor.name-%> <%_ } _%> @@ -34,14 +34,14 @@

    OpenCollective 赞助商

    白金

    <%_ for (let i = 0; i < 2; i++) {_%> - - + + Vue.JS sponsor <%_ } _%>

    黄金

    <%_ for (let i = 0; i < 8; i++) {_%> - - + + Vue.JS sponsor <%_ } _%>
    diff --git a/themes/vue/layout/partials/sponsors_sidebar.ejs b/themes/vue/layout/partials/sponsors_sidebar.ejs index 4fe1bd89c..43756ca75 100644 --- a/themes/vue/layout/partials/sponsors_sidebar.ejs +++ b/themes/vue/layout/partials/sponsors_sidebar.ejs @@ -4,7 +4,7 @@ 特别赞助商 <%_ for (const sponsor of theme.platinum_sponsors_china) { _%>
    -
    diff --git a/themes/vue/layout/partials/support_vue_dropdown.ejs b/themes/vue/layout/partials/support_vue_dropdown.ejs index 61d853338..b7e2a0619 100644 --- a/themes/vue/layout/partials/support_vue_dropdown.ejs +++ b/themes/vue/layout/partials/support_vue_dropdown.ejs @@ -4,9 +4,9 @@
  • diff --git a/themes/vue/layout/search-page.ejs b/themes/vue/layout/search-page.ejs new file mode 100644 index 000000000..770abd749 --- /dev/null +++ b/themes/vue/layout/search-page.ejs @@ -0,0 +1,179 @@ +
    +
    + + +
    + + + +

    No results were found.

    + +
    + +
    + + + + + diff --git a/themes/vue/layout/sponsors-page.ejs b/themes/vue/layout/sponsors-page.ejs index d8cb1e790..f57d519d2 100644 --- a/themes/vue/layout/sponsors-page.ejs +++ b/themes/vue/layout/sponsors-page.ejs @@ -10,7 +10,7 @@ Vue.js 是采用 MIT 许可的开源项目,使用完全免费。

    我们通过以下方式接受赞助:

    - + <%- partial('icons/btc') %> BTC @@ -69,7 +69,7 @@ window.addEventListener('hashchange', function () { -
    - - Link -
    -
    - <%- partner.url_text %> -
    Proficiencies
    @@ -70,11 +74,6 @@
    -
    - - Hire <%= partner.name %> - -
    <% } %> From 2e47a1f6679a18b0245d87e867de56807d7868db Mon Sep 17 00:00:00 2001 From: Phan An Date: Thu, 14 Mar 2019 22:40:49 +0100 Subject: [PATCH 13/36] Refactor Themes --- src/v2/guide/themes.md | 61 ++++++++++++++ themes/vue/layout/layout.ejs | 9 ++- themes/vue/layout/partials/main_menu.ejs | 3 + themes/vue/source/css/_common.styl | 2 +- themes/vue/source/css/_header.styl | 2 +- themes/vue/source/css/_themes-example.styl | 9 ++- themes/vue/source/js/theme-data.js | 93 ++++++++++++++++++++++ 7 files changed, 172 insertions(+), 7 deletions(-) create mode 100644 src/v2/guide/themes.md create mode 100644 themes/vue/source/js/theme-data.js diff --git a/src/v2/guide/themes.md b/src/v2/guide/themes.md new file mode 100644 index 000000000..81e176a76 --- /dev/null +++ b/src/v2/guide/themes.md @@ -0,0 +1,61 @@ +--- +title: Themes +type: guide +order: 804 +--- +{% raw %} +
    +
    + +
    +
    + + + + +{% endraw %} diff --git a/themes/vue/layout/layout.ejs b/themes/vue/layout/layout.ejs index c8e81f54b..d335b34ab 100644 --- a/themes/vue/layout/layout.ejs +++ b/themes/vue/layout/layout.ejs @@ -1,4 +1,5 @@ <% var isIndex = page.path === 'index.html' %> +<% var isThemes = page.path === 'v2/guide/themes.html' %> @@ -61,7 +62,13 @@ <%- css(isIndex ? 'css/index' : 'css/page') %> - + + + <% if (isThemes) { %> + + + <% } %> + --> +<% } %> diff --git a/themes/vue/layout/partials/sidebar.ejs b/themes/vue/layout/partials/sidebar.ejs index 3b7a93b93..c80b8beb2 100644 --- a/themes/vue/layout/partials/sidebar.ejs +++ b/themes/vue/layout/partials/sidebar.ejs @@ -33,7 +33,8 @@ - diff --git a/themes/vue/layout/partials/sponsors_sidebar.ejs b/themes/vue/layout/partials/sponsors_sidebar.ejs index 43756ca75..faf9db978 100644 --- a/themes/vue/layout/partials/sponsors_sidebar.ejs +++ b/themes/vue/layout/partials/sponsors_sidebar.ejs @@ -18,7 +18,8 @@ <%_ } _%> - From d1a717fd29410a92a9f949c6ef741357b1647e5b Mon Sep 17 00:00:00 2001 From: Mihira Jayasekera Date: Fri, 20 Sep 2019 03:29:57 -0700 Subject: [PATCH 22/36] Fix position of '$' for prices on Theme page (#2305) (In the U.S. common practice is to place the dollar symbol before the numeric value.) --- src/resources/themes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/resources/themes.md b/src/resources/themes.md index 72eaa3739..c46e8c8f2 100644 --- a/src/resources/themes.md +++ b/src/resources/themes.md @@ -28,7 +28,7 @@ order: 804

    {{product.name}}

    - {{product.price}}$ + ${{product.price}}
    {{product.description}}
    From 88dd54cf62615b6b2ad9666ea0a381af24537140 Mon Sep 17 00:00:00 2001 From: Phan An Date: Fri, 20 Sep 2019 12:31:14 +0200 Subject: [PATCH 23/36] Disable tracking for Vimeo videos (#2291) From f911fffd15ffa5fed86f246d55b852940a38d9b9 Mon Sep 17 00:00:00 2001 From: vue-bot Date: Mon, 23 Sep 2019 17:52:24 +0200 Subject: [PATCH 24/36] chore: update sponsors (#2306) --- themes/vue/_config.yml | 3 +++ themes/vue/source/images/staff_augmentation.png | Bin 0 -> 2172 bytes 2 files changed, 3 insertions(+) create mode 100644 themes/vue/source/images/staff_augmentation.png diff --git a/themes/vue/_config.yml b/themes/vue/_config.yml index 2ba02787c..a4551c317 100644 --- a/themes/vue/_config.yml +++ b/themes/vue/_config.yml @@ -115,6 +115,9 @@ gold_sponsors: - url: 'https://storekit.com' img: storekit.png name: StoreKit + - url: 'https://staffaugmentation.ro/en' + img: staff_augmentation.png + name: Staff Augmentation silver_sponsors: - url: 'https://dopamine.bg/' img: dopamine.png diff --git a/themes/vue/source/images/staff_augmentation.png b/themes/vue/source/images/staff_augmentation.png new file mode 100644 index 0000000000000000000000000000000000000000..2bae47249c86d6b412b181b1ea229902caebb30e GIT binary patch literal 2172 zcmV-?2!r>DP)+CL;|FBilTRrdh-s|qy zue)FO`~6lrQfTxSYK8BqGIT459T8QNA0VgY+N&R`4BZNj%)u#LkAv@odV=Qp6IF(8 z16@0~$$tUo{(z^UwEs|CKUEpJ4Rr0`v=+@QZ1#RSq-i=;vL0W z{c^NDk&)C$Xex7K2N+x8-p%zF`jhw_gv<@0-{1$b#_6he4}|_w`UiBH=DGEue;t>` zfjXBUu0j4|n(21JQ%$BiL(ihi8kZ`t#W3{g&2Bd9MSZnMj~YFw7M+Qp(H_TG8yol*hP$Uj{ssPOTL#)E z!G&yoJp7YUY#<5`Wo{$*JlKr-Q)s6XZr`I_7j14CX!`9A{lj_*Ikz%)0DL8k^$+^w z9qe^Gzh7c=BiXpod>;H~pfqTsAJg4DRYNlbL*Eb2+l;+~{F^XReK4vp+(`XWYjj)S zTTB2R#)+ou^ZE&VtKr#3e@~ci(H6#jqxbc+F89}j!0;T3B5cwiuPp2zt5Y@#ep}at+MQ!&>yh#RUv>K z>-XRgHTcVd)8nk4)`=ab=)SrN!RuhG4Ur+84X$C#YVhyDSqSSa16%~{pIQ97oQ^LO zfg5?gnDN=*8^rZxMDY}4#DenD-=Uv~mt292Re?W)+rvl&g^re&64APr88+eYD|Dkjp8j}df7ecm>2Pz%WO;q-OgiJ|sVi_~0!NU=aHww= z6r~`pFGBCMKV+aR+yn3DXop8Om>%?6;J=Y2DDB{$x|ZMDh^!^x&v_mk)tnkQUSSza zH_e#i>!Eg(f_is5^P_m$ii~wEdP+&UG)h@oY^8=tZ^HAKRUPg;Odc_4Bby|&9vyC0-ZD#}xrVVNtoN|& zq!ogd2~WaydaFRUN5H9|1=&gJ2pYVVjg)X%*urs6b1{Ob_;x z(di}7f@P&Fo2it8=le7Gwad|7+WoYrBVu#JXa<-`zb>S(7b-% zd^!Cn1fxi;i_s;+YwZqdR2sUwSbKU%!*ldE`geo*i&LF@0{%_#Tu5)JK5FoF=yhwL zD}=f3PyE`Y?n-q82?9zK2S-AePC?cdLap;lYnrTLnXWhGqQO^0rR_Q?Ts~jS(ai}d z{(sPpw{Ee6jnR=}91-AgOmH5lgtuYvGc58I+GpUhAlQyz`{>b!tJsKkauU!?WFy-# z;tR;x1n%nPMBuj<8IPDkchd`|4A?vh2*g zR^$xlEwfa!)1A5+xy!@Fs*-hEis)AOe&PP!ioS`0@?c==WNzwvLUu5)y51Z5Ns;jv z`C~|>t(?Jwv;zpbw{x`S*e1$QQm-SW4}qRwt|ij1KOCvt>)>i1C(jLmwvD5>J2*5$ zcYL&d#s+rra;nHXc%DBNv3CY%IX-U0bOR2(iJ2S035?lgU@~aY{BLkH_%Qtu&>qA5 zTGG|OREDDp@+mrj6VueC7`4msDq^SAhgyv!c@E=}(M0000 Date: Tue, 24 Sep 2019 19:28:14 +0200 Subject: [PATCH 25/36] chore: update sponsors (#2311) --- themes/vue/_config.yml | 3 +++ themes/vue/source/images/philip_john_basile.png | Bin 0 -> 53629 bytes 2 files changed, 3 insertions(+) create mode 100644 themes/vue/source/images/philip_john_basile.png diff --git a/themes/vue/_config.yml b/themes/vue/_config.yml index a4551c317..1c009e2a5 100644 --- a/themes/vue/_config.yml +++ b/themes/vue/_config.yml @@ -132,3 +132,6 @@ bronze_sponsors: - url: 'https://www.earthlink.ro' img: earthlink.png name: Earthlink + - url: 'https://twitter.com/philipjbasile' + img: philip_john_basile.png + name: Philip John Basile diff --git a/themes/vue/source/images/philip_john_basile.png b/themes/vue/source/images/philip_john_basile.png new file mode 100644 index 0000000000000000000000000000000000000000..5b3332d7fe56fd9da660272077b60a39f7e0bbd6 GIT binary patch literal 53629 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 Date: Wed, 25 Sep 2019 09:35:30 -0400 Subject: [PATCH 26/36] chore: update backer image --- themes/vue/_config.yml | 2 +- themes/vue/source/images/philip_john_basile.gif | Bin 0 -> 6827 bytes themes/vue/source/images/philip_john_basile.png | Bin 53629 -> 0 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 themes/vue/source/images/philip_john_basile.gif delete mode 100644 themes/vue/source/images/philip_john_basile.png diff --git a/themes/vue/_config.yml b/themes/vue/_config.yml index 1c009e2a5..c1b656bc2 100644 --- a/themes/vue/_config.yml +++ b/themes/vue/_config.yml @@ -133,5 +133,5 @@ bronze_sponsors: img: earthlink.png name: Earthlink - url: 'https://twitter.com/philipjbasile' - img: philip_john_basile.png + img: philip_john_basile.gif name: Philip John Basile diff --git a/themes/vue/source/images/philip_john_basile.gif b/themes/vue/source/images/philip_john_basile.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b6fc1039e8d124b84d93ee363677016e1bd8f8b GIT binary patch literal 6827 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 UO$LAW41Jp(;uT&B;sBHX0~65S`v3p{ literal 0 HcmV?d00001 diff --git a/themes/vue/source/images/philip_john_basile.png b/themes/vue/source/images/philip_john_basile.png deleted file mode 100644 index 5b3332d7fe56fd9da660272077b60a39f7e0bbd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53629 zcmeFaWms10+BFO+7S<9G5kW)+1mUJT46q1AKuVe$q`Ona08|W8Kolh;1u02INl^p| z13>}l5((*dOi-8mIo5uk=X<~RJH9{LW9_w2=RM~&uj`C)j&q#%_B)|?co(x@F&*6%qQ@lRW?U7?C}>g#Q!KMZbxpRpje$^s-o_ot{^XF zXl==@Z)9yi=612P!POKL64EX<`iACY2WA7ZiK&$&%TRtX3$v+_B#WA$0*`{tLGl^X zBW`wNWj93?LpO6nQ6m;5G2FnC?4Zx=VrgMzFXkf2vT$E9{7n2YiG_LL5(jfh zmi@#7nbj3eFdwwGBQpzf3vn6p3J5X_i*oY{@e7EG?q%lV;T0kAh>&>sxp;-d1bD>w z_?UnGV!_kwjEu!j${hOnEc{NA<&1-ajTnjK?Ci|#%+GCYXF}o?6%{4%@R9iVxNrrR zy{najz6+O?{mx%^kRjU}+L_uom|9yg6L-`%uy%BiWWh=oU%}Gm_ie50e{K^tjO3zk zL*nJ;Azo?WLLfZvS|-y^5<1nRJqDZ|!JjNS1ZN6L)%^pBX-b^tnXlLr($hw@#~aN{JIPC!Gpx9iZZjSnOYfHJKOIeR{8TYWEp)2 zvLp-f_gp-pTzot#yu4!k0%H6kTs#6|JUok+D!`76^d0p7>0$vvF@AjZkBhC1OpRUt z+e?iM#f+`(EcLO=rk469WRi`Q$->hV6vU2N**oZ48Iq66NU~t5+@_{RVn&9BB1Sx9 zJ}!P^1AQ(*Q2~A~QGOwQE`0+7VNtR^kB9(|@vqOzSQ|PL7C?M{(HV@a4RMd(TPG&M z!*9gP%WK5NXTWd7#m^%^=F-;}65&{-sQ|{rQuHDf5CMis>5?z9PwDNSrg-h~?)WoBqQ-{m)jkcw6T)WZd+B zbNGvw*;^YsIP2Sy_nTl(|0niE`giNM*LV7FR&T_|Ys|0DkNq?f;^Gq#Fyays73AeI zFcuKx6%-=&mhacw|I_LP1jGdSe_7-I;p%^GuHhMdD-$xpFNx*<{Cz}?^+gSY1cbSS zgbana40!QA`o=Y-caY zVr*w^$*gZ>C!vE9~k%`0*Eq}+) z|7VeI@%h&OZzCpQIKOR5Ooi;?Ag}KVBm5ax4(OZw9bx{yZs8h5*sCPVi8H1arZ&vS ztj}06AJDfqwIKf)g%>U)?)r}x{$aKMc<)1w78cCP4!~;6$Ml`_l^384vkcjZY+-Ff zwqs`1x3m#wKIKT}KBmm9Y(q9Q)we)^XJ-C4OZY#(AFr()7#E-ubB!2T7gOaTf`Rsr&Iiz3pQ&5yS9hKRy;_{(?cGVSC)fmzo1IMmiyE-?% z_1$1!D6y7zxk2ufz|FzvrP;U3ybU9_Udn7Yx3pzS-KlulQvCC~fo1E|w(V0t&#v>z99|KVX^RrD$6LgDxa^P$2<4fm8N z0%kA#y1rCglJ{AbhtV`=~Ko8J+E>OaBeKcVwK z`Q|^_^FNT||9=3*yyA{an_rZ{`0PZhc+H#Mk(Z>_J@#{b#dC76mQZwiQ&Q|}*)l|R zWG4-od1y`jxofws(NOrz(NR#mp(=BytgC30J9m9zIC_3E+O}9JMdNXq>t^4^>y_8u z(&>8Kv!mL-VcGr-qs90a@y|1tv~N25H~5}Q3H9;)F1yqAU8d<G%lnDJ>s) zy^o7F)2tz}oXOqd-6MVR0uHAZ*Dm`SN$0AdJy}^xPN*hvF=&YEa}%91bx$KF9cX_ zSbZw!Yyn<^oS2eQh{e7vI5IWXH-S}mc3hb(p%|d17%d(xrl2^&+O8BuE}&z+DvwX_ zpO6zR!sV?qox;I+Du)7@qAnF$I7YrHqS!YtH&0FBvy6|a;g8ML>#@G~QvcaGD$nWh zl>P?0*P>mSqfvWHP4_4c$o>2EA3l zLGwldK|ykEhDYs@roCF($-2c}wx@a2v>jFZ9&_CC(Dxaqy1vc4DfMc8z_%amf#NkV z2aBPzE0~Tn`F!EZX&%XmmK>?rSsUfi_QFp&UNMT-u&gWEyU1g5g%YqvMuQOjE;CT zRr{`@afoz?%p?s^Gy8bYv~RbS-W@2~xuuJKmgF;_YNH(J+x`BrNqwMrSERjF;aDTg z$f+?|Bk5F%nU&S4rhS??=}SLPdV^fWJDKoox6y9fx}$8fvqRqVc%l2kN94SQZulO4B)3ckM< zZuPMLS{2-@ym&Vx{v0p&aYZ@4F#JUeYiPzhsC}(S?`ymuTDkao+4He-6zUTb-KGKUhbo19pJhu8I z)^w41W!e2J6I+L9m+fbN=jNCBa#AMz)Zy)(qgvL54fXXw9aST;JEQopb9!87if6}P zc8HE%p!`6$&rV%wIgWBzK4|j7;HP|D#|G6D>7z@0jU*C179xuby@7sA_4vg#^dr4V zX{=6pSI%mRk*mXacSO`AswVxm4k^~EyYo~V?)dQyh<@>oWE8T zyM@=_16cWVtf2?`5c zUH6Li&T<7Y30b#n%Z+VzZuJal%iI(XyFjviL1$68tJ@nty>r|1#cO`Lm86|lPu{um z+&A|2!ZLRRYmP0+3oF}G`dWNw22ok9kO&Vwy}i9lgl}~l-z44g z@E=|-m0r><(=yD*pZ{Nut-*QbTRC>O2vKmy+AmL+u3z(BEKV`X>~HHl;DO^kH@9e~ zCp)h2zkZi%d!PE~AC9@nqEKcDvDEV`*6S2`xT{K6YcP)?mUw*H(rZPb>Dw3aLM#-oajf|Z}HNzm2}GqvpS*TQP zBt~BLw9A(ZuU@_4X1nWAcK>8K%yd#dXvb#OsvyJp*$LeoEA2;Bd?(~gh+IdxwdC&p z^ZnHK+aGwE>QdP9D_wkw`>bZIQh9xFy<~^ok}4Ak4o6sMP|d@A&cq8p zeN$iW@Zzt-FFfBD{AdeMbcrpQpOl_2KN*RY;dM@=q=ag+R*8IBIMf3;UEVN3^AOHs zf1Id;5D{v_*p-WJ>^yw&;a**VI;vVNyX2D?d{(3nEpO$wGjs%=-RX91bNgIF&J)^Cs&}bF;_uwZbYhW|IwR zUV_#w67e}1&wjrn=rhn{h^Q}?;g(k8{qMQC_HVdyn0`pGg>xlAp(R$!gdY>_3^Tla z`?f&}@rGoj)}HK-R!N^@iGb5MVa-voc$#mRIIA{<&C%_9CKJA84L#q3^z_xnS>X28k*~LI zX*}8#f0u|g%hn*rz#IXe9*v!3?SEV&wRY{=RNg;c@x-ICjSU<1VycO(=J_>QJ-ux^ zylQ6hyUDBDg03SS(@4w6w0%u!x(CGafG2G|g1-hF;`kb2T{PLJJOANf+S=vonYKBG z1FwDVFRj96&`}Je|9pjW@l(2Z~^2;ru3EKfYW7O!1uRi6?MTQfi(V0AqfC zhFo1|mCWJp-X$CrE-D7}KX;7fsZ4m~Ew*xP|IW@%0)f;>P51MbZ&Mz-Hdx^L-GC$R ztR_cNdb%ynZoTB_iP4Or`MGK5zDCRGfP2nEEr+++z7T9W&97hLyIU?KQ?W&+eANK; zT@E-E4-(&j>wbK-JEaCs%6O)#CY>t8+fKB&58XJ-6z=QCrxbeP_=W_LcBNH70CzpG zk#%`vCtu2h>wVSCws_Cz++6$Eq{htA0XVrMZ1ovL$40nSrt9}kN37sO=ELmlM$`14 zr-Asl>z&(CAQ@keOFT5>C82%OL&eb&t|J6E`1FL2dh=eJtEhhvE*bgyvPQHka=85xQsQA{ zXB4r~3w!n)3vXOMaM}VF{Y0Oe)?(S4CpDB<)m^n_ zCu_V@`=3q6{KZ#8x18d4fY{;9S(W)?^zHHUSGT{8mTo04zplUF-bmOLA7#Sh;^N*a zigUd?yn{i=BH{Bhh6E}`HbyoIyO%QbOWw{eVefE^k?$yDuwKLO^`lOX^rV`CubM~| z3l{c}PruZk7IemJ zqS;>Cn1X&`QxVbwJQRZ-CM7Xot9*(E5%x9X3xaF*adnIIh)`bF!WBfY+|f!yCPD+n z`Ae4=ox)zOVSfI%wQ;=Oxc`qGNMdSXKdvD<&`JS3yKIV)>j zq6G@#`ATm(mljh~FC<@^wLw8r_A+#5J&m$Vm04#p*uD!qAd*)lu+xWx6?;1(RefWrIYbUP6 zIucquvwNTJ1VDUpJ!QPXT_=Fqw{Z&jy@^Rqt)3Hn>*42}-S-2pDSigtsUKOzNVvxS z*i4B>sYO%0{{3Yl0J+_PZj)a_wVIYwaJ-fY=YEH*R~^p39X8GXTI7CP>#BYneW;FG z52`_a@3|S2G5y-uc$L%egiu|tNgQ^xL)}rv^;w}shA&Z{%wRKxZI^e(TspGNq|;~Vx?DKueYO!)_nq%m{!&m-pr+&Y zKoM-6`{iOn8+K&#Th+oQ9rq~v*P`oDIF0taZA#VdtG;DY=6;LRTk|?X*m~y2H@ed{ z&zRi%m7XQ~wM>FX2>WPVEZLj&g#Li&V&p2>QLXsgB+~W}Q^?#kHw}K{>dRB9wDkR) zQ&Qi$q~|9a)O0Nw=j0sUGKkuB@JfpVSMzV!%%$1kgi-`NOs~ib=a^F|nhg)z{ql;2 zU~W&k?l83ad{#QlIM#9Nc=o8*r}xW%WmQ)pPcTS(&FqPf-1s)_l;uEPUn(}yw68BO zC3Lj77uivZ=+G4M|(|Gem?+gMRl-# zC-v|aZIm^d+dRUSKEJenySP(7Hdp_7-0O?MoN9`9Bqj-9 zW1G!W%KL||y1|C;%T>4pE!Gk=8@*6>5l0&nz}*Y$3yb)2?-G+6eBBG1k1`=~ z-v;E{nBI|s82S2mj`^f~#@^Oq@7Q%B;kp7=?=#4C4~{BXvsFjPpvJwgbGR=;_n2(d z)hNCfSH@P4TsS)(+%V-owCPopc+LyMgp?G|kxDiK|L{0ArD)}RuaTaAdt5q;lSaj# zmh5!qQ=a2-$+3E1)x;kii4Px6evh7)0Lqz~n#v?xy{Ff^R89ALSIy9f64)ffCHeWt z;r#LBvNZ!5;IRw?C7n>H>@vIC{@|A4Z65stFAtNzcL1fU>V9cxXi&gjSM%3g8QPi0 zxK+gFv$pf6EThVe4V1h22z=m*Tv^4Lwr03GseWt4QHBId3k$+{Cq9^`B^DfAvt7yq zUcP5`OsRYoBijJr-7!~$Cg&eH!U6&kV45h6%QrjLD;<6XqQZfm0P>7KX1>>uif2Z` zHq-Uo{^ay=;Ewy?B#?5Qdu5MzY|=cfu4nK_hSKPm;Ydg2H?AFz53)sj*g2RC_uusp zjb^7=^~m9vLCrpgkJ0=luW8jz*J6i^oWfVE*)lv)JnxBceYfSv(4&jI!q&i;2` z?$_qW*Gv7-8~*%EHLZ$9QRLoNcZUfvqMD#Oi12cSp8uNoVD1a43d8^>gelVL+&7JK zFol#flRK_)%H=e!u<7}U`MK7kXU>Cc9IOiFl-v(w8%(n#@@%YJC~Hc;qoX6KaI_Al zeLJM+JHY4n_a@O<{YE#smNR_%J_OH{nO$CR5Qt{0pqa|cA5Y*OVEY=>SAO2%MoDVglB!O0c1tQ`Sm;Nh-p6XjD%`zz;@la{5W zrT>R0(wZ}Yq&1mo$&G3r@!ii>Y_}L9X%~CVq7=Q8u$mFii){=)zbyl7V)bpozKWfJ z@-Jxy;Ez+l7IlulPx}+jASzEe%44L`FENckzSv!h*>79KUi$MGFL-+pO zX@cRMF9TD{W^dtKBRK(fZvCghyVUYP)($;&1lV+3pOw(%_*OwUMYmXrD>QOWEpJNq zTSF57#mOp40U(|7>+e1tode^Ns-53>-jwwLXmq>4epd>DVnOruBai$cxG$OG;~Ew6T}kF!YG z0hIiv5B<*9hgY2HK=t!5EzS8YjjtjAuPiX!IBd_a#r^H{ndv6)*`|a`TO7G93Lne| zhfEQN0dG&!%6sp`L}fV7M&7DP zf4&zS%?%){tyPd0(nta-#WG_}CFI+od(bhbNKQdOklp z?_8D2B-v_!5*OPf>!xw zYFTom*p=?ERS5_PAhxg?N_&m=HuS}Y>Kq$Mh+Z(s^v0&f6s?cb?$NHD;q_TX$kV0# z7wW((0-dP`c#qZ|R!et~3)w5$|LD0>Rc7(bR}vgg!z_4gY%B*=wBn>q_q|JT7@dGsqmKx>goH(H@Xlv}fJR86JhL{i4+1VYz(ksJw{SfUj;+G%I9JJ9cf2smO7B53C|5rcS%o|eLCq-#b=r>lqQ1NmB# zio{wDg2Y~5-C=1%kcXLPZZz)dkRUiab*0YK{6YWeHK(0FIl=&kbp=v2vpC$A$Bzzt zL18-d`EhaY$OX!QZ$Cl8*xp&h40Q5LBX_@zF{!!p*!Y#*QeVcZE`L6NC|F8f+7C|ugxtGU#>Gu)&kH0j9` z(WjTs#K@3TEUh~q(tOIB9v{e8=GL~W+a3luoxFsq*5`SrA4qfikmL zN2(WE6!Jd&HpoBmws)NX+j|&eEp5Suv)OYwGqMp4EYN%1fFBY78_L?XlJ4V?{3h4j znH~0Cq9NEGhgFu2XwXHciA98KmhrA~8*A$3d*)CnAx94@(@3gGy*cW?no#?Km zj-TR>N26!=WbNt$D|T3Gk-)4on?qP|OIQLa#J%)inm_l==>8{EeQoVeV1>dzhHtK2<=qwKT=#BE`8CFT8u5WlFm4{-UkU$; z-dqT#LQi`Xf`CNXC$(x<9oY8FAJit1<~CVJu`9>v=^|YS#m&B*IR(fVA?|Edmnx>a zdGwRz6Qsl4`U z;+pd@>?RLCY1_XNyhC!>i@MOFrQnHLnofGiEa2d3jhKrUFA~*h*QeBOPxP+od(18Z z!=}yIB~dP2j+ScmBA)IwpPd?`H+SAW^|5s>PUFVGMb>#qvY;E@H_rU76BqDMLSybeohB)QKv}`pg*{e&3i8ekE2z>-MOzslGI}j=vZC`5d+8 zTnNh89qw0C9eLTF8)woOnK{iNr`axG`W|zKYhP@^KyLjh1%+3rp0E2RDb90h&!(yO znIllu>hhYrj_jVQ*701sP2>@|i!PAi-kFL4#4-xQi>Q&PPo;XKsx>`J8M?IH>xdVF z2V$klDWw%mE}zk7Uko%6HB(iSd&3*I>tvC3s1e4%(uMLpB?$o#>m|C;EQc9B2b95* zlC4{d!ac0RgspY#xF!BDiu*26BVZ5mw;#}QRaau|6??McklT2FxNna0Y?{MZu|Z0j zB=R(z8>m9<6oYnb>Jrn9O z4NvRKI(KlLLuA3_K9O+t`<|*@vLUa#TZ`v`dYdIBBA>@c9!E}}_QPmjs_ z37~A7nrzD%L%(cpDs-Pf(dYK&go+efRefXQIwlE`!E@5n{g3tize8&=fNHUY`-5A@ zjl&y1j)JOugo-oq{x$rS=c4PqQuRdgkF=}WGw8)Nh3M!pX{T@{a-oL-q~E0LE%~&) z7gS4X1@Fh3+45l7vo@K4_d`FxgY1pIHm2)R5-Zsj$dQA@?3-k`=6oSnt zAd80`aLUoCn?I>r$!phfWWf@;8s&)gVRLK?Ocrjj>8=RMfA1g9w>N+N5W$)YuxBJx zh<2GeRj|S9NYS55J?betKOsHWF5NtlEsR{1mnXJXq2eI=mFX3LK3J=#kBMsE#fRk8 z!?K3i1NlQmS~*q?+426Bh!) zo{wE8rjK<8?2Vd0^CR!xy=Pbd(j>dYRD(e4jthM{_+SC0^d@-_{%5k*@~dS`HQtUv zkL|@BN%vHpLa}|e05DDQ$G1=9Tq^{z;%DZ7yt;J7Iu%lEK1!sYabWVTh<&GgPX4$D z*vqY3!xtM|wCj*1pAQw!d!e&8{M4)ltT0UdZYe0~bBZs&`}2irJ8AeF zuE%j|KU_L~;j}EOuB6^3bOe6YX`%7QoBGj!<0@98yl^Fz{jt~V6tL^tfmB0~ENNAD zRxTv(hiU#U+KcNL-5ONY zkV6NFERVMY!A5wdsC}o*j;TOW(GP>s`MfU|8Lo--Cg2oL%?{E@%51D_Blwxb$m9A`Hhn`9>*!KIIX2M4WuIRy_z4O9|YmyEVE&>@quEn2iB(qg@vP?KA7s%iwn7p zp0T`YvCzhFim9Gx_1>nY9wQqd;p{tb@M4Y* zbWn5H#+V4R3f9ez2Q@>E2ITuFv9WZtPwUQ)>E6Gi0wN-OMKQ{7qEu1UIQbRaL#kWA z#|*MuJ>?qZ7L1*6a@aw@v8|Lq%%eZ3PoJ;lyuJu2A3LvuZ`GoOkeGA1+flOjoFqum zwBk9pdW}2$CW;QPwHl8Ev<%-*eXj~p8A6HL1T&oPUH7L$0W=^F&((dkmkmcZ0t_(M z(_1}v&#z1Ttk2d({Um`?5LzviOy+12rQ{?s61W6jZv(j#(MoQRoJ&k&9r!z72m9XA zP*%3bMi+r%uQlIiUYu@d-k3~8KCdhxH4DuZdTJ z<~W&h>J3P{m)!aN2v%IP^f~Bwpv=CuRWMO==zDFgnXOSUfhka606Y*45}v?VWCC%y zrQYCjw}Zh3pMI)sD1cGr83G4)UU!Tc?XKP&l?j$BitW7jmi^c$TYj{Bk5XouZ&Agm z253D9KyP=^N-afG5X~4f%UmW#Z$rcT;=7D2VyZ#c>IQ37fj{H7ZYi*9=|GR+li9$P zVc65ff{uln>=+aXSSJ|MtnBRU>I|8hS%j@f+*Wl@DMW?ce$U7Gpu0&;<#tNYVb zNwjdBHE*0uKK*2bkn*Um-Z++;C9=Pwu2Bv>h!$kDC9Ox-N&WatU{RLXGgek!K(upB z^HaKK18l%wbwH^GV9}t~fmj-i43HhI`sg(15L49<8{KS+@UCkoR_2b?p|e6SNpJ3b z%2*wAAtHA%-kj*UnFZtDy{O_~r~cq_R6m%&YM6~57VlB0a$!>-w5JZsi|rh_3fvE{3M_tg&mkFG65{;2UBwKd}YJ92?|Jan~|w(_%LZ4g_UWz zp!$A-w1kDxHcTb)hOY>Hk zehMM&ETVA~kE;Ds$`#9)?hUgH%AWSTS5#71vD_Izux#R10|XJv*KFC4E5msz`Av7l zlWKXQW&IKBKmSS6ZLF8JmD3Yd+q-nbrN_^$aav5Ys_<(A@|b+9<_l=tOc04ZPDC2CD^d_+Tt?duKY<-tP9U6ACKRNqSFq{p z#9ldkuc$2>VCLzqX+y>%7W8u4BwTF5GJIzWmX*vFop_Xb4U9ft37XbR=Hmp>>8lE1 z89rG@$UJ)+lFqBXg@R{`ok9=TO>fKh$+dOYzCPX*zvv#1QbGw^%6*w-Q0fnBl{UJE z?TzmN?plp&kdYyB+KwRYF>KN}MJaccZ7M`*{Bo zP&2(PCrb*J=6F0=Ai1YTo|8?yU#xjdt6kqieIk+wVQ*A8R z8Q?mVmEU6Nbe%=D;Bcs@H~T(}B6@rs{k}XG>J|uxVShg178k>p_0iXvJcgg?Q6>MF z3w{vl$474AG?MtD$soAXY#;gko zY7EY6nb0&^^xn+rp7>}YdFie1d#D`0oKw@%a)4-7JNvVCEF1CY2N_H!zL;XYg#=WHvi|RwCICdHK#Ts4{ zH3lnsmikAteGQfSGZ!$vf|5IGb})dd-?Gb+7dhZ*!=~9*LJ26}LzFJn3q(H}yN9l9 zshy%e{bNe=k>36=1EhiTcf>*W=2;+QMS-Zw;^5x5{wpM@2~||0PW|sF8gc-QhG~V- zWl^VY$WYU3u-*eAnbKH11(FmZzl{aA5Q-8ohrX^lgm49a^O}rXLYc4BAlpg=tO!1MuOF65Sy<2@x)d7R<$|tchHKDoYJUd=?Z3#T!>G%qnbF;1QW{f1TjWZy3X0$}*qLaw!%-S+*^D_m9D%IkmUGGY34hn99|DCu+sz7tVn(? z4HLB=TQ2{#v+WM8N@*Q51Z;z1gTtq6(?23$STbKlmlyow*tP(qj;`3{NF@`N;B zi?xRu(6G9L*3A$!z^2-=7kOapG|sPDY@V;@2^x6q+(QVy zMyBN>8ve?j4@qOH3FD1&DKz9n^}25Q4^Vkf3^5>_zFm$!X{neJYuw3gNL#ksv8A&) z7VmHRPTfXa^qD4RjbbqQMVnEyam*kaBHME97T}uJrALr33?Xd-m(&bArTIEIY4^S} zW@f!0K9U>Uo>9^Hl9~YDx0&CIiGR>nj%`0U7Cbx*fWOSe2_3RZKMwa~ak^;K@E`78 z4=3br`Z4mcYqp8l;I`?fPNf!|xkAtvwxL9>c;&$$Y^Y7VOYpL1(7HDvRBZkn+>X3i zH&qc&K|@}LE?wBVIb^jpHr`u=txntZ5@fe+s59*K?R?$*Y7JdKH{N{AR&(cl+K1kT=zW0!xURoujX!*Kafok*sm^p zq5B-c_ZO9n4}KCC)f(C#z9`mLIp*{A!-&v{X=u<&wOgQyDi6q|vmLuIwfY-NM4%rZ zY%gsDHl!22`7`n@^m`A*S;W>;*sFm+zY1i8a>sVzYce=>q$z151+M}ss z^#K|_v<{jf+wq!WV|$C*{5jz^y%|Tx1T_FlDW`6tp&J?SbCcCU0)0d>YL`+%x8_XW zR@zm6O&k`ieDAitYH=c`(h;FyMM7Eu*DNu*@E!(O;pd*4)bVF0q#K1@4!IEoR zcn>f@$GoXeCR}8l*JyXG?e-Z!n>z_p=vx^!i|>?yT4^^X_0sglf)nT-qqxK^(Uq!M zFcWjcsJWea5A(bXR@>^{0$;aYHx&uC)Kg;+{5Mo(4zploy%LIU(ueHT*!Y=J5)$-f zA)e@be50KNEl|IlNT+utaqdP(#Hv38yH3aOiY1|;cO|O;&#~_On2Yo&=lL*g*GeI! zxZYIIC%M%5DEH1_rxVqJL_4k@Y?Jzd#35*^>I5B7xpptc7ka&Wys47XWD3K$PUrGS z52>jjLutQ-gMbqSU!UiD(piDYzM5Cnb@dR|YO5Ops!F}UC4E7#1&iJXF7ER5-m&gl zL#X^#?R6h5*`WIn61nA;*DZ)h0<0W&ex2AE7_~kJr}fgT8_+WIG>)J%U-O4~L~OTP z(x1BVJ?3YYA6Xac3~86{%3<@S*^jC=&{ju{-{1de=Mg)HfxNV} zH`hWO43(@1)ZgXM*q(1tYk?MT=3AimmHdhjr@i2r8$uDx5iVwnA0gdQSTjTN)wKM= zwu_@yg`=41D);O_QR1+K(+b@hN-MwGt7@33OuAm25(@D+A`;QYT__!jz>Kinafxx{ zGE-C8@lA`wNNn()rXSzh&ufQ-p0=w5QG1#I(c2T#e0>2|DYU|iam}=<@!$4j3zZeDUD&U2U&aUwa5pk3^ z5B6v)u|74Q!C73d)}*$Pi^P}<;cbLUTZW*2%w6w0YX>qBb2Sx6gC-1dnWt|xXevPg zRJ6)f0h0&c!AF~ibDu}$dZ{-lk4R*CExjO2Z)wbQuiep@LDI^W=ijw-F*-OXL`!*= z6nk{o+#Sa~uH{#RZ;u~lNhKieu@?arcUY^gFiDCHjz|GWZ)Fw@YVqSEW(1oL&mm^+ zdfZ6FA2b!AdFzJN(%OkCvF4E>!JxnjZKg`mnA29OEM`p-RARM*ZjGvFZ$9K%;N=J* zG^8cmkUkJ5kR=}>#5JfqirSgC(nJs3yI)#=t%43#x}eA0vxk_a1(LdymbQ(1))S%S zg?2}y>x&Slem*(dM1np5h4_IOrKCo51qX)!{``7NO6WSt(Koq)9x(OF5St2hvgViCwJR%SO3@3t(2BXwr2R&webvx>c|jVZCbR$is!L zx*{}!u4-4@v6ep?{hMl=z1Q-Z5-{)Rq%-%%%4IQ>h$ z*!2w3o;L0w=!g<=`g^pM;?mR8&=lJvqnEP zv%v3l7vSHB%~xnslEE9|@Il8CNk#&ky0Ev63P7SX?cO(i1xk-mNEA={jr zZ9%sfW^r&{TAD>EwOU^DMj<+oNPOfN`49M}AxO=i4(Aa;!Xc&_>Xde=emU+ZyVA27 z-@SW>hNF5w@kgut9>PZCgHU1C>zIlf^oR~Xgyvlo|OiZb>gqlRG zdy)Cih_K3gSX5NxKNkEvw%A_XNKPCCKI%8M&3&900QTMV1lS@yBnKS)g0^Xzof{qFtC<^Az-i>Vyt2t%-@ZDSvWh5WZUx~GF+v$bqs5l0)Y?wXxsewqxd*DwfJs6f?`A^NaL8l z4uoHI;8Hbb+3b$)yVqHewTkcKq7(n#{fP5BX1``Tbf4M8GcJRr;3EFKk=)3YF=+52DexfF}xdgiA62)4_v~!13MF*8!&^zGdnhPUuL>0|%%E*9SmiE%=3Y0%P#y+O{~i;y_(MV3i zmjrA)*#Qq{9%MNlA*8^t33 zuvWQHth(S~QCKeo{m*^)xBj7>)(8)Y#Rf!I@#2M?X!cu?)OJ7usJt{J8_;Lm3Qxm` zB#ro1Yl*5=YPysqkjb{y-g@rLwZGefP&q&xTLw7i zTB!tG^?ZsD4@kI;Or}yrP5)98^TR6%MHko0YxD_%N@W4L*KT2NO+9bCdM^{6(ALI{ z(*IW0{t?#L#R4mG{-(B;7K3xCHY6p)X2x9c<9jfAOl~AlnCS3_eXAsR4v!vC0D@=U zFc&kjddJAik*T!W68u4}dFTuD;c4{wRQhSv2nHQ zC%1=!5&&0}%Q>KbY=X2z@2lCFGr35Ivu5uwzq?H5dcbC`58$8ePEtWAckLM`VV=@s zj_6*ykG`;kw)~f`-$?Q!j_yquuOVKw;oZBiGJGF_A(Q`U+uy7-k@r>(+ZWN2EA9oQ zveQh+gcIrD3vClLpU$PFnS&QV68KxlhG%B(J;_E)KLHvO+IoufA!s(QQjWn8);74j z7hk_ij67dj89XcsDuT&}m*L?}y?g{Wz|_n6G-A1?fX0u7V|{;zU0GR~9|;xhHpdT{ zrubftWA5bta=wB}adl`8?12^HOBE8roEVQaDL<8=m*oy4;{3zHI;UeZP87h~>v%2_ zfp`V`OQL$xdrDDE7l(N8r7K(uEq91JE01bBpmUG95Q8tyoI)s<<%9MIuy!rLNz)ZX z(-3%W3Unk0_7wyN43Y!orO88lWkS>?7OjN|1i;D+bzRiqlbuc+O5^7rB9 zW$T!Qv)>w}vO6yyR7<}H(ZPgdjIyP~H`2PWej^xp`iY|nkeVXH7;u$>0!KGrcQXA^ z5K?q8Gu>YGVMqXlqy>oq?mfzJ0>Z-iTnwy?xwW?!g5AuR6H>7Qn zTmkjyM;Ku|htlhXTl-bvHqH_(5+r_4Xvs#ls$IqUsH?`1QG3uX^y>YJwi!Woxn~gW zTR6q1#0t?X*Nytc?iUsbB-1a!kfmZoYD*x{Aw01qjrj`~W?6!ysN{o`I`EYttX0=P zaB|VokXbPBXV%>iet-%9>Yt5hT`7(vqCMb%=1zQ+lcpC(H>A1d zdy0Ox1_=Nh=EwKT1CjMMeftNGyUg)=npWjBk}EyNLz;_?uoN?Mb983ILK6n@#RfH!N@$a#0&BMNqPg7-_?+o(nW)IB4R)gzQ69>lI) zO;CPl_GhfXw~)+BH5$%g8Z&g*UklQTuy~)>M=&TS>dyOk?B)j6cZisTB7abs7oz6_ ziP-@k?jb@!kvHPcnYsm|ZEz4FQ168F1YgO6KCUu)TquEQTqfi`HOg56-!c#*MWDKk zyi(;~<{@ICvrW<>r9c1gk8&l?E=kDYer8GntR$BgfGNg_7U4K@If>cQw+Ql_RWEo! z7+g9>OD-wuXmxn25G?iq19?Lz(Ho}r4<_8d<_2n`^L11{tgT-A))_iaOJ{cC9!FvDL>wgjP_LdpC7^Sr00 z&4}{?>Isi6rbdA-@ppkf75xRM5Bv?Bv~htzYYS&ret&*D#+#Zi6+#CFgwJ4I@Ye*r z3)=OlyWTg-*~$kIxsoXFWt<=79xp{{qI2V*cAkUjXWh?U_<}CQXsN=75BDr}E?xup zq?3@A77ZQ_X%OEB5gD%QZEj|!DZP^ys<&gFvEODQq3&YM0G)oHceUwyVod%NcJrTt zCt*s1ENR;Lrx`k91N+Tx>(0=j!6BVl~8H)qDV;@0po$5G2%Kdy!ueeaQ z9B7&(jBnQJyj|Vm&nFA@L_azr=<3)*ClWQj-3J_dD~5xixki>ciJ9C~zJ;wcT10RE z+Ab@%or(plDpm=)ho(7u-)aJ%R6hL)A(a5SgRl;J(iZaNg>E@S=h-F zbNjiqviH7QZwXT1#)RFGqW_M1{nmB--*XHVrH42JG&K-( z9KP`4g(p8f=I=|_&z)Z{b$R*`CY>j7*7PQke{}}ym^?ty6j>OC*uIj+qA=6*9fS|< zQVgicxW1ntKroLo4UqsFd!{w=rpYdSv5Xfnw2YjM<}|rJL8*9l!1}GAS|=d9z^`*A zMkZ~eqamuxTSv8H;OB6_p0;W7*94%s$(8dY zIg;0${zwl{$grSN$*c-aDS^zyBX^ zmxf9tm86gnitJTM*?WYLknBz7X&9l9t;pUh;h2XaTlPL?2!~_uanA4YQeD^e`FyYI z^ZV<2`~LH(_pMvEZg1zj#`F0Y_s9Kye{x<0R|DGg?gX&T>IH2rG&&qG!Um;%3g9Fp zkt~QB^3N(YgrVyco^#(w_1$A#ou^GP`qPQw>YF8xjcS_yay{Uc;ww5*l>lc&c)Vse zCUk-9;CklS3K>MD#US!Wfafktk1aT``J)wJ#!sMqZzLK3vn_a^Z~!4iQi4c5|% zf`CxiAb2~$a1#0v7*l{28h9?3)=uANzXX(-+W7(YX3%n8x&l&xk04eBj$ufo1ZQS+ zFhZ_|eMQb~-hXbGaH`!N?E1i(%r-Yp+GjoP<~1EDwa|ZUh)JLk{8ZQ=pj&a^#Epr4 zEag0KmX|>j?6$O?84)gQqe8qkvZ9!O5S9X08~_qwJ zYC5yP_C9&h0_%1b^-`CNxoK4)!whD6v7Uq9{|L9}Lz^Xs_ z3CzRUCXU4OL=^hZLq*oGJpj&96eQ3qofmSleL<~<8tG7y0pkz;a8>9g(G;%l>3w<@zyB z9NB+;3=LgpBeEb;W1t}LhiV2_dFUh3A}Oti`6Hk#Kd=hb_s*UKAlI7fuG4Q-x`o_-!di!fJ)x1$D5VP$`sE94C>8Kv4iF+MdyCnZm?v zo8R-_V#JdKBD7U>BBaGUyO&2V+xW4o*a7T*;L)zww)`W$*_wM(;ZPoD}6BH`(3AW zc)+&f{<@ zqbwDO&T(zwBxq<9qH9>e@9Qh86)22h-Cmp-&V&c64pv5xlr9bzt-^b<-#D`0bY&fY z!ikX&d2!M%gOKR<*ccGNqvKDYnt*+AbUu=r+caFv;Bw-Bi2g1>h=5x8QjA(T;JBIo zu*7bBtqP6oPAIaOIK(&yZ=PD`G&oX_#~jHVI?eD6VL>=J0)4o%r6mRmgKwmR_ox=3 zh_7h2u}3U0_V_PC-YID~j0ncRyFQ0mT5}~A6}&jxaiW?jqA<`$CjpSkFnf%vE0gaX zEYl}sc26CSK7oclOG5nW|4To$4$Rw`~vnzQH-MzEYRUC+Z?%Z zII*fNQL4lx1(@;o`@JYJuYQfpQUa_7*^9AE5z&Bn54<*l>1|HeFw~E`+UQM5tvAJu zpm#YwpYo0n+SjL{mISGRga94bzpD~dZh^eZRdz$t^z(bV9nSOhd;SIQI-zJa%y66_Jx3@*eb_55x^YkLMLp>9&* zeUyTvTq{f`Z!sdSObB7Y=iGn8%{K2v?9r*pe~wE{z9pn_5tIT}I!Lb2%-HIqGya?b z=^bK3&RM!fPjy5you+L7rR-iel@s#}*~Hy0{u3IR=#oQ!fAN-n1v>as1+wssL<{}l#V}OywOp&mTWTSRWUPzh4#sx|g@Wd*wUqkAn z8m&mc%(U!#>1SU7;FCE%QO&FhBOxKmn0h}L8z9LUV3}Xu9G{Br(ynQ;!*+832L6fd zm(Ja!E8vs)ZtF-n;3;&<^)Roa0XXbN6~YGl$s(2w$ZvA#wa>0Fj?&Fhjr&~AEGY-iDw}RRL z+P(G2JFUk2Jjk>N*v`R1oGe(I;La|ADC!ue^eP1OLyS!@K;9ob4q}I_Cn2y1jUa>{ zk#Cd;Vwif%Xg&P8Any1^@B|20O?$1uq2$0;F{ZHqgp;KRH@cI>0OlQ5l$<@V?B;IY zLMBav4-p;2!)tyQ{&XEktX%C8f>IxtVTx87aa)eSqtx_wfj&?NARiEaB8s$s({?Uk z;hBOdpH4`d5EKx)oAW@=ino7|KHd=KRWzUW{3;@Ls|dD&zJi4F_9{FoeWO7+1>G)w z#JUBl8DzXRzng`|?c=0@lMi(!^~^*uU{7ZKg*lP?k=QdTTstYNIUwon!tNwI(RZ~)^(bY8~S zgWK?O?4cpP@y-M$&bsvgx$**fy@ww0zL~al51`3JU>AQ6U+Gn}4Wp!uuVU$$nLCIv z)=U?o&V4NA3>4Q&avV(3OrJeFqHfaayn+<&Nwz@s@1Rl`n?GzJMzzS~#Zr$9rU7Fe zV9Fpl!w~G)1JJSe)@7Lft7c*@!R#a(Dv}#^rvYcKmADo~ZlaFJ66oi%AgYqvS?ERC z|LKK*w|#m3D&j3?7Qqt4sNg^VM~&W*X{TXr5#{&4oh-?3{?}R2g%%J8ol24iETsgt z_Un-84<=cylj|NxlI#)8gm&}*iyG9X{pD1qb1?EZ-VvvN0Z+jWws4Q@)gJyf2xbp1 zIqHX7pMcCRU9?<|jIFEVL+=v6zHd$q2sb@Ug^Sl>q@#s}zFMgo{1jX6FUO;?uR6tQ zy*aGpVrN_95!OnOy&5uR%1AUqSVDcV!2$pWBH@FK-3SixPcwP#KhtI)Q^f|^-3>np5J3&6bg*5?C%eoy5a zERrtwtMvmB?@Wd*Vp0tyX8*X4G3!`=5)}8i-AoFh3Ya#^Q=dUzM_l(O_N1O~;vIdv zD7AnvE+RyBpmy-eh?;!2hDemuslP#eMVJGI-A}eA=o4|%(`W1~iU0@HV_gJo-LAfJ zQ_}7s05t1{3+2SE@&{{UX<@F=njy}Z$z@qZK&Y;myT^V69BQxryR|vnzdG4EnprUD zlg-PS22FWyKA^%;NlSI``QVYzI0S|2Y1;5i6LEa4C)xRhVa?Vmhhb2s^lDxvd0b(ECYwFQ=;{ z{mI+8Och)GDX5{Gp7jabElZ?)U@(b!9`AcLyjzqmQs~ zu5|u{hN819FZ-;@OfM)Ic7O*16Bn}xF~n{USs?4zM$RI{q=L)*r!b~!i3S6Z0)Vf0 zeQ6jxe}sY7U#O-d_lr_ZMO|_;uU&QvdW{B=b-;dUpza&-Cqn*3LN)WHQkVfI@4-e-C97xQXxY0TtvMznjp?}vH=kz7J`m)Z5Lz^!5*{@rKjILbA;C+1MZEzm{G zz(>q<$QnYS_>tcZ2U9uiDr^Pd^_t&?5{p*_I*uHHKCXvG$}3k2|F~z{mRp4_Ws7ZrzC@rargwgCI*CtAg3(4bJ(9w17oFzgG>)f4%gPfX9-)cIs zACVBo5yTHpvnYo6&ozT=ee&i&ON;#EwzeQ}ta=eUJ!I07tc^(J%3=|ZGunpd@Qn~( zu_2gkA5WmUcs>$Y1i(7|r%*d2TsWP>${m66`3&YDC4*-Bln@%xk%I8*UO{1(oTr=B zd@H9FBoQFMy>sesB@)0hezHATF8uY|Vti|k<7BmK4kh=mH^BV zC#b1Gu&uE0^IoZhj*1QIYZ2*zJGcLg0mUeEKq(T zswgi~>hl;bG1u)hkpXz!2(^bjM;`{hh`BhFWFI50OoNN)6t9tvqlu2Jbr`B)jUeg` zMi>co!335j$RT8kR^uL^X)oQc=1qLox`A_-_t-t^k;dz{0k%-@)zN2oN0`e|}H%-Xt z7IDOGpd2C0>PeIfxJ#V`Q}<$?q z_)LVUdmxm9jwAf5k0wau;5Y?k`PPpkefcIxw@7=~0yvB{>`5rc)}VLT2l`WMonu7V;-fS6bU21$Xd5vPJz{{P;&fC=~s4x-%I z-23|azP&zdaz_jg`v{9^FkMMi_0@zr1(a9HcajlEN21X1ckJhxg&NuureY5%f`1~-$cA)ndd461$!|Wv zQ=ge*uh|?T_qAIw2T>S6_WQITV@PLda!zp!Noj+a68nyCCok2J=R>wH*XA;t`;+DG zQ6pLY8Vq?5w`6#&x`QmTU}t!(w1Gi3@?q6|9+2;Xkw}^c*$G%vptdJ*kOFuYPOv!y z?Etd?<(xd|Zy->N(1*T7w4oqEx^l>vQ%N5&0tc5;77KiX#H_M~J%B&j&Wv995`9Q$ z3DU8G?XvPwH62n=7EbBVN_m@#K3qrBJ*tXFMjKYOv|ig#n15q7ha}1%=YW{lD-77L zK?jrWp@dAlUfr2Rz z8=DBGb6*b8xXj-%EHi0>ER@EBfhIQP4K+BjI9bm|{Emz#&W5sTuFeq&bGW!nogJJS zu#%S!u>gK3Y4AV1HX|rpCp^4-o|&2=zAX8vwcyLro*#yY$`QGcpjt07;CZTfbSL{Q zf)r91iXl(T(Gq|iWrH8JlOFTXSlbaw9)t2v;+d<$n!J|nV_1vcf2#?e1h4^z*Lly* zG#iRI)?EF|LH}A*se_pV{NAe9+_DaovI1z5hlj^`Bvuh9DRN*B5y_JdQj-LeQ0eIa z9rFS$8VIexnLvgG5q~#c1X3pb_{gJ{zNwn^s0cc*bPu*3klv7;9|qAxrSbm`he8gm=wr(TQ1yz|#3+W%FoUL%snk6<{l}zrJCeBx(&o|8)`Z2QW3wFh9}s zNvI?#>Ase27lcl-wnNwCK4lz2jli%-YWQzyFd_O{CqF%S0%fB)wJ=M3%(A!=U@X zYHI+$EM)%4kU)kc-Rn_UKnx>+K4(Q__3oo^fY1s+C3FTp9_aF&GCJQZqEwJ%8jCA zJfu#jG90;aS>T2agqd2=%mL_f0W;dv@rj&&&7 z^S%pWZ_kFOoZp6BdQxEKb7VmVlyN&?+8{CW_f@Ohf{+4`AWwAX`>$EIzW;+q`R^0! z5qWo5t%&=3s=!7$Fm+MuBZt}f?!K4@7gYtLoX<#4N4iIA zY@r{}+d&)4u<;2Y-DfWh;yghV!K4-fL3;~5LpJFOt~+G5Q4|J>-zne00%bp5+;4SM zx+YaxHMq5m;9Ttxa0R;mrvTzI@h>5zGW0#ABc~b>F9#r=bZV*tL{RNV{jpOn6{@HL zC^ZbTyGWsDgz{_}#bm8P3XG63@F7hs_qm4&M83W*9}p`GQ1Wml8uH?1fO>*Xyo~6) zlTJ5(;9_|h!VAlTu(LIhX$6c2l!>XS^!nc?FEI}b3z=R=WP3o=g^8IX&?XTE@Ggf0 zPUk^>1C6fT>NLm`P(V6J7|*+gO7NfQg?b5$!@@CJJun?1Kza1EWEQr){S`?4X3WgCzy<(NR(gP{3~X}1ix$mZ3tiJFK?elS!#I6Hh<5coU>z>?vab|C|kQilNC3!vthQe@ato zvK#4S()RR7E<1qv9G#004ot)_K&}}yb7%I1_7+xrc~dpDDS*wFpl|^E#YXWpMDcIX zi3Y7|2tcO}jUp@>Vo338u#*UA2BOAcFyFdlCj>gF4_W+L@VbDS6A>EJ4?r8zb77m& z>{X!0I<=;Q$am4D`V6_uz*7vv??pVw06CzoQ~7;N${?K=qCNm8$ojU3A(%5lq1(~Z zGl^HOHT;(`Bd6G^#~r@%S6&JKEW-qzpGMpn;eP1nO^LG(N;~E4fZIP><39(z zNScLCYf$mZgSBnwqZTFy8~Wo!&OJfk&QG z%bmjpG2UW!{9sQMEbH-Sy>W>7&j9A-0CPYiK`i(;b|XG6a27@D1z_(Y-j>Kn0E!za zEBm5ReWoT`s4-SM&%b(?x&70^pT80Y!Tks%vl1i-Q5IHr7t6bV#?R1kArK@?WyGsk zr=cbIB!VjQF(E>WDBY|&yK_nEk?GI=P_l zaLyNmyF|Q-6|QZ2UNDC0$o0MZh4@d`5aS$6vvy5s`O1F`png)}I35LkKNYk!Y6ce{b{?W30h{gfgyz)5mv z?d@FJSzU0hLMD3oXeK^@?|}t@=kgo_$`=BcK<^yTD9{O-KYLgtY%t}L$w!XEfy<%O zReX%qD1pS*ULq9wPfAqbH^th8dl8Tg)_`dp2`3D}r(^l0qg534iU7WumR-{e;soS{ zA(mU0Rw4FY7*0VBaJ212kkd05?lr_N`a~vZOOOKyK+hTcQso0cu29o|JPKLKx40R8 z%9%sXq9fb?lK`L2ZAzbAKJwu+2FE+jr*!VFOb&(nTRuBt+BVzv zIf%a0D5D;39@$;U0S%CCIVNh5wGGW=HPl-i?Jj?AGwb6R0E9rl`-$i+NDT7f;5ppT4_5CdXZz5pK$pSX95pA=zvw(b;gKZU_|lZ}|^ zKrz>By=0%-oI0y@$AiqoAPt?fqG{mN{!2;Cq)&~*g!v^6EvrV}Gib~yw#N|FK46GL z5c|71YDuZ4Iqr3@!mPszh)^fa-(pPiECmBLM4SvxxijGKio2TTgHZjTjYh^42oT{v z<&`z*PYuUqB4@ln8V8LRBKB6vsohH|Y*ca=kZ1a?MKr-&rm4y`kt#s?3seMCAcijm zF9?L_b+k+bj)^TtrYCU)!6_f=1uG_-F0Oe5Cw?4(VN)`|ZJ=cV>{hVR;wvNwzrlHg zi3xQ_w%s8YRm9ady-Sf5m+S(Ugq(B$*d7Wz$g6GDpoiRo)6CA;wG9E3-p{6USPN>0 zJ$t5H-pdTa8J^&&0CMCmSl-AXFf@?G>9Znppb$e)Wti;tLRz@AGY#;!TEkck!27%~ zW=1wFfV%KSQh-uULhQ`V{b3JL@*FHjzCKaSuTKU>9A*5s*y?T7LGOhOLxo z@|9dR__)c;ImnlCedyOk`LNaz_#c{jFABm??lzZ|y?V|Fl* zwE+R5{gp$C%s3nzja5F*;0W*9&a6Kk*b+b?_x*=q>9YEZj|+ylr-stjl=_l{Li(KuI1b zRl@}wW+BRv=YL4SgDg5T@t_#-2O{-=BXOWo&UbnBt3!ncq#{roa;LpdDT{L+fB?!5 z{sbUB8UZxW4Lp6~Pwmuzq6A^4BZ~;mje!b#E3{5pHfr}8J)*-FLFsI;95|1-Kf-h#GJ!0XjzePK`@6T!R=g0zX_d_Fbz+gTqt(?_hKR(HDI z9xeoWU%D3jydM`+E~36M)^90e_4kRqo%d`rrSe$^Ltf!@gGy|FeDJ??Bi3KX&=wABBGW z??>wci2V2O|NAxn`_TR`th8?z71er-q|^vSdL~JJdjq@39&`w>?75v)0wI5xn&O4& zO@%|Z=kA_N=1k%~%Rp#Gh2AQ0%k3wF?6p=owpF@8RK26j^uqiV4Q*}g4{T{D{FU>? zrw>1)W)#hhgi@AIz9|Nwj9Q`UmB6DjDOwf)=D~@3*5#G#xC- zJiCcYs9eX7_oHT806?Ee&W*LSEK%}{q*)V)RlY5cd@e@m-t{?wuXxL@eJpi9N*FM$<&=#VX1+!D-MB8pi0#_3p)~U()rxWXAAa)KXSEw%r3kx7kKV^p&l^-o!_fPdp+Q`~sMT%*&r>|U`G}*^UpaeHe%+BI z;{Az4Zm-}$vUmS?o~={VxkTppe%u7LxFdxY|jW8!h_`&($w7`!+Dz%GC_ zSJ)dyRx@B8p`l|qq;4}>O7aS+2HwpFMpZAS+H0* za<@}7$D0HDi%>HTM~drx>lhN*qP z=;UiMCzRXM+%|;U|bG9O@iI4P;nyDXf z{s6t3nP7Zst!oeS)nbwWdofhB9~*&mP_B>rU55~dPpFf=XgBd|TzNZoL+tOPOh+E2 zIr|>`07ulm%corroiR}CD5=FUZof^E^)EiFV#_r^urpxw%k)x$Z(b%f6Xc=i?8Jb|x)kAJ+%O&Ztd(4OC|F>iUCdDL8d!EC7JXG7p+Rn5m4bhXYuyOQOGVw1ylr7rqrr7CGIC;%g zrV)9b7G!R_&oe5oC`v9AV>-=n8kzOeB%jF|?1Hd5Q@?MBK{GeghH`en=#uh9|*-#Sm z#$1k`+QFC+B`S24aelhg!RzMa6oNq{MWpF0WkCV+Te{(zcU=K)9a_H(11x& zAEEfsH@VPcbkU(jwC@A5rrUNpt?`r(8Hsh#-xzUE1>lW*#!TjH$(#`{cYzdFC6fGk>Wz<==eii&HT zG}a=w7+qs&fNB;uox2hw6iFpRfnCOkwbDBZOory|(5THvFACV1c_sL=@m@43XGx2X zi&h{!*;wH4kKLZ4HtFjfxx$ZrbfQ(&B~JRqw573N`9*TqYCAK1I%&O(&7B)01+Nq@ zEr_vCrF_;am@V|X&uyDS9kMPb_Nl>)xQajA#X~F|lpvD&-`J$dNbUdhy3XyY&fMmk|4+n+!zHi)&QkRV-i@ak*G3*oH;C0?+s|?2gJM36h)W^)%+F!WFSF zNy!2(Z_*OH-C!@yM8GU%*)=Rs&@?dbg0-rE3CSG8nC@_`-c3GC6>ha7P~;WmFKVuw z{8KCJvy3Cu*NdHPi(bcEW-oHetOqI!v+cW|w=jzZHSC^=f42^cX)1Pd{`>r< zah8vI5sJBVs*;q*q=z53=Xph?JyfLkyf8hTCJfl>&bj)egz~G4s!Ot)c0EnaCk>+B zp+~RoOq02irMZbnS7gQnGp}#d#1eDDzP;HzO7oCvKPu(Nsbr6{d#Vzp%EC$i3lT2Ho1qPE*wDP`7OcZ@7TrI&TGdR1#b z`eZPkA@E;!y1+h>JNlyv6)UkUk@9C{Wxd1eQ1A;}RQ-AMtc0cl1AkEKKt^tRh(?o& zVYaAFZPmgP_2q(~roo>{-1ZB34yzpE!zcLWsl?$>;ky^z*5mZ;@oV91a&tGNk`xWU6nBq&Fr(1kaW-~r_AutE#tohfvSeXQWYZ{M zKBqvV_KpsYBFEw~VvKK|r$a1m8B5_%D{to-fU}DH)nn z*X)D8HpDRdCyX&VohCdfmUFg{H;TTXu>4@Nt-zIOQ`CCO!a?E!x5VNJzRIZldv<56 zc`e6s!XpQtSSLNB(?5{SJeN|J>Jhh-@$f=Cq%e=&R#TH5!e|g}kS04tA93H)=dQX- z=!<5UTe>Dy1RTLmYl!xVoz1~R0>z&LOuNzAxW_e#T-c+kOS2VldUGi$mf$YmlqG6* zSW#+dGQsCsZ1GwpUH{QO&$v;4tu2W!%R2`H(JP9z(=Cc^R^U$1)De_5)KY)WgMCWD zT1J%KfrrsvbhbY}^RD6LEOXfxYRdx5%a3t05hA>yScNLKge-3NV4=XkGd_d$n-&Gl zMgr4E-7o6CS)eX4V+||wcod=8M{hixIP6asl@HbGG{bhRFuU`K@-FiSsb{ugRJOf! zR`qhGn_uC$tGTeuJ(|+vT~Z`e-x}cLJ&FkW_TK80^6R@m*kys=G5-LY#`MamwS!bz zg4Eke%XcK64SO85TpmCA1&z%I0*RTP9b2PJF(- z6!B5nvFNURo?GoAL&u!LKxl23T^Z+}kfmbKN@FcqdOm&dT>A6f!14Woi}Pp&tJj(@ zO5-FH83vb5WD=MCCyGidb!#TGwcG2M8F%=lYxQ!9e?HHdS?p{ZJnl_;UeEbN0;dGO=td~kD zMezC?3xNcc`X5CdKRztb+2xR@n8LeE9I5# z!ttr=A@ZAa-gNx|>CT797JUW>MQMxU_}xa-+X)4~5_z!h{eFQqRCF8f$*X^@qJo(> zp*J#d3@b=v*>o!`DxG3dq2iXPI>CpH%KuLKam)}&E-x`vX{Dd&^$)ObRMzHPy4}je zo>=N^J0JMSjdd&mvJ0Hqu$x_AQ|Q;?x}>Nx^a;Mg6CKrG5344;lBzRQVX ziS0mP@Dl4Ao{wHm7cJv^RCx*tZi}gF)`sLR$bix4!)vl* zJ=zq@+38>HMd-~bPVY<~?p85P_NEgFeC3h)j{Zj=)oDx4;K#A}3r+Kzg@jDJC>dHi zZ5Bx>%LCeRNoyKvI^-i>GNWtWG2pMH4`%ZhYy_@Gr*Dc8mHdI2m`}F6@#}5q4 zrbp3v0cDt)b@i5jf&%8QVLX7=|A9ghG z*HJPveh0UP9k>D$q_-X4G5htKd38 zVRFwb-D0Net{Ax8v|gujSoz75etN~Ih!m?;Q@Bhm=R>eoTF~PDDNNE?LZeDlZQ;)2 zAthMuo2>>>7Os!1SB(AB5A1b%t(5vMDF<>#b^If}nLeq-q+eGYs>tTV#dyGzVNsj8 z%Dgt}VNZFF|0%6U;TV)wX|~PHfulZt1OE87=tnaXDT=ap6P<2XIecIoH|lJ%P>2#H z5z{$YY`G-~4@aNT$?BIr>LnWQsxLajvt(?634Ze+u&Ix|;%8Em{TV{9U~V3*Mu!4_ zVY^{WKhKDy(1NeITOQMicUJnMRoa2RD`z?Lr{zE2c}*AXzFwWTI1E9BmhNOU3$0e>gQ4Gloo)Bw(Av`T{Z#B- z7LeZNYXJ2kHCOe~PdK!QQ845tJ5kvts+6CZkM%|Avn$aBYl>)}l-b=XJ&;D?n{DZw zBIQ{%acB1Y*Z8|W+Lc<*CDLaeI!-W%!?0>+Ay3UYW5I%UiV-Gb8Z0f~{ z?Vr)jW|#w~a1xW`dpZHEDlUEqUi|HCBy%$<4?2vZHCiu;gPU&fa}Q^A{;fV+!GYwnHUj2N5#{8}ny`9bBI&3k#hi*k2WX1yc|k)$D4o5?$J#-PhIeLMRq zJUaDcFc&o*E5KCulxIy7&BHHPTQ}XNusBGu&6?KIBKbx00v@aj`MrE4y(g59!{np>j#1fN$_KHYI7D=<#@SLv^wZ5Mc@v2f@0flu!1 zq%o77;qGc2Ft37M><@qgXn>@MvL?HV!(n&XOlHBjGDWGQ$!^n$WNIp`#ZQff4I%^v zol+~+Im~}~xPw(*Z>MWXsb&rC7u)Piz}F!8kS$#@^Mhi(j}~Mst-q`&wtk$LcaoBz z3@l$!#9FvCq!!W}m>Q|s8W0rG0@pW>$xm%jlMC$E%5JZcSy(0iSx9l+JZ=8fHq9;c z+O%8DCHWkzLTv5@>FwCJY9Hvw&FDk7A1LIbuD4K{c2OScHL=MWKW!dE2beTWZ7XG8M^tSbb50 zIb7ANJ@#Mex4m4cT{L(qG&m^ugGkCr3%b!cVT)dQu4k238K~Cj+{xm~E37 z4WY;%Q93+vk>>XBt{!x#5f{z*JXfnJZMg)T8G=yM=Gpi)GX>wl{tc_`#pq`$f+Qnz z$SPJIKOLPnVSSL;Q=iqM4Yb8tDT`K;6BNYc<+`L1i&_bR{VGKi%B2fug_@{m$CazF z3LNaO`(=ZTEUaom*WA$}QM2;{@pwNHz4rDT*5UzC>`-6WEe9up{5~%kMF&ynq*(bX z88)bR>o@dnMqsMw-o`N4w_L`;5eCmijPNO*bLr5%$c^I)o z)u{ZHz|63El58$?NtgI^V8^)GdBqSgBr39Z5L0_DS(B(@`~CClmzh*Dvm+k7YD-xa zcI&<^Xgi0}c2%s-)%yM?3?$cR=XY*I$U%?`vDuNvw=oxSo@qIE<|f;RQm9abo&}6#hG`7l=KsW!yTjn!DrzZ_yF17W zJOkOA?gfQ`q@h>@olZ6NTc==0pM9vKr$Q39E#!;kw;!kL*y0ukM?|DPXc6e6>YChs zsbo&iQ}z+!x~%T>5zZ?#)ufW}k-YqGFFZ~M6SkBDpUTFvbD_Wa>|sCWfqO72iPX{(e{(=Tz-vv&d{4E!*v3;d?(cy>1G{vOnV$gEEF`1_Qg zQ;TlT;-v5X-k5|W2<>4j>_r+u8|nJB7ruCNcsxm84<PA6y0_H*3DH@)XB?Ot9TRgG9MWqvG#n$9Z$4Ubt0@She^)t+2DKU~!w~ z+`Z2~H^b2x3U#Eg?egK_z0A5me%wuC76fZyHgq1`2_ye$K+N?Kd{eX~M` z22+o%h>AzBWASCDDPWn-&V9gw>lX-RZFl6%Ckj??3&q&Gou28ygL!_eXe*L;2Ch&J zB&4FWus>Y;nlLOjmHjQTlY-%R2TxZ1+c`z)`^i-x(nk0L$s*(ow62fZ1A>@)R`2LJ zQzypAZ5QFQ7=wDMAC94-v6*3Q9M1waGQ-?XpXIU3d+F>1A^f+-Ehqz-J6$6&PV;)S)LI7F)j8*Pmk)vy##sPfS;sjeZfQLbSJ>v%s8 zBUoI@sn#ZYw{|O*!hme?5%lY;S;cV_3br90tAov&szfYTf7){RI(2X;$nV3;80h(e~^{8sr!X zy=2wR8L(MQ+MNu>_5>CSY4-cWg2FPQ#E6v3vr z)N*?MO2gK*XK>id15}?-2fj?T`>4-QhUB9kCAe-~Zz;tBEs9dS=jEsY3EGj}+XPsa zOiCAu3(;1Yv-Q1$fXl#=-J&e#RC^qq6cB4x6N@)DH-iFO(O~ zJQU>xGtW?MlB+L#xYK{&dD5Sppv_{HH^V63A|KG293e}K!I;TtI4~GHGntngDQMiy zapfTtO^L>?-#snRGm$U7FHB4KOO8}qYvDw zM$Iw?yQdf6N=OsIf7${T`@DeoLXz4yjJnXRgS(^D1n=Kbl{XKs9ZJlZ3H&AL7J7PE z=|!Agi`G`!mxhBDTSj8UVw}#P*qk`tHSzpT7}HLq!;|f4p|_^uHFgg-^A~&#&be7# z^JeqRV!fa}5ES6PTSloke!qqY;Mz$^A@X_yb!8$)qy0zdFWdg!#o|HxBXKA#4LJpDSb;Y_;}u_NDZOZ# zfN5aX1#1QYlR6rt_fu%1@vWO-Jv5t2?>I)+BO%_p*A_RZEjvMPfiy%nV9E$C!EGzn z(HL)zt2mbOoA#}9rp1CTr((R6Y)x=kJEz*l&Fuw-)>Sta&FAcuZN<~K_f8t8&ams6 z6!RMgL5I6MZL{^XXVvLk30KIwn4d}mmAll?)5;RIjXpnEu4%{jtZ zO2wgvPK#$u+P*7L#56GaWqhQ_*`Qv{1ip>BF!T!X-6bM16@*y z?r|b{{sYELQ!#22bS?3eSH(dQ~f95_=qH<$of92V|c$-G}}j(;{3DhQ(`+nOwD zd~nB9a-*MpR>s4VDU;Zy9%Df&&Ta9doT~Dh?@}-Zm-S}RYDBKG$pi6hrgb^4&zwhA zPC|Zx=4WFnqe|gm`p2LzYNq*vM}6#r?bqL?cbqAo)ZDDp3>rM=JDb77mHJVyI&WG& z@PX{BDEG#+F=Ji%9Ic)2Gt zW|9-rFl0v4mbjAmcSTSbz%_NGI=i)=Z|o6G!22p;Rh0;VC;#+9K~ec*C;z1v+F$;O z-erugQ9}GNs;Hq`x5~jjH}3fDsRHTbJt<{ra=}b}Kc*|>cpXf^NIJyFd{(nbu^PXk zQPR&kMMLDv?kJr2U}j*K>+9ERmw7th%s=tseZy<@%fId>_6q>R>||>dlmp=avb_nwOoa=Ht~!`VRy1XGsb*VBxaKT6t+CcTy~>( zy6{EF2N(Gj-5~OT0M1@@DZ*z7w?lq{XV3I#9^ZBfoqr#6<6124a0@!9b9~2xCBH~_ zaI;}g$ZjfzHP(YpEjpHN8J71X4bnE5k6)Kr!CO>vc1m2dxr3e9as^G_av4EhXC&xG zEJu1hC0~bZW*UFNfPWsp)KxX5;F=7~G%7+=(5X^Xi9OdMs& zJBLmB^Kj?74+`Oc?)|@OIrs=?!AC#UMcBT6kd6Bmr`UILM zU#M;?HDu$w&caTGPZQbm!XSZt1)QdeZLIWl{t0pP@0@P8>YV24;o!kYN*iXbOI6Kp zX6Yy#?oKqN$%`}0Zg|b9<;HQ=St`3RUjLpe|KLeqH;Y~mIE}ICY}yPd7j1#IWLvES z8(RB(N&b_Pi|D8=JMpO9xo!CF+%~N&PCAy%_ad5S8Dxyg&n!MEbqkkXD9NvoYE_-L ziCDdEl=ant&LMA!RWF$kDayQHr5IK~GFjon;jyY_>u-K+YEw9W8@8G9GW&+Wz}O=% zywMidb|AOX&HC*lUvRtY4mWtT?@OFCCEHvarOk44#}^TD()owduZSq;HS3E7?+;t@ zUKpokp#AlgJmGlbk&FYSB+vG>4E`u_q-=gdp>xUaPFq7F?=!&*llRxwLP*Q|G}J|p zA7XzpA6?YNmA=`F@29;QYjHttt9WdhA#Y=PX(*e5yEcOTWhZH?rdm~wRLqK=z&r)R z(8Y1|`Ht0l5na&^GrAI!^GV^oLYe8$z86XHJ>u?dIkfTI*Wv8w_Zu5^8o$D1a7C8- z1>qyTKkK~=H+1;wa2$&t{Iw!KpY|1y$w*r=cyX?ualig$uL}lGg%?(?Zy)61sW+|a z7EgYYIo;N%QoK^mx0Er}(^xZs{^Tk1(35hj=-B5KQ{r^T(D&nl4JR;jtwTv-_+Ocr zu$NxbZ;PLX)j9EQlT|Nla-(viU1-NX3rUwSomKlDCo>(msNgKymr z_300+_b0=Wa)fL3P!ntBm2IV^5f8SeO#^JS_nBOZD{zbSA~M9-6)bM+$Nw<(`=W8e zxI}?r`9klA*Zm(ijVI0+NIsOL_CkTbdmZ~n( zr$JH;TGY(zZh~;L^GCNC(V-*$MW^m%48eC2=M;-GN zxqzyeO!TX%U|--)+$5jbbn|Jk!}{}RYMp$5so*>5(qv7mpCcq)$izz;A9g=e9Cc`} z?fLfVsgVbyu2Bwsk1|d5`ZT(?GyR4RM-Nmx+OJKsb9%nLZp1B<`7wAyw6K_`HhPqr z&VlV^Wq>19azXn9Va)Ok!Ek=WQSM{^Y*0qsg(W}En33eWlv~3xdL>@GHR3-=H@9A} zV%NM{j2|zzeWxkvP2O(hSxZ*mk1C&wkjN`?{Qug!^1r0gE{;V`)+B11PAHn=t25(L z)GLuGrqiIQ+5k{FI;)az-h0ly=iKi(=lOi@{obdv*d}T*97@0JW#a1?N<6Z_JU}a{ zJ1Vt%B%ZF^vC>JsmMYQMb5iU1&m2Tcn2RrrE_1@>9ZvFHUtn1^kUAJ#8 zVQNcF9C43gUGwSB{&B6?mbnMILb5QFLZL33CT^`eg>AfWqN*;rZoT6uSN2rTrEFt? z28WhS(7lC7{!+-FsobfGs4T_V4^$M)*Igg7l;M}SAtE4787P^Mv9Su=!G)%CxQzq+ z@?sT9`pEYc9H&?mhr}ocSuwl(9knZRcdM=rk%fs9gf4@;Wnf_p$u{1yxLo|^vDC(} z&hhrL+wG|wX0hF)_%iKcia>$pbCc;?D`yCX9SO1|enRjw3blTI$3RKZ+=#DAB#&6& zS|+L8w?sGb(UB9Ep>!TNE_Df*U| z?lG~~q_(9AK1M<#Z4Rar{tEjmhholXfVOVA4l59zSh;JW^qM_>=ixeUtLGYSAOTk z&KKHFcVZ0b`qNq6S;+eQSlU7M{mT%9-_m45gVQHJR1~_PjbLc-;*H^SVPmi+q@MvH zoo%hC^Fr)nZ;kLq+bi5iN&cl0<^b zd8MTY?t9ypUc`rZCsA-@T0zCOxt-M~tka;?>7Mp$*jGba_kU90MDyon#P9xmg|9`G z!7rU^Z&Svu_puKNkVp47nbGwALo}rMuW@2z)w(XvSN8YT!{isyLA&z)crGvTlpgZc z1~>OW=Q1=_{(kA*>o?ZhLtFE}TM zjpy8i6$=~fDqikmR?Y4A+D2~Ak0RCPk)A}niMCA)zT8+*yF)pui z_IeJ+Ik>6Bg2)PxQFL|(NpGBZw^^h$K8$%Q4M+`OT!A2Z0yB%p&}b~gC%~RV&iSAi zrS-WsldUE-3I6gcb#<%fhd8B&>)3qTLr%SH4Ar=lVJb_(+Aa+)$!k(GT2ZB$Wxg6`X-b^-suI12c7B_HnztygRvlAUX z%((cB(rQ+0-A#ty1On4iEKU=+=i9}fr+?B$el%#5=rQ@cOy)$t^%Kt4UTH7XV%hWq zk=9Ia8JZ4A?YdA=9FyG1n!ehBLwR50{!1plwzn0WgSYD_C=(L-_a@eR#AhJ$ZNlR4 zx5n>Y*mk)g+s@GhdCp#Y4NSrRA*RK|SINhmz|e6Zed8vUun`7_i9JLCZx` zQ4N{I$Z){lKV{hTUSxzbD@k;WHF?%oHqcl22d2gbg%c$hVWPh%Cj_u1%$~fOAcWW^ z7eyG0GfQ(iEGqk+$0pAPN|$EnlC83?Dqn~|_w(`CnwxDdztlPUhx@cI{jh^DCNo&R z=;&Rw+IPfxsq4yWGHQDEPXt}xM4tD#VgZBt99<5Rj3~!8&j;Q>F#QY1rJ(;G;#F4SCwHYSo=lHh6NUIiss z8s`g88_q;3M8%fmmwo)G>7rzz&y|?u2RbLGvMqy5$PY(Mb_`dc3H=WH0<8BcADHW& zZXFMuoYdh`U2~-J+@AWfL3usPVn>1_*5LqI_4{bAjT3Xt`f@4xN9=wWBq}=-n)ih*#jx)mf+Mx!Y+Ci$YYmn%627emSTm9wP2ar?;(BVtPcE zl=w+54deV)-`<-v{;19^ubs<}dqgShA>_IpRU@dqB*@!XaAY#s{PBCHzG!00Sl{lC z^NDnDAPM!N-6Z&@JoCStkHT1-7-qn`PP@F&8Bd}de$;PM1f~;LhyAtNpwjPr^=K34 zC_Vbt9lO=TZ?n`)k>#_C7I;veIjGVP4C>xQ%SqF7S!)J#nMS};e0q`l+eR&b;oV20 zCh9S8EEAw+fr7RRj;z6EgILk}prXS-Apt)9KW6)SwY>)@sAetbu+{$*83J;RJJqwN zwPw2Rb~kI*rukKE#5>+Qd;yu-8QR0o0>E-8n>wLANQ@s zxQnUkFaoRro+}`sZY;3I6PoR!b${Ec@#a4|8bD3^+KM) Date: Wed, 2 Oct 2019 15:12:43 +0200 Subject: [PATCH 27/36] chore: update sponsors (#2320) --- themes/vue/_config.yml | 3 +++ themes/vue/source/images/piratebay_proxy.png | Bin 0 -> 10694 bytes 2 files changed, 3 insertions(+) create mode 100644 themes/vue/source/images/piratebay_proxy.png diff --git a/themes/vue/_config.yml b/themes/vue/_config.yml index c1b656bc2..87c14ab7d 100644 --- a/themes/vue/_config.yml +++ b/themes/vue/_config.yml @@ -118,6 +118,9 @@ gold_sponsors: - url: 'https://staffaugmentation.ro/en' img: staff_augmentation.png name: Staff Augmentation + - url: 'https://piratebay.ink' + img: piratebay_proxy.png + name: Piratebay Proxy silver_sponsors: - url: 'https://dopamine.bg/' img: dopamine.png diff --git a/themes/vue/source/images/piratebay_proxy.png b/themes/vue/source/images/piratebay_proxy.png new file mode 100644 index 0000000000000000000000000000000000000000..618fbd10ab533bf6d5dce505f488cff89911b8f6 GIT binary patch literal 10694 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 literal 0 HcmV?d00001 From 187a4adc8c2bb62a3ac2b00473f958cf394d44e2 Mon Sep 17 00:00:00 2001 From: vue-bot Date: Wed, 2 Oct 2019 15:14:47 +0200 Subject: [PATCH 28/36] chore: update sponsors (#2323) --- themes/vue/_config.yml | 7 +++---- themes/vue/source/images/roadster.png | Bin 0 -> 8921 bytes 2 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 themes/vue/source/images/roadster.png diff --git a/themes/vue/_config.yml b/themes/vue/_config.yml index 87c14ab7d..a748573f7 100644 --- a/themes/vue/_config.yml +++ b/themes/vue/_config.yml @@ -15,10 +15,6 @@ special_sponsors: img: stdlib.png description: 几分钟内在云端构建发布 API,免费试用。 platinum_sponsors: - - url: >- - https://bit.dev/?utm_source=vue&utm_medium=vue&utm_campaign=vue&utm_term=vue&utm_content=vue - img: bit.png - name: Bit - url: >- https://vueschool.io/?utm_source=Vuejs.org&utm_medium=Banner&utm_campaign=Sponsored%20Banner&utm_content=V1 img: vueschool.png @@ -125,6 +121,9 @@ silver_sponsors: - url: 'https://dopamine.bg/' img: dopamine.png name: Dopamine + - url: 'https://roadster.com' + img: roadster.png + name: Roadster bronze_sponsors: - url: 'https://www.accelebrate.com/' img: accelebrate.png diff --git a/themes/vue/source/images/roadster.png b/themes/vue/source/images/roadster.png new file mode 100644 index 0000000000000000000000000000000000000000..2af9bd2851d808bda6d35281b52c1945cc2949f3 GIT binary patch literal 8921 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 IQ?m>CA0Poz<^TWy literal 0 HcmV?d00001 From 4c8bc7f2ffc580b69a1f06a63260b7ffa2952ff4 Mon Sep 17 00:00:00 2001 From: Rolf Haug Date: Wed, 2 Oct 2019 15:38:46 +0200 Subject: [PATCH 29/36] docs: add Rolf Haug from Vue School as community partner (#2324) * docs: add Rolf Haug * feat: add Oslo latitude and longtitude + Norwegian language variable --- src/v2/guide/team.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/v2/guide/team.md b/src/v2/guide/team.md index 35815ea66..ebcdb571a 100644 --- a/src/v2/guide/team.md +++ b/src/v2/guide/team.md @@ -263,7 +263,8 @@ order: 803 'Boston, MA, USA': [42.360081, -71.058884], 'Kyiv, Ukraine': [50.450100, 30.523399], 'Washington, DC, USA': [38.8935755,-77.0846156,12], - 'Kraków, Poland': [50.064650, 19.936579] + 'Kraków, Poland': [50.064650, 19.936579], + 'Oslo, Norway': [59.911491, 10.757933] } var languageNameFor = { en: 'English', @@ -282,7 +283,8 @@ order: 803 fa: 'فارسی', ko: '한국어', ro: 'Română', - uk: 'Українська' + uk: 'Українська', + no: 'Norwegian' } var team = [{ @@ -1124,6 +1126,22 @@ order: 803 'https://vuejsfeed.com/', 'https://vueschool.io/' ] }, + { + name: 'Rolf Haug', + title: 'Educator & Consultant', + city: 'Oslo, Norway', + languages: ['en', 'no'], + github: 'rahaug', + twitter: 'rahaug', + work: { + role: 'Educator & Co-founder', + org: 'Vue School', + orgUrl: 'https://vueschool.io/' + }, + links: [ + 'https://vueschool.io/', 'https://rah.no' + ] + }, { name: 'Andrew Tomaka', title: 'The Server Server', From c67bcb44ccadf71d4d912c80fa050399b9dcad5e Mon Sep 17 00:00:00 2001 From: Phan An Date: Thu, 3 Oct 2019 18:58:32 +0200 Subject: [PATCH 30/36] chore: add rel=sponsor to partner links (#2316) --- src/v2/cookbook/form-validation.md | 864 +++++++++--------- src/v2/guide/class-and-style.md | 3 +- src/v2/guide/components-dynamic-async.md | 2 +- src/v2/guide/components-registration.md | 2 +- src/v2/guide/components.md | 3 +- src/v2/guide/custom-directive.md | 2 +- src/v2/guide/index.md | 3 +- src/v2/guide/installation.md | 2 + src/v2/guide/instance.md | 4 + src/v2/guide/reactivity.md | 2 + src/v2/guide/single-file-components.md | 2 +- src/v2/guide/state-management.md | 2 + themes/vue/layout/partials/learn_dropdown.ejs | 4 +- .../vue/layout/partials/platinum_sponsors.ejs | 2 +- themes/vue/layout/partials/sponsors.ejs | 16 +- .../vue/layout/partials/sponsors_sidebar.ejs | 2 +- themes/vue/layout/partners-page.ejs | 24 +- themes/vue/source/css/_partners.styl | 2 + 18 files changed, 487 insertions(+), 454 deletions(-) diff --git a/src/v2/cookbook/form-validation.md b/src/v2/cookbook/form-validation.md index 15c7a75fe..ea17b37a3 100644 --- a/src/v2/cookbook/form-validation.md +++ b/src/v2/cookbook/form-validation.md @@ -1,432 +1,432 @@ ---- -title: 表单校验 -type: cookbook -order: 3 ---- - -## 基本的示例 - -

    - -表单校验是浏览器原生支持的,但是有的时候用不同的浏览器处理起来需要一些小技巧。即使当表单校验已经被完美支持,你也还是有很多时候需要进行自定义的校验。这时一个更加手动的基于 Vue 的解决方案可能会更适合。我们来看一个简单的示例。 - -给定一个表单,包含三个字段,其中两个是必填项。我们先来看看 HTML: - -``` html -
    - -

    - Please correct the following error(s): -

      -
    • {{ error }}
    • -
    -

    - -

    - - -

    - -

    - - -

    - -

    - - -

    - -

    - -

    - -
    -``` - -我们从头到尾看一遍,这个 `
    ` 标记上有一个我们将会用在 Vue 组件上的 ID。这里有一个你稍后会看到的 `submit` 处理函数,而这里的 `action` 是一个可能指向了某个真实服务器的临时 URL (当然你在服务端也是要有校验的)。 - -下面有一段内容,会根据错误状态进行显示或隐藏。它将会在表单的最顶端渲染一个简单的错误列表。同时要注意我们会在提交的时候进行校验,而不是每个字段被修改的时候。 - -最后值得注意的是这三个字段都有一个对应的 `v-model` 来连接它们的值,我们将会在 JavaScript 中使用它。现在我们就来看一下。 - -``` js -const app = new Vue({ - el: '#app', - data: { - errors: [], - name: null, - age: null, - movie: null - }, - methods:{ - checkForm: function (e) { - if (this.name && this.age) { - return true; - } - - this.errors = []; - - if (!this.name) { - this.errors.push('Name required.'); - } - if (!this.age) { - this.errors.push('Age required.'); - } - - e.preventDefault(); - } - } -}) -``` - -非常短小精悍。我们定义了一个数组来放置错误,并将这三个表单字段的默认值设为 `null`。`checkForm` 的逻辑 (在表单提交时运行) 只会检查姓名和年龄,因为电影是选填的。如果它们是空的,那么我们会检查每一个字段并设置相应的错误,差不多就是这样。你可以在下面运行这个 demo。不要忘记提交成功时它会 POST 到一个临时的 URL。 - -

    CodePen 查看 Raymond Camden (@cfjedimaster) 的 表单校验 1

    - - -## 使用自定义校验 - -对于第二个示例来说,第二个文本字段 (年龄) 变换成了电子邮件地址,它将会通过一些自定义的逻辑来校验。这部分代码来自 StackOverflow 的问题:[如何在 JavaScript 中校验电子邮件地址](https://stackoverflow.com/questions/46155/how-to-validate-email-address-in-javascript)。这是一个很好的问题,因为它会让 Facebook 上最激烈的政治、宗教争论看上去都只是“哪家的啤酒最好喝”这样的小分歧了。讲真的这很疯狂。我们来看 HTML,尽管它和第一个例子很接近。 - -``` html - - -

    - Please correct the following error(s): -

      -
    • {{ error }}
    • -
    -

    - -

    - - -

    - -

    - - -

    - -

    - - -

    - -

    - -

    - -
    -``` - -尽管这里的不同点很小,注意顶端的 `novalidate="true"`。但是这很重要,因为浏览器会尝试在 `type="email"` 的字段校验邮件地址。坦白说在这个案例中浏览器的校验规则是值得信任的,不过我们想要创建一个自定义校验的例子,所以把它禁用了。以下是更新后的 JavaScript。 - -``` js -const app = new Vue({ - el: '#app', - data: { - errors: [], - name: null, - email: null, - movie: null - }, - methods: { - checkForm: function (e) { - this.errors = []; - - if (!this.name) { - this.errors.push("Name required."); - } - if (!this.email) { - this.errors.push('Email required.'); - } else if (!this.validEmail(this.email)) { - this.errors.push('Valid email required.'); - } - - if (!this.errors.length) { - return true; - } - - e.preventDefault(); - }, - validEmail: function (email) { - var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - return re.test(email); - } - } -}) -``` - -如你所见,我们添加了一个新方法 `validEmail`,它将会在 `checkForm` 中被调用了。我们现在可以这样运行示例: - -

    CodePen 查看 Raymond Camden (@cfjedimaster) 的 表单校验 2

    - - -## 另一个自定义校验的例子 - -在第三个示例中,我们已经构建了一些你可能在一些调研类应用中见过的东西。用户需要花掉“预算”来为歼星舰模型装配一套部件。总价必须等于 100。先看 HTML。 - -``` html -
    - -

    - Please correct the following error(s): -

      -
    • {{ error }}
    • -
    -

    - -

    - Given a budget of 100 dollars, indicate how much - you would spend on the following features for the - next generation Star Destroyer. Your total must sum up to 100. -

    - -

    - Weapons
    - Shields
    - Coffee
    - Air Conditioning
    - Mouse Droids
    -

    - -

    - Current Total: {{total}} -

    - -

    - -

    - -
    -``` - -这组输入框覆盖了五个不同的部件。注意这里为 `v-model` 特性添加了 `.number`。它会告诉 Vue 将其值作为数字来使用。不过这里有一个小小的 bug,那就是当其值为空的时候,它会回到字符串格式,稍后你将会看到变通的办法。为了让用户使用起来更方便,我们添加展示了一个当前的总和,这样我们就能够实时的看到它们一共花掉了多少钱。现在我们来看看 JavaScript。 - -``` js -const app = new Vue({ - el: '#app', - data:{ - errors: [], - weapons: 0, - shields: 0, - coffee: 0, - ac: 0, - mousedroids: 0 - }, - computed: { - total: function () { - // 必须解析,因为 Vue 会将空值转换为字符串 - return Number(this.weapons) + - Number(this.shields) + - Number(this.coffee) + - Number(this.ac+this.mousedroids); - } - }, - methods:{ - checkForm: function (e) { - this.errors = []; - - if (this.total != 100) { - this.errors.push('Total must be 100!'); - } - - if (!this.errors.length) { - return true; - } - - e.preventDefault(); - } - } -}) -``` - -我们将总和设置为了一个计算属性,从那个我们解决掉的 bug 外面看上去,这已经足够了。我的 `checkForm` 方法现在只需要关注总和是不是 100 了。你可以在这里试用: - -

    CodePen 查看 Raymond Camden (@cfjedimaster) 的 表单校验3

    - - -## 服务端校验 - -在我们最终的示例中,我们构建了一些用到 Ajax 的服务端校验的东西。这个表单将会问你为一个新产品起名字,并且将会确保这个名字是唯一的。我们快速写了一个 [OpenWhisk](http://openwhisk.apache.org/) 的 serverless action 来进行这个校验。虽然这不是非常重要,但其逻辑如下: - -``` js -function main(args) { - return new Promise((resolve, reject) => { - // 不好的产品名:vista, empire, mbp - const badNames = ['vista', 'empire', 'mbp']; - - if (badNames.includes(args.name)) { - reject({error: 'Existing product'}); - } - - resolve({status: 'ok'}); - }); -} -``` - -基本上除了“vista”、“empire”和“mbp”的名字都是可以接受的。好,让我们来看看表单。 - -``` html -
    - -

    - Please correct the following error(s): -

      -
    • {{ error }}
    • -
    -

    - -

    - - -

    - -

    - -

    - -
    -``` - -这里没有任何特殊的东西。接下来我们再看看 JavaScript。 - -``` js -const apiUrl = 'https://openwhisk.ng.bluemix.net/api/v1/web/rcamden%40us.ibm.com_My%20Space/safeToDelete/productName.json?name='; - -const app = new Vue({ - el: '#app', - data: { - errors: [], - name: '' - }, - methods:{ - checkForm: function (e) { - e.preventDefault(); - - this.errors = []; - - if (this.name === '') { - this.errors.push('Product name is required.'); - } else { - fetch(apiUrl + encodeURIComponent(this.name)) - .then(res => res.json()) - .then(res => { - if (res.error) { - this.errors.push(res.error); - } else { - // 在成功的时候重定向到一个新的 URL 或做一些别的事情 - alert('ok!'); - } - }); - } - } - } -}) -``` - -我们从一个运行在 OpenWhisk 的 API 的 URL 变量开始。现在注意 `checkForm`。在这个版本中,我们始终阻止了表单的提交 (当然,它也可以通过 Vue 在 HTML 中完成)。你可以看到一个基本的校验,即 `this.name` 是否为空,然后我们请求这个 API。如果名字是无效的,我们就添加一个错误。如果是有效的,我们就不做任何事 (只是一个 alert),但是你可以引导用户去一个新页面,在 URL 中带上产品的名字,或者其它行为。接下来你可以体验这个 demo: - -

    CodePen 查看 Raymond Camden (@cfjedimaster) 的 表单校验4。

    - - -## 其它替代模式 - -这份秘笈专注在“手动”校验表单,当然一些非常棒的 Vue 的库会为你搞定这些事情。使用一些预打包的库可能会影响你的应用最终的体积,但是好处是非常多的。这里有经过充分测试且保持日常更新的代码。其中包括以下 Vue 的表单校验库: - -* [vuelidate](https://github.com/monterail/vuelidate) -* [VeeValidate](https://logaretm.github.io/vee-validate/) +--- +title: 表单校验 +type: cookbook +order: 3 +--- + +## 基本的示例 + + + +表单校验是浏览器原生支持的,但是有的时候用不同的浏览器处理起来需要一些小技巧。即使当表单校验已经被完美支持,你也还是有很多时候需要进行自定义的校验。这时一个更加手动的基于 Vue 的解决方案可能会更适合。我们来看一个简单的示例。 + +给定一个表单,包含三个字段,其中两个是必填项。我们先来看看 HTML: + +``` html +
    + +

    + Please correct the following error(s): +

      +
    • {{ error }}
    • +
    +

    + +

    + + +

    + +

    + + +

    + +

    + + +

    + +

    + +

    + +
    +``` + +我们从头到尾看一遍,这个 `
    ` 标记上有一个我们将会用在 Vue 组件上的 ID。这里有一个你稍后会看到的 `submit` 处理函数,而这里的 `action` 是一个可能指向了某个真实服务器的临时 URL (当然你在服务端也是要有校验的)。 + +下面有一段内容,会根据错误状态进行显示或隐藏。它将会在表单的最顶端渲染一个简单的错误列表。同时要注意我们会在提交的时候进行校验,而不是每个字段被修改的时候。 + +最后值得注意的是这三个字段都有一个对应的 `v-model` 来连接它们的值,我们将会在 JavaScript 中使用它。现在我们就来看一下。 + +``` js +const app = new Vue({ + el: '#app', + data: { + errors: [], + name: null, + age: null, + movie: null + }, + methods:{ + checkForm: function (e) { + if (this.name && this.age) { + return true; + } + + this.errors = []; + + if (!this.name) { + this.errors.push('Name required.'); + } + if (!this.age) { + this.errors.push('Age required.'); + } + + e.preventDefault(); + } + } +}) +``` + +非常短小精悍。我们定义了一个数组来放置错误,并将这三个表单字段的默认值设为 `null`。`checkForm` 的逻辑 (在表单提交时运行) 只会检查姓名和年龄,因为电影是选填的。如果它们是空的,那么我们会检查每一个字段并设置相应的错误,差不多就是这样。你可以在下面运行这个 demo。不要忘记提交成功时它会 POST 到一个临时的 URL。 + +

    CodePen 查看 Raymond Camden (@cfjedimaster) 的 表单校验 1

    + + +## 使用自定义校验 + +对于第二个示例来说,第二个文本字段 (年龄) 变换成了电子邮件地址,它将会通过一些自定义的逻辑来校验。这部分代码来自 StackOverflow 的问题:[如何在 JavaScript 中校验电子邮件地址](https://stackoverflow.com/questions/46155/how-to-validate-email-address-in-javascript)。这是一个很好的问题,因为它会让 Facebook 上最激烈的政治、宗教争论看上去都只是“哪家的啤酒最好喝”这样的小分歧了。讲真的这很疯狂。我们来看 HTML,尽管它和第一个例子很接近。 + +``` html + + +

    + Please correct the following error(s): +

      +
    • {{ error }}
    • +
    +

    + +

    + + +

    + +

    + + +

    + +

    + + +

    + +

    + +

    + +
    +``` + +尽管这里的不同点很小,注意顶端的 `novalidate="true"`。但是这很重要,因为浏览器会尝试在 `type="email"` 的字段校验邮件地址。坦白说在这个案例中浏览器的校验规则是值得信任的,不过我们想要创建一个自定义校验的例子,所以把它禁用了。以下是更新后的 JavaScript。 + +``` js +const app = new Vue({ + el: '#app', + data: { + errors: [], + name: null, + email: null, + movie: null + }, + methods: { + checkForm: function (e) { + this.errors = []; + + if (!this.name) { + this.errors.push("Name required."); + } + if (!this.email) { + this.errors.push('Email required.'); + } else if (!this.validEmail(this.email)) { + this.errors.push('Valid email required.'); + } + + if (!this.errors.length) { + return true; + } + + e.preventDefault(); + }, + validEmail: function (email) { + var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + return re.test(email); + } + } +}) +``` + +如你所见,我们添加了一个新方法 `validEmail`,它将会在 `checkForm` 中被调用了。我们现在可以这样运行示例: + +

    CodePen 查看 Raymond Camden (@cfjedimaster) 的 表单校验 2

    + + +## 另一个自定义校验的例子 + +在第三个示例中,我们已经构建了一些你可能在一些调研类应用中见过的东西。用户需要花掉“预算”来为歼星舰模型装配一套部件。总价必须等于 100。先看 HTML。 + +``` html +
    + +

    + Please correct the following error(s): +

      +
    • {{ error }}
    • +
    +

    + +

    + Given a budget of 100 dollars, indicate how much + you would spend on the following features for the + next generation Star Destroyer. Your total must sum up to 100. +

    + +

    + Weapons
    + Shields
    + Coffee
    + Air Conditioning
    + Mouse Droids
    +

    + +

    + Current Total: {{total}} +

    + +

    + +

    + +
    +``` + +这组输入框覆盖了五个不同的部件。注意这里为 `v-model` 特性添加了 `.number`。它会告诉 Vue 将其值作为数字来使用。不过这里有一个小小的 bug,那就是当其值为空的时候,它会回到字符串格式,稍后你将会看到变通的办法。为了让用户使用起来更方便,我们添加展示了一个当前的总和,这样我们就能够实时的看到它们一共花掉了多少钱。现在我们来看看 JavaScript。 + +``` js +const app = new Vue({ + el: '#app', + data:{ + errors: [], + weapons: 0, + shields: 0, + coffee: 0, + ac: 0, + mousedroids: 0 + }, + computed: { + total: function () { + // 必须解析,因为 Vue 会将空值转换为字符串 + return Number(this.weapons) + + Number(this.shields) + + Number(this.coffee) + + Number(this.ac+this.mousedroids); + } + }, + methods:{ + checkForm: function (e) { + this.errors = []; + + if (this.total != 100) { + this.errors.push('Total must be 100!'); + } + + if (!this.errors.length) { + return true; + } + + e.preventDefault(); + } + } +}) +``` + +我们将总和设置为了一个计算属性,从那个我们解决掉的 bug 外面看上去,这已经足够了。我的 `checkForm` 方法现在只需要关注总和是不是 100 了。你可以在这里试用: + +

    CodePen 查看 Raymond Camden (@cfjedimaster) 的 表单校验3

    + + +## 服务端校验 + +在我们最终的示例中,我们构建了一些用到 Ajax 的服务端校验的东西。这个表单将会问你为一个新产品起名字,并且将会确保这个名字是唯一的。我们快速写了一个 [OpenWhisk](http://openwhisk.apache.org/) 的 serverless action 来进行这个校验。虽然这不是非常重要,但其逻辑如下: + +``` js +function main(args) { + return new Promise((resolve, reject) => { + // 不好的产品名:vista, empire, mbp + const badNames = ['vista', 'empire', 'mbp']; + + if (badNames.includes(args.name)) { + reject({error: 'Existing product'}); + } + + resolve({status: 'ok'}); + }); +} +``` + +基本上除了“vista”、“empire”和“mbp”的名字都是可以接受的。好,让我们来看看表单。 + +``` html +
    + +

    + Please correct the following error(s): +

      +
    • {{ error }}
    • +
    +

    + +

    + + +

    + +

    + +

    + +
    +``` + +这里没有任何特殊的东西。接下来我们再看看 JavaScript。 + +``` js +const apiUrl = 'https://openwhisk.ng.bluemix.net/api/v1/web/rcamden%40us.ibm.com_My%20Space/safeToDelete/productName.json?name='; + +const app = new Vue({ + el: '#app', + data: { + errors: [], + name: '' + }, + methods:{ + checkForm: function (e) { + e.preventDefault(); + + this.errors = []; + + if (this.name === '') { + this.errors.push('Product name is required.'); + } else { + fetch(apiUrl + encodeURIComponent(this.name)) + .then(res => res.json()) + .then(res => { + if (res.error) { + this.errors.push(res.error); + } else { + // 在成功的时候重定向到一个新的 URL 或做一些别的事情 + alert('ok!'); + } + }); + } + } + } +}) +``` + +我们从一个运行在 OpenWhisk 的 API 的 URL 变量开始。现在注意 `checkForm`。在这个版本中,我们始终阻止了表单的提交 (当然,它也可以通过 Vue 在 HTML 中完成)。你可以看到一个基本的校验,即 `this.name` 是否为空,然后我们请求这个 API。如果名字是无效的,我们就添加一个错误。如果是有效的,我们就不做任何事 (只是一个 alert),但是你可以引导用户去一个新页面,在 URL 中带上产品的名字,或者其它行为。接下来你可以体验这个 demo: + +

    CodePen 查看 Raymond Camden (@cfjedimaster) 的 表单校验4。

    + + +## 其它替代模式 + +这份秘笈专注在“手动”校验表单,当然一些非常棒的 Vue 的库会为你搞定这些事情。使用一些预打包的库可能会影响你的应用最终的体积,但是好处是非常多的。这里有经过充分测试且保持日常更新的代码。其中包括以下 Vue 的表单校验库: + +* [vuelidate](https://github.com/monterail/vuelidate) +* [VeeValidate](https://logaretm.github.io/vee-validate/) diff --git a/src/v2/guide/class-and-style.md b/src/v2/guide/class-and-style.md index de9a0b570..7239b3a98 100644 --- a/src/v2/guide/class-and-style.md +++ b/src/v2/guide/class-and-style.md @@ -7,7 +7,8 @@ order: 6 操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 `v-bind` 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 `v-bind` 用于 `class` 和 `style` 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。 ## 绑定 HTML Class - + + ### 对象语法 diff --git a/src/v2/guide/components-dynamic-async.md b/src/v2/guide/components-dynamic-async.md index 2e509b64b..f40c9c041 100644 --- a/src/v2/guide/components-dynamic-async.md +++ b/src/v2/guide/components-dynamic-async.md @@ -201,7 +201,7 @@ new Vue({ ## 异步组件 - + 在大型应用中,我们可能需要将应用分割成小一些的代码块,并且只在需要的时候才从服务器加载一个模块。为了简化,Vue 允许你以一个工厂函数的方式定义你的组件,这个工厂函数会异步解析你的组件定义。Vue 只有在这个组件需要被渲染的时候才会触发该工厂函数,且会把结果缓存起来供未来重渲染。例如: diff --git a/src/v2/guide/components-registration.md b/src/v2/guide/components-registration.md index 6c274acfb..c4431cf5d 100644 --- a/src/v2/guide/components-registration.md +++ b/src/v2/guide/components-registration.md @@ -6,7 +6,7 @@ order: 101 > 该页面假设你已经阅读过了[组件基础](components.html)。如果你还对组件不太了解,推荐你先阅读它。 - + ## 组件名 diff --git a/src/v2/guide/components.md b/src/v2/guide/components.md index fe8742e13..bf774bb68 100644 --- a/src/v2/guide/components.md +++ b/src/v2/guide/components.md @@ -4,11 +4,10 @@ type: guide order: 11 --- + ## 基本示例 - - 这里有一个 Vue 组件的示例: ``` js diff --git a/src/v2/guide/custom-directive.md b/src/v2/guide/custom-directive.md index 37656a68c..9be0b48fb 100644 --- a/src/v2/guide/custom-directive.md +++ b/src/v2/guide/custom-directive.md @@ -6,7 +6,7 @@ order: 302 ## 简介 - + 除了核心功能默认内置的指令 (`v-model` 和 `v-show`),Vue 也允许注册自定义指令。注意,在 Vue2.0 中,代码复用和抽象的主要形式是组件。然而,有的情况下,你仍然需要对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。举个聚焦输入框的例子,如下: diff --git a/src/v2/guide/index.md b/src/v2/guide/index.md index b4a02efc3..a3c9a9bc2 100644 --- a/src/v2/guide/index.md +++ b/src/v2/guide/index.md @@ -6,12 +6,13 @@ order: 2 ## Vue.js 是什么 - + Vue (读音 /vjuː/,类似于 **view**) 是一套用于构建用户界面的**渐进式框架**。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与[现代化的工具链](single-file-components.html)以及各种[支持类库](https://github.com/vuejs/awesome-vue#libraries--plugins)结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。 如果你想在深入学习 Vue 之前对它有更多了解,我们制作了一个视频,带您了解其核心概念和一个示例工程。 + 如果你已经是有经验的前端开发者,想知道 Vue 与其它库/框架有哪些区别,请查看[对比其它框架](comparison.html)。 ## 起步 diff --git a/src/v2/guide/installation.md b/src/v2/guide/installation.md index e475ef113..3117deec7 100644 --- a/src/v2/guide/installation.md +++ b/src/v2/guide/installation.md @@ -77,6 +77,8 @@ Vue 提供了一个[官方的 CLI](https://github.com/vuejs/vue-cli),为单页

    CLI 工具假定用户对 Node.js 和相关构建工具有一定程度的了解。如果你是新手,我们强烈建议先在不用构建工具的情况下通读指南,在熟悉 Vue 本身之后再使用 CLI。

    + + ## 对不同构建版本的解释 在 [NPM 包的 `dist/` 目录](https://cdn.jsdelivr.net/npm/vue/dist/)你将会找到很多不同的 Vue.js 构建版本。这里列出了它们之间的差别: diff --git a/src/v2/guide/instance.md b/src/v2/guide/instance.md index 4b476fca1..99bdc2846 100644 --- a/src/v2/guide/instance.md +++ b/src/v2/guide/instance.md @@ -126,7 +126,11 @@ vm.$watch('a', function (newValue, oldValue) { ## 实例生命周期钩子 +<<<<<<< HEAD +======= + +>>>>>>> 57419054... chore: add rel=sponsor to partner links (#2316) 每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做**生命周期钩子**的函数,这给了用户在不同阶段添加自己的代码的机会。 diff --git a/src/v2/guide/reactivity.md b/src/v2/guide/reactivity.md index 929facea9..1e77b2c08 100644 --- a/src/v2/guide/reactivity.md +++ b/src/v2/guide/reactivity.md @@ -8,6 +8,8 @@ order: 601 ## 如何追踪变化 + + 当你把一个普通的 JavaScript 对象传入 Vue 实例作为 `data` 选项,Vue 将遍历此对象所有的属性,并使用 [`Object.defineProperty`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) 把这些属性全部转为 [getter/setter](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Working_with_Objects#定义_getters_与_setters)。`Object.defineProperty` 是 ES5 中一个无法 shim 的特性,这也就是 Vue 不支持 IE8 以及更低版本浏览器的原因。 这些 getter/setter 对用户来说是不可见的,但是在内部它们让 Vue 能够追踪依赖,在属性被访问和修改时通知变更。这里需要注意的是不同浏览器在控制台打印数据对象时对 getter/setter 的格式化并不同,所以建议安装 [vue-devtools](https://github.com/vuejs/vue-devtools) 来获取对检查数据更加友好的用户界面。 diff --git a/src/v2/guide/single-file-components.md b/src/v2/guide/single-file-components.md index d577d5a17..3f9355d0d 100644 --- a/src/v2/guide/single-file-components.md +++ b/src/v2/guide/single-file-components.md @@ -6,7 +6,7 @@ order: 401 ## 介绍 - + 在很多 Vue 项目中,我们使用 `Vue.component` 来定义全局组件,紧接着用 `new Vue({ el: '#container '})` 在每个页面内指定一个容器元素。 diff --git a/src/v2/guide/state-management.md b/src/v2/guide/state-management.md index 2c42c218f..746dea1de 100644 --- a/src/v2/guide/state-management.md +++ b/src/v2/guide/state-management.md @@ -8,6 +8,8 @@ order: 502 由于状态零散地分布在许多组件和组件之间的交互中,大型应用复杂度也经常逐渐增长。为了解决这个问题,Vue 提供 [vuex](https://github.com/vuejs/vuex):我们有受到 Elm 启发的状态管理库。vuex 甚至集成到 [vue-devtools](https://github.com/vuejs/vue-devtools),无需配置即可进行[时光旅行调试 (time travel debugging)](https://raw.githubusercontent.com/vuejs/vue-devtools/master/media/demo.gif)。 + + ### React 的开发者请参考以下信息 如果你是来自 React 的开发者,你可能会对 Vuex 和 [Redux](https://github.com/reactjs/redux) 间的差异表示关注,Redux 是 React 生态环境中最流行的 Flux 实现。Redux 事实上无法感知视图层,所以它能够轻松的通过一些[简单绑定](https://yarnpkg.com/en/packages?q=redux%20vue&p=1)和 Vue 一起使用。Vuex 区别在于它是一个专门为 Vue 应用所设计。这使得它能够更好地和 Vue 进行整合,同时提供简洁的 API 和改善过的开发体验。 diff --git a/themes/vue/layout/partials/learn_dropdown.ejs b/themes/vue/layout/partials/learn_dropdown.ejs index 071641828..116d69ca5 100644 --- a/themes/vue/layout/partials/learn_dropdown.ejs +++ b/themes/vue/layout/partials/learn_dropdown.ejs @@ -14,9 +14,9 @@
  • 视频教程

  • diff --git a/themes/vue/layout/partials/platinum_sponsors.ejs b/themes/vue/layout/partials/platinum_sponsors.ejs index 69c982a4a..bff7576c3 100644 --- a/themes/vue/layout/partials/platinum_sponsors.ejs +++ b/themes/vue/layout/partials/platinum_sponsors.ejs @@ -3,7 +3,7 @@ 白金赞助商
    <%_ for (const sponsor of theme.platinum_sponsors) {_%> - <%_ } _%> diff --git a/themes/vue/layout/partials/sponsors.ejs b/themes/vue/layout/partials/sponsors.ejs index e6f16f403..58576c5eb 100644 --- a/themes/vue/layout/partials/sponsors.ejs +++ b/themes/vue/layout/partials/sponsors.ejs @@ -15,14 +15,14 @@

    Patreon 赞助商

    <%_ for (const sponsor of theme.platinum_sponsors) {_%> - + <%-sponsor.name-%> <%_ } _%>

    <%_ for (const sponsor of theme.gold_sponsors) {_%> - + <%-sponsor.name-%> <%_ } _%> @@ -34,13 +34,21 @@

    OpenCollective 赞助商

    白金

    <%_ for (let i = 0; i < 2; i++) {_%> - + Vue.JS sponsor <%_ } _%>

    黄金

    <%_ for (let i = 0; i < 8; i++) {_%> - + Vue.JS sponsor <%_ } _%> diff --git a/themes/vue/layout/partials/sponsors_sidebar.ejs b/themes/vue/layout/partials/sponsors_sidebar.ejs index faf9db978..fe44f3400 100644 --- a/themes/vue/layout/partials/sponsors_sidebar.ejs +++ b/themes/vue/layout/partials/sponsors_sidebar.ejs @@ -4,7 +4,7 @@ 特别赞助商 <%_ for (const sponsor of theme.platinum_sponsors_china) { _%> diff --git a/themes/vue/layout/partners-page.ejs b/themes/vue/layout/partners-page.ejs index b2af5e47d..e340164a5 100644 --- a/themes/vue/layout/partners-page.ejs +++ b/themes/vue/layout/partners-page.ejs @@ -1,7 +1,8 @@

    Vue Partners are premium shops that provide first-class Vue consulting and development. - If your company is interested in being listed as a partner, please contact us at partners@vuejs.org. + If your company is interested in being listed as a partner, please contact us at + partners@vuejs.org.

    Active Partners

    @@ -9,8 +10,11 @@ <% for (let partner of page.partners_list) { %>
    @@ -22,7 +26,9 @@ Link
    - <%- partner.url_text %> + + <%- partner.url_text %> +
    @@ -52,7 +58,13 @@ @@ -66,7 +78,7 @@ <% } %> <% for( let link of partner.social_links) { %> - + <%= link.name %> diff --git a/themes/vue/source/css/_partners.styl b/themes/vue/source/css/_partners.styl index da37f048a..28ef83e07 100644 --- a/themes/vue/source/css/_partners.styl +++ b/themes/vue/source/css/_partners.styl @@ -70,6 +70,8 @@ color: #0077B5 &.instagram color: #C13584 + &.youtube + color: #f00 i vertical-align: text-bottom font-size: 1.3em From 2f24a6946b1bb4d8a5d2fde9dadf74270196673d Mon Sep 17 00:00:00 2001 From: vue-bot Date: Sun, 6 Oct 2019 17:58:02 +0200 Subject: [PATCH 31/36] chore: update sponsors (#2327) --- themes/vue/_config.yml | 3 +++ themes/vue/source/images/programmers_io.png | Bin 0 -> 4300 bytes 2 files changed, 3 insertions(+) create mode 100644 themes/vue/source/images/programmers_io.png diff --git a/themes/vue/_config.yml b/themes/vue/_config.yml index a748573f7..25189d170 100644 --- a/themes/vue/_config.yml +++ b/themes/vue/_config.yml @@ -117,6 +117,9 @@ gold_sponsors: - url: 'https://piratebay.ink' img: piratebay_proxy.png name: Piratebay Proxy + - url: 'https:/www.programmers.io' + img: programmers_io.png + name: Programmers.io silver_sponsors: - url: 'https://dopamine.bg/' img: dopamine.png diff --git a/themes/vue/source/images/programmers_io.png b/themes/vue/source/images/programmers_io.png new file mode 100644 index 0000000000000000000000000000000000000000..5ebd32f0c49d9b19e96ee05615428f2acfe9ed4b GIT binary patch literal 4300 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 C>9kA$ literal 0 HcmV?d00001 From 38dd197f26327950bf64e20a0cef51dc260f20d2 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 7 Oct 2019 10:48:33 -0400 Subject: [PATCH 32/36] chore: fix sponsor url --- themes/vue/_config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/vue/_config.yml b/themes/vue/_config.yml index 25189d170..174d9dcb7 100644 --- a/themes/vue/_config.yml +++ b/themes/vue/_config.yml @@ -117,7 +117,7 @@ gold_sponsors: - url: 'https://piratebay.ink' img: piratebay_proxy.png name: Piratebay Proxy - - url: 'https:/www.programmers.io' + - url: 'https://www.programmers.io' img: programmers_io.png name: Programmers.io silver_sponsors: From 04a592bf70e98ca0cb4401a26e9604ca327a5a89 Mon Sep 17 00:00:00 2001 From: edwardscheindlin <54953416+edwardscheindlin@users.noreply.github.com> Date: Tue, 8 Oct 2019 04:43:35 -0400 Subject: [PATCH 33/36] Update partners.md (#2330) --- src/resources/partners.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/resources/partners.md b/src/resources/partners.md index 6a849465f..2dfc5f711 100644 --- a/src/resources/partners.md +++ b/src/resources/partners.md @@ -42,7 +42,7 @@ partners_list: name: Modus Create logo: https://res.cloudinary.com/modus-labs/image/upload/v1533109874/modus/logo-vertical-black.svg description: - "Modus Create is a digital product agency that supports clients with business and product strategy consulting, customer experience, cloud services, and Agile software delivery. Our official partnerships with Atlassian, AWS, Cloudflare, GitHub, Ionic Framework, and Vue.js reinforce our proven results with digital transformation with organizations from startups to the Fortune 100." + "Modus Create is a digital product agency that supports clients with business and product strategy consulting, customer experience, cloud services, and Agile software delivery. Our official partnerships with Atlassian, AWS, InVision, Cloudflare, GitHub, Ionic Framework, and Vue.js reinforce our proven results with digital transformation with organizations from startups to the Fortune 100." proficiencies: - VueJs - name: AWS From 52e4cbda81d99de73eb91f4f333c728b5fb854a8 Mon Sep 17 00:00:00 2001 From: Nemesis Date: Tue, 8 Oct 2019 10:46:34 +0200 Subject: [PATCH 34/36] docs: fix hexo links (#2329) --- _config.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_config.yml b/_config.yml index 49309d00e..1e5654f7e 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,6 @@ # Hexo Configuration -## Docs: http://zespia.tw/hexo/docs/configuration.html -## Source: https://github.com/tommy351/hexo/ +## Docs: https://hexo.io/docs/ +## Source: https://github.com/hexojs/hexo # Site title: Vue.js @@ -78,8 +78,8 @@ pagination_dir: page disqus_shortname: # Extensions -## Plugins: https://github.com/tommy351/hexo/wiki/Plugins -## Themes: https://github.com/tommy351/hexo/wiki/Themes +## Plugins: https://github.com/hexojs/hexo/wiki/Plugins +## Themes: https://github.com/hexojs/hexo/wiki/Themes theme: vue exclude_generator: @@ -136,7 +136,7 @@ offline: origin: maxcdn.bootstrapcdn.com # Deployment -## Docs: http://zespia.tw/hexo/docs/deployment.html +## Docs: https://hexo.io/docs/one-command-deployment deploy: type: git repository: git@github.com:vuejs/cn.vuejs.org.git From a3074a9b967b5b1b340952542cfbf3c772fc1d06 Mon Sep 17 00:00:00 2001 From: Jinjiang Date: Wed, 9 Oct 2019 23:35:41 +0800 Subject: [PATCH 35/36] Fixed all bugs during this update. --- src/v2/examples/themes.md | 116 ----------------------- themes/vue/layout/index.ejs | 4 +- themes/vue/layout/page.ejs | 2 +- themes/vue/layout/partials/ad.ejs | 4 +- themes/vue/layout/partials/main_menu.ejs | 2 +- themes/vue/layout/search-page.ejs | 4 +- themes/vue/layout/sponsors-page.ejs | 8 +- themes/vue/source/css/_vue-mastery.styl | 32 +++++++ themes/vue/source/css/page.styl | 1 - 9 files changed, 43 insertions(+), 130 deletions(-) delete mode 100644 src/v2/examples/themes.md create mode 100644 themes/vue/source/css/_vue-mastery.styl diff --git a/src/v2/examples/themes.md b/src/v2/examples/themes.md deleted file mode 100644 index 33611cb66..000000000 --- a/src/v2/examples/themes.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: 主题 -type: examples -is_new: true -order: 13 ---- -> 通过合作伙伴 [Creative Tim](https://creative-tim.com?affiliate_id=116187) 创建的例子,你可以在一个真实的应用中看到它是如何构建起来的,它背后的技术栈以及你学到的大部分概念。 - -{% raw %} -
    -
    - - -
    -

    {{product.title}}

    - {{product.price}}$ -
    -
    {{product.description}}
    -
    - -
    - -{% endraw %} diff --git a/themes/vue/layout/index.ejs b/themes/vue/layout/index.ejs index 34b5fe88a..e9118afc5 100644 --- a/themes/vue/layout/index.ejs +++ b/themes/vue/layout/index.ejs @@ -28,13 +28,11 @@
    -
    +

    特别赞助

    <%_ for (const sponsor of theme.platinum_sponsors_china) { _%> -
    - <%- specialSponsor.description %>
    <%_ } _%> <%_if (theme.platinum_sponsors_china.length < 2) { _%> diff --git a/themes/vue/layout/page.ejs b/themes/vue/layout/page.ejs index 9f68d0ae4..4028917bf 100644 --- a/themes/vue/layout/page.ejs +++ b/themes/vue/layout/page.ejs @@ -11,7 +11,7 @@ <% if (page.type) { %> <% if (page.type === 'menu') { %>
    - +
    <%- partial('partials/toc', { type: 'guide' }) %> <% } else { %> diff --git a/themes/vue/layout/partials/ad.ejs b/themes/vue/layout/partials/ad.ejs index 8094e9445..446d102eb 100644 --- a/themes/vue/layout/partials/ad.ejs +++ b/themes/vue/layout/partials/ad.ejs @@ -1,10 +1,10 @@ <% if (!page.sponsors && !page.partners) { %>