From 40f5a80f3f9a1b04f5ae2723c6d8751db7c4b2fc Mon Sep 17 00:00:00 2001 From: Robert O'Connor Date: Thu, 4 Feb 2016 06:21:09 -0500 Subject: [PATCH] Add emberjs layer --- layers/+frameworks/emberjs/README.org | 115 +++++++++++++++++++++++ layers/+frameworks/emberjs/img/ember.png | Bin 0 -> 39455 bytes layers/+frameworks/emberjs/packages.el | 77 +++++++++++++++ 3 files changed, 192 insertions(+) create mode 100644 layers/+frameworks/emberjs/README.org create mode 100644 layers/+frameworks/emberjs/img/ember.png create mode 100644 layers/+frameworks/emberjs/packages.el diff --git a/layers/+frameworks/emberjs/README.org b/layers/+frameworks/emberjs/README.org new file mode 100644 index 000000000000..dc84aa7b66a5 --- /dev/null +++ b/layers/+frameworks/emberjs/README.org @@ -0,0 +1,115 @@ +#+TITLE: emberjs layer +#+CAPTION: logo +[[file:img/ember.png]] + +* Table of Contents :TOC_4_gh:noexport: +- [[#description][Description]] + - [[#features][Features:]] +- [[#install][Install]] +- [[#completion-system][Completion System]] +- [[#key-bindings][Key bindings]] + - [[#file-key-bindings][File key bindings]] + - [[#generator-key-bindings][Generator key bindings]] + - [[#destroy-the-inverse-of-generate-key-bindings][Destroy (the inverse of generate) key bindings]] + - [[#key-bindings-to-build-start-the-server-and-run-tests][Key bindings to build, start the server and run tests]] + +* Description +This enables helpers for working with Ember.js projects. + +This also includes [[https://github.com/ronco/ember-yasnippets.el][ember-yasnippets]]. See the README for ember-yansippets for the snippet keys. + +To use this, you need to add add a =.dir-locals.el= file with the following in the root of your ember project: + +#+BEGIN_SRC emacs-lisp + ((nil . ((mode . ember)))) +#+END_SRC + +If you do not wish to do the following, you may also just do =M-x ember-mode=, however it will make things easier. + +Additionally, temporary backup, autosave, and lockfiles interfere with broccoli watcher, so they need to either be moved out of the way or disabled. + +Add the following to your =dotspacemacs/user-config=: + +#+BEGIN_SRC emacs-lisp +(setq backup-directory-alist `((".*" . ,temporary-file-directory))) +(setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t))) +(setq create-lockfiles nil) +#+END_SRC + +** Features: + - Ability to easily switch between various files + - Key bindings for generators and also easily revert generator actions + - Ability to build, start server, and run tests + +* Install +To use this contribution add it to your =~/.spacemacs= + +#+begin_src emacs-lisp + (setq-default dotspacemacs-configuration-layers '(emberjs)) +#+end_src + +* Completion System + By default this will use =ido=, + but it may be configured to use helm by adding the following in your =dotspacemacs/user-config= function: + #+BEGIN_SRC emacs-lisp + (setq ember-completion-system 'helm) + #+END_SRC + +* Key bindings +** File key bindings + +| Key binding | Description | +|-------------+------------------------| +| SPC m f f c | ember-open-controller | +| SPC m f f m | ember-open-model | +| SPC m f f o | ember-open-router | +| SPC m f f p | ember-open-component | +| SPC m f f r | ember-open-route | +| SPC m f f j | ember-open-javascript | +| SPC m f f t | ember-open-template | +| SPC m f f x | ember-open-mixin | +| SPC m f f i | ember-open-initializer | +| SPC m f f u | ember-open-util | +| SPC m f f s | ember-open-service | + +** Generator key bindings + +| Key binding | Description | +|-------------+----------------------------| +| SPC m f g c | ember-generate-controller | +| SPC m f g m | ember-generate-model | +| SPC m f g o | ember-generate-router | +| SPC m f g p | ember-generate-component | +| SPC m f g r | ember-generate-route | +| SPC m f g j | ember-generate-javascript | +| SPC m f g t | ember-generate-template | +| SPC m f g x | ember-generate-mixin | +| SPC m f g i | ember-generate-initializer | +| SPC m f g u | ember-generate-util | +| SPC m f g s | ember-generate-service | +| SPC m f g g | ember-generate | + +** Destroy (the inverse of generate) key bindings + +| Key binding | Description | +|-------------+---------------------------| +| SPC m f d c | ember-destroy-controller | +| SPC m f d m | ember-destroy-model | +| SPC m f d o | ember-destroy-router | +| SPC m f d p | ember-destroy-component | +| SPC m f d r | ember-destroy-route | +| SPC m f d j | ember-destroy-javascript | +| SPC m f d t | ember-destroy-template | +| SPC m f d x | ember-destroy-mixin | +| SPC m f d i | ember-destroy-initializer | +| SPC m f d u | ember-destroy-util | +| SPC m f d s | ember-destroy-service | +| SPC m f d d | ember-destroy | + +** Key bindings to build, start the server and run tests + +| Key binding | Description | +|-------------+------------------------| +| SPC m f r b | ember-build | +| SPC m f r s | ember-serve-or-display | +| SPC m f r t | ember-test | diff --git a/layers/+frameworks/emberjs/img/ember.png b/layers/+frameworks/emberjs/img/ember.png new file mode 100644 index 0000000000000000000000000000000000000000..4fb0a81e3669f9fb5be3472a2b1d42eeeb05ad18 GIT binary patch literal 39455 zcmY&fMO0i}vjswc;O-8=oyOhWCAho0Yj6*40fIE{?(Xi51a}GU`uZFEgE#2Dt0%qc z?Aldlm)t02MJXhBe0T^52qYP4aaHhh^uG@r4EVcBt2!3~f)qkVTtwY#?YztLw;ss- z=(&qo^WrZOz=a%21{ITCLZy*%t$=b~mN=nl-ivY~t4SeF;32;2p^|ZeBHMPxhj7_o z%vSddFVmEcn%*fzS_NAoS_K*s3L0PdOWd@+e%oo7?_&basfIfTgeW<*Z0oys-f6kd z{RP62=L}De>qVPWnZ8Z>8qnkaKX$TO-4K|X5axXfM-LEtocj9cqQ#u62D$fn$6KDiJq+Xd|@5GL>G6|y4J9k4i$Sx><&Vxb%7p^z1^4L zR1ift=z%vB_6_Z-8{wqW5NZ_o@cwfEY7^;=Y_r7Sm+HM&l5V8}GrM<`VOhR^HW_uBvbrP`phC9suiWUd+Qe0)EougVB zq>1slNV$SHse37IcDoUg17T2Yy*8OZBwUn2yUhkw{YGU(Qj1qBifWZ_PnW6+fo=sg z5=_wxxqWhVkEz`K>y#V70TVpu1lWMJgK!}m<%-xk3c@sk%tHM+crV?HA-b5VYHkF{ z%@kTn2ju^QNC;mu2U*^0t+3FE;FW`arL!F(8W~65{isjpI-`~&6kBY)55x6K0cB6{ z4WcpYn1J)A`4=71Aadx4$i{ea#T;>O!R3EKA<~w~&=9>O-^e}|!f2$Zdg%jqrF>=oKUz^fBsE9dCy~nN^czj3~6h z^MdlC>b!Utg`*AqCA4j+0kO#(`eZ2f%M-2!#L&QhkEv*n#>XeTb?kvSHTeGUrF5Ka z?TL5REtIOa5iN^2LyHbFWi&I7Kb$7kXwwB&6qNiv3DLo!p!<;s6Pe&1LEAsV@Z zQ<$K<$1Pj-?I+y7qu`RDgIh?s(Z%yG1}J~AY{C}Xeu}&h=PvZS>U!nI+z1risi=~N z!a#-2&bob30L>vG3^dLnA>>>CuF7)?br+p_AtDT+WJ2 zrf&r|2iS5|+}~yuzwaeb3a6;j05=JFJvuahtFP~Km&_QJ#zw5|2SSm2B^JQB6_;&8 z@S?s7zxv(8Zdh0Z2+RVW>@nmBN?Pv#fX}oxK#AWLL@i6b?pe}X1CM_pNOg={;1r~| zCXE{Gf{vOb zY3~KMw>)f-AWoWSaz2RT4rt~1fzWh-q#n?Hhq_>$o*>96kX?!bq#^DZp*xi1&(d`!cu&fehPcqvcBbU3Xguo-Eu~ zphD9;{6I}<&ljoweGfCdWw4(~iEzmK2~vDqc&o9H3l74K;z~wbH6-+Cukk8ZDD?iN zrSRZ28RQJnDzngdlK?I3wFyC*1H2XOrvRnjvw zxPZdS<(=WFe4Q1PL;PczmaNw6tHL%(6YwrB? zTR?u_Uu(OpZW~38c6?=e>#~|d62D=)5gm~12Qw|D6uiQ{DyW{k=5!-I{O z-8WY$G3xaKy_Cdh@L$K>{qYsjeOkR`DYyXBU^7k5Hg$2=J7e4ewtqv;`|fL~r&)M^ zTst~#uN#^@JoWYR!!yE&fokP*+{P*Gvy1F7*4bFx(1hNQHxg?*ut?QaLnyU!j=AXa zgVnbIeAP+|&eqNRrwZw5dpkbp-_8Gc1A=p=>zp6m&$~~MIWM}?E?l#y&a?ign?}BNVX( zqhQ;vUIoxzQGubj=wIfx`l&X^~JJmOi)DQrgSn=NYXV-Q^CC{f& zljzKW#KwNjpyYQi7%zB_dhdb;p&-m_uQIx3wt!8$J_u-hQ20lT+%c_k_w*a*CdcUO z>z=6?O2rk3-L6qhjTCoQu8Qc%&_>ps&GZiDriIj|y*CaVDl@ zOA>7?6;e+xZQwrH+g`*h8|T`KJrN=%y`xM7%r_0Ik*^aAC8z^utTq1Tj}7f23yo5S z^AO)w6F$j9pY9!`HiX&Re*Q?S-vixe3BMW&Vl?rH+oQ83QmgP`;U#{DF5${>+Fe2zS zpm+b2yZ)!yD|W44MLEfB3pZ?M%Bo$Wg=1SN5cM%C0xevWU@J5Y@K3ZaL5ZjTCu%;- zi9gZDqRikZ%%rWuzmHQGvOzflQq}RZ0WEQ z@D490kF^#Pxrzlv8u{IBKYg6hPnv4k-}fW9Oo6X!RHg+eZQKdBam*ohq%h&LlEZwH zqf36MZWzXE6;K;|&WQdCOtJKiPjhT_qP&j{z4|iQ2GjDp0sj`ZL1_3!8E_LY3orx1 zZ~_()R{~dhDGN|DU$+n(RN*kAjJjE8%El?(YaV`1Gg2;IiMzblNG29$-LJwp`P zha~n9zCXL2D;w%5bZw86rt~}eV@GSG$s+L^7Gz`p*m%IM4%}F0Z6vL$)zF30UV&=s zLt0sd{0ZBv>ZRTg1va`s79p~cXpqsZ!9RdJ|DSp~w2pOX^*w|V+^?g&fz}tSV_gsG zJbkRzx9|Uo9R%!Ko(2Mes*Z2LV6s=K2xri+;&Kn|6-Z$4q|#i?$;ZUa=}=*l%k z+8mzT-1vbRRWnZIEwS`f{(A5cc>epILqev8J0N?6W<_7a z!Iqpd_rBqNf7&#LHn4zJlVl&vll|5teqZ1iQ>OEILF+RGf?3k0v~Lz9G^Lo0SD0 z0@xU8!^x6jqVK_2c*0s-UXoF*u=7-PwM`emS+|!1r`47_vuGD((iU9&Z5i$H{>di=ETS=lWcHen=F(NuXHL|d>Rw`NQ80**BT!cMdCBd1g73l={ zAI5LcQT#73&KZ}z4s<_=Jg7(v5QvZ)RsXHT3OVC`t{8_xk|%@jb##1+b~~(Bf`8IJ zMgqTDn~`bg!)!QzE~b3sJFI3w7~H8R;}DQ?RXXib<%$vDNff!x+CWpOOOtrO>nET| zl|jGLqGs~bB}*+;lNO1 zpP93|*}O`V2DwUQ@$3PkTc;-2J%!d;esz#H1w$tTu`^Xf>bVQzOR|yjoVYyoUq|nQ z%?m@}B*&_Me3$M-acD1iClV#C=V`oFhzv#xr9#b;(gCe%u8dDeR+}<(VC%EHrm(P53qa*0|1Bc1n+-*!cyn@)>jRR;}-hdpzYs~i=xCAN?80l-fU;m zi43(~x|XmC2!90-1cf(Sh;a>Y!1BK&!AJvoM7~QVZt9so+35TlgPl`f5>Or1$3?clW8mEDC~Lj`!{WHP@F9+F5c)v<1zU!c%Wwd-|~rV zl`(o%`-VCJ!eKAL8o~A{W%VP0b6nweUfu*jM1@-Ce-MRYJT}1Zg13EJNBj9DdlT1r zzA!xAn8u+A1NC2!lK43!j!3bsNfb~Z=G8FQ4x5C8BD$?%i`d-8<}CY1Kjm;pLzBHj z;YwA=pvhCCGQXj%6_FD*g`z?-W=y-qMp8=64ANvyx}W~V3C$EGFp!hl3Xf;Oq{dOY zUaUKU917=nN5q`pk!uRcZ|-@cNsRF9^ryXYS+_*H2k_O^*=~Np(}IMquYkQ3O<5*MzSBelYZM% zMY08tnqjPtm7h(nxiN=-6_qp7bH7Td3t>94m>X`nGpXqo`_()nryl~rzsg9smW5O* zn;FllRkq@X4&hNuvC(map;#{>GaSijOTqU1^ptyadv8e$ylBEbonZm|Lh{cIP0qgZ zPDzoTLEr>Q@FI7g?RGHD-zw*#u*t)xpnn%*r$;uS<7KFVQ=j|jPDnvNc$S_S@a#9` zQ=BziOt>8RW4CT)le%7jE~tm%B7EO^^o?EmyFx*=;4(4}E=`ekR^FlQYfo5B=R@2= zBTE_?uXY8NU~)Xmq+)o@guV!^RnxBn^kFQJJFLa`E3T|!jzD#Y8%ChI6cL5}9!jb1sOnDs`pZe3Pl&PXabwRoEsy`nzL~{9LUmzp-nYl?u zqNp{$D}&bI-iDq61*K=j)cJ*4eifml`YjTf2Snbkt=DNR{lB&M|L zy|U0QOMS4L#FpS>6tLTLBE%ryo*ppTYoJabcZ+j3^%sF)DL|t@+G(em`SP8wRlX0t zpmZQv+HHME(Op|zUo%ZQ=*Z4r7@Cmepv@j>ucfadMKttVPU(e6#8a0t`C!GdSps=J zQUaMMnG&b|!b)o~i9Uwk<7j}zxG}0OSN}*MZ_EBYo`s#x_i8%sN9jcRFuHW*_!#E{ zq^^0Nk0()^1RNq#W74BdWSD-IIpz-dKnE(+VXPFRqGmDozeGj~E9(W8#j#o!BunKWsPb7e+EybXSJ6st$zVTI6J zU%Ins{<~BMU5bOgeZ#a~Hv&6t=F#h_*VIep4;Pd{jV*fOW#Vipkq)QdMR!8r3+1o| zml*GQpB^o++cm#wBy5%xj_iUW<9&%Zs`*0ln98QDRhE)F1#SVkfqShEE%EBd+9hAh zgBX0H$i!k|`>>HA6;0B1JI$6-hM53o-T0B^uj|y;QufP7{|B^$URg5#9k*Ei3o4Dy<3t$>#pOIm>-?BwG=4iRxe+zrIfIzZSX@_CyB$mPUW;69y&#OnZ^W2!-I%frcjtf zXrRfdjG*p%Es?$3mybL3e!XbPx>?QTMx$zBwp{0GfpmNA!|v zHu7>NKJT6wEmt33{}qC|P0UH^5M?v3szfdQCFo|x?}#8|m`C;8sUmI8*a4;!ya6pamTWgGnhJ^$`uUUlG*U!Fz)MaV7RFL{Fs&u~GT z;pJS)LqN{B)v5C=O{E5NcZ}kxKCVzHc6%e>Z7ecM(*_Rk3fO;5i6o`!=~u3hXERYU zkJx2)rju${{5 zaM0Lh0zn^96L;$bD1cs4Q4|rli~G_%F~@m%Zc)X*-O>@2i?GUMHW%)^ZP-6f<$Rk! z((nHiXkxcM7vC6h*ndl{$lB66=rwJzaEzMO?1G(lnpoPRT<&CIk!E^JZIy+mIK$w4 z<(t6X(<(l2?WC8NMsMwnKBDHu1`(^;S0n+4{sqbIsIV|Kn{;8ehl1%2bQZC&_J)D`xMAdshA3))31)Z+zAD3*{ z4Q4&KIF1;F_p4CR2tsR*B}CZwQT1DQEtLLS0Es=;-L$wgE_Ibl;B&D z`!uZz&Hg#S3;nhkG~A}G?_TpUfPz7YgHK8W6wFWY5fGUIX1sAdY(~=ITr0`{aoj-8 zn(i`uf|mob6&4mgbt^S3?UqrDc;EHz5l-Wj2hI;ZoVQ8^a2#z^rb-Vhy%i0 zv9-gRI5gsp^R4;@G!S8zudTTeNA0aU%Qj6`O*)f5bmfUMj{4pkAnwc=n`_4E9B(0f zxgP7RxpP`^=uIihrEY{>!fi%6$wg{9lZm(7VVA^?R@0?V2G=O@m{o|(&w1@@NvG#6 zEYzB1m`v-`nb_P<;dEbM#60wsiasm(QQBIA7*cBu?y1C^XW!)~dYKJM;V*E$3X@0Z z%RZBQ!`5BJQ3{xInKDJ^QY_Bd%DVVd{ZDUfE1t`Rb zpnmheD<_adj4vwYo{&k(z+a(wPebkw(0Ya#jgfPi`v6x~EK8aHA?Rk;^fE*OD~PqESeK3u%!(y%Q>HK5n!(<`>ePf@U#5F z82@M7b2Mm&|BB}gVdHAM?2ocRhlt2 zO|orzhfjW)6bl%Bce=@Xb!7<^oc9gRloM8YQ%;+M(ob4(X=cs)%9TwS%uU>Fi)Ll> zMe43voej1=y_@&u)#3uHa_Mr|n^2 zOe!c9_V3Z*#a61y7G3Un8*Il=zQL}Fm71WsJyVTc`n;1^myiBFQykEgowMV#=Ew$f zqfEU(i(%f5^9vFUbXu7)o(_NeD_be%YV>MDbFF7aQq)wvedX2XXo{YKDIM)~s`v}~ z%&ikqgl2_A!&1Sj-Fzv?nGjY;z7*gV7hBa3z&*0b_(iYDJV>E%wYLX;eeA>>Th86U zbD(0?eagNstuQlw!NQg%QKP)+pcf$=aGpv#d`$If|Kk;M^F#8 zsM{<~`I6cCwEpDu47;FUeD&E%vjS&!+*GAB!6*%P8ZMr|Ow3fS)h$2sN1QS4z6%e$ zzkiWxnU)$Y9`|1S-fStz8i2oO(}cVu|H9q{zN2{4%#Bw)5J`cUO*U8~-)=Z5@`jv$ zuOviGGncEP-=jg2rpg+xd%SJJ1<&rt-P6q1*7u61cP*N39TRhAE1cf*rn+Q;nbT!3 zf*@HgNwMb&Tn3(0oE$8iFxC<{NoJa5i03!-WnW`#QW zh%+HSb7?kKTu@lIVDsfl-@``7O1(S%8J9zmqY){wH3uV2bd|M^oy{|uGC3J7BO@!H zz`*|gHw#4t=etp~wDdG9&TOl!aC7a9;?R@zq4Dy|huj)QW?&2d+lS2n4i7svOg>%BRGJ(s7 z?GxdvoOX4t8#I?*2RTK{_DJyeSUAe5yag<=;1JG7LR_$EqDh}PZlB)XHezmj62>Kb z0}n1~R$#8aZc`__8|i}%21q_wdLDgyr0TSaYHAYl^U3O0&&OTTyOk=IqNTbe3;S~E zYql*nA2_Sq5An~{=|&51@M#w)&9$|{qcV*e0c5;zq`;)qC4arG0cU-}nZkp1hDl~8 zzg?Ocp+~|k-(8t_!B76`Gm~{r@EMEKimlD+wGjvYGqLX|Rgh6kLaEEP&^B{z z!x|$ehlH7NcNRmU^Z$Gc6~(X;MZmtA8yJ7t@&EZpHLzl}NT*7*OkK;s0GWf)j(F^v zB;ci~)8|rg`4Q_Xo47$USZyFXBO~i@CxYa#?I?F|HebxFLHnZX(ZHeoq&VI@FI80v zF1nvb=mFxJ$c^T9UctR+k_Ijc5%1uJ=hhTg&$GhI%ZpY|fPX{|GZ0aVE$plvj?8O> z`3dY5zRc7wPdLiD9A3s$Hc_&e~cFL z-`&^LB1Q!KZx`V9Z{HtyY2KW8|4el{tXHB6m9egAGHt2xW_z|(JHAEifFo{X#fl}! zX1Jil)#Zwf@@san3{#%tk6KSc{5VO!_v*9V zSHU!MR&Zo(^+L3X=8EPg=rKw0CV$fs6dSqq(*xzNTB$OngQ==6Yc4x6!N9~cYX>k@ zSXM}t5_MSTY&YI+)FJAYYtt(R=RMp0K?{?8DTzl@8=GjGrty#W*VRUAHBaEX;Vj_a zfRG2^l5Vkv8u%swREKP>(uHtsBfJcF?06pL>K19z`JOyhiOMc!TVqo!pPZf5E z7|1Iz#UI z%az&-oV2M0I%TB5B0VP8jeC&mQTEp4!H<6u?1=N=3nP_^K&3kzZP0Goct>gGQOt0n z`gjxN4frKGk$Lv z{P$0LTKOnu+lp`#~L0H-g+2L;I;MXjnZ>-))QZR)>=(~0W)Rc z8s?#dPN7m+rc*Ustog{}8Vo)WJ3CBra&q*$1Zn1lw!9(F{XF`6&w65y71h>=`?q$weA8=v zA`A=rC7V}10k0^V2|2Pm-UfuXQ9ldD&ckS~v?`V|^71Twe6qT`1;M$q8S4m%umk!R zdrOUbHay5MP+--L(?Xhj3N2H*`YcfaX!t8HKV?^pu z$utx$*_q%CYx{?qRe;X?b`T6Bw`QiMoNxAJqK9^$EnuM;Qukc8GcBza&sas2Q5Jr9 z)J(Buv9mO2-?2pEj(tnzd=-9sNcI-N4Q+^b4zo9BGMYNeJhYF>j1T z5D<#`^USe5ioozX8cSY7T<(Y?-7Df?Q2h5G&snG^ z9{uUazPL{`L$zC*6fGDJp{*@xK~SWM9`nKvDd^r>k+V#hs7Zl%oZp@hu#Yd6?Kr(J zeYYl>?bn~Cw%(?&rf)K#O6Rr#8O*<$LhiptNJ(ivu_@wKWM*fZ?hVKJJq?f?&PkCR zMMp!-sw~TX9g+D z0Tym&J1C*p-;V{IGe7|_MsFKi??eYKnXn{&zmx)Ql8?mwJzwcU!UUmb;d5@SW}~6f z!6e+j^}gu16x@7hZW+3B@FXGQ{vdoJ!I5i!9jX+85G2Xeo@;hJQmk&>g|}(avBMTu z*=$=_a5k84b4Zmnm)IiUwENT3^VymCC++NJChys<#KV>oOftP5Ab5QsUpq>pa&f%f z+lLNo?bYf2#cmRr7C7skV=6^$#fkrvU(Af9Eh;ijLiQx(3){n!6-<9xlvamX3tlljZ13f#3WS+e&x(xch#uMCtzqh@S> z-9h@`(g+O5S4oh2JpU*ECW8Fz+1Z)y^=cEyVEy*i)jnBG&F|mGt4x^aMLScf>{kUi zhs~q`I3Xdm9qxQ<$Vh0tI;K&=NUJ$Gx0!%TyiTXwiRZ>Iu*id-Ejo-;R8(H)bt67m z+Lou_>s5Zh$ibpGWc;2#!K7}q-Tkcf^`hg)tG7PwJ?l1>Xk^cu@r+2I45au%Biq%` z#mv^ra!b;f8QAI0KMSn02zlKifjGx{mw($DD3AtO5CcAr0zW!)41t(=FZrHJr&O0n)kIDu!idFpZf9v+4}8CTVdhB&~Dp{)(RD_-p@RVVynRt zg=@>tRh~#PV4zH`gxl|K6e0R+Y+T$BKYuTg=ik16En5Mbtf6WP3x03iuhJ3UlF)`u z+L^fQr;?|N*J8$h1D$?j9~vW>yAQuIfK>;fVJ$-pHL-6j@ZjJ!-oI#pp7wfdZ0we9 zo{P^v3!G7sDRYnNIy)!90p&Hqw>fv_X$TttUU|CIXJ~*mEQffGS3MPej1c-{7Ya*B z0%!5F_G>rL>t#=#&h1}>Alv zJ;Lu>kF@C%Me;eiEjY7cnzjclfAC8L?Ov5Dc%zsK-3q*kxgn^15)xP`#LsnWK)uyUnHrL zjeTsQYy9sk$L85;;8eypaxi=+Pn0IZ}}Zo=ajAoA2k;dNwto|44_6){?Gy)zHZ{$qSVOPUvqmn z1m$&{X?i$l|JTWwvmy;8O&+_d3+zlUJF$+Rl3#H9ef#y0hwrrd>_+PG@4(<(AfjEw6J(u?|Gq5qsNN>oonJ_ zjdt|4Uf@VJ=cRil?|n7zdKK($;3anH*`g;nOv(bWUit5ENyRbshb~d&a0Lox;>&w&~AGLkjv2 zA3zt(gif+VheU03AzZ+^UA?D%II|$eq0nA&uQpNT1(;D9UF(f-v9gd1=FKwAd zqKhYB;s*xVL4T;}PSB3C!-~kji)Ev=M_C-zcEVhK9&~u!Y*XIe-hx|Cf_c<=Gq?X> zd&WLWau3ti9rns?tBv1>k?v5CO?0uF%@f%e?G^^v22QESD;<(D5~|Tt6{063EG&;Q zGPuW+6NLJ>NW6mPZ`hvw1YxAqFKwKi6B9d!bZd}96;Vt{Xv-Q#{)+pIJpAD=(a{F^ z*gHo>ExhuimghrT8FOA8ie&fwmZ;J!RHhkxR?d_U5BzvL^1iPyoFXvze8Hkx&YT>j zDV|3loD-}FE;`_SYYBXV8!|zgs0Vi|Bwqv_+bp2h7wcZ@F>RSfa{Xh+zHAxq9dHe` zLK`6XJ)sLv&os`%p)U_ph}di3SfwZ?5@;nD!xlE>5)D@{*18YS^nA*B-c$toku)?k zfSo{1Mn6KuxuAO$K*c;o$+T6W>$i7vF?6&uDD_bE#he`_^K+Sf!$scow!MIZ*T0pR2}y<4lX4Gki${^5)e(xJ}2xCLp)xOk% z1>L)YdBXKixRPAoScM;(ghZ#DKgkc3^d=$Zm_`4oKnOxrCQNuR5d!P{l0N4CWt91K zLO0Gb7O6=z(~;^|_n5G|4$&zQaw`_j^#Y~_d5LqryK62sH&uGc1vrGddnPYf08>~= zlMcj=4i8H~wtszAAsl-=Pz8S17$3TbROtbhqan{fj62)3|E|(r`H55gc3CUkV`PMB zfJaI`0II1g2#JyhR17IEZzt}#V^6rdwCRnsNjOLTr#5E-9vaStoPu1s;&aBJbr>r7 z$*2Da_@oM}2JLx6vS4Ft=@}e$C-{Zd_@Bsuo4+brTtaIsAfy431*e>r_r#I_7T2HN=f;qnZ}hX@WzK&Yul}M$4z+r zvjF7^*sV9GHrayM0Nl9h>5IG-aJX^$iHX0jpYLA`-*<6nG2yx6 zG1R|b>kD2LSJ@FyCE*haTlttQ(G5i{NQ}EDtPlbWQbjI=7j^l~}NjZ<6xExuk39&xA!kV`8pzq&lCk7*C3!1No4_gtzfl8rP zQGm@eihBykJj{yY+QGzm@^BXt6y(MCW)x#o;Qm3`I=y_uHt+7tKNR@>0#M2;X9EB* zK{ITctR>`eI8zr3NFi=iVupc2w!B5j1!AiBku)3;Fnd~-T{%8G37Z?fU6v7CP!M)qOxbD zl#HmjCjbj3kjki@k6=KBL}Nphe03vd{dpQszu#M%1+H_wiCa!Up-hD;B<4{2e(q}t zcqB!dJv9#kfkfVi4;SgySlg@jIVA5ReHrmFGmD$;M}!&DC*&0s>x+$U^0pdN^AjQO zYX8zxI!IYn6A83MQXp+UN01b<)C;ohQ3ag=6m;9cW$+09CPV0xl{n#(K};A03RHAr z+>b)*7wsQIcRBde^Ul9_zrFdO6>#)pF<@2@^6<>;!BX*XHubuWSZ3-os5v$|>Gc#A zr&c4_iBXvL8cA9*IL_wPX{}q~zp6&l@mYE-z7@iFE@Txhxe>YlMoz+_iixOAH{e6vfc0G^~QDQ(xn|!<0Rs@{0XKb z@jH!KZ_7m4Z4QrGzG?e(_HFa~D~sqY?-h?O?>U!>FFcNDqJF0)nG#-ekm9ndD1JZS z>I9(Vy?un1o+%LRThaOWW(^W6UGo>?Rdi{u&g5veB)kzL+vzF3=nAbe+7^l zSz5&%m`779IlT<3lmmB9>A4fNAlN56ml)}BCHCAu7gr@Ckd5yBM5FXOeTZ5#&$vr4 zB+_e0=&lFH=wg=s2x>GIORJ-_=;~H$UX)}{|2s(Li67|ihXNOwT-|mlEj=z69=Hgq zp|@w&I4ki#1-exUc{!CloPK+5+|s%&M87=MqwdDbL1=#`M|vYhRl{>I%?v92T$%rAnSFKlKRnXfy_%;gtt;|6tW zld)5T3Wv&dS%;&2Zpk(Ge478!@D0-eUg0D8jr2Y8OUt)aHByeG6Xx=3A7!5K-kQTI z!CXH{XNxoF4^B%^t!9R@7u4zQz^nHy8jdmY!8{-2t%*8p|78!d#HO3XB6vI7dO-zO zW9e?oHJw`6Q*A4|r0I}7_-ZlpCH(IUqE?vUT%L>$t3bA0XF3_ZY&d!Z#i~7DAc0kT zVr`tnu5`KWcP;6fkjW=3vk?>)|8v^3BgMN#N=u~r9Bax`9TZlkxWSaj*#XS<;>yBNeueJT?(FJ+ja;e^`hQb)!$zLq-$tj_3$B@)iy*2+jDzBDGU!Sck{jkZt&g-1pI(w#r-B#=$57F z9^XI8iO9Z0OIAS7Oz|xER|;;nlA-(Z=jHFhBuoLu-;<-fp~T!p#i_;tr)^lI+GNm{ z7}30+c0T9u_gGzVM0HUEP{gxHp|g|NAmWZ#({6BSwe&j3uEKP33+C_2 zn)nath!@P$589=gPFS^XGOE3-L~Bh~sBFK|Zxkzx7BRroQ|U(7hr3dRcq7nf4~&}m zXoZQOMIVPpR`)TO;}xkwd*$1v7^48V-WiADx4HUA_8Yh9Lq zgsZ{M1?FcG%%&1<33LB0!%&aQ1m7glisX(=Rqu4r^efrwOJJqu;?naou{G%?&Z8`y zbmKM;cj*d0%aPS6_2)+D&l&65@zLFgrJ#9Lj(I~9A6J-f{r{$gSn(94#8CYN7Ny%p zkA;uqhhZOBY^QHD(oSSopBMhBtDR(lu-2`kEz{<-&}xaPzTf=v7A^ipaU)i61~0r} zD9z5{8~vO-1AfVbBN3*VePYy(Hw zeMEF(&s06-1_bWJ=40pIrB`~;)?x6PHQ=QkB^ZPQFF{7o(PGlTZG$_qJXZ#7Q)v^F z@-dlME4Z1WWZ06n6O2g9r{~IASxs)T6_cTYp##!6y*?>R1<|jCs2NUM*kDuTeqf(@ zbThEcy?m?p6Y}^*D&mWE)y^rQThi==$;U2C$F-~$ zw&@)ai%omn@s(sF#2@6lp~%|kO5za!L7!u4?ejBiLF$UXa%1Rd=06uh4b%?wL^WyN36k;Cp$p8hB2zYH zCjG;*4bkulk#O`=+Vv7tkaF>>8yW*r&CGCSFg9sbcX$PCn-PSIP$dJEX?{%{>{5=H z)JYf4ZFBg-tafwC@!C_r5t~?4t9^PfGZF>;5XUxb@eVt^q6iDp8!qPdj6R)5e9mu5 zlCv5+C;&>z<&kM;5%)HZ273ysfnN3@W|x9K zmTqa?I>M;TLZb7dBPHMC%HK~2BJxZw&4ze_BYg~rU6QU#XlTWzYZK;rwXWj0P(PMo zLC7Cl{AI+g{j455Pgx7d&TDrG^5ev+lny&ZOIL~V&F7^OB8M(0k-TIh+H+P&oX}#x zjG4^!ivPQvb$sS*#LjYUittO>_f59`^7IW&`4_=oCx^aZ*KfpbmcUTgW)40SO_&~o z5*$^pZu;Ck8)iyGDKG5Of5MJaT1BhdDhbZWr^NuLtJdt+Clzexl9|sXUPRHIKH$8z- z)DJ>4!%bq9hJ2IZO#^mYt>L1Aa)yFZfrjyVoJ8DJ^@P zS;aaA{jNE)hE`t&@3Gva=AHa>s*5&nv`U{DmiXxu62fe1HSn1N;C_OaPyJ|yra*Q( zc|9B=y!J!E-4`^i)>;2`!oCW3R8)g(IKYEjF2nBNmcREpoEIx%bXy6T<9~Fm-6n<^ zV#yng`qPupPk5wD!a$WOhPkHCcWBWi3Cg;;eUCZ0@cLEgfF^mOf!PcJXKp;D`4rV3 zU-F*ozDA<%1{@+5{%;o`XGa=R*#CrE)@L6El*e=IK~{#yHlF)Dh%%*k*3zkJ_Wv$?d=Yt_ptR2LMUCZnlvnQoWUC zz9$`RPawI{Y@N|$D~XFo6lRg=C~%8L2)fh?=AzS2nK|0KU;RG-=s*|0R|{xLDOp%p zAfHY1tMB<)F2D6w(z$lPPXU^4qnW8TMXT%Rh6$-GcHbb`(TxmmzZ$PuqcVGfxg$?9 zcl>FbW+nEfRGVj837+s;m*-F6wi;NeIB)F=DJ2(6cJBoRh?Fv?lzMwy;Mi;N|C9IL zagto+z4!N2=o}{R>}*cjpw%j%gphefL{Cg_Xdx@ud zF%y|+j?mR~`V>SgX}dsdz6~P;x)vv$i;>RuapAxSTQ+ax!=LzfuDj_Tgb?I%IV{Vf zP;M|?toovSZBLko_mxh@ShXaNWvk6$XeMS{Cl@ow=K9&Vx^Qa0o0z09OOm7fLn#Ba1guIAl0)Lgw`>L1T9GOaS|E+cj$gO zj}@k^WFkmrdRV*hc>e8^|A!C%^S^QB)i)!AVCmAOKL1IZIBeTix$D&`mZw(7U~h*1 z_@|f9zhsp{CDAoBO@-JabPxtoGY~=tO-C~l=&=-Bu=B28P@WwNiO9k;kMX!ceQJh!r9?VE(B_20LWs-PU6w6#+w+^!y&8GOq2RUNK3T`EQ@!&=|Yw)U)c$Ol#Z!ZN`xL$B9@e1cYWYGXRf42 zoQpVhV!3{fI`>kRtUpbO(275~ULsvnt6VJ=f_vq;MIeqcd#?AisTIf2%>-sVm-6ir|BRq@Z9?0G|0aW$2VybJLd*1n6a={BJl}eP$YX>6O$vnq$E;t$1?Qhh zJdt+hr1M4ygqc)~%fq~wXU=?`j#!UaD#w~LUc=q6sJJ@`_PK{0N7a6ecjM||>)JAdE>>T>|XAn3Bfzwcp-y}Mx42ko_Ug>83;YrnVpC}2j{HQ&+h9H%k{J7v{w*M z<~#R@&OI%w86@cEmJTAN>;YU;P_r_Nlr2RdzPO%f_k}+mqs!lJ_q#-@&2yozvmxB5 z4I4J{%8So);eCR{A3U+!I?26{j8d8&jn4h>N!>Z9&w{k(>0f8SR!h3ILcI0jqxu1= zPD!y?}))(d8)BU0Qfy;ytWEZbtaOD=)o+3RF z*b#?J?760coB*WUoaV|jLTDKAv@f#T8?NAf_OSRUGp~<^L^z$o{ay25FMwSn_+b+B(od_w}A|Hzp zGjta~yIQSwHSM;!hm?|cz4>MI4lGg}AXtk;=#KTO+d_D+_ZttCrEdQ9(99S^YfnVi zO=m5ItI7zW1^aJ5*9c@-2w`->O9}|xz%Y{$<&|Ved6p5yWqgb4Q@W*Jr*(~B0)#Rv zN~hMc6w>|N{x_oYJB}Gx3dx!^YdPnPQz)0qKA%T7#aQ7`wYcT3hmozChcu)|8=_;+ zO$;H*`#Una2wvlSwk`htqz(M|m1pwTCvRkRZ&^7V_J&kIKSC>3UznwoNJlUtU>>@3Fe)wC8PRWYGXqvnBfa z`g}N3UWZ&8fpH)e=XE1P$e9C(>}q!qBC3s8FT!p@eH!#75kvwsipaxzpd}EQ3`Qn{ zZdsf)Fu)5|E#}_+<9zX+?c6gufuvKz)8l?^wNwaDG8-zrF#BBNAU&N8)WU8x(ezk^c-8$aI@+Db{2OHF zUVnzaQj@zObfY6)1x1H|_~8AFwCTyGIqL<_qgJcYY&N@!SH)tHEsJ{j(JRm7;^WpM zr>3D*^%|NzCv01!(jndl<^7%O+yU9h%0cWMH(~9qb+Qzdw+*eYkNBE3Jpb4YeCLug z_}Ez|(3eb5sZ_9Sn|HqX<>dSNT@LJuP)OzTFq5HqpqqH*yGB!Q&s@*H9vWsm?QV)@ zQzfirdxwJDc=EYMAhC{&X@j&oNQp!!-@>1RF1zI#h%Wv@5%xK_YKSXliGWjN9J?axDaC8hT$JiB&6k-y7P&&cJwaa+%xo4mW z&99R=eh4j=3@G6u`j84)K?FiKeRi+~*TVtxZhuj4T4=gXwr`PF2dM#nG%%#kl!#@A z9e?3?D!G8ER{oBrUUxHUrUG)1^V}S0%yx3x&p7pYeSW6hgN+6V& zWn1CPx;$P=3+xs`Kq{5ww3CnJ+8ge~o3~J{R#}-g`PA9Rk#UGaczgq`eN9@2wj+|D zx}iY1A!LH_zev6r5gki)Px@M=#WRY9ukRFueygywbrC(>0)BZv@2doDGxpu z3Bg|aUU9M=uEw}b8L5T5vy2OnM!8fx$`v7$zd$kFX>RR*3ZvxR|-#foetq;fW%SOfL}8 z=tY_yQ*~N`>&N`-AzLjPHHA*!vL*F~#o)4aXu2;e^57qnnfI9@kg<*urlaX5EvtbS z%0_fqph$hA8%|cYYdqq<=oBDF*p||XJh^YuB~lMWfo*wcQE=*s$C8MvqLqzC1FPBO zA769|tClQ6>+N-|W1)_Q$Px5=cR<)}UoeM%Hc#n#mvk zW2zPMOcBWaZa9Q)pcx6QW>tZY32h#`tY>q}fcbF2j6x9-okZYg^cYw*q!d0B66s5! zQx+_*^uA%;N>(l(VcU*fXqv`(>sNB|QA^PmEplLTIw!oZO(TZL_8{{8>ZE@Pu&4|F z?zyg7#;%mnmu$jI9qs67EtXN%CmCQ9Z9XLfMBOPbiZJ3KGxd?KN3&9-Q7eOhxk??~ zj5D(Kn4pvJLH>wd&m;%2rIeZwIz}u_y;P=U)zO{kQ6Ee0q7TT0fEwfxa3SwCny$dE zTg~WGT6j>bJZu4A3$V#mHy*7=>vF= zzD^6eBOOJ{k?MPUW*XVwgBFkD0~->c8F43_*3XTC0Esdb5F^xm?YRgd!3uxgTGV

