From 8a4205179d363d3d7101d6a77aa1984f3b917aec Mon Sep 17 00:00:00 2001 From: eldarerathis Date: Thu, 13 Sep 2018 12:04:06 -0400 Subject: [PATCH 1/6] Add a sample extension for the new repo service --- repository-info-extension/context.html | 40 +++++++++++ repository-info-extension/details.md | 13 ++++ .../images/fabrikam-logo.png | Bin 0 -> 20094 bytes .../images/hub-content.PNG | Bin 0 -> 22601 bytes repository-info-extension/package-lock.json | 60 ++++++++++++++++ repository-info-extension/package.json | 13 ++++ repository-info-extension/scripts/app.ts | 10 +++ repository-info-extension/tsconfig.json | 9 +++ repository-info-extension/vss-extension.json | 67 ++++++++++++++++++ 9 files changed, 212 insertions(+) create mode 100644 repository-info-extension/context.html create mode 100644 repository-info-extension/details.md create mode 100644 repository-info-extension/images/fabrikam-logo.png create mode 100644 repository-info-extension/images/hub-content.PNG create mode 100644 repository-info-extension/package-lock.json create mode 100644 repository-info-extension/package.json create mode 100644 repository-info-extension/scripts/app.ts create mode 100644 repository-info-extension/tsconfig.json create mode 100644 repository-info-extension/vss-extension.json diff --git a/repository-info-extension/context.html b/repository-info-extension/context.html new file mode 100644 index 0000000..b8bc518 --- /dev/null +++ b/repository-info-extension/context.html @@ -0,0 +1,40 @@ + + + Repository Information + + + + + + +

Repository Information

+

+    
+    
+    
+
+    
+ + diff --git a/repository-info-extension/details.md b/repository-info-extension/details.md new file mode 100644 index 0000000..5770704 --- /dev/null +++ b/repository-info-extension/details.md @@ -0,0 +1,13 @@ +This extension is an example of how to access information about the user's currently selected repository from an extension. Note: this information will only be accessible on pages that are within the "code" hub, including new pages that may be added by the extension (as in this example). + +## Building + +This extension is built using NodeJS with the [typescript](https://github.com/Microsoft/TypeScript) and [tfs-cli](https://github.com/Microsoft/tfs-cli) packages. Once those are installed, open a command prompt at the extension's root and run: + +1. `npm install` +2. `tsc` +3. `tfx extension create` + +## Screenshot + +![hub](images/hub-content.png) diff --git a/repository-info-extension/images/fabrikam-logo.png b/repository-info-extension/images/fabrikam-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f9bece7472101cf35a4dfbab08c1a49318b5f8b8 GIT binary patch literal 20094 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 olFflb7Pd#HmAOHXW literal 0 HcmV?d00001 diff --git a/repository-info-extension/images/hub-content.PNG b/repository-info-extension/images/hub-content.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b3bd96f021f8dbcdf30927d2ef5db862511b47c7 GIT binary patch literal 22601 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 Ai2wiq literal 0 HcmV?d00001 diff --git a/repository-info-extension/package-lock.json b/repository-info-extension/package-lock.json new file mode 100644 index 0000000..bf772cc --- /dev/null +++ b/repository-info-extension/package-lock.json @@ -0,0 +1,60 @@ +{ + "name": "repository-info-extension", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/jquery": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.10.tgz", + "integrity": "sha512-W2bE8pGh9Tsg8mxh+B6BSH8lTG6ZV7K2ZMAlEwSTqKFU1wMI5HShyRKSp3DngnxCmDu35tW3RAC4mxBFYRsTuw==" + }, + "@types/jqueryui": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/@types/jqueryui/-/jqueryui-1.12.4.tgz", + "integrity": "sha512-N0h+mY9CgvP6eJc+Uc3yQiqXu8mxR1j2FcxbZz5RGrHR6POaWA4dAFsFbaLEk7CFG+Kv2s5iFx+xy830jongug==", + "requires": { + "@types/jquery": "*" + } + }, + "@types/knockout": { + "version": "3.4.59", + "resolved": "https://registry.npmjs.org/@types/knockout/-/knockout-3.4.59.tgz", + "integrity": "sha512-uLVb9AWPnQajGE8QETNVS2qPpxTVzsWOWP9dLwBrqfIkatR3mCOoU3QP8idI4YDwRRxdTlYgfSeMFbUOjENvyw==" + }, + "@types/mousetrap": { + "version": "1.5.34", + "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.5.34.tgz", + "integrity": "sha512-a2yhRIADupQfOFM75v7GfcQQLUxU705+i/xcZ3N/3PK3Xdo31SUfuCUByWPGOHB1e38m7MxTx/D8FPVsJXZKJw==" + }, + "@types/q": { + "version": "0.0.32", + "resolved": "http://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=" + }, + "@types/react": { + "version": "15.6.19", + "resolved": "https://registry.npmjs.org/@types/react/-/react-15.6.19.tgz", + "integrity": "sha512-QUgMbR4JWOXOddjzTnieXlqiAWq8mQFbqQd7e5WwllGA3AEwuCE4vMhT05HaYGxHHCItS5vDX9Du0XWD1FQvnw==" + }, + "@types/requirejs": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/@types/requirejs/-/requirejs-2.1.31.tgz", + "integrity": "sha512-b2soeyuU76rMbcRJ4e0hEl0tbMhFwZeTC0VZnfuWlfGlk6BwWNsev6kFu/twKABPX29wkX84wU2o+cEJoXsiTw==" + }, + "vss-web-extension-sdk": { + "version": "5.141.0", + "resolved": "https://registry.npmjs.org/vss-web-extension-sdk/-/vss-web-extension-sdk-5.141.0.tgz", + "integrity": "sha512-c/r/HWQh4hljKOSNQMiFoeICckKFfU/1nxDCVFhioDHOE8B0i5aJN9rrihGilgMXugzl8K5hBsZs42eFqd30AQ==", + "requires": { + "@types/jquery": ">=2.0.48", + "@types/jqueryui": ">=1.11.34", + "@types/knockout": "^3.4.49", + "@types/mousetrap": "~1.5.34", + "@types/q": "0.0.32", + "@types/react": "^15.6.12", + "@types/requirejs": ">=2.1.28" + } + } + } +} diff --git a/repository-info-extension/package.json b/repository-info-extension/package.json new file mode 100644 index 0000000..1605d7b --- /dev/null +++ b/repository-info-extension/package.json @@ -0,0 +1,13 @@ +{ + "name": "repository-info-extension", + "version": "1.0.0", + "description": "Provides an example for accessing the currently selected repository from an extension.", + "repository": { + "type": "git", + "url": "https://github.com/Microsoft/vsts-extension-samples/tree/master/repository-info-extension" + }, + "author": "Microsoft", + "dependencies": { + "vss-web-extension-sdk": "^5.140.0" + } +} diff --git a/repository-info-extension/scripts/app.ts b/repository-info-extension/scripts/app.ts new file mode 100644 index 0000000..62dd395 --- /dev/null +++ b/repository-info-extension/scripts/app.ts @@ -0,0 +1,10 @@ +/// + +import TFS_VC_Services = require("TFS/VersionControl/Services"); + +export async function execute(containerId: string) { + const svc = await TFS_VC_Services.VersionControlRepositoryService.getService(); + const repo = await svc.getCurrentGitRepository(); + let container = document.getElementById(containerId); + container.innerHTML = JSON.stringify(repo); +} \ No newline at end of file diff --git a/repository-info-extension/tsconfig.json b/repository-info-extension/tsconfig.json new file mode 100644 index 0000000..5361713 --- /dev/null +++ b/repository-info-extension/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "amd", + "sourceMap": false + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/repository-info-extension/vss-extension.json b/repository-info-extension/vss-extension.json new file mode 100644 index 0000000..36a7173 --- /dev/null +++ b/repository-info-extension/vss-extension.json @@ -0,0 +1,67 @@ +{ + "manifestVersion": 1, + "id": "repository-info-extension", + "version": "1.0.0", + "name": "Repository Information Sample", + "description": "Provides an example for accessing the currently selected repository from an extension.", + "publisher": "ms-samples", + "public": true, + "categories": [ + "Developer samples" + ], + "links": { + "learn": { + "uri": "https://github.com/Microsoft/vso-extension-samples" + } + }, + "icons": { + "default": "images/fabrikam-logo.png" + }, + "targets": [ + { + "id": "Microsoft.VisualStudio.Services" + } + ], + "content": { + "details": { + "path": "details.md" + } + }, + "branding": { + "color": "rgb(190, 39, 3)", + "theme": "dark" + }, + "files": [ + { + "path": "scripts", + "addressable": true + }, + { + "path": "images", + "addressable": true + }, + { + "path": "context.html", + "addressable": true + }, + { + "path": "node_modules/vss-web-extension-sdk/lib", + "addressable": true + } + ], + "contributions": [ + { + "id": "code-hub", + "type": "ms.vss-web.hub", + "description": "Custom hub under the Code hub group", + "targets": [ + "ms.vss-code-web.code-hub-group" + ], + "properties": { + "name": "Repository Information", + "order": 100, + "uri": "context.html" + } + } + ] +} From b26af23672fb7d9350aeb198c5593b2ff42d9ce7 Mon Sep 17 00:00:00 2001 From: eldarerathis Date: Mon, 1 Oct 2018 16:11:46 -0400 Subject: [PATCH 2/6] Update HTML layout and screenshot --- repository-info-extension/context.html | 17 ++++++++++------- .../images/hub-content.PNG | Bin 22601 -> 23651 bytes repository-info-extension/scripts/app.ts | 10 +++++++--- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/repository-info-extension/context.html b/repository-info-extension/context.html index b8bc518..a3b2f55 100644 --- a/repository-info-extension/context.html +++ b/repository-info-extension/context.html @@ -19,11 +19,7 @@

Repository Information


-    
-    
+
     
 
-    
+
+

ID

+

+

Name

+

+

URL

+

+
diff --git a/repository-info-extension/images/hub-content.PNG b/repository-info-extension/images/hub-content.PNG index b3bd96f021f8dbcdf30927d2ef5db862511b47c7..37cb843e06cfebee66f8d4366b783a537be804b5 100644 GIT binary patch literal 23651 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

*`6l+XE(z!k^H6trW6HQ~N( zIa9LG-41X4875KNAk_i6^47KemzX+fIO;%m z7F*(!hR`XVY_YS|Mj6|qsf@M&y*e#I3ajl_J+?zExNXB|sgkJDxd5}?(%?mSv6Sh+ z1zcl+nwa`<8xFROW)$gui|e75rO{A0E_SV1AIj1SAD9^I)1SOf(Tc4s9{ei(G4^A7 zIGfADm`)7qPJJ+fdbIefvH8b^rd)=G#)qkCOb-;w#LPnA_>jQ|fnEXh&z)DKUpT8D zIEhdF4io>KD+L3$`R}d=dUn zU>dEOZSNbXI_JCcOnB1X~LJt(l7PBv+?RfwiPG6dL7Nzc~EuONmKc1A8Pr5B`m zbU-9Hz^1Cc8n8jS*J+-CE1nt9cS0J0iA{5RHG)1qIz1%mpP{fhyV7No3H6TH>A&%i zHm%;`*6`EFkRR27?GKEvq3SIzW0n}fN_*RD!xMJ~5)q@N(;kEH%gwHffsBIu;v|Or z(qb*74+~LyqT{M#e9GR+Ph{h>pTF}MsV~HZhA1P&JA zI*|Zao}6GrCBpp&j;3{_4q|GrijlASIV?L?IWD%+zTK`0GJ+J)OFeE}+3rgh^|ptCTUJtJAV7p>c{gOQ4kW9{#SCL zrFh4#>Y5{SV`Qh!o>qvqYRT+4m;Q`zY;bsLZa)1ZjaSey6lxRHk!NR;3S*b<9A!o= zdcPFhMpNwZs=_{PubvqE_^Ycg8>xNFqAA5JVU!6pArLx~lcbX#1JQJ8TIM$!EN>fzp$VbkXbmm zEyd-*JgOTR)sXSj8nBYUd1Gau(V|G*!k}@A&geqbEt0uDUSSBR9WuM4NZ{dKg}^#? z)_ZlxOWsq4fOd z(U7dc5}YDtd3LH~*&*`t#1uhETRGL?^^1s~X%bk@pm8cc9iG0rV$(oxUr+AHp;(a{ zqZXGK1+pVghpj}C98<=FKR@lxT)C?RE|&#c)(zQ-`*5nn5K#>u+*95i>z_jooNQ1K z^#$mN7j6z)eBduC$ej5_ROd)t64AYS!IVnTSK$w8 z1j|F%$qW=BLZYuyw)hS!SzK@oEI2RGQ~9b-I}Zoa1oxVf3kp5P{FIIXaaX!hxk9G^ z=J>ut>s-O@?_C?-zK0Z?B8WDr(ctTV6nKz{WUXxGOduNuCq^SEHCHc1n{2G4vd;5SX@}JGeo*r+7d*l*09obPZwq`7 z@*7O3591|>eru;^j}XwKTy2FqNHPB5@$qGi@Y2SEVrxo1?IJ4bLxFP%vpZ)+PD`nX z`ea3wUO1>k?L}69i8`whovjY8xf;b}kPeJopA?jm(KiC!$wn!g-<9&t_j_SgNdvwm z-0o)JO$qPR_}I#klM1agcB3VS;walxMmyZ6b7#P}(~EdnSdcCX}mej+a@Kb zzEMZHsWu3kF*0=*@=h9vtJHikL1B1rEZ7mJDe7*Peyvk(g8oiD7 zoqb}{1kS~OUl%$1!KO73bLs+1ZPgNIePH?L?Z}(7A_h0yp*TKHGNljMA!J-61bI)$vG^JV2rfYkNA>!ElDYR1Htn5Wups+jn7qO zz+)S07dT9>{>dlFyf_2KLhu@LJRiDdK_Fi(Y&ROlL>%2@oJ~fMd>9oK$>v}iSc*Z3 z2^p6%TI431soWr_6{N;j&d`xuV>H=PU=g`cO??XBxfwN0`%anZ^nS2`Yk^hf!I6=X z_6-@DuslEEsUg8eAsioiMy!( zX?sD%R_`&d)|X{@OW}vmHy-^4AX6e*f9x7mXs}%7wjZ8`(>2as26W%5I>DFKc zu#$cUM_Oq-tP0+IMJC~_*KcNVO=Wow3M`o{@+*Vet8xrkFPWT}(K%9F-PJ@!iyhn@z+iWqOKRl`GT+ zyyr(j+spBCr{)z)rvdFd-KBZ9zcUoc%VyC(zZwHJGTD8Lu8w)Ona@gP^e7}F(`h5h z0=m(;xC*a8oQn*K$Hqo8Pz2hmUhR5VeG-AWR|;YVZU0cDc!Jj-iH*A84O`OpF>kG3 zF{pw!M(fb3>lmX3u^v#Ob%Q+zI){|57J?kOzWX;j59~9dLuqF;Uwi4@7Ys7NNbB;g zLHkI41LPKpv%<%(oFu`XIkDegY&iR^YDVppz38TZEH&Guz4sm&+gsNKJt=JkdJ5&{^h0zRGHp}S!br+E z6T@uF(aZLqPdQhyXFwn!IGy#!UtS`s+4lt}-%d^Uz1z$$Gzb|OKZ54b1}3o7^$7X< z2wTU%Ih9C%z(4FN;1Z3Dz`(0ws3X0=25FT8-G-4*Eqka;<1iS*#c>2of`5B_E`)WJ z*O@dnu|IJq@_7?aV*?$~G87;kJyfgaQdvk#)D`(X@ z@_Tt;dx}Wc6G~~*6&7NQpz)J$oN9=8MfP#zh6oII0I4SAA4LwGoWUQJxwMJTu^As! zQhjovoA+ieijHcv;m_g;q0r%D(S@?W+1oSEKjID-<7KR+om&6$(VzVEDH>`yWMye^ zl5p5dRzaV#7_!2K3UnfA`jA`Q55_!xVwC26|KqHVX3-Rc`8LG{1^(X1X*9G|1PZgr zZJhI4>72#1@>A2>%GqeD)sRzc^SU0%-}x30oi-`(FMo~}n9&g3vTf^IWEGPU-*+*- z8Y9din%EOqXB8;9|KPuRgx0*`K@H&>xJkLjdH?Nh!Z;sV2&4iTBc5i(-D~OnFZi~7 z@Gld|J6!-Z1T+Ty=Oxd7|MW{XvifpVeLea&UkqFMre)g)Y3k^&D8jmqda{~h_5+Bf z5OC3;N{Csn<)t+vzGDsa#(eY6LZ)qgbH-6mOVr1`*oz%36(BK zR^B{NvIfD|^7wDw)@CKKD*D&_vvX8RSjWZ+a+%@%-DN<)CvsNa4k+Oyqfkr4G;+|Nm9&i4Y z%d7s6T$OK%uQZyOr=`(+o4b*5&}|#4H}Jv{`}3V=+epMgv(Rd_Ar59n=;#z{2I6zs2ZBW?F{M&V>IhcWN{D z5hGe3=dhwY3Z2sM@@S#?Ke={_30X|yxqKU1MCX*hw#)0ZqM&D+s_f%64ee7~qzBnf z$!7NC3IE0Lq!I87X+VZ+rCSp-!a66JWpv9v0;O~8n-*2g=M+a z8#Ly40m;Bqzuv}=uLtG44X&;VG?hsQyoSMhi;&41zjmO{A%d^g&}Ymp z%Ih)@=RBVWP95!hdPTk6DD?Z%1e1Hcb@8cS(wj3 zZ=XN{%qkS>__5G^yRIuuOUP$B{w($&>See2|8=rjW>EOX%-JDIO}^>l!PiK8#EX4b z`0>*H@51MoF!?lH4>aG}yE(pA&bihk|`q+MZwShpza;l+%{;K-agjI7H%Zmwkp8*!lj zt;E35;YE~Ms7V~&n8f(N-^{A$ahM2?!lf4v7L-Ay%XkdR-U$6E-VeGhDN2+#jvaxX9$d3Gb%rffpyI-{t#r#2Da&%4Fz^!9I<8n)mQ=O&XctY zoTeIjWtWX{>sJgfT!QsUgQ@4?k5PC+iX9CMl-*OYVlvh)a^71NJLnrgt|of(@hs(Q!=3(a_o_^+GPI1%GBpN_<&w? z!>U&k#zUx2Z?6w{@;Mf!IaTB&3%YY-t*WG{f-W-8)^A%!hyuhWdDR0AKpf8o%%o{T?EQU-9#?oOB-T$6b*t-){j2YMJ-?281G3m#c# zXU1z|c9wBNEm6eW8y{~icD(Ni(M8q zK2ygYLy{*RA0Xp7rC_11!JAUQ& zzza~qE;pW1ZLCdG?4Xg;i3hd*AbHq*_h$8+JFHVAR|bd<#RspZYjDh2^~^aVO^sd(#Q{ z0an!ss_9^JV7iiiVN_i|u0Uctb60LlUt-80aaTv5tZ}QdRzav`U&9< zZmWdC2t13}hV?mV7k3=8F4OW}XLW_ruH_%-{(0k^pZ3*N3dEUDwb-ta=G+qwj|=Bc ztp<05Osz(xc-LSQQ|4F0msbmidCF2ytm|}U!F&!+nQ8YuH?VWQA_UqMNUZ|4u)^{b zEJYSY467Dmo&xV7kuxC}4(~3xAVfOpr|z+6S$Pi255>fNZBakB z1Q`_%0CTeKBPk%zd7v%%-IrygJ@-hBq~RH5YtJu=ujW@9?!JUC$wDK)mU?$kME|ZV z&nKGRNn4;XG@prqQ}vySZtm;--c=X674+@|011KO&c05@g>}v{$i|<|(i)(5TYmo) zh*QD;CvGTQI=t^PaMbAn@&wo$*BT03UrzM&@9^O;m;)U(H(QVV9f5!l_U(7R@_BCp z=zp|H%=e5LHD#3MHX~BLz9-;!Ec`z$_g{b0(gI$aj4aRA@VOTTg%V=T3tNY?pc{s? zoWM3v4bSqzFYhbd^xi~R&^bMNFARUfWnU+=1J@`@Ei$3GrC+s?xY25pF8#@C5|@aB zoloKq8b4cFs-)%^G~s)1eW~uz`*AFI4( zKmocyobZX(kIi7sPTfLS9XKk2;UyN@rD;)Jgn+K-HE1!Lt?xsPUVO331!eZ}8LUP{ z_}of_<5vyL;z5rOPZ2d;vFa70u~ipOSQyEs8^e9#DjS<5eyqMI`T%r|l>I?gp++h8 z7G@&VZ|^_do4GYlStL9^k09>x@T8}TTqn@&WB6P5Rw6!57Wk33@h#FLcRaqnZxi?N znZ}xay#!D{P@}y%*~kLNlyhVdV;BU zPtxg6@BZdE&2yU%N%&kQ2^^$iUkAJDe9Xr21^=0TO>|0s1mHG1N!dsm9Y&?e&GkbP@piE*zx_poZg)sAamwySugIy0 zCLR{O7OVM4<+t`S_Yf=X5e@F@Xh$K)(4maU5jzW7<v4{3&TgT9LA~%=H4;W2ZKi^gQ%*n(l2wd9Zkw&`PB?8T)=?Evb zJvUH%@a50)TjDg?!51tY_ab*}(rD z!sJvHMWjy5cmaKK-q7D7s*fs^(LQgI`SN3`m}llzM_61p+Jl@dBbmoZi35qiXH#>r53sA`uOkNR((@i7W&WpMUweh4y3p7&j7HE#&@iLHxZYd z5j@xW`zEm)0AjzT|Np<8YgTXhn<=oIKRFn1^-UgA0(?CGOzBFp32Q0L0$QU&bZuN}A{xS;FcSuZ{QpGWF;k~Q%;)ZlvT=QK z{^TE;8!`t+43kdf-T-*sKV(|}2joDezE6Z%;+`}h?0^0}eANl`as4cA2GAq7M0hzf zLTnf;2mSdTTYeXEXi5N>UOf}-*l(m_%jF>VQYZxKhjOD(Xas1OC z=X3A<-2a}>`+1*to_XHi@_oL)-}eQfy!lcnC*Zhh=iwOCX|qK^g?gt#m;AnA^n<$z zXCxZDN^^|u2?(Yf{s09b5#D7{bJtH=lg5$WCWYt6L@aV<1skYCd~Eh#j(3 z$vRtoyfyj%QCtG`esy!b&l28XfSrVWaF%naL+)$q?9*&34RO>8_7zuV-tke3MB+N} z<^zB)3^Fy_QNJyT^yt*U%2CjeU98#a=r{$To&|~ z>o2|oL;~Hy8KuGZGW`|JEB%Tq=gHEgbpdviE0$xf#_z9-w2EIv@tTYjl=B)N`*m^s z;@urbD}FSQuJK>b>lM(FYikBcxxed&lzDJJ)}O}uw@9MChSK+q(i!Tv{9a$rs>lLR zC>jlAdYWah(u_>*>V+KVFCtM4Z|oCFVcm&x!r1od|NmXIIK5kSRu zxgTE;-gbMFEvkl{Bw0N9UI}jFQDdV;pDftZ!%jj(HHMu~;Z-VX%L&|Rfdbil#}Q$A zqZfua9+~_dONw*d+rLGJ$3g7usf3^!F%Y8tew-Q5i_s_W*;S2&l$!=FuW^Rw96rBL z;k{no)D_6wXULP4{=C~4^%ee2J^N(YZF{cjKD7s4*N-l%P1k&~T6I6*P)OiS! zM&sm6e7aWj{dZ$4wf#7G7~V>KzNuV%slHHSsa~N?*;6qzlhHPYl_>f)k@%KQOb>l~ zM&*`(9wwo{w$$LMgF(No#=23(u<2X1!~Oyj@{y$wFXPr&9e|YuoTXD%64k>_klQ5g z#&2{wvLTHDQrUlJ!9UAIKfM;!A}4TOcxTO-DxjHHnJOki1D*gs6s^h z%Xjz43i9qN2`cUp^VbZoyo>01UguJ6&V@$(*23}zfTG~Qrmsz$z)R=ZCYPnntC#T7 zvNcm+NHC-{H1b4>`^9svb8@CsfiM11ufQWxsBo@u39s777Qn8$kEp&v-Rt-xn%q4} zd^ILSmJ--8V51o(DMPGKbV8M4Foh;dlf`5M)h)l#v6Z)NMC84uE07$3;QhhJ)>0sh zoquG=0JJY`asXxZq2PKZO$;Ss+s+Sz@G~*wElT5Q7Ht|eB)|)D`18Jg!+VOB04|tu zELZ+Y^o~}>{Mq^M7NrMnRF;NEzBca49lv1xCb8WA{+CreFL!iVml?y6bpXD3w1C5A zM1~MZZX~Odi=fS2qk-@nOp=P@EIK;4u;3+@n9F8m}dmboHcP6jW*!P#)mIduEcaxYOjrQ ziF9{n6PCHHzBk4~`Q{Ich5ut!2d(07Ia7DOI3H{qFeduvU5?hSUSQ5A%E0jXRodKW zY3-L2tFp;Cxy>wtU?Y`jI%vKylgWmjDQelMoI_$ANy&xHL%kBK)PG$Y7e(RxK6)^FkL zoj$IIn!ixPR&>5=amvloZ&cnCps!ni1dTgEJ-IUG$ZRjcSlUgWS>7f6jGMWg9Zl$q z*3*0i@#J=9-Xz{}tfY`T!9@K#~9Wpr>>Va01F|=rw}V3*Yp^$cj@(prMbq$*>37No?3>iWBy6f_(U6 zr^~e;9i$IHvE-J@%JN5E3t+#*7Q>5KZE;?W$;^tTIi-8uf4=COwi{fC3qCZNZ3}OR zW4~*R(}d<_2`W9q_sCMa8we3yXAP}c_Pp`4Bxm_gWYZ+vRWF|fu&wJ81LLTsCVIiL z&j@eJX2H2AM(;$RVv<@6d7^nhPoGA`bh`UhShH@oxliw4w|`;}d^?y2ETFVP?YMKd zI=brWI+070_EKt1Ei>>YhcfJ#+^b%;)Zp`hPZB9{UPr7L zhJD^0g(1vLkZlLgAkyjTplHyNNV$t>-b6DkIj{ti)`EDLSW=XwGC7^*v4kg7yS%aS zRK@8P1RtFcMg*rhW@q90u|4WYxRY`o%+M*Zh=7AQsb#+~<$gE7>%w4ClE*|?SJj-bq0TGCn0zduA==lK5_Kc4rHTHu-1SzyW6E~K)+%!+(h{cR zzDIUeW`Zs!Rw^a(EJcaR&+VZr>?A2zs%n>4jltpL7ewRZf*2k0?qdY~ps5gP2{qb% zeGJdHb){HEy%{0KXozMq8gA>(vXdv15v0~QYS&7;HNlES5HFohw)1%0?b$!fc&1FT zCuA1BGr72>x~O#4Kstg}xet^8JI?(W*7cgxuczEHmQsYIsDYnjSh6cLj%HaZ7?dr4 zE;buFRsMc}?hHnMH-OWV8-0}C*`CAcONO&y{}NRbdWbjRcpHv2LA#!>Y%@eZhQg%= zM{usn8Uakai0T_HFHLLu>~87jLr!1Rk?k+#i(&IG`l{dbu4P==gJl}|xgy9lV!@Vx744c?8Eo_VFL}j)(7GVtl zO=|X+IQcxaIZs}o*AZ*=#dQ7QYU{+%jKfU-7`=J_1f`@UQ=Jf2F0NmplxVAXxZTix zxux>x(w@qzmSw!p%3`?%ZVi*CJ^KzteGZIw(s6z>XV%Nm@G8J25#pCFGh1suAr+;4C$Ul1|ZWT?^T1Y`y{hSu5jou+4Ce9 zksoIjYqx1AVtMh9!jeHlvTlg-0T8My>-YV43!M+5D}Lz+pA~u$`Z2$8n5vc}7Iitc zZ~nq~@H0FiNuLHJxKgo!Qwp&#SoQv=V6di%iM4wjqseP<98Dbx<~E;BN;4#J-P8MV zkoLv>#8f_?-_eWDRcozl9l+=MR?m_5|4LlNG8_=sS6Y^)43}}v*_b$<#m;)ymp}~8 zUud}ELz#s+}4=CIfqL(E3+P zQqTPMP5Y=bdhKa03z55cdyR;yOwEVvNOb?vt}9h7#2sKwLz6CwX%fWA)8%n3Im#~p zxi3%QDLvJw)99M?yCN(Ugc7uq0pKz*sOGB9+0W%RFuPlx)2fUo8KznM5VWH;;liHQ z3b zRhp}ml$2CYpE~}RlG2hOC8foGtXQu2ElN(UiaYA)oQgbA^GT-A<56-5t`&@ zU-a>d4TIsYK0kloe&ReWaIeGK_0_rem+rL7|Ko+Ke}3cVp7jqF86Cfsy>!L-^*6Wd z2-%^UczCh=p7jy66B`8Ti=CDg-M!HYxQRk@K!!nl;~>f;+Al9Pva5mEEsP2iNu8^% zc1||3nIKBA$$^G&b zK?`3vaem!K@5F_ncJFQ4hWUG_6DOSR82>ZLiiH2xB$(VgHSv7;z2K-R@#MO{=ljEW z=$oArt=e5AM!T|r6pI~dsnoyce}2;4QZ?va6^ zd%pkmArInD4=c^n3yZQWVvkMKu4o~-75ZJbDI`&IFnPwki1wS`3-S;=`J3)=I&m~+gus~4;SX6bL zG{%0=C7nFqTQ2c8x$&NZXGJt1wC$8h73O4mE2{9**rQ2r&~&Tnu0tG)Z8aB$2G{gg zyWFW!ztUZxEqJs4igv`ukWE8VhMQ2|SBm??fmg`Yr61#Kro1G(o<{bnMxBwKOJ6!p z-7xm3Go!swS$?rVx3920uggWRLG|24&MXB-*s0iINZ0H%hb3l%Bzy!|+;%o4vWzer zh?t!ytSZXM!1i^CA_@9zk%R=6Uo*iW>S*QMuhkyuNjH;Dl+m~+EJcGpZBC8fk4nmf zD9hQeFT$w48LSp!|2584jOYKdG9glr6-~~!zB6X@=qoZwArl)QnY`BV_8n+Dx&-%NSpGFm@dJb+U zT9s6Rf;B0<9M+mQ3FYZ!jek&b(Z_Yfz9O6_(MYJ5!U6r7&h#K-{%&w3_bbF}lOO%tRRROME(vS})z|;Z^`KC#w-s-o z#s|2a_kL{>(YXpSgc~i4d_KXxx^h_%3DqiiCjrv{{-@3OOGfj@XS?>)Yv-rl! z(;CiUqz%+R?mr(YsWd$~XXiQBpKwC*Xgfa1d3=!KE!`LKOB@Zd4^4ZLNyqYX;? zhOv|&S`_QF)tBKe~ntfTZqk4O% z{wkTQ+Q*ADMv(BxiTPkp(qaCV3C0jX9+XkRd`S+R(4hLf91j2F-UaZCjz3dKWBKSn zxmnSK$Cs+YZOL>`?P5NXA6+LCk;-!*u)i8tmAS~D_%rC`SG#xNfjrc=D447#Mh}iT zDx9v!@#{98kw&ohLf+76*hiR?3ZOP*95q z@lrTxg_8^mk`w4?bUiJ}en9NPeULW-!IB4IQRlm*SDYxpT1Z#lBX$8!(V~L73HTsN zk}Vb8vlM)CE+IBMXi{vw0*A$C%3g7jAy2|eOH#GAOp|T~@hi*Iml@CK)6|IN@2ekP zs??JV#vN4rVox3>&ul+uZ$_()WZqE?bV&tbSXY#%i}b=+d!RN2joimO!}?%HwNBKy z&gyDL_2HoHv$}qa&D^Xy&{>g_T?;b#%>;dUVie0un>6V+Z&XtSA#MYG7%o00(x@ zz#)4peS&Epdx>0g7^rio$0{~A+C^^R?l{xO!x24Ev=R|b#PBRkWv9zsMe=8_ICaT% z0|;C?EOet)39TKwTW>R5x6`86F3**Q8oYF#E*HJKz$)5bYca>|HcA(N|7(wqc>nNN z>7$%yV;A*5v2Hm!oc@hrkp9ZBjD8lshpJWJmCBpg7Cg;~s6!mR^1a#zfCS^<| zsE&_;JhGnR1fRCtsuogzaojd5aLv#~@mH4XORI$EuX_ay4akI6PUE?7#(v0zIn2_% zVDifmn~ZQqt<0A$mScwzE^;5@WL6E9=|D9ZW*y@Mf+I8KoS9BNG|{D|xIdU!6OpUm zSNx3?TgfZ)_%w0i>7U<0=MU9;iAdJGo3mZoILdL-T**$fVmd z+S9LfSM-R-6aqeF!#W@6Cj?u#q8jyL9L?36!dR&4 z1N}yrodYyQR^pZw;tQu~()87WX7{DmnGCHAa?u>Le_DIQu6RA*cE`Ym${^P1@jKVc z-0F?9j-S665Id4xGi+*>!}s{ZS)^(*b@jDy$en_$5-}dgOa(nzHLg4@oU1SNCocDs8ncVOS*SyzR3@XCnjp#saoX()UWQyEU^`_`|P zFc?NUK0~(LHFeG3bMnwA52vS%cZD|AL|~-hBO%R=8(#HInkb}v2g}Kg_GRbO9dpW% zQ^{3&#ALZhDx!;hX)xMFIbxh&r46RVpTpPN&D7Q+t0jSC2r=u2ko1!FjjopP^3OHF zO9Y(g6R2qRiIIpGr_c4Rim&;ujVbVk`~jzg(YkA1u(18jkEy9b8ED%_0Zs9R(s1ko}WJf+=(rN z`wu4wd+HTpoem~OSR#jmWgjn=k!XCPr>|^)B-*T!bJo1G3!cG^oHlO=6ib-Agk1Qn zo4yv%y_?|(e;~uwv=4on5ZR}ovwvIV6jW0G0-d34ol^?H1!Fyj;v@}II6jWw4Xt4e zmCns__!o-V>BPhZyL^Q<)dHh!>)+(c-Ow*q-Q=c#SRbx*r3ya9_(df=EBJFw5Nc3x zG;R4dVePui-nISyBu~c01DFZMO)R}UEjXckrtGXLXh&UOx7zXA6qQ4{)bym}Dx0wNTUNG*1|E7Nqz)P<&w7On zR+uI>!d(XJgAwMgP7)slO&H0_Dnif^2#Nb1g(bI2Xc0JXi648So+qMLa%-9WWIjer zn@;Xj_%t}eyLfW(DG5gh2q$u%)JlpZ+-{uDbJp2#QX9mzPW{oW6Pv0q5Jxu0N9MS% zn)_SaqHbQ99^F$S1Hdh+Cp89<0=A^v5-s*{Pz2)l>2uOh36w<6;iucf`FF*V(z$w} zOcc>UkL1=Bawft=7JV!_`!+p^29(iCeQ->`lAO|;$B*TMyY;xY|AYK_gdxF*<;E78T$D2Xz#sht*DERPXg~)W*$<3=ZHS4-k`mdI1_#C=u6YPzZdK z1rsJ3-w!ODO8h7@yAQY(JfW3KxJUCHHjS9;JU0N(=u22Vck6A}fT=^{-6|p7^s1g@ z97CRkz70W3#k0#jOuFeOzjo3A8*qHZCkU9O%=A+T9$EQ{TdTg4PH}SEo#Cz|X1*Ye z==+h5OD-qpMC-)1bmWaEr)r1i@RG_zM>49I?6N|cLRfS85V)(4!3b6werl%Aa(QQ$ zfgYT|E0YZO3Gy6yKQ`I@a*o(sKs^!LEw6h$dHritRLD1tK}0@wI8uQj7PL}1C(jS7 z2HQmRvj?oF|2ALo)qdqA*MkbPpUCg^hc6E{xZlHvBXx)$>GFUPS?SptGr_IT| zx{pL}KE{O~M9H5-cr?z|$pw35Yh1IABxVlwpLg0IPF(3RbNyYhii)Tei#egFZv*-1 z9=m70#OuEn-T%>*5jVg`&q*vL-j6&k?tb~+V?#xE>hq|d&D%QPtQ}ktm{zo=IkQL| zkQ$`FW@))eW8g=fx*$xq|L;QiwSLg^Wq?M|n7nD5u}42Xj{`0Ib~EvrL(w-2On^+f z=qVz7rDp=*p(PmYR9Y93(J(i8`G8PHy#!A6e8qS$U!dNv)IH-=1>p20OX>jJ7cE6o zr9&Fh@>5k&pP%kx;fAMPUyM|z*zRO_8hUd-PgXSi#8@+`rg=BKL?t;?AZf*GRRy>@qAa@SG6p23oQCpSX z_zjf03kH3X7bz)i`Rk7Hv*#-m43N^b?U+S>o^V>Cq;yxyTlMwsCQZe6hF1g~KCzCX zc>Lw0(~`aS%M}ByHEq&7cm9sClG2UZb(9Lc(ADre#xdp+-1vb-R^hGF78t=K+9{(qv>R2NbjuPFc0Jb)|ziz~mGHaAdz~kZOqMH^}mg zJt57@TcQqE177UFT%z1r6J)=l^(j33y7=qx{@Vq_zOun}Pt+66iwq8(?DG{<-ZrcZ z*tXeFNy*%_sL4e$>i*W((xgi-N{n_#YEn9wvon2_2yEi4i4+uY$GF<$M{_1%X>Y;= zGRa*ZH0=B0kJ|5ydba}WKSNHc+lS%CPA zT4rJvxsI|5;1hhu5a6xK&5ZFbX`8xtqkLmxsN!|6u*{3zdNV(cZ^)J=Th=Gjy$1XX zv&zScZ}&9>jm zr2zb?an1}q=CnSSZ-Kr`-0l1QC!`pExV; zk_6U!e8tC53F&j+tqm~7M<3vzAriU9n_)8;9yoDu+9z!@C)h*g=HFXp`(yAB`}}LZ z2kpc6Z;-0CgY{rBm-I*1BBe_TpWbFP(c}Wl*Is=n#Hm$ZK!2FB^oCC%dCKi|tA5k% zBijL8y@x-Gc7=LFv9!UfUZ~!=w;%ATYwJeWeRHK0P}Sg!-q3UFy}~(?`^ey>s)dcC zwHejmcI5d9Cp=`(Cpak&gnEa13Tw1_#buES*PYSoJIeI#e)Z*Agru+%IhC#o(Nenc zL*dFfFo@Ze>04OsA>A7lrdV&i#-AlB%aYH%Hk58TAN4WY{rbR?W4#_}P z2Ci-Rwpd-hld}U!cK_)oB~TBab22F}88z~}_S6Vdqtji`cd`b!leG7b%m?QHs}?gy zJe+Kj5uvM9*zRreKSaOg9XN<_SHzun&-zv7n%GiKzSjp+SA^G04?b`LB#3>hE(Esq{6AO9s2ALp`NF=hjEvN48#J zCy?E7CFL6}Jkl9+l}I4ttddfT4Y^$OLL&FE<&_3xElhYFwfdmyYF_nzr6&oW%k335 zyIXMo=1!ta8XGmb%`)N#W2(!>Y;tf#5@q70EAF1z8Sdj2igwQzW3R5n7a6B(i{1 z8jO~*l$12kkXU1-)b5{g#-PS)=ZE(nu1iUn?Fk!!wbS;kT$~isy29tJAJET_{l&C6TrVhL96C(+5a?Yf!z4?MIax1uRjzaqXxA zP6CIUGaI**dHNTsH^-_#s|eAbv*V2UN3B$p#0e6N?A(ECg-;`u!_`N*ZeKIpYLz9A zxQ<>fyGM7Vz^2rJG*#sf@(22uO_qZhyk?i5W;k);B)&$-A$W5?xsGESq)il*T6W-#~lc_)UCRuL_#gLCWQ>VVjmna=T{hq?v ziBsXF^yJQ)$~+~dXNq9_3tZRjsgo>KQhGBFk$O5Gl9w+24MXkQFkECCVFF&XB2WRG zHxv;1>G;ZDVEoHz{|C|bl{Z(yn6tXEa`#lsnyvF#4Ei^r_P;d|Fuv*y;eu- z=vlGdtZd7syd!l~Dg9%Vwt)-`tDEeBOb|z;-{tAt7hN_I8UlY3W;J;M+RVbzRp|~t zH6{-ECFe!+CZ3ok73UPn{B5g-4w;;euB!;830k%uxEdK1GBmxI?SHP)-e1~#twJ_4 zb11FE5p4Bla zcdoXy94jzwe9DzJ@FP$%U7b(8Rzbo|U#o)P*=_~Y@D9Jc@Ei=&pS?M}n~KFUb?_<7 z!Nf5HZTb+8Bic-v9x|Kx#!l1cKk!V5jKt6yyFy7XQm4(ofX_}de&>aNd zY`$p&!=D1lf5CRx@Oj|!Ol^e7Z9-)Jf;R2a>ockl0$)E#MUk7nu2>z!Tb3=iyb6rt zu4?o*UlG(<>+=zT?@UJeF(=752yHJf1MfCOYH4@~OSTC^WtI17sG!l=1f#m^dxOiy zEIJLywx%@wq`Z*ubLknpV^s!Fltt#WVa)yxhMfpRkB4>5jgyRCDwYCbYJVEL&Q1?E z1~A7LbJ?>YL%i=|sulmqHxrwdk_Zs*he$FwY4O7-xA`+NfIkQatx>JxUibO8MD>EM~P3tZ6wc~4u&O*L`$5IpB z!Tve4T!D`|-g-Nb-k;PzPrgu{R=g(Z2#9_BVD}*y@46W@;??AM1Knl&1nki7#yiRrBU~!zvlXANm2*CkjA`nA9`fsB z-5;glF6={P@DNEIs=5t4!edVIS#3`Kv=2U`f%2%#H}RNZr_5;wd~%;}82cm-5jcCE zUuCM3j`RG$dn5w3IVg9hQGGjm>B+=D$-(~|C&t(faVZccx>p9-T2dit=j6^ z%5aO`X-zVfouYq%k<_P#ejp8hHX(cqE`WS9!!&XP%F%nPRh4|8zg)IS{R=^(0N9dm zS|iPJ56PKKY$f#Q0$)>AU?^HA<3QF-AL8BFpHL0aGTOxLDnLkHFQRLAD-Cq{ZwTGet-Z*vA0E#VL_# zpaS_%^W<=3o8CYSCdF6AEdMApV|02+Q+W!?ki@mHZPG8A@t9G}4B`lZ&rt*@<=@00Mi6DKcmRdjBvfmig%o zv~$8LuKPz1bF!fu!mx)+&V@Bpm(2c{O1k+-)a*InN(rF>JlWTHo5^~PiqgV+|AX0} z!)*q;E%Vxwh^B-@LLfuR95ln$A@^FCkpE1&SJ(r9?-#JoeU9wLa6<4?*?kZ*rWb8D zT3fFxe8z^oliwVB?Grbe$t`g;qm0xlr)gK|ny(3hdWsHb@iK5g`gSOB%nBh!ju*D%WMPWn!%>en+9}%{vt;dN<7&9iCPZN=?1` z*iv*rpDa`~;EK8kUH?i`rl&*fajGtpn!S;l8IQcxlsIgr*?OV-L<#I8*YHo9vI-{7 z78`ux)HY@@Zdrjj5;sPI@irhD8Ga<^% z@neyyC#AdXaa?8W1-{Q|z?tOuvI>+l@hHvTBnk21nm-Y`NG?){oACI7o$F$b2@MPC zw2W7gXlke(>rRZAY!+VNS;%OJ#8Al>XdfaQ)G`v5Xmy2iD8h0M;e;mC(qM9ZP~Mqt zL#Txod4e!Ys*pBB0y09#=iOSg*;2$g2D>TDVYK1nHJFGD+0MxQ{NN_In_JkmPi}pI zj_u2ZUzl4xO{XDRlE|yJ2)@t8Bov%QoRSW z)82D8+2c;5dMNwEMa2=;fvg{rN9xy8zk6JvLv|u(Ml_m%lg=P&H+q zX>%_18jxN%%fxurSuLNvv^O;Os(^iemHX-dKtkV83MX7#(K^RXytf_RvG`1K5xA5m zkk_S`c7^%(x2=DqD70bM6!5$_Q2(=(T zC9jg{NLX?#SjQX~fbV1S@@|jRs#j-vK3Aw99XP@$uoR>x@X}~HF$Qcsb*??zmmG^- zqq395qHSojZZ8$V#wkd#iigwNOt2+uTxDQ>w7xAuZNGE$>FhuYL zqJsy-uWCH4o2||nZWy!E!@g+Id5thG3wD;%Xa$lyfzdw^f@saHJ6P|VMP!pV{o1$22i}(XW_*^ zXLeR&=3-8#SpmbC+?q>K`x_7=A0E4pAiM6QX5YxgbHwaBIL}?Syhs zh7Dm4R7#o_w4i^gBl;#x+qKl?wM8~3QTsAvUr*FcF+3iAXg*6GqNfO3PT_(s_q`Ip9rn)BpxSkF_=Uw#_lM15twpVvnG45>^TK5A>lR4JR) z#JAE5f}QRJotVbx*ukK98mOkFF>T@t2WAX7$!3M{67~EOuh|fj^6?=FYVr%JM zct?wqV$@LvCGk2bBbx82g+?B@WBT{d%_cMQ9GT7?2}=UMVJXeaxv3atI6`bf}l z#tH@FX7o6g|NND3V~C(|$@h6qSwRR*qrY*A`VtQrPvoKDT@RO6;qMdtn}*o7PLek( z{lC@Q&LKdr=7ckpSSazbKs7qzA%;#}eW!6Sr_*aK-B(2Vd z*a1^$F~JUWcAyLweG4=ErZ3@0@7&KT`PyEq|Cv@hbV#+RuB9l5bpuTRv711-slY%p zp_{as%@Q(@CrjyDBlqDNwkSU-hrL~fPmE^W=vFX=m0K>&o+r&pL(MATV<}!^)u}3H zoCgCjw3DuNkqPh4;!@RoL?C#gZ;c&q)#ZkN7;Nqw+!#?Zd&N!!_D!5bi->JOhH{33 z?8m5k<(%{O%DIMhh?0sq=kXs1{8$Z}Z$AlD*uX`ax85H~?fkG;!m80f22Ubf#fXr* zHWS!N-|3KSh~u0`d8I)&-Ri)afB18esv~(k_=3V(ZL4aj*V(-H#!w9P!bkm!}s}kq$WF8h$o!{xIqp|N_Bmbls7hNdLm=imCra4NP zr@H1Ee-e@!z8K=ej?#kn)ZxeDpHG&iqv3n&d}_+SuWR1nwQRBT^Bovt2sy+tBOr_o zgwU2&MS=T9uOF@YzT&~6`SS~xxS9-E=X6nOS?V1BeGtpnPkw-%tY2TY9hgNl+*REv z`UBjqK`>0ySI;bj*9}jH-`uA$)&yZSWg;iBSwZ_C&8nHF!R@!UA2|7skWq6l%QOet z_;WSlnHR;ZnK^m^Q2YzvRs=J4X1SQ$ zFY8On?lD>P!17<~>~hI5|7gbBi