#=kxlVpy3BAKBykRDmSK4?knR)NSlR_Cw_aSYIX1&yrTYXk8LjDe)nJZ{t z_l3mEE+Hv0vJIh`t~I6|1Lcc)@py~9F~Bc>=~)ONIA!@Tn}>Uq-r-s`o#Q%@L<}uO zTfQFAGXT0y_Xy0O=_mMGl--r^J<_H%Gldvg?9ah>tX5h)>oe4a$18l()fOuiQE7e) zpY$3s7FrKUWoC?Ky-cHNQK>dqbNmZ~5=0Gn^0`PLV~+CW5J*2DsFi2B+iOL{MhXQi ziUlMN?}ic)^0MrRK4=jk73!_&@s57tING)xeH5EFuI1Iotw&2GRXh?Pg@8m7ZP9YH zrE3tmzOEn&!ee;tW?P+KzzWZsoSQ=$8lorfhI2@TCWoHLIZGb!zj#APLhMQ)^tjSJ zB8gfa(R$d;I;E*mq*Rrrq!1kSymNwAPkQ&sbIQyMTqT5fFF-8Wiyli-FHIo_SG&-k zehEW#k#R-XuOYgaDTBYsAegcze#MA`RSU#QIESF7Bg_;uJI+DVF!<0r-pC1)V`!O- zIti00B}!#-wDT!sIIRfqejmOjN+$HwvhwIdoze(WDu0MQIgUNhhwjD8(oOVuPQ_dW zbu$h)jZqclrt`XEx;OcyE)Enm;z@}q(^=kN8xjygC7_8(Gd ze?|yI(==?`{*9FKz3s(GJW0JWtH7$o5$dFLQ4VDnJ!ApBrt>Tfp~sP}dO$l+ z3$Ddd3P-S6aV%Yei(hmm@}^rrkD-mMf>he$%@JYCsI!ibp1i1m;yo6)z=EE&v4I{kTRn8TNMwBX_4iO|*Kp?ZrQZ|i)AP4s$L^$IhGo}^eRQ>rxB za@Iv;`-ekzRME~VjCb~Uw?c!V`3rIw|J+um4ly&nm$8XC%y^2EUV7=%7F~o8o1~Oq zl2X202x0w65s0Q~+icsuN=o@^fOuw*cy@^T++k{^DH7R%(4svZ;ZO(}zCWPjEZByo z0M(SZ6^()FDHMQa#KDLmV?eqWY#S+6W!-j#UF;VA*fZz<(r;4`MhZQ@Tp0%ZPP7m) zc(Hl?{WlQFeyB_WHZuCeamRrkbAYP-afz-jAJUIxSM?)!+3dlc92nh4x!T~^voEG^ z@k(Ev#>jC<8(AqKVhJ!q==A4FDbKNOI|rPNDw|LN?gxGf?D>5u_J0U;_fMfJOQisE zi;rfqJVjxA7qMhs<%ujr0YNCysHotlqk;ua%Qmt(R=pF*DrCq5?UyQ4QmxPg0t575 z1uMH#-O4HbCOm!vVP??t%M?UuSDRpq*6cL0TvF!S-hMOE{gm-l55EOu3oKLnLUqfn29`@!L`gC-cE61 z7d^x4eOYfZBqFs>nxK;I7YjriEhFMLuSnpw5hY3^kPeuEwCYM8x#Q(@i%c(2YS`NObLBqJ~3wBGyCbI^~8{=>-#)2n+J}E9wcrmyAVP>y;3Mrx(S%OV(&N$e7=`hjG^)jp znDcu9jw5hg6gZv#nH^j=PaAsN1y&Ogpl%@$I*tsSPG~wJ-s=O=Ynx1ErOfn~KEcFg zAEdc^2S_{AR|O$zQ@ZL3$~RrxQP$fR>T%Fa7urYY@lK9NV6H^u+;s=>>pEA?za`M9 zOf$6ND3ZD1c@ZF`l-LJ$qvi507O-ngb1H=S?rjrhtAjEVcBoKh_(ynMK z1ZE;f&(hHH@iS$Wz2MDz(*6Iov*+t%Xgx*muTk(z zU4|{Cq*j`uTo@xia!eP~v0t~c#}6QKdDs8qa)pR{?NX8EO~0mo#aC(k`n$;K!@)~3 zz-ym%1mak<8o>Lclx{t`M1F+aqK&kyI@1Rq#j1DiRY-ghP^od%`vA zI9_*u0AH8RECf!cnFurOmS<~kEPHmE$;tMaZNjbBoJZT(`*+f~{ugNZ9Qv}Ah-3X2eywv?B$l)8n8gJo`%R z!s^{OQ@!)1fU@j?2%0D4T_9=f+Cgi2(hp$m_(tZRD?IA9j6f#|P)3)zs+A_0I`9a| zo@Hc)j_OJrK`v+S--$@2I^t9tu|FQ8wf#O?2Xz;O@_ zPUrbvbh&rIHU!EfEOce>u^pfX>}YU0PRYMw4v)`6+AUg- zKa4$j2oX;p@_mS&0YoB=EKbwf_c;1+XVbgs!M(lMlVdb*{x!lh&=)U8^bdAS`O?Nd zbO3$b7PlCa$2@-DvzkDh!PvHKe-6k>DgQwTp$Vap8C;7IPcu7uKeLA)r(P|PA6ld8 zZOHHfMPf9`1w6f7_ltB-`={E5a6(a}W~zm@TP_}$at=y_7FQf3V5%%%|6f@9ce^## zMZmKi-?)Xrk9`4Q=p6j3SJ0ZC2zy6uo96B(NFH~JujfMO5n*exYj}?c`geqXtX_`O zvKkZ)KS_0NlFZ;ba>E-PXj#vrXC|@kyBTe82w9rO-n#?YsCU*fmqnyA9fxoGEX?E_ z^cV?d+;NI_A`tAcLy$;gY&;>jh!$}5vz|a4PGZ@%{V|{*rTk|hL_!EbBDa{qwK--- z@26TkOru&LKeU!armtg-If9g18FGMmFrGTN1peIj5Zb|0Yr{SN0~RWQ1S1oAOshD{ z+?C%~1Qfxcw0s|Z@BJuRR%I_HHlING=4<`&R1U3JW1|tLfHwa)ybf{c;hYim=R1By zNv$|VVd6=e^%{N4PaxH|BHCMSHNh~@hK8M-cv}T!HXG{Snhx=lhvl`cd&m`^koTuA{f1n2FG1uDDephb&E!M$(bgE$q zPk^Byd&!$Hm%A{>=zRk|Q!gG&UAs6NhDB{-%P%kwzU<}z-k+D7HS1Mo4nD^8!EH<( z+|Nx{{+M#9?wsynNLG>UQ30FHW(PVo7Dr@q3gso8^?2cBh@A=H54o4s3ij9`%;%qv z$n}Pb2sy8p0N=B1JMpY1kT#JBA%27kLVKt!erTFOW^f&Y>&_yc9imzsXJXG*O4Fk% zVm0LO3Oc>IIkQB>_fbwUeot)(gcc7~)}q;D?w3F8Sds(IOJngevKPPJ?>TNZyY{;+ zx`f8TLgNTK2fbqgXf^8;Cw4NicPn$#2id;$POkahH`u@95q|rhpTcU?q8);X6xzs2 z?1{tvzO@~EM3s~CRNcbUkCu(SZx8yW6VXOiEmVT;9N@41BnYHK5ZZmfxxjzmBsK`g zq1eCj`SdP-9zu_)h1z#NmBM&9TP|RR6cB-T8mOieiguLIPP5;o4LzLKQN8~TtkG9@ ziHo15`LIaYvPc{?(etMy3{bA<8&ILeNa0+GBC8K+=hsS z&L!DuQM&44%}rw47L8JYi6`!7X5S8^Ws&d6FgsmzmH1nK_7&Eg@Ivx~OTt9bH-vHQX;=^5 zhOv4bGLcXgyO!mo0|a_3gi0gO4R1viWyOpcG=BRN=g`p+$&`xSdiXA4=e-K8f06f5 z8&G8cxBtlyh(rAr@N?U?@03!09C%B+T9wdEvWt!))w_)H)NaaCyO}=l2xcNjrgsU+ z?0~Y|L;%NmZNHJpqrV4my2v(+ScrnGgZrp&d%(lQIx+MDLHfLxq37~}d-l?ro$C08 z0_In}CkjnPMkm1pLQf=;R^!3M5ojictxdUVAa)`&mDGc7ZXx0(7?L_mok?<2} z!z0kL5T*&q3_>?m-}mpOwR^iuAdU$=A*CGolOqrhH#unA_B((dNGU&sO6u1@6@bYO zZz4UgnqBu^g)(xzqAsFi0FQB;e{Yu&P_ z&Wtm)>k*2Fc4J#jcY@mVXX=vS!91e}C*6KLa?`Ik_Uu=&c+D}PwXBtkTzTCO7?E&l zvq5aJgM{BD`%_4u)l@0VZ9HL3N920FM(ob?*)1?*QPqf_a_z%s4S{&9TsPXbeIf8L zDwE88HR=tn|M52|&rYy%(=i-%!pSrn73QY)k;n{?$`2Du=EA3_ltd*9`9kEQ$|!^+ z7taYTWw;H^46A*%P36|#IvZX1&BZ|K1?QpV`$G3r@4neXo1(K}C7=n+r7Oc8Yiau^ zN!m8e+8p)r4E4$k%~}cD5p$&7VtUUuX7@c#W#({Xh`o0L`Z6Xn=@jKsMIHK$I=B7o z%e?w;zwG0fwQ_;qeElOF+Wja~rcNde8?8Et{zYhmgDSn)nLlN$@&G_s4PPjKR6p#= z31qc~zItQu#}Y95Cru!p*F``m>;JyrUe5F(rReV1dKXVVxRoWV*K+)6FCa5eqEZ;c zh^I*97Lm*jpu2@DMYvXo7dI++JO@!#e74AdcJ1cIi_Yoic{N9Odt$CUSXmN;CP=;T zC1H2M!F@D#JQC=ZbTM`HY#w8ASpK)I8m(H9dZj?UGE1{Ir+^~bg*M`=8G{D3ooOQ^%6#a>1}|NmeVg4j)2VEzC16L}Y>> zAUpu<`;#XS+qP4{`$WJKH8*{jt=C@eWBo15qFJ0|?;XD(mgylsvYMV{>uAw@5FRPML| zSuOiK+ur9Ii$>7<7lrPd+Pjrzt>`-h%vh3GJVh*?!Y~tPnvR_tqByl*iTbCU&*%fU zQY%gc+6yZT=@{hmSqig7Xa1Yq{>yJLGd{|WyRT#a_N~}03)9e9G15aO6-Nj`qt#^F z;Rom~j;&umUcl*8G_CI#mXg}Nw{@*?9$UK+E#K$=y=77UpI`gG z^P4n@AA7QjF7|xiYE)=7YnZVlX3S3zew|n%G@bn5O3Xx>!uTFmoOBL{w%tSV(4KHM zrDvQo#hR+z)lrPu_t-t`-+nJrN_1VLFP~!ZU=GvJJnd;nO=G$`!EAMk%yf>$*`?&- z10+)!jAR;N8XeBjY$|9Z-9YQ$7Zc$RSwLkRJKpdeqI z8sp)cf9W|$)vEROW-#=Qxm000x2VpHQ=J*-@V2{1_72jsbRB&wH_@!kQ4;&m^cZF$ zO)QxwmdIkn)2eKBK;d4{1nj-09d6<|)vd|HH23cgSerUWbmI6^LzbxO19xE^*z17; z^#HXwujI*RhVBz~o&KSfA%d9imC6ocm`P^F9%tm3Q!x`Mrgm?OytdkCvj1?wpV_Bt zXqq4yH_2rZ^yHExVrHjOu{ZZ#(-aa6lDS%e$_>5EHva zZFUl4@pKQ3dWB}KM59trs3V%Lh$f!KjHfZ;DU4VOT~`Q-!m0Ke9n~$n zidW4&Phc0O)u|i=jnFj`zF@Pus_Yz)&R9ydwE4H7XEUDrD4&_qI61W{Ni zSDVzDO{`3ghuojN%?{6(lv&nQWT4 zF1sq0?Y%m*{shv4i%I5&$PX+>AV{WqkWxjcTFpAmW)-Vhr%|1yR+{XXfi(?HH=VbE z&`mVWK+|=XXxgV~dT@g;OBX4rZ-3Y|Q3g4YF}xIG@lroQ?S7ov19u0@@^qd7Bwuh| z5d8yW3u#r0P##M7oEbp_Lv{OoetEW(>oKkw|8pFb;)jWmyeH zJXQm{)uh$3Xj(Nl;i)4BJ5D<@MQUhMNN;HDc(|)GGQQ;`m09PxXYRj#jI34tMl&}o zUm}tz(vH>3=L2X~RMFBvFrtv*Q1>7vjH^KzCjE=oGjsS!`c|w*2*Kg)_bCpmYl=Gw z5uq0e2an6Cp-9IZ<^m9j&YVl2*|eD}H_*%&>rZ)6*q;+Y6sXb(Hwz)YhDyS#{XW3s zjAse=0C+Xf<5fmmR+9&B{Fx8aNoX3ec!F$Fb6wlMl6%hIWX~W&Yqwy;lJqWGi)fcL zrn^H>IG9#3-GoFsw7C@lDKI!GZC7;CVrdT`UdNf$*!_gFX}rk~j{b4%Nq*Dr;e%9e zxz6#LI|R`o4Z0NsH&E--r62zzltp-i&1O+dj- zq9t;nYg^Nk*u@#o=92C>L^?}s?Izz?=YH{hWUcBe)ER6$`?5a^qkq^IvQc_U;|RHY z+7LUsfo8-RSbZ`xho3-;XOKuH9^V=~DcqZ7ltAe7A+;TWijZt+GhI|%^0;$f2VdR<4OGL9p1on>rn>R9gkJ3Ftc}?2V~9z z!ie9Y+HT7m8)`di1A@X_oqD51c3_zGC!ZfRn^ytbpQ)lcfAj?6B*45%2;tjh<-#Pp z9=z2bg$pDS3DR+IF1P69ueVxc21dv)SxqdJC)2aI6W%e88^fz^O79}ibFGii9C%Nk z$mC@Fg-yJI_{L*Z0A5@7_|@gubF&dvGN%WcLGIOW38BDC+d|d~5f9f7a%=ohq}dtW zAin81*CJN@$+uj~RTOZX&~@@}e5X_L*=xO$*wyI(RcJ0j2;Ec%goEnt<)of7rGx4s zbkJg;naDO0JYbqxdNT?$cW~VqSoJcq2exzYq2DsK>prYzEj)dmoEO=$5SmUb)k7-V z$8j5nS-Rl_vVDtu)+=Yf{9D^>>+GovDkg8aWBxyginp45R+K+*>NlJNTnwB5tOjxc zu;E!?R7&}PZQEA^*J+wI>3PfrQcBJ5`9z%!>GHG;ngtWnKVmC_2+ALDG!isnzrvTrKLgY@UQNPk#P+cPd*C=(5gwBmk57r6<}d0;IS zM5xtZ*R7Yc=gyz1$YG~(-AuCn{J&z!mh;dI)Awuzu>(uY?eN!9y{y9*+R8 z(==_{9}NeQQff~1s80wX)^_W>_hbl6t|o*S0sc`+`Fh~fLWoV?$yW*adWg`v8jy?_ zYfgUyg@X@cH!H;ROMQ4$-TI|In21C_vW=MNpdd!I=U-F}5zis?SXj&fWO)v|Que9y zZDT`x0l@;_7)zrIa@aA!1U>Be`d@l=5=hw$IQs zt@sBg5ZktMPNv`69eFS`c~6P8DFXY7l+y5(1Xy5!BCpXja*K~f%9bi^ybxgotuIEV zyCtRzk$|fCp=E|cZP?`!vQqB&GukJ+VPLLakE~TF{NSrDT1zlh1qty@$CAD1wO!^x z12Y4y8nmkJJqrThxp1hd$g%p$GSsTrwF<4dBG@goTn}0*;{%p(4?#_5)oHJzJT=O} z2Y$=46E9%V#?!kVG~L#uZOMEJ`)UjD*HX$)K3xZ*@p~eUKHvvJh?j)Ljlk(?H5HDk z&=8442z@UwA%+*{s0%B_o|(crd;n=FxK4A~D)gSdkbgv=&%3d^iD}F;xprv|yIe%? z8wA6QbRGt|ojq3!Dc(wC>cz%e?6qGj{+zT@u@v3RtHygddZp+Kvx za`&R9KA%StsVBN}XKQMl+C8^Yz4ta6yC0`DF^067YI<}7V`MqWlg}i3@#`=K{e^Ng z-QcKm-p0({M_GC5D-ozv`h|j=}LrQEa(QXXQz;sh2B5pmRRu2%Uh+C zUj?TBAOzwN$K}9_B65Hg`o`!UDz{um{h@oY#`YsEOIc3L7{>4j@lD5(I^#u{E7thy zZbVFm?{mGz?6>}n$}QJnS1Yc`R_`BT;D7%MvGvC+@C=D{_z;zwuc7|v1GHwRF-Mls z^R^G5dvI-|Uaj#%6n^v#s`uQAtk=-{2gzRaIx;W11Q}7T+1tJ~HSR>@`gg0|HwZxS z@~=4&03E7uozp@i|N6fqwtBtdM0N{d#(b!PzHw?MnAxu8-VTB2PD*gt2`Q^(3P1lI zrK_&MF3g12K?<;1H23YIxqmm6o3Ew+{r{x$QarDCwx45P{b7>5!~QmGo5~GWQMmkT z3Uu32Kn$6SUr*1Uzo*;AqyET!6n^|on!9!&ZJW$_7t`~X9|~T%8aNKP{ux)&ZQC{+ z&hgr)6Rde)FNN=ag~}Z_Ky!g)F2f*o+PU<+<-Hh-Mvh3wDE#!>6u$k1$lnqtoW{^U ze<}K81?*~t;uYU!?$n*T9cuIE#zMJcJi0L zJ5q^ne^>nZ_n7_G=R)_U&U`U??*MbZ{6W`gN}PB)nU}nh^7a2k43Qh)URr}PXh*Tc{!zfNq`x~|V||80#Q;?TQZ<(4>T zzhWDYW%x7S3GcgVh1u_XfzmZU18*dS8DsHReu}wxS+K2-XqtA})0qqHcOVW8_#i5X zFgU}MZ@ikrfA=;jH(!fvG&(K@&zY&jCnpT2X;HrES`PoiJE%YY$h=||fZeE5z3uu? z?Toe?qp|1l5YRyTS=RIf6PJCE;*Y$$gd&ClI(VNq>MDQQiPh2c&mv}UI%UH6L+a9sPd$mEdq8k7I>cT{e>p4Q}H?70HX zy-!m7*>^bnw{N9-#|;YrEF3wJ)E~Z=@ejY#C5{j{9Yl^pN@x{knf;IdPx*)D(e;E7 zRPVmoQ~#sWM${VE^*Ym^|2U=p`Z2O;`RA(HpuX+FsNrn1pXQwWF5Z+=fe#0B!)2?* z+^;TY>T@5(o}EIWf;)kD!jIP1fxDD05MXO;Ka-dJ4b9Qr^NToB6Et@1@Z9fdL!c52 zf|b3cq*a(^@)IAT{=i+}2@q_H;Q~pkFyjv^Z?`!+#mrYf-N^@c)f4I7YnO|(rY7bU z?X1ahH!{k5fBoTmk=2ra9PMj_5_Rei-2;{t3P~4I(i%U=+MWj z_BXU94|fhL7v0x~9vq$rXFX~U-%I0($L2SRIQ3AX+6bupr}(DXmXyvj>v6IjWhFw%aDym5oOWvltz=(AAf}U6OV@K*|q;&f9T$>Z3xGS z7VKZ?>Yq`)$jHX6)+>;?TsZY$8wi0uG~z$0CdMfI z_?ytOJ7t(fROx1cmd^T2sIolA%r`&l=oSGecl={T)51V+UQX0((3+X@-8$Xd$51!v;t;+1TKM$65#GFLdYfOLnle8wry0>8%q|bUOga7au@^5{gV@~frj@IP3 zLYnU;$~}0GDs3Gx4zK(>cjfnJ?%TQWTtyRt{dBqM(=qeD64(^{a_(1`)7ZHqY-IPO zUW!DL>?Lm^^Wsa;2ZpIXdLNUY`a4>)(;dyk6P(o8xt*xgKI_naT2m7q#n2D924D>P zfzt{<{2Hy9X-}U#LEh4DV9l-h3dR2^I-@GKH2(cNZxp4?7^u z(pS%;+c-jPc%6pQA1W_>sE$y3cq{d74-nsS;t?%u>FS?S+j@H-+{WXSGYoqE;(cUa z_687wBnp~n;^Xh@A`S~BZdw*Z`DdF=>W|*n6#!4f)J@iby~^4s7oIB-k8}iAo)Hnt z2^xG)unt3OVvM<8UEZZ2y}Cxv_cHJgpCSLIcVP^TAT*7{F(;CH?b{-Y(+eRK;aIIu z-G|1m9S*1JUaP}gvfTZ?{^)&FZoW36eMgKSc2-{}FL* zr;YUaFDHBPpE*b_>i5L4CzCk#vRXN!xzaM( zs5&9D&q%0=l=4(yOORd7{rX49Qn4#57qJ+9@BbKy6P_PZxRWQJsg(LCKZyg28GLSI z`@;*04aTz7N(OBd+hY%#5cN*1uZs{@xQvt(8Jh!p^A;0()tnD64VC~;c<@W23SWMJ=`lGHL zCjz+I!CC8(QX0T?6!PK`6NqC+eq+$A+nS!F;yI=KGJyJ=z2G$@PdXzy_9h-zUSO*k z5YHr9I;%poy-~o;CXFYzML>0WVxUr4498(szWG|}+wKosA1YYb`M0LK1X8-@XVf2i zFk)QLEt{w<+I3S3t%)(GzC|}btz#%iX6XOG$4Q?0LY24C_Ju83LE`vRNgQ_ylb`xq zr<_@LOi*iV6uVpsh2HoiodbKR+;mOI?Cm~J2y(A{vm1sV-jrQREuiWu3NsdYU+vNR z<^jM{B6<17tC5vbm-!5@hnDM&a?-kB4vzosRN$?^=~Bw}#FT8?z8&}yaCbZJN9&fZP+$e zgvZ~fdt7@Zc6p8{!=BRTmXbc_!mi^|m3E`o!(6rsOf%XM>8XhlHICNgVGqoz?AnI= zs}OGDSa66!h_-?0Uxg4i2qE4sgxDa27;@gLg%EE7ZUR0prA$R~5Qpuolv19F%GRo& zkg+uaB2 zgc+lF#kXmV9Z*&s!iRR~vw+yTqY;S|g)d%)T`ER`x_Li%>yAsn7+E&2ce*t`7J6pz zbNcKHNS$`>yo4r%AbZj4sN8rJvR?DeM{umt4XuwjplVgMhC*}=KuVu?vEt_4Jnj$P z6FCkX9VKcUt*LQZhYxxZru_hT2nB2*0^E51^`M&-D`ngE+kp?X(W@9>2Uu!{Njn%-nR74hDnH6fnbL2rh|F%) zhet?kIWeq%JpRZ6P&Ja+>Z7p6Mw$Edtk1CtwgR`R%0sNQpniXW5R+aQPp4`_)b z`oN;D30Sh(P*tJk>Ay%M$-n+DUHG2)WN&lXO3W2&ojH*Z1(s(Q^{9Tn-^&c-!uc&4DsAI`w6=a>+xD5jZ-JKqQAsJ8D32?RhR?f; z$1`m%Umb$a^!hRiKl%pN!F|dz>-C@t$X@hXr(k@b%_p{XJh;N^g?GdgO~YKVmg0}U zrNYXE-&2n!)LR6+;6j3-6Weqgh3|hwDYjkO@K!nSey{cRp=EO2PwP?WC(SKwlj_U>>t`^{$)10lD+u*Iv{3QJXOax?qn9EmpT@Pz|BGSgtl^ff(s?-&2 z!1^1_6RYwA=kF1{gb>tsJmffeWT>dB5D;6xIWk8ADVh7_51pu0Z)}fxMr_?CGB0^m zBx`Oy`Iw5qap9M}ZA(NViLBSC0Yn(P=iG9g$Mw{Sl}ep`fimNI+7(WWn7MonjqMN9 z*tNrrGxD`z#5}OG(tk)J(R&BbB8b`zRGcd!%cTGouD1;>R4`{D53n)hNyuu)MhQQ* zRkzT6St(QB_CQEF@vcYw=;OOqbt?Yi`&93^A#$$t-a)djxU|bSB#kE?jf6PuIu55W zY3i((q7M%H*W9xn&0R-Wg3z|9-f;utA9*+9AATp*yKai&Sf?6}R{wD!#L}po;`!w1 z=AND5Y&Xw|V6IpbT5P*KN8yKGQ#iAh6%t*vY!AKf{)bS>zZ}FPCR31F}YX0g~K2E^GL^=U7Tg^%I`&6PBnx4o8C$BN8iG(mOW~|2k>oVc^KKy zD|Z)Wko8(90@iJ!uiuBLctl*p>+ug@?*iz3gIzg@H93ZLXn*Mb&YB9$m1`pg(qis6 zKc?`*uSNGyH|TlOyU+&~MUF!@8Y-qO0sybuIHZK+aVMkq4Pq`{Ml}L(Pa@q&Y%QCQ z-nX`mb@-r4!?^9Yu7lH>7$d%6OUT-1ppr>m8>Di(TA}g8qv*W@7)w`%(j4tZo!0b( zuWYejuooDMmUJe_YEs#H2ZitcyIXS1f3HBq6ZF03BgEEi3gxV~&5@l@mM)3|g&-`#szzV8XS=4p8{PSE<~1m69GJ<|=dk zC8W=PdDn5+wJO%wfxtXSqOmPI`zn3j%Me0fu2|D$%nC=W^qZfMd;Qz}*_^bt%*alrYAz1W^-go~WlFvW8yANS>kDF`J zZbJr&U;44rgo`;~ELu$F{Fl4MFTG(3?L}@sEBGAc2l#XB(wrl&iclK}f8oroCf;ss z0EuHyddkU8*5tTvKH50g!WmC|!%9Vsor%H)jMxg z4n;a`c)Of@{yFr#?E@k6e9#x9LfM5608fbS<1iL4A-?H&b&#yz?B*bc*BlBz`Xca4(ZzfUOn%}+%0n(?SF4<|b_~$}zK@YS>2x2v4Q8Hs7gR)8 z^}3~!3jw)TT#86%Xzt(D)hZ}N^mAfI9Zll6ld0Z*ebgcA3_{0TvLdqIZsy$K16|ud z2;vT+Vz*?mkaf(q-SI?~OcXJb#IdJzyRp)q{&Zy$SuklVaWH5BX!nG>HA+F zMmTY7-Ns=Z*w=l{qQ)U0b?RB@S!Dn*7B9mXUW#>SfApGLO)58C<2XP4#3Mv>8(O{> zE!Pv8D+3ttJ*3%G*;;l032=If%AGeYpt*N&iUlhBE6P0Tg`kOTJeI!q{3GV_HC>g{ zHp*agbhmrL$u4GEw+)ZQ&{(vD)R`|T>%oiu=yWmk63jW06Bu+Y= zxnEu$z2;Hln5PXPAhG2n^ay{Q5oUjfXzbeVSP>jHCZq?s+gtfTIykGs7q#mvecUdL z;)*-!xmqSm?&WVJ`^q=_00+8l4B4pDnx6EI)`unTZ3CZ`NRYYU)$ZwF9o*}=#sO^e z_R&?n)wA^eAyQ|kA}(!*TeuCnLf&))Zzbn;`t5ZzD&LJT%_9=4+NWD{&*RuLlcBz} zvAa^Ior~tot;?BPEvk3i!0dm15$oVS-(2{>>4+|s7Hq>dXPQ0vD zm3-*(H;?&_uz7Pn5leV5ms~ThVUl>>Y4p7Le_^g%cf{5j>)<{oj>+2>eCY0>G*pLm zX3o9XF>97oB9J%c$$P&DPNh_eVIrwc(0Vnp4FD~jnSWDT7S_~6WE+4ge6s-82#Rc# z+pq7Go(qbKxx$w2*UU4aUzPD3< zushNrjqMLJ{e}NabKlO;Gv^bT(`R4MITW3-$JTBj@w^vMz3sol>v5#x&~?(MpHI(U zydQmFQIrMuyG9V^Q6E@@xoj1Uy*oMb3NrppCS~{%VVWeioJ8)`Zy|oniCq=PP%HHs zrE9OG@Pn^*qE}g{Tbb>>UZd;8S}nVIsLS?8A)B_f&e#UR)N z6}_Z>o2#D9lREu;vah^UnYFuE?Y#fCs}<&c`9q37`IbMbx=S10-?dDR)M;mjpDT2F z-ugc3k8E`gy(1roaLm{FH@uV7Y3Fo1nDzi)GlIF^S~kzXhd)d4%I_(QMPXK9F9nZG z=|}$#0`#?|EG?BGdD7`*E_^NV^_x{X>yZ$K-J-GmVP?PmdFqcn=zNjfYe5T^o6;Llc@SU(G9c#@t)!Hc zZ@L=0IOBg_yWCtXPWGbLBdb-)H(gEfXWykYHtIPD!*k_+?~mN*fWi$eCUwq5q|drQ zMJx-kAjgxoP2pF5kzuq`lTU1AJF0bu5Uf@ixUN zD8W%&3MWN1Gy_p{NOu z9z$~9Zcab>AlVbgT!w{Wb5$&BQENrbEq7A$jb#N<5vBT@IsOS<>(?3>qjbvAo<9#K zfOl>j$_g0usz^QwK*jVq4E@2Av_Jj0K~T|IkA|QKRM!xm*i7Z@MaGR#3}nwX;sW0X z)+wb30uKQ%cq=%Wz_1vx>2s) z`oN=umpN}f)cxv4V%IJp^o7fc!?W7s&7S;}uAjd^_m-a{9cMhI<8n$9<-c3CbwsCJ z)91WInUyg{wBEZ+(Pj^B>~%al^TP)bQI zi0dV-_1|f&|H_*T<<$99tcvjXiG;^br23ZIiSO9TsR!?M6==Z}4@u3T^Bb~HIn zu(28Q9C_*ajqFqfTxA5(X}VwCNcG}7(ODsVE67-VV>2!j>r5QiNlFXQB!WgI2`J-vyYim$2sx6yQyBhgxJja2Kmx1S)h{%vZs!d z+W#Is+g>5QYr88yy<8rCfB0MDaLhseDJo{n!|#pS z3y_xUhr_DTPiY9pmx~|1iid9Y0+~=enO5P>ZT+bS7;glsnsd(drGq!u4>D zy%-PII08W`=PdHudhggL{q?F0t6yK*s@D2V-~nKZU&Y*@(MGJ4i2M`qqSksDaFd-_ zVil7_tG15VtOce#vByH73*v>kiNCRx_>R{+5lp&>TiO@G!!0a+7B>5c3Jx1V>`R4{ ztK&TmkPbf{=AXe~BMFahER4acu65Mj%ln4%7PlVayZ*aK|2#Ehozp2<+EzVGY{p!| zmt8?%a6Kv%LMIbsP8}z)a~nO|HX~gfd48@$E$uSP_oX!{D?nsY3pIBvH&|wCo^ThI z?mZ|xJOJI@iF9`sQIGuB!*8yN^00r8G)(Lb<@X#GYk;SLN43^>E2X047&knsR0dP) z@F`#&kSSKOtye*}KkzZ|eGyrywQd2vg2@jVYbUn5XwX-`!P(6l(A}K{<}^iNHE*SL zL1k6HO{9tmkjFgg%L7H#mv6=zR8xpTo=N*yl01Tbk}Lf)xt8QZ`*h?a3?4vFUSstu%q5BTRmEI_-bO z^uclP<>B3ko^eP#?zxhvyz|TR0(Gid#e$qwtcvKBS5tN4twgVw>I%tM6*21WUBRgp z%aN{*e)I4fhc}|fibRQCeJ$~An@jVkh!LCh2YySq$+E1Y_8!duuZYMN;Bw%4U>YW; zDOV)62UEIj7qCq!wL>X&P8eBzqMF#~4tqpo1+WlPQM8vTzkD;vz3&(lcTM3ADFFD= zZoo6`kpvH@n+k`ioO2zaaT7T6uaEg^MovfPpqsw#3OaLb@Y*2`$Q^&+xIoQdqLZij zPu8%D2n?zvV}n!s0ml`b2#)wOEDN1=M2-HAfa8?yB@T}sOKkQcVzU+)e@+oKB0Qmq zy5;wC`X3(1JMzi|rz>Y1O4&t!zWqHyqsEZf`I_NVghzDpbhrO0@7;d3*#5NlD46PI zVOu~_e)ozCDj*IzhN&623I`gB3P-40em~OHL1NeTGR%jngo)4j3bBYZwor5Daw1KW z$(}ey$4^%k)R1sK6B;+6XeJ^U)k(edoFh85@N<>(ivtu`)q@E&H1?u+IJRSHvt=+u zY{on)7k-t_=U2OGZKyJI`I3d-wB!C33K1GTj_A~x#HPe<_$X`af#D;m`QxR;W-rS3DHNh=(bs5y`ticM2vGT@g+wlE z^6U3Ht#uopF`YBywOylnvr_7kg2OD6rsLTk8l=T|cM(O^%hsqMR^3n{jaO1R_j)R> zn&BJUls-iQhphSx~Ehwd#K>HhUENFUticrz9Qr!#L= zYw!?4qs9`M*i58(Dv^oJW%~*o0@DT@R!X(tgN>#$8G5$<(%>zBxX&PnlmMr5nQ5aj z!V@M@IsYbN*DmOdCU%WInV@y$Uy^v^H#lQ`f@2yO{^;t0v{$WlJ22U@ti!(#0s;m= zZoM}XG3QN9AKK5^P5()J$7=@W#+j{UBcQ8D1)+<_5ov5D()>lj4UGf_521*!GA|@Y z57YVL&q(aqiJUo2VAu$%Z@!(%`8WE3tcljzDo8v^B}pE5pX7UQn_@RwsF*&7=;Z0; z* zQ5^_i4XPnDW<24BNrWdf5gIEhmEPZ7syRv#VQF7A4zCT1Choni8M_%zSlaA+CbM}|((diW7 zOPd&S?+ODnSJ?NzS4!P?zNO_p69I7u$t}Q-l~T3EY|mt~WKJG4Rf_BsOBJgmP&d>- z$pk~as=_%gwtbJtrHEO6*>@S>5#TnZR71(OiaV7uw(dK@?>XsgC;ibur01;J$fL&^ zuz-GyskblQT6K<64gDdl^-18@7}T2oQc5KpFq~1~QDC`JD%fYgv^G_W6XsA*VH-BK zpM5lu#%)Mfr$L$t1pL-#4r?iF0V91U;ja zx=U+41=s)#>j#gY0FPndDC^Jl`SbluU(b8sLi2eIe${@ocwIc@&9gnF7FnRPf9)OX(KKo-{SuQiAbG@tQ3)s^AwJ> zh#VA=$3p|!5|>0_0Me9IQ*q}DoHq^&Lyd00fMohqe> z%(44+E<%*D_mgC?wcU#Je!z zDHCjuW~tY3%DyZf0Dgrj_Wri*;Bo1yTI*WiHsEU*5batZYPWHcd~D5*V(Nt5#~?5k zm}0jx*#6!Fyal|ZwLTp1z}939epEeh52i-rSeHL2KQ^(wx7&d=z!s%c%Bx%3eW?Ow z0CVmBTw;$a<}kr0fKE(?+naVDcVNPTipCI~=UQ5}O1TJ_540$yE&^(`)?v?@W`Itu zb*tUS*X=vc4(ENxG3FSs1Xu=4#I7G`&s{6936p}c|93IA&rLu)6CATQ&_tjC7y(4> ziRc7Q*pqp{7Le9ro4Uy2)dAJE$24P4Z2M<1q4pxz0nNZvrPRfCoZ4C75bz$bA2@j~ z{jm>$DtlaB0Xd5)@FJhbCJ~XSQmWp5GgmtfzFglrfi|U7XSo-3t#y^wy20KbF^nU6 zzf$UGE*E2f255i=Xn+Q2fCgxQ255i==>Hr2FHAX^lh5t&r~m)}07*qoM6N<$f?p-3 A$N&HU literal 0 HcmV?d00001 diff --git a/layers/+frameworks/emberjs/packages.el b/layers/+frameworks/emberjs/packages.el new file mode 100644 index 000000000000..82d7017e2f87 --- /dev/null +++ b/layers/+frameworks/emberjs/packages.el @@ -0,0 +1,77 @@ +;;; packages.el --- emberjs layer packages file for Spacemacs. +;; +;; Copyright (c) 2012-2016 Sylvain Benner & Contributors +;; +;; Author: Robert O'Connor +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +;;; Commentary: + +;;; Code: + +(defconst emberjs-packages + '(ember-mode + ember-yasnippets)) + + +(defun emberjs/init-ember-mode () + (use-package ember-mode + :defer t + :init + (spacemacs/declare-prefix-for-mode 'ember-mode "ff" "file") + (spacemacs/declare-prefix-for-mode 'ember-mode "fg" "generate") + (spacemacs/declare-prefix-for-mode 'ember-mode "fd" "destroy") + (spacemacs/declare-prefix-for-mode 'ember-mode "fr" "run") + ;; key bindings + (spacemacs/set-leader-keys-for-minor-mode 'ember-mode + "ffc" 'ember-open-controller + "ffm" 'ember-open-model + "ffo" 'ember-open-router + "ffp" 'ember-open-component + "ffr" 'ember-open-route + "ffj" 'ember-open-javascript + "fft" 'ember-open-template + "ffx" 'ember-open-mixin + "ffi" 'ember-open-initializer + "ffu" 'ember-open-util + "ffs" 'ember-open-service + "fgc" 'ember-generate-controller + "fgm" 'ember-generate-model + "fgo" 'ember-generate-router + "fgp" 'ember-generate-component + "fgr" 'ember-generate-route + "fgj" 'ember-generate-javascript + "fgt" 'ember-generate-template + "fgx" 'ember-generate-mixin + "fgi" 'ember-generate-initializer + "fgu" 'ember-generate-util + "fgs" 'ember-generate-service + "fgg" 'ember-generate + "fdc" 'ember-destroy-controller + "fdm" 'ember-destroy-model + "fdo" 'ember-destroy-router + "fdp" 'ember-destroy-component + "fdr" 'ember-destroy-route + "fdj" 'ember-destroy-javascript + "fdt" 'ember-destroy-template + "fdx" 'ember-destroy-mixin + "fdi" 'ember-destroy-initializer + "fdu" 'ember-destroy-util + "fds" 'ember-destroy-service + "fdd" 'ember-destroy + "frb" 'ember-build + "frs" 'ember-serve-or-display + "frt" 'ember-test))) + + + + +(defun emberjs/init-ember-yasnippets () + (use-package ember-yasnippets + :defer t)) + +;;; packages.el ends here