zCv}bfm(Lw@qZ*|=Qt2ax<>x>#T`ddE9&w%l zbuscuM}*imer}EBk2l={gHvA6c^at1*U2@K<}e|laeVWh7PEHlf<8uCA>td}_n>7& z_gCa>t8Ee~(^7Ch9NzlobKY{?O0UU(JY><6?D;+XZ#@_Kw=zus=F=<1ag_bg_e8}$4BBl8h1>WaPD_ZZ70?^SYg>~n372I5~}&$|9tLF&$?414c}A*<7w*cS!HgY zo+U@tcg?u7WLj&7Hs1Jg?AJlmT~`H3U2rLZ^$_U31t5{z2`cy{&|0Q0qVIlp+g8uU z<7?`!A->pAiScfxk1;d48^+hPePx_>rB3x=l^y{8vD({ZZab7cMb2VrxLO-~wQN9M z(x+DHuB*%-nDgVvtkE=elRy8nX-!zutM3~ zrDyp*FnvN)YiP1{y>_$VvrV2#NU>i2+E;zHPQu$ym*Y1$K)UUM6gHZ=`EP}}5LX7t z9J6=HGSCjQK-Zq%!ZlsAUp5mn;YsL`1{IXm9iN?>w&_K49RK=V&FI#~V*Are_Ob3D z&pu3Z)#^(*2m7+pqqY|h5wpyXIyLXG{#zxm8!NBeODrC{;i@QvDuo!bdg~%by_6*( zb(Iwl&a$8S9;F3#!<-S%C6BC;nEVbEKh$6)oPim3uMMVO>e4oc%Ep)(68*=C(~&ps zDG29zxj^PvDy+yBIj;2az@e#%oQ&E@LqUC6jE9K$s@Cl@w5lUh8NL)ZkTeYcIA!m; z@r}_r>e>uf-IakncdXHOW2YpU+jCMmrBfFZ3Q2#ZSDVYoU(=~w+X{3#zTUykd>B^tyk9Y z<1Ylul&}NY@{ZBqFcM1ZZ)2F-$@(eKok#3ChXi_J@OIPok6?mvZ71v{oa|tpZ|j?H zLyR6DR#h2s4!5$R3c56Js-~{}+bo9mrRVkyeGrcQsa5*WF~%oW3fS<8VmS>6qcg#& z;K7JX2f6R{7?1f`4-2NCIih&5w0^TirG9NEb`az_V*N*|m%=8*q3QcMaTPsqN|U!8 z&ECr6v{&DAyIwKyhfC z&L^vSmgve;f@|4hQ|V~j7|+E&3v$}3#Yy091is#1$RTN75Km{u8zV7W&kgL0$zK2D z**};y6#1TRN(M-urC%2kOENflvvo0yr6$vs8$Q|B%_&cd(O$PQqsp9jecE`VV!?P7 zXXuCUyvIv;n11cB0pgRlqVko2#B?GxHP0`nilh8a5jGaUE@~qMCYAafWW{@C$oSIC zhOQno>!! zr3Y&Bktj-&@;I(s4kGGG=oPxJ=ejhHsNPkY*N&xHP#~unoK^)J*~+iw=prCtrVu*; z&YmV0<}Djobbv6wajn$y=mTKU*T4}kwX zg*S3{-h%>$wDG9d5G7{9ymw=phGc%oQ##V(qDtDAY*NIAfxX32E=ZabvN| zykZuB*}*A#^o8YK z=jv}Dk<2p2r^pzp;9{3UpagKLs-jcHhH#3z}E(~RSYW89 z95R!ng>Rej0$I$m{R=(JM+rP#KVvyf!?zxkUEX+81f)3W) z7NR-S!DsekSz1nu=!M5V+SP_5I&!z-y$^nnGU*?4Mv{2Dq93?h6YF_5lL@C$jX$BRk5%9uAjVuE_1dRmU)rOxbUNv5nx~uD zE^$}p@|qo(&N-)p=z)(zCx_Cpn}!^0YToUzP^Byu?w36oGuqH(Wwx6!ojk0+4{X_qLBGK?^wBmRII@ty zdpKngpqB?ET0AgMjg>Jsl_97iMkfbLgpO@X3hh&OmHym?xYpM%$iunkNF`$#U5}L6 z(x<`T-lbJ9G&w`R6Pbf@7R zVkcu5`^E^)@ofp)aqZ|4-zN`69RumD$AnfpXpA{cs(d73le?Asu5PUQkV6oT{AEJd ztdY6e*>Zg*L)zuC9!tsg9zWa0$Z-XGjyS9NP;+W7q?5n5-hEJuHRC94(3l4rZfwnV z&-B4*!l$kof-MguK6@OCvd+cJqNqM{0^1Up!L@#ZK#w@-ue%;hQ&D8Nu9Q5W;Z*#w zg3WuXx;LeyQP0kFTcQ+q=w$HH#}_)KEpUnhSq$joV|*EhXq7HqJ=29bTaR6pb2;&2 z57Y>KD}w??vwBVK>>FR};(|^|uG+;}HP%YzjFr}I`bQS{IVpMvtkJXvGBo#4d7J=V z8APlLcom!@3ZwqWZHWnjxB1XK{9PehCW|ogpyU>SUFuE62Dx2QaaBRv#hk*q=1FIv z?{uh-Ob@rZZFpkVCi%kHfenH{(^)W`cp}8v-0^CIp6v5F2wK$8e=wM)tZTL~y-JX^ zbmqOj4=GOury5F11T=nWs`bV^{j;TY$8&2%DwSM15r`l0Nxwi9u;i}4E2)Jjslba; zu%zr>P74+;%e9cFsf@il+x@TvEsYj1;c`<1tS_=svK{(ZyDy@SK^`O?n=AN_ky{al zVrFbOJaKA9JJS(quVcp5pbC;Q+LK4*o-8V@G{YTWbqdx{T;b;W>wEeO;R}e7O`uOt z9>C7Ep&v=?EiR%Ybo3)@eG9u>>9-Gp_r~h&6!=Raw-T}vqVl$O%kQp>l9F;P^DL_H zb28eRhamA=yVR!0$JjBpC_&K+Uk-qH5t}tp#~S)wge^d;!YzED>Dv65({z{*4dk(H zror+Rnqvfinr@r*tNa5jWU(^_r<79H%$wPNt-tc$mWKR4uG%k2D0fJGN3fa*y4r5* z979fjTd#C^L3|nBkaL0W5NFtDAMHUO_gZrKca!B^nnrBR5ocNF)~BbvmOP(l1!zxV zYpz(`RK2@#UWh(_P^A2F)%MxZN_tVJaL9Cd(AAOgt((4TJIbe%6H&!^z&!^g|9KUN3Tm*@g+V^qxnIl=oKJ+W40IN7qxzZ+5S(snnwZ2a^s zzk}74umiL6NasYnl~u^8xM}_vK7`kxsi;I3dR;e|V2pXU>flZ7%`OI`s^p$))XEXH zRHaJ`0r!N}@}hSgYS)X#9Ct+0ca$UgZk&EF4_l{2OSb!Z>$w*;t}TG99XudjfQ;Ma zlrx*XOTOnAXFMHP;Wy!~aA950yc@sSK$&DtzDT;Kp!bam;%Uou)#o4RUU6D-AZp%9 zBR5g9@fRS9;;>?&Kvd*?UI*vh6=KZZRMa6zlbd4!SV>R13-s6#_t#Ctn&&EmtT}-$G_Qm>|l=rjY`Lv!*ljq z^jDWepfu&fk;AOM8)i=7_?EIAvB+NOGmN5}2h+&@4*nt^mvyJ%u0hVz4WR|z5hK})O0B;nJ^zUJN~goX{{ z(zgLew|J{E7Z{CuGdVS|CYR7nrUww8i`I5khB|5zq@h>GuvB}eaGcr$@Vs%J)TVr@ zm1|znQrs?6)+4K)Lpj+rXK1y!#2V-1Nk-gudD|TVBuCJewJ6$(ezmS!t_<3vx`X+H zUVJ%p?}`!UzUg4E`&%&m6BdiLS`-b!zuwt!0JBN+f$iJ2*qtwa^vMF0_Qqf;bP7aa zPKIQY@jq$HTb3-mXo%U_dzkX`#0hW%LKqGoY5`$>if}3sSV*;GCoXp+O77Y>4ly4@M#|6&EILJ|yU#D77 zfd6JlkD@|xS#YpOrwdG3(8CYq<4a2veltqGClglY5DL7j`8aYFM9ykWYE(@BuG-k|!f7-~RBx$tOiFD$j^NpNcN zxyzRq*4`9XBPDIohQuhklY=#eB2Ajd_GcKjz`AB-6XIoxUze zhmt}(2KmDuwAAGN!c`2NxSFdi1{kq-+sKdhTa@p;?^5sqJjT;uYd|B+{c2sy)D&KE zDdhb^)pS~evRc(yv*+KsmoehkpPZN6(E;vTYz_U?@rZyIbYrX z1Hx!flx#Q7qs{;D-IM?GhWo$Qy&?gWlN7R;1kk-OThQuF$^&w&7n7C#&TQP{YSuX; z+Krw{Sf9s!e9vIFS6^^wKjnQ$sbWEuPtl|-PcQK9vEpSplJyJ~ zN%WJq3tn)$+{8+8`d5w}IJ&`G_3t{#XD#Ico+JVViOWs)A0th-d3APm>j1S=7Rm0u zRK1{y$xgQ4I52>$5GuT|3Ia@<`|6ABc6KV()AsKW^1iF$g$)($HK)Hen<>&&#pNSN za8ss1I+&fOW`9zD%d5|1HE<2W9-KOQ72rn(Ngh@6F?kj+tU>TCugc(!N}PAlaLu)l zP}^IXefEMuER&w5W#av)JnqMQ%y3m}8d|;S6z_S!XhkI`5FSt2WT|?VN7^FHZzc9^ zd@jSnyBCvplTs`CFGu*4F*h9J5MS+Jf+ry%W5k7XKTTwSNezNN)_ zH+}0BmCwnAO1iYkCHhEbZSq|Z^5=8r=oD7rMil|@$UKv87k|rt@ z#Zi?n7tRQF64KtBR)FN`g`nTnJfu!r5fuBZpv4@6NCEj$MZ-kSu%heifU+%Y-jt^0 zJ`dkLyZWG+v;|IC&H?z?`Yy679NDque`XK1P&q$_v77>a7gC@RE=8Yi)Nu zS(!J%*tVS$e}yNpy@CIpZXlbGkAVX1-=0ASzh7?Dm_V5X1zjZ&_5XGLr?@b)S2Z}? zHw0!4xzZfADcjhtKo@WFdl!ne`*)1_K1uhV#ob@n z#&bADafR`J{YK{hJ5bRT?hU!pnEi{BeFeS087381qTc6#x7Aenk;PiW0e{z4uIk>9 z;|{q8?Z#0EGlYedRdjMC)wbNl#73u#8IR8HwM38vRIc zbqV(;U}X)m!_HK4AiHLf;y)$(bsN_%H~GlW;a-j+=iHJ;OGgF|oK1&gbEZDrd4+9u z(fp)I3!nW~=33l8r$2dY<3SG6h`gRMx&WbyRB+aPJ8R_7w@4>4J*_v{b-XzXpZo!Y z@{p9wIt+T4g98kmaUY?M-T-OOily^5XmZ+W`GiJac>yQth(SI#_Ez=)DuJ*Q9Y54v zl4rkfm@Aywx-z&v*lcvs{2CRvv@_)qXk~Il06(^79DHT{H^(sb1M1k!DLb4aB_rF& zXy`2^0+0e(KX`5djujfC&i#Q;^{pQ;!XS#JCS< zuP*>5PKfc>; zI9+I?AEXi5m+e#yrcO0s6AO@r!8eM@v)}Bx`9$6YbIX;XJd?@l*~-K7SDyi$_>`~$(`^&CL{f?}Oj{w1t;^peDJd$dE}=dsq>`7Tv zdSJXbX6Dl3+mu|OSZ1B{3RoQc zS(_35lH_m#a!iAi3gUdCHyJiwHN$+0oR?XyB#xW;fc7U8L|%bUTB10w@t*7vrC9$0 zWmrzzySW^xeSc2OK+R%D1Z{{MzW>!!(&w5nM%zY!%6*uz ztclEA(j;LCS%shdNthdV_Qj7=Zm<0X$x3Bexu#Q%;sD4N(bA_X_+$Yrf~^E;-(5gW zuq;%_t#${C+V3Yz)sbnl$Q%CU&%A(!;IiCb#AqSdr)r}o1DT0o4_OpGx|KatjX{4i z=IR?wnZyJ@Wo^CT4Pl3dB_p97KyD?Gh^9^fGR#Dcj8~V(qf-ohesgek`{&T z^5bv%hkwx?<8L4z`n00t>aJKEcQyOs9lfVv;*hu1~)W~ouQ>Uced%ho`JbDDe==p#ZIqL``V z%$!nlIu^sgr?Q=j_^s3Iktl;m##x?A6xB$+oW_|_wD^T~Pc#F(7EKv5xzI9iFEL+L zJwcnB_gEZo4c59=>ioK$U(vUx!u(!l80UX0S#k# zNaOMZ*(sfVAhv$5^*R!co>9lVZ4@CKMgrpB9k+ztZfg&OyNgjGTu{f&;)js5OV2Y> zSL3?-T9*Y;d_SeIImTuUUXM2vMW-Mz%kU*Q7{^Ku-d;`vY+#q8uiGg+6_J12O{e6m zNHf~F(+lspV?tfZsIfW3%eN!B#L9kaiEZH58}ua~_&Qdc{rp6v5m2ZdR$h`@AX9d; zd`sUP{Wq5Gt9;CN9O5b8|9VN;?8#FktkxDjN#QkJpe`&loui8Sg37i$&wuvLk4{&3 z6Qw^y!Amb4*k^J2QQ|)o-uW6j{ic5fDxOW4dZN;5g0@fRiO#pY0m7}3lIfAoFl2~n zY&=iAZb~tDQg>MAN1&iS5gbibDUJAhXv Ai2wiq diff --git a/repository-info-extension/scripts/app.ts b/repository-info-extension/scripts/app.ts index 62dd395..6cfabf5 100644 --- a/repository-info-extension/scripts/app.ts +++ b/repository-info-extension/scripts/app.ts @@ -2,9 +2,13 @@ import TFS_VC_Services = require("TFS/VersionControl/Services"); -export async function execute(containerId: string) { +export async function execute() { const svc = await TFS_VC_Services.VersionControlRepositoryService.getService(); const repo = await svc.getCurrentGitRepository(); - let container = document.getElementById(containerId); - container.innerHTML = JSON.stringify(repo); + let idContainer = document.getElementById("repository-id"); + let nameContainer = document.getElementById("repository-name"); + let urlContainer = document.getElementById("repository-url"); + idContainer.innerHTML = repo.id; + nameContainer.innerHTML = repo.name; + urlContainer.innerHTML = repo.url; } \ No newline at end of file From 5d22a10ef5840f530a3448dc7fd67e601e3f703d Mon Sep 17 00:00:00 2001 From: eldarerathis Date: Mon, 15 Oct 2018 10:47:38 -0400 Subject: [PATCH 3/6] PR feedback --- repository-info-extension/vss-extension.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/repository-info-extension/vss-extension.json b/repository-info-extension/vss-extension.json index 36a7173..297c395 100644 --- a/repository-info-extension/vss-extension.json +++ b/repository-info-extension/vss-extension.json @@ -7,7 +7,8 @@ "publisher": "ms-samples", "public": true, "categories": [ - "Developer samples" + "Developer samples", + "Code" ], "links": { "learn": { @@ -51,9 +52,9 @@ ], "contributions": [ { - "id": "code-hub", + "id": "repository-info-hub", "type": "ms.vss-web.hub", - "description": "Custom hub under the Code hub group", + "description": "Custom hub in the Code hub group that displays information about the currently active Git repository.", "targets": [ "ms.vss-code-web.code-hub-group" ], From e1acfd9ccfcfff3c5e1c5a6e01fac11d25595d45 Mon Sep 17 00:00:00 2001 From: eldarerathis Date: Tue, 16 Oct 2018 15:37:22 -0400 Subject: [PATCH 4/6] Make the manifest explicitly look for scripts/app.js Including everything in scripts/ is more forgiving, but also means if you don't run tsc you can potentially pack an extension that won't run. --- repository-info-extension/vss-extension.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository-info-extension/vss-extension.json b/repository-info-extension/vss-extension.json index 297c395..1de0801 100644 --- a/repository-info-extension/vss-extension.json +++ b/repository-info-extension/vss-extension.json @@ -34,7 +34,7 @@ }, "files": [ { - "path": "scripts", + "path": "scripts/app.js", "addressable": true }, { From 39d595be386493c693f4f09c0a27c22f31ecf440 Mon Sep 17 00:00:00 2001 From: eldarerathis Date: Tue, 16 Oct 2018 15:39:27 -0400 Subject: [PATCH 5/6] Update extension details.md --- repository-info-extension/details.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository-info-extension/details.md b/repository-info-extension/details.md index 5770704..a0ee328 100644 --- a/repository-info-extension/details.md +++ b/repository-info-extension/details.md @@ -10,4 +10,4 @@ This extension is built using NodeJS with the [typescript](https://github.com/Mi ## Screenshot -![hub](images/hub-content.png) +![hub](images/hub-content.PNG) From bb4322de3913562b2f903ab4de42a767aff5cb64 Mon Sep 17 00:00:00 2001 From: eldarerathis Date: Tue, 16 Oct 2018 15:43:49 -0400 Subject: [PATCH 6/6] Move details to readme.md --- repository-info-extension/{details.md => readme.md} | 0 repository-info-extension/vss-extension.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename repository-info-extension/{details.md => readme.md} (100%) diff --git a/repository-info-extension/details.md b/repository-info-extension/readme.md similarity index 100% rename from repository-info-extension/details.md rename to repository-info-extension/readme.md diff --git a/repository-info-extension/vss-extension.json b/repository-info-extension/vss-extension.json index 1de0801..8820363 100644 --- a/repository-info-extension/vss-extension.json +++ b/repository-info-extension/vss-extension.json @@ -25,7 +25,7 @@ ], "content": { "details": { - "path": "details.md" + "path": "readme.md" } }, "branding": {