From 498d78cb2348d5b0664573a9778fa16595a5b860 Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Sat, 23 May 2020 14:43:16 +0900 Subject: [PATCH 001/707] Add integration testing --- __test__/entrypoint.sh | 29 +++++++++++++++++++++++ __test__/{git.test.ts => git.int.test.ts} | 17 ++++--------- __test__/git.unit.test.ts | 26 ++++++++++++++++++++ __test__/integration-tests.sh | 23 ++++++++++++++++++ package.json | 4 +++- 5 files changed, 85 insertions(+), 14 deletions(-) create mode 100755 __test__/entrypoint.sh rename __test__/{git.test.ts => git.int.test.ts} (89%) create mode 100644 __test__/git.unit.test.ts create mode 100755 __test__/integration-tests.sh diff --git a/__test__/entrypoint.sh b/__test__/entrypoint.sh new file mode 100755 index 0000000..a37ef21 --- /dev/null +++ b/__test__/entrypoint.sh @@ -0,0 +1,29 @@ +#!/bin/sh -l +set -euo pipefail + +# Save the working directory +WORKINGDIR=$PWD + +# Serve remote repo +mkdir /git +git init --bare /git/test-repo.git +git daemon --verbose --enable=receive-pack --base-path=/git --export-all /git/test-repo.git &>/dev/null & + +# Give the daemon time to start +sleep 2 + +# Clone and make an initial commit +git clone git://127.0.0.1/test-repo.git /git/test-repo +cd /git/test-repo +git config --global user.email "you@example.com" +git config --global user.name "Your Name" +echo "#test-repo" > README.md +git add . +git commit -m "initial commit" +git push -u + +# Restore the working directory +cd $WORKINGDIR + +# Execute integration tests +jest int diff --git a/__test__/git.test.ts b/__test__/git.int.test.ts similarity index 89% rename from __test__/git.test.ts rename to __test__/git.int.test.ts index 713ca03..8c3b2a0 100644 --- a/__test__/git.test.ts +++ b/__test__/git.int.test.ts @@ -1,6 +1,4 @@ -import * as path from 'path' import { - ConfigOption, getRepoPath, execGit, addConfigOption, @@ -15,7 +13,7 @@ const originalGitHubWorkspace = process.env['GITHUB_WORKSPACE'] describe('git tests', () => { beforeAll(() => { // GitHub workspace - process.env['GITHUB_WORKSPACE'] = __dirname + process.env['GITHUB_WORKSPACE'] = '/git/test-repo' }) afterAll(() => { @@ -26,14 +24,7 @@ describe('git tests', () => { } }) - test('getRepoPath', async () => { - expect(getRepoPath()).toEqual(process.env['GITHUB_WORKSPACE']) - expect(getRepoPath('foo')).toEqual( - path.resolve(process.env['GITHUB_WORKSPACE'] || '', 'foo') - ) - }) - - test('execGit', async () => { + it('successfully executes a git command', async () => { const repoPath = getRepoPath() const result = await execGit( repoPath, @@ -75,13 +66,13 @@ describe('git tests', () => { expect(unset).toBeTruthy() }) - test('configOptionExists returns true', async () => { + it('determines that a config option exists', async () => { const repoPath = getRepoPath() const result = await configOptionExists(repoPath, 'remote.origin.url') expect(result).toBeTruthy() }) - test('configOptionExists returns false', async () => { + it('determines that a config option does not exist', async () => { const repoPath = getRepoPath() const result = await configOptionExists(repoPath, 'this.key.does.not.exist') expect(result).toBeFalsy() diff --git a/__test__/git.unit.test.ts b/__test__/git.unit.test.ts new file mode 100644 index 0000000..adf0448 --- /dev/null +++ b/__test__/git.unit.test.ts @@ -0,0 +1,26 @@ +import * as path from 'path' +import {getRepoPath} from '../lib/git' + +const originalGitHubWorkspace = process.env['GITHUB_WORKSPACE'] + +describe('git tests', () => { + beforeAll(() => { + // GitHub workspace + process.env['GITHUB_WORKSPACE'] = __dirname + }) + + afterAll(() => { + // Restore GitHub workspace + delete process.env['GITHUB_WORKSPACE'] + if (originalGitHubWorkspace) { + process.env['GITHUB_WORKSPACE'] = originalGitHubWorkspace + } + }) + + test('getRepoPath', async () => { + expect(getRepoPath()).toEqual(process.env['GITHUB_WORKSPACE']) + expect(getRepoPath('foo')).toEqual( + path.resolve(process.env['GITHUB_WORKSPACE'] || '', 'foo') + ) + }) +}) diff --git a/__test__/integration-tests.sh b/__test__/integration-tests.sh new file mode 100755 index 0000000..43f5ae5 --- /dev/null +++ b/__test__/integration-tests.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -euo pipefail + +IMAGE="cpr-integration-tests:latest" +ARG1=${1:-} + +if [[ "$(docker images -q $IMAGE 2> /dev/null)" == "" || $ARG1 == "build" ]]; then + echo "Building Docker image $IMAGE ..." + + cat > Dockerfile << EOF +FROM node:12-alpine +RUN apk --no-cache add git git-daemon +RUN npm install jest --global +WORKDIR /cpr +COPY __test__/entrypoint.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] +EOF + + docker build -t $IMAGE . + rm Dockerfile +fi + +docker run -v $PWD:/cpr $IMAGE diff --git a/package.json b/package.json index 9a74e1e..b33d4c5 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,9 @@ "format": "prettier --write '**/*.ts'", "format-check": "prettier --check '**/*.ts'", "lint": "eslint src/**/*.ts", - "test": "jest --passWithNoTests", + "test:unit": "jest unit", + "test:int": "__test__/integration-tests.sh", + "test": "npm run test:unit && npm run test:int", "pack-assets": "mkdir -p dist/cpr && cp -rv src/cpr/* dist/cpr", "vendor-deps": "pip download -r src/cpr/requirements.txt --no-binary=:all: -d dist/vendor", "package": "npm run build && npm run pack-assets && npm run vendor-deps" From 44a7f59b6f4f9a588cbb666606bbfaca6d471aca Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 23 May 2020 06:24:24 +0000 Subject: [PATCH 002/707] Update dependency setuptools to v46.4.0 --- src/cpr/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpr/requirements.txt b/src/cpr/requirements.txt index 7baf745..5afd424 100644 --- a/src/cpr/requirements.txt +++ b/src/cpr/requirements.txt @@ -1,4 +1,4 @@ -setuptools==46.2.0 +setuptools==46.4.0 wheel==0.34.2 GitPython==3.1.2 PyGithub==1.51 From 7a856e8b5decbcb8ae411ee972092059e9b9f1d4 Mon Sep 17 00:00:00 2001 From: peter-evans Date: Sun, 24 May 2020 00:34:21 +0000 Subject: [PATCH 003/707] Update distribution --- dist/cpr/requirements.txt | 2 +- ...tools-46.2.0.zip => setuptools-46.4.0.zip} | Bin 865117 -> 865912 bytes 2 files changed, 1 insertion(+), 1 deletion(-) rename dist/vendor/{setuptools-46.2.0.zip => setuptools-46.4.0.zip} (81%) diff --git a/dist/cpr/requirements.txt b/dist/cpr/requirements.txt index 7baf745..5afd424 100644 --- a/dist/cpr/requirements.txt +++ b/dist/cpr/requirements.txt @@ -1,4 +1,4 @@ -setuptools==46.2.0 +setuptools==46.4.0 wheel==0.34.2 GitPython==3.1.2 PyGithub==1.51 diff --git a/dist/vendor/setuptools-46.2.0.zip b/dist/vendor/setuptools-46.4.0.zip similarity index 81% rename from dist/vendor/setuptools-46.2.0.zip rename to dist/vendor/setuptools-46.4.0.zip index 1c2d44018357da7210c9dda9a1b998337a5838e3..4568c94d4532358383412a8331c64c5f1d1b65d2 100644 GIT binary patch delta 135332 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

5}8@6WDDR&;EXP3so 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 I1?@BC{}vuXod5s; delta 134516 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

As7fE-HYo|-pv0c@9!pmwY z)g&fL3l=PGi^ILRAoHwo=zO{flJ`vS$xXhYErcw9Hmv@Ue&{2GH}}M*y$Pi273-2T z0XszTAIlZ$u99?)X8o$QTNF>pZUH(mT9gw(FThc(j4r+M{Jk`kvfwBtKKUhc3DzxW z?JIs|E?C+`lPnwXP3YWPCol&YkMog`TkTu|p@`GBl%i1AgS_x%l8ePW`p&J91OD*P z(6>Q9S(mzs{P@O2VGznn6icOJ82D1XG$5BZQi5=yG=d0KBY%?UA*LmSxSob2lo0?BIX838kkm={&Mic@kRHE&SqC%2Ei>$$un?pO+oF6Q5b+BU!fmz~))7dE8 zY*yc)pOe@IvU_{6RqC~|b?Mm`23Ig3>*hUb59CGDOpQwf+jY;aP4p($4qHP3$X~5GHub6A*YYh!;}z> z_#~dEY?PB%20p=M0>tyRzh(?xD5(>PSTrw_kZgoUi5OL(51BX0_zF4nrJAx~nbTJs zBujlITIJO>?I8q6Qk~BVC`GLN2t3BQ-h@!m=t;Bmi-f(-x8=+y!to{@-S((MAa*=n z)`JjfN8hL(+gm7-l3$kX*UKT8k~r7)k&8r+SRH5Ovme4%q4(S0>B+&N<7ku7jAK8l z;etSdT$Bk4&`6(Ont7waq?b6%QVpj}U76C-x2@mKYcI4rFF1&`K%fci{dregvG@7m;QMEJvZ7mcc?y_rM$jVSXBs=Y#Hqhcr7=Awcw#_?GgcM> zi*W=lF~tsPgDq~fZBWr_^d>}ARpnC63>`Ce_aw!FO!+V9npM_Q`uMkm?eEU|GiCev zj2}rGPC^h$p%9M3Fp1MNPN1K0w%t6P_)iG$aXp#rLH70_i}z4FhIY9ViNDLy)Lz~swfw%cPl>eM-K7Qw9d;6C8Ll-Uc z()=G;6tJfcA}QGCEq`Z9ADM4v(QO9PRvFUkcjo)oV>4j>qNV@0cLV%H>OQ-hzu|5B zhsb^7ZLhN^WwefIS&S{&jc=|7^*W@K4kkt%b*CHQtdjG3HY&zD1cvF5HUY;K$`%c8 z1?`AEii%fXJaLj5o_>~ic&Z&LH-&D!;|In%Nt0OGR)+iDlNdp_6v*fS_%?Zobg2Ok zT}qk=bnhA1B}8jEu-mRj9J%}o;$wBfDv(5#D|%3*PP<)8$fO9nOpm}lVw{>kh5iMW zY?tL8ogxvk9$t^Pu56#U7fLZ2)T*=w_a}6#a?(c$C?_5>eZRe82_P6-C6V@3&^9wp z%{BJMdvGd|>e_KBa(!xItI+}ftkY;&{nLPiN0mH>iv>EzA`M0$RW#w$EnH-W-HSg~ z5*G5@@__V9hb@kGzC^4<*j&~`c+oSV@U#lTTW^6#RM;Tv2Oy>--hlEx szZ(7fL ze8E2XVI{y$aXQBC6-LShB)&t9**u&(9+jAn9|N%xxLE+KtL7{X*XOwc#HxiKSobH9O7$N6BDhN`PdugK4y#j=5GShE%@Zz;vyi z5X{fgVNCr~*mYBTzhq)0N~eYPO~@MR`|D^uEz!<^n|^!_ELyM_B}-is$7!u0s)w2{ zIZO1Td2ge2?&aHs8CL{)HaMz@H%-im_!vBdhyd{NfUT$)n+<}$SXVcsiZ`#f>2*Xs z&LAYiQpF*M&aQAqA_~f#Yx0j8K#=XzPqLV7GTA%GH)|!g18!WR9 z?CbEp9T=&HthKB#c+~ zif!AX?|el)-rIEd5#FrU_5Kf`%P>)h9$Q2F6cC&l}nN2eW+bKVvJ)iOrZ*ZyXTnBY1MDc-R zNrcl6hAiWObwdLLNtCnH40vXv$0Z3wqN{T~hyc ze}u3aKeOCA+K+LPHXJ!#LQUL4rhYk!EXwHoR=MO6*BjRd7v^!lvzr7|2h^5)7$z}l z=1xCc4I;YSBug?Q@)n0pxPeaWsfF(rTEyu_JiJuga9G0Pnd{RqxvN3O&!$Qry5?>k ziBO6)9c`$>nA3!lk6N;SL4&M&a2Z}B{3S3cb>)~Uj!)E`V6W8fJm2_$CFc93LV4o% zEqUa;f9t{=ZdDuKUVkC%_hnNcHt<6r_ir5Liy+W%9^yO71WGY9ijo9@EP)h5Vi<~J z2u8ysj*$$FEH5tqeir;K5fZuvPjAF{mG+uKwBxHSD^rO6;(&U50IP9KwD-xA+w$V7-Rp8e7L*}e6ZKRG$nw!V;%zn#1eo4 zH6a9ag@9jVx{4Gcs}B0=&xppL#UKCvZ!Xq5NE{I*3Yd?s)sG@B z0uXWe=5=eif+0L=#K$}+^t)EqKjRoetJU?b^z-f3D-@)=g~mCjPrUcS3Z}PIRaSx} zIJ!m~F=KN1J*-(MQvFo&P<5hm5?79wo8>WGnrn{9Q#-vBaF=%@iEu`# z8P(c9R_bkPtgC=f)8y%_gF=Aw$koO<)0Z<^u02s<5bw#3m8DLq`Qwca-keO#qYoyxlnAv%^kgC=Wxs zrIC?}alsh{`+^Z0U4>ec2{)IQILz^L95#3OX<1yyO@{SOGKAI95`IFwXWwmBez5%g zF0k1f%cmhq{c6h}j8;mV=Ws)#PSc6E)*PgWaVu9v~4T+UNZc7ewCY|I^xKGeu=TU=k= zNk(p!y^TX-H}xLGx+F`ByRxyeJV`O#A#JIS?+&>??;j`(lYe}-3F^ z(k&9;%aP`w`IM~Y9&x&AxW@oEV;YoKkk1F=7-S_ltW^~(2NjGrp&=RvD2LOat;R5` z?7*r$Po|*6K_&m9f7TBJhIl9#16a0OP(EEQW38T045*bX*ou*$?82;L0|^R_$gDjx zh5{QTtIFSU@yl5YeC?Crpi@UDKqQFyB_&Z@1>wi9QoDvo`Tk4rseIBHerp=c{g(Vp zYWM2?S@z_+%7$Y1;W2|F=ZnTpuk+ytr>}rM(b91jXhm0w;)@gGV{}Q;<@s8~-xWl` zj?bN}Uw|PoQ0fClTc-@On-7VzwXxPRFIE16$z&8*Wp*?gRc0Pb5dWn^2dyo-?&C7Q zfzNN|*1nmx!@i%k3rEP9MO3eK#B{w?pZD+H6X?gA@^|kE^y5wWyY~e8@uvLFJ^5DC z7y894-@QKwR4H{{r|0LHKu^I@*F@3N1!sE12k8z4@TqtFGqz>#vz%&JL66ox@?gbG zZm!jKim}6AQHrv+Ttj%f;O>HMYmQf2T9s^u7{YAX*lCyaq_I|BqD&@-&$zBieDFQn zyk{IiE01>jAPdCgUmbGjmx!{E(> z`x{ZcNQb&`=BYX{`0Zt6=IBjlWdL@p6$v@#?Jj21YzY>3)8IYN=|rbTHJwtfBj-Ky zinO#buF|MIwjKuG_`=bvje#) zyHnb2!UEY4-Rr1iLG~dxVAUK8{Y<0x&y30+9gA%$fR6|0MpOIz2~X$KKP^LXR=aCEw4-x`GdN#-Y%mI;zwEl{ zp*{noUy}HF-&o6mGNzrOP{VFAbF`DQEnef0qa?pljyZl*3Dr5iQWHt-+YXrx9DnB0 z%ZkM!3T2_)vMHlh>=Bv{X+WlKm_9o-#pXh)X#eU`OkCw?pAYflQWi*V7!iBTMEZ1k zJUv2DbMmoAD7D+7(Dpj9c^=$FnP%!~AhP}`8kByLRktxp;TFF5=#h6DeRL=*U2glc z5trxkG9`GJ3AfN*N!*Z_A}rjrxJ8!xvx4m}zA{rYqi+u=k4l^3BHl``;I&zJTqZ6v za3(dK=b1Zj6jb}M9UJcjJryKVRoZ0P^o#<9Ag648|xD#}SeuNE#++hJq0i3?<^r6BLQS z2u^%T+es6k7o4w?3M2)hjC>W_FLJ=NA*hvSiGc{9SmKrR(=Y|kLC(LV?Gz2>E0_c* z8m0xHgc3Ah)x;TS4JGUB{POB@9vlaj0r}4+CxCil0n&adUq=VmAc=<89DW@{T(W&; z9r##fiPyMf?f=lsyIA59dljqbK)mvI0Fe}b_s_|G9j3s51W7%y^ih>1#FYg_ik6hb~jy9HH z+D&)+(PZC8EoQL~U*{4ixfvC=?gzc?_#OmRplcI7(~3KN=mzFsTK?U1G-)S7_q@^i zNbu(=fWA5VhfM3NN*ofl(4!eD{x{Z<_f1U0;y=bTKZZ2m{z3oF4FvZO z`gd;NJ9+A#-@tEv3;*l}g8K)3djtQ5sliiQKC-)Gk3e0^>eolMH(@F*_9JcEFKV|D zHalxi_+wQ^s^@Fl<8({Qsq*29L(q3K0&gKh&4cPexFqlSUrY@Wbu450FKM|S?IP%- zUzB|7n`@0?=yFBxqh&C2kuIg9Z--hOAg2iRfK+I!^Ghx;vkJtO-c2ZVUM?-K-W*-I zkMDIz+(vrC#)GZO{6xtPK5BMYe^7PytKKO60IF%r2We&Cy}9sW(VWOkm%NBB4t^jD zD_b{;3m(f~6fLkC4eP|F+&v+E7U!SOsqn5Q_Tv%VA5iWZ?q}?ZY3Jd2EYQpGT$$!9 zLKl+5#Vb+?XMc?JW7nYJ(6Y_uxO`G({?yQ=eC4@|f;~H;(6pGB&!v!^H%WlgLO_KO zQO35#Rm4VLLSSa#t`9y?_0EVm4=>Z!qpmw~XWiWdrxL+{8+Le{tEmy;vqW-1vx5SW zDPJAQ$K{>BR^HJ}j!Ch}#mKq()eV)ghUBDPA4Gl5w{gYqTDVt6ct4rPPOicT!VAkz zCLU>u87R=bP@2paMB$nS+Lg}-wrb(4)_*0C0+JH`7oZ89_ zZTuNMx~i&^wl|#0Z7j_%>wJ|=$q|l>((ezuyO_m26&TmwXP*Esq5OTEWOcUt_KE&> z>2GTg@gx1@_jmiwc=gLJKd1*W3`OBf_<^7VN>LO|V>-Z>C_j z0~ngF{&(mad88}NV~ItW3{)D>Y#oh6f96X>Q^5Q*eQRmpfTD}7b0gVW&R|gRfM7s` zLuDZT$X0EFqWBl`vtr2-K%~ej9kdc$;+0YY9Fnlr(0~E+FG&i9QI-<}Pdp5SHVN^5 z{eZH9uU4|_m}ilK21T)&7!ldOs9%aY3J*{$x$9?pm!zYPbYXnX~#X&_O0Xb?c9nuemJ!HU#4q5o34a@ zI$pVZoXb4$=i-P;D#g3>&BMFO544HHEi|%t>u5&e3`LK2gNNobY+f2%jOPHAXPgsl z%O11j$>Wc0onLU7yqs&fn^5N2la~bz@y3KN^5B>dTcQ=duYTY6KO0yl4H z*f^{c@CaHzPKm&aTibq?-tn+kkEI+X1**ucd(@6K!UQdvRM3nSR}=@0bP^@kmQDvBTogA3nIfpBrs=7C(UMkDWH%5w({A|vby6HJPWev^;bF4$W8!H;m^vtrhfE;B-s-Oc9F0D{3-mY{ z-C(0fdQV&@gK`YQIqj7QzmK<5|1@Eqs>T2Qn>hH5d*0te!r$ESdo29A(|5y~6wm-7 zfqWi@zyv}NIEtajl9JO)GEOoSO)#H|87!Dptj0M2ZE!$fT;Op@ZxIq?*9$xXsEL7g zF_??_Tonk50mM-&2XlcgU`-CMLdiIA##_(`f77yC{rgfJr0T^wRfGJDm5HN3G7k*U z;9$EYC13Cjm=PqP+rL063a|F(2$(FzRxRWr0YuQ{Eg&f%nF1gsLGvEitRvvcvK5Qt z<=y>yR`a=n;n&9el1o(=v-YaKF&OTk(uewb`Mfc|`}e`{tLDyvYSKGaIp3JleOI>! zJ@+%L*DC&IQ+@`Gc_317MwT=amKMjWpZ}Q~FRx}Z|(Jza_ z0oBKoy{)HEs5Gdu4wq+s$?ZnhFlk1DM~&G|&y%xsLSESSDV%h`C;9wz?1a{ejt$TrRt9G`O)M$p`(teTQ0rE{+Zcoz*_^SjT}`)u#fqEQf}>hZ_m15eK_F_I)5LbUCeepAIK{Dy%k>i z{)x-pK5=i!B4Q}Z2k8-F+Fb{i>)hofs5|H?2f+V}?CRZ(_dkVa}k;o3^uj;i4kJ`63?A#BtLd zO-O-jGkRLI#m7!7j|o-TvcToDcRePTNVey>aFb2i@xsNFZJN9wr&OXD;($NT7e;R( zm4I6TIbF75wz&_yQ4!{L=P^Qjw9yED9yok%*=LU6i7gD?eUP**f$^d7BqJqblMt#5 zk=(hwI1egO%4%}ev!jztSKpU9$-8b0t2iUaAT+S^C>i%l7tB(ePKqC^BSTLqRM2~& z<))i^idho7;E@+pEO&h_@v|zxvLg;@L4A_fa4R&E-^>ANX?VzMh{<4OxfQ)GTGR9!Jy|~nv^drq3ePhD+)v_*&2NuJs04RMxN&)F*qBse;%r5gaXn^Tiwc9Yhk^}!z!xk*<% zRJunk^NIv9*17Tn-)swJ3>UT!>u9PtU6P=IqrjT9nQgvw%9XQma6LwJU%yR(djZF9 zP+f-JDR96|@3rKnUny{^%>97AidBn=&b_@|p3@y0(;DDv0OlSHAVw6+OO_z}FWqL} z8l0A;h-2o4!PF+0cGm5Fl-Un42uW~Z1-?-W}bCvY{U8Tw?Wprsd|zS394NZo{4G z{d~+MX_|9{KYIwby)J->%2zpq9V!UoqbHFt!cU{EZ)1b-`Pd!DNs(vo$)4O;2_JPs zD;imA8uluuIJ}-B8nTGHA5i(j(3A}#tF0`?@nQ4iHic~Yo5wvb(LIW(W85Y_F2;3g zOg&oAqN6q#b~|364Vn#B-qL0QztBMC=|t`i0giR1`ossb()y?TkbI#s#rkkPI-1a2 zZSu|{J9)l3#|UO?*+uvK}L!b|r&E-S1|Gueh?E^E|Pv_A$NSnR7{6$R&#b_=8^kYT% zuLlS??TwU2i=fS}3uFl$b}V_SPkpA?qgl~U0LLqBKVZ%YYMkCE{LK2Pvqk1l-xcUv zBIdI3EBT8y`{7dM?KVuvEF}i4dMHOVgq+M&2+>?(y{&eA2K|sTe!)vlRCKcYS-`OXm@(foIO6rIKO{Yoz=%SlWm+XE)f7isiF5Rfj zfu2Vx=`}TMA4Z9r27Qeg*qQZo3)xeq_jgrp$}T{+`1T-19EQ}DU(&Qmi|KhjMy9m8 zQ}_D5uQ{_30$AgieJ*z~U8*=VYrb>da!ah;rm9?s)U)0Dr~;q6h&kYn;U`5;#IsKq zUgTe+ctf!1jX2y0d-ftC%a#?1-0-;BO1Mer+^(El-RF|Cv7u8bdmKWi$7qAg>!}j^ zXU$2vO)2@F2t&8Jn@iRXMb_VFv%j~O|8V-|0Z{Y)4T$F7;qRZf-2bor|KfinsQ*U} z_<`%cd9d#Q9wC>cmqC_H7-fJ&?((x>K1C2DMw2vx;xx59@o9N@?LjXfyrjUu>OBUi ziDYYq6#<1|h6MA1OE$Uy>Q8iXDI6f|g1;%YI`k~~je(?iNlEbpNCX0IdI}ikBo6%d zfaNW*TF~b|v)Us7R4+lnk{2(>UD8-8UavC+q8GsRmIAgx$m--1ubO{L$Uv>yz6=F& ze0V)sf`Tgpc0e)MV7U~4_rIp96F^(yPJRJ+pT5rtt)xj(-=FmdFbNs=ADXzY>`QM|m6o+g@z-@H{Q~H^2ir9Rm2ZmPf#-3CQc4&1)HKy*Pz;q;9vUW_%WhkiW70N~C0DVAW&Y`Ccd1y? z1Ao9Zg`VULfOgB!X zg}DX#>>uo*anV}?wX$(>*kH4N((~|Wk3rDk(bPW9s2teb(M@mc_90J`U(mi0W2ZxGh{;-EbzQ2jO`Vic& zDRl}`YU}%Km>0)au|xnc8KQlD-3@%Vze%hfXZmLX^bq$m1$s$+Po3?(E}lmlbO=RL zwtg^?hZ0anMwxqx8TWTA{_=hBmgloIs3Yd@xt9KS--Wjv`{zAY>UMs115(@yvLA*e zMmYsHj@Wq_VWu=h7IqXJb0l9P&D!x$T)7_ibhxUgfNB)hliTF~=N6wN!Rj(h}`o#Rblet+KyWwOibGaC8yd<2*hzX}b^D?QLhi zo??{Dm@+(}ahI!fV_TGmX$E30Uu&F+`TK@j~#EFlZxS4xiRhuemJoI~+7`Y~TFckK0d zQ)!Xs|NV6O?;qrcl=?3Y@SV{fLQphHF9=J)^a8->0=8gK3`JIw7{y>T%zVlW1CmFp zY7=m?%|LccU|>*;q=E148`~?6K^1w)n$e$#1FU=FIS>Z`4tm*YJHJX0F2`HaV**~s z#Yj+zrt=lbSA_m)PZn7jX$%Umc7bkWHSJr_bjh3J46y9c)j$_?cGp3(WM#60^TohG zH(vc^mg_**F|q~1vjkkzlJA4vsb7IEUxBQ;{OahU!1?pqs%$E8p3BO4i<;4{W_Mg! zE}&bR2T&xNdG6%?Kx+EC8TFgGz(2^SK^N?c=AimDqn0dK|4n1ua@1!Qeb1^th+E5( zu84n2+&cY6(E$3@d;HZ~gnsoNfAtojAKznEvldsT@4qgU19Y3xvRJh=Dt3W!8@oTV zwB@DnNM*TWL(<^f!b^u78gqbBStuSZl_)%yO69VEJzM^n_5n zqtz7F(iPUAw6J#!f3k)HsVXwQO?djr`%QB3?|Yr-s&PiOP0-&dYVUH7cI8|DXorHN zak>O2E!{=f)$)p>(QP#&Iye7~adqe$veNe-)zRpI`4C%+EHxTQetls%dwC6bU2G{| zme})da}`>suxfc(=^1%EY|VO%rqfQG&iRFtZOW(% z+f3YB_Jm|1XT2?zsV0lGbz)DWOc2AI(OWv(3w_`-tz%~4?bT+`f$HSD{Pmq( zhs?h9^FCe!Ge!O7b*swL@W(rSm)O4TFZGWuds|P%F6(diKP}+@C(rY-#{c3R-!AaW z!j8~1MbQ+3U>HI$%W@9WFhLLug3u^N;53GOnpGt!81EqvFfJQYfSdvdEF>5(TGrHM zX{1mIe;u0KmkbVNRZ|M z8xjhL(H6f{e-UV~zz^-01>SOz*R-{73N8snp*TCqE!v+^f2;b>+AE^)_I(627Y@lZ z5B2xa@%+uocwbgVJbtE~ z(Ll?R`DMIk$*GEu9sK3r$Qzp6`IBXdVmW|6^HxHI3{Wn0#mT7I*%0ivDdPFdbA;ha zpoF^nL>lmG<#$=El`m&>zp1TGx?`ctm>;!Egq~oPKh-;j1y1OQ?x>^6h640P;cX6% zZ+N!D$qD8^BKf203m!AC6!p)#Q;ymfR~F`D`y;eGXdKih{_J&MBmP+`o&E)DG_0;x`p5s%;vB@xBh605~1~Z;JXFo*E>A}iX z&)5dCtfuD}!w2>>MLTAs?deuL6CoqubBaCBf;yj2H#xQ8U4mNcIoPhKz3wWDZnIaf z#n&cWR_%L^hDY7V+E~Z92ON^Sq9AlvKgcJIc}CmUGq*tFKKgB_7TsKH@BYa(v=IA zOsMgIUn=PsLnp(xSSqPbJF_*ey=|7tNfw`hEm!lQXxvP7X8R(^P03^Ba(Q^JTlny( zh*x!Bqo{(U8fWq8)fl}P_UFmT?yTLTRJ+`zI=JDeM|+zr+{m%hgdP>74|G!;buXk0 z_=!ig25t9L!I$vw1NoZOlwAx2(@$0V>WAw7V-ofGCSOvd_m{sbKhmJH2%`*zqcDS! zC_;Uzlpe4BxCKv$WF?BCfZU0!4w4zY!VdW_lm>}Vku6a3DJp`ZWDX{47bwLEfMhWa zx_@B)1O>&#H~BK+O&S*m6~pCVKu4YW2`VnBOR`Sp0&A^&H3-W=)04(Q!n5Q;KsOf! zlesAcpb`{EagZJ1>trr407C%(2P?o!a01>}L4fI*7!*){iHcXizPa#Ub!-n*ijU&q z<<;9yb!-LeM;+V9Sprl*t6Q670^5kO+zffZ!0}O^ME9)*vwTN&{-Ym;5+}eig#^H; z5kk<)Lzbm#G~N`^e|&BdtQsk+7L8X-*OpT4;N!grk?hE$u zT)8AhDbJ=k%kJ>pmGG|h#SU%S`*eG$c2L#kg?OpHHzgx9bH&|9wwJ!VhWr9lM`C(n zVqKrCyB}O*vLh!IAKMqRwO&|*!_U)%A3ZIZOT4OK)PfKUe#v`%zn8Dux~4rbJeNY3 zdV`C4yjozIP5JkhWht4y?s)&PtMM?L(&jJ|qRJ&Gq}|KrR{Fca%@UtmdQRV|)c34^7h~UGu z7ARS6{*yP`*LK~>((`ktpw@MJ>QOl-w+B|(?i$3n`os`#Vj*OT7B5`&_Jl3^1SLM% zc{lQLtR~gAnop!4TKL9!ZFlXSG2O&FGLLG{9Cn@(FuG zys@jFzESlNcd%3CxjpRn#TGuGip43u=$MqFv!`op_4@+$H+#<9ZI{R(cqz0PiSYBR zJaYm)X2s^%qk}=S!0^;q! z%=u@|SvUr|Wy#8*0YnxW&{h^$1LPYDWN^zFz)&X%(nT}@j2vvq?0%*KwWMuu4AMCm z1{k`erXVR@^+*A&h5-Z_pz9t3*(#C(bXa($vL+cI#V!|5A>fqDTUgLRk9G0XkS%Q-M~}8^e5jcggxr zAYI4<4XhFGGY@a+3iOe$e4VgRC*xyqQhGN7`Tn^tXJ5;N|IXRL$)WY^e}iUHKC=D zxGw^@pB+e}lWIH1MJorT2vhQ|brK|Eoq4ikMtIf;Uu{U1!mlu)HZp29u4o-iwAwG( zqS>M^NZAkNC`Nm>@U>e<$ko8Xbu8-aoqBA|{P2*6mc|&7-7~FbTQ|&RmwS^3hvl0S zQ`G?)u)BV7>l=1162ymzty*<7lU}of(g#JT1K>m?)AtSCCBA-;cN$+B!lQ}qgr z8IlI}BEap%Iq>uKmffc~9ZiqRZg;mjI+083c&d)4({;BWoAR@ z=y=`5`a(KsmbAP2tbz5j{uT5+L&ZUP6UH$g|UAv&B>4l#P-$J9G`#g<*tb%7m30@a%fwt2mh6M8b?n(1KWy5J1V zZ06^t-3@oNhx#_Xc|(9j1xvWHS)Pxr>y?a$g(lT8^5KFQ^GH9px;fF@z7B0};~p_l zQ*YVh@aR*Bg~?2=xYGs~F-oFn{v6zpO?vb*z9d^dxjd7)mhP9aj7mv^hX#IK&Qp+u zsl^@PI)H*b66m&OifMVm_qu%!j>)i#RZ}PY--EaXkxq}UJdN=mZr0l z^;d0#{IFBs^^-pDNqq}^|A~Wrz~L{q{T3NfnjuJ-rWa78Fan_&k|1CVCYIHXSe`&B z62_@dXEKmA?SfZb0pM4)nm7V1$$(Mdj& z$9xS%D%9b2(fp%hTr{!ygyKDomwqC!Xlzj(TA@NnsNlGgw^0M?s zRYz8$&fKu0yU%Ab@*f!}oC65-3P59h_0d`uunC4D z9-nqK+rJl4bv5uU2R?ssv-%Zd6j~{xg7^Z3);G3E_Ezrv;W=Hxe-KTykGi9ekZQeW z0o+B175@>TCoFV0FAAmxEQ?@@abGPfonoK&wRqL}_g>aGo+6*yLyq&s{_CeQ0Ph6Q zPbIgZZ@p4JB)4(LJ5W8ARDyv-G&(34Ou8+a!7tjQQ3HOB;wi3+>q%l2$azHx?-_SB zBCapP6PSRz)bu>6533-y*;TD&Y|kBE_yK3*^I>~JkMdyOxC=ZDYR8_Ss#abN=4iaF zwu(mWP!M7SBhJa=0|gBOaVVcUwj}pa@9N0G4vU6F zvJAfy{mhKKJf9Gw5vu3aoN({R?~WWVc#eXJE)1U6&Kw#@RkRC{U1%=$e!D%<|gL!QF zL&w~i6L|=)XcIDb?K07obr$o4Xm^L9APz7`<_X`h(cXbN7gnX%vsee6^)Buk3!U@J zjp8N_7lZAorgKtwd2zWK@sc66+9MKI_#@!L_hSgIoBl zIcCTmr}NrcI0?rp>XBNgd;_uD7tx)u%WIeUg2+Sfc4t>zF2ASqaJbG;QAa;yM=Kj? zlssY&xJ2jc5)F;-(=p#n#+X(pMz3CBSqrGEj(claododp{g6@cSe;E}E=ZRcXNl@L zTe|Ce1>&2CrkVj4v?C!)2kvs3L-A)!+2xDIC#K*bXYO$EwMQXy(Bs*lDsLhh%E5?y zjSPvnv(h2zw!8N3Sc)z8*XbIVIk)d^rU~UqzaG0b>BjyVkzoTJ#^~aA2cc@0nB>)R zK4!_U%Y5CLB_6%P8=VEn0S(-Z5M_0b8Wztha(;ViG|LRa`2cChq4yNq@7O6S{GPEQ ztMSUZv|ppI+nxU$Gk?0>ogpgVBW_BMPT|nt#fiso$KUuZR9*^BD^I2~%;njS zG9{C6BU7b5+C{wUyVC}X#)wa;1gqmZc!td8CL1jY5szj^HvCRNWmkEqgPf~lBLvRT zB2kW{qf%v*vn1{JXDmDAdxvk-okZMd`L<+X508U-RL4|r5+`l2TU#_!Vw7vddR$(o z+!k8JuVCyM`eI{>y7PLaBe9bVS=kFzl{ja^fwr|p7D;{CWfOW$%W=cmQ>ll!aX!K7 zSxT1}s+SdcZ-tFWU_=;@6<*ti%LSbUdxOr9d_k&Pk1qLvlVkqb8c8g}&seQzM};!$ z*Zn{`$|>B*&pD#EWjEa0jgr{+NaMDQ>55Rmq}c7OnpkYb3HDNb-3yY3M8-UYn>X6H z2rtdVs?Kdqf#XFr!m(F*?yO*oPP4TUpp#*3RP~5CHGJz1@RctcgX|StjK=@|-G~p^ zc{{3XfROCVW7{;{KX~^0aPAjde#B}&zVyBIH;TY0N})J|5TCZIk+q+^ggihGlL365 zA_XHd$=g)w+w@NYIJKb3Onn-H74f^rH%5Z4@e;`aic=J7!Bm>M~I$Ir7S57l9$a}LD zr@#?N5*!WBL5~0j?kB&jRG1(HtG*QGWt9yjsbl%ii}Lp$s+o;;&~5RJ8nT+pomQ`F z4{j8<{@xHf1m$tb&} zK=J|lZAa~WIzNt-s(Dv)$R6;Hdt7}&=poqIyV3sUo;S63Q=^k5UrHZ6c_$I2 z6G^aY*$cD2GX&zoFDUNyPL3o9dA1;vr8YG@B`us>ts)qC#T8(+oQG~cX2v!>8ImA$ z9??5KyE8BNYsBySy3J~Jcu1%532D7*;SZx}*j^kZ3Oo8wTr~IAqr2=k434o2FbA)? zhA-26sCP=cQ#8-n9>!@T&)(-6`-i*{uE(7{iSnJD*+M`vHl>a-DjKi!h5rt|&fDX4^DN{x^93P&U< zd{SuoxlhIj!trw2Nawg*eu)hk!4oQo0X-e-n}%%dJI`lBlwdnIF4D=$mgIZCQSLW5 z$cy$$>`4{UGUTMa^mK4Vg%e^}zVJ-1*psI=!;^Ds0goSaeBVqYtIaz@g>xZ^%-k8$ z%`-h4BUEj>CBz!tYezaQlDX&YWgIV}sTXY$A=ssh#~Xr#8v8^@Z-oA zSfMc>=0T3Znb2&>4v+9o_|JPN{MR2c_M-y=K#g~H6#d8dul%moEd>a@VhiL+Z8HOTgnjn}@wWSjRfD?uT7)u#2VX{CTL4$@cwOV1L zEBPtI0ofJ)eBgD#I3{1+vFOzwl>#Fw7?5HB&;%G$37CP&&{Zf21$c|6D@0~L^X0hZ#xGMf><8r?;nbb1;lGb0Ei06l$w!T^~N;_;SE;EoFRZ9q5?uE`aQ+v*Df*)9*pma0O=QXQmLJdqSK? zWBia%d?Tzu;7lgZ{b}Rhk;q;`2pIa{@b168+YzBI@0ilb@pVs$zxRv6GhavfrUD zd%5Ti+j=c@y2njb2qc0#Wx8Vy@+IAJXV-t_!%I}Kv+mTCA}>y%1>8U`%FMH2TK`tEK!^}>~Jsvn0A7s*Kd9U0Lrx2YI38M;2v-0bR@v3tg ztHU;cw063Otkt-UzbW#~wh`-mn6NBWVd;ohO}pLm)Z=DbqBMkcnfYZRv2bRqTu0{< zyN85!_sE)H!S{S~IG;IhMnlaqP)+Ky!FXt7*EPdUrw-Ib--*(eTawy(30|1e%ZfbW zq0_@`5HIEbQCMJwBlNw4xlO!!^5m9!rWn%=ou#A^@U5=U!;fJBKfZ+p&=MC6lYKb& zJxAqT#dIWoZ}Z}b4jb=SHkZpLd&KICNpFO5waBA*JMHMeb~E(!P2LjNzsHEL3F%MhKs5cXX(eII7M-K&zFo(5%ZfYKx}YgYEM2jT+M0z zOw$KaVEc>~EbOo^PpNZejl<)`g?V^J>02pOuyU`708=r<3OxmKw7bsJgLc5M`>@6K zb&zZF^*KByvSybBQhHtaqabCVdcMRKNoF+ChOycE@p_GUREF-CbA_kkZ6aozMmBwU z+TUbb9R6LWiFbd?AAKI)F_`*~+DZJ!&h^)x5r1;vq>u%`F%%{#ltu|0f#KybiI7W{ zyWsl*_DiM@8F74o|p>HpHIlyR?@8JESzp~9=+!C8eSSEY-ALAD2 zXMxKSx14oe{fJwVk9+hjZiAK#lzr>{zAT9%8!7;w=Nbm9zO=(dk>yn(ELpK1g0$=& zepg6Nt`?i>6mKCePl|rj4uVz4tRyeXq2}zJ-Px);aocaNuTab ze&vwV4kfFzLKkBjNjAy-a3^<=a42m&S$o;F?sOwru0_&+RtsT`HQ#19$n0?wE z%RrgDSw##7NBRjmM%eClgWa8H85;8F3A9SZXBHk_#EWh6x+X>MZ&9Cqz93@%+{}mm zPlLe!ooo3uNPL$8A}F=Qi3mZ#1PK%n7-k*ZS-=6P<}%EJ8#qOMngT8>E0O>m*=2pD zS26r_RkcmYe^KPW3KTq#FRL#FGCS;Z-d2Htl^SGw88}$ZfWjxB8H1Md+KR?Ne;T2{ z8V!{7S9t?6Sq}fR;hkiyovz6!ybkOv`Dn3@5f!T(Qk;WTA4unBpgs!9oarjTkiNH~ zm(wpWlDu`JS8Hi7wzF#M;=hzc5O*L2oOWMOB4p*`0LLA9bKrJ}_WNyaZGM&l-s=B( zd!h0lL(CV^q~C&=`3+(gG=cRM+uke#p)b=u!gqp6kKch9aMjQki1|94vlpj7OVX$k z=y-$w_h(hKFIn5nt5nU;uxZIFe~L}tLKE~)u<09UnxVf#e7oQ1Zhv?tsPxQo<(_n1 z)%(k#;ap2%@-Qmfxtt;aJ!)rW5e#8g3GHa9=mnf#%a$ zP9LFu6i%0Ebc3fno5420Vr@<}+gGcda=8{&*qOqNxMCmL(mf(#!;HH9c=pba`I}CK zKZ9ZD1BY+H>)ObCO6Bf$Q{%ggA8K}+qe1c~&*S}z&c?3MSuB&z2JcP zDh}7Xez8u^!h~m5pY6m7t8M%mn%k>>-k(R|+9qa>BoAny>wQEkTF3R_60`}9b(lhy zux2ljXe=WbD)e!oPNwC1(zD|>dqptncn(@Cv3#OZXy?hcT2Ge?b?50@lxm}?F>G>e zH}M~ufm+mq^yko zMOl~nzfe~GPo4jtl$F2BJZTtkzR4x`#4s9xNud9LEKvkZQv^aWIEgSQ{;7`Qn-OqE zuN<}vu-dQ;(A1W!5nJbZfg3Ljy0Fv|2E?DM@Mo(?Ar1s0fYmPs0s<;q3%@Yn$`PxC zA%OroIFLdlLHT;Y_~d6KH*iVGI^u+{DiJ6sRFf-VokT$G80?$_hBw84w(AmZkn60| za@OS~CIL-iWTm15t;Kb!7|b-UQ&hj!QRHtRrl`N_C@$+X?65tHKdGB0EOEF%3Gw{r z%(MM8^ZXknWl&Lu-b>2ZKPf4LiZb-?l$1e58OlFWwzrZpw(9-6-<6b?XhvKR?$0IV zuj60;u%rx-A6nAVe_T@j5*Gc_k}?RFAid^LpnuD~uCk-!44Bs8oCn9TY{jA~%W=U( z9$-Q84$aMcD8?jJ6tfeIMq_M0-9t`~P`+>{lZN)$J7-<)bhF2>owKhMPuA02C8~wi zqbU2_z)m6sf;jH@<9zhd`hQdRW=oEuTbJNHPmz~hCaV(jaLnq0c@Q8m3+%sPMhp^S zMo-_M2#<`2^vL0y?*6OOEIr&2`h;-#x7Xf#?X^ZVtbsvMhlpJ>oPxMpD3ca=Go@`s zWjK01i&OGnlv#n#>a0J~tlUg@6VuK5x_^RPn9aT2{u1X%XVd*3w)X*i}e z(O@;v^1Lv5unDe?Qybpoa+Wa3HlO8cRWs`!hyMC1BefE3;As%eJ((9tJ>~6^$7w1_ zdM?lBI-Huj*;CWVq1?r0g+p=Il;{pd-q4RG)0}V2xB;^*v_5iEHCCcCs(gg+ZTMv9 z!|9(}*E#pwly?2cyv?tLc>bvi9Qhx+)%~AwX@4-N`+Jx5Lmb-Mm>7W)2nv!YMncpU zg>ZzxU>rq31R`LZ{G4n}z8&Lsxp-(#0MTR@eAu!@GJcmU-(nLGy0fwODkJr|06xBl zgDqo4u$@)21q%Y+W$CxYwyz$k(2F zxlvQY+t07>R4o1;-TUW+_ZRst^+~>a1vJL_NO;d~h2g`x1aC&@1tdZ zgK*CLnsEM861>1Xa_x9V*M}Rlc+n9m!jjcWsA11lk{XSy<5-;sXZa-n)aX`4v?W#9 zG)&Pwd^sRJX!#K1S1G)TuJo$NzA~iyIX@pN=(Mm>cJjoFc2kPH_as1qaV--_PZk6o zyfPQ}(3R5pqNOS3!!*J6pl8qQ>)sS`m(DbjR{SeH^DlJL4Do)D097SmDoa>&^o|95 zQm!+jBIGr}B$wAJ9+&RI7{ut6Cv(I1!e}#c)+c7 zZLeI{G4KIk7HNi(DZ%{L4B4kSKLl6waX3y-@j1P~WJnAYAJX~CwU@9wTxK!Y66mgl zL&KwF$pmWCIA<~J>iXR(5$2U&$2jX?-%kpmz;4Epj-sad&~)UEGvvuRI896-i*a^B z8|91uga)&I#-mtuxHfDXmd5`#PQd8D0bq##1}EVE*RS*c0ViPed(?#^5Q^;M-Y5xS z2nOOfjv)|4kr=jn0FyWhf*AA}>O#VO4s3%~>AT>Le@G^7-(>Hv8~TCX$uztRjeLr_ zwnvip6j}0CVFcm5aIgV3@@;`YB|FB7v%O&fC%g1VqwG_hU(4>hqhzN$&ayF(K6 zqYLmK#Uwvml!5=`27dn*{;eCh-#_3#xq)AQ3;+HN-0vUoaRdKcs?xf<_m*^qwrXZ{ zxavjPDKd4;r3Mh42PM$DdT8jotT)`vyW_4FhN6JEr^Zg1Db%fU9C&W2F9ExOzk9BU z;;XAcrbVU{$kfx`6)$Kx9N`B=fO0d~CKNQ4xJ-OXBMNq#kIgTgae+VMd;J|}T;MZn z+<)SX3w&mc`?sBORm}sc3>n*os0IsDN;E+?(A8s+2<_#OAFCrdt%(k+iGIN`dE*NY zG=%~dKu;N|KTNZ-=su|+?h+eG!Cs6`4@ljJ&M&W_DjJC*zF;K-e;PX@K$$6v+kW3} z9s+`?1Yt`|klU=1EBDP+(wFs~iECS=h-4zug~kjJx1NuorEcPB07stwXRZV4Bd&g< zyYRmL_J4f|M&hGR{>N{^e~lo7K|^@|uO$on|60;yn6|Ib{i|od`-!J)c!x;)lhdkO zm~01;YFqfz*8BhXqh-N=^VNLkckpjq$&Y1u3`OBxi3P%;Pl;bK_IAl5-U61$JM6vZ zf_9!ayfd!0pt^-IB;KndB>6e38{fHHTTI2?krjF`38L?kIrUZ{i}nd4a9jRueGt9X zGk1^OUkNU6!5N2kftC0@V4l2bV#wR&Z(Az`cMf_2zXNc(&#^<)PDa=n+tAzjh}t7` z@*Zv4u4xx;eskK;w-X>m{$<%i*vlT%H{zFQIed@NwDB4BbIXzL-)HVyo}|dG{kzT= zv+I1_-O9f*b&MF_xA!$}PtN&e^5H(W-~d!h9sxAY`Iy)qT~QckqJ7Oc1Sb8ti0*Y4 zdO|f5dMC5Rr!8*aqsM*PWy(11Lv5_z%?fOhD#Mjw;zk%#i+&jJQpAXsn=sV}Y?Yh6 zX9CF|UiF(Q^P-jf7E7J^%*o3a+l2ktE*SIm*cL~D_Vr`w#}b_HWUAtAD^;LC6z1Tn zgPQ5=?sQ+Jt(HAhYCr^U?~fmvEn{Bv7Y%*P+pD!%MEx0$$@7p%5%=&gEQISK(9W-L z-QUia$~y2lAEMgzYhE8>S?YIp-?%FK+sseA-uqYm1;~6dMWWHld?ZxYKfdZe67*bH zGmQyMjZB++WOi9&%(yFpN#$z{sJcR#=eA8h=JjzYWlbt6uCsw!Aj3=;hUvvz3O0l9 z3#Ck27_cq3a!2=Qpa$YYqMAP4`6#vi%f}-k*2PFR=WEiv06L({BahC{D^V!$cAAhUz4#Tq7`;4kCK$fh2*_$OXRlXk>7(ZmF_s*R5ba~H zkix6C9thF&goD@!RM6a?nGCjg1Go8wj8LC)r3D5UW#|qLlhB+kscjA2Q%|PxRzJ`e z%eY6hxceiWZt4TvV9<-UzVFzx9K9O{N=G{9`M<-SdtKUlb!6dDXX}|EUd|EL0Eaqo z5a$27ZGRe$L@|5MU?v@d&1Z&}nJ^8ohGcGnSpd-_V&Vxpbs5eW?AcL|1C+7k!-C~1 z_hpsxq(u^O)VIqn&)VC=9zuUOJ3(w0SOc@bfhFr$l?$a8R>wSOs&?ipO%F?=yHKa3 zZqv~RvtH<{01_$$Muy~YP;bC(H$j;~2faspAz2F=^4 zE}ZC5sK|I|O}Bg`mRlUfbj;2Q`GN&tRLf}UJnWR+Lw(!xtia$3-o8(uw!9EeRT2qo z8yl*ouw&Am!b3;Z8#R21iR3-o3+}YGEyu*(`7#Rcagq#wrI)?)qv5?dK|wp!ZP)8W z-@<0ZE@2(Nr;oQBcMp)!9=elv)(rhhDs69W#BZr<^lhg5wo)M8N-$f1-O~9j-foZq zd0P;r_-YdAk!ud&gq8K7@829szAx|6gjrtb2Q$_(r+oY31gX z+-GeFCj6%#(0p+n#4P-)kq4r??#1%`-z{+(w|_^?>gUr}@iLB8>@6@B zJEypMy9sQm*cMuP-@~fFLw_c9t-sGhX{-K@n)#wbk6l`HZw71!?VW6`ExVSQ_Y)D& zuI5E5>G%UF2(AwLo&d_Cxdr&!mQi}5@kF_dG5>EZwZHhQ>5T$jAHL2*#(>0Gk2i&&Sq#;$CyF-ESW`Z004+PW0y zbk-#1@??EK8A)#9fmX{5>S`R?E$3w~r$|XuxTB5cQaiYRyVWTn&)qRc=0U`vvZSap zrD$9lC^tdgC$<61jP8iSxX65boHaPmSK)HaoLdBU0$&8V0A1I>3!C=EnrDqiCEw=@ z^${x9BE5&lEwqT7$D@fwcv=>DE;Sd9pJ-i?HAY)XsxK5e#e(&Tw6+XaGP}h_lK#}n ztPPIayVe1*xdtcn7B*K2Tt~cvB zkex4HRseHx3?(}}gIMwMltFRB0wJ55(%CLXcRrZJW4$b;=Akx3!UMQS3W%m>^}#=> z((@+(e{LJsjk9mEQjm;%8@iVPg?8UTmaJF?*~0J=->T!KPMZw!HaHfE+jVM&u$ZRI zpMX@yPOsWKO35`CplBkc=*S`s)DZ~r^cvG_lSj@NuoUUXaczA4>EwrplKbVkBJ>ak z7(5x5m~`6h-B+dU=h>B%T=;oq2>1bl#CVCZ@2#75=cZrSQZQfOgGKY!i%~Q_78$`w zWSX8YFPdWVykqiRcQIyZ(_cPPdq71JBw4X}!=ckVzZcy$V6ib`sX2m|4T{$r^rY6k z2c}+`4OP}h$flezbb;9WtVjslUQL&kw&>FCu~qx3t)o~qk6WJVOmW6*|clPN`3lu zz#w@V7iI%USym;qbaru8dp>W7Hwc=|;-XLH`4;=ITgrM%*>ErsI2?X5io9Jq(>n^j z@t~dSWXxrDv}_`nLnk5<(-DuAWq}gxfZXd#sItzr*D*fr1 z3Q4p$@Er?KLBQ-&UmtSIyy^P6YJiB((`R$Dm{eqA=ouk&60ssgZRkOllRGJ}>~pTJ z+2s(^eJxezSUA09fa?F7Tk4V~cqpG43&_N<7Z$-6SmMX={>qm>UsxwCIY) zMi-CSLTL@x;P~N0|C2tD^tk8M_Wy5}M?ZXnR?r5{et6_3bock4^#SF6@rirnE_9Pi_D@#olWuf~M`+E#+Wy`ce8d)))V-fmLp zPV|7Y9l;^!Eit$r#`3J|O(=mEb!L z+;C<3mg(K)c%ipMF8C%vzU{dZaz}6*n1sL`Mn>>oHaD~#P88qt`&jz$xwNhMa|wa( z7vM)KV=+Zd(nT`!=fHOuZTX7NUK;1@Wr1DMebK*2-F_Sc zbz5F{a^c6-0N-EEzjHOf_m}g-)%?u~0AQ~tbQcmG#=4=ad->?>qPo;{iQF-?gRo2`%1>qgO4+n%JBaL6s8p*^-25ab)=wXeac zUH|5p$B1Xo!EA6A$ zU})&15w-{!rDkyo$=iicQNaD~g2Rxr*YatkJ;UmEwGS&KCP;%u7R`4dvPrelWA8OG z9n)z*Laa4LUVuOYZ;l1<#2oVqgX9BR^cry4B8TQ(KlMN24n-*!oGwSKipkeXLj>)`cO2Vm1=}VMLEjW+|ER%|?FEW7-3#zkx_9umCzo7Y+*|Z@-H!p^AJl~WN4>JDHNLAsocL8a`B$dco4X&Sf8ew6 zw%?o6^DKVztJ3Yj)1kO=zmoL!0X=h9RO6R_GJtlxrq9+~4aS~STj^iG4SG0cXx}R) zG7%`VWRtCgBa(IcmX;puD7$1mLgXCWn*Py+)=Zv{*IBqHjOU@VOacWpj_WL*=Sgpt zhbvIDDxN#{)<2K~6=LF~TDZHbLLkO~1RD&Nqm>_= zW6#4Zat%!ABp$oVnV^@ZbjMZhMQ~GW~G0i+glUVPjgiSJr>X&Rmt zml(YBk4Z~O9O3Qd=F@R`xeavGS~Tmya1T>R^m1h9vIT^KbPl&42he_~PJ72fw~13- z33U&ktyqy10n8#<_qg zE?Njzpw-biO>Rj0c?i`_dN^RpdR%0$1B^&z#vF%VdmQjyLS0cf$1MV`6C?t`4fMLOehGU1OyWV4pA6EqA2m{WY-o) zQ0nbCkL;=-D7xnqB=Vk{BKOWP@s{1f-#n@4b8gobGm^KR?>@v8zZc8i#v$N4v>^Mq z7xA{8+Oj0-P0|P7gJWd+i(rLpDNnX@`?nQ$Mt-bvY-`{zAz@NRpzw`Eh#Qq0bU*|ho9`&+Io+5n8a$}k9cj!JWt}~yn>72+%>`nkW`luG+t~m@-md|G^b}TPGBJ4_x zizDI{XmlEM6%N~KTl9DB=%!@rIyI2AB;63Pz?R9>j3EVtyG0~R$BvgyR^+ow67JJ6 zBqO1smVZi^__z>xF=D-vfl2Pa46w)N0O#?7rtOyo!wK%>4K zNB~7@#8`r3`p4Ar(y*p$(W!MaCfn7{c0iU3HUN^QL*^5Om@tB` z99R%_G_SsVQ?IS_L^v+9lsdn&-rpYpe>+^g6SMOVKRDn2^m{YcM1G#&{&yDmHiG^6 z8Nc+}A}|Vt@m;+0a|P=d+aqZ7j>TK#0fMjD*8Hw zwr7ptKG(cO#cgdAd;13Z?*gCUu9dxEg55qO*$LX)!QGScuNADXyIfU=Qm-x(m4_G>+O~v4HxEPZ@5V+ z37EOUEyU?`H_S}Y`q4TFd0s_@^X#?UN#;n0DlnZO^`u?$64XvOeuW6%DGCM~U%d_F zQmV0MK>?fgrY=-^XoClWR`=SzWy}yC*0^sx19~AHC*ziX&X=o5K%)xgX1-R){n2rubpSPfKxUnZ3v)l6F#po*m3J^KC?ldM5in{9!%kU7-jxWb`I@YI?rkz9{|_xcHKZU zGQd`tc2qW-m#KkOg7aRvD^}jqxP;Nza1|oJOVbE>@uR#Y@M&!OMI8L0sVE<33pqRh zwQ{Pif{a6R4sR53L(GxDf14-`e@c#pe!}ajL&CGt*_CkBl$M!9nv2# z*6hc?EDzN7Q5F;L@;IZfms8AS{W$hSIM?UrOJPp{o-v8}SY71W`X}ZwNeQ9TT*8zG zh>w!QJ}Jq8gkxSRuGd=|ZpjR$DY&VLi2h0@;|esfoTWKYs>W?#i@86(*3LE1OLg5g zR#LxO5mBf&i1g)&GhE)5G2~3Wl&+@5N0Y`qpe-bRUawYBap&{8im6r?>SE!YmE0=qj2k* zu3^!{6^z2j-Vh;{uHJDlXX6V)xW*Q57R>+O27mPQv|##kRc@b>3}wY zyhSL{w`)|qcb!7yU({PTEPne*?n2Jw9;jk)i)f!qRKDp)S+vuXw{z3Cb!3e0`5gM@ zK<(k>Z5p{{ejxY`O~g)1%6>H}1fn}#irhozz7~}2-)y<$7PH7~UugR#A@`md^;XW_ zHALWDjdF{oTNK`|1Bv#zas=GJr@;Mt;#~(t!GEQH$%GPxecwHg4L!36cB0ddQXS=&Dd(V#8>j$cNtuGieT!)A zW6=g!i!#r{TIs)Zj)u?Nw@eUvr&*k~1vK}IRRhPbz!s3c9n=K=r`o4$YmPh{^jH2B zSMMSj`y6uRdpo(w$$yYP^Wk@?Rt&Gou%(M@1PAq7`fLkgTU=Jm8^h?O3~MiA*2{d( zbNL4RyxV;>TxP!*F3Y>&@)p>*Q{9Ybd@2btlp$22GBQqLU5b7EJlRO^&+X^{q_G+OYtxIGImR2F{SECYYz_+u8v`M(~2u zm-2bS!sdV#>y`<5tK8Nc6*ihm1)3)=&7~jV2x!R0pbTC^mWtwDC@PcHRL(Dxp3ulm zf-@+CWCtE9@`z8TK@;xRN`Ay!niN^_s<0~%91UM+HT=kDK6t%(nt8xa^O9YIX7JHE zR9FUv^&|BJ@kV|=lk4c;Z+GZ%3NQCtSB3x|^;b1$5`HyBioD)n<#5i(^pc2B*pJ0Z zg|AUz*g@UG(Q$=C^DanJrDo$SMU-^3fs;%wo;%sAacTxZJw)3dRhN zgC}`suc8`vgI7zapa@fr^v!V#;A~wa5wuDnb>f2}&*Mig6O|@SmU@kmzefhLM*BN5 z*h~7qC?Nk}=~R0W z>!PvbccbAlBi!^KY(CW{Xn}oK`Ds)6@cNwN7Zd-$!73R;s!-aYnSz!yIxv_Cpjny@ zXr|u(jrIq&e~p}(Xc47-gBfX&q?7#1ah;}-ua9pF$h1E*H9(6q9nJfRJiRl&Hh4>G zG`-MV{ENc*w(&9v^|&-35?{ApBMzyG>J{{JN?N}-^*QBQ>u@c(sn!zYuyE>vK|@uS z{wki=TDxag6tv)(;h(u$Q9#&WWJ8^YqjvEghoCxLUnXkjX?~lI3hYgX#djALTZ*#> z9gok-B%n&`CRp*Un*yp3Agdh9FSNP+`M6_sGERfSqk-SxFG1!f@Co;o_(F{I=}d01 zmRM?A*5!ur_$9p9C*eE;l$Np(6ks@ zbB9XRFrjAaj)Psp0+8^?**TgiHL4@(StoRliFLx-{x}2@Ue1)WC>vTgkCdz`&OYxi z@=JA^a@xLt5>^3LYOe^c_Pz6>PX%%xRH1(K7D)yr_`K7SPgp2i4%(rjZ<^4X?L-S) z@3S;`>xy<103?|b{HegXq*GKd^9%3k7*WMHjCexG)r>nSO&t4f+>x6L4-}#_ z_=B~}*wug_7Un$4(Ic-d{p52xpRV1dzcGEEB4#2<0@aL(7CwfD*@qS>llN+RWXCbE z;DZ3>fHjyIMnI1gzOI5vSm$Ro;7QRbr}gUbrqsEWPg+8~-Iud2vJc}Ty)Gx4JF#c& zc#B_v0kXO9dUbd?&haxWN2gVVN3L-EZ0dWkaK!l`V6v8MBLvWnLDGEZt4Htge4&R_(1ilTf-tMAF zxc3M!aA!kp*bt$1JOyVv&cca*5uZcC?Qw$K>-aFX_ttlfapLW$g}rH8(7R3%?~MT} z-m4wE=W4b$wLdg~{;1i5?PxBJcd|S6hJM>~KzOgUB-DGRJ=$^NUV4e%Q*iG}4E+9P z?{2*3$v1dQy_@35n_Is-kfFP3F7(&rcycdKQ{Q~V4O(RpZ~NR_iDR)IJr!E+P4=l~ z4~_n8kSaJY-uW6gcCx%`xvgN=j35izmgfFY#?aWR#(}`Y=D@E1uI(#okSM(u3~tU3lW3e=NP!=YmehAMue(lZnFf*3)tj`E1;3Z5dC+QN3i6&Sb;WS3XLbeIMrrzLym37Ja%0=g+p{TBL zw@&kf##VpnOSP&N`)tQ0p=-<`r4^Hh^g!bZ&V5R9w+y`*0^So;;6|u-I6&yA?2}G%+kHk}%2O~A>fyY4u=v1eo?3?*W0u`P_0vs@D z$V4*Ff*{-ifpchdAs$XEUQg!PiH!JI6wmAgiqCA~R~=wVJ$yW_b;WtPU(cRBaphxr zaAIflaisg|77$pf54ppX$|fl$v(NR~eQL57JvyWc6u0sKcK0VrJ?j}vT7KlBEl32n z14P7n%t9k9iEQ38tf?gjQ@$0Qc*Z)1BRf1vWCk#Vr=CU!^#x9sXAv=VY7MshI0%^J z^qyMhqen9*gUcT95xyU89F|--UDFR#W@1<607zPa9HBAfh;(F}s3ybQBlxruen)oj zhU{J&zM4Ne4|%v{HlfFGa6JM+L(#iJV{~Wgw=zy>F_q0SWhqD+?|l4m9e(=b+KYvp z<@ot-wzp_64cRifS#^~y4^T?A4%#m%B0re0@Jd9tO>c~|D=g?1BW^iX?!5BFcrnaZ z6M{-RR{|V}{63PhC1X$>h&8w^w)!4cM=K-j3;J7T7kGTG*~WGS^t>&&02<49;g__p zP@SZR5wi}jkH78h0{l^Q5R3x@e~>qq7!>J(sp5ilkei6J@LBB(_`;}X&^DhvtEIFX z*U{^Y*TNmnMyJR`nbiGl!+V)^*PSMpY6YshZ_%94&Z+E0Kph%)*-2RIzR2gv6*5)R z%344>#j%k-qOvFtD}L>&{2~#K%)IiW-)GNTH41qYVmJ`a&2zck$B?h@noL(|$$Mva zIFRN%BHpZYnY_%tavq}zn>zAY*hktpX}Fgyf%TdnfTE9}aP>yczv1frLQn2Z!W?zQ zA!3wD`qsof0>(xWZE3>PfDKl>D&xkcCc*YORL_9QUA^w*gM$VV2k!JB4mx_vM%}bt z;ax2b2D22{3%^yjMJ0O#Z&bfM9xrQ(SDE@`ZNOcpv@kAMXlLsEUObt|7PRY4A*AQM zNJT7tz0#?`utLMLn8t#+bjFH(EO2THX(d*GTAU-D#+nptxjScr4#?rH8JkBf~gv|D~@?u%Fw#2gA z-=paB#_BTA@!W<&kDAbdm>fAD{ER#T#$6L?{^FM9a;EJ^(3+HJ-!tQydW?J%rQ>#> z&~J8^1P=qet?*%ZDd*J8AgdZ4^Z~es8fi=FwzXP0q|K;85-!u?H%q^_cM@k~F0`9+ z%Icd`dQq&wEsu~FDDb*-u!?mL7^~0do}RmY#hve0f2_K|y&Om6!TD;!qmYXZELKpL z<`o^;aQjgF18O8&giVxo{cn%#H}=sqX&0wodQkuKiUMB@ z$(<6K>;=*7#~A!8lqlIRmSybpcOJ^=vh7lM)rUm*sgLV-g8bhwnrjQ3#(!xUF^h)V zo>1-OIhie9f#>8t;;wPyjtR>YfoQJ5b%T4N00Oe~9+@hA531wlOEvMUa@)5PPd0Du z`nT`JO-(WE9W5F!t;`WXGy7TmAVn?;W2_AK{bC;|@nqBYk2agk>yPc6+b-e=$RgEj z2d3!#B)$GC)94Z8pAKp~Syh-S^Bb zVjB5L((AxtN+8*y-v(O2?S@o=q}00#!#=e6r5K_Yk>{>KQ?HT7f31OhJFnGDc?S3| zg;9Z@Yi5Jih|X#2d4t>Hiw-{ej(jC>+uQtpvD{fPMlJbv3$5`-w=Xx~VmoPD{jTK^ z>~B9)!~P^6cD{}&(8Cu;qWl}W2L2jevlFciv%ZeBS3U4Zx;a^>AI0Jb>xoAJFxl&- zBp;OSWH?=0p4Y;UaPJibRzp%y#R*rK8nacto#^W*+?LL7QD5lE?pSBG@&w!yy^8Mr zAfeOs;;~|3nG?F*f#ikeb?Fo#p~>)-9)nBDSM|l?I@Y*7y0Sn)5hP#(;Koz%Fh`La zo*~=ys_)XGGl^-2MEyD+4Jk)1jZIUMW(vG;>!IQDfDYH^V(?Nz1tx&y`f&?;we1zq zm^S3SLW4MSRtsAOpQ+RXxh6@n9+e)xR7j4cS3Ok>;&eR^2%l#v5b%N&x985$E**Of zDqWYc0r5@NfM7GW+OCA29pO@eb#OLV*I%V|%El8c>UX07u@JD5LmT9icG32M|1_4; z%ek!22PVOC4xVap=#S`uFIMZ$kZCX71v#P})4WK14Uu*YIJKE5Ms^ZzEZU_eL);(o zv8|^Z4^6sbdcAg^7=l3c7@hJYypn;%;VC@#UT=ja-U9~+ZkM2J2VwBj4y7KIf&0+i zVb^Oaf(HsS#PpTOEfkPf(P*b>UJY=rGdMk;^mxGluL1)dJ0XiE4&Bkj6y>?n#<+CQ z>X9hD9-x_OE@FNGyL5UU9CfJOrbtF#fyziNN?;9f=E~#{s<6aVE*E`0Vc9rc?)SK8 zOAyVoL5547Ivvgmm9WrsC2~hItXrg&O|ikuZLu*rkf^p4F#k;gQ)Z&Q!Q$mJpMMWG z^9^qAMO2yLxSy;a4wlt(#0fe`clyw`M*yupmhxw-)%vaB|8_ODO30KOYRmBl5KNs-2 ze8Kejw(-w8N3VOa8F*Kl*~fgMzf;V_$0D5qkhGWK!E-d5p1_M{^g4`VZ z+Ao(j79lm9E3nQba1EjW`Rc|Ti5d1^VTVk?Mj zFPVP2iqx^3N}9S^_jLr1u5*xKxT!-45FRqF;X^3rC6agDQysUoyt5!P)Pys2kJZYh z&xbC~4mp8SQm+g-)N-6~elFL0r^7&NF~q^dPK+lr?X7@(CAByYJ=k`_ae?e^A^G-l z#o)nK;YB!{v{H{WEmc%7^*LPQfMtr7PA6AVZy0g3;wcMh;li1!+6Yu~EBp9X%c&Fd z+aEdCA=xRsPr9H-;K6+Is38JFDYJ`k8s$Na`mZO#?~^Ga>?1Q)&9Qy z(I)KjoWy&_8Q$wwHxQQsS#k3R$04YD1LBuBOy`h0P^=1flQfyPjulBV7YF*XRKeJI zCv4l}uet_92a0xXW)7UinAg(vLZYgObhS&q`lWKacrbFeyZSYoLxlRsZrsTiC)PJ2 zJ52~3LQ83-my8R51T2kz$a?$j1Au?ypZ$I8|L?8vBk%23&;F5rj-e0+K?H$7+gFlA zsZW`2)EoC_@A@tX{R@nD3Rw*871e#pDScyQa3^nr`xw-xxPQav+qr4_)(v~xOC#70 z`blcnG>PBiSi8SvytCC{>R%bY>!*cVmhmgx4FM}-*R&n05G%pES(xgB6L zGHm#GWQL+qb&&UKSCQ}~O@NbsJL}#oYBx;sCtYFGEsApC62~j$<@F0n8o|6AOn1Fz z*D^fEx)8^XmcU6jU3HZJL;}QzcpM(&!nZR#%BFK1uWeM_uYSwO=*?_S1Ik%wsZ4IW zn$RORSV9K_MFIWG1qNPAaq(5T1htrWHGC-m#i5}LZ;}|<3uEr{OzatVI;tN%Y(F1}& zoQpVjejqNeDsVD;hykjUiJdR#{L0~O*u|>Cso?db!elMXv-G^czC48eY+s`XPS;1| z1SJKM0#RD^!ELb$oe`=Yjj_~uNy#iZkX1e(GSQUrgy?V{obL@1!Q)Z11j%0Ss}ZHe zh3WuY?8A%Z-Fi?ZZgX|G&V{wWDi6`_GLdG5U2a8w$PauwKBU2bZHro{2l${K=a#3G z0+<7lu(o}x1VzmPUr}hPM@O+@S=NL20FjSOU5*KYSc%Sg8y@k=2X#pu$gS@!*FSRL z#SUt)ljt06;y0!y#)f6e#Ed_%c2g& zccqT*M!w|&+s@;@;*}}3&1OUV@n?8<+Rp>NoLDXVTj_US-LY9`mqw03?Iol7i;pzs z+nlUrI6IvGeKEkd7+bCQQM2M%F+QeEv9Da@`8(|YCOH38P`I%GYjDadxwOy~EMNZs z?|;C3;NQjjKW}Nj<9(TxGlWa4TNyBcDIPKA`pozVSsr?LY)P(I6h*4;FdsgnwGII1 zQOx|R~`&gu-VbST%Q$)bMd_Mcu^b2h&}TeG+Ui&^#_cww#tR zHLDEHJbCTFk*kyDoEPmuq%MveCQ3VZaM3#gq`Zztf~%26<+E#Uw*jrXFCc`qoGJx@ z<*G9!F$Y6p!VAT8#26tm_|u2CA)Tv}BZ>#MC+p zc~MiWUz2@p!nYHV&e=snJtESQ(C*qMC)RCE?523H$H=333QQzx)tnKbYl_?!Y%-?f z9kjDzQ?u8B$nl~7bl6$v&S%(fqh``CmsMGmCvt5)9vM|6zY1nSOnEr z9fA2kO+5rI&mf+`w3%M)w!sP4-L|7#=T)OUGJhZLKYruFBw2rUR!ToH7<|0X+({ds zY9aiGOMOcK{^l~@rvjhK?rcaJ3BUT#Z*V`w-?mH1UQkD(ea>V9^~l>EnA)dJKF9rU zd%rN+hf3ftGoj?(IoR;_&K5!cg~RX4`MUaKk(nP& z0ugQ3^4b0ezPSYY+K-jAw@D!VWlYd8WPVPV-RUTTu|hMong3d01NgbMw@crmieCBN zQfua87C)Q?7eR_ZbBF5K7ufzyBx2clk8id$y=V^;CiAcN;ZqN(!1|*Rp!Rk42KZa^ zrYg1gdAS_w3Z#}v5lr@|X4^DWzEq&R>RR8!i&fMX7I@}8P znNg@Z6Mi7j*Aw2KABKZznUr`LI5dhSBs zJIfa0&=O7XNa0~T>1C@@T;z?!C6Slcz!fZfWo#Q7r8izUNo;!y|-1!U)8# z|Jao2s_Lw+?wL7p;zU$rWhyaSCii;QW7ayWb*tZVMx(n(&_kb%j#AZX4+E1B`{G;d zKBh#yV%(~Q@V&bj3h5!d@oZQE5%A)Szjgbt!{{oNJvL~n^K#U)3S)NTQO_}!qO$cV z^gg~9j|a#&@-J5>h(5~?E?r4?^x+A;kL0PRim;j>4S8OlQ^pN;(BDi=lnDHRkLdk! zs^861g~(BpUiCuI<%0bkmEkVGt{=6(fOWqg>t;#Wv~^otf2Jn%-@EKL3dDcylD~x0 zlm?BEEC!_EfcVgsH={WqiLm}lA|Ml&rC_i$Um@#b&7l?8uw*kNOt!((7-Zv!Pf|k^ zfLS~RXqRs~59{4h5@^n$`3ku|YqH#AhLac|YQBl$0X+x|RP?#cgzWe+ zh~lLwxa)eeG~0Z6*-gd)+Y0RjKwY3Bu{kp4)Gy(b0C3s|zl783zXhk7%U56FRFN(8 z0+>wT_u)?P!oX_d`(}pr2+!tMb3l;1`I79>{ol_4e)S(&^8ICag?_}>-{F=0OYjQ) zh_8QuSI3*w=?lEhKzSJytLk`f7yjO_plDCMfOE?Fe12Cu0>aAtmvEx~?xY{#7Wx(5 z{t9lPPk2iVlYL~l7Ge2Legzb#;vq(nPo3a#IoPkXXBcw*=z8PTI}&YhkBPR8kds+J zjd9Y_MSb`$oMO}^RbP)cu}jMuX7HeO`?$PQS7%8|`Q@j_p*ypI_BaX7)eC*jC^1Mm zga{=&ql1)wQYX88UYrxZ>6B}sq$^ZA2GtKo=hh#sn?>B6=`iol4N}IwWnP|$1u4@| zjmtBIk(uJPvP@0(UfhI=Wwdux-mH7ld17-mEo3yVi5#vAK+cSnhptFInAC#Oy3Nv> zM5n_w@E>=*M+D?y;v6BWbFL{zQf5!^etbIqa=M4^sU58;zBw?I?XW>-z6|3@ejqmT-f+0x~OD+v0lLCUhrYee;JVhTrj)KLvSP zyOZ^*wHtFU;a%xAURng+d6e24j$O}ovupLrgL=gyS@-m8GAF;bm%Eo;dNjEV@xv>e zhbl0}RS$`NChy5uX`ZNEDY5a|nJZ{aG)4jXX~!Hn&fd zeNwQernUGpAqR(apjvN|srEJtVj&#!0%9A)dlnsHmngx6ZXL=uM^zFMT~zp>%2?eT z=}3j=H%sPow$P2j9P>_@g*U!NJ%|oH48*P{Uw<9ii_Yuz%RiAjN1jnm=9Kgn^m<($ zQ(otH20IfkV;7v{-7@e+o^rWpV9?!sT&f0rG7lk4aF?>0Q>H}<78c%^FE{_`bd0Bt zhcal;e*yHusArh}ByHZIu2ZR`?9;IM>HA6S2oXx<8jzGx_C^N7d<7B~L1kkX}e}cpm4X(8Y z1ZxBkZ6mlW19)ph0-gUAk5>%lP!J*{Irti5!2JhISfJo$7y$x{6^U^U0DiKWgU|8FAkVd1GSNW8LXgU3i^;lyt#*Yup(hTeh=)+ewsADH z{rxfK8C0H1E#HTSc6kiX_&i!WnilN?X>y!GGjdls=kU(b0_ypD^AS!ZNAAR1EtYZE zC(Lkz=({X*X5;x5tQc%^?XR)fV6_)%2>ZIWuUYnz)DsGs^me{`H}c8*L5lsNY-lT{5o`-K!h2n`S-#IQ3GIFt6#lnR_ zFhZ^%k|c^&NQ&FIyzY+2mCK3?tfKwoq{_STUr3p~t+N2VGTMn34P_tuox$KcyLk?J zmlU~&vsvvqQ+a;A^7L6dRG(_dQ8C>2Z11Zw72d}uwm{Emj8l6aPH}dq^*2x+EKrs8 zPZLwo>M^Yl;$_=1vFx(PrS%rJN>qkWj_DLC1Xsd5%o9um z`ha6a$f()dXdbv;zW8=%L=V0Dgc7O8MR4k!1@+FA{_AQKIq2s2WJ&wEVS5EI(CqR1 zFMbrB_-m(p)tLD3@b6siXp|)=ieng#CNZEN@nIi0`$;o50<9X^Chx~a0NJ8V#*f;> zYFYAg3rGBMANYF6%4OqCB%P!HWO50hnppybZGo^L`mZzrE!%Vk@D&*C;G6h6^Rqs1 z;!8vMCS#ak~(h*}E17*1?3grG1s!0@&%wc|^Mvcu6PB&>?QO(;a;frn?+^Mh>8!*@9(G52v{_}aqp6`8*H8A+ zL2-o2?6LEAEF4j}U_aEJIniDf5Dyv_O=LX4VGWzblwR6v0(&r1%S>kR@~n92kzZfL zOzpJ$Gj`={>~=gn-h5if58NHU`CWq@)csMi&KFvk49!9a9jgV)J;cuF}<<~>NM>g}Fu;gEqD#yw;1UoQ%+vQgVT zJIJ5RtIlIudWH$zdSEY-sR*8;%s^!;Er;`Mn( z_u3h4+MIeZhM8&Bis6_S@nVk+;w!{3bV4qYd(GEC>-rj?kaZ4k@9;kFd;eiRITP-O!&Hc8Z~M6Q4=ig4d|3_>#^ZVi7K@3MR1dFpcgM%@3hM_*x zC<3+~6v&CLkg#sr+$JSNZiPBF`4@?8B7EsK&Ak%2{NsUi4(#jrmdXUy;Tv@VgGv-2 zX+Yi%2R5hamUUf;)u$RH@bLH&u z>upw$19D0fV2bO4<1JB&ZeHeS24<1gQ*w0k{fPfI#N-ky9ZrjPchHZWKmOYg^VNMj z3aI9f5L3KAxqf^LG23JReTeyfC4UEE2GupqIT<7B)JM4Nw1=@;h`Z+=0W{W8-TQbnCfB-qI+u)1tHYb?mH&~vL$EUb9p(nXPzi|1u_vYNL& z#g*O$`X52eSIu=^tzTo@bc}Cqet-s19X;8L zERVu%LMj-_BHYrSj5Zgi6E+a$h-sX?1`M*}Ee{E8j_NG*a_B#+9 zR${hHW4J?xVq?8C{Ka^^=;&E-xA#1;4=U?P)qz(Yi`z>LbNQ@feh3*wi^NuS;xbPg z_VY@`x z@D1*U4C7?H)K)3ert=R=+0JmmvcI6=-lb4j;xDEk`NrnQsyOkxx z7#K5MNe@i`xe?}*1}hD44Bu$ZdLR5}jdCJfo7TY z9vBI9?^e_UW+BvKqBZ(e?^w~GI^(N zf8UMdkH}&IWU<}9jV!<0XNZFJ2V}96yFWx{fA|Bcxcu^oxY)m=%BRP^t^)e&sPgeD zpwFoC`zlm*_fteEHbmKNCLV>v&w`OdPalEplt{S{)=4DlNp~ji-Ev_Sj&4QsNvLQM z(Bu%qnTxyO6y2+1Rqw0P9~wdDZAja5sjeDAjpY|-cXNkv58pf@FYVdgYi*|K+Oa}* z*V29&+^$B@=jp;+L+c$q+l=Z$2(GH^Bqu(VU(L5wt7L%&+Kgsz^&o3;Mn7v`Sa|d5 zyzx`DLfSRr?lasVI(%b0t8<{9J(iL7)?lUO{eeOK(C=a9aU%lVASSRU4%cNDMR#U= zURui>_>eZu;_-sfy&Gl}q?q=sbAJAkO-H8Qq5rP$DK3?!os61yPxnV-WZ%PF83BE; zQ!Pc7m+{bT;erkZkung29uR9qN&HwZkN5IM<$Tm7@_r^^JK}Gz@mM9ocpL8(b$W2p zb>^SVK`Q$mX^=b`_mB@CXsq?glzE8stwgxt3adDpy*LSvu#X zplr`ssskG;tiTTRRKk5DY4!1GXOo?X!R<1PTD}Zi@b(?$H4d}MYdIrpUSl#yYoqBN zEv}(_=b3xMI1n|WBt1@oQq8J=yRC1)MDQA|ioLLq0e7d*nqrEiP1(Kp4j(&yzsR*h zm9yIAIjKg_4r`>q)rg*%i^#uFNNn%3_Y#C+9KO72C5y&o9_rk~Fiwidi^?)q^5UjO#{wi=CC-`R_)4!1k! z1>Iu}Jft-WIz@B!SG3`w-vxBP&p3+wS5wW!M^XE7BWX%so}=)7nb)J*qjltkGY;u0 zMm_6vFLP(idqu?QP^c$^y_A+}6eb}{FO>IfzbsKD85}1&n(pO&9H!>Vk#%dX{A-|C z5x==t-N&p)p+5RJ?@Xo&tcW-cG|j?2YFpQ9k^AKFjrfmz3ESb62|Ri3a!P>ML-0;s z52>iE9lgUY92S|E3a0IDmx%HV8+Y%1maUcZYh?ahVKA+aj@T}iAxE;bSc#j90I~vAo-QAz`lp)V0SU>p@3+?p?d&)Fg;ByywqT6uG zJmGaWX7aGh-T7Gy_^x?yS(%l781C+_q!9sss%&q{$LIi^hJ7kqog%}wT(^s)8D6~1 zw$k53vZW}Y>?R4_kHLHQsu%K@3F$t+kcG1L?Q~$lgaJ2ylS)OAP9xprhz# zoxWf)4+HJM`R3iZ(rsYOmV=hzmABKIfN{F%&8@6_UH=+#F&q%T&)H3KE(5e0C>%#1 zxlC=kB`gcVr!|PeiC+ap0s?}fOYnO}S4-+^pCDOnPrKrxf}m)r&~^Vbr<41AQ55=R zDDu17{2Gd+-vvY<5`n&iBC6zz_Oi{>&8EoDW_6n_Fz!*Ez&sra0wpj{_vJBD^0pEs z^nH!e{xo=R+q%dP-{0-C9RFv}^Rpdz)ZC)*`E6>}ODU-1rq9TOqGG)aHebhAiU3$q97)!GY6Ja50|M;x1esbuS z?VaK4VITD`<5t}}p%gQHu`Tw%L4A+*)Gfd6$FLejbTo)ca=8~O(x=vy{dYupsaux2 z`dpdT@;;G|q1NB`3g|HZU`^sg-MgkILBcF2Jej;GMlXuTA|^PB{PEiXCBfxIfMdXz z68h1ZQmA-cD2mU|eZ{%SYIsq&@fCmG|3sJ|eFHpxRXTN*sOE$FMb!KdX z#=v{y^NHWvGk$Hs_)*B{|JYr=N*(>|4&QEsIKwgIhttjLPM2+MnIsDGbQt@&CzGTB zy<<7xxVY{(Xbz^4nU8%vR;IS{z?I{zU-3=td_8q#a~KDNix7=7x= zr2obJtSuAhZ?a$w?5Bzv1!x|*ZE6g;^^xMBS2NxcmKX}CEZ7q_J1sH-yCh41+oYR< zCom{sK%?f$e%GhTX1`1|j-VOjdHAyTiGt+vA5JwZKj>-Hf(e<9I;mef`fESF*K~M3 zy;h!CU+{8_@%a^QUhaRGb~B`z5+TsHkOt^S{*mAIFw84OE50;??7gkm1ME_t`P|;W zsS;JEO8QFfJ@D@METmbi8>#vRJ&x955}yr0wjt#&k3m5tz&{Kn+pZ{G%^m+`dN1?? z>XF@jG=Be~U8R6ND|a;J?z1@Hy#959r=x%^{kyi5M~st&efH4^XaSy26nOn0^-KHZ zT#H{`k54=DsSdwMfC8hGj}oBJ&rBytWZ+str>B>w$!d;8lYAfpiWiv2pkWxoVg1l! zodS72+&x77ez|0LT)=y@;#cBXog+Uh_hOw!_Y*Z2a@dK}>{KO-7OvyGt5%g+MxYH7 za?i(@rK#hL#eVS2f@|I_PrUL}G7L4A)imba$Biy3qVOi*-IY#_GF80rC<$Rw2J$_QN`4LsVlLEKZv?mM!VQ*Z2 zwwQRdUk6>X&=BK3CqSW(GN2zOK=r8Y9OJ;d_`OBAD=J;nD@MJcUMVG#o04v7I2Env zm(xk3?@7aHS5;1)?MSUc4@@SCDP{ZpweNP3?Z5BILG(~1Hz1V*P&fw$EI&k>2%jBW z7QPq?&!9ypk3jVfCc7hccQCnByV@?AbIPkPj%+UX?9M_OcT%djwNB+sEVFY{jQh<@ zoJ3b_(K@or-id13#?WD*&vO&E8WmOHK$P7}69V>mf&A85l7q9~59(~k?dx?#-Jl6y z?pPiQn?!=iytaZ4hjnps`d*w3`>9{?K!$nBH)a(=iA&S06i;}@8Y4E&lNIc;P4=(cs7Jqq(Uz#KX^$ivjuGaWF=Rmhayjdcz^k796ECa0)V4!c4_F%XV zk#PkgARoej2FaAzg8l?#HE|lm^D8v12)2G*Bl!s3`Zu@@E{T7U?9WY-(`{8527nLS z%7IY^`W%7uM+~C>m9$Va=#{6%u0FLE5aV$ys`)_hbx7~Z;p|K8beh`fEFGAw%wFBI{Dxa9`#%|F!y?LN|`U|lnnyg%NXw@Sp@vz&ishQ*U~wo z)>%Em@*1&cvb1jMI;xoFY?q-@y5=?QR6U-MTJwctd5Pc`RgBU;$zG)-mqlRDa%1O8 zVfU(#46vd=I&n5~4IYPdpQ=k*J-B(-UU5ed275Y>;IQ> z+2KW=ouN}ch5piaF?>=ut(K9Jm|-oet^!IZ^7}|Cm-=3dWGlPKNfU6DQ{Quc=!6bo zVFp>C?u@oM^2Up^gp8U!i_d+YEKy$a+JRCry*|8=vG0Vm?xAxQ z+YDzt!w2c>s!!9Z%69_Y?1DP52dni?SJ>B{$VuAMPD~c#y-t{}B$kBg6&e?zx-2=d z^Sr~wo%O?QXeo+On#Vh64@(vxui?1ZyQhC~(Kv^3j0$pHQfqw_*@el)R|7@;L%Adt z4O@rx!vmA5>Xue*2Qw;W2lBBH7P8-YOU_swg2~pdO`7+mM6bp2KF|3rgf1&(3LWE& zF3X;}&~J~OwWXUTr0EYPB{EE^dbbm+bbmQ{b@(4g+8xYKeCjvny^^YX|J&~H&;QSG z#f_OcSu$=I1iA>v<_oX@tl9DSw@CJ1xYpM(fImI(mo5KvvZaJlkbhc1VWm_n8H;g1 z(oz~A2q>-Lpl>5xdDh1oR@CM(#U=m)SC9d$i`bG*EJ!pZTk|5eO_C?;U|9|SqUB#me*g#F6Qvq5cjgx=lz6Bwy66{zViz7!1O7Fv3{Q05 zWbeu+=|?sMdAJXx6}N8mO~ml*kKcg9hAJy*`(|#=dv69q8Yr?Q+bCzPT=WfrM4T#H6yQ|x%Gzv{9ajeGoxZa_?p>v}Y9KiU$k}JDTWlq@ z74(I@Z4LJT0IR>@Xl(I5bnx}r>kjnn-*>Z&IbHP-!;4_dh#tJG9eS2O^6-uGb?gAS$o{?9*lV7#vuUnjy$M>l`-S*jzi7%&) zE^}YMMM@(N!2xQkCa;ZhQr-n}MP~kdKZr-weC{80w{TP#RWCN43?;2L zi&f_=d$<{NsTz^Xtzr8!(!TFYZ#X#nwh%>O`FA74GPg$8!R;w<6!W z@Zko(X1L79#bYW#(0pt>--x`2h4XS%d}jY(-e(stXfC^ryW0Wpur#^cOBNasyt=kd z(d~6upYDov6rOxM#=3u5qXwQ>-d4|g^mAxVd+Gi@F_r5x+Ve!A4tx{kH-ve&9ak7N zCm>yJ-2*>r5Jv5&yO$%D-|n7;Yh3G5Nu2xX6**{D;N1P?pVf(1)Kh{$PSuzH3q9FB36o_YeM4?WD+>#DE_JW$+W&SOl*0&)#%YS8u=OiWvN%d^gz^tK4hSR#gj>LrTM9<^R%W{LNh}8=@yRxp zuyVSL*t~*1=A`)6QA2D(Fw`an3FIxeVL65YU8ZOZt^u;AG`QYM96@g<{;%w3oRr;M zp_v?1y6CO^MQl^>I0>47GJI=VO+njemIIW}u?@sCAVIm3UK$4tMC(1WPfnQ}SQb#l z*_x0z?w9R5{t7#S__ckKAJ9qzmIcswo)Fq@!{YO@=nG9x+gX zJcF@Cc?{3yEH2>1{FHbWZoas(V);vzZrbSe%D315C-bxFC2(Nb9;-aca_eX_oB1ZH zf<8MnF{b!c9`0?g&o#bVkBjsB-Pi9wuo7hpNS7#J%y}~0Pnw(7av2=wHtQmP{~E_& z;Aw?*1ZD&k{~GV>Y7No03qn6!akgB3`EsHmhjobin7XOK3Cr(ZgCJZ37qv$yzWb;_ zgmrS4foN&JeikZyy~q!5q5kQekumUrIt3KEMpb31m<9CF`wt|s)4kjSdz)mDjsSK) zD`D?Xo;lc_C4NbNL%(VO1{AY@8;T3-XZsPTC(`1%5`RRPn1p~=*||- zJLO{D_-7n=;pujjPx;Qq=le-(EkPuynD&kA`KSi+AvI}T-7cp)MDB{?cr&WFWe9nf zxlu-+#HW>uozjI*?d{Gh!@K+RaTtyQ;;d9tj1D(FoEZ)2=V+zXW=>f~;FW0*o}Yr+ zDoi8e0ogVIsl1N0-QX`KKj_Z>loqAq;_C+nVJtg&X*kzeDP-3Ig=#h&O%wkb%1*qI zPex>%Mb)qS{rV9jvg}@?k;GLZz7T3nbYpVB8>(62Bw+`r-Wz$G#@N9ik;lc;_wlvG z`5LnuQKCo05c>jM7k0h#Z&IQh+<}(~)x<{o?4<;?q*AS)@8U~FK(g(?6dXai`_*~< za9vR0`@hy73b4?(71$5LvF|#ITk~L?^p<#d0aBAfgyu2{wU5{1d_kvt`mA)Q6jNFW zs8IC4^-|(smf0;`R^%#acSuKG(CxC{_yVqDjcAcYHkCsc*g# zy4Kzrj^D`FI45EqE1|E{o_bYZsNw4iQN!^wGrFVBDF+AQixGDBai<<>>dgdU4oA3z ztdTQHgiLMih3d6;pST;eG92$7MpXE6byUlTxVKAuuAxT5>x<^mUV~t0)T{C9I0ndF zJ)UWDrEMZ5see7SuVi(dHP_@feq|Whef=hC(%(*5pG93#{-!ql8WfEnE75;WOZH^7_ix_+m+2XX*v4=zbqtF_oWf;iW#2iS{tU(+~fkoiVCUdyy9Y!1|zf&BD z2T5}4R*HZ+6NCLKtdmTjjWpl?Bt7#fgsXqZd7LnHhEAfe`x3$((6WyAa}9D9sisY9F zgmCtLAMZihYJHv7h$Yp%OA|~@rn-cUA!2f2gAGR=}U|?UQT5#m&aLJ6vnYiVKCi7pb41q?hkZP29^JdDNghTSEjGjWP;7 z!|@?K$o%n9Kd9Sf_p)gEjxGu_I2WyP=ZL`+S?A#3ob_*|Frq|idMGXy^hFfCXQ)ywqRmwgS(?cF)@ie<;D;x--|LrNz7cuMjO<%D+4WO|80tVrr}KPy;Q8IX z@7g#;jrQfu_P`j3sP2ZA%j{=#o8PsrXv@tzL=R4014xH@o}D8kOQJ$pbZ-Zzeh}_4 zf42s0?;KBtTGKt1rust;p*;$@~6cPzW*GVd>oZL9`X)3S*3G5WINq{ zKvY_|!tOZQjyIh?MJ1WAo_c)ptjPyE{!KMW#mhxut^~uIg!L0+-2GeX^82Cy!8M^Z z>w&`81MM#dO1~dy+vBI>{@ADkeO6=28KPeQ#)k38=w?}^JLg6w)=XPr*WQYxK1u~! zPW<6qUj5;mnpZt4`?kQr;264JKi2fjF5kn)9DcoB@bT!Tf>4DA zb*KWVecU^a%EK#N7A)jG1-FS+x;cz>qe;PV!*?V<$&Oz4T(XdF3e$!ozkB4^#KX9* zM!_hNp*Ahn@@f+XO4a^+azayn>_z0Ba*KymA=0gMOAj(Wvicw&stSf1l-+T$sTqi6 zmK^(hQ$EWl?;f(6C(TACNY}O3lmNGu|#eF%z z`RC)G{67(tASjl?QI2MQ>=^!!uJpB!_)o9$Eq2p5gRvyZFgS^?Ur`EWKPFhkfp^QqtiL5UTR_lZ z7lXP;!fZCtD>DDgFodGO&@PRFs{j`gdP@Oq*bOu$zRVi07e!;>K1grB&110acvGN= zqODya2hVQ38mRu{KyDZaF#WRFB5y5q^w-7#)t}l^jT#ckek>3XEkDdyIleuM6>oml zQ!)h)dw`UH>6nxH*|I_u9>RqHsREE&F~?*_3C5M3AagOXgXpawd&8~e_eu;uP1%ZE zAgl9OL20YV1Fx$e3o+1E-~WQn;_Yn$N#1G&b)6Eo^HJ$&mHq!-D%UUAa}i*v_gs8;y@Wa9wAOxt4voBbI|On zi)4jG$2h$0ZVx`dd{&Ls<_wY1n^jGHCROWny#q1bFpA#@e^Tg59G%nRS0izJDay@P z2q&X<{62qNrIhoe!9W)d(siP^KGEwShjrD4UPW1=o|4q5xmM=xKrgw#Nm$OGQ(cVE z(wy}%FXTsj=m_ocRuQP!B}*{T#I=}HVM)|CzBt(}xt_$cyqMEi4d|1JQ!Xs9{NhVj z|MaR(G1Sej8qkV)J-ya{*e}tuexI4K-{awV;?NTk$89GNC$$T3edB;Zs3?kEaiQFm>+!-X8<3LBE#0DswM=U-puX%T?^uhA8jMrCFeCDW}@J?f5FT ze>T;nOrIS$gkq9g-t&g5dg!ltwvPwsnp@04*?DhU-B|uNp@n$^-82z;D9PGMg7q~PZfSvBBRvRUPJ|;o7Z)gKlQOvo z)*I%@`vNoY$WLwp?@`>d_owPqPx`DA+Ah-H#ml22yu2b2brsMf9=&SPha3|<$#KK$ z{u`y$ia1u$IN%1S+>I--FL}o@2blyXyXi-na^SO!aPea#>z) zc7y%Gx{GLKcXZBOK*gvo4*kHAI6}jR88DEgmGkYFuhzk;rfgL}0ckQW@hQXX5ojh|7yi&(P>iS?t zmAG8$EFT9psaakyc|(JTVl31S&hbn2Zg&u(-_~lHB^mo=0L{v z;ibSg+u7UpIlCX$P_r2iIl2#DLiT>94UI%|RM5;>K{U;SjCX(1-X4)j^C{}YWs%EN zKFUu=I3rV$;r#_YR`qP3I+J@%`-{tHp)Vz{rL6bzBNsB7<1@UL0%0(FU6kY z=iYu0#h6imJ;3qTC`t)r3hkHjnfuLh_n!Q_+9xxQYv2*>cA7YpFn2S4qUCzA04W z1WX6#_zvl^S927LM|4H%n?3jlJih|V8{R2phRyycT8V@g`CTci3VJ!W-SgNcq(4#x zT?&pdMahL|E~7W}<15ciBz|I@ZsxM7zD!v{vK@T3DA8cf&b;stdh*yCD&Np7g4H>> z@@kza_*i#)x^c*5XbI!q;g)5PXGa!;$hgraUFnyV4wpB(7NA4tmLy`(ta;Pho02{= zQ=G}dKg^4_f4JucKZVjA{Spee>l(h3Sb@ILSjo4fg=0$K{VxQEh8wBQF2mV&ys|8Y znP#+`*!E?({GQ-|K!#&{J!b8EH+)p8)yu_5vhf}Aw4nyc&qov#>VhCB2Cd;>vX|hj z-;He5P9E}p7x*oWCm0rth?VK)qy~ryyG5?VNwC~l_G<{(n_DDOXV-Ag)F8QUt3iNr|?GxRWEGW!|^+Ro)>uyk&i}cqE z8N&E}M1B9;t_EN6Z_)){e#1Ne;8+5q2?GBysN!R=)1(D?_KaO}8rs9hf8uzQI2(4Uil_2WHcJPPcJ{^+%G~5)v%XgItj**<@E% zj7w;MSQri_SyY`S%hha+6)&=Jt{l*pq^41PksL(_o|z zw4EjZ^uWx)){(km5}JW=Xl#3eB>T%`LIAc|bpLy4p!%?L^Y8=e9Na}p*L}SI(%0|V zjZYaryYmw6rY!emC1Uhl5+J*mhaWMJ2%GH1y5r^e#Qu z(*^i{N>;!9FRI_e(eH}8$|3QK7;$iS5_c`(#OHdMW|n!$`bd~lm>+$} zAP;yx9vd#CyUVe0*${V9wYw==)CZ*a7;<|qY3qcTDclC|!6S07W@X=`RCvGRFbLD} zy_1Z7huQnsD)thI#Rx3j_kP1`##2bnD{9I@t7)fvG|Ut0)WRjQg!kLTu|!z|f||G8 z20_cmu`jK|;U$g8nU@d3LL{>K^mb48nIOI4WrZuu6)nD`4)tw6cbAf5>=3f=>Gj;? zMO&ZyVW=N6=g}SN4o)9rl+rf&!N)MVGqfzvqp6EU6nEX{wOG#m$ksOjin_!a*AH3V z_T+x4?z=h*j~Q9g`VkX_IK9FXT0N$x!t=gNVr{``Q!^Lpa*|stsXNH)3F*`#$&eo} zK4E5bXj6iLxI|TDgM93x)BBqD&XE#^smt{%oWBV9e!52?r+JZah2&G&2)74<1#ira z&4t`6-8p6+cbh}7}YR79bwHCxVK>Ful(TyrP=}S4! z*!9BZ91$wL2{Tw6pGI?EWpC?p?-f7G7+X=bYnfI$=?3!=`hH~NCsh91T!4A!Q&_m( zS_3;hmIWGLsX1{p*{*!yCp{N`++4PtnZ$b-TS8p?oDQ{08Ja%Dyr?lOSuj)lt{=?f zp`4JcT=5kNaCr9OBR$?HMN1_^o|$ewk~H2!JdTcuL%-(3VQ3lDl%fnp(C0gw*NBBq z&vtC^-OKKSG*l$DT2xpWOaA69aUp$Emg`i9{u}?Ui0hW6ovb;KcFXj_vO6 z&Sz4B5)_OUXC^WaVKg17NU#I0Sm}8S!Fhj8(wgfRZ2w{$siXKrBv~hVA}^+-=&sQ8 zYngQEi|&2(b~7Xv89Kdj+jn~la|Y6rkU8&g>WxSEK$o#p@8!X+;Y(9a$g_T4j7usu zHxo&^r=|+;iAoT*$vXS3>N7mzkf=I4Llrvv(yG&8tRoH%rGC^gpI%>5rO=83cg!<= z5F`wF2cnT{^o#4b>P6RY)axOIbySb02ywVaX&G3>1DcwXK2v;+t~@XgutQC7TlZ~Q+JEWQ6ESgH!_Apa07 zeR}Nwc(7#to57NPj&=_(@D2x`t?4waq`lcZWA-HABfpCVU&R;ar1TnlfkNXQaj(wL z(yM*BO;>{>$zvK9&%-S-tbvrW`yrAgKk4(uB=cJ>3X6% z#P?pm(R0wSG@@9@%H2mD zmm5U5&Ppb~r>|00w7Pfi`jE=)bF$|7+<0f?s$K9G^U?)kc$N6^456a-#A>V;kNYLA znrpO3QS-)k zap8Jiv3Cs@-y;gc5-_(@qOfC_TQR>fuGKRiiSql^aWBxKPH22kD}%c^`|FB85MKR?!;oONFl zF?ZMHLFJ64EemnIhHzm@qdbOhPgCy4JQyFRpg2N0C(d}etovl8JApR5Eup#$SRrE9 zXGQN>A@c8S&&Fw|OQ9i~2jAdLqnj$J-}OdB{QY1_%E%>0>KJCoew<#ATQHOs?+(ZP zOZ>aR62Ids$aX#HW@`N9F22ahH?alo$;z=uU4EsnHjtku)p{?Fn`yj{$3kzot3bs= zj9pjA2=m%xT8R9W%1kr7ftN|NoQs zUQ3U1+p^$2PqFS5XA5suL|@>I0O4Kq4ITtS2qO?r-=H$9s&@UZ&*>8#-BIR~5N1jr znwewFkvUG!no2LdW(77Ni^F(kW#*!t#95~EXS!Iuv%Q5um%3uJOIG6F6eFd)SiK)w z#Iox|wh+?E50|G*7?2co!ORdrF3G)7_R&M@AcC=If=XeOyyQYw76k}Wch~CPTCwzQ zIe{(M$~-}}G{(Rcvk}Q>yD8ebi{A!*KRbD&E#hJX;aJiAb0DLub%8L!q2scwMLZ2a zdnZ>cqhHq-03t|i3+G`{SW=Cfl*N}6ij{{f(>(NguebM!uy4F>Kf)A0$?(NaAb7g* zWam{Ig3my9*Dra)v<+II(u38i*%zS)c|8l-7+y<1w4Sxm=)~r9K)q+4_1;%BVvGl>TWDR1gi zi9!H!<+UK0OE+@VqDltdKHZuokR3^iUfMl!+e}m;&UiUqPjR5Pm2s=mr&s1f3fwPfq|n zm&8o1Is`j!HzDrN=M>|PG&94xy;i+u`?EAh=|6D4_#aN*=60U`OKcxW+J_~=~v5cYPWlTG0chSEl7Up?_gP5AlX?~O~2(vc{T ze^3l-nk1N$CwgP#>FrU|DkUOShyMDF%zdL#KbT7$^_=wk>bUS1yAAEDbKgxv)d`GUzm`kAdNdWu%ZbLWSL7XV%NelL zw`2I?;EbUDdeNlYf$H;X(X?V}t+uNlAPT*}6sGb2_ zzefyyYMZBbcv=mJT)Anj2txrU?E*jPk##l%jfC0&qXO|IX+5pt(r=0|V?dPCqo-9R z2#0}jk~ELgx5kw5zN3ijcCRHYhOZYKdMi38ML0HHy|S|@AI!NSXeSNeJ6cP4vwW^n zNHHA@_N%R*3Va&n^$HHIpxmc*9iYHF;|x)eoOSlg72m$`7vRqb%x`Nke)8wAA%H$- z@D&!>xVk(=!5HYb=)TUx_5DW#X6HBF4SDUcKLvN!H{h%I++5&L!HN@|h>KgYsFRzC z9GFQla&vHRo=QxmP=&-`*C`~H_NW|7NNGjfS%?5gv;`ZxzZBEV-)`Ku6wZ#-v~<`8 z4+y^^!6@|h=FDj?QRDEY=6ssn^88|AWbqLYz{~rKFs=}`_<3L97Z;NJ29>l-G2l6S z-WAgWbFV*{9M0PB(9%SrGC)bP78-(zzyT=8JeAH)CH!YRo=DTklOdrbS#An-(?~{( z)JVK)^{Z@h@rK3YYz>@X;f1STXZhX&IhEH&6pNc7-*pyxHa#4R6TP4vf=edn+jY*MJ>c{P*9)fW{}Xpvp8v(v=|HX_|FQ7XKEUbNV;b`v zrSA3E zj-klM#Fab*7esa#W1t^2+98cZ4{65^LV0r3aPB+czX#NmI^a0@)HdwkN`l8Jk2N6V zFsdbpW336sj?=^+b6O%f06N_f@Q;!k$j4VUiI0UI6h0QDNbIPP*e`G_I3Y(x1NFrR zk~&s`(vPdwP6!TjN9?FnfIa|BVaH|m^XwGisEkOC2gF~NmGblfsPlI~H9eWb9+EK` z3!}XsU5Fym-M;;{C;|GlC_%8CA1n^bB{Dtj(^>MP$PBD4^1b&_oRGp(yZ?iLbmJcy z8-A{Tq~g?@l0K++uhm#N!byhfEXDDZX{iP2Y|GF1-`-+cr5JYNOyvun}8LOhpDpV)S61GeDcJWL+uFUArr%mCl@_J9b6+oGmO>5tik8 zhUbdpZ>Juqxqv^P`s*W{bOY8BOVfD(Vm3f##>>Nn%;KjtL&Wkq(-w zdOJ$7pne0*2f2~yEt>TZ<32R^iCvyrEB8j{1n2B|$k;J)pZ`JH;wTS9Wm25H}{v|AHgBQV9ROz2Ce zEeHZ81RitxW#F;_8?-I0Z^{VeB~{8kP}8A0JtI|SZ!U6!)xk*x7jaI>_$JLYTZ308 zY|OI{a{|fAZA)L)dq}A_eG4UvJih?ZW0g?bdPQ-KWgIi|PQi^;JGem~j}4eQ z;?UyLMH?#)FXICI1Dr)am>r`Z-DP?-P20m}9R3t@d|Z$*^kapEeKZ~Tu~3ntM@w%i zKMu(cOUc8~BmOKs9Cpngh3U}%6#94iH^i6+&aU5amSaO>`(1sr#)H3LkRqJ5Kw}D^lv+wf0qC0~aQ?C=e zFpuYz=6GwrRb9F+9Jhb8oWHr0=!SS&de3w22DkBYLpGbQOrsnMtMyd{MmU}a^~O^; zST4%IMPXpFrAx52G$T-Zfbzbr_1v2b5$O-dw~ebU-7HaN9i|t=t6dE*m!tZ?YR^_` zNOVY9z}q$+=@SQELZ}q0s!FQ(xC;CZ#58WQ5QQd)%?ahLEEFK|StWMzkbYM(vb6O$XoY`7i@;yzyA34X zIa8tOX!Wu%_FBA$@U1JTA@YCVh|eD{{lnMl2J8*9|y%iZ?X3W0NO&~XRao~OHtBQIZWGWV^0%|RU7wD-<-_6^MENqy*n zKmjc)#J%%Yzx6gM0BDY{aaj+@H=euBI zxAgwsB3cUZ!8P4yNn?`j}U zi!Ig1QV0{1E7;RO3s9wDrw)YA6HF7GVO*qK$z#2~by3lpB4_KhbOKcy6{sEr9?026 z2sWgj>nn!GQL(M}!w+V~8(Qq9cI0##>|)p&vAMyE6JgLAp2fgz2|_!w=mpqV_o z8Y;Y(IS_MxYlWCrBaSK#b4eP9RrFi<##v9YH^fH&z^OUKj{p?@^f`gEPmUNp z94Pnb6Z_&}@M(m)KS+KrxTNr-`LWrF#ThJzkJMTK3P6h6+1w;~yUe^3%?n#1DwxkKD($2gLBlH52|6NGADlnVm2c$Z_7o z?-D%%=tD4o9%#Qu$@@#$2g%95Mr`vy?DtQI4gMCf1^S;O_T@%DzG0*6{td*oyzmcD z+g)@n`USP!1vobTZfJjZWWXN{?T<(HGjaoe>RzdIYsFd1T%Qo_!d_p&!fymtzm$$D z`@+u4z607@sZbSjZEa<{hdZ#?NXHaQl)f*>tuN^pw@|}H7*AA$DegRx+SaD;kBE5hf5(etMgpEWa#7~-Z87pM-hE2o~LRveucCha}w ziGZi+XhOc0F_%oNG$T}UatJ?MOLP-c$CjL`cn;`n-K^C&W3<*G6d@}l0&P%N;no6r z0=xH*2Ywk4NgSj~FxbIR>vPV5f_nkbqR0 zC+Wh4968w~tdPWGa@vUPJzRZ;W)PlSgjde}Jmd%lK@t+IB) zD;e{FE2)HWGK@#=+R0Fz!yZ6pZiTe4Ve^jJAUByfF50T$#I)jFh|P&06!rC{ABwwE zm0N`9*Q!CF%gU$OmX9C?bmL{ZNqj}N{V-4@>9qc9d|0g@-?5AwpISl~4;V2Luy(a3 zdSQsDJuWdXI;ljKx&W~DEM~!01aKSB`ZU9r=q)#s2}yqFO(#S&D9(h~Id3e2lv)b{ zHL9ns40z@ghv;Hp?Q;>7RSx5o={#_C#G_Yb&S;&DAy)1JR@84-HiM*_@l2k#tixI( z<6))_85N110dVn_*XtoLbGV)H4l0?R(4h@+)TidXF1Ncfd#{Chqx4&Pc5AY#f(`xs zen#}axO%M1FJNlH2kL&F$Nx3{*RNfP{$k(ny@h_+@25;Qh!HS?fj9^w6oMcm4E=T; z7{-s3^d9>j0QyNVL&T?@Id+7sN3YpW?il=dL4&`yp56mn96GYn`N!iq%a7O={%Gd# zk45z1bA%niEc&U;JAj`!R&9wtS_jVIBYH>UPxspFQ-lY89G9>U`a_>44d4Oyhs88? z2m!O=@T-K1Pjn3(q6Hi|7N+A*&YH>&v@giR@d5nH=4wKGfDQD$CQqT2%Rc+gOFas= z--ERL9SMOiorZK(v$Tc(lD?MsrDxN-0Pa)49xg=H53gPJ*Z6&VAHA7M?X-DE_hu26 zZw+=B&a|0tJA7I96y&eA)BHX;rR(*upLX0$`%8+DgH_$pbI`Sr-o&nWs zTLW@(Y=q#=cDz1O9eSaK+ggYtA_FV@z7LtU_QdwUa^Vh5d+177Oq4d}P@+Oe#&mpd zmUE`g&6U&@>QuCW0it#gCrpw9rc;9W<3)mb$qOPsnE^hoNOpZgf_s8+TVzJwzu&}n z>fqCQE$?b-U5LW>$d&A>Vh`xw!KrG{Mr}ha=i!{TF82$bGLeswVFmM*ets@{RNvcA zuOxMcH`h%v=eN~!mU$blfGOhMP@Ki~0?jRIUkm?~*AH5^eP~0w*_K9QTMA=POYa3+ zFGEK{{;gUu#^l|bf?ziqo1FqKFl>4~Nrsx_r5wIEKupTeRHUX69Bk}4W%q#eBV+~AfN zsTilY#nl>tPSvi4mDl6Vw4n}vKlwWW29JlS;znXNs5vtQx6U_9-wDHO&~z?!;JyyyFNIgeXOzB{U2vbsMoMVnb>434U6S|-A+JJ4xAD$efX;qROc99|zDavVzb&$p}zxm2>4nVuQE-x7&o>M-@E zdwzG2`nK0k=?W4iF>vQaD1nkVg_GcKtsnQ0e`gYhOd&rK`8&4&sY62vLx*!Ck$sBO z;3Gvq!v6;0-{&rn<4__#iUT0*lM5*hwZr}tE{;qE1sxfMqezYXwChNZ)qWh^nb;re zI}g7}@X&$gpMF=_hvFpp!L1L7!p6U;0XZ{G~GJ zaJ@Q25BpI5k{(Im#iVvM;XIUwY4e-=^{M%HL=c z_?8)A4_j;~vQ4**cP?Xoow0d#StOUAzKrt5>tFr!j+z7h*ampF|7J?Q`~$|50MB?n zhwd{N-lrhydoZB5sC^;E9_!zUl`O2yV6BT$+$Xe{JSP)^wbw1-HIt=wyFWrenrZ{K zVv^@eI53#oh%s@%nh1m&{(EWHx!{@fVJ}5C>7|B{AbeI%`V;0Js%?e-0}$c*VdOW^ z65rG#RaKh6HKWq#N~bQi#@*y{c;HUniTrzIP4MP*B=2NRP%(A;)_WRgC1co1EHLOR zbM3*)!^^lhUV|jKoB7p;Chir!__uz!h}{Fvak@cU(068c z+26ZNpj98O2MmlC(~ZFUnI`))niCppz9#c&fm5@PwlzNd2coxOB*?c0uV<71&a72y!c~o#CrGrw=XOxIXrVef@_{y@x^SRvXArLXo1-s1Cu_j)6hXkb52q9I$qa3`jD-Q z3FDEh(S2$Tbo7n!?6>p#NL`NUQkbC(d|&c6c|LWRm&X54OR&+uNq7ji5D5>X`d4&s zMy?al1B99>El;xPkL$b7eR7&2 z@PoxSd%PepI7?eJZJG>3OD3Hx%$pV)I@;eQEt<4UGYu`e$4~C~38W4aupw3yNWVeVJhuatkzsO?wShrACxHktb|lKp_{7+Gv`+i~Lk zM8YwG=osm~-~JZ9ybyne&eJOW$-mz7W=Tt=VQ?le_p!#+{!i9 z?zi?m_Sbg5%_kuC(U*Bx9g8iTAlfVZp;#>v_wNOwRB_OMMxl9B69w}8CHMFHSR?py zEAu?h?F`pkKL?uP_ix}I73u7-uB0p7pS!cGclM5Y7<-opcX>n;Yv@_8he>v6K^THD zu4HWVx^|sO_E`^b1jt*|{R9(k5BINVc-|u@(@0G*p#6P4&UCC>hI0{mkJPBOuJIB% zu|>$*U_y|k3n*{4k9g;-P7(CHuX?!OjJB)0AvM&S+TSsk;`8hP(9%tbB@M(Tv-{Ay6P4@1P1-GMb!rdsk|f^{xKJ2S5*xbl&aHL?qSbKu&S z03xqEi-+Z%7Mv=jM+YOldQEeMZdwaHEYrL%C0~J0D8WgxW0_uJ%2(+_cMRn%6{`Rl z-}>IRH9llr|9Porx3iaQv-%Ub^7cCy<77s?pjxhj!G%sE5P4l(g50xRkr+1`sGyaG z$G2xdL8+%XTB$e~q!3;%!kc&$_h5zRDGWqqI^UOQ=%rGTy7%+Yp(NXB6@Uymg$nj~ z2ljBQu7q$G!&h6=`?u)EDOA3k3L+{}#OzQ~6@<#_-Y0e0$_bfk1A4#`&>Nm_u5qLq zcH<2uIEy^;PL;4^=CZ{l(hrfIFA|FbCr{_YXN`u$KkJ11MK<$8HSyo=efxJ0{HfdR z&jBSD{*7aQD}HB@orX*297GCmy6l4FGEVPkg090l@mXiJW)G5E<2oA4Mc7 zg`PW$u$Ul5uY-QS&-)Uv$rU6G)5yF|NxY!}A&Sp5*hDE-5j$_Z$=UpeFF|~f3dxF4 zd_wH^N5Ni_ecG>+6hQIIqwycb(hEW@Z0%jG*4}cXcd$Zyx-J<{PWKhIECcc{7w$Bp z(erKeDGS}wwV7bxeHm*w(2TyYV*1gX9Sp6@8Lu-zdm5hB#TGQ)Zt@t>^gV=m*m>&W zv{BUfhQ}mgYoLwQ>qb3UY)L^eO8S`-oM_jr^9MN+xe(rN7UbxIz1SY%Z%*VTg+2CDzMV=Cug& zB;Ntl5v;;dQ|@bbpT}EUWasyl(LcJ(eXF7d&f6dBp@Yq4viamoSOhK~H=V&NGfCK;dxX<1PS!Y>?g za?us{1wg`IhJIbn7X#HuFBhG$^{91o;fqHxUH^hI(nL_RcA*3A8n9^CjpaFa65On-SwSf_&5YA~LmMPwkX9{GudqAwN@f^w z0=l}*DN?XP=A6Uj{8j@WF~Qow&JnggtgIB;vNcxpE|X*fNt3D25&~N{MVqdv=~n=R znQ_gjtK6CO@bvF6qx6o*-sl+}2;I6h<&?i_3XbtBtPF31rpgPshvwD*V&Uxj0KQo_ ze!rL6LY#=xIW2`s#@!jk@BWAvZ+c1s*(&bi5}l(t@9SD7c+#CY{)yac)bW9CREKh{ zi+C6lMWnY>+s2)4Z-L%oMSj{tWkQijtsyGk9v#?n-m&=dqfKFqXMe$Nz!F1LMQbE4 z)uM=Wx79G-jN+CXM55yCb(f&aNxRbYa zY(Khuh`&>r*O5y7;e}t>&)+-bJMa1J?msP4Qxu3o6pj-p1X3Ub5)_W^n_!ZFA%Y-r z5`-}9w?6&|abzpePgNL19^U=b&WrG`3?_vSua>V8XYAkT@7-ijH zj7km*eKbEj_9^(|zE>RoBj~5*oH$aw$RDL!N0PW8k6LhoIL-(oN6t9@ zG(QzUFTZ6_@|ZsQyF2Yz79jKX8fptx1e_IpObOkz-?v?Z_*7L;yT1wgLlr z$qD6@(qjU9Q42R|Ay{Ww@W4*H#Y_qlnNGpIkh}whg10_TRkBCe7JWm8RNHBMT@clHW0Eh@oy*;3Yfl}1- z8&JQ2j(w#JbkgtA(=o&$%k`V#PIOF(v_xg7Wzu{A-2~(z6YB{$--3$p7~<)$x|nIo z?Ot_3LXz!TIrF=%*R;>mQIgupNz|AHCAi^;>rlG}uNekA0wknOB(p(;zhKwkN(*CU z@A0XQazu(atMpJusGcujEYBw_q29!#;(ZR|%`2aGnrbbg!rTWqATA~l4;tH-7x_i#Qc({PRP>LW^Ym}}Fk_>sKPtUr zziP&e-wUjr3a8THe-L8=-_@938PRLD(jCGYYM))sXU^fo zTho9|ZGdK%5YvP_^!xU_XrwN3!@{1&e$? zQ-wrg7&-QSkJ1#l&-DT-5UZs6V9giO4I`Ro;0 z1gbl0H=MaPQq%{9L*;f?Am;`+W?!avRd39~?~}89_g~Y>boVEC^@CVXv+6s=RIS> zP(~`fWB%y1CVYF!!1dj7R*MH0$ho@kNw??RKMmB%H5auoz{f*p6@~i8;bjjtR&y=p z+pPABsihqtsb}764LpPclU$dp@bZSLt#na$8ZN}!&YLYn3LAHi)Gn`AG+}QDniCVw z%cx$x6|gTbf=^Xc>$dq?;|Q#vwf$+!Af4gCLG2K8M||K|hxk=+po zuR{qK#0e0AF%-eD-!Zx5(+2S<^+S#V`y@LU67g|yA>*TO;m*;J_|uM>+6mw9C4JDb zuzqwv{B*nC=@XtGi6-h(r;nu{7vt>HIUD&1^F9K4Y-e(RWTJeGq&O%c{Lu+!pNhqO zZ2KAa?O1j!vZo)FVf-O*DfkgMpq~cYJ4r;2egt{^5hhZfc2d|!&W{~NIY|0fOir|q zMRx8#9hu^LdFli)c|+Q7^Ic`~-)ayoTQkXH=T8kHM@LL@pQ?k&?Vxb_X6B-U?&L`U z-yu7T<2}}TGb|AA1Z<6{KCzjdj7@U_udn#tj)xvymZDbXt3JO&Z6>Ze32REzCWNj= zSLH@GUq>)%l6#!l>pm>)`%=a}0_3B+*Y}eRQPB6lirQ7rf`I5VoS(!|eFFc|>G4Yy zJz znZXtLKC76gZ4%rW$tnRHRxKy_El8bxZSG)V>SDwt6O@c~A7cYuapLRU80tQagZNH= z<3&s$6T7gNK505z08Hvi4^L6{aeTvDLKXTRv9!9PTI;b*xY536+y`lv6U|^zeP_$1 zm4}lnCv`6{;vc{hI+c7YFX?)}-cCCc!c}ethXt=l?|DVr?P7^1W~>Q9yPCvfRMeZG z3Y#k#RTilT2Q(1+=r^(>Lo^59y~)J72dA&@>KXK1!8K33sLH@0MF^3Y7Uxl;cx6*` zV_WOdE0utPMfX^RP7P|}6wN-#o4_;M1rVM0kaCsZC;m;yDgfhW3M zrD?!a*fSjt7Oc6`hnZ+UAv;DLF$Aym}dgy%+^&wes{NjRThjY~goPeHui#1OM2 z64=y9@pei*XH0d!Q*Clhxc7!Zc7YrH>7uND5p-_oI5z>lzU{56gtmH4XJSR%le%@l zAoS_9V{#w_S1&Q^)SD9a%o)gqsiNz%hv4!O;zh|hr*fdKPp~6iZp__Xd-9sf4FH#% zk*LJ(j&Z{>_ibXUvaF!{$4#YJ;sz6n0xGM!b9Nk1-ot6*2^;4z_wP29QfDI>o6hWn z{mT>>kM8m!G-pyDPHXT-n?;>`UPEXq1}6-XJ5*-s`+kqdhlOXDE(rUtLebff zU)A%B)AQNIwCa4j2A5|Dh)Yn?e013(;8sJ&J!AntJ=q&9m8`qq(0d7G!z0+ZQ zcPXX3A}d!w{snj`ZoJqf<}efo_7a%3_si@hq(Rsj+_7oaJ~b2K=G%>VJK6bc7lrur ziztZ~md|Az5Nf~k>6@BBI@9qbYQg0OW`%U4EKtrIj)@rjOyYj6^4`S*Z%>LTAC_Vu zFEiL2wFTaL9AV-Jr9OytIH};>c-YdL3zti(RjF@M+&Hy$ys9d8WVcuFF(@!nI^2pX zoevuTt&l7{O1OmdIGb7*>`^{j?4;CZ5D6d>-)>b@HS;SqXAm}&#lgrof4VL`RJ8Ea zbHE!lL9)K__#FW+^O=c}Bt9WHQ8}CKl8XN7q{_-9N`_ONM*?Dly-x1odH;=BY(Zv# zuAWaamLlM-!wqx4WeF#_;@2U8mTcszY5|-lMc>H@(OC6jQ&OYm=Bip>C5N&zF8dNG??)o9X5_JS(!X zRL?Svh=fT8F_3~2$QIH>s@BV&hdaGgH46w22ag6?UR(24=8itQ&6#SbSqIC zm&m?Wir67&J{7lXoAfqEatt5gNDti7^qB$gqfJKJLve4hDg1yew^9p+;v<}Kkm)<9v-`U`;3t$C8 zyZ$5^rJjr7#6PA$`d?+Rcm{l%hH2@(69Hwo>A^e9E~u)_to&;jpB!9}*|dDZ*EzEX|d_ouRIWAH@pRK7N77MNda zC7;6WzA<>bMRksYyo_35l&i@F9XiF+kg(N@m;PYF`d;^SwqmzOU5vs@io6Ao`Nxr9 zex6sK#*!h(rz**UMab(`DjN2oSvs=0G%*Q+l-H<*f~ke{&>fUto+lvFuoi+YxVvyB(X7n;+-IqpbpQ ztjwYKafM?C{L?rw{WtuFuENN%I+*02wKViNKK@8X6XX~hh8z$_eY6rJ{WK_Hs;6br2p6y za?2{+==8g{lHdwpf@tN}riyL!wXjIL9YFVsJmMJXuf4T*aQm&b;2)reS2=T#ydQ*m zdl~&p>j8cLa*CJb^qe}>iRqKrXd65{}9W4X~CAF76^%(LF*n@CFB1gb#V z!~66eO07daxECU1F6BU-9Z#$|-^z=%A&GEbF)veAR8FKtEqJvfRj;kef)vae$REph z_$VBP_yrNV-rOUWOQ?ib!fH?LG7JkL`dcD@t%wKyvLybJx6Htgec6`8BnEiE&M$6^ z5`C;Rru<^gB-5s~2JYz^+&<|Hj&ihWdMfKFOn1h$YY+ZA@VZ?ZYu0%xMfLBy(F|@si7ex2dscLZkQa!hqtTPy$Kq$3# zp|bO~eN^|k^5f-Qq%cn!+aAE4vBm(nUKlbfspMh{l`)ehJTZJpS&Lz)oXC@|ol1`ld`fzxbc8C;hjOzXU$-c$q-OvV%r zJv&ke>!-7}o)&sf6&AY@=79EI;b|x;sQIe!iceztro|C4c8!=@oP5vci^O(3g`cdr z*VSZA5fQmF=ef`gOHp6IWk^HgnMSZVQKOSF=D^}1gS^jWV~qwY<#?X`Z74G5hZkq{ z_`SRX`j>cE+<)KxwOjBnu=EcO`vy_JJ>+La9|59A^#~5*I8MPBNFX>&Kp;ZkAdX=u z4x=DJ5-V)eKt5IoN2ek5W9j!X8`@(XBs*fDIQcDp?Ge!q z9eI5C9Z>iovpeFw&mzFSF(HqVR}wll9@yM`vN|sFguJ*mw98p~n)&KBfbd{}R81 z@Ti#p>u>nw=0a7dPjD37*G*qiNN2Ri6eVsHX}>iSTWs!UL@*oh2OEKh!wUkGKv5Na zng_3k;Vl^X<_Ctpsr4Me`(da5)V7wI%}Cnzz4~^CBzfIK7DVT)1K&X4*Nqxq{$g9C z=s#F4T=G>>=xq;%2X_h4>f^GpLvtWrDjc zc3b0+K0kvVaI49lA{k3dO$i5h$Bt<3C$L>g{f-nG54v3KJZ6y+&uxj*T_vFWQuyY} zp{ezHdH`{kzJikfH(ytHg`68>^{_)uD)`Zcs1Lx+M%aCO_507{% z(e2r$05S$x!|tHXdn*!&Q6fDH!-2y>AmCROJstu+vu}g+%hOZt!s#9Jrj$F5#a_)? zIg7w$P68@=Za#y)G`W#Q$gZcTyb*MTNQ#$*JLjmQwRkj7>pqj!vuS+xQd6N_uJ6E} zfT~EMH4#-XcTKHP1}kQrW=c_JEs+5rHE0Gw(=<_;?d?8+2-lU#@`D zfXxXa8b-z5A|7_C+s5}`2m-n(C*xrO?c&D!uu(7vS z?-rZ8{Cx+6A4N&PuMP+gtnf()ulcJuSP@AIut^f7uyoq;J92!q>E34{=7#%7KpNd3 z1xO*ir?U}|n!WN&2630?EDix=xt`URw?2mbbhkR@(M$d1O`; zWHxBrn127Ac4p?B5M~Y3h!BC=74gaGSThif@oRSb9F)%eCfbsc`O$m>fFox1|rzQ;0+n2bV;e3bzNJg zaW!EHZZ_6Gbw=I%Eza0F6)1i1)dHzZxk`&*kdZZM9xy-_H*h%7@&fbE=$7SOh!aKq zctk7ln#4}4xf?ek5l&^y*clh&)Z+%#FY5+o;k=w{K(iQ|Z0sEeU${QMma@ICZ%dQc z>4wul?4qKSbrP|QZzNDC8yhd~5Xt7=NhIH&S_K5TLca|M*TFOwSo9 zM*O~F|Oh8wV7p0o5Ng8i0F4d$GYEU=i77^4s)GMIs)D~kRR{$_7!DH0-~$TVQ5Aur_$LKG?J#TKzQZjL z#z`0@VC)AX3gKsN5BZ^FL|<~)$&nb?G1MO8L-1#8V|e^=0ITn31wiU(e!@S^Lu7P( zC-IS~#;_wMC$K}j0EB-QTTY=P9i3r6#pF*2{v%YCeI%Hp1CJe3C&Po#aZp5vLoWgR zOxun=vyF~{l*Ezg-jBVnyB~N5iAi$Mcfs@^mY|=GsU34g=z+^1a=*sEjH*l_24&&J zl)(s*BaSND6!mK~CszJ{167s(iK=wY!PHIuEvovu@qdh}q`!=+ilMx(v{}V2nxDvL=^ABEEK4akZ?I{ zCa1Q>(-nK2sI>)R>|*$#&j~EIVrW{G3Oqfe?cC>Mm{FN-zC*^psOJLsI3DZKkSH7Cc0{3DZi9=!9cgGBG9Q;HjcHl9rTid#}(4j zQB$6P6kmL-;;I1h#1_WKOIWyl?OZ@s#o^P`?C8VX1?8+r0}w&E zHTNCDo@FWiES(F*< z*@gaFsESCFchWr1zP`wJGHeoJT7~WsEgbkes7e;IoTE6_!FZm&c(y_9Lb z*!J9WXnil6Lbd4gqqvCAo2azO$z*}yQC0?2VA+#UdRNt+HZ;F2I`Bht)Nc!?zC^}6 zpHbq*n^L9RJM{|R;r5=cv}%Bt5V)U%;Nn-Q>*t7LOsGdc(g%2@77Ug+l3P<+s$E%s zmwqa(&XX3?!H6oXxK<&d8E6MIZ>ZI{so0_1A~cK0G^R|8z0VJ{LZBWsM){W9pSH+c zcmI#QMei(&>+M=xE}8g{dEn%pCckm&wo!b-6}yLrd-}_Ni;EaKC_NSdK4>NvNe%T} zT-XQOG{k&%U^8BdsKL}mb<^RM>)zvarbr|w!W}Aax0lOQ zCypTA*~1)+lQy^7lmJO2X?G(P1WU!Bx0pRG{|42SIO2Xu*(!4H_tQdN_=R!bXUca1 zNt406@1$hBX?HCL6!uz;!JXUudy81)4TBRa8pe0wZIIR7y2U2wx5e+^?MzOyCezJZ zlGCVkxe7}CR0Tv=Uyq=PsVeb$tI$zYG&yw<=WTEzU$%~Lk|d6Kkq?=BZm?JAJK$bL z#-7QteS|1*w+7hUz@TK2N0DAqLUN>V5JpX{6N1kN9jT^ZwDk1ea!7Yl|30ch{vN7A z{yM5czCl$xU;-(Sz#)hLcQ|#Vrf`JX@f8L`7=ge9jKUB?fFuPY6h?lRU~s^mlm0}hd&$q^v(6Ga^2ogen<_xqp719g2NweIjLBtNyA4}CTzenP;{6pT+A zEB*A2$JwWCDcz6!BUD8mV;YYckLjV%x$n9k{QyMR@%Mf*8F^&W2>9US9!aw7I6Rbn z1hqeMp5SLL)uGc#9c7<{JaT3@b+kaC_+Lg<*Y`c5%d&%!;S7a(PYfXUP)RE+!2cVl zYW)vXbqooBzeQEQZ2TXiD)ld;s%@Q7BS49#Ag7&LJ`}eK&LO{vBTVAbVwu2sY0iE8 z9Em}LJ8$UA}`udi9KNnVeuc>`N;P+UYvI)Irf+fbdX>zBRAv zqa%dEN3++&p_2w$qg=9`svu6gxs)=qk9!i^Tlyg1wE9*V-D0@Q=9z#)=nFC4?a-G_ z!r(m2rnc-tN&c5=Ap#@YjxdCemXqXpD^?wlzJqJf+>2=BAa1ker&VDrk8wN%gsj zuSiNb{7ax6Hal@ANgp9>xs1|?dAEd+)eC34b`IAeX{b?|G zjG1jb@fqq3HU^QN05gCYiI{|B=#}J`-PvgIYs+J-%-b(eP>)U#n!@#p% zhIH+Yl*R9$D$XomH-z{{;@SyZX|`~A;f5FwOXlCNk3Ji(+74W&;f5;#bf(|;dJRi^ zLizt3RVm1Lk+D=sR=X~L_SP~h^d8((ow=u7= zlK{bCinY7mV`a0ZGaX}+-;*lw4lg%jvRFm9U&8DW`jgtR$@{IoD*C=DTCsG7josgG z;IVj5`i$BoY}X(uTDW8rR>B*$*R(i3P?Q8NVn;hevZcYI?H0u?-q$Rsy=1xgLJqvn zjK5pSm_4UAsd2iQADPI01zchzEv$7{ihFT!-@aw@)<2QytYg(6#OJ{BZsQ}o0U%wS zU!w0s6Vb@0bx5zS{fhiE&T<&|EKmC*N`bCCdG40SrHrHkXXO23$H>Am(|!gZ3TMCE zutTwY%1}K)(0S-MMOS-!rtP^@dWxG%f@`^2)WtXH;tb~0VmWtzlOg&NOi`|Yrjf4bN&qf36g&~KQV7(!wQND1^jO1Vj)V z-oY12ffx!=-$P#qVET;eJn#&1q=HEJD8d~rK*TXlEd8{A??8ymexj1^qOTpSp&xCY z9r*0X=#Ur<^hP z%^`Hx;lGUgWHB|?Cm#z=dx$}txd9tM>wA(L9MgO|?$dQP-c=d(3%8_DRrAtxp>t3l zjoi9p)vs{Sb;m&n@R^8o>~#O^^zvb9QmsRV>njeL`0$?epAn!e!^DUN#jRUQe8d0J zzHV+mQ#oyQ)<0CvqfMRuxph6C522l3wpC2?E!XBRpZ2fM8u&Y>{q?L5iVg7RI5u2> zt@+!jNI0%rsow1Eba|wzYtcZ5Lyi%-B7%hvNIB8hs8%+_qsq{wR3$747B zd~qO#>1q0HEE<19#VL(rASz{7z2CieqIzI~l_d3kMgpteP(y9T6SB^?d~M-E;OD4J zkcqxBR;HZH=*pu!CH4THS2TU4V`Yz;6NH9aoX}H0i}Q|aSP=mRWWVWA?m2>L^=O0kzRfp|eFM5iz2Ay{ zQY^ZABKDbIWfbWX%QbOsa*dom;jfve?nsrXGje(|Y)XJgiu%*&W%B$0q(a*wm24^h z(PMvQ1on^J5Axr1ipYP7KXHhMX950+Lp(eSaAXMnu0uS|8u%v;@i=SX?>R(u zPCjCP@e}y+s!9x#J40?5w3KTlO&bA5tfP7Hrfs+F_uESw-LyAZP!O`~n>~|8BA+0? zkuxCZ&1Kc%>!DY6p_FxZd815Erz`yh0IfO}uNGN!`3*!s-WD%FA-#4lTDVT&L@e z56D$OL8$>2Rn4m63_E9f#_n>Z_gy(XRifQ&T$~<8-3e)J>KziAuX>zU=g33q9y!|&g&sw}Ye17v+;B)sQ6B*V z{9xY`_~%LZG2)m&4)hP=2c0mEKSPwWBU%X29~jWxbnYweKM&?Tco_E-I|363If9%0 z`3dsT-a?K;Ch1{evoG=rpNwz(2`|u3x)&x668~;evG6n5IQj|8{xGVjK2b&Zivgv# zVZolU`3zY?xmb&6bU60iMlz=OUqu!4EdFARl3!b+ZG7a+*wWRWRj9>o^F9luv^_#b+pS(%-fTI zi>(w7RDN;{;4SG5JDQzx3pRlkiC=f8{YC*T6<|0y zwZ`xkO}e~fTL8+!5JoiU-0eF>)?G3cXL+0c0@)rOu@T21YP0iWsx0QSjkA<9T-3k7rhOIH%|ym zoZ*r(7B`+{T zi-XDGt0?@)u3>vX@co8q;?tA7yC9M}oXj3{?7k0AKAbT8kZ#;P74n(6lTgP%!$bc% zIe76@`UBs$JG=1HzqY&G?9(lM5b4Q-5Vrq31cuV%oDujlA`v-?rw3y!JZhf%34@>6 zKu5Gg{j^6%@TU_X%?^^;zH;)1EHUe*_Q3 z|0;O+^M3EBa{~Xw?;UOr_$PkvaC^XC@Ozso`iBO$c-X_O0uR|>0Z>q$r&)>fbDBrO zEO?<$ls%8vY!xl?il5@Mx_Rc4)bt@;`WFex9!#p6!4iFOhlC4|_2|@{aNVD0kD!y8 zickEtW_MVfpN%_642fO~LJg-f$QdWp;NfLOp19QG!Z0~E9SEqoI?rnSI7z3!TEjYg z0q|>QFjAA$-`ZkH%9mD)Du35{zidg1^k+8rrJt{zKi-#+rsu$r7Jyb@l5FQQUk~Qh z?l?AYz4&ZN+GCYu;@y@KWE5diodR@4+R*0CqBoz8pQ1z9OirDM#+bQ%P zSk1q+(tnuEZ&vw@-9#}613?TUDS|)-2sEX)pDiN}W}CO+o!$fINj0VRwM9o!?f0T07Urk{8v zJUAiy;rB4*XJ*JJE~2QPNb(PPAoalmLCSyI&0vgN4A&+5TIxnh^+*DF+_y2qe8ddp z|0-tSzsL)HY-jOnYxYZH@2`?B#$QRgl>e)w%b!2xrf^%ogrY9upwt#?hsE zsW(DZx*c`zkQiBkaw>xP#rORN`A;Maw-6&PsG%*~ZuFK{tuxW!j-eNs@Gy4Wx)!2^ z3FkXwFBS($8L;%I+k5z_!y8X%8aIAYj~e0Fap@e20Mm&j=ak1fgNQt_ zyc%;vl$;B!7M=KOJ#DWgwa3yvu|m;q_Q1qJN(f{4*5C3*!lTAB+358x(PfgQ6s-%T znJbh!z_BmH#^V`wqu1I^35p}K4H1o&#>+}QZEsrj3gyD7zxamCU^7yQ(;)KG{o(7h zY5-MIIT~)f7!Q^xUpn!!Fh8L?YuHy0p3O~Zag+Au!qzNuC`K-EAvBn3Ty?Ba1=%ye zYDs8?Hj6#mJfPrOCf35YSa&<6c&nf>2a?|gWa__(B-g2cJ-CmqsJF;`G~<_&mXIpAbo)XAx^n+D-rV};SX`3M7+3-SJmojTd~gJP^W8^Z8AG(e4wg4MADQWFrbfEfk+2Fjl^k=Fuu&YngXBkG)>d(tGj}EU-#?ueMOijU+R>iyh!) zSd@$H*-X1Sys+GCN&{k6zi|8z=gC!7dyD6cTyB=-HtX0RiN*}RXiQ^RK{6eN)eBdh zu*FL1hX64eHeeb6diN1j2f~O7t`7%$o?YHvXSh9GakRdp5~PhxOLeYCT_$HfM`aPF zR%G=`Q8tv60_Y1;N@9-APNHxL)dd~C-a*mOPd2EZjr|?!-g9HnPRJ_C*y*Xdx%eaI zFV~wsfUN`!XWeR}aKl>u20k1bgXj=rUT$Z$#Vc5smf&gebv8JVVk5Oy-a5ves($I? zLX)2k1f2aQc}s37+E?qrP7V?D-kiK~UL}JGosS)1L-ytgh;u{x8#_ ze@E-~=bc#k2V~v9y~tOn_QwnSrc?$(6iDqL4MPZwgh2{H4%!HW;0Okz^np^bNV_#@Z`e;VDP--B)JZe_oj_+*08a@pwMOZb=De4VVpT{tAZa{DgqsH|uXL6f-p zGW-enJn@+R1Pf!(Qft8R;h|jdGl((`kkV|>ynV>CzvBLWRqg_gAXBQfo9$4$VPGr= ziNGIS z;~!lj@V#sN3&U|u02eF^%=`No&YG+t!UmdMBG-e4Ym|i0bQ~=T z;N4}z5rSm_iZM^8h~WE@x@A~%p0cIeLsp8TxqF#T!&SRY6_&?>GM%tgd!4oNfyq)0 z*V^C@g$tb1fq7q6xIC+R6%2I?FMXR8sKqe?6e0y@FM@xY*QVjS_a)=j5{JW6e_6;l ze_Z(t2og+Uug}_kc54p$NTI(U+x}@W;6#thXXITW^|F?V$I8T{?C)}V3@f;CtP|*w zjR(M~cRaY8Hy7l|$`vP;2;yN~s>?)qD|aGs7vWo+653R$?xh93p3VIhQ}5@SlJ8ey z2A;Pw_)?HwJHPPP&A96C?qPsZS|%mGF1H1a-bHz5(TXkZ17jo|J#=yUzHt*sJ%g|S ztm|$H@e{;ZvN|&th7f#$n)DKFUdWgmrPJT(8txudy)DTibEKVP~5(~Vj zEORcsYYwOUu@*(P-!?O@Jg@BKX_DxpqXQusPV9wEK`6w*72?|PY^p`a&v+PRfbfWN z_(su4_BM=1aeizner@K|FfWWxqJDfI2SN#zX%k|-?L}18uzTX?m*;s6`|=6I!{S+! zeC?vqIA0mnNWDq4p;VFKc)Ol9CwX?}>CS)C4F3z%0}ibB!l@HoA$b4h$wI;>qAGnt zt5cQUuh96u=4-4dk{DfoX3tm^-;T>Am)J}ajz%1Ce2Yc7)cSnti zq)`^@-xzfogs>d7;KT>l{yIFdFC$==Pn$rcu zwY-{E%uOWZF&F8$4&4MDtB%wkRz3v_Sw-ZlhNW)Wx)2bS^7Xc7IlP_tcH3MiA2}3C zQ{k4GICz%ceq2pNAR9<4c-LX5^H;IFipP_m@1yw)0QObbS9w1{qxKVHX`bTyDiLuw zm!&W-?=#3wC4rj+8(jPVogF%c9!%R;lIL){;ZlI;Azq41>3bIGD8;FHKIPUC0V}WZ zMkM z=`rML3?@vGq|)X-cJO(DL8V651^`tS79$k5d#i+CY-CAA$!?FFB<&iDLG7u&%z6;W zB3&V2_XXVJ+HEl*UBkf4R*?ZTR~MMNPdXeXE<0@c)4>~ZwXJ6B? z?0;$LG(U#=8+`ar*ZK+*|I|9a?f62m9Uc-mN{|qUkpxL#6hsoxz8%Lgg53Z75l+m~ zqyK3~cRMhQhy&vx$T7x%fIqM+`^dFo2VRS?A4%$w*#Y3bP?L9{wu8YC{wVT&u}oK3=?`^v~4l|@qGU?a!W0bt?mXwnM9gAb5?#E6j3bSv^BbGz?AesC#{ z9u*e?{fUZ?@(lUe5<$lnJUQTGj2zs6INAa2AL2yhpahV=q6B2nq~6wQZ7z=svD94U zaMvH<#PXXKFV|HUexuE=Ad0QACRrIJ@Z>G<>P6rV1<2#E*k-~0VCia2YBAhr1i`-> ztrUK7o$%u1uB!=7V_N%fN8g}%zl0UP^ojieR{Xuo z1pdr*{@!H*f95)W?=pekyUss@7lEGvBh9ytr{x3(&*cUxi^qA{r_0-QJMm{$6vQ`-F()0;O>-%P&ddvQ zMSaKJ!Iyf*PLaHw0ig%|w|mjGFzkY{SOaP-f<701c%C z;dDOhCmTkt*9Zn&4Uw=#!tD@K%OQ!|!9pYsQLHZs~Gr=1J+NvQQUnW^k{!e{`gWPmn`{Mx z3L{8VXE?C0)MPo{1Owk^oWlFiU0!H}sUc&&nED7JAkv?vL~m!v({_gsC04JE}FS#7*+3+H?96(P4>iw=F|b{8*EK56QBf}%4; z?4L$_uJje8-<#_ubR)xj<6pXyrM&{P&WTO#z}PlZa!nUbp4hYDQuNa?c}ng&7fn;Z zVJOd4^3&Nft1BTGfzh>hUV0fzuTD3*F`*7;7~F<-fM7K&Gfwy^y=G*vc*W|bJRs&& z1-+W`H3gY#5l>I`AN#G@=uxgKc(>Ye95WlKId5+w))UKpgBO2OpmUJ+e1AR$Yowf9 z7yXuG6LOHaU>tvl7lH5c2Y-YYh0V!mlm<#(*mU8ckNy4=YUsnkwttWd%-cP-` zy4K?&T_87Q>wsv;+2hBWclS_D?q6Q{7>ND7?2t18(01tvvb*D(j_{T4B`Tv;DQxIH zQ$K8)soY5EL{_F5lD=@a3_hneg(U>EH1)GkjR1Kwg>$KF_Fg2Z@S448$D6gkrGS+YiRN8O!Ac!br3!Qni3ry^*%A_L0uy${ z9+&OK4yTn1P|s-v0UVIEXp>(F8+mpDFs{pms8F*Sq_A>SlSCEF2?S(U(&IS1F6&bCnHxgPPm0exqBR-7^;Yd}C@ykWl6mM}_p$&Blu;E6@K2H2-iA%%~$;li5^nTy=ccFgiI$I@Qjw1ZF^@<*>ySa zK(*5~$P7QWmo}N3`mPVzcDP2aTyTEtZuy^hRhFlp;u3_%z2!Xp3kRL3uzLaWTX-Jt&Z zALrNq9rp99tjhoMFBAR7VE^q!zFO+v+3Pp<8AWgcLP?lHDHx`36eU3tqd*vjK00_5 zL68)I65qAZFnCx_m^kco@@19__!E_U0&x685)6;dDeOz2oPO6r@0NJ~#_*4<3V87P zck{X%^bk6vTlRRH%8qhU6dokSG(FVm!sxJ@QS_sMhw0%W(9f*G7(VPd_GuhQKGSQ! z@FTWQeatp-P#Skfa12$%KK%vpQGOI+~U4TG7LNM@8~8qT9kc-(J*!_%Z5GWU`tEiu+*g4;rJR**`LQ&FKT4MM?0r5I&jnNw&G(%{yij` zp7tYys;SPr@s(THi@?uwPweoXyngi{cRcu;$G(glTzC69iB8?g)sV_)rf^m3AVZ+0`?c=y{QOB&-%rnAAWQK#x>GA=N)te;b}-0;eI#keYl z8msQ_1@K4t?B9%9`}M3g!J1PX5`dR3)7g1cqW9~hk~R52ZC9lq7nXfqEET0bwh+u| zm3LUl;Ntpu$$31w(FE5n?8O7>+rx2JkR$Z{0|^t#^RmEi<(j@`DVOn5khgo}j$uXC znKi*^MCY{kY|~Z<#PrnLBaqH-v_p;mvDw1@8)ggpQ)UbMjhrV;kQhP1Ahmyi7)Zb{ zj*}oxksx&Fd{QWJw0@%BHCxmNN$wwe=tFFV(j&!pG)WRi5)UDdMBmX@34ew}eZORV z&=b+4sEmL|IXXlSqI8-aT2Z?>%RWcgv0joK%1|i&VNyrOLt*#>vju(1+|j3azMl`0 z9BEB3`;^7g!yF>$Vf=Qudq`nr2Nf~HKKK(lx}K8HsMZiWvX>ctuqKasJNW5erS^0E zLtrT$smRd!#ccUPBcrVUdO;q>cBv9)jRIfhZ^^ZP%WOga|213C-#1&|VO{^4bZvr; z-n=Kui_X2C@Wn|cuhZlbVlUyAP{#myk(O)B;K~gRduZLJarH3JbMCjnOkjw6jI0>g zh9V+Ef^YNoi0_FVnr|a;(2T58pwQoDSGQJySt7?h1*;9S&TVZwNDAf=C_m?E{t_zt z4d3gQ`n@H;pA7jZO#aa#Es=tco6$k_=e_{G$GWCl0YI>VWTXa z)Dl*Cu)6$OoK6Rpc_n*T=*cW5P;0oJtoIi5H1enIpf!cz^sgix_V9QA*@Rt^cE2)2 zpI(#i?(~f<{6`CYwTFMa$ZvT(Ac%nAcY89y=&(b3$P0difuT>qW5-uyd<+M|z)wsI z9fH9-07Jg7vzL&EVZo!Lc?5$FwLOeF!q@|v?e^y*S{#Fi?K*^8K6IU-7FrR@!3H- z+RgBhDfslk!+*@LP7b0Dw0^aEJS~@{{{0@z@EdZn4%ojMaKz@b>mX*~dqy5y-1UeI zkKfTncc$LdMw7gH#0Kbyk&{>@B2yZ-ecq=zcF8tC5zP`a265SNS|+|4F#mm+G-CaU;B zWxqU`p6BxSF6kGonL`rr`WaubznJBJ41;2R&e-1Q=za&x;`4?2E?~<^n`AR zRI7Hiwh1E) zy+KJ{`S5M!_aexP6iH<{KaE>@L+zom^R1@)RXRVQjSUtx5mrEvufcuQreJU<2D}b^ zb<^wVO;hbsr7EJ>6%1jn5|I%~V2zoN7e8ggQ9L)6%sW>TpjHd_#XM|pnapS4eYTy@ z6}`7X-I}2$bPRcOON|wd^BUUPy*^Bec{_zIctXvh;Raw9e%hW!G+QnI7`!XXYOt|N zwYbDQbiw20y_^-;4+&{#ppnw3yDCqMgF)SE#7`Ot;0{41&Q&7Z(&gxYee@fGiR^|T z^7~#TbeWVwuVo8MVcaD#l{>qtW!0u{)DlV4Cjc$qdXTV{h-nxnZwoPEo^SN}js?C@ zr&&lI+m(XtnugeSB@5k?^j4y&d}JUHY!h!lq}D_ni*9*!o43k6ge4aF!HvP^nAe2e z<_~SwMo)X7@Km1GYIbxHt8b-t#ocoACV<(x@X0`Uw}mM`&}v{RhH&Qsxn_723i96M zoUqy`BboJkox%i`6p3>V&SScYi9G?H({9iEa19=Y4Y_NMXw>TvONc#Ba^cgPLz3w0 zJPp|lnpvhC&ph@HgyD2a#B)DgnEjim$`Rd;BW^x^qz1W+%VuH@TZ7F?u zfxkrzq@77X>NCU_kf&l%{y0GX+lTM=!t9@_g1EUC@nJ8ZG+s#tInl^&6wmFz#2h>0 zKGvh<(gS&5$gc@G*)hvivbkd_KOe9;qu)8?I`!L}Y?@TqJDro;;)z>VYE*O0D1B1p zeD(|Ae5a|Qy3*ha*ZMctO_EHqGQbQ_T6NW^>P(92IikKZu+ntN2^Suc`Zd;a~ zZFdBkT2yw4qEwPER9=S`Te#ERh&IDirYBDj=2a*WzS8`$N-Bi8K@9_*0YeZW`|RLE zTnRWSrJ@6o01?qWyv=uR7#J@?R{aLQ4<4~c&7YSe4c_lODy3mc$NhLG-Yw+Hk8 z??1#|y!#8_`6tNhPc8HNxa;3be2cnv(1m=rh!G!^ity7ymXb#^SOy&;6GvkkdBk?a zr`2r-O?xmG{h%8dKlms_dLW-8ri_kwZ~uFL(vEY8gD!KVucGt-UNH4pJ2`gyVTug> z41J)W1IMB9LCm4BPc;NTqQ*nw;sc>}M73kD9de}~7R(-5!XJe{_>clTwoo79P5fcI z98J&3aa!0P7BPhQgSyIJqpo}PebnXuL)2Bz^86KbF~5(xOxOQ6^7=Yy@|Y@lOhdML zOs$%u>30Rx>X(hPS{0!xe5-DZslP5AaE$vo^49|c-yC^SY`Xh8r&1FB4bT1qo$W!Z zTQU~#Rr>e{+@=4}QTtioBL4_nupfbo-Fcv7aw@aBwzk0n_Fx&hUb+#X+Zu%~580Zq z7oAh6e8CIJyA+|VU}ODqa9frcf^zS{;#r&EUvhq;Iu>wBA1xL8u7hklkKlO=N_&J1 z=Pm~>x66x`rOb&!o(hxrxbQ1wad_t9*o=v>ay@C-UCCXrQz8CkZ05N zDg@C|?d%kh%<7su$l!V#K$1PB%EAJQP_(@hOfh}+_*-*zZ%b0tPjN%eiW$!4eQ0?t9?f)RG!4xWFf!junmP8}xuU*KhCOrD6?ccSD;Hs6wF8R>rjuNr7#fcIto$DeErM zN%%7q<9>S5&r9Jy*>^380Q8p7yt{=3^lomNp6;(D(Y+0BJaQ*dV|4kO!j8XMCC zo)+vR&|;~q|CmL9TV0!FD9<4ta1<@ zqGxuvwS45THVe!*d%0w^sYGFOp_K@NH8qwN@iA+hcWn~$No&!W3aWufI^@dT*LPM4 zZyht1OC&2Rz&20Nt{d=^o~5B1m2?=@on43_O2c*3{83=n1{kGBs%2e#%mOh9e}vGdXkkItGZ> z=3W2F3~p(MHD3rF?4xbdAuhklp?pS@>i^#18;tdrp7<42{r;1FgQ*ahB1sqm5tKr4 z1cea_#NZ>nMIMR*IEhdw{9PS^2s!%Ah)>OK$42R=D48HXrN{xHQ0i#t+J9oyr<08M zk@gtzrJflcgS3;6+Hg!Al|vFeI`{Ft=j68;2ZKWa!zjwnM_fpOk-k6d#Ds_%IASzLDrS0P(3Q><8PQxI?e~B#s6)@JQaJ*g=5_ z)4w`T!eDcO&FTHiajKQKpyN-v`Yr-fzNaH#?UC-+W-Hm+AxhMkYvO63YVEH4Yl?iq z7avAdT}~g z?<+Fen>3gF=y^@XJLDCn`~Q!*_gZ!oUAG1Ad5U$}9rWIKw<7ui4?-Y;@OOA4j1W%f z=?^F?vns1H%d9xNPe)W#&0=Ey$(;JX@tHA3W}u$>TsAWgdMsb5;sM;?2EU$+qTWVd{j4J-VdPyaWZDQjBy`Nr(0U(-gumm|#Z)43@26};#H=f*C z8tsT1c`oed3%tKuk%Lk(Q7Di@p3NA&Em?nWM&_PwW~~A4cxS+s4)S26R_n^!0d%rg z93w5T6xwGVRMgopLo2(z)stPr;C=2YcT3<|H!eY_0jctKy&&hWFs}R38NTM}tyq+y zC*RD?HY4q7aFx*8)Ldr}aZi2fc_uk(n_aG01;qvu&|j88nDlkpfgM}CtjQZ@8h&{3uz2aOgaK5t`^@YM{5zMfpSFd5gt)$!0dUN4HLfey zFY`m0L32)8SFbKc7yOBz1dGmh;fy}+6KyF$7+83x=}6{Y=w`X->iv3uASBWA7ujK@ zdO24F=pdRtHLC)UeMPpxWHv^|7Y0-ECT~B@{Ub3_99?HlcINW#e5n$ux^kh8zXKQ? z&o#B`;ESHu2{>DePH96ll8>S&$LT^}#H*WWO-UwcT<;JHDR}i_!Z_j34$`g?0<$n* zQ@snWC4&JS8~1CJ1iq`eRMMrVkeI-soBDST!%{<`Gh)(j52CWsv28^Ou69HRS%Tl| z>NPqT0Iq=vc5WEflA@&#v@PF{VxX4x*;ou-)NR|kLH%yrfJG6+Lpwc;&4-m27O&cymI_Jo52zpeO0ooJN&Q# zc3nn4>ED!hW~?MxJmwYjD!YTvrw^67^O*NP9Pz=YhApH>^L_`6yfh9@LC^kfp9i2p z3Q?VKe5E%!PVVnZ+iQ^x7Te{q)%dF}s|yp`o7X-3;^u5a|GW<}v7&`vPb*l;0A7Wm zr8pVtdnYG>&GLklfj*^Rm{fK^2E=SYOfyr@5z}tH^z@76?PL~Cb)Dm;N_J$EO#Sm8VynM*?H}RQ zPpKN0yj%_r$GBm0w@ z)_(d?OF|APvtu=e{^;4^pH5<D>Ofk+-z3(f>cgfVVzrQB`sDXKKAr9DiuV+d-TP6$ z4SF5(kM%7*2PH*IK0=?W#0zHqblr-|mWmF2Z0lw8Jc#)t=z>hl@O@$O23TASlaoLy z6_cU#^fn`sX3w0a!Tk2Th}4Z%r!KpdEx1OPl3Mxm)g*Wm;RrC9^yUV{>8NZyhYElt}xSS)4q)^Tr z$3=TIabb|))8KUClodoc--2xDZ|&(7hJ64&b9vqOYgxdS6%d^f>qTqI=((>I1x8}e zGRF5RCBYMGM1KrZ-4W1N<2E$s!;_ji?6OK--w@QJd2ax-onLnrwNdgRI$o^jejt$O z&}(%OHdtUp_@e~lH%fIelkiKb*>9XLiP$W+vs*DPAiuWq{PY!Rj`5-1ZhIs|*+fRl z2YM3L5pN{BC#NmD-aOjb;t7dHVi;Z4mTu4SX@>xs*M2gM$s(gn=t4^+I73)LGxIbW zTDTbbspKLjxSFrm1ANQ~EK9>Xd7M#aGp+qjfEP)M%irf>D|2NB$pfbPEE`>{Y&+w% z&g4uVT05Ri#%r#Q@#ao;>J#opc}UK{g#dUECTW9!Cfh|6xsfCOA<_bVHh_a;O3_VK zXHH$5gwnG)U7ss?wIogd4ru|uO5pChk(iU1IjmwR;!g)j8PK^jh#405N^#X~2v1$$ zEu_jOZtw`(mx`D*Frj^_N_oS2Cr)DY6N>rgxVf2Wjz=9XYU_mg%-WeArn&@&pQ0Lm z)0-R-r3*e?#RUXQm~!XL)*!{UMeUktm`2f|*}o;&8>yJP*4R*R-Hb_|#NotsVHxW_g_ZN*)|Sd#6%j+FF%RsZXq84zal0PyCyNvzia+tI9`GzD4ASd;+FD zp_~Oljp|y6A5>|);(_x{y7xLMRFuIZQhG1Ad*`oH&)d?AmNDGE=M>WW^UEz+K#t7x z0X1jyohOm>xW2)K4;4F`I6q`0%aJQOL5TF_p7;xT<5OpwpaF*}vgT<=$QOWiG9>rc zk-NP5F1Ah* ze|^!%|K;5O=McO6?_(nQvBQN`ku>$?}(7W2=qs&5RZ>GVZwYI zzR1Hp1x^kC1!o^bh8@#l$DDn1v>Rjehp3SLT!B&_i-3>02^JlQjU+#Ouk_PG%?^sy zj?&`zxa$t-s2$b)Ob80cJ`9AGFcd&|lX502P9mBVWNb+ByLh*W_!tEQuU%WLJT@!wU0(oxv-QX5* zaF?W-b-sGG3XVIcUm(?}ip?Bs_-nse`&B$xL5wE6{UUnaz!WU%7zVwH+KmB<4(QEyR^qQoz_VCiwfp0xx6fewgH?s(phkvy!6Yi_=X0aWL zZh&Ds@Ru?md#EfQ2a(UQ`j0Q{NAC;xCok+r?+f@RFYHI}3-~85>__hl__G&wxTXD- zSsL)gEsZD3bGV@du1BC2k~Ygduz1j)m1|nh6WU4_PdQ(qCE~M~c?V{oJ#Kk0B9IMO z4xS`ac+r>BRuvFdygD=Ld6pHOY}E6vebP5~OOhTf7QWAzs2wkU>%SExcM;V)Gz(>T ze4o3DJiCYU${5!-i>B_I(}@={&p^atT#8yrncAPOl04#9&Z+S9(n!u&=>cn^IU{t6 z2tJFt&GujO+iW+F$LTl!5`C#Yr6kvmgBXGjz9rNP3dIN~hUSu8ISN7m2LY4oV*2Mx z_;`x=X3HmxeC9n7kMP2^=jY>P5mX9J?&YO#=O#{=^~ya-{4sS?e}#cM@|NKKGH|IH z!(%iPs?a*L>XT-@z8?$wqjDx!|IGK``?0VgsX`Lws3p%5DsmMkR?+;(yZ;Q}b^VbVJ%Yf`*_( zE7o#3eojh^j*RyUJV#E18n=@_4$MPmQQbD5}oe>~=Jn1y|$H23r9^ z2k7E$QZgXVB%-e=FOrvDPM(}`u}}E�@=X)3SB@OX0|K@O%R+19Ff{T2Kw$bMm zy;JI(ro^UDiD$r2N-7z`$H20?HH zArb5-TK%vqNPavR(ht>}J`CB9PT+?+j>Sh%-@`vce@Hy(zvJY`@59Z?jDC#HZ1V)d?!3Q4t)XngNNsbeTf;o{K z4MUPT;1u;?l9M0v)08?WiTk(qA0+-rjw2r~6a8_h-_Oj5gVeaMFaJxQQyx61iv2g4 zN`uv+b9TFbN>z@*TcG_%BKh+E5_Ew-i@JX&=mLKhb^ko*irW!%fj^77KMA_;{o=1d zcL4q@>i#t7I{ND?3klF|^>qB56cLV z;_gcs?fk_PV%BfPdMdu^nlpCjIYqkTlym#-<<4=tgNrlzYC=>R&;BtchP-uq2TxxG z(cf$zZ1>`$vQ%+@c*ybN0Ec>}x~IIUTrNr5kfCQ5`$>%|Gjpum50=&IE3I9-e|!3` z#HquDBJ#pVfJ*y+nOPOT-3-n?1O`{oZ4Nyuhurps|9DJ9bGMn>gJuP=sLFDxX>Tb{ z#*Rec?b{>~HxCOnI$f=}@)`xFYCg}EjUBzbzlJdqjItbrSLek|0JoW49|<_(Bw^sZ znC+o=WM}FW3VM7_)Re-d#(;DwNu4_X`2mr$a@MNzPF zdC3lJUeq+Z8C7)CQaH|HPg&T-r=}Frp*saZL)Si5b@hnO2TD7UCx29-Z0ss{aKKC< zA2{Cfmy*7><&-exavIi>eOBSLg`Bs!#dG3RdB)|xuWc;x>}Lq}a*_`KE3Bn;U#*R|iuBL7?=H?IrM|#J`7ueZxgRMStqkB*5U0y)^!@ zh>nlklScM~KMVlbhmLggE#hBBL81>E>If+4$LpFrVoH>J^giehJ1IX-qp_cjg(M%j zxQ|x^{)tbA*Bo(}=IzUa@n7tI4g;W%5#Etff4r{uloUxm+9%neiwu7_So@leSzO|i zJ|Fz3zie96M*zUSsfmcP_|%afHz~Z|bpr&zuEka7@vnopor#u@xD^Yl-M3?p*zvM7 z{@IQSe397rW(p?=>`SojhhDGisnY3cBVXMk)Wbaj*9HAZ3}2sou)ejI&|7wN6vBbZx3M}}(w-};8=bYQQoC9OPXi{U#&lkzU$U8jxMJ2uVt;Bac zYn8^68#(Aj^3Z%)*La=zI%ER;X*iQEpsEW!)Ol;PyNw3+S>XBDW ztKTQ}g$%=M|G^>UO=IX~Pd(*|F(RXhNy48yZvo#dgA5wcR@!q~FQ#MS17 z{-SyLbHgWW*7-N}7NhYcU!O5XquSeg1LDJiFnVpfMcRCqYrKGYjCh*qEhNb5fHVQP zW_6xylo44>Ky+DJGzNtulz+f*lCFY1Y5Vlw9;w5+}w*jp8Ok>KYEF zwW+WQ0xu;vOYc+TF!^K8hE;jF0uh5DLVn}-d}a$P+|;g-?{%{$^)x5nkTLFP!ehgG zvC2Y08^(Qtw^yIt4e;*0hkgPgjn)d!AroDWpAIs)dOw_OLUwhcvEKN9CV?o zgkY_;vef3z^jdp66;W#xfZYXhE0Rn>!l|eBO_`pR(88yBjPq%X%N*}T)p8!`l?A&K zp9(zns%jz{cATJ$xeHvi>(tPCW?Xw5G>Z#PbE$@3Ew_E1rlEA4ZBP8$gef`(hObLG z6>c&6LR=RMAtL1hB;NiK>P6qaYMhS<5%kZ{`=Mv-0%IJa0uUj8MVn%9ytwXaap5*3pN|v=%0A~ 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 N{{Xw7bM64x1OPWol&k;% diff --git a/dist/vendor/certifi-2020.6.20.tar.gz b/dist/vendor/certifi-2020.6.20.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bafb932bb14cd9e2f071cd743bdcb3c42b78f9d6 GIT binary patch literal 157997 zcmV(wKndeVE@q?r`sodt=F{sLrmQ=_xG3 zF8J>9<(%{QoiV(!BHIjM1R83$sd0A4+=gEMLqx0^y4pzlh41;&mS;?W(bnN z2^9MSiV+lr|6xS^;h*qns@f|@qdx>i+5c8LkSvaW&`H>l*T4TC`2=5$|56iWVP)JA2M7MD>Gj{@%(zqy22^eHIoDS~|XJ^JOBk?{BhlZyPvDvEj}K4(|p)lr2Y z?|zL!ul7c9S>z+V7}6~BMqUMSPDl2!85u=88WAImo1)|t<3>1&VgH6anwrAa`EM2N zKT#+*3f@%%L$8gWrNR5!M|@Ksi!!ZK(2zfg{GUI8ilQnSbx|3OyrwR4uLdcztRF@9 zy7Yn?bpCz&{-YX|uuJdjLgExO<4-UM_UBW5uR+11M?)V`fp;1C(I_rJgGcFQR39Vo zXrKM9ilz*rQC&vS6gk%Qbvl{k_wv(A{HLN!CNJM7&$N>&3L4OdesZa*NtXJP;2d`o zze%$i4BO;=JN~cI>;4KJnpS@vR#^LoM+I86mUYm)67+uLfi{99Wdwdl$V=11w2Xop zJe8&b52Q=$;|R1N8%;)_{+DmpAX6>DQ{tz;pJis06bK z);8K~mZKm`qe~5+{So|yEdulG6EX)25;i$blLib;{q`)qX9qx5k$*R`3W)pkZwT^# z!p}&MRm~W^Y+)l|xe^znN6d5fY@W|tEW&7{fL_DtR5ktyba7M{kMirN%pa2o{&=06 z>*s`8ra^S6qQ4;RrxE@M{WQ{IFdKv7+P`I3FGn3{=>^P`FsK} z-#%TV{9il7|IqcnUZ}rlhO+vn@qe1ah%fXXNrP?RU+e#$@X@2%gFN9E=SlP-JHQdc z%U?JIm>bAj)Y~LMHcg&;Wj`IQd%&wN4+Y^R(SzJw%c4!g^pd=z&Oi`6)xjrZR^-ty zSCDx6;5!u{JTDcc#iugzLcpWKBB(y4#U#2+GRRcx3GyWH)6pWjTp~cGtSGIAm(X9L z+)K0RD3AX4`59fp*iS)`BQKn73aQyIfJq_ivVeT=m#wv&j-(=JazH;H`wXDhY@uYrveW+4Y1!a1z9}o70&%QlQ$d5m0r_syjuRr*_C4Bqx zx0iDM_Up^Q0N($3Tmlc!{RXNYK;S*dRD&YRK(}5r-&ZOQj__OAt(T=>^1z{fQ0EdX zrmiRf&%H#|gG4`w{`>6R5psE;1JbyE%?H{91VG)tl?yW3%gyLmRCNVNHXz1;Qu|SK z`BIy~+<&v8TLVU@Dz@cb{)Oxxc-%{BM7I$j%nbG0%s( z6Ue51t$iA8()bSdYunnCEZqFjeKnC z*NN<61O^ajwhNS!@L4{Kg#-Cc{dzCzw;w_6`=X!!GU{Jc2+(#g^ING8MfnS00&#PB zOoi`t<$wLJ|1|>701Wx}`|+CYCBdf-O3Xj~`9u7FOq!~kWCal54_*6QE5s*eQl&NA zEgri|HTjx`{KwZ7uFB7o11!KC>e>v<$ln-`=c@Z9|Ed@8^AES}>+0mosp$WYufs6_ zhrjq>{(NmUc}?=DqV{tAD?={{lb&{0f@PD?ysCj3u9-;(lo0w?e_@TET7iRc6Cw zUPgJ*g7$cqmwNt`eu_SQXxX1X^yx9yX;3o6BFu_y@dqoPiEogZF z>bwAv&+>7UWFO^&HYT85byPm8dMov-D&h3108RpI`!o`wz=NykwI{E=s2@hA4?7^t z{8lPx_gj14?>F!A=g{)eMOpUET@7q`K-U*d^=hfBJ{I({=ZDX&@-^a9k%hm$EJTp# zb(z1FTNhv>so}0%Tpl*DGWx{}pM|`Q1RP<|dNBWC;sWj_9@!xe$!}%MiXGDg?mCjCf3?;&ob$;7rfb2P%Rg zd@J&pCPy%9V8b49kIev9`=|%zf9|*;SfWJ_2^iQOmPK)fam^L1%*e}M>;C+>;FgmE zc2|VeBOzE?UIvEX0vF|@?00ix4MrGRHm9Slu`pIU0}(T?s-RgL&`2q2qpY~Xsz)0@ z|G)y8PDj+}m(ludR!%mL)_=&Sy*>oK3DXDaPTvXx3-CkQ7wQR9tTx(+zrv>mvVz~= zHY`G;;^hBf{~`MSv-Rhnr2h#Tf9QXjfkr?Qec1p0b^iCy z`TS6M{!nou{}l@J_g0qwc}0nQP>>%$8u=ZRBJzD@h&+|xOI^RO;`^4;L%yTzkl#{r z{}}~`{DxvfeoLYKDMaq5p&eLVl=teyDVi-%;88j*8}YRx*E&g86Uef3Lgcf2aQ+g~9XRfBFCY zcaHzBzowV8{`J>S*Z#l!{GWase;fz%1Y-#NU;O`{@_7L9rvPq~uXOLZTLN@^z#fA9 z`s)i|{`%|aucJRcW(o?Y${+vb1Mola{QvX%&%N~W&shHi{m}m;PB08gJ=Z@<{cHXI zQ~ZCPi{2{}pfM`2+8-Oj%N+Rbmhebhg5BUX-zUCI9tY{`M+^{!&m^A!ar@PKiTl$Z ze+mBhm(d@8`Q^1h@XLG9+`s zPxY=PAaj3u4g1rd|BOUg6}^vpA@P6y*QWLNt^dzz`M=WshoK|`VE+yOv4{PS!Ki=v z|NT=w$iI!Ws%oH>TQvTvW`*x%n>4w+*hBcy>V4p){iX6otLihEO!opRok#isGI1`Jl^ky9+3viOt>p5@^b{jtR8Q4oesNpu>KQ{SJ0b_UFp z#HRr_jR;s`NKCN^mJ5sXrX)M{=_$=lsYg>HW*UH4Vj6&y@sti=fdt3`V!5Zle!9Pl zvSn+ECi1rY)YiJDNue!@e1<1{rwM$bEd~DZ5tME1b(GmjraNC02kqDf25-uWVDgI)r2;G*?A2V-rt_?*&GHpImI+R*TJf%zWT|e<1qDz7Y0(%e$0+L4{ z4AYh1E)M+sS*UCC=eeR==T7Nd$uZ4^d>3ZE%B6_AyW8F_Y&4a^mwV%=TYM)ak3>tk z3pYN_p_*(6x>a?m`3MJf&mWm#UgVKknYS-p>5@cFbskm4%}w2CJ|UU1z?)m1CpAIp zco@In3-GW_$&(uIfSdyQM55zG+_v|W)H82<)n*g(!@brP zW7nr8@w3847rKr*r|pC!!i~NawgH1l&0S=O$tv5hSA`>0 z!ZB=dwLcpJd!AhpY*(JD;!HcIGwF9Oo2r?=I1|bh+mOC?(euff?VCN9#@o$$J}0x< z4?>l;Ep=v{z&E72Y*)u7Ii$5y`-Vd**Ih~n$zru?`?+AO18if<4BHit_^gv+e6C^_Bk^j+l9_wp>~qMjTUoTA>&r`ak14W&*NCY>q6sVki_BaSs65!4Vlo-H&A=N%a=snUsmgVz zfPgVpczz{LPY!Yv$3G;mZB3ur^CS6Bnxi z=}*|v4h>cG^>If_Cl}lLY+1IYeL0%UnJmU`o2D+q(1Pi-7gcOgatO?2ps3r7N@Rp! zjW{#5PH$PlMYqCmXF5{MIr^$sPZQQ)`kr!8AHTIj+^QFDd7Nv9d6{Ifm@|F8MtEO# zYO@QkF?C(4=W`^`!}Wf@yA8AG=TW6#_@Zl%vtv%)?uvWQLgA9S+j6|?^ZnKf5ovJ~ zsd;7*dl5jk%ej$tBb{N#wIoNJXSzUBr)|mE+lg7yLCn={B<{)m#&55Mf#3QjgWczd?pXQ6r;Y#v<{p)i}gZEv&+R(m>S|8vB0L?cL>6ej(e;>F0 z{sO*_T#pprg)f@LS(c(H7Q?A;!50Viesan%Qzn8CL4hqFAWJ+Y(5W9zNdQdfG>9P@ zgeVC7CVVl}G(xAI5Ag#7&_YcyfL#oP3KXCjK$LhIhSLz#z&_9jU?DlhK~>Rr;4APT zQiYEOFytdYXb%hV%IBsiJ|*ZW9!z6y8Uoacrwj%W)5Bn!G5-N;0H(+(9ZxBLN-oo##n=928&n|u{yzTj# zh$h>Uc9#djzQ`Gq<4mIEa=k=aGK}w+v5GQUw>NyQ zj1`7h?MZj;&d)~)LzQ(jChBoOrq#AMGMk&f*m#HNwutoIQDu>+Se9)uTr0ZY&CO`P zxt?!AKSpPlXp$yljK6e#R-Tl`E~?gWH%(L@;%I3K#Ub9Gvl~*|S(Hk4)y@)KoTswC zI2jvelf>qovSX242Gy~zooYuA$3o2IBEHy}d|A%bg{3Wr5D~fkVOU>o^R6fZYNlSS zrt0;!AQuw4q{O8iH=S{8adm%F0C@JUwbJ(UNpkM4Rz_YuWVnq>ERJrXcTL)GIP5vD zzwLN?pYTGzE$KCF--J#-@&zsS$y&@wR^&UG=e?D1kwgK>?I$ssnd}3Oz+?iW;C2$E zD;8=)WD@u-pbr4T20nbIC1oWsxA|C`Ar2k{vr4!LHFc=xMNM$s;h2)0kvs~B1(EHR zHeZ7NCv(!xyqSdtQqeAPqxVJXg1pSO0nWB%PGzCU^>7_5_gcTqK_ZEdAGL0DS(W%* z0+tDxg!{w2i#oMX5hBacJSAd6$kpZPBRIat#@tox4kgQ6Ng!YVtu;4DZUx+V`^tf%jn{)ymo^W^_WOG ziBE)cU?Ua>sXU&e3I*1#A-O^F*$z%+&6;$&3Grs&t9o zpKimmGXArN06en&Gl0JLi2?R?UH2*a95fNvn_pqlQF;Mt`TA+(!(-3*)96oGn#1#0 zcy9LT&yzm|e;#2R$Bo{Xw}eTe@C)Sqe_``pas7Slx{UI)$scFi0M!F{GkNp8&iqlR zawLt?98RL&LiQ+vij#OqO9F@Z4uoU`gdIRkY8o?8s`^0Ekq`9zHnLL?^QR~cl`T-5 z9P^N;)YJn|&cQMQA5sILc$pCXM^jTgghdkAcaWV9r@^B}28W~pPz2CCz%c-b1HntN zQxwn-4kCVpL&Wz2*zE8@BN)IfPzdg50HrNp0s#vZc8EWS0VtFC5wgn*h*bACWS3Ve zz!B*i`wG}UYf0Yff~LNp;S#ZS6dGKdArz_Rus83f#E)Nu=hh%XBJ8QmzgT^^H_(^e zPTDF)4CEua5``<`=SCY`cpwYsls21Zhm=ef>iz2PGBoIg%G)XFGCkktHh+3mv@`K| zT5S0H%05$wCOb_yn_~fCHh%5^KJm3vi1(JGp!7>H`UE z?j6)qx!&7blqM#E`-R-S6u<_Y8xC;{SO&plmJQLz7Xa`Ga7 zyIT3se@WqWiF`i5y9u8VfdKvap=nFhFt-@{s9jUD#>Kfl5Xr>7oRc7T@@2{wzM9pb zm4gPJ70}jNv#{k%7xkBt^;^EH+m{JV-04F# z%e|d(1b>cU`F$D%W8d%Iuv)5DjFpFCHNzTW zR!y?GU`9ygs@KyVCkM4&@)KEdU-(p813Y~yBcLcNd@=bZP zHfrWHdqmHKb{(YjAsJ4SB~ESv1y8rQOAit&H9m5} zJYQdhcD}#Ukrx^n7aYJeV}#>mp%Zu2CC9r%YSX4r9p`MB2bXnkPsn>76JWC53uMcB zd~#g5YPjRp$}~-9PGhIMtEI#REpcR}6BbmnDrfTJRnDTywP`m-hCQ~I z#j!8&nRi?|4KAQG8F~@AyHoqiIZ*Wd36*<$g>P9VWV!a{XPH$>wRMqNhw_nT!k!pB zIrR61J;yp}xnsd(rg8N)M7uV&ZnxxeZ7C`VEGoB+eREuNw@48E`Fi2h%oy=qb17=| z_!O1uaZc`K{6MO3XgmrO*F;v*X=|ukyxRhqYaJZh0>Q{r=dT^Sy(U-*g%Lg1Vf~T8RCq7N6s@%=zh-J$gUEp6~du{@e3bykaY~z`3>78u8+F`F!w3}x^ z_Czcl2w07GCFE(0%|swvP;ZB|LB35)B1;eZ`SytyPcaYF{$8@7Wq1p9H)%+2rz^!C zk!%fn25N(0pJ5=-;!o@Lt8sg?-QMLBZ@yUowm{&|05I>k9y!>bwKjma#fRD@IR%^B zs}4WB?;e18%FUe~ah?GCv~o)y#rbb*b6sxwMTz7Rwx`8IpO+4WiIuo zMW1^IV|?64IC%0-jrU12kD^ z6U$u0)}UY0(}u`SU6XH(MX}ZOf^K)^+>I7UeszP}E+W_6;Bb>{BlicpS!jk8j%q{uuwrP-kE{*G(t4x-5C}3w1Q_gO#uCeQGot*hQ zxA!$QYF7%~v|FC0qN7B`ll#8*`~mQYLyv?3M{Li;&>#4!v5BnT820+ko^w$N1nPWk z1D9r2VRJlP%Z#v2I)fFeH0vS_!`n$8A*T$z9dDs=HoA*?I=_f>urbPdH!~l|v=RhY zR#v-kXN#hRo%C{DXpZEm(Qv~MK_n%1p9@!j@aL2Q) zF^MU*nR_*?W3WVJcUNrEW9*0}p|p~~V$E5fySQq~lWJHPR1^+FUV zpdrIO;tqIJ2Wb?GjCP$ zUGE*iMt&Nc$tn_N07U2V^5zct^=BpWmmc6BMd+LQ{L4tY1fRa6Kc7yeP<CuOxzO9J=8(Z^*0RGLEya!bbqe+@ZS^S&g7l04|)PR^qAv}f+LulMa zQFxe1gzzvHNLDO{nwE&a2dh5uA}f97ag0j9Lr|84=I0OqU+|EgJV6Th94S6axS|fH(kx@yodx1i>Bh z6nPrJTlbyF>yiyfygbRZE>^Foc>Wy!W_ZsKsDQsGfM38I*Maag22jaKNA;`#VcJ_5 zV%U$sF7f$~=fIg`>z3Oo{HqYgJ_}({nEScj=zs_yM)$%!1_5Z{pgDY$psk4sHW0zX zn-B)AbD?$>g%qe1zzlYW45(rdxxLR`gbaMzO8T%802R&S?~DX*BLl6p577gy1M|-b z-p;`Ry#QqAaCLD7{N)-=R zD0!k?;qkPoy>85gdpD!g=BDcc6Ym5wfBlh~tSV&p=Do%8NE8&lVH zig2WKKExGjbmTRe2}U`j>helW9C{onG*iy>3ebQtJ~K|2A~Dl(xb|?pdNc1M6 z&zbkj=gBlL&m}%Z5}tibmXGuOCPk2?w#20mzbeoh6 zE}0i&lhQZl+F#ZPw=)CrOjzyWR$cnioDkduzYw=7Lc4jO%J|9N?1)rynm#ZpJtvPd z{D7Xr^R3ax<932X4Xtc$p_#13%U-^1ml><%_I+bUl2NPcHNRca7i}G!aGqhY8(Pnr z22UDuHQTp|h2;p^hWkMBhIY~wB_U@=r?MwUYO*U$_U}IvkBX=CeI8H0xMIBqeuH=X zT^ZiayuV8Pfe4T!$$XOp#LSeTplro~iuIwrn~WfsGtA?hJD#G{lz5yC1Ne-oZ)@ua z0x>{mkAyh@7W>>3kEb4ha%zeKWsAY@0Qfxyo=0;u6vHfF7x;Hb04Rl}pbo~vDNaEO z0#q_k=pg}>J4HXJ0Q!*HfTpnU^c{4;dq{0SLl_R)2^bt^2NFKSp*0`KYl4O?AiN)H zYX|Ptr~Z`$Nc_p#eQSB?vi23mAzy&p?6BirCGivFzVK&y7ys%Q)jj-~o@dxvXV}_Z zm&|u(*k6R51o6GXM}Wk4wu8LW1@l$m8y4=guZs7D4EVZmekB8&_wmTS>L(1j zc-6V?AaMvM1Sd5+jCUN%`qJqf_#t@?H*66e_3`2;)yev5Z{(S%oxGjM<*QB33Hx+; zu}_8Ihc_g?sAsCOl4~io$!arS@Z)G6`gJl{)z|B6mg||QO55$l!(HpDH8xw`kLX%Z zuFihxNG+0Xa6ZbSnr*1q<23%{pSNSdbd2!ATQ`FVs?=)P%vrF6nGJL>&uyJxX-VDB z7Ix!r5p3UF)c|vd>Qtc_Np8nZV3S=v$@r7e-gByIR#&iX^UKKLPdQLS%y=a-*38^_ z+!-Ase#g#c9$U={E?GrO+Q@W!6EY+HL-s=Quo6YEZS)v%6avgrc+s4jvi zDt3szw&G4~i(uED$FGK5Oz*b#M-QrRJ5bp?5?znQ$-OYQ&N)kh!rd-d*65{fe}z>x z|E;vhOXBaIC>xP}^_p$FcQ&hqBW^F$*;7`VbtGQXY@uC{1I3ub{Tf;0i%{L{HL;aF zVN3g)F}3h9XH)f?qtTV+VdmbJ=`c*}8app1bP%3qYdhW`wYhWLGS7+P%o&%84AFF7 zF5KkQ(|KMBbf5% zeQnH6+YL~G(aAxL``TC$qOkM$B4~5H`x$Sm*S&vxN#Vtyp8}U3^&duE#+#x*7_#3)7og>E3|dAB3Ti^Iw*yGxJZLlp zWe_OzYGOTzHw-z&A0EI!yGCID|DMG3Q0R`#`Oxi{CZ;|PF^1xxM2$Ttg~?z_htOIZ zKMrs~(J=-sv?LDE477s*aEHQP_z!&yL@G(cb6$XZ0MmYeE{X@y1ruMr7;4>a1vIQkFwV(>iD?-^gUr*cZ5astn4 z;W~)piKlzR$EP`Z+#0darnO&to2Ur0ez!z<740W(aNf?gJMqT4Kw7vQeHVk(jjQMD zltltljfB==_jg8+vi%~Vt_OWV9{NGhvItELl0Y}tYkxS=brwj8l1MI?}s*9xW>3wlznj!*MoDXhK{|R8+nm$s1xR{z4OkKx;EU%ZrmSUENBMT@2K<%0Av?#f{MgV~-Z>AtS>vq^}FXO*Zh3&lNBN2kaspX6;oa?EPc6I3T&P=uC*#U{Uqi`S= z>B8WWgwCUW*0Ni|=y&nXj*cNNRSZEn!$HKhXmPvx_3pZ*?(2m!?)QFdMTn4cN{XGf z+TGhw!l7BH#z8kYlRw-~sdbC-d$dh1Jkj-=C_l%$U3FdE)O;Qs$Chu@W8`vd>ieA= zh|PVi?)F?v8N4hq8+L`Vmy|5l`8n5Fhk131b_cL}c=pX$jZ8XI(fJ3Ce>8U+H)eUe zb<#4`=9z--Ra8P*$vqJzpmomzw9a(Fe&F%HnfMzn*vEH}j(ouMMCSGVDZexOxS3mg zzn{rBXel&>viR~|GgKs@ha=BI=mH`~~V9GN5qDpS*Q!){{0 zY0$wI)D$zz%-grzFg_gDC`MK6{a)X1EgkO>tvelag^_m25x;p}8}?(uU1GA8mu)uT zhAdE5^nA@sY?WY?z>>E+Uth~!DqRG7=r0Iw>}QijT_@tayP89?H_a>Gw##BZvtq-S z;!JWbPC7R2Q`zjdtPQHb#rpNRzjj#dUyQHTn@a8L01@tvs0A~ ztHr&<<)SwPqCOBlx!)eGyGbr6D=lvZvcC9f6BHLV8^;Vz9VF9t7x(ClUhZXsv0L?= zuGRB!sn8%eo$tz`mzs?+xe#W)QWqx=F*STMKPtAnH$s{rE_WHd8u+X%rE`7g$sN{i z`GnjZhZzUf8*#4DI%hgVan&4`l*JA?7glt=t+1;^mUu9@DjMC`v+dcFvqS@l+Ygf= z;TW@X>{C5X76ythHRUYnLVjH8DTm0`BrdCLagX)OA@|f$O|1!c$+!1zonrUv!7TD# zAkhxPtcZ)Q7v4J>HQ}U(4U0!+jYtYP_xW@mFLW-RuP19--d@=;wvSpLzYlU)kG00f z6ydP-%l58%=f2&n)~hm^Y~rTP5r2MPC%Y?sSoF-g-d}pcZSEeJ=1y-)Y^$v&C6G_5 zq2l8+RWR;&lWA#14U@F{&ypqlAEHb6&l08){zJ+{knm*MXCJ=gG*qoz1dZ8%jRZJ6 z9R?vRw8z5(@qqazWr8=VJb2E`_|Q8XNNK=#0Bu17ctQ>+49z_VRRA5#y?9D8(A18j zze$7_`s>?gWa4zG>kj_Tj1)JpAIYN2fqdObo9` zL02^v@+D}||KVY`;y)$ouBJZw;VC-@Ec8KCe7!@XC{j@TNF8%2McUrpLqnz6A?<5k>b7-4;|B zTTHN5Hne&RXZ5~Bi+p07u>CD;)UZY+nZ=OZpe^}m?bF1SFrwRS*Fcl6vd`9{SrFDP zlg*C5Q-Pf}%KWksqvVbkDhH1$>q6M7h@y-ETfvwUc03wJcN5p=rt8#PJDUNJpCXmD zD^$L+f}tORKJISU<79c`Rx}wz^I3R9_P$^2&>cyukPhp&hb*W@i&!IdG{q!MWowo=^bI*@yXDP2aJ`vb;r<4N>wKl&(!A| zZo-^aZFmcZy@?k@xj!CndJsg-sq>MAaVQ<#yY09rT?*AMpalIUH}!-=#3>L6O;o7oto4Gs>e$>l=R>2Yf@nj`aVrjbL1<&k$n z6UR?cO`lts;&0V*jiZUTw;2NICx?u~hkF($;%b=hl2bWZeF(Jmr$zUaR zC#-frLC~~5k;O*J6J@{;R*f8a{&KhtT_E#w^SY>QN;h0Hv*t#+!OUjs`ioiB5R?40 zpBx=~!E7z56e?E9Yi*Mh0RXBbK38Ba@cRi{C1B!hZnvO6WY@0UtptwrX-44gu`rtl zx@}90!q%jOozLPjN28uZmNj-L>-=ai+|~&1gMJ?Cf&jW+WdLW7L9aMwze~B>vcSbx zs|T)k?u*p}`E9d@g|pcHIKG+qcp}Dob$(~;0kww2TntaE2lCED|67T_J~wdPua0+K zoZY~Vr24`=T@QG~H-0uL2Ab|F(J>a2gxSq&elCSxPglE5JRXp6e;$erR|i6Xo@43~ z7n3RF*YH_oBK~|@t?1x*wr<im4M+AO{E(ZyE_lwjQ0DPcpsOEwnH=DTwbblbf$Dl$6o;?5_ z1y5N*c+~)BpfwDHGoUgK-YthmFTulIkb#tmiXmfzP8l9No*^HU34ahU5Ey~pd5~@a zei)NK^lQ)`PW`tZF(~E>1~oHJvX8tT6o`Dcv50vFkK2P(FkHY{Jk=RO)#=||-=0Z) zXuG?6?i2H~ZWSG(zMO|hf+G1i)*e*$aii{?-}&)H)&hmvxu7w^t3N*UMnGVVngRph z@w+p8wqD7d{_rn+vtE(9tqt&>VV|*;Q*_ZFFOm0t8WyU(yZ4^x@;U4eI|V)LwZz^j zjf)?%fB;=Q$>xiGmJy-rW?MkL4msC@=6br2JfBI@SticaK5n%STK4X`fo4A;2cU8@HvF~^BJ$CLfZ{K))sWE@Ki=<#wcV`Rv#%wc7j~O+tP0~5 z#V=`=uEVWX>~yp75TTZoKwKJ|4YqaJ9{2O3Dq`zfk9Oy7dGGC}yel4qI`d*9Rt8<2 zjD)Ojb0^l*-Fh7%gg$8#(o0WsYkk2_eLfe|qZrS^a&j7^ZIxo=?4a(%PENbqd`7tk z4%Za1I0s=~M>UDKiLqm~!js3vy|~j!9-}1Jx)(h=w!*|In{~Ba&|~6O4LcX(hLce! zxtEYPz1m08!9vPa9&xjTJ_YO=--2C(@5?2{uK17vyJI$IH$+^{EJLMI%wqT1BAiiY z;WTrv{WxKR9Ek>cF%M#%I1st9OH6H!uW^IfbmS(G9Hv;Z=Qj_6P7;Ooi=%p^5afk6 z&^y+QEAqx(8FG=u9N%4+=68Gz+4sJQ3i4|1iMp2yf-|!VPCQviUSeo&|HTEt({sIW zCwBwCqb&j#$H#jZ&gV(gQ>P&BI^)Kpg|tw0^@xTuo?iAG42KRgH3FyVi>HwQ3i~)C zozIKx<@VuM`vmfO{v#?r%eSIWugB+cePHhA4L_VG@;!F>o!;kl*=;wwL=Kx%&SXTz zCtQLRm6kM3rL3lw&qjETNqctX!UEHddnPj#pw_B!q1_aP3TN*$owH9=_aT zqQXUrj*3Vu$RiUFNKci#?clPs@-bB*0(zI z6B|cBXIN4xoconIuui7wqLT6WP|+J@VCI!nL_AS?yrXIpx=EI+Yu{gGL9ejYR-50d z6v=RjJS!B6Ef(IEA^O|yloUB5Vt9Wqx^dKw>w?1kzHFDL#gNdVt70Cx-?u4IukSYk zsq%Ho?X)VXts5^ZCTr)?h1y?@tLOSZbED8~3dal6>PH@mZ|PpZ_VasRzMbU@9RDw@ z<`wh5sN&;AK9)jpn&!A~VLrf8cy*qJ{`?FM9T-p)8amL&@lZ^{;~Ff2&WV5*;NF3U5BMQ;E`T2S1Y`*y69D;`h8~Roo>2x`Jx~mm&2rG~F!-+3goI8Muv{O$UIw&* z3*cE*gu$~fc)Ks21}OYOvyfnbD&Z;F!`*_8q1Pj9GXrlTfLh^QeH6ZWfPVNw05$j{ zs|gAKLs+JtFY=WKGabH(`;#wlUqozMKIlU5YO64}d#81B+=Fi@YdU%rmU_~LamR=DGK z?#{Xfy`XzL>&ZHR;y$5FmbO)mXc>j=Fh8j;2p!eYwOK!HwTq4$2c=_UQ@rJf_vQVq6@zXRz-E)B6nY*GYh-V&c!uNz=JsNg{zQ7{@@!Oz3A!* z6|7eCO}jqI=GZfv?#1jtYT_2~W`sYJ-P&}uMdw1lpBZ@iGMH(tE~2UkJ!&B&54>

Jb-d$wLDyys__r03q!bd!Fawc4iNgJU6Yk19^VRI==SGHTDp*7_s{oAC`oXNs z9$v<((nK4fbHPdke~(B&7?{6v1`u%qxNR+pUkGlz2nc1W89hta$p#!y^+}*qa zl?^c6K~;L>APRtC&udUCXp)%#Dgq+1$MObY?I9Jg0N+-c`t=$KX7eNB64sNJh|dBZ zwJHkcV~67bIs|{&4Mk{SOCqo;wZzqsx8Y0Vosz#1qlcF<9H!?e>5ZGC9}nZSdg(`m zjV%1Lszx2P@-AIQTDN{YiFHkFUY%(Y&+QU##lL3wGCcw_6s{^?HC6aWb|&O?Yx+lb zCggQ%`q`Z+Nld!VL@1=b`A(e#rdJhK|3p;^exgcZ%W^_MGd6SD{-a`x?FF#Ld_e&g;gO_MFF z&BRGVbAd1D_FM&P#R*IcJ-3CHSQr8JH;PvBQygzG3khb&{mj;*iMcpj_`whpXMJay z)pfR~H#vS!G;;2gd7$RfcpuF6QQcXQA?@~oN?;z^Be|*5X?5Su0s18S%GNTKw(|bi zPz)`o_xb#?S)-SAIY?qkHP?ey#AG(vt|n2bpKs<4xhtAWr?XWR&+?--%bHuRF4l7i z=*G>(>muAcWnzB2#I!hD1d~495?e;!r_`l1jdZm@HWw2goBudTd>&qXN!5Ov@qIVX z_vqUf$6Yx4P3}fLUX;N2@CHiE!V8n|JPC(35ifvT3xuG-lp-PH!u@Y@H^7hx51Lkj z7|Gk=^Vw{QCy@>5jnqeJW?4f4g_^i!u@yeWE!s$Z8GkMc{8l@@NzAVbZaY-D)U)j*ZFKs4SV?1R>!INLdD=S19ytyOYRdpEnMC^Io*x%#@SX zbbG*P(cA8>Q3=iUzJ&|fGMBBD669bSt$5i; zt3)-IMYss!y2^HkR>0=r{nDA#(bducS=VYYS**R8FIm;b*b=CP`w=GKy4q{y!JZi` zHVgY>*cW$7Brq!4`~6CqP_DEW@l}FMhSgDGib}Eew~SeDigGt*i+(pd-qy2Se|GJN zI$rbvR&H=YCA)UKCqahYevjn*_``cFcx6g_MD{5R$H~u^f0l5jYW9YirNUg>fzC&BG-g))>@;3g z;qHxgsvTez^{eFwc{LrqT8_jgYh1sXm_D3=BB-6Y6(Yp);w6Xy7dO( zjjJ36AxplI_$@81%&&6r*kF(^cbK2uV303&n70k4`0m#BJXVv)g>uGYM97+=yeQ$a z+qQ?XYg_JGHo#=-L|2!5XLe8svYsvH)@>`PV(6s%BNsNeouTo2%@{67GD(dIACY** z8OuECk89#!t?$HEo8|G+o=axkZzo4w=t9AwTzxzi#rf56PHQrqfq9F>%H%RH*Mxo* z-K}8~fwRZYsX}s;Lyg;{o)=;6oCM-}3P~N)%-w>VxGvLs<*Zd_)B@S<){B!j-(gHCZ&DNSkA@7|*4RLu-evx2-dD<{<()zHW`1c{*4s zX)|56M!{n`VXN_xCw;4Njzu!4oO_DU#&Rb+`k+rJMy`mV+-b!SAjf5u`kX{kx=YdK zMqBGEn#LU3cg4ee?Nof+k{KgzcjJ}=t+j9 zH>dV79hzAj(fz#5Pd81thlji+vLicm0qN)BUcr-Yd~r8R^nescd8_W|{&=j5^*JHb zA|>{RLv+#Oc8+Trd6f@)V|mv?oL10k-mh*|VTu%(G&?GNcvO z;k;5>hWsu5H?!f8E$NyF!Lt%dtrXO z$lD{Y9KxL_uS!u5(B>bfWyC)~%ZQ((WyHt3K@9s%N2G`25bhPQq&^1+B$c;3c6Zu0pAFe}a}t zI^v+(&Y2H+ZmexPV#Z7m#paML4*t4OiUh?w>~P-O>vNgN<^mNrgIcy4Zh1zMNXJ4z z$m5lxIkla2v6!@HdrmiuL4bE4;WEz<6e zl9GAz#VI_VV>~a<4By|aER(|JIq_S;khF_-@$qyaP z#*W3Tk1p{PpSMA zBs1No434RP5>Q`->*j(Qa!Kl@tzUA>&FRDWF1K4G`>bR(!%&O3*@jb9PKTvrW0Hyz z-y^`p_zO?0NfnrBfz^kHJgmj#0A&HWabwwBuAxYDkpMA3&c8LNHkq8x5~*U(7-sqI zS@vRJRM>lO>f_q$eJ@>6@ZV_;ViKm;S+>b;BF3vNus^_#ycYh z2A?IigpK($8VCfg4sBo6U+3gbzhGUtjt1@}M(L!1 z`%{FD{RCnbozLHAMl;@#oL{BZwC0Q1>6bd>8P;YXTIuswq18uo_7AzYT?DgHvD-=z zL_sxb=RvOaM3?Qhs_?~1IF@F;Q3Z$or^T&Rm-_m*uA1L2bo|gQ`TZK;!zSOL*KMym zy?&Jq%Xr$v;q1(>_FBfg86e9+=W*uwhfHl^ukDLAck5LA`U}7txwmxkjxP3F+5yD<2D&cH*|C2EYAzy z;ILG@;K!+jLOPh7;SVtbp>kZi&Qiu>j%9vhqJsjkZS0IZ_>%#P0N-J5H8N()m{bauudg?R?k5e#leQHhTOafbyoFf!+s=}E-4 zkrWqKGz9N}vq0cYKKtIQ)FKM%CP5ab3j->|`H_YgBM>gF4^A!(V`>h3TaKvr9IakC z4|?%RHe8UatUAs26>6IbLeE=xXKF8$2+Z)&`&cgSs*iSyPMX^xnadK+PKZw4h}AUI zI&~EQHSAm^WM4SQPiT$ZF@rmPY=1M&c=>+~p1r7lnBSYizRg+p$}rp3^|Sd_{@uAK zOGDpN+yC0>-&pQHEc~gG{COk%+XQx_xOlMh!;MCU*e=mZ-wtgFu{SU7`mXp-Joyv- zd`1a^?-@Th+(~ar?V5Nh*^`I6x%yk$g^+)O>27F)z13v9Nd<0@UG9!XCj&RHF6Qt0!+K zVj_)FXAd7`kf;`)YjJ@z>}oMtbfsZ0ta(#4H-z z--*b#@+|O^P0TNgT>;N_{dp=)2*QThflh>$@rOwO$_mNASnH3|^H9U^@ip6{v!SDS zWf8d5J-WW)1`|#uZk;Kx_sIJp5pYNh;Om9u(+6PPDYQ{2?J?bLlRN}9+um+wWxO=R zuV-Q^XW=;%gc9&ld8?OsSlh#zG=ZVs?B&p405cy9i?0>L6kL~VIt_0L$8p?>JIez` z9xk=)y{vllGVIlvN`EE;IW9Gte`(D%kS##gxie`#7C3!`h8+;ygf}35Jn(FyX|0fOcM%yHh;19M6h5`Q4*Z$?uPl=R&TK54f->vxr z{tQmwPpeu1^6o*$_6;9S-sUCg-d>K9`+kfje}dsI0^0r;-;RgB>f=g@UG9_Mds2hg zUy<%lugY!bZZHC2do65NM*pj|I48YZxjz(1 zjQFVvnZ|zFv<1WDufV>se%-YNYZni=a{gT+gX3R}8Nyf<)qHk?UwMS6%XgjbFJSN6 z((W{(-b?VSSornRu?;_dOx);Y`QqN+_;>oGHJNG)zG{2%z6%?+kl^<1iMBfqo~x~D z@wK!4w`YFHv}@d*c$sLe8e;yCd&rS5sL4IhXVW53=gjjj2`-@XdkBu@+gV%E0V?%{SU-_-kw4rR-!z4)50 z7;er=(+X&GrJ3SzyW8R_J*MI&W~>v9y0yam9hfc;qPZzH7zS8mb{)%+*YR>kIw0(pUHOH(c_8GI9xs)0fghFC}iV%?1B2K++MX+QaGcew7%Zg zYC55>WelP7B0kUry>beVM{LqHS3+(WX5xU8_CPVPEX$aVgQ?3e3H8916U1bx$3Jel zBrmS&gq6aKj_J^!3a>n0kg!Dbqm)jZS{5kl@R>Km~aAgBjd%7t8&4! zXQS%@<2neT#dq}4LgV(vmdQP6{1pcLhvhx!zP4EpR4FN(WBn-H`wNS=OE^xXxi~3o zp2e!_=7&b9zrFptdQf*CMp(bpseW1Z5jK1@nMh6a&A#*X*p>`mSNuOwTmJ+g|GRhk z20=gGh5nm&HUtt7NKzn4f(VX57)aq1Opzc2qcDOH+g~$;QrPF#+R(oBqhH#KgB=NC za^L8;_=1Xe=!)MF3kB~zC^7W82k0BoNc_()O*6a1_3bRW!4in>f(!)QBdQeH;~?xU z&Q0E?FcJQ%(N@VGbH#7C+m*QQ5mvjOX!;fXVtAjnv0VuHGF}7Tk&KLX#Dd>*FCy?Q z)OhPbz<8hSLB1WoH^2TG ztCYX2PzLklzCAzDs6LI6s8t?fzXew3dczfyF9DVP7^e|BCpiyYIMT5-m{CdDY{eHjm>jD4t`~A+Z2Ymng{r+4?){_~WI)w%fAY`I;Mgm{xu_Fop z(zEkZ(xFJ#$lP_&dwj)`^r0&w9*iPRWK13wH8lA?qCZ@Zy#k643j$R~oS%C1(LPy8wzGNZ4pfky%iFTtddP@v~U^(x==G?}EXU66d36m^~a ztC^e+NPEbOwTY-mvGG?~znTX{lRPW+1O1A8|EdRoY$%$>E(=v>F<&EQk)swo7}xG8 z-SgPSxe)5nOS64965^JRO<%a9?y31v73Ea33*b6EmY0E;$5^kv1!b8}&Y3^Y{QRM0 zWwqChWoR#9XojPC{sVAGS%M{hWws%nQ(3{+-Sb@>T0Nm{b!b2}qxp%}L zi}P()?am5LcP*O;vh!nqOd{@|NM`*O@B_)$t{aDsxtsB&xrV2|e{_ra5-#$eiWq<| z)Q-0=H&jBFmlvcZSj7DVB zyx35bGHsB$@@5JsS1&hNF+x`quFuDK5Sb|qTKX!5YX{>2a=RJ}P~i0oyBq>xq^ZDf zo;_RKQFB?zjovgWMcyu9jDZ@}ju}1%wMO2JZL7WA&|65c-t7il4g_yr%|S+9?A+*N z*0%Bz-Z(j&e>*p6=E)yI`v(`q@$!f8XrJ9*UfmzZzr}gK(Gv4NcEu0NkiVVs?`ca4 z+WSjDd~Zt)!W|^jH{3zQu9*zOw|yq@_S@Xuw?74NnAj~j!}sJXB>fY5;OL%G-Dm)q>{-w)poO*{ zqCLmCT^CJvhz_D1-s88QI7Gc|OOp3+=j2_t--mMiD}cYls%P_2>oPt}iuUyse+`gi>OtIf1Eg_FKTi3an2l&?=BMl}URf4P9aRF?eKv(xG@ znd!o*^f&DN8Z~FY9=!g$+co{GURCXDuWI%su+{JwI&`kU*ST|;To)_^{6WOWgE{%H z74)5AwGkn6n}i_zQN~@C2ClZ}d2>F&(^&;M>PT0&!e%&cXhmxlEy_TSVoa)sL>U5_ zu(DvGdW8^Ag-Gzv7d``XoS$U)&}+~g$(PWDSp@F&1Q8JlHha&#!j4ytLmyUfacu7y zOJPUM18p>!&X>_G0KS*Zb6i{=5NTWkT4HVm>?(G3q4iU(<9APBz?UUdQ7whuV5K2M z2Db;wT8^`QvsDiWrWZ=%m6oC$cj(99sGR6dZT-`PFUy5Wq8WL{1RPLJ?M-K1^l{1N zVmNbDpHJrY0C+{7K1*J-p!=0~Q8ZRv^hnrUDINIu(z^n_kGQzpvuGnR;ZHpa+L;Fi zP0=BK)}v6%mle*BBisg~c~>Pt`{-HltU2=(dOzXk^}x3iS|=%e^YbsvKYd?--}%D) z)At4VycdC|ReJu)2>xONzs6rqK9j^*xppGS4?)hL%O%F?mC5y}WKfTqi~4$N{ezd# zyn}U^?78Zd1WQL-fXjtY#f`X#{;lme5l#l(f{tOO+8MV6fF2K|CG?W?U)yZm3L3E7|wc%x_)2-@ZY|WD(lzdPL zCF#;%?<{w1Z-7`Y4uMA6i>C4dN1oa8v=0()n~ zKLX+Z$;*BuegA&WzeDkcy6D@MG<;h$;BT9)eL7Y07QO}VK^E~Ye?#$K^`HiCX9y_T zy9h#X$IB$$@fLq~vu=pE0q>r-MRt3z1li-?4IM-5PcrzGU=H0aSkvIGmP7Uu;1;hF z_>P$<9&%AHAiy8d->*N44Mi&a0G8dga0SGlXB04_8&Rd|=yd*#8aNI^c(s zz9wcRPWs)Dcm}k)gl#eLxm6B}f5Mz2xv{dSNk|<#i}K4(Cak zXx+nF$)E`-ig!#XB2y+#dO+&b4DE^b)#MI)(Ph_m9JZ}3ns1f=9Fg=8`>(S1WnH)M zB@{`7^dXa(@AzTXi^uVi3>^_CX`dNlOPN>^SRmk1BUgG7yg@cOgawvOaCEt&w}qP~ zrnc*(8+?I7j*-oiDvPDl9YP{Pj+uJpBq#^~1-0rjUmE&xEw3{?v0}|WIgi4-)zrcZ z8AK0gm67)77}^P?*RaAA*KcI8O~6Kf&;aD1re1k-%dLpxX_=*6*IUrX4^GUXQwi8~_+ z$_CS7_H{k*=?VC0=!A9-xWALazviR1rg+l84N2wgLt_s<%UD}@+lDnYgmB#XuKFeuKb2#94`RuRY8TjR(NZN_7Xc2=^8Q6g^1nG5k;y$FkC@`U- z#t8w=gp{mmoNPNcm*av|i-Q7p_UuLnh=YBJTK5qPbc$EPEoZp` zUJHbGK~Gw!KO%NgE>o7>ZevScO(H&Hj_Y<9m6maysAClpP~`8^Lcp}nXl48Sb%1Ti z9?f2R^d)nOJ&LRbt2d{snEqZ#LC1`;l~-X!fu`}`sbHM6wYZv%HklX{DZB?bx2r5Y zjBBIWi83bDINp>nEsz^?66&17xLP@KSUR9AnVzuQZ^N_DPRXOGljfi2OZ^DGzkkv< zXf=ak4w^p%{YOMaVGu?@0wh6V`xgPD5JpiH1fd{?;TTMSI8J^(!D55J-QW`4(QSud zY#&;+f!zjeDY8Rb0_{O?guW+AC7;4>itY~O5VZSwZ{c+C25ky`H~4{Xe;Fm$`Z~BY_wA@zD%c{1G($8NzE+7GTNeOX7*n=rRRM^G~xRFOV)weQ>Pm$1z%^ zc$A-}Y~yF5ni>@~Df2G8)U+E-mL3P-bR3&SRmLHL=}}Ijc<-A}svg44JmJ$zKDvaO zUU4-QfL?2y8(O4`r_t(T>s%!iUX6V}DataG%8ZVb-D-x9 zBiD!^kI<>61mcEl4C{De0bA%jl7`3XP#NyCv4iHE1XC1xj0tv$0Y^^Ki-$*HMkn@m z#hQ(Dp=U5UM*i}|3{e3*0~#5;;8PZPT88`bFg7_RC$|u$sVKB@NCN7LBl^|%&bfzZ z!IBW;?1aSmsrR>51o%vG&4Rs=S5gz7GIOCc`tnRPH|}bTR%QlLJeS5V>W2PZ=MuJF zJxvLJ8uNjg&0GWA_P~oysJ$H48BcP+c=e@ndvEr6vNA3k2hy=ot;pGG^KVJ^V5g;D zy8?l)^FY+~a#R(EEiZ&%jQ15+YvuZ2E&H-=0R3g2$X}+KTq!U@)H5^917EE!SbAfR z+rDtx-gJ)6+kLYTnapmKjd0RC#l)sr%CE=D$Y79Kl9@Xbs@W@mk;o1Lm_b#<0oQMlbsMt|SVh)-5_n3tkq>9}0gT3C#dm>-mY)OHBos1*mxC?IH{rP^xBH9_Pj7gIQV<$4ioUWUYEbmpN zk?>mR5#PaSRHgE3tki)5`26;t z#NChs&ju6AcH8SMJn?{hy)wtVdrat^nu9PXVJ69}-k0Q;DD*WN$;E zCmz%scekxg?WZv#fZU?(V~)eVc{~|ZcNpCkQUdjvba^KAS1>i=%Q@-6m|Hi7ep|U0 ztxt@~Ku_xe5(fz2`*W@vS9+!Mrxzx2k6!OGL)7jqZN!B>tZ=$9%6Sfr_#6n>S*d20 z<;?IPhNZuKT7ZT-6zU)=FOTD8aZ1a zmOPHZQlX9uJmb!09%V_4sc>PiZL^VxDmi(N>p9IeJFN{;v+b$AXv6c0oI68u&(Eba z?=KX!!)67B;WpQXc5zc#YIR9P80E(Lj8)!LQa`x%;<(uejugSC<}eS3hfmyMn!ex! zq(34q0nRGNZE?+n(9h;jhN-7LqpqrMv7vPlc3BST%z_(Tiz4(!Khfqcna2ljX*{%W z>XWX3&hv)!di#CnOs>d^ofiE;Z^s@<{D;JSG~!+Udi6UkK)fA`wqu_N4*uI0`$oh5 z;X*%13kV2935cK&6oNsFBuE^FaDt#vYNKWZgu)m|e(J(W5`RW-ksA^26bDRpQS?TM zcJC{4r&Lt9XDo^OfMJp-~|iQ1VG z8gESR7qo1b&AkN$+X*1FlQS}XYw)7|*}`bI)TH9~l#5(a4&8^V!;QP78K$S6KH*o);Yi^~&zH}gIV<3kJcF$= z9~lx=7pf+(b{h7@P5e7;+?jtd2=Jb!xi50wi{4E*s&U)RalQ)ZMm})j?ww*_8D_Wq ziE6vtqC@`s{=={7k$nIn|HXOpn+f{L|9I@qRG&>I`;Q*``=d(*1D73uS)aH&clBYG^o~V#9q@#M2JNYQIp3WYI) zkK;TpaEE1}gx|EtM*-W5vNk$a;q4(A?)<7bZIGU|2y$}JK3X%&#qpviacy=>n}m3$ zHTG#eL66p^q#iv2w6(GNBFC1q7+|N!eTitqJy@{pePZUcVv-QkR2;Myd81D z!RI^`#Q3^X6yUE}D4$Lz`PcDg0K@1f99JevKA*EYKU&_i=@ua-VMOBAzm4Mj+gjke z#lKW@w;4_%hx15Yv?W5ivN|7;s17~#sk1=rD9`*bEl}Jf_T!SSDrza`QmbGl;>(RE zYATh1)ya_~DA4;>KXlHksUQ59H<@RqKsuLXbqP?pn6t@*S4CXl9lIB6K-)xP4Yn!Q4MGglomGuHtc6g-<+^t!D@~cI3>@o5DkSxt+zPJ zkJV*l$78RGBUEfm=jIdfFs0WQAi{&HWs#Gv@kTkuF`0NnuUQUSB7Q2TOGOZzzjQ4h zA82fzSN}npoUT7fgiO5`odAax3}puz?zn?^H{k{L8!OY9R}&z`d~CSd77%5Qq_rSw z>#Q_~tUI0Y^GyCH_Ld(|^;H4)-v`hC%7y+0oIhUVM?D^eZlFnF6iHz)h=K@#QW!)c zFoh!B~z^5|Pfw;>Vyc`jqeL2_>` z+D^saoA3`2G583fW(fBl%!Q}s2ph?f-2l~X{qtAyd?ORF$xS8KI>wmMV{@z3ByJM=r ze>PCm+SO8D2a3MFzuR6@{mzVKF!?VN#mjw-_g;hDfe;2?5=SQ=)7U`0^Wo~9Es^+m z2w{02#P-qD{~x(fqW3B1-7WA?OtXcO-cpn+izK%tP%0unU#e#V^~oBcCUbpz%{T0w}^B;}^RJYj7U#yA;fu|wSL>^SOEYZyflY3+;A5M;>1 z#iY9ngWpHv4ke>|xR>f>lII_WUtEAs=TUqvW&gplnx?RuW`{app2wP0u7&WLxQdV{ z(6(lA{#tKfvia1~AB#U*`|AY0`iwNZllYgU97c$5c*+>AX8OoXC~-@vU2fiyA0EI4 z_~SEn#p7f$B6L4L1vp9?v#Hq)7(@3SDQv!4i&Xm;wRE|npUG(IF5MBn+87;Y0El0X zjXlU@>|9Xj3f}80e#O&p6t-Bd4js_Jn0qR1Sk@s%ci2`*4<}-1=>U$3B%gq5Q(0vZ zcpK%DdM=$v&Br_@Odgl)vO4&nGkXH42~f*AD321hND{Z`5IH~ZybV?Z;2FFJ-Hb8e z=Hb#ZkM8iCPP*B_Qo}sWd_cR?P)t<$bfd~%Ia*kZI~uPY0>Ge_5yzz(%>D6VRi-O8k4Litp>@Y_E3qUCrS^g!k3z{hTgSY<&F!R58&A-9t zFR%AKk|G#}pdbhmI0}JVAWA_L0iy&05(tVAB(%LmeyVGa(f4qNWOsqVqP-P%hd<;k zPRDjnz6je9b;HLkDkVSf=EdHn@8qqnLy#SMF=|J$Al{{Qdr$9MF}GcHiy@&6Y@r>} z;%I}qUlj$=cLE>Vt!E-+*Q{?LGK%jZDe)e`wS~*uRg$+}9(_9&BH>O4g138h{O;2V z@VC&9*qgNQWWW7};Ltt;`(J_dwI{%P_yb7k{uRk}d%nrfZOd+!N9k4Z=l;;c{}zxA zv+~VjW|6;#Hfj60mH5*dA@;Hln%GrsC%gC#roL1Z;5UeJ-_L+hUq2n2L+&RRv-bp3 zlQuslnDXCaV)gXa?_42X>TQEn1UT34MfZKtS3UbfWj|~oiXYyC{pXKp^ouVCpxfRD zG5EPT>>qo>)KJCTYYiMIgTM@MRQoW+JpQ;uU}c2bjDBz0S#U zr&zC3D#kG%CL)^-aMeceqUg%XgH<-gN@uIa^}C-+9fY#e$B65B^(Z_ zJHTsUpmSKUGOq$JHfQW~Iy-G?r;XTZA*DrGNlo__wN4|V>Q8MTqf+<#<{^Oe>D2Ng z(V95KEA<8$fK+0Y=OxU|X6wXWWF)T?o3fr*1xD8LI@Br{FnLf0;`O$@A*QRGULe$w zc04Bjg-3vVWgO;W=_9*so6`xqctt_yCsKyDu;Uz~y@U=NiyKn64lMxQWuSYoiAh7GdSy#o(l?tF6cTy( zyyIN7v`>z_12to%s@4-NlbkzC_zEN{5u%WWMR8b3{*8evN309Iq}r}tH9XQtxYf?5 zu3oNE(`1E$FdPcmqU!KI0o_kPZcrEX8f2>O-Iq&R_`0_)1Q`f8O&!!ODOTa^(S>}z z&4PPUkk_?TYK^yDj5MZZh5>IaC|%Ky80$UQ!El2c(%mm-nm;AzB6>z?yNe+--o&=7 zGgCao(l7XE;1TP`rNAb@#1AfO9Khv;ae-QjGASDFHSMLaYWZ#^oAV(#N=#J4SB>D4 zUN+*U<Dij2X7g9^e6PI^z4ST#}7dKrw%$XM4Wuli=t`^QyP6z9+s^)*C zB$aO|$yhiI(n;Gu1IuI4UN#7`qQ+kL{XbmL*J-8g506Z))J^-lFibjS-{u@`I99GI zCvCVUy)O2**5&;ezt2E=Y4(?@`48QS<4^TDGR;IU%T0=v(nrsf>%8p>EMcXX{NB$@f<2~`m*w|I>cuKL_! zKtXLUMcTHOs)BlZ;d|h6t}ym4Qq~!!{rG@b&V^episU8T+4ID~s-IZiijznYFJHAl?J%mlif7cF=ar#>ok zl=9CP^)()ji*=d-g7Fu~2#3qb!fq5t9`!uBT?H4XoS;U*_&K)KGYUO~{%Jy=wY9cQ`%zrhr%^7OCbzRQ;Zhu;T@Kl^E^Ml%FD zaTY}!KAg^_=pJ8;o#kG6`-VKg-=T-S3&j$iW+v+OEz%Y|zZ`nOq>FW@|nfV@xn_=6f!FCR zC-Uh&0D2O2x*hxlyWwtm=LH7y1e;9g>M?Uy;k8E%ju)K6XRT9Ss2mT^UkVMhF z{1wp2;jzl~tbz9{3i)R$BCnh%Ejby^`gt^?8saF!m+DGxMyPlk>llvQd&mW{b7E8s zkU8Ph_8Gemaz$h4#t<{h`ZSHh`rVTUXOiwR{|t@P7tRM0T<(qo;_mXYk+6S-UJG18 z()RULqMF1BvR;elX?u?c{+^|w5_$^J!K`Llx8Jw5n2TZ9q2dpr-KEL&AOGhMVYg)e z>jhf)+2Z0i&-qY3f4csM>?VTl?kyOGLnMe(8w8P`>aw;idE0ll&3I2pLVI)Y7R#i; zTRRoM=jWxnw?q{0!4-vkjxgjNsBP#$zKt%BFAx>J}EwT@oNI;o$ISKByhFWf~y7y3q}m#x1N}hSTNf@oqyHxI0;g@4RJUX`cljL z>DZk){Tu{x2KQqSXd!X81w3!G*Vm#W>a-Qudpryht)e# z4{ao|x`|E7oeosBqFtQChYps#$6|q;2*QF{$FS@f~;0KZ%Mq*)KF4$7OR3MW!QUbGqI38fK z%o6U=U2FmN(2GzAy^L7uk@v9kpug(vFV26g1OG8u@Uc4u^yVishHt-@({&b`0IFWE zEEh*F>6K0dKf$?2LtfCo<#hMOpREP<#d`MDv6Lg{t4R|~R%N++W1JiRZfZW?>EVaz zLb{iI8&L?H5xI&4YTa1o_L(oA(U1!{ zb9OX{)kaSVct~R>n68)HNvGG6a2W?1V`6 z!wIiZM2$(>yQFHF;8r1lqABC79W*Ix!MzEc;elm=aPA3yC`4n4^n;F$FHAi)aCQ0S)J6;^U3*$RVxB z)G>8O30py%x|LHpEOYXT{CKG>yp>;F-5vvgAe8wkAHhkyaEnN0NNRL(!fk^J*GsR1WLcIDS!?~ArM4h6oui)XPj*}PsjfZpgpc9;yuXT zen_J|)Q-Si?nGekax}S@cA?KX+ZLP$!Jg#);#Zj@yND_Z_loZ>-AZ=0w$D~f_wYUi z_dNH;4WaE0;V(E__#WJd#`|!@Fx+Wd80@+D5PvKD-%V{B8AFIaQFu?M@2Pcgr*IUt z_p|Ti^mI>CfbZtJB;FrlqmLV>-1uAk@0@Mg6Seq<=euOSChH6t#2Fku_kRCQybiq0 z-@)w1T=VHKPPVsi>ECtH(l6Efo<#wB`XChjectk4Oz9)@O)r{Bqv|SwTJ_F+|9or) z^q;i!|LM~JKajf5p5|Y8+x{l9-+0^WDu^kip=uhTOM2&O>q5Sc38@|8OB8nJJ8rL{ z{d(34%Go%IYM?p+rxi>W6>E9*gg)|;Q(hc?7Hf`r7FckuY%8 zJokx@2dChP@Bw%xaSJuEJ{-G*&|$FYX~@9^V>vS0u7{u4%sOCWc}B|vfyfqel*LZH zTLq|-xLG78pb2Ta;?9A0gGAF|*heRexTFQv>E0FX6LSMGLi|b*SHF3J_c9|q1P3$x zF;mU`6^Q^&n+gH9ubeXJajLDz9UK2#z@^o(32Z%8p;alLdsa!ftloKmgOfsBgT*-5 zr#$gTAdyx6+%0Tq2HlH0l_DB&?D7D$TZb;Td%cB>h?{I$hgjaz0sk~|++FX!fS2eX zX-6O;MeYJ-eU_1VP2AOI%rI@#`MvzKWx`E&S&toy@aJQO;=ey$}wuSSnHrkEK$^AmyxwYmVFOi{MtCgN+pCzS3sEdGT zGJ}3;I}LS=KnTcey&sabe1Z@+i^nnX&Oz5rZF5V7P!P`x<>{a?RL$#TJPpB2fxC8k z4h)hrC@G0u9Ysl{!itONFDZ?+lisx9I``83Mvp5DK5Gn7g}W+bcy#g~e24>BaYR={ zi1Zr9UW}t%#FEpk`}8^?E_=bni=hZZ23{ThibO#rohPJ+a`J<>0XuQ~@9;L@gmc=Q z=*)QU!V5W`nh=cU?vCeG_BY=4*;?S+;(y?6+&}R);5}RVzrou8TD%HbLN{OmUQyYa z(XL}sh#p*sD!iZ;g1YoLQJ0|#=JE1m2m<9jY{rpe)e19&QyGB6U0?uCu+15LQZah@Q9_xr>Kd9A_7IZUC$xDE;s!5a#0BM&4c~JYJeU z74l9j-Ew`l=SZzfuBy@0I5Mx}Q){B0eNE7E#;&~&NJGLu^{2K)6i32vvlVs-%Her} z0+XTY7^&*>1_B5CG|6F5s+?H#p6WaI`4n(MK>~qZZJ$8uP|eQqm6WAr6BcBRCJ~o+ z=k9TSaAjy5V$`c92&i*=zzzh3VtJ}YG}d8v3j!g(H~MQr5nPUzx7w=KM9rwl=AoE< z*rbbf!qO8L0<4~L7hGLAFNHuPvehx;n-0YE*dMcjJ1UxOqs_q>o=@i$otCSjN$bhH zXwn$m5A4$erC^Gao2x(P*Xh9EbLYwY5xA(G%hNEWvPZE?e5Tdx#!zl=Qb<4D0r-#)B0KR=O;;misJ&`zijxubII03o)b%eqs?Vl&hVe}xNE=)3bcN*{|J33jg^db@*72WP}v#2IYWaGjTikfk# z$(sHNGv-q@OLyBXq{pke^&CXZuW05$fJi7IN|*=TXHZl>-5L(F<@Lf`DhrqmOZE9& zHx5^5UBn`u{UI>x^x`iLtV4BCn08Y0X(=adX_ElsEO7o5Th47yK zI%egkk-t9>o3plk8vMvEj_g&dPoXi557=*H75h>;1U}Ubp1L_*)_7d?E9LomZv+Q} zD0>mj=| zi4U2<*aY7CKr<~h>qMvkG$btB6+F%C59OhMJ}hM^g=2PPPnzbaYhg7`4HC+03q{x) zhrmNR)sEuFL|{u5t^lnvflsmUmV4&cQMEM9T{G}y5&~xB3xu3Y0ndCfI92UyJl0_3 z(S{*cO9XYkMV{_}wSB}ovN0|a1VCi49Gpb0)5^PM?r6a!#k^jBzp$qi_s8??kI+Y4tC$xEi#<3*!} zNBAqN-QN7W?a2?B4N-4BHwJye~lx*Ks`4S|52d>-X*%` z+hcwQpWpSZeb;S={Mc>h&49M@uzFXai)p?6dH>V*1o-()`A^>y;O95xKYdStpWl?< zc~8Fg^acK8Q?9Ny3Ok?|RI7*6Jd$XwZxMVsH&IuMUPP59J_w{=UU8 zad9VHH_Z7sU~`xq$W7Uu(ryzL$cE@%M`(!G+(S2- z((@-g)u+pKc$zYaWa>fq`FLLLD6C6a&hVT^GAIs^5D?O{IrcT9TkO0Y&~q>!yeL43K_F;%B|FmmOtHJ42y{-DKwIB()=6#S3+YVzSC3-ibB^}; z5I-(uf#jwcvDZwbPp8N8KqzWXK6HdqyDbWBuM?Z+!CjPTrkVyK>z|@Y87Eow8nYB` z;fs$RdABh}m$K94vOgPfc`h$gf`^%K3+YPYg~SwL;ikoHveat@(=WaVSnr&$&$DKGVlHG zf5^mw?jM_f#rH2ed`o`Kd>H#%{T0@K*y4BNi~pC;^CJNHch2#GW%Cp2k1W+vTO8RM- zg6AOTU($Ap2J;n60u&9?0#HH;8n9~O477%lb#{JvbvX`>1IvK?XOj~^J+T03Kb5be zgKLmP!)p$|4k9kuKC=#dtg^&wT(b6mXy#okaf!W(RdgU;`8$9}iog5kWWNqmU_gST z9$%{f=FREO5ku<3PW3BumhaT(BZy0w^7=$F|10rxf#fD?7K~f_D_?X{zY=G3NSvZz zf#Az~hvp;KwxXkhC75-E=f*C&D-!M*AbdpQix&=I9?Xt+Og|NZ3x7@b%}c|Hq^s`pEjj&` zGaC*m?i9RFqE_|8lqrSS3$bTaj;N~cecL19ZWs8jq&*I|YI+ppHaOL(Izw)D62c|q zaGBknR5-`WWGy~Em2@A^7^lG~He@c6c+HLWGg2Ozo!Zb>I<4C@Bnn%GIBR1+a+@Vg zm>isL%ieDA-lEF$=8l~=^Rmj#FXqWIHwHm!&xjOfVqchD%dYI9j<#nd2C$1l9v0?E`mP#Maj3mx%McA9#`}}S_U&08B#j>PN>BJa*EIckP2-L ze#r%9R)M(ka1%;{mrMIlZH}JY$M-5EZX>;6YKrhGoY+17iT}TcWugF=b{V_6*U4w>0%Qlyvft!gq{3%90Z9=CmP95cjHvWtrJykVG=P;bgZ7j_%yS_@6Gl2YE@p90 z1?Khl*(bnDD1RR(S)J{^eWJfz`r8^r{766f{ms5JUj4Gk59&b-Ls9q=ejq4;QWQng z7>QEE5{%#|Nzx<=W9X;zn<<#>0EVWk{~fwU9_dQ+SYi<-1C<6eTSp_&pZOBe6fi$c z-&z_tpy*=j+(@>TGZ+*+AQ%wgP#K6nvQ?X)DE@`~tXQ%H5Gk@s2dxB`c%_s8ha_w@ zG+@B|OOk?Nl;yy{6AuHSO+vh%KcKAOtCj3J=2@hmK~bzGMnv{6>X)L9!UGgbuKZW^ zpgnIL*)q7q2w!Z4n>L*y_;Y<_^|M~YvUuSiy@=zx2T${LID~nn3+lY1&;)%ut0FXS z#y*knyp|mP$8k&m;RFx^vff}{^bS26j%hzs<@vh)_#>J=sgMf(*d4P+Hudc zed~C9JGUZ^9}cblm+6|%rYoVJj#us;b(shLTpUqJrFf6N9q{h#2inBpHX7NyeY7HR zhN4Hi!9(jAHZKh>#yUXd8RtaDcE&7u^7vz0NBZ)OK&Pu;MNTd8<%wh9zmp0KyaNO(av6Q2vK-F1|duR;k z$!;fi-&Q(3)k~QFP-H1)wYz6y2KU4mvK%jB(95>t!Y-{mlWx=Q^XNLE7e%fhN{A1! za=|XT(h27cmp^t$+9%Jxedsj1O<<(nKDr(4@NSA@*36L1QHRyGiyQb+axO&IPxF9H z3O~n^(8d>DO9N9XxagU)_y!q$BlmC~?NaWQpP^J=(Tqt ze*aR*nAD4nI5I-E*{0zOJ)^m^gz|}nE7+jITT|cK`$%WxNah;1r7Lw8zQQpko(_bm zgYtOD1QO_We-+?p^zmI_#L4Id8zVA$;yRg>YZC5BS0emA-cJ3~f_bVE|L5Pt!EfC2 z{vHzk=7!&6;n$768`h+N1`rA4^DqP^5Q4x_3`LfdoL-V~lA&mV`Bcnc!K`96&H-qH z0|Mg$k4t)skRZEW;1NJg477{ET+HXHKv)bQj#@dG3v>Z%a(ER=#(^{5f=2k8mfh;# zm*OB*FV?9Vb-fK?1t{3#6j(YJZM^$x>|9LM{?O1YJG? zk^+(`08$b(?}5!a0?sU3u{d5n-LGdgpDP%CZOkvZ)cImnhjZVU47XS5eRaKj-k9J0 z`(XH0b7w&{=^d-wZ%paFtJ{N~dkq_vioe;E*Pt;EL<(wTNi%_o!0zv!5%l9J{mvQv zovQiMbgA$rPkwAi6XBTsvMB6PV>~(AY6^w32A%Ew<(Xe{r!h24nvvj9VUFALB~C@G;@!kt)vXGk=V)Ap*2%}*!OdAkc|hvCy?#s z+#TWi(c}hUpsuA{ouW3iZm;Xnww4J$PBp0NR7vTdnWF~0J#gB{Ath~!M_oJKnCp?N zuX|~{rfSF{CCBkW9^rv$#h2mPH;&h-kkTHBdK+A6Ur*bpWG-PC3&LUEEC=S;&{qVR zrN};vX>EyRZ`Q^$N~8#wxH5*)_9*Bs&4+HcKOZ@)x*jy-*gX%~h9-RdrtzmT5igCV z<0pN|H_z~K-&NQ}`09iQk5C!)zh#B@_p}IhjK~=pSJY<#g>iy?%=eRWYv+4g8-o4e zgf|%ceS~%~+x2`PtLXPucj0lD**9XX`po0?%)O4a>mi3IAvnR>CbML+MERq{5>`8hP^JgFC zOv<`xJKGm7DiYKe@mLebO?R{)1+J{|s zgyC=>ByCGzd}uz&NXghFgwCc&?mS+c2bCygHMttu(M_hS?@OI@xNc0lsF7n3npizb z=KazIvlOS3;>YU9&{GN(v@W#Vbn{LzOJWy1Is|8yyFQnA*^dNAeP}y^P8@qzXnS?q z#>s9h981Ym?BoP=8vHgO@|Ix<)?cvEKHk9op`Y9HkY_&t<3HNL2SEPy#^0;x;TW;N zBu3&iiZcsTGWe2C(gaK|KWGfcNt~cQ9b;PprlRy zvWBgIjA;Ba#$bEBxLkd$!P)x~QsD?&C(Zt+uC_ngqQmMW&usLDILoVb_KE@tj*e>S z1wifQ)TEfxq?KrY@P|ZhGL!=<-J_OyMS>U`T={`-jtw)W2Rr+9G*z4~NzlMiU{Bi2 zHeWjBN^S1F10#B`-=@I5fa5o)E<^7WIN+xDT5{8`6gXApen4NvuEfOP-aanR8LoqA z4RAF8a}OpEBZ}oEOOXAS;jnKFPTN+*G4sM;Y73tq$2~7m9mUi!ZWA9D<0>_$9xZ6mRT~Vu9WT%Z%?3MfX)A$WXrS_RBKP|M$2v=W z;)8Y8`ltMmeBo?~)&6>PHKDmW5anAtaqIwGJpE6K;IHEmp8wXzi6}XFXz17h6$Oa#DJY2%25p=H?tH%w3b+J zt6iT#Kje&G@RA!9oiF6loe@Z*#wI?dN7S?s?Ms4==JW5HgsbTvtOWZQ)Ys|pzY@}PrnKGllt8!Cz0lLMv zdokiLq&oX0O*7Gs4q}`pmS9iVQtVRf6jbrp&?qa%BacI_jx88C~tlg%nT!_@O z)qPZf>n>vUxNG`J(G&6P)5Rh3uTi`q*z`v1Z-g@+A|lI{6^Y#NxYbIyMHt+!oIJzl zlG@zRsgynTq1$7$$>r5_7W-$#NrpoyxlV+kcfMOo)(%DX-)OVHx0nBL`{n^q^ZpHp z=HKD(pWmtf5B-1eKN8gcBRl-S_21mtcL0x&OVZ0AOD2pmKq7bfvtT|&5F|#EG=kzZ zwLI}@d3fzXFCe_6z`*J~2B?W-YlRg7g<*yS^MXq@x&Z1=baE*iAnby_DYiQFEclIq zq?(I82Y=X z{G+-2FH&luek!DE$e4_(_>HHQ0P4YZ%|PXwqIcnWoS~F5M4g(Z$_k3%td;wQ$>y@# zmgShVjbzK`Si>^^bac8@Ea`#2YQoVeY*SN9vfJ+=iyvjJY{>LkkOx7>$IIS}W3`%V zd73THSLVbyS2w(p_h(6JE|iUV1^VnC?7s2PTLZPSd2!ibqd)0+c(lhL=)$heN)c}W_PcifUj>TWT4~OOXYz^v&`FpOV|J`@t zEyw8W4$Ro z<@R(rnnZ5yaDH%;>%nBUvV6F|3a!H9T7kCRG%4tP*5p3tid0&n{j0dZ*|Amh+qv?J z`wosSVtbs&hbC?HfZg79*6S%o$&4w(6B>89N;f8UN4flV#e1|m+>_an;8$|O9#i7I zvYXVs7-tEc%A2L-PHLwfLiVS~Vr<2PF7njGJ4wr$NqA*v+HAA?C2|qOco9p;g7{}8 zM~(e$LqF)_4xY z0f2*Ew%X3G5`@eCmh_l_*KsitRHEs8h4K}lf7+8pRz@0w0<2x28(B^J7BpS*<~Rc^ zdvrC>1)be>&@5S*?BIAYFwl)xf0^Yx&~=P#f$%H==d|SeU~}qMpv#{@R$YE|bWz~^ zd2LlTmAHe)%6W@g(XL{5Tv;xlTUmQhB%68eR!M%l-4%s)V&fN))RW?W5?(01VbDXtA zwLPpg<6LIBM{cluw|gFhP`sn(DXgR`tU+nv>=^!J4|`HoWPF?O^pp3Sf~0Y}1Sc)sMcCCo6h&h=YDRQk{u|@!&^KhI?{C%7?1A|Z zTZt?+nn`|rVL5ww4R}>-DPNY@dbha>EmYW*ysY$$ygSWLH`#^kE1NHEF(c#Nu;h&- zC|9;(4~%BeZk*2fg_9l1tP00Uyj%8!WFcn{TPjm67HO-*nMRo)hB>3Rbfyb^;4`gj zW#R89OqS|;;va$P=DYm$on42_zV-7yUIQ~l{pEE#m#5*6cls`|ecN8@A6@pgo{C-8 z-|l}}!2eGk=VOik#WB8J;FpCRp=pYuDFneVgkYBC9HwD{AQ%LpQH;Q84EZ#xN>VW1 zLm*&WHl_eM1rS(BFkrN-smszxp@6!wtdz@g`xC{!C2K)Z(A>+{hF<0oSpeecR5(X+QKkGBDYBcDY1c7QRzK&6mfVc~2#A_jyUQNZ&d{ud&!1BN3 zhUw}Iwk+fTvS?j)~h ze@6X1SAW)C5rwz!BcQo(NTwZ7UyqLUH!I_PSsBe|sx&VMh@fXY`<0REE$IgT#U?!R z;KuXC0~oGBlGgcHv!&(nGwsXApS(Yfa3-~i{B~-`+ zqrsC{u|VLsk}gq8=5 zi~7W$y-qUjGryA`%c;<}_0$)C3~-sxzi|XdB4{l)b@_n@u}n3 zWSB2QfkGpLna`c84^eY^u=2TQ91~eq(>liRfjv#pju~lZx)skv$OyPjv1cu)^9l8m zQybnTsI{MiMzUOFoG|a4x4UBuhA-O9G!tji}eA1X_w0%wf zS(8f$7is0rpO(zKOd8m=&KXupDAnyAo4sZC(@E7sn{zb1yDVu)vB6Q#82x5)U*qY5 z3=D*Gn4|Y{GBT&0q0m4kr}6HD2c8+qhYM)1@8wiP9KHF^R3PYg^i}Soxw%y_eOEdM z)9iLQ$s0A%E~kq5p(M9GF&?Z5a`#3*a`5A2H{9l8v&zn`uW+-k zW;mw+=QDZL%u{U*qqbisRNY{9q~N~vOt|}@s8OgGo`@%?qcc%`(GR zrfRqf+~qqE?21vZa8|N z51TC9$g$gm2P#M(=%zRthmbPiCmvNAwAHDCFX7(@@-?d|yBG+jpU&;8AI|q5lc>+% z@+C!jfBC!eBMmx>Fv?Ik3NsjqBGji!>G9f+TkwQPR-z~h$eqaQAeqrC?2!LLX^;pN z*#b46q9Q0t=3ugRfl{0RNEYLu`v>MvP*7ZalP@FQq;YXjFAbkwPzpyHCcByJWDPFbaPQKnVV7oDnW4+2iXz6PUZpwFa+>_umZdUC*X4x1el(Q zK>_ubsCWhJn+yL{$97Mp_$cmQhidz&j;&z-sAC(sOMnV!b!(GMU>h-(n;{PvI6fMa z=)KiomhY&+fAqsp;sjWxkN_ApLI_%U$g)(8=9?n=kI#+f4=husQ73VU?x7DKasJ@+ zaexpB=3LTQbl%w&B0G-id!EoGt@x*D3+OMZd}_Q`G-QZpQ#rKdiMkIubv;^QOF5Df z=JL7VA{?@Lr4BVBe#!gOq{~75q{AerE8HE<41=A`^Ty$*Mx96Mo+sg*m>oT3%ch@S ziad2MsI=3)rLhq_DVx*Hd%-@QE0@G9<=L`k*&Cj_65h4G*r82(pKdSJ3C@*uAzrF~ zn355ix#I34+e=?wLw*6OBQZTOv8qn?-4CuY*^!fqkL`=u+AplZ;pb_>j|VN8OZ;5H zs0|?){E~G;*X8TBs_26l)}_#;hrvS+yjozIL;3fXWht4y?s)&PtMD+K(q=ysqRJ&G zq}|KrR{Fca$|`+t8B$|zj{CbKmlfxyY~Pasn-pKCEyl4->fb{I`GIY0 zueAr>iJqnMIt;$VG(CZF;s{0TyW*Avj{(m9#hc}mwX@N0Z)0#5L;v(PF3XzT4s!*u z_EvNEKbw*jWj^3#mzCv>2yU*mK*@6RpS;<=w(Cx|k=LDq+Sl!=N9CN{?pa~GYY_A5 z6GOa-g^(#)yztc96SnCSl=x(GX!n-*te(5!@+4=#=+u?heBY?;GY(y1izq6CdBRDl zCsq!}J+j=6<;+p7)TL07#)QB(M(3e{^t|Sw4_WPx6?M2Rp-6?)&128G$aJ9* zr4j5gWUi@b^WpvRfRy0GUC7Ikl&mYqs4_Dg4qW+gSnP05lpPXA!E)9QLdXjQLp&3E zBq37PYJ={Z(IrP{fbDkV6ZVE2#;$t$=DCl!y^|`>?OxZ5Exbn+n^SzzwJ6tMPuJM) z^#b-cI%n;+OJoqd6k3c#_*pB@oIsCRu{ky=9|ZjN`hb(;W8+2o-!ZM^U&(?wD^v8_ zY|Z-Sg>@|SM;!b8&AwpUr<;6N@}n_=f-#h$ae^UfbV&|z8pp`bt9&RJjKpJL#Ib-3 z$*e|HYqM%e=72*o20B$hyd9W1|I9fH$3V9%Ss65d$U+0!$^vVEd_#c@ZaD%N>LfwB zh$euMgDsie&s3n6v<;3yItRl5LzmPPB&Dk!DWKIbfFJ{O-D4nIMN)tc3$IkxBm<<_ z<>V;@9CG;x3;Hd|B+h_o(j^(ivVXFky3wfY{HR65d;VoT(KJt~X6Bg=Zehf}Z?`9z1KlkP6 zYnkxhIXXBvv>yF$kWMznnSMHs9i8@D+B6A>;`gs%x+ztEoW#y*<+!)eC8msyPMpnz zQ}_vr@fM0$ND=5F=4HMnv=kEeMF97+3u$z6-p+B+%0Vf@l)P)*1c_L8o@|*Bo)yBM zHzZ5pSC~*68MPWuw2u~g)|YJ2YS9;@=tDV*krX6Mmd$87zXEfHq=CH%aC>q0{CvG-_bE%e8VyLUdikw+VNs*b1A zb=m$=I%nG&3rpcJv5cn6%!bg>J#-iQ3+bd;((dzT4XmH_ub}T4DlW<^cQd~)DWUk1 z{YuMca(J9vWb|it`$0Of1W@U9OXJFp(CJKkA)Nq6G~-N+S)kqHz!<*ciLOHxOqGHE zl~uN5?PozhI$=qAsOBR=&bzVn)F?0-YJWvZNk4MO&*Dhvok$u`V_)@>V>MBsZPYGa z7W+d#vJJ!0-j&L$lYhF56+fU{u+#IsHiuHYQH%--t{Kf0dq%D97HlUXI!8u2x)zbJ zXTmtn`t=y88w>a9zPz9~uW9r-lr!o)Aum2XOwiG4hz{qJeT<&?F+J=L#g<*tb%7m3 z0yUZowt2mh6MC}Xis@kGy5J1VZ06^t-3@oNhx#_X9fkml3YPF>tE`W$cPN%zePrrW(X3d z=>-%ij6i6HBnTLTiDk7TmM2h(gmLQAnG9r2yWmw<0Qgm{CXN70GN6arOa5Wzrt2-3Y(wh_oL7CZX*^&b;&`zxFw0zBQm-oP{ zt=DfTW#2(oNPJaulF~C19kTRBosXZ7$RU=s{QJU;Czwtp|88fxI%E?j?cv-%Zd6j~{xg7^Z3);G3E z_Ezrv;WTCoFWiLljI6SQfz)qkdjiI>o8=O1v8U zdoODoPm#~*kn4W2|N5y6z&io-Q^{@UTd$N4$!**{?5Q40&Vq?VG&(34OnNPv!7uti zqbB?s#Zz1r*OSC5ko$@f{$SqKh`7GYgTMsbrK0Cieb@!D&8})CV>)+y;d`8o>;3kG z9_7KgaTjpwsoXCB6MVpYhYnO>W+qIY{M7!G$1+j-YGEex1 zjdU04JXn?DgU!0=Y;kw!Btx>cS*JkwTv^o1++wbn^ zMS-&Rh+6l}K0KvSKKA|W+}v`)Pt)tQeLk5}tY@7}4Y(I#R_ zfz0z`x5PR`m(Rxerr=uGq`@tGRva_ruG<~jN;nC}bJQc1aQ02aX2>k`hLhL99V-*WiCjU7-xyA$WRC{kMu@ViM@^gO6*<2> zHJW7xq25EHEmU3#jI1zn^B9M#dp=l5lEIA#274Kv3ycg=;bw@Fn`vZKEAGwXBe_-0g-5m0 z=2;Y~$Sq|)@PQZm?4fUxBbdu`9%V`<;YOxPV|0pm*LSB47L5^~QVCYYRqza%%}q92 z5+WYWj%@gyfXbfoPzO0z$3_U;qfMe5Nk^s1D77T%dW~hLTzC0K-ATlamTyZI_Be1* zj~bYIn8ZmNoYoPolo;g-u^*S$DR+cc@y{^!41KY&M8kc((vjFnrmW}!bxz#cbfIl! zlSNWpcG-kp({kK!&Quy(M1YaC6MB?UBSXyv8acJ1Ue_z3zL`RZihfe$ElSExX~~Zj{8iM;fG zYGJV*C)i8%jYE(;Br@hH+`7@`MR;izcJ92^5;$H|BOH5`b!P`#beipr0G&*GqpC;D zt>9a?hp&9um}IZuVl@8G-;MZyowuvXCJ4#CJa#P0`-5k{59faI&W~8_$Ctjh{zefP zMJW_#5aQEzHL~`TmyieOVKRWvQ>0)-CV87meVhJC0H+o-nW;}hup)l<_{K=kHC`e) zKygYy8GhN#5+ngdhXPF66zhl%m4aO^aT4>hDIcIt&49h6IN&AYD>XSTfc|v8Hqnu{ zkzHafg=BykOlPZu>dI*b26=C`;uP2eNrJuMIp`7K!2RTxl?n@lVCOG|d0AycN$Obs z^P>FyhiYb{?F~nKqlT>Ja;Men`T#eISAB1Y9fI<>WNHqKmxr3!`%8oc*RzPZ zyn0g|ZfbP0A10ZuGkhW(O+*3tSnz9VW(`Lo7a=f3q`pVtPLGru6;%m z?W&${H{@EeR=auB$s@o_O6PLE^og^+6Zt5yn904f#oeRX**pq4cHZ2H405s%pS=LR z-xa%4rQP-6zF2?EDr6H)x;!kg;E5zywd{r2*qH)x;TIG?^lpwM2wB^Z#ZsFJo{|<$ zu67ZOyy6M4TFyf^A2V~Co=iy)x&zU>KD)Cn_-n-Pdevr?Iy|J)_=L1xweg49G;A-9 z5``W8CoWpL{pc?GhQTp*0p{RURq$n+_tj2mcZzm!w@2(c&Ucvpg5AHgD*cX=lztT- zf>xlnc%x%VdEPC}vrND>^2Ba7OGy%p` z0%l+`bQMZM0p8;23X$2*e7kT^_fLSDHBdkTg^slo0801kmVjiIf~NWci$o5{!wYUM z50=k@GJrUiqW~h8$2bNwDi*9H({4R!(HuNvO@e%s%9}^{!Y6A%xDN&wWPGJE;i~wjH<$X#WKzrU zOIm+vBA!E1^iU=!affnGMBj(?0ds5kyIv5`TGx2<==$&x$Cn+BYboPP>%hPaZvkXa zolUPsEWZa;!xfmJpP52@?g>$k=J+9@_(oWRz>zGT`_r3$MfOLwI%Ka zWbx9j{uN!hgqEwU{2d2#)|}7BRtpu+JX%1sYV&yNC;ZhR;w|I)>Kdu|)b0*=&5_~! zBC6e%lb@pdI>!pTV<#=;Wxqo`_Hr>?wmr1a=^i)dLLd>`Ez=#dmoMp-t3Cgf4=+){ zYQwE4MP4A3&BT;Y&vBdzXZe+d^vOjpWd{-C$w&nfemOcf1-Wqa_A@&v_juque2_`A zwvAZj!-Qq23QI@)+_YPr zrye)Q7NsGq%FHhliG?#qf_{zOK2$jE0(RqMFoagZa?Nu4{&y zLG7uFu@j{&wQ>(&P+$*_ckw{=&(5)%jR;~WRF;VG3kv^t~PlT zZ>Jp{c%GHfjcIxuG#^NgW@&Na-PzO<`EuzkX=KxvC;cWn;_&Y}O}zVC{^;}Yj=|J_)K20*cC5eljQEoS zCxt8kj-fC~p)^Y12n;WeNrYUo+y&nkuwOD=nEbROkG~5Zf+19V%_}p|HD6E}%h$&F zTOoh-eZW5_pe@h}=33IV+m3;Om~@>s1!OM@NH$?K=${ujV1q61gy~iH0{&t|@h5PP zSB2;W(+L=)w@We}ldHrO@^0$1;5*>C72ppIywL&OtXO?Ok#(q*D!{A|K>}D`LIr{W z+vab9jrf!I1N7!|kp3g@ z2TfqlUw}=<{?g~5T=A=VPpW5eGK9l-Y8JC4EU|%Ceye67elpAZol847Yv|k4UUo2= zl5vizEF69V2XayTRV>V4E89=n3?kiq9P^=S&YtgJ`^bYz$Hm0rd0(^b_rCI3Z{|0+=MJie^H6v*tb&v{z~0#<5} z?PXwRIRgrxfMyI@&TA_g1N~`)0&6r-)?eif$Yk05&xUuBwRXBDqwqSgv*e@2I!08i za!7FwR(&9yn}PZ$D08N(1Vj4Xie3)Cz)14ejb5##!Pw5Kt&9Is5<%R76mZ&oL5Yx+ zj{_WcfoTH1=pCxHj33R-{zx`PiolDj>^D0&IGi+M&%AaD>x6lOr6Kwhh znr7(l5Z~@My3_a11eKmyuH2KZ%UY;R@0+LcdeCIpwUt}Nf;3rzc_#Me6m{)%4T9*|!_E?B z#1s3_k?s)@n^x56V|}P0>o=VWe+I+Q2M*tY*R_%Pl*+yBrowj_KUC~CM}y=~p2zx^ zNg(dRLa639H@0=pX-F`f&|GbzJs=2VZk$N%uZs5=WYBNn%k>--k(R|+9pgM|3EBkL-cKP**z+NgXe=WbD)e!oN~Yy|(zD|>dqptn9$d6iV);a+ z(C#2RYBgOh)SahqQL2rW#<0n?-8irEVV(F?xv*U4?FVO!smpY^Uc%ecrO4ogQg~rN zE%n@5c@%`1vAfVt>d73%9n&_yZ9@)G@8L5WL#8I4GM$cHmuBboIo}WWh;{O_5G`Nl z%wgqLh0Tga*qFSBB>O-AkCc_szbNZc{};;2|Ec5uld|%6nI{bc&NsQ_o)|_WFbVV@ zkR^(MX^KE71}6~)#Xr?id@};h=#|5k0ahE90h-#9HDc>LFL2|9K^K-@U&5k)T2cn#5@b{y3iNNe z*Hv~6oB`81ocrK7mOZnm%5q#Vk$YH>4*TY2Jrr}2&J?o~%tm7zKh+_(M<`#olSxDS z?47eOce>FrZ0G8ga*&O5cNWz`>rs?_ZeTZ&0zn*i{Bb_|X!X$J1{ySdNcdMlGKg@F zRoaEmj_ExnE%+E=F$2sW+m3^bNL`A)bHx z>_C%{MN`(0ZQhXGAc&Km&q)38yu@d<8WlqEoNM)R>yZz)!~Hl{iC)VdbhW9r%f?C3 zcjaX&(>zxcvs6c`iJxuf+?nS?z=gfXOPf#Tx*@V#}b$=(At-dZojCT zU6&8EyTn(H-R%Cpb={#mKl9uDW8UWHLOg%h1&;o=-Rl0|IJG|+)cxLReTPG!jY&{A zh2b!b6EwmsC`4iufs!~5V+e(k^yg%2dUcEga`6aA0Pze6J}lWHov!7|Rcr#m0UH}s z8JW)o@JRp%OU8;3fK{`A1%(1x`ekR!&zJzE$>mAxO^kv9rn$+gxWAH*KEok&mF`{e z16hlx%Py8o79{|qdO0y5DHsFb0iyi{pbP=UKN@_Blm;0tRRCTOy^a$zFkl%aG{}D! z09&$V?AN*N1I#3m@>gLB?j}aOyd-O)Al#m{c)Cf7_mkZA>HQaZ(k*G*KlG&gng=eq zDD$16o1e4|y8L_oM#bXy=-xjjyg$iznNRZFBV=%gkA&CqTmKdNtF6{YI{J;F?cI~U zxuB}_20M@{5>2LL%PHL_t77plNbi2rJC^?ZoA>}b=&#TY4DNjCpCaEL-G9W#<=>t8 zb+qg^2)LhGm|=%Yd=WjiSLVH}a8` zvR=B6P~dS#LplU}&fL(h&Fk&^CWVNm?_PAPsoncX8uT%fmTfN=SImpUr2FHe zSBx%H;3!q(&z7?HnP>M|;n1Dkx4N8Bgyvu&Jw3dA!w4mozVsS-EcZpY?dwhZ5-Ksz zEObA&&jvLvfpb6R^i8{NpnGmlY8rEmAH~8=;SpVKgLs}o`hj~K64m0es&ZkkAlHYu ze{ct(G!kQ;_URr8H`WZ{FGbUY?y`0K)_K~Am~m!GnvCkw7is z=aY+6IW2a0t63OC87LnXB2LtsW6NLS%KpFO1dRWK0EYT6a0326exCmUCt&>BsEfo9 z90TLtIE@e(0h1(2UdO7!uO}BasqA)f4h+l%gt~6wM zzBMp+!Jau(=sVCAKe1~3KzoLQ)pqb4Bx-AUdWt!VX~cQlwm)^oh5m}~^*heE&}Y`T zf5#aY`pg>lx1DiyBY^4xdt6$o9$Z4J@C;vqt~-&)2q=$yUmYn~Lq70^9G(QOY(uHX zb0p#+d{@wB?>M!~-m@AJ_Nkqn_`Q8IBighRYYtkbX0ap@PrPE2R~s+_w2^Uz<@fEE zF(f%!6kn((;H=d}3aTSC{W+_f1YE8KQ;8K>k#(0azLw0HRfQ}86Grf|`_=j&S=BRv z$L`Mrmltp*5g@RVt^?-TN)y9Ym%n9SISe@H8M*>+4(8Yq29OZ|V;fnWj~IZ^**e;^ zoD&dkUO8>}>IBHpzbt!5pzQJdLj025gLo%c*8Yt8x#URQx0(BrCuyqhebxE;-_*Uy zvYS}fE!yWPzP{odQ5RptX;2FUNK``5qej#MMD_F+v~8#D+|G37`ET5~5iYb5EQ&3y zF~?kUj=}6YU-hkU?@SpY`uEHGDz}q!ejZ)8PfgeZm7GTam9xKgY`<=z@S2Erop1<@ z`b!qnW#>CWF%eoPvDv3f+`!j0?(;5F#;IS`#`@i?z!It4Ul=B=gja0RjSkOQh^VOn zQ@zI)snI(I5dG<_-&C1rHRm@hwWkXw%^$W2`?g&$=F7GXM}c;Wm}Z zkS7Y0ch^AGuy=R5FVa@?4wWhpz}x-tL$xvHSzBr7Yrnlx8d=a^@Q}O=(J9~>2g7{0 z%sln7`pbShADMOF^LmJ4*RNT>ie)L^J$?Ny@3)zrd98Qv+6qW~GzOyHN_-#`_dlQY z9|?NStPzIZp#mkf_AZ+jKm&?&{(J5o%%}8Ph%LR)F^C{K%uz^G;+k ze60ybCmSV~Rrq=kTJG2@IR)Wc^dTD@O9VH^_v70@7bk?lI;zKj8x56FRNQn=XF7=J zsRo&kI8+=TtPeqJcYL}DE1LNO@ot@g5@(TqWy`&JKFMUR3=xo&XiC;KHno>y6CoBI zbRX?QCp-CfXE_j};Rpw@5-6{#pNRyvcm=oVl?+gqx}9biVC11Y*i1xo)=6ngsE!?p z##`+`UroIZXmR&PIzN;K+`^!hHosr7XE}N|4m=&{l;?k^dTzb8b#Y|jm&TS8L#*}@ zRsowja1iGHdfEOw9Eoglp58>-I-5=mFEM`XVHL?d1S122QN+YEbnX(I(bFYAiOgGe6ysNNk;xSnfR~a7W9MM!r1rIK&NDro%Xq6EL3Lgc zN0Flw*j5%)jDE+&J%#(WqE(8&(q5u9FBrJzB6=Q&n5s{S!TRxhakV1QUyMJJy;)owj z1;I~M&wO&v)9)0QdMD{WI*#7vJSe=spvYa$It=&f>G1QF?j4-{|866};LdM14BcRG z1KizQ0DZf_C%Y!~hTeF*%YI_y{_jS8G4fY_^Y7(wBH9JHKa{z_cT;i*?hH1>_b_0i z)H`*?_wZnYsnfD{OtT!2KK#N-X;8)s2ZB7 za4d`~q!eU&P9I5hyb7n@^zF)xO@YXH+P_L|o&lbV26t1dF2ti$%afEnpV`yHj!|o| zZM7hJ!rd0yMX^Cw(NQHV5z=$jMve^Kpn4+8Sunx;|_yl1I=0rjY~gQ=Tz#I?5q9W;!ZO6 zXL$L7E*$U~yv+Hp4ez)jxLwc0BcsYVb$b@5cwWl+g@lLkCC@JwgIj@Me8obYlqBS7 zygi*)-@bwv6Cb-I_5*kNxma<+OrDB_0K|qICE>n?Dy*TiCm)Sv3w-=oe;h-pT72s$ z`+`-?VH9?DoDC;=3);*MY+RXu!jb`+hss1;c6&?*OsV3BMC%CLP6{}O87dv_v1N=I zpR(I`Ho$U&uQ6ewBqq-ID|?RQ9^f;paJN{Bm)STISb~(j(eMsul5BhH*cg}0z8U>h zJE2;j*t|*Hm|8bfYGe2I1=)o;ZUUjwL?4PzHH`#?+rc>v2?Yqw!V(dX!d( z`iV_t99JTai^}uKWx!>N^Z>dVJ?Ed)k$-rpzjL7bT+Y(aKKaXj>(~GJoS=QAS3mV} z|5wBO=<5E%5I=y*r!Bd}TSW`qdssJ;vrW4sxI5J(@Sb;!(H%?nN@jRZWWxC8Yu3Te zjHqN!VkYFCb=_#-#@wjz?XvUkr^SL@Wpm?VIJPTmZj(F&eG?q}b4zZrFK@^3&c~>D zPv~wa1ijsRcCew|l~wQB?j7)m9R;Iz`P4=tcURpvkf6zqlvuQ{pl=jzUy+CRZe8f_ z5hd8kTluYailILj19N{`Zav!^-vKIHd|hsRn3XWO4x0XTiS@U->`-Nz4?x(vWxjf; ze@O(s7eIAzr%qq0psjsTIGr@khBYqw;u=eX!1o(fA^lOlqG)y1?5Fb=4KRL@&l|1G z_FUgrCJ201?fgfsa+<_%_63^dIT{pJw=Zk9d%d=?3vBT7KdDDP-s5L$EIMP2iY50e z@PHcI@U6OF0t0~(Q!>~>I3h`>xk-Dlg5;X?2$6DdYq-Z7v?S7WyiYy5(#9~ z>$ObcWg4|=Zf*iaE8?ZQJ^JSnua!fA4JNJ1`N{>pmE*MybHUPIm-F&iGQqms05$4p z@u6X9Qw& zNU%U}KAP#lKK4A!B6rV#&f>AVUI==w^4n{XdJ&vhgKTxlvzJ+;T{>>+2SBPJ=Y+@I zpsrTCYgO^AIEP@(H=`PpIKo@=!==Og`WWb-HEGs?;U1=tV6`Rtx&cB)+K0!F^~gVv z73Y{~7I7}KLC3*S$g3xNU=!~?Q0RMU7WmWJ>`$)l-_~(|;YtvxATe*IX|ogUCG zzTqO;>X!_rxL_u30iiVp`&UXHWmbbubnc0f(#8bc`BplYs{GU8~2 zQ&kTA5S#HPd-xrM7BVxJ`oJ8AvICEyL74aCa7i$ry|znuQ!6QCZjlee4L~ zK9QW05$9sa|MV)Wg07I<`U#gr2)Db$@+zev4_TAq9v0CAE%Gf??aUO z2)m|_!~ewp%Um~jXuh!y7zC*eX1?vPOIiK|O#k@cuWKmb`VO z!8f!Zd-X5zb|KhU67{ax0^fDScrVK$Q>rWL%7u z^nQ_TWWNFz@CCX4I@|aMDcML2)Vhc~h8s40Q?vYPe!eHfPQ`aSi1uJ3?XDz0e&5RT zF0iurWG|`!zPmh`HeB6zuqptVQn_pRjw!){HPIi42dkDl@5TwLmAw%U_%KSRzis^f z{(k57fWNxG-?=^DukP=6ZV!m8e<1yEsnPtX4=2 zxke`r>;zB#VqA!f$6#A8&;EFKgos@lE`zNhdm#DtdOZ#y5C*kRT!|)Wj)gMA%k$)% zU?t8lYrIx=D}s{hB_W&f*>Vf)4usXXv@G?NStT9aQ5#4kdJA^AlkUW5BQe?S?DbZ5 zOluuI;bDcVhvYB`cB9Z|x}9sN9_E`pUGDJ|Nk^Y{ib{#U{Y+ z#A~)iya4r1h3>*(8*M}Xn-x6dWLd@vI?Yix1T3&InUc{@9&y_c$<(mpwUcD&awCb` z)7DRVLPA6sk`c6l^&-T1ROg1i}b^VNjc{5OSJpc0|9&oZeKL3 zErlb4L@%!DHGDxPd&$K5S)IEc^f@|tW3Z|6B1b#vcl!dL>>PaXMV=Qn?wA@(8&uw? zZ=byI%NI+jGU!jvzF!3;wyTpt9gCIWuJ*`uSdJ5QoWQ2^RDMy8{(7%a9pk1}Ax82= zWH81^yCS7S{aooRHF1bs`i&_(C)W>20 zMA0inOWp2+COrGPOJ!%g$#ffCd1&Fe<8Yvbs7#oXP%j7NSPjh-p$c>p%OD;{aoR5N#9c-%8PNy4cQa(wb37IlblHx5jAMYi~^mMdxv9NxMI>tjri+-h*pkG89wERW1*YyeKG1{qHj zV*CKUb6`f4!L+#2L%Fy16XCeTl*_bco!{>VdK(_RiP`0cAMEdc`lH*{Kz?rM`8NZ6 z>&W?hk6&6Z5EzBR_^##jxu9YAwigfHSiB(@h`lRX-ljb8+b9)!FS;S|Tbq#lRT7d4 zz7!?ztP$MXTy~3bY&Ra-ZSbHyGYP*Hop-Hi><#bufBj#nIEBGGcL~4SYKT3r2)`S7 zcO7YHze4hDjkFE7ohf=}7vXqEdXRXt!{n{^Nl7Vo#Am( zNWe&CZYIv>S~n6|?O*0WNYf(7>}Rj0b~FVVRDkgaDQESX=Ae4U@jFDgc9t>NYwax{ zJ;f?}5oEAxAIeO{ht_Klw5Ut#kuXDeSi-(?bZA97PQp$1lFoOLfL;oi8tGD08(Fz} z?d2FK3;QrI4?erM5a~|3jhw9X^1>En!NUW^664XP=*tEghX;GcF{{lRCq&l>&~-Gu z^eouor?xK+x{}K&eoK^>ZkoQBmlxJcqu`uG$AckU4ljwX$5^Dv}6^fu`Z z7;E$|&&Utd_E8oi=h|G*b+xmJESqCb_)~d#t}=TD@PvtsX1O8v);%-Lc!~&(<{~CP zKztBI)>)1YBpmXm?0$c={zhgnRmKffM6@*;^*d07QWB>`uIP_}&8GgiF5OK>uf=_v zSV`?}21KSjAkvjaPQUS%gdrDdmAjG_n<@@_K%GhavfRzA;4YVC5o5K?l-b0IVYmg< zfhSU1wgRw$Ps#;^W!*D~u4rRUjjDAB+Y{h$RPx*KM8AfndqjTppD6w#*BI`(M&Z#_ ze%m!kyemui<$qX7_z#W4ID&#W`4dY0-;DDWtp4>FKNORKC;<~FOcC%dNP&>#r~Ntv z^426m-zEa#zUt(^omY2L*0;UTuIoqcKox=;qJ6Gd6z}+u1bfxWwr~7)5(?3s&!KNY z-W^`v9zq-Q1Hm^m5xZJM@~g^G5Zw!3$Q?TOv7lssv2n=_v&dv0XnPTn` zO5t6cXhYKtg}3WKg1yZM0r%GwxW6Xec~BJmZ=C!ckcq-R?;e-0KqlFTi6F+;VhW$; zc_#b279HU2UUyUH-TC<|WxCjV^9Qx~j*)pRQ+PjiZss3NFJ2o~PzHo2dGxB=TT@~0 zlF`9Zlz1Lib9dD^8oqGfm>~3~S)957+U-NRm*W>;1Eg;oRe}F0_j$8aTblHb>Pe2{ z%DrcDZ%Zj$M^8P`PJd9taN&2VR`l=ku+haOfW7jqgt39xhRd??U>GfzV0G0eEl;O3 zl^(#)v)vc}J@&(YPul(WHeln)hgTFc}t;`YSeUj3&L9%F#A3QMs!%kHWgH0-@hi_8q-46qPf#wH+~I zoXm=y6w9{*j=3tYK?B=x83jd4(c(!Qx$KlsPk{sbI1vGbk_N|xaJIl5|0c1|+;@rV ziVKpeYV%Pp^5_Vm{D6ffhH@x)tP=2A1qOID=oP{qfJRdjlcT99bQcPd0@+!th%v1O zxy;=2dE!~kyDzjL+R5N=V9NJxbky9gZzWPvj~Q^s$#i@&aDoIS!8}FRQV$sN0U6Y#vqa9$ZL}8sTn&P94%&p!Nn4Vu!s$L#X zF1iWitm3CAr(=m?ymg98(R{_zC;+%tFb}TqOVlg$$R@IBejU=IINGT_uB8Ua7&9~n z=j2?Rf~sy?cs2VniZJ<$e%QARxR}?I2%5PN+u=c$rq|cCO!PFW(y3P&>HEk)QfYUO z4EB`%FA~TKe#?AmDd9Mtn$;O^40oj3Rfm%(zIjJeJa}`p`6iA1xnjAlhG%Y z_HD72d_BaR|B=uIDL#q8Ft3Q z?A~S;o3o1p9gok#AfQ6+Mp$;uhYTtZASoQn&$O|9eQvMfte*#&M?JT~S3%-O@Co;Y zxFUM|w8vYvLNrFetq&4x?J}`xT zG08xjJc}}Q2FMllf%5}-3;pQuRP7h+2tkEi`5HZ6W%%~nA*Zy)bsPWh-9qc~enRpOzwGn7~9v@cgacOZLom7 z%eJ6*o+8{A2B>h)cI*~h$-b!lwI%$|E!@~1&4uAEYC^q3zwH&X;Xmx@fBeIXR8~yvFg5&;0eoz<%aEwENA-P6mRLwQ8J363o0>dbb+ z9eDYdbERJU%W4UwEwo8}XRj#XOXex7vY1!Z*%~QFIyFE`*w+teFJpgiN z-$*jz1 z>tQsJr@*5~fCF|K5|K<3&+|7Run(0cgu{8k%h9;lfgT>S?3tWF@tKVLq5({<`Au^# z3(iU1a&oMZ%bT&`#7^(SKy#H15Ll}Bxx*Ms1}R39%k^qKR>?}gY*GQTM}7di`iWA{ zass24e{sPE65itg5up~c&k zN&2Zn@Npsh5!u08WVded)%11cA@w(A<2wuomoLDpD0&y{32LT%H%j{^Q&=pM=fX+l z?XO?1!%ttXJz2<^wwvzWE3>+)$j0a<>+-W8w zZX7GM*L2obhWVmNTd0>pfIX4lSlewQV^HadCAbZ?xDHkZ3nT0Ux*N0e96nVoeY*mB z+6J5fm1P|NgZ5>L9c3Y6l>WW>ZK-eI&l)sf=;?SvK5oPypRSl9&R7TCB5@Kv%YE(c zpxZ>jplv!iW=p9LuA`R;FNGRTUUrs<5~;b{gtr=H*PX{3)e2NsZ)i@amsoNFp!D@x zvLn{4XX!HDghWx*ycEz*wk@O&s3b`Jf?v8Ky`BhLV%GHN_Q~^6yo5CHF&yxx>N!8^ zm(Q2AD$zxp^Umcq97tn&AUHg@DQvyQZWR&ghpJ#(EJK-ONMaCcsu z`@og@N{_e43A2?2hltlHryo_=BVed!!A29t3aqefE%XN)8wA^@P&ok#cXztg1qT%* z4&1pR4jTGMUYcR9eywB&otZOi#UI6ER>&T~E5&V($LkW~MWQ@e3%D&~oatB0w-TkU zvnLZ+f_i_*#OYaQv53X%8jl%=I}+R>fe|d2*r~ zy@u6yS$A=NV+lTGiimr0wF&3$6BCKg@p26oT6rc{n1y>e0PNg(RoruU<&GucVPa|^ zWVDZk7xSXEPAt29A4Qkfmm32eFRd^1r~w^_(U#J|O~@ml*Q!wR*IS;?7ussP)}TbI zPV{^1Fw#Rj9k&gc_OQChYjp6jz=vU#FR_t8W-&DM0jPbIv`)%4wVElUPN+;0H>SlO zrdGE#iL)W+TU9Qn)L8!tlkC0c$bGnPSh-DAxi_2(^mfqZgyVQ60Rdn9%dVC=b z=PD78LN|0^v5dM_Yj9-!?L+ZT+{H7$3gWK+Pm}zIZK^8n!uVqi>VJJG`&|AH&Hjh= zw>OeKx%XKJ_;1Jf<~#m3$Nx}=0=-4(V3b5jaEllT2>rC<4U6AZlJTw=hxz{nA^uzbMR`4ZHx5b3p_AT7oqRuU#+fL$>yWwgQ zzm3S_U2^9ai9>up-4pSB; zn~28yve*`_ZX35#?j@noo)F!B48gyP5>M93vWyk~QHOHAZnG3#^giK#YU}l#KI^v_ z?Pdv_%6}{wF|&$Wj!^9BIf>0y&#_Y%xh-LJdqpghd7`m+_buEL1rU%<8|7cH+;yNb ztUj`dUxYlq?Rd6$bC*MV4{oTkZtc;czN&eO0IJbX;@6_cS!VQw;l3a2Ym|7l==$q2 zo5X9)w$E-@z5E@R3hyMBdsCi!*VB(=h?WJ;ZSksd z2^{`Q4&>W@t!hXUz<(r01%4`-Ewn~7PF*frxGk=<_jTQoF9dG8&F=?G?FD0$oNqU1 z4Zp7Tr8=B#JMB*GY8t@q_A@o?2f48QrA>hzJ_PF1Z_zdI_u(}=(&{j2%Zql31`kdT zJMp!nm>pp)awq^Md(AjW2e~`zcGu>YC36GZSp(0kND3-A;SN);WRV_c`u-9gbLY0G zEA(V{EE7w90=F~0h`0K1LdW~nVa3ceMs#}u(Tb*JZf8EBO7NY2dDoaP%B#b5to~@a zJVQYdBw!ujUT3c{ULrRmA^viVAPbqS(ESfs0hQJGt9vZF5L9XHr3EhmFsaYfbz>V=8DnAkkHOradeC5ocuDEIKSKvFEeYq6{o=lf+q z_%u-fj~7m1d+BWT+Oc=9&@>4f5Z7RJ2sT2q?Q-bZ5jV;+5B3(;_4m^m@HQ2PVQ&4jxN!=#S`u&la<0$hbe%f)voUVO&pr36WL_ z*rgH4dU6&XEZW5eL)49QY|AmleS_|pUMp`;3_+ms6`a$^zmuNH;W0e*PH*}K-U9~+ zZf7rV2VrpI4yBqx$6ctl+2tOK;DN$)Fg_mAiw;g@0>_uL7S0&p6riVJ zXJl5zp*tFwEI$`of6X1VI3!9h2WXVgBg^1N=P0{L=~Miv`Am zWpy@(3;ED0;tS3{*K@dj#PsPl@lP5@FMF~XcxRj0W;)Z~i9Mvea}vKPNKFAew=Pm_ z_bdz>7F6%`qAw{6;FmdGnKrvcf~Kd6kt`A8!M%-7voz)uWq5LoN6%SICI`662hf52 z*ncJ5>jq0Wy@i2`dPN>Ke(&dN8;X$PPX$<}C*-MIeb-3UL#lJerIjdF05BIL+7_k4 zOk32W^Grf7KTSD!OogMYlAR*xGV+qTz*EGFO*(i!AL1gg4W|{KmjMFO(yyO5L;8%m zQY|=s_w%0^E-$m+}k2y^}%zAl&$D4hSV7My%6CgAauHu6)r8$yz z-BWpOw7fGR!&ik1RfkG(qc4XpOb#i5Q>R`YQmExP;qsjCb*I5VYcj;az|M>#G3_IR zTsby52R&F;#BrW<+aUR|-bAlq3;!w{&T6g&sv64*7`q&yYH^*P|wA0eCQ;JgSSpkW1_=oL|zQg#ANc#i6B1 zww4LHQSZCyWIs#b8lG21IzQ@a`!H!o-yT7YWvG6&oL!h2QD8QbRgyQad>fuik)kpdSngXTq&oLCjAc!CkX#1BWQR>smH|ibtC-3|&2<_gzaJ*NlA^5w?DSpSw;9k59?rl(? z#{FA-zU>>wZyAZV+aQANK|e|DCKKVi9c#Bc3ioO?nA)9vBYbaO0)G|vL&#pGwvB=! zd!)Xns)@Z?Zo52+)#qa9RYYjZqx5T_&ei8Tg|38fTzpDbbPG8IGb~9mL++vh!yS(p< z_E_+v3Y`09Sn(E{R&#aM{;)(s)RmusuN%LAF#qJa0G~aWfAU;_&mPP_c`m?b59Y6* z%WnVt%j!Srqxvu1tN)~3nkcyq*W%I+uo37Md^|EkRw)|DyX8$j;d2}TXZLZ@oJmw4 z*vTC=nNcBLe+e}q3~e=nqi(!w3IT`&h!5dwXvmpw zC-@~9_VIOZgQC8>EhC{1qdE^LXQH`0-rB{0np9^A4fJFgbgx$!Sm*5ODpC%rA+c71 zQn^Q#(-^vM^N{niOG6aru42>9zL_r3R-==rhXD1Tl1Q8i0R^Jy${bVX)=QC%v$3uj zkgDSF{V0d8N-~d%TIC}py4#mcP-2_at9L;M6?SaXcHDM3tJB($)#y zevOfTzBgx))u(2Sq4-%ai5WNt9ltoqi4xZfbhi5Y1r%XGiV%C^w%->10D@ z{%juE|(R!M{{9oMioL zw<-3e7J2$E_J0>R|CCU8umG!b@)})R=nm%VKZy6ghWo(3jrV_^(*B6|C00rhE-oIq z$9RT##F+at;YVa{H2>I=TsF({siP$oORR&q~GmsO!6hbYg3?%b;e#J(Sz=vVu$of2Ah29$#g=?a3v z)|PWS%je$BZ`j$o=XWMgiZit=5#VMk+}+ox&G~rfPN$@?tHaZH4%-%0JB`H}FW!Tq zm?WtO@a2}=orbNZojiE4IW+>zXX&?n!4U@p#PIC(=!|=Ic@%;?yVZz2{@#hJ$sS7|~3D0jyQq{?ZP6evEJnH@|7j<2u=2f~q!?jv?tJ~<9 zN7lo9&DXg)CxXaGN381`Kn0c7&|5M{&SGpHg)}QE)-B1tG~maXh^OSLq7D(Lk#BWv zl@iM~Ciak>wR!Pq8UrKAnkA19`i}QG2(^=W+kr?ZprFrV{w0CzRY*4v4qc_^!4CzccUe za*YsvYrjVOsmS10rghlcO(57$z5C?_JB|?rKTvO@IzQYs_8@96Gl~8-?&s#cD&z_OA(Fs-F5;iAf7b8^cBM>`eP>T?HNOVvIMsY1cw)U~}TP%%l{j3M5<4sGZYaNJ_G$fYs+ zK9&c|fg>Job62u3#XUat3wL;)50C8jOej>D2-g$n`x);q4I}G>QBMoNB`WPbwy@hN z2d$Y5QAw;mo6~{Iak^PAAO(pGg`TgkAxhMYJP>qe z2~WM|at`hA8JE$i^W!?F&zF#x9}-8H5TdHDMQ{tX)M(j}C(!@~ZkWzF_3GnC_@D)< zrYsDGw853(qjHJdCy^z_xL#(a=dN_!nU)axw!fnMNAC^rZ>+|@FFybT?&)WGsC&x; zCXPPE*uqOvMH^0!@vnPtSPzCE3`(jy;5Z@YCc@z|xpQQ~nIvIX&y7I}_rp=kTZQ5R z=S5s2XuAF^Km=7rxH3*cA$0r`Nivp{~`i zLx*Wp-=p@uwh&L|DXg&W&V8~vAeAm%l}f{4a3CymC+4Kl#9b-ucYgyOI8t z&l|Z_ApWSkH;ohnj63Iql{Ww^TB~wG?IW!`YZ5s!aC(QAvwmSAJdXsMbn5)RUe9q3 z5$x-FP9PG);_Vjt8!U3y3!q%-(K;hYA14Z?Jx^RJK800ormpg5xQ&6fyoBBzbdi}_wJoA*by~(i{kBi5YWD& zPrXHHH~5C3UEOZG<`CIM@uFxy>vpmze%rK>Zy5*Zz0i*AsJp93ybXF1>~G-|+2OQz z{uWO2|0y_?Ejs@Orzb%J-JQuex87qJ+jF!gsNUWft#?o3F{9^X-pgcKg!L z99n)GUV)$S^$&O@e+yoLpYioi@M_wVG<}8F*@{GAU#uzvQBQB;EeCuN8+Re??SB4H zJF+%DNq-F|${!B;8E%2U!`r`uTi^q4kzvxWB-I>Ax)VkRqa@gaF!XswXjpK>jrI&f za=u#j>tSD!#;F3NY5b$1ra-M2aEB*s3svaMGN}rzzUeV|U8whebOi6L&f9Q4n_m*>~Nma8$4O`4{K0!?b zpPMGcI|l0OKNT_jfw#2bBu!~e+E~g3QDp}${7Uy*oYBR?SV z_xA1o7?pv)V!fX^rT&b{z+bW6-$7;IdszM)mHX-PH7mTzKcX^xTYzZ0&+TFTV@CXY zY80BSUV8m`u!#p1pk4_bE)U@{pVp(YVr0t0U<+LO^qN>J;v+8VQU&auAHltx=v0wL z=YE8@zqsy=n@`n`|^<-AI&%mb{N@A zDxfxdvnnN-?4Q&q{v{(8&9id^&o-$WJaf@zKzE$UbH&{ zj4^Hos|=E@$SMTP>h*ItcVU{?Fd3J&Ic4|fm_*Og#QI1+UQdd(%(|Fo5wl#M&# z7@n`byEw_wc_8X#o(_m}9$+Z-2q|8ax`of#NH;^x*8Vvj%G_*r=3_YV1{G4bi{KbW52Acw%vsV!T(0# zUb2nHJHCd*&OCSVcj8xd;K)(c zeD>eiPrY;8=-cfze76~5yXEZP!l$)QmAUy%Kq5jyaf|)i{yu%Gf@E+%2}ryhv%V;0 z@0xrpC{*t{z}tr(>342f9LIQ!_fe7XHp&9_**<`weOWH|9ijg~HGbN~AubjVs{2}B z`3AM=1Ju54dtb?)&CmYfl>lEaCc?0Xb_eG@?X~&={uvg&uD0T}2xm;^j#mfqF)- zm{;9K)`Clk{72c@{bLS%>hvKzdWzOBYe;LysiPpJaqde+#qh&(_}Uy85V7uLz0KDm zaJR2w_COCIAytWeu%1D{pWA0Ad7<4$xC-JgS=jr(HER~0gxdX_N z6?I+K-{|{Auerzb4vO*}teXTI2}O-%ZNqTL_Gzw%25$5q2%L^CZ#|MN(0Ysm;F0EK zu`kPA>~9bKOuFNIAv=40cJc^L&xd`v!k0t(GE^n-@<*#eopj&r5DQ7$ZHlVQgo0XHBYmRi-%-axr5P?zn+3mm)4 z#^fB(4jGViorbson-HVe`G!&F(t6#K3;BQk6~ufo!Q3X$--ejKIOH>k`D6DVAcn#S zgoH_$fcG|ag1|o2DB5j3ustWbLBcj^Q*S9D^u16=hW|yOw+LVK?&jWzT=IECI^cJ4wE&)844`wiw^#?cm+@Dtc#KH)8d%2Dy89{EDH0{@dC-d`la_JNqKul6%`> z+wpq~60&0l7VTY3+i=@yHjvxpl(3yChHsa21lkGSc0pjg_abeFB;eckBlyPFCl z8CnXJSwm^B4CjXYX5hlpcSrB2^mtd7K9pEa7`%L-V70F5VkweB^;90P`hnn2NbL}1 zfUm8#&7%+X^px_GW;{Fdj8{7U3Y@z#K8)&S8VaEE<}6Z4HZ^w|$>`%XhS4p2o+aoS zj<9nNs2bBxqLu{k4N~z#BcQcJ5mYD4)}|Yt z2H61|4)yrT=`MddzAT0VbBG{bt4>$6j>HY45SWtBj5Z>Hb`_RnR8^saLE$eThMA8h zhOPco;SWGp%qcEu-9B0TqJaNb5c5rQotDabpLzIGRVZkvf@-zcTG1DQhwD~5_Tw`? z9QbQcSjhz#IO$~zwy)V3tRs9%U>ag&w@GOdZZe<&QD2Zu>07`cnD*N8V11QlrWd?h z`zYG=1?Vm~!-o*W%OZnx0f%4{^|)GFVt6F%o-@yJTInK4r0=04y?e(VOrzjl?Q1e#X>nZw`M?J zKvTY`ZqBhn;IvSvQ5oI{7#XL`+ESo7M*&mdUU#F8o-n4JcwpsgAn?iD3psjiipnWjY@Fo+`LtjPC&vAMsC%;|N3msF^qsG$$8(Ik7JawO_5*#7gy3U!31BzEeDPqV0gmBYn6q97|5fn9 zZ2hOiHs+XMz^KMG`arkwR_i(exKKbWvt9!uf$!aldSF;cz6suQ;E}QdA{g6Dfh;4l z$zqDFIe`7^TE09joBA0x}}<1-||`2(`J=`HNz zW7z)zReXN=61cd(qso`ZzO4fK`>68yDxj~Z^7|@uUHm1YlpCUm+YpaZ<|n}_pjU{% zZboF>88%5I?nr+kZ|!noHI9Br_KVQbGNQ>ofpZ`C&trV6_jRMzRoLGJlXoFQ~atHvWYOk-ao;-zxm7AH0c`Z}DL%h{RZ*CVIeGX&Rleo)eo zDlYcyG&)(Lkujn9tnU;f$>~=U3JY&vycs{#E2Ldw?l!@9#DuSG>$D!!vHL1EW&_q9 zeAqK+cn&+5d0vUgw1^SxiTz~}3$ zRf@rs$=i{H-I%|=hkcz2!*#gT)Zxj=mx+JfcXHKr$Q>!-L4`tiM`MqW%$TP{Un_*` zFR+fI`J0pRM5$6Xr>|=0#+ry8yWW?R*qoLUn=~8Yd&F81ctBcZTR5j^sQIL8JiP&9^e1qtisf@!Dg(R+;&r5Wc zlJh&L`%2*8r)TcXwh}qrBrs*?<}%rdVjrfLDW81;vugr=nzl!-|>cremBtlG2i14Y(G865b_(rTlrui#Tbj@rCr=nW zm6hIw)Sbp;-N^4ZBkDc#tfmlJH;bqg`OS^dh(cXq&_v$6ked7u#cJIQ1I>iV5z~*j zxZ9i0(2&p0c^4$ngPs!0g$DAbUg1kJyDa@AUgV8gSkHUG7ug%c2+|yQ|0mc^EBMzB=KT@-w;4)RXB%GsyOTDph^o(Y+jbyH`6HlE+ z4d+#+>T2Ynl=}44pwlC27U7DPD!jBpTi+3Z@k}D*v*zBvn)wPp`g0r2!_MXQmi1nD z_ZL0p$ZLt#J3nS2)r_&1LZc-BYjIUX6f@_a~QEc@>_|;?0*0 zBH|CV8;r#e@1R4kW{T5l3hXM)W04IjNS4Xfx~oJ!C`zc>QAX7vn#C9I>~Vw{kWxD?pl$0Q&)VDw7@>Z3qW^ed$==*+`_9JttKcdp?!7|d1x$?zJt)0=^D zw)xGiQTe+5m2xp0FuyO@&2laWVKs0#jzMyn+I&k`7SN}aMB&6=ks<*Br05j=p3ybZ z=F+7|-ngS!o^(KpmKt66PkTK0KNdxyzoa6+yUnjuB>RC70VV={P!U}YC3o5S=_Xs^ zC%e8*4ruqN51^k81w;w-(|tT<%fVKngnq11x?dXaw@K0ck5~I@$NzQK_0f&aUz$-u z&A_(dnwrrhQG+F(ptz_#W?Oelx)P&$w|8|xD1)|iU0yGp3(vcbt&oXwMkNR}70O9c zdT$u?Tm|V8S<78Kr@}%s;r>-)-RRM8H#owVof>y<>ssGhp^|cQaUFKYL0yM-)U~*% z!?_+Lbg+n8_PIAI(T9hxgmX*m7J@tfkYn2Gk%m+9Ic4N8K~O902fU`ptd!N;ahmS11{igTlL=Oy9F*Zff|cG^V| z;+9?CpqA5)NZ3K~BPk~_Ln*29u`xu{#jmFeyv*g5btvLUF_p>|ctzgj6^e~>h38^UE#zS2{bD?j^%StMG-ul_sT(j_!Tm{dlF_tt_n+7l36uD_n!XHTH|Qag0O^9*n40`;|-8${M_wk$rB|(K(~-Z z=w|>(K)1j1Bfr-$Olyc%euzQTVAFblUFvH*r-oM@%&FJ1cY5oNC(d zI*Uzw9SE{DDStc$MYRC`)RgS{l6F1)z?S}lEajQtWa%D5GzMOP#{&i4KS=+OUrvqm@qT>Skq^!Jy96j0l=4{u6#CWB zNfPO~2Vv6VTQU^Az~WKakrBlU%(FKz4B@b@@32;bf)H+>l6gCway%(v6|MO-@T`w< zm{+RQWby4lO{H>frE&7=ibYG`^XB@YD=Z_>mJRvGeZtbze!`M4dgaljXqOjW2ReB^ z8!T%W%-kh+Q_>`1CSdVGXI7PI!TIgI@_Y&dND$sfce(YUS1V-oVmMp6wsmFL?1Wcm zmO5nS_5Rk^-)dyBbNd2`x+C00cSi2fq_v@IU=Y4|G_F$h#u3SeNiuJ+D~v_Ljw*u( z6Eu{J4z%ZVZ}@2WyR?Nhu0+#!gu3fhAU@r9L?!nMh8BY&9gfxQ9%rOx&$SsCN9u|B zR;ZudLwu*a9}}SaFK#wJqsk9f;I5u^ge4&CmFtcUlML>AXUYzG#<;HuQ0TJ^=%)!# zGk&z5wc~yK_CUA`Dqpe-M$J&CRWiwqX*=FI9j)oN*UCc}$o)aAYp=*f(x}lLlS@)Y zxnXzdS}}IR`Ihda0M!Z$(m4QyQ)I!)Q*w#(t7WS)l+MB{dLUFlpk@n`?H;>%m{RF& zfFAu?l&rNyox=xxb z_hnx2NP&4Ov?d)wiPQbQhIqm&F&OFYy||&cmEE1MgJ&0rA%)x@cO}x*HGb+BA1gYN zy7gC*4K>1_$G;D%ezYRnPx{0kfNO<4pVuSa`4@n|;J?1kruqpr{|Be}fW^N&#a|9d z2JRayC|s@lyWoIYBH2bFui?RpELaYt5}=`Pv-V)PPmys2B48iF0D)viY@|O0SxuY< ze13(d6~Wf8E0d4WO~1iya7p}!WPd#*Ionp1V*vQDtsEHVK<5aoKN7(H*Pw->fyNWf z0k{LhXbc1}2?v%6dKq${E}=HvCYZCuY@rF5t@)S8m;+?I?fz;=a`6*-1mPlk(1#s| zSdK<0D@KSaJ1bZ>@ZXjFmc(b@CScj#=D_qNN)VL*3Q{nLP!WS<*8F=9VU=zpUZjw)a z7f`Qt1M@EjuTuDm&e$k&gPaKtvO~ac?#K^Va;dx{>KyewtgMVZSLAh5H&M;DC$~Cl zm2Y3NRyUIoX^c?VSEm?$Q{^D5Y5uNcr79zLQtob{m2RgCX%A}}WD-ZKFyNuj)J$Kp z`pHe=$^@g((7*P;~NhOayY`r!{|<0&$~cS2&H zwZ$cQX%b%r@kMa2Ej_wEP8l~(5--TZwZ)?;<|1Uvt#L)T7e$}=f^5WFe>za%erK`E zjF(3l84P!lUTTppaZ&Ncj?yu++0Dq%wL;c(&@oS3hI3x$CmEW0NYlE`w*q|^qb72D z=Mfw(aA>@cgRIhCLYBj=Ntw1HmXzu=8keA^syL|)g5AlV%-ywrP!yxxpL6usEqR2z z`~BjIukhrfNde;+6&0qeH|8L*3sXq%I}~?M?UXt+?CjQ?2PSphubjq>CRECI-`#`!7!xclMWf>Njs*gQ{Eio4EV;|6}>m7MXc@I&2sORD{F*16Tmoh&=v1 zlKp>hu5WDse|q3wO8)6|O9^El|FnX_8d9ynSb~EfEu#T~fYKTcbQ{?kXMOHrMQt;t z*c4#k3Nj$-BDSOx3ldG~CSJt0PV#hpe6yrl0VieFi0xNV9=3JTr(2e4JL4L!fpN(c zNNlm&EK z<`lF$dJ1piq+niKKc(|YuqMQe-cE-%Tzot0^W*rIYOz`ff=W4$X7FP^R(+th(2_K8 z_Jm>BCvnH*nXx!c@(R4y1v{4Zk-D7kCKdND%sR&InRmx5iQLCsd?PL?KSLV|`6J;B z2c;ys;G89?BohbXPTH^KEh`C0hp%&-5a(y`YUm-Y+xYp+f}ZciTZbv-)rBfYc&$;N z%1fC>Y1GkQV2j3c@?y5iyK%yGi<67wHdcqLnu|A~Nr3iOkp-rl_&xwRUl zOLM>IN=v+2#d-HgnWpJP>t!7A*7TlHo<>mVRd~KXrqJVB7OD^LuJC(;t72FJrWOPv#D?RQ zC^}d;E*C9i)F(3^eY~W({5pu&9o}MDdb(9C)FXI(d3a^3ny@+EG-ofo_+&`T@U*f9 zo>*q5V*~ot-w&#Mn-5Iwhm7$$P^brAC1r-N;3{&Z)o=pR7S1gS<2%CWEp-bD#0ekb ztMsi)Gia%IJG^5L%}boSy~CqE@|u1~5y-3W2O+pxPv%6FahTQSV>v$LM`3210e5`+ zK#9K{h{@u=_%F4SGQX#n_%|``<0ihxKTlZv?SHL%!Ef%rP!`27hW?lSzrWy8`_3=j zZ~Gx>E@}7klaMek^WnFu@1Na&5M&(3f3JX)u1Ea)p7+Q*Z{xPjo8SId`oB>EF~ES@_U&aS=e|ZVtBlN#;fNt{tSs8kYrYgC~+t^5V z>pJ^xY@{w$J23Ag@HY3yHN;GDE4V&wZ;c_p4Oiy2PQ7!~EV?3K(CG$z#q4iq{QiV% zj5^xm*C)ExaUZQ?C?l zJ0bMb87If*myah}%DFk?A*OF`aKiHYtU*B6z)9T!N^T))5$7hoDZsR}TknP1Tu<`T zM`(WeWE2eCP=|;@S5{SJnq5Mleg41_J5!YojJHV_c@JRss}r_*2<+Ys9O)zd4gHk> z7=)PJY-v7h9^Gf8A4rGiD)h*b&SD7E0b;3(IZ`HxprR`rMeSr?`BxGJ=fm})9179J zr`y4JID$k{2_0Jb>sj~YQ@&?SeLWp+5Gj`X;cC^%gCP_#_v4&CNH3?5TCF|5jM<;o z2=5ls`@Y``h_{BCQoOsG=ZP_pZi?5i+Ab)^ih?SO&c~OaKQ!j9;1T(_N2K=NH|`yO zGsVvI)I(NQo{z6L48k~W`ZjQ`bu!3p1PV1=I37p--B+!2C0~rhc#CdcRCT?@h&;bF zXe@KJgfE2N5bcoe@H=&1k~C#|s8OvV$r5a5k;wBDm}+u);CzF*cS)uP#FDxaT^Dw_ z@iQq?9`3=*h#Jz}_&Q4odXQSZ-rwa%MnHDm$QC?7zJ>L1y}3@P@Z(?WPX$=$`wHwQ zbnFLZ@x$I(2lGKZg9vFzAw~;@gdWfL^LRqXV*KiKsFh<@3#d?bVCtpJ7a_^JwjkC* zV~gWY<1~c_^!@Jgr<;q!V?U14^dKC4QK~GI%%m$8M$@eg&Qj=)s zP-_DHqQ6lqG#8?QlUHuFdy~_49>kXe?5jzu?`djgqH_VqxQwjK870n4M5yig-;E1H}K|U1axpmFf{J;sv2LfRVdS^F{obvlXaHG>?rU1&H+rw`76biDZF6!-t^hkEMnbkTtRZTrws>&kitC z;y~#j-X;pI94*H{&L-hNl4d1wCuf=64u#p!`m8fDe-7rdEo9I}?Nb6|IwP z;Egoh{v4>`5GIMNlfzcj9H58D2>$Hwv; z{4~rX^X$MK-LFa~NM8C+m-e?-wo*U{@R}b?BYcIoCGvxT5S|)#i3-wI>-)4ama`i6 z;QN)WT-TSjo&XQ4^yWN(eML$fo|(43i4iw^I8?Z(44lEI?W6uAaRhyuIWilc-`T_S z9q-_qbh6F?42$C{lo@9@9jZpD_Vt2Wl)PV{>~wR2+?O2AG%qqnX>IBefkS$amq+!P zj=Au4cWGoNDK+j^W?_nwK_S|Pq$(}BH=rV4DFTefIfWkKWS8v}e*bKq)b%939h$zO zi^lZc$+-Jd%wU>ga&UCayICu(IF;`ml$48pt8<4#Wc(y|H%m8jRI3-sq%;(jz1mv19?(2cVw*%de1LfZjblu_0aeox* zKwsUM3WjLbzp;MUGp1eDndn`~)R}1K+&->l+U(_$tww%#tS(`H%NC==;g%WYeC%{l(bqK$-%(cN65Fs4$F4Z`HB%wWr*j86_ZRZGJ2Xck zLVtc$ie>I?iglRTO3(K}eh0x(s8M!q8^X~MlkQl=_L=&!+wq=v)S-rnvfHz9I%y%j zQcTVcUhIPR!QgW8?`wn8K5j1E2C(_P|Gt#*MHlyRfcNj`zxjV7C_zvxg`*tJ{Hz%M zAD!u&j`&Z{@;!FbID@ey$uKyHuU}CLWj`&paKJAZ%>ZeND0=39U*(Mv7HpGAbZ7~<@ZVqKaTl|Tp+9STtR88$b(r|KNn)4t-k+( z&eC4IC{XbbgSUvPVSw2`j^iR6Fo@^pNz1!8=A&qKBV_-UO zDDa0uY+7TymZaF}=|iZHYZ7Tgz$3%~duZcD!aOv;m=alI@jf|U#p{!gu#nXg{eFbV zcxH9moJid{TyDTj_Z%lP!XGrcmIm*zg!Mq|-$;?RVaKF^HxTBXs;AE`ekC`dOXk}04P?X9u*|mi6oOJ{$#dL{A znz)oxCM>Bw&OYWHmAVjf%OiPgsJe!vwd$=OCO%%gfW zDh_=eX?>X1ke)uD)cH~0_uR4|>i(^=;meA0U2L_%LuE4Xu}0y_DTho29%+eF78ZWr zaD=HGhlrlxyEQ!dKG5tazxLj9PaZ_=Vh3Rr$fS$!Y^;#SbMKG}^rmg~&R(!3cMEJv zRq6N&GbM0hpodiPa07S2rQk~>ta6fji+;F8d zr7P<@8H;I|-wU;-mp=8vGL%tkYq(120lhFNRCi8oU7TB|=5WF!yu38!>!qW{*};OI zzTabXSCNgEM(cYlT(c6n#AX!1oCL>sAuUk!NUQWDI5W(Xw*_Y4fgk-8R#7}~)kA$~ zMsqR=LyXP2d1uM7 z;O%_fSd3XFGnUstc_m8+rW*ofl6XL<83mYTD-I)TRz3ghjbG~Y=+J(q&f zROpxrD~HDYra-A8>0Trfi{v~Xp(DDo=d({Em$}BZQ#{D{yp!Pst}y+iU2o)j&%H7+ zrZsWz9ovXXP*du=o+WXFhIdz}NZ(p>)E@ZDVW-q0GeehEGVY$D;k#DcA=e3CkRh-; z9=j7KBpD(%d5JgUWs;V~93YcCa!@4e4Z_(ynKZk%247uIb=_lr+pSddKI{rqJ->x~ zer0zWiKn=vnWKgnMgUoJcQEFF$mQt}x6-mGRi^BfmnR&NvCQ%AgzoERau2P|y+`%r zGsZcTQ`phgYlX27S@-?xe5uIgfCg_`+*>nES`TJc^wy@6kcII%lgwk)lz(4Dvq@f7 zQe|Ck7tofl3%)(1?7iPUk$wJy=X}$6{_(fp(=~!dDS{?Zf}seGLkW^V$(6csEXy$z zMH38$QWWtSgCjQYt9(;=(g~=HVI&Z5(i9NQV4H6>j)E!|&HSn%j7We#3&C!)8i;}J^Tz(~Hpwyy+X0X}z-LH0E`j-YV9}HYuPS|F~@^iWf)hAV2W6Q7EA_@D_q6Vr& zzS{Kh@z9(lIfZQD@lihWzgw;vD8E}yy8f>fFwh?o8FuLA6v;T5R80Ef)X#VSV0rvj z97Ot+!liESpRep(u{ZY+I55QTUTW?=q_>X}w^MWL;m8ahv42-9E9O1>O4;JRmON*9 zTu!HJS_KqWbJ06rj(BmYH0a`MsdR6y8g=&~riBY!MB4m)-%I5)z97xj?L!2f-jNgZ zb4J^`jlRHy~#CvXj+xNd*sqT2JALcVpTY8lKx~;y;s}lUYxh}V7!%OolQAfhH{CTFb zB8sZLP~2ZixMOHZW74w>6_}4bU~$iCQ>Z`KXa7)ZGQxJ2Fz{!1?sbE;Pd6=GAx&aD zLckmJX+8p^RgXhevIGk zf&ZLx_{UHFz^Y$7@rNe8Pp!b{O^Jd3=SzNnjmOuheBIO62%X|K->w8GFi8@8gMVHc zAUS{z%;x!=ZS4r_k0i4tBv{}Fxgt}#*{-Y@m(l>SFdTHsaojJUh>Jn`Vm$(;u{6)^zeZ2e7^#|@fq*7G@^X-ISMyZ`-Piy$F*mXMT5}$un zIoJwnVEIv~!0cjc$-qK+c50rqmvXeR595{}9vdOQ{t<%wD?4dEpL}#n zEAsDGb3?n|`Q?gjr^Q}$0(4G8-?dJQ*|8Zb7ckWELr~Tb$&$yTA?Nu}4E+VC8 zU$|36I|szh;70`S0-^{SRtarNhgFfoAk4&7FCD@bbJfHtRhh&R1eR}Vc;^l4C8Wm{ zH5K7u7>8o8>;vmH!YOuydA4yZ)mB2#@UDMH(CWGGDrdKQ%L8)cm7TBvEgYv-AriFrzkPiBqvVqq2Z zgE$FSp?+1`73pl^UL8DWkNB5mZ&X)KXOa9}dKM!20Lu(05((vbT1eu*-=pIO42zHq2m2au{s2&S&Rz>$EV> z8CTPdOO@3o=||HZ`mtr>7oq(3xd8jdXRvU&J}m6;To!0}XZFa^`M_VjQYH6xQPWn$WC zPtte?@i;o99{rwnyZ*tTwjAdug1+W_S{VzS9o@v@+qc_A*;$kIdeKAqY1_}TdU5J& zB6?`o3}fR^GKtFiqtiMqOE{lNq65bVBHP~PHe@n_5;TmKCMLFb=Xl&xvEW8rxrXNt z2rjxynl)UvVCtLk(!E3q;Ji;|Ck@wbHPAn zdS;FyPR)3X_jHxWjjHr+1E22Ih`gHD$vS1y{c0m=`!aN49;p;z?|JLax;eoE4oSKv zTDs7>r-wf7h9>6Vv)m0P7Siims+C4r;+}n^cY=%|b0k@XLBF|{tKW1pqd^C0tfvPw zMM(WE&bnx&B6vOY$IgB+{Oh$4=yAQtI9DUDHK9M~@o8|cL~^nT!~?b`{E)?T~nyS-!s2(U4i5B*g0OWF~pMCmoZ4sGeh!iz<#$ zN%@I)iq!LEkzeky+tbGAP5B{2Z|MxTo|GFmKBckq;rZIXDAPus2v|=WKqm}~qn-XHC*u0b z5?AcS{LSTpSZKyHpPbexqwvN5cgYg*KOsxRf0rx~f150=tYZzkv2EBPm`brRrJMz- zi8cBKrHyvVonp#dz%K2>>mEyzE4)iLH%-DFTqV-F~u!=SBhpdoqsd?OnJOUXPS=p z;D}s|6aHr2ra<)X3f~_gR5D&zgLTqgU6T5Ki5Gd;x%^#mNOIhb=kw#_(FQgvm2(Zc z{OL>!SJqNr31!BaR0<&k@AJE1;(UkpxN`{ek>laFkxT4{(~QBSD2pF;7VEnjKBW}K zjgK6EV|T+dYLR>CqxU}U#8P0QHXt#Y4 z4bMYV?je(tCcIkKeX=&a$mnNBs82msO4#L9(<&>(;qB3}N!FV3*;4FXXz{kyjl z=MJXw&fbqmc^!0TUY=Lmn)mzCymJ?UO8Nx91l-{bg2K zN4pn`SBjcEbAp!2YBfLXvnWnI+hD|9e*`k;;*e%oBjuh5!c1;gV_iKqwJI8`E@~9} zQq}_Oke!bNak=lRTXTrDxsepH5GxnPE?O5uJIW)pNWAyw)Lw0)JKYoZ?~EJU$L?7Bq4rGW!LFT5`&1HY#)=M49>n)R7op)aDBZVbzjrYZ~Jx*noPAY zY5(@aCnurdQpSzNvoQBi>Bf3X(7(WNzz`*^WCDeSIky>S~QDVi2Al? zhSU8xR4XWMMV8mA|ylNaHP+gMv&IxlQBba3Ehu zDE(sTn{LMU1n|gU$p0`XNI!vos7=3uVW9PC{S)aq$iW1e3;+CJJ$mEz-?bSl$^FozcVUi?PNOSZpUd-vhbz&^`qK)A+QMgF zJ@GnQ`SHo$2A2To$oZ&$*D-9{n&S4M8g}Q?L&WbXv89UIppJP}%}dnh}5To#-zFc~&la^jr{; zrcLmqj?cwV1`0aod>7hPiQ=c@9@gwoa+a&B)6YA{WcBT$Q8B(VX>2weR6EmDzYEK| z$3#&=fDNsclxwL+dwgH{WP`MF+^yAsaWZNMCC*; zAN&RSGXnFe7UKth4iAHPB*S;OD#n%hQk8wn&uZ{SnBDv<0<-d)uqNJX?9bu%-3&z* zJzP!vWKadnC+ZlKBI)ODq95I)=%nFzyS|K=OR+bWUO*l>0uZ6YPtYDw5v%0e{@A8_fH5GTmp_P;aT?Ec<&~FWtbNOX|j@4za z-y9KpU7vWY_WVdT*iNv7;xY?x#>!lCvJQvmgV}2rGNCnBio8oMkWa{e?xm;V2GKup zmzCw8Oq~F7wfXnLPY-|-IHK?J6{T*M?wWVk;Sc@A|D!W~Yw`W_v-|*+7*2o&UzTQQ z97S;sV;PLYX_CNLmL<9MKZ>P4ojXPnn~5t68ZMX&7-Ntd8m*AVlAyI?1))3v8qW0q z`g1@{IRMAWrfpckl|{iRK@EriMzstBYE3u=P7`nDv`hj3I$aU)SIG@x^Oa3vQ0O6X zP>^CNppaNE018e7P&9B~d>}bc2}(Ctt(6b}b4Lm&6|fC}ISO26J@$827Hd%7($UGjF za}>@%oRH#uv;L1k=^{UD@${j^EDk~NnJ?9bJn1d?F4gcw{qQ}Q82sU6q-y_kHK(<1 zVPlK>Nm@Y92WXzPzx^9k<=(FO1t=RJ+XtPtU%P6xpBq9#<$E(qNoa&%-sXgEt*)82 zLi+l{Gl`ldUcodb!sWYGWl0h^$cR9c4)oEjBE-=X5O78?K!l*sZ1AHFP*!zk0_X-d>D2L z3P(8qWUjGMCw6Z8B1OIFtAeOa+MKWpyrLSDI)@??ed@Nfw*0Q%8jb|d_YO+#eZ$t5 zX*Bhj!Oc0|301(#cvB!>3PDjQ)mEQUZL6P$2mbkt> zifMf7w3l+j@kxwTTN45oT(m^Yx%(WVWf+Ydam4rW;Tm)2J;hRd>mnIs_dE7d8UD?_ z8SunsKA4VOagpRHV^y5WazgN-V&xis5*O(xBk*(gIQ7mRx08eI$Pgxm_}u0WHc{sJ z<~v6_N=sN1Mg0;pGF`JinOaWMX|ZB`fM|IFgVxhc9s&KgCTy=1j=TOr zX94{#w0Pr`%{#BE(Rvg+J`lPe80EF1U5>+tdOFcnpu~RDmgM^Pe>u04uc&GWy*WuU zpC@WhppR}6cs*+6mJz&cs;j22qGP_#oQBMvm=HYd;6<4)yV0NfyMIKo7ieRr)OG(y z`GdrTD5W0UErPtrqm%*o~7Ru41+U@O!?2Tm9myl+B zc3sBaIQ(iCc9yEqbVmO^N=yIp4}s_Z_Cst6IwF5tfsb3Ebvk;uLcOZz!+Ww(i%3Gihn zHnkr?fN+@Ip1pz_ws~ye9Ed}UZHhKk059VL{RPgF8)nDk)_0kLp=oQ_OyirFV{<{K z$ju6i+Il)@P^idBFw&dL!BcWzDG3Zc;;r-m?3%X@Q!oG&`%n5enlS;+PTz1=5>NZ( zGkvoyqd#HLL4oW;Fv{bH|N10bUtQoog16tzrq*~2XwVcR3^4Z_TtdlKb>KnTUI6-r z75>JZ|HW@&w{>I$<4&?M$FG3j#QgJP&}Yl~C#!-!Th`~R`X`-?&TjTPjy}K~cANL~ z?t(;t92t(^sxkM5@lklZcDy7X)>}2;FNGgGAB_|(0jCBhIxWK&k_X4SGize;}sP{DUxHP<=aBF}v*VAQqx&m`{9)9HQcb--sR9*Ci zr=sq>s(l9%_dFgNj76g_5n!qq)^4WR}L z>b}2RNA?*{zRJ_`CB9RKCxle@4A&gCOkWZ4VES&+mGj9(sUhLQNyLssj9AP{9@1}} zj3R${09p}&Xc79$eD|J+SI$(}4q3eql(;MA_B1;NxmV?1IO2-}`bAz?2)bt3x~AK@ z%0D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 Y4H`6P(4awshW{7*3!6OS7Xa7<0A0%Hr~m)} literal 0 HcmV?d00001 diff --git a/dist/vendor/requests-2.23.0.tar.gz b/dist/vendor/requests-2.23.0.tar.gz deleted file mode 100644 index 969e6d828831c6d00057e01252c9f0c3b1909a79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114327 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 TkM&rO_1E<;4U`?505Ast_bC9t diff --git a/dist/vendor/requests-2.24.0.tar.gz b/dist/vendor/requests-2.24.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..19e790c9c7c619ba14603f0149d47e594106eb29 GIT binary patch literal 115071 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ⅈ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 jr@wr>K3*TMkJrcR Date: Tue, 30 Jun 2020 16:05:44 +0900 Subject: [PATCH 014/707] Update documentation --- docs/concepts-guidelines.md | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/docs/concepts-guidelines.md b/docs/concepts-guidelines.md index 358bd24..dc6f64b 100644 --- a/docs/concepts-guidelines.md +++ b/docs/concepts-guidelines.md @@ -15,6 +15,7 @@ This document covers terminology, how the action works, general usage guidelines - [Creating pull requests in a remote repository](#creating-pull-requests-in-a-remote-repository) - [Push using SSH (deploy keys)](#push-using-ssh-deploy-keys) - [Push pull request branches to a fork](#push-pull-request-branches-to-a-fork) + - [Authenticating with GitHub App generated tokens](#authenticating-with-github-app-generated-tokens) - [Running in a container](#running-in-a-container) - [Creating pull requests on tag push](#creating-pull-requests-on-tag-push) @@ -130,6 +131,7 @@ There are a number of workarounds with different pros and cons. - Use a `repo` scoped [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) created on an account that has write access to the repository that pull requests are being created in. This is the standard workaround and [recommended by GitHub](https://help.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token). However, the PAT cannot be scoped to a specific repository so the token becomes a very sensitive secret. If this is a concern, the PAT can instead be created for a dedicated [machine account](https://help.github.com/en/github/site-policy/github-terms-of-service#3-account-requirements) that has collaborator access to the repository. Also note that because the account that owns the PAT will be the creator of pull requests, that user account will be unable to perform actions such as request changes or approve the pull request. - Use [SSH (deploy keys)](#push-using-ssh-deploy-keys) to push the pull request branch. This is arguably more secure than using a PAT because deploy keys can be set per repository. However, this method will only trigger `on: push` workflows. - Use a [machine account that creates pull requests from its own fork](#push-pull-request-branches-to-a-fork). This is the most secure because the PAT created only grants access to the machine account's fork, not the main repository. This method will trigger `on: pull_request` workflows to run. Workflows triggered `on: push` will not run because the push event is in the fork. +- Use a [GitHub App to generate a token](#authenticating-with-github-app-generated-tokens) that can be used with this action. GitHub App generated tokens are slightly more secure than using a PAT because GitHub App access permissions can be set with finer granularity. This method will trigger both `on: push` and `on: pull_request` workflows. ### Security @@ -224,6 +226,44 @@ It will use their own fork to push code and create the pull request. request-to-parent: true ``` +### Authenticating with GitHub App generated tokens + +A GitHub App can be created for the sole purpose of generating tokens for use with GitHub actions. These tokens can be used in place of `GITHUB_TOKEN` or a [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). + +1. Create a minimal [GitHub App](https://developer.github.com/apps/building-github-apps/creating-a-github-app/), setting the following fields: + + - Set `GitHub App name`. + - Set `Homepage URL` to anything you like, such as your GitHub profile page. + - Uncheck `Active` under `Webhook`. You do not need to enter a `Webhook URL`. + - Under `Repository permissions: Contents` select `Access: Read & write`. + - Under `Repository permissions: Pull requests` select `Access: Read & write`. + +2. Create a Private key from the App settings page and store it securely. + +3. Install the App on any repository where workflows will run requiring tokens. + +4. Set secrets on your repository containing the GitHub App ID, and the private key you created in step 2. e.g. `APP_ID`, `APP_PRIVATE_KEY`. + +5. The following example workflow shows how to use [tibdex/github-app-token](https://github.com/tibdex/github-app-token) to generate a token for use with this action. + +```yaml + steps: + - uses: actions/checkout@v2 + + - uses: tibdex/github-app-token@v1 + id: generate-token + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + + # Make changes to pull request here + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v2 + with: + token: ${{ steps.generate-token.outputs.token }} +``` + ### Running in a container This action can be run inside a container by installing the action's dependencies either in the Docker image itself, or during the workflow. From b7eabdce593cfe57cb1d33d308f2ca3bf255852c Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Tue, 30 Jun 2020 16:39:01 +0900 Subject: [PATCH 015/707] Update documentation --- docs/concepts-guidelines.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/concepts-guidelines.md b/docs/concepts-guidelines.md index dc6f64b..053bc8f 100644 --- a/docs/concepts-guidelines.md +++ b/docs/concepts-guidelines.md @@ -131,7 +131,7 @@ There are a number of workarounds with different pros and cons. - Use a `repo` scoped [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) created on an account that has write access to the repository that pull requests are being created in. This is the standard workaround and [recommended by GitHub](https://help.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token). However, the PAT cannot be scoped to a specific repository so the token becomes a very sensitive secret. If this is a concern, the PAT can instead be created for a dedicated [machine account](https://help.github.com/en/github/site-policy/github-terms-of-service#3-account-requirements) that has collaborator access to the repository. Also note that because the account that owns the PAT will be the creator of pull requests, that user account will be unable to perform actions such as request changes or approve the pull request. - Use [SSH (deploy keys)](#push-using-ssh-deploy-keys) to push the pull request branch. This is arguably more secure than using a PAT because deploy keys can be set per repository. However, this method will only trigger `on: push` workflows. - Use a [machine account that creates pull requests from its own fork](#push-pull-request-branches-to-a-fork). This is the most secure because the PAT created only grants access to the machine account's fork, not the main repository. This method will trigger `on: pull_request` workflows to run. Workflows triggered `on: push` will not run because the push event is in the fork. -- Use a [GitHub App to generate a token](#authenticating-with-github-app-generated-tokens) that can be used with this action. GitHub App generated tokens are slightly more secure than using a PAT because GitHub App access permissions can be set with finer granularity. This method will trigger both `on: push` and `on: pull_request` workflows. +- Use a [GitHub App to generate a token](#authenticating-with-github-app-generated-tokens) that can be used with this action. GitHub App generated tokens are more secure than using a PAT because GitHub App access permissions can be set with finer granularity and are scoped to only repositories where the App is installed. This method will trigger both `on: push` and `on: pull_request` workflows. ### Security @@ -228,7 +228,9 @@ It will use their own fork to push code and create the pull request. ### Authenticating with GitHub App generated tokens -A GitHub App can be created for the sole purpose of generating tokens for use with GitHub actions. These tokens can be used in place of `GITHUB_TOKEN` or a [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). +A GitHub App can be created for the sole purpose of generating tokens for use with GitHub actions. +These tokens can be used in place of `GITHUB_TOKEN` or a [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). +GitHub App generated tokens are more secure than using a PAT because GitHub App access permissions can be set with finer granularity and are scoped to only repositories where the App is installed. 1. Create a minimal [GitHub App](https://developer.github.com/apps/building-github-apps/creating-a-github-app/), setting the following fields: From 40e70b8f7b4f2b5c96d75987c33edeb013cb81ab Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Wed, 1 Jul 2020 09:42:27 +0900 Subject: [PATCH 016/707] Update documentation --- docs/concepts-guidelines.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/concepts-guidelines.md b/docs/concepts-guidelines.md index 053bc8f..acdd073 100644 --- a/docs/concepts-guidelines.md +++ b/docs/concepts-guidelines.md @@ -208,15 +208,17 @@ It will use their own fork to push code and create the pull request. 3. Create a [Personal Access Token (PAT)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). 4. Logout and log back in to your main user account. 5. Add a secret to your repository containing the above PAT. -6. As shown in the following example workflow, switch the git remote to the fork's URL after checkout and set the action input `request-to-parent` to `true`. +6. As shown in the following example workflow, switch the git remote to the fork's URL after checkout and update the fork to match the checked out branch. Then set the action input `request-to-parent` to `true`. ```yaml - uses: actions/checkout@v2 + with: + persist-credentials: false - run: | - git config user.password ${{ secrets.MACHINE_USER_PAT }} - git remote set-url origin https://github.com/machine-user/fork-of-repository + git remote set-url origin https://${{ secrets.MACHINE_USER_PAT }}:x-oauth-basic@github.com/machine-user/fork-of-repository git fetch --unshallow -p origin + git push --force # Make changes to pull request here From 4ba9ca3d1042787b3357fa72b60a6ccf267afaa0 Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Thu, 16 Jul 2020 17:57:13 +0900 Subject: [PATCH 017/707] Convert action to typescript --- __test__/create-or-update-branch.int.test.ts | 951 ++ __test__/entrypoint.sh | 7 +- __test__/git-config-helper.int.test.ts | 117 + __test__/git.int.test.ts | 153 - __test__/git.unit.test.ts | 26 - __test__/utils.unit.test.ts | 116 + dist/index.js | 14036 ++++++++++++----- package-lock.json | 212 +- package.json | 6 +- src/create-or-update-branch.ts | 192 + src/create-pull-request.ts | 232 + src/git-command-manager.ts | 258 + src/git-config-helper.ts | 64 + src/git-identity-helper.ts | 105 + src/git.ts | 121 - src/github-helper.ts | 157 + src/main.ts | 116 +- src/octokit-client.ts | 7 + src/utils.ts | 107 + 19 files changed, 12517 insertions(+), 4466 deletions(-) create mode 100644 __test__/create-or-update-branch.int.test.ts create mode 100644 __test__/git-config-helper.int.test.ts delete mode 100644 __test__/git.int.test.ts delete mode 100644 __test__/git.unit.test.ts create mode 100644 __test__/utils.unit.test.ts create mode 100644 src/create-or-update-branch.ts create mode 100644 src/create-pull-request.ts create mode 100644 src/git-command-manager.ts create mode 100644 src/git-config-helper.ts create mode 100644 src/git-identity-helper.ts delete mode 100644 src/git.ts create mode 100644 src/github-helper.ts create mode 100644 src/octokit-client.ts create mode 100644 src/utils.ts diff --git a/__test__/create-or-update-branch.int.test.ts b/__test__/create-or-update-branch.int.test.ts new file mode 100644 index 0000000..3773d3e --- /dev/null +++ b/__test__/create-or-update-branch.int.test.ts @@ -0,0 +1,951 @@ +import {createOrUpdateBranch, tryFetch} from '../lib/create-or-update-branch' +import * as fs from 'fs' +import {GitCommandManager} from '../lib/git-command-manager' +import * as path from 'path' +import {v4 as uuidv4} from 'uuid' + +const REPO_PATH = '/git/test-repo' + +const TRACKED_FILE = 'tracked-file.txt' +const UNTRACKED_FILE = 'untracked-file.txt' + +const DEFAULT_BRANCH = 'tests/master' +const NOT_BASE_BRANCH = 'tests/branch-that-is-not-the-base' +const NOT_EXIST_BRANCH = 'tests/branch-that-does-not-exist' + +const INIT_COMMIT_MESSAGE = 'Add file to be a tracked file for tests' +const BRANCH = 'tests/create-pull-request/patch' +const BASE = DEFAULT_BRANCH + +async function createFile(filename: string, content?: string): Promise { + const _content = content ? content : uuidv4() + const filepath = path.join(REPO_PATH, filename) + await fs.promises.writeFile(filepath, _content, {encoding: 'utf8'}) + return _content +} + +async function getFileContent(filename: string): Promise { + const filepath = path.join(REPO_PATH, filename) + return await fs.promises.readFile(filepath, {encoding: 'utf8'}) +} + +interface ChangeContent { + tracked: string + untracked: string +} + +async function createChanges( + trackedContent?: string, + untrackedContent?: string +): Promise { + return { + tracked: await createFile(TRACKED_FILE, trackedContent), + untracked: await createFile(UNTRACKED_FILE, untrackedContent) + } +} + +interface Commits { + changes: ChangeContent + commitMsgs: string[] +} + +async function createCommits( + git: GitCommandManager, + number = 2, + finalTrackedContent?: string, + finalUntrackedContent?: string +): Promise { + let result: Commits = { + changes: {tracked: '', untracked: ''}, + commitMsgs: [] + } + for (let i = 1; i <= number; i++) { + if (i == number) { + result.changes = await createChanges( + finalTrackedContent, + finalUntrackedContent + ) + } else { + result.changes = await createChanges() + } + const commitMessage = uuidv4() + await git.exec(['add', '-A']) + await git.commit(['-m', commitMessage]) + result.commitMsgs.unshift(commitMessage) + } + return result +} + +describe('create-or-update-branch tests', () => { + let git: GitCommandManager + let initCommitHash: string + + beforeAll(async () => { + git = await GitCommandManager.create(REPO_PATH) + git.setAuthGitOptions([ + '-c', + 'http.https://github.com/.extraheader=AUTHORIZATION: basic xxx' + ]) + git.setIdentityGitOptions([ + '-c', + 'author.name=Author Name', + '-c', + 'author.email=author@example.com', + '-c', + 'committer.name=Committer Name', + '-c', + 'committer.email=committer@example.com' + ]) + // Check there are no local changes that might be destroyed by running these tests + expect(await git.isDirty(true)).toBeFalsy() + // Fetch the default branch + await git.fetch(['master:refs/remotes/origin/master']) + + // Create a "not base branch" for the test run + await git.checkout('master') + await git.checkout(NOT_BASE_BRANCH, 'HEAD') + await createFile(TRACKED_FILE) + await git.exec(['add', '-A']) + await git.commit(['-m', 'This commit should not appear in pr branches']) + await git.push(['--force', 'origin', `HEAD:refs/heads/${NOT_BASE_BRANCH}`]) + + // Create a new default branch for the test run with a tracked file + await git.checkout('master') + await git.checkout(DEFAULT_BRANCH, 'HEAD') + await createFile(TRACKED_FILE) + await git.exec(['add', '-A']) + await git.commit(['-m', INIT_COMMIT_MESSAGE]) + await git.push(['--force', 'origin', `HEAD:refs/heads/${DEFAULT_BRANCH}`]) + initCommitHash = await git.revParse('HEAD') + }) + + async function beforeTest(): Promise { + await git.checkout(DEFAULT_BRANCH) + } + + async function afterTest(deleteRemote = true): Promise { + //await git.exec(['log', '-5', '--format=%H %s']) + await git.checkout(DEFAULT_BRANCH) + // Delete PR branch + try { + await git.exec(['branch', '--delete', '--force', BRANCH]) + if (deleteRemote) { + await git.push([ + '--delete', + '--force', + 'origin', + `refs/heads/${BRANCH}` + ]) + } + } catch { + /* empty */ + } + } + + beforeEach(async () => { + await beforeTest() + }) + + afterEach(async () => { + await afterTest() + // Reset default branch if it was committed to during the test + if ((await git.revParse('HEAD')) != initCommitHash) { + await git.exec(['reset', '--hard', initCommitHash]) + await git.push(['--force', 'origin', `HEAD:refs/heads/${DEFAULT_BRANCH}`]) + } + }) + + async function gitLogMatches(expectedCommitMsgs: string[]): Promise { + const count = expectedCommitMsgs.length + const result = await git.exec(['log', `-${count}`, '--format=%s']) + const commitMsgs = result.stdout + .split('\n') + .map(s => s.trim()) + .filter(x => x !== '') + for (var index in expectedCommitMsgs) { + if (expectedCommitMsgs[index] != commitMsgs[index]) { + return false + } + } + return true + } + + it('tests if a branch exists and can be fetched', async () => { + expect(await tryFetch(git, NOT_BASE_BRANCH)).toBeTruthy() + expect(await tryFetch(git, NOT_EXIST_BRANCH)).toBeFalsy() + }) + + it('tests no changes resulting in no new branch being created', async () => { + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('none') + expect(await gitLogMatches([INIT_COMMIT_MESSAGE])).toBeTruthy() + }) + + it('tests create and update with a tracked file change', async () => { + // Create a tracked file change + const trackedContent = await createFile(TRACKED_FILE) + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(trackedContent) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create a tracked file change + const _trackedContent = await createFile(TRACKED_FILE) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch(git, _commitMessage, '', BRANCH) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_trackedContent) + expect( + await gitLogMatches([_commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with an untracked file change', async () => { + // Create an untracked file change + const untrackedContent = await createFile(UNTRACKED_FILE) + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(UNTRACKED_FILE)).toEqual(untrackedContent) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create an untracked file change + const _untrackedContent = await createFile(UNTRACKED_FILE) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch(git, _commitMessage, '', BRANCH) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_untrackedContent) + expect( + await gitLogMatches([_commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with identical changes', async () => { + // The pull request branch will not be updated + + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create identical tracked and untracked file changes + await createChanges(changes.tracked, changes.untracked) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch(git, _commitMessage, '', BRANCH) + expect(_result.action).toEqual('none') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with commits on the base inbetween', async () => { + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create commits on the base + const commits = await createCommits(git) + await git.push(['--force', 'origin', `HEAD:refs/heads/${DEFAULT_BRANCH}`]) + + // Create tracked and untracked file changes + const _changes = await createChanges() + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch(git, _commitMessage, '', BRANCH) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_changes.untracked) + expect( + await gitLogMatches([ + _commitMessage, + ...commits.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + }) + + it('tests create and then an update with no changes', async () => { + // This effectively reverts the branch back to match the base and results in no diff + + // Save the default branch tracked content + const defaultTrackedContent = await getFileContent(TRACKED_FILE) + + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Running with no update effectively reverts the branch back to match the base + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch(git, _commitMessage, '', BRANCH) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeFalsy() + expect(await getFileContent(TRACKED_FILE)).toEqual(defaultTrackedContent) + expect(await gitLogMatches([INIT_COMMIT_MESSAGE])).toBeTruthy() + }) + + it('tests create, commits on the base, and update with identical changes to the base', async () => { + // The changes on base effectively revert the branch back to match the base and results in no diff + + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create commits on the base + const commits = await createCommits(git) + await git.push(['--force', 'origin', `HEAD:refs/heads/${DEFAULT_BRANCH}`]) + + // Create the same tracked and untracked file changes that were made to the base + const _changes = await createChanges( + commits.changes.tracked, + commits.changes.untracked + ) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch(git, _commitMessage, '', BRANCH) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeFalsy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_changes.untracked) + expect( + await gitLogMatches([...commits.commitMsgs, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with commits on the working base (during the workflow)', async () => { + // Create commits on the working base + const commits = await createCommits(git) + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(commits.changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual( + commits.changes.untracked + ) + expect( + await gitLogMatches([...commits.commitMsgs, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create commits on the working base + const _commits = await createCommits(git) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch(git, _commitMessage, '', BRANCH) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_commits.changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual( + _commits.changes.untracked + ) + expect( + await gitLogMatches([..._commits.commitMsgs, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with changes and commits on the working base (during the workflow)', async () => { + // Create commits on the working base + const commits = await createCommits(git) + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([ + commitMessage, + ...commits.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create commits on the working base + const _commits = await createCommits(git) + // Create tracked and untracked file changes + const _changes = await createChanges() + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch(git, _commitMessage, '', BRANCH) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_changes.untracked) + expect( + await gitLogMatches([ + _commitMessage, + ..._commits.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + }) + + it('tests create and update with changes and commits on the working base (during the workflow), and commits on the base inbetween', async () => { + // Create commits on the working base + const commits = await createCommits(git) + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, '', BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([ + commitMessage, + ...commits.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create commits on the base + const commitsOnBase = await createCommits(git) + await git.push(['--force', 'origin', `HEAD:refs/heads/${DEFAULT_BRANCH}`]) + + // Create commits on the working base + const _commits = await createCommits(git) + // Create tracked and untracked file changes + const _changes = await createChanges() + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch(git, _commitMessage, '', BRANCH) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_changes.untracked) + expect( + await gitLogMatches([ + _commitMessage, + ..._commits.commitMsgs, + ...commitsOnBase.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + }) + + // Working Base is Not Base (WBNB) + + it('tests no changes resulting in no new branch being created (WBNB)', async () => { + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('none') + expect(await gitLogMatches([INIT_COMMIT_MESSAGE])).toBeTruthy() + }) + + it('tests create and update with a tracked file change (WBNB)', async () => { + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create a tracked file change + const trackedContent = await createFile(TRACKED_FILE) + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(trackedContent) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create a tracked file change + const _trackedContent = await createFile(TRACKED_FILE) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch( + git, + _commitMessage, + BASE, + BRANCH + ) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_trackedContent) + expect( + await gitLogMatches([_commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with an untracked file change (WBNB)', async () => { + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create an untracked file change + const untrackedContent = await createFile(UNTRACKED_FILE) + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(UNTRACKED_FILE)).toEqual(untrackedContent) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create an untracked file change + const _untrackedContent = await createFile(UNTRACKED_FILE) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch( + git, + _commitMessage, + BASE, + BRANCH + ) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_untrackedContent) + expect( + await gitLogMatches([_commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with identical changes (WBNB)', async () => { + // The pull request branch will not be updated + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create identical tracked and untracked file changes + await createChanges(changes.tracked, changes.untracked) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch( + git, + _commitMessage, + BASE, + BRANCH + ) + expect(_result.action).toEqual('none') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with commits on the base inbetween (WBNB)', async () => { + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create commits on the base + const commits = await createCommits(git) + await git.push(['--force', 'origin', `HEAD:refs/heads/${DEFAULT_BRANCH}`]) + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create tracked and untracked file changes + const _changes = await createChanges() + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch( + git, + _commitMessage, + BASE, + BRANCH + ) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_changes.untracked) + expect( + await gitLogMatches([ + _commitMessage, + ...commits.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + }) + + it('tests create and then an update with no changes (WBNB)', async () => { + // This effectively reverts the branch back to match the base and results in no diff + + // Save the default branch tracked content + const defaultTrackedContent = await getFileContent(TRACKED_FILE) + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Running with no update effectively reverts the branch back to match the base + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch( + git, + _commitMessage, + BASE, + BRANCH + ) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeFalsy() + expect(await getFileContent(TRACKED_FILE)).toEqual(defaultTrackedContent) + expect(await gitLogMatches([INIT_COMMIT_MESSAGE])).toBeTruthy() + }) + + it('tests create, commits on the base, and update with identical changes to the base (WBNB)', async () => { + // The changes on base effectively revert the branch back to match the base and results in no diff + // This scenario will cause cherrypick to fail due to an empty commit. + // The commit is empty because the changes now exist on the base. + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([commitMessage, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create commits on the base + const commits = await createCommits(git) + await git.push(['--force', 'origin', `HEAD:refs/heads/${DEFAULT_BRANCH}`]) + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create the same tracked and untracked file changes that were made to the base + const _changes = await createChanges( + commits.changes.tracked, + commits.changes.untracked + ) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch( + git, + _commitMessage, + BASE, + BRANCH + ) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeFalsy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_changes.untracked) + expect( + await gitLogMatches([...commits.commitMsgs, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with commits on the working base (during the workflow) (WBNB)', async () => { + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create commits on the working base + const commits = await createCommits(git) + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(commits.changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual( + commits.changes.untracked + ) + expect( + await gitLogMatches([...commits.commitMsgs, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create commits on the working base + const _commits = await createCommits(git) + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch( + git, + _commitMessage, + BASE, + BRANCH + ) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_commits.changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual( + _commits.changes.untracked + ) + expect( + await gitLogMatches([..._commits.commitMsgs, INIT_COMMIT_MESSAGE]) + ).toBeTruthy() + }) + + it('tests create and update with changes and commits on the working base (during the workflow) (WBNB)', async () => { + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create commits on the working base + const commits = await createCommits(git) + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([ + commitMessage, + ...commits.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create commits on the working base + const _commits = await createCommits(git) + // Create tracked and untracked file changes + const _changes = await createChanges() + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch( + git, + _commitMessage, + BASE, + BRANCH + ) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_changes.untracked) + expect( + await gitLogMatches([ + _commitMessage, + ..._commits.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + }) + + it('tests create and update with changes and commits on the working base (during the workflow), and commits on the base inbetween (WBNB)', async () => { + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create commits on the working base + const commits = await createCommits(git) + // Create tracked and untracked file changes + const changes = await createChanges() + const commitMessage = uuidv4() + const result = await createOrUpdateBranch(git, commitMessage, BASE, BRANCH) + expect(result.action).toEqual('created') + expect(await getFileContent(TRACKED_FILE)).toEqual(changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(changes.untracked) + expect( + await gitLogMatches([ + commitMessage, + ...commits.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + + // Push pull request branch to remote + await git.push(['--force', 'origin', `HEAD:refs/heads/${BRANCH}`]) + + await afterTest(false) + await beforeTest() + + // Create commits on the base + const commitsOnBase = await createCommits(git) + await git.push(['--force', 'origin', `HEAD:refs/heads/${DEFAULT_BRANCH}`]) + + // Set the working base to a branch that is not the pull request base + await git.checkout(NOT_BASE_BRANCH) + + // Create commits on the working base + const _commits = await createCommits(git) + // Create tracked and untracked file changes + const _changes = await createChanges() + const _commitMessage = uuidv4() + const _result = await createOrUpdateBranch( + git, + _commitMessage, + BASE, + BRANCH + ) + expect(_result.action).toEqual('updated') + expect(_result.hasDiffWithBase).toBeTruthy() + expect(await getFileContent(TRACKED_FILE)).toEqual(_changes.tracked) + expect(await getFileContent(UNTRACKED_FILE)).toEqual(_changes.untracked) + expect( + await gitLogMatches([ + _commitMessage, + ..._commits.commitMsgs, + ...commitsOnBase.commitMsgs, + INIT_COMMIT_MESSAGE + ]) + ).toBeTruthy() + }) +}) diff --git a/__test__/entrypoint.sh b/__test__/entrypoint.sh index a37ef21..1cd0560 100755 --- a/__test__/entrypoint.sh +++ b/__test__/entrypoint.sh @@ -21,9 +21,14 @@ echo "#test-repo" > README.md git add . git commit -m "initial commit" git push -u +git config --global --unset user.email +git config --global --unset user.name + +# Display config +git config -l # Restore the working directory cd $WORKINGDIR # Execute integration tests -jest int +jest int --runInBand diff --git a/__test__/git-config-helper.int.test.ts b/__test__/git-config-helper.int.test.ts new file mode 100644 index 0000000..4ff160b --- /dev/null +++ b/__test__/git-config-helper.int.test.ts @@ -0,0 +1,117 @@ +import {GitCommandManager} from '../lib/git-command-manager' +import {GitConfigHelper} from '../lib/git-config-helper' + +const REPO_PATH = '/git/test-repo' + +describe('git-config-helper tests', () => { + let gitConfigHelper: GitConfigHelper + + beforeAll(async () => { + const git = await GitCommandManager.create(REPO_PATH) + gitConfigHelper = new GitConfigHelper(git) + }) + + it('adds and unsets a config option', async () => { + const add = await gitConfigHelper.addConfigOption( + 'test.add.and.unset.config.option', + 'foo' + ) + expect(add).toBeTruthy() + const unset = await gitConfigHelper.unsetConfigOption( + 'test.add.and.unset.config.option' + ) + expect(unset).toBeTruthy() + }) + + it('adds and unsets a config option with value regex', async () => { + const add = await gitConfigHelper.addConfigOption( + 'test.add.and.unset.config.option', + 'foo bar' + ) + expect(add).toBeTruthy() + const unset = await gitConfigHelper.unsetConfigOption( + 'test.add.and.unset.config.option', + '^foo' + ) + expect(unset).toBeTruthy() + }) + + it('determines that a config option exists', async () => { + const result = await gitConfigHelper.configOptionExists('remote.origin.url') + expect(result).toBeTruthy() + }) + + it('determines that a config option does not exist', async () => { + const result = await gitConfigHelper.configOptionExists( + 'this.key.does.not.exist' + ) + expect(result).toBeFalsy() + }) + + it('successfully retrieves a config option', async () => { + const add = await gitConfigHelper.addConfigOption( + 'test.get.config.option', + 'foo' + ) + expect(add).toBeTruthy() + const option = await gitConfigHelper.getConfigOption( + 'test.get.config.option' + ) + expect(option.value).toEqual('foo') + const unset = await gitConfigHelper.unsetConfigOption( + 'test.get.config.option' + ) + expect(unset).toBeTruthy() + }) + + it('gets a config option with value regex', async () => { + const add = await gitConfigHelper.addConfigOption( + 'test.get.config.option', + 'foo bar' + ) + expect(add).toBeTruthy() + const option = await gitConfigHelper.getConfigOption( + 'test.get.config.option', + '^foo' + ) + expect(option.value).toEqual('foo bar') + const unset = await gitConfigHelper.unsetConfigOption( + 'test.get.config.option', + '^foo' + ) + expect(unset).toBeTruthy() + }) + + it('gets and unsets a config option', async () => { + const add = await gitConfigHelper.addConfigOption( + 'test.get.and.unset.config.option', + 'foo' + ) + expect(add).toBeTruthy() + const getAndUnset = await gitConfigHelper.getAndUnsetConfigOption( + 'test.get.and.unset.config.option' + ) + expect(getAndUnset.value).toEqual('foo') + }) + + it('gets and unsets a config option with value regex', async () => { + const add = await gitConfigHelper.addConfigOption( + 'test.get.and.unset.config.option', + 'foo bar' + ) + expect(add).toBeTruthy() + const getAndUnset = await gitConfigHelper.getAndUnsetConfigOption( + 'test.get.and.unset.config.option', + '^foo' + ) + expect(getAndUnset.value).toEqual('foo bar') + }) + + it('fails to get and unset a config option', async () => { + const getAndUnset = await gitConfigHelper.getAndUnsetConfigOption( + 'this.key.does.not.exist' + ) + expect(getAndUnset.name).toEqual('') + expect(getAndUnset.value).toEqual('') + }) +}) diff --git a/__test__/git.int.test.ts b/__test__/git.int.test.ts deleted file mode 100644 index 8c3b2a0..0000000 --- a/__test__/git.int.test.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { - getRepoPath, - execGit, - addConfigOption, - unsetConfigOption, - configOptionExists, - getConfigOption, - getAndUnsetConfigOption -} from '../lib/git' - -const originalGitHubWorkspace = process.env['GITHUB_WORKSPACE'] - -describe('git tests', () => { - beforeAll(() => { - // GitHub workspace - process.env['GITHUB_WORKSPACE'] = '/git/test-repo' - }) - - afterAll(() => { - // Restore GitHub workspace - delete process.env['GITHUB_WORKSPACE'] - if (originalGitHubWorkspace) { - process.env['GITHUB_WORKSPACE'] = originalGitHubWorkspace - } - }) - - it('successfully executes a git command', async () => { - const repoPath = getRepoPath() - const result = await execGit( - repoPath, - ['config', '--local', '--name-only', '--get-regexp', 'remote.origin.url'], - true - ) - expect(result.exitCode).toEqual(0) - expect(result.stdout.trim()).toEqual('remote.origin.url') - }) - - it('adds and unsets a config option', async () => { - const repoPath = getRepoPath() - const add = await addConfigOption( - repoPath, - 'test.add.and.unset.config.option', - 'foo' - ) - expect(add).toBeTruthy() - const unset = await unsetConfigOption( - repoPath, - 'test.add.and.unset.config.option' - ) - expect(unset).toBeTruthy() - }) - - it('adds and unsets a config option with value regex', async () => { - const repoPath = getRepoPath() - const add = await addConfigOption( - repoPath, - 'test.add.and.unset.config.option', - 'foo bar' - ) - expect(add).toBeTruthy() - const unset = await unsetConfigOption( - repoPath, - 'test.add.and.unset.config.option', - '^foo' - ) - expect(unset).toBeTruthy() - }) - - it('determines that a config option exists', async () => { - const repoPath = getRepoPath() - const result = await configOptionExists(repoPath, 'remote.origin.url') - expect(result).toBeTruthy() - }) - - it('determines that a config option does not exist', async () => { - const repoPath = getRepoPath() - const result = await configOptionExists(repoPath, 'this.key.does.not.exist') - expect(result).toBeFalsy() - }) - - it('successfully retrieves a config option', async () => { - const repoPath = getRepoPath() - const add = await addConfigOption(repoPath, 'test.get.config.option', 'foo') - expect(add).toBeTruthy() - const option = await getConfigOption(repoPath, 'test.get.config.option') - expect(option.value).toEqual('foo') - const unset = await unsetConfigOption(repoPath, 'test.get.config.option') - expect(unset).toBeTruthy() - }) - - it('gets a config option with value regex', async () => { - const repoPath = getRepoPath() - const add = await addConfigOption( - repoPath, - 'test.get.config.option', - 'foo bar' - ) - expect(add).toBeTruthy() - const option = await getConfigOption( - repoPath, - 'test.get.config.option', - '^foo' - ) - expect(option.value).toEqual('foo bar') - const unset = await unsetConfigOption( - repoPath, - 'test.get.config.option', - '^foo' - ) - expect(unset).toBeTruthy() - }) - - it('gets and unsets a config option', async () => { - const repoPath = getRepoPath() - const add = await addConfigOption( - repoPath, - 'test.get.and.unset.config.option', - 'foo' - ) - expect(add).toBeTruthy() - const getAndUnset = await getAndUnsetConfigOption( - repoPath, - 'test.get.and.unset.config.option' - ) - expect(getAndUnset.value).toEqual('foo') - }) - - it('gets and unsets a config option with value regex', async () => { - const repoPath = getRepoPath() - const add = await addConfigOption( - repoPath, - 'test.get.and.unset.config.option', - 'foo bar' - ) - expect(add).toBeTruthy() - const getAndUnset = await getAndUnsetConfigOption( - repoPath, - 'test.get.and.unset.config.option', - '^foo' - ) - expect(getAndUnset.value).toEqual('foo bar') - }) - - it('fails to get and unset a config option', async () => { - const repoPath = getRepoPath() - const getAndUnset = await getAndUnsetConfigOption( - repoPath, - 'this.key.does.not.exist' - ) - expect(getAndUnset.name).toEqual('') - expect(getAndUnset.value).toEqual('') - }) -}) diff --git a/__test__/git.unit.test.ts b/__test__/git.unit.test.ts deleted file mode 100644 index adf0448..0000000 --- a/__test__/git.unit.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -import * as path from 'path' -import {getRepoPath} from '../lib/git' - -const originalGitHubWorkspace = process.env['GITHUB_WORKSPACE'] - -describe('git tests', () => { - beforeAll(() => { - // GitHub workspace - process.env['GITHUB_WORKSPACE'] = __dirname - }) - - afterAll(() => { - // Restore GitHub workspace - delete process.env['GITHUB_WORKSPACE'] - if (originalGitHubWorkspace) { - process.env['GITHUB_WORKSPACE'] = originalGitHubWorkspace - } - }) - - test('getRepoPath', async () => { - expect(getRepoPath()).toEqual(process.env['GITHUB_WORKSPACE']) - expect(getRepoPath('foo')).toEqual( - path.resolve(process.env['GITHUB_WORKSPACE'] || '', 'foo') - ) - }) -}) diff --git a/__test__/utils.unit.test.ts b/__test__/utils.unit.test.ts new file mode 100644 index 0000000..1c2f0a9 --- /dev/null +++ b/__test__/utils.unit.test.ts @@ -0,0 +1,116 @@ +import * as path from 'path' +import * as utils from '../lib/utils' + +const originalGitHubWorkspace = process.env['GITHUB_WORKSPACE'] + +describe('utils tests', () => { + beforeAll(() => { + // GitHub workspace + process.env['GITHUB_WORKSPACE'] = __dirname + }) + + afterAll(() => { + // Restore GitHub workspace + delete process.env['GITHUB_WORKSPACE'] + if (originalGitHubWorkspace) { + process.env['GITHUB_WORKSPACE'] = originalGitHubWorkspace + } + }) + + test('getStringAsArray splits string input by newlines and commas', async () => { + const array = utils.getStringAsArray('1, 2, 3\n4, 5, 6') + expect(array.length).toEqual(6) + + const array2 = utils.getStringAsArray('') + expect(array2.length).toEqual(0) + }) + + test('getRepoPath successfully returns the path to the repository', async () => { + expect(utils.getRepoPath()).toEqual(process.env['GITHUB_WORKSPACE']) + expect(utils.getRepoPath('foo')).toEqual( + path.resolve(process.env['GITHUB_WORKSPACE'] || '', 'foo') + ) + }) + + test('getRemoteDetail successfully parses remote URLs', async () => { + const remote1 = utils.getRemoteDetail( + 'https://github.com/peter-evans/create-pull-request' + ) + expect(remote1.protocol).toEqual('HTTPS') + expect(remote1.repository).toEqual('peter-evans/create-pull-request') + + const remote2 = utils.getRemoteDetail( + 'https://xxx:x-oauth-basic@github.com/peter-evans/create-pull-request' + ) + expect(remote2.protocol).toEqual('HTTPS') + expect(remote2.repository).toEqual('peter-evans/create-pull-request') + + const remote3 = utils.getRemoteDetail( + 'git@github.com:peter-evans/create-pull-request.git' + ) + expect(remote3.protocol).toEqual('SSH') + expect(remote3.repository).toEqual('peter-evans/create-pull-request') + }) + + test('getRemoteDetail fails to parse a remote URL', async () => { + const remoteUrl = 'https://github.com/peter-evans' + try { + utils.getRemoteDetail(remoteUrl) + // Fail the test if an error wasn't thrown + expect(true).toEqual(false) + } catch (e) { + expect(e.message).toEqual( + `The format of '${remoteUrl}' is not a valid GitHub repository URL` + ) + } + }) + + test('secondsSinceEpoch returns the number of seconds since the Epoch', async () => { + const seconds = `${utils.secondsSinceEpoch()}` + expect(seconds.length).toEqual(10) + }) + + test('randomString returns strings of length 7', async () => { + for (let i = 0; i < 1000; i++) { + expect(utils.randomString().length).toEqual(7) + } + }) + + test('parseDisplayNameEmail successfully parses display name email formats', async () => { + const parsed1 = utils.parseDisplayNameEmail('abc def ') + expect(parsed1.name).toEqual('abc def') + expect(parsed1.email).toEqual('abc@def.com') + + const parsed2 = utils.parseDisplayNameEmail( + 'github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>' + ) + expect(parsed2.name).toEqual('github-actions[bot]') + expect(parsed2.email).toEqual( + '41898282+github-actions[bot]@users.noreply.github.com' + ) + }) + + test('parseDisplayNameEmail fails to parse display name email formats', async () => { + const displayNameEmail1 = 'abc@def.com' + try { + utils.parseDisplayNameEmail(displayNameEmail1) + // Fail the test if an error wasn't thrown + expect(true).toEqual(false) + } catch (e) { + expect(e.message).toEqual( + `The format of '${displayNameEmail1}' is not a valid email address with display name` + ) + } + + const displayNameEmail2 = ' < >' + try { + utils.parseDisplayNameEmail(displayNameEmail2) + // Fail the test if an error wasn't thrown + expect(true).toEqual(false) + } catch (e) { + expect(e.message).toEqual( + `The format of '${displayNameEmail2}' is not a valid email address with display name` + ) + } + }) +}) diff --git a/dist/index.js b/dist/index.js index 73bb52e..53cbf48 100644 --- a/dist/index.js +++ b/dist/index.js @@ -338,9 +338,7009 @@ function copyFile(srcFile, destFile, force) { } //# sourceMappingURL=io.js.map +/***/ }), + +/***/ 2: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + +const os = __webpack_require__(87); +const macosRelease = __webpack_require__(118); +const winRelease = __webpack_require__(49); + +const osName = (platform, release) => { + if (!platform && release) { + throw new Error('You can\'t specify a `release` without specifying `platform`'); + } + + platform = platform || os.platform(); + + let id; + + if (platform === 'darwin') { + if (!release && os.platform() === 'darwin') { + release = os.release(); + } + + const prefix = release ? (Number(release.split('.')[0]) > 15 ? 'macOS' : 'OS X') : 'macOS'; + id = release ? macosRelease(release).name : ''; + return prefix + (id ? ' ' + id : ''); + } + + if (platform === 'linux') { + if (!release && os.platform() === 'linux') { + release = os.release(); + } + + id = release ? release.replace(/^(\d+\.\d+).*/, '$1') : ''; + return 'Linux' + (id ? ' ' + id : ''); + } + + if (platform === 'win32') { + if (!release && os.platform() === 'win32') { + release = os.release(); + } + + id = release ? winRelease(release) : ''; + return 'Windows' + (id ? ' ' + id : ''); + } + + return platform; +}; + +module.exports = osName; + + /***/ }), /***/ 9: +/***/ (function(module, __unusedexports, __webpack_require__) { + +var once = __webpack_require__(969); + +var noop = function() {}; + +var isRequest = function(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +}; + +var isChildProcess = function(stream) { + return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 +}; + +var eos = function(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + + callback = once(callback || noop); + + var ws = stream._writableState; + var rs = stream._readableState; + var readable = opts.readable || (opts.readable !== false && stream.readable); + var writable = opts.writable || (opts.writable !== false && stream.writable); + var cancelled = false; + + var onlegacyfinish = function() { + if (!stream.writable) onfinish(); + }; + + var onfinish = function() { + writable = false; + if (!readable) callback.call(stream); + }; + + var onend = function() { + readable = false; + if (!writable) callback.call(stream); + }; + + var onexit = function(exitCode) { + callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); + }; + + var onerror = function(err) { + callback.call(stream, err); + }; + + var onclose = function() { + process.nextTick(onclosenexttick); + }; + + var onclosenexttick = function() { + if (cancelled) return; + if (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close')); + if (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close')); + }; + + var onrequest = function() { + stream.req.on('finish', onfinish); + }; + + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest(); + else stream.on('request', onrequest); + } else if (writable && !ws) { // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + + if (isChildProcess(stream)) stream.on('exit', onexit); + + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + + return function() { + cancelled = true; + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('exit', onexit); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +}; + +module.exports = eos; + + +/***/ }), + +/***/ 11: +/***/ (function(module) { + +// Returns a wrapper function that returns a wrapped callback +// The wrapper function should do some stuff, and return a +// presumably different callback function. +// This makes sure that own properties are retained, so that +// decorations and such are not lost along the way. +module.exports = wrappy +function wrappy (fn, cb) { + if (fn && cb) return wrappy(fn)(cb) + + if (typeof fn !== 'function') + throw new TypeError('need wrapper function') + + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k] + }) + + return wrapper + + function wrapper() { + var args = new Array(arguments.length) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + var ret = fn.apply(this, args) + var cb = args[args.length-1] + if (typeof ret === 'function' && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k] + }) + } + return ret + } +} + + +/***/ }), + +/***/ 15: +/***/ (function(module) { + +"use strict"; + + +const isWin = process.platform === 'win32'; + +function notFoundError(original, syscall) { + return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { + code: 'ENOENT', + errno: 'ENOENT', + syscall: `${syscall} ${original.command}`, + path: original.command, + spawnargs: original.args, + }); +} + +function hookChildProcess(cp, parsed) { + if (!isWin) { + return; + } + + const originalEmit = cp.emit; + + cp.emit = function (name, arg1) { + // If emitting "exit" event and exit code is 1, we need to check if + // the command exists and emit an "error" instead + // See https://github.com/IndigoUnited/node-cross-spawn/issues/16 + if (name === 'exit') { + const err = verifyENOENT(arg1, parsed, 'spawn'); + + if (err) { + return originalEmit.call(cp, 'error', err); + } + } + + return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params + }; +} + +function verifyENOENT(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawn'); + } + + return null; +} + +function verifyENOENTSync(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawnSync'); + } + + return null; +} + +module.exports = { + hookChildProcess, + verifyENOENT, + verifyENOENTSync, + notFoundError, +}; + + +/***/ }), + +/***/ 18: +/***/ (function(module) { + +module.exports = eval("require")("encoding"); + + +/***/ }), + +/***/ 49: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + +const os = __webpack_require__(87); +const execa = __webpack_require__(955); + +// Reference: https://www.gaijin.at/en/lstwinver.php +const names = new Map([ + ['10.0', '10'], + ['6.3', '8.1'], + ['6.2', '8'], + ['6.1', '7'], + ['6.0', 'Vista'], + ['5.2', 'Server 2003'], + ['5.1', 'XP'], + ['5.0', '2000'], + ['4.9', 'ME'], + ['4.1', '98'], + ['4.0', '95'] +]); + +const windowsRelease = release => { + const version = /\d+\.\d/.exec(release || os.release()); + + if (release && !version) { + throw new Error('`release` argument doesn\'t match `n.n`'); + } + + const ver = (version || [])[0]; + + // Server 2008, 2012, 2016, and 2019 versions are ambiguous with desktop versions and must be detected at runtime. + // If `release` is omitted or we're on a Windows system, and the version number is an ambiguous version + // then use `wmic` to get the OS caption: https://msdn.microsoft.com/en-us/library/aa394531(v=vs.85).aspx + // If `wmic` is obsoloete (later versions of Windows 10), use PowerShell instead. + // If the resulting caption contains the year 2008, 2012, 2016 or 2019, it is a server version, so return a server OS name. + if ((!release || release === os.release()) && ['6.1', '6.2', '6.3', '10.0'].includes(ver)) { + let stdout; + try { + stdout = execa.sync('wmic', ['os', 'get', 'Caption']).stdout || ''; + } catch (_) { + stdout = execa.sync('powershell', ['(Get-CimInstance -ClassName Win32_OperatingSystem).caption']).stdout || ''; + } + + const year = (stdout.match(/2008|2012|2016|2019/) || [])[0]; + + if (year) { + return `Server ${year}`; + } + } + + return names.get(ver); +}; + +module.exports = windowsRelease; + + +/***/ }), + +/***/ 55: +/***/ (function(module, __unusedexports, __webpack_require__) { + +module.exports = which +which.sync = whichSync + +var isWindows = process.platform === 'win32' || + process.env.OSTYPE === 'cygwin' || + process.env.OSTYPE === 'msys' + +var path = __webpack_require__(622) +var COLON = isWindows ? ';' : ':' +var isexe = __webpack_require__(742) + +function getNotFoundError (cmd) { + var er = new Error('not found: ' + cmd) + er.code = 'ENOENT' + + return er +} + +function getPathInfo (cmd, opt) { + var colon = opt.colon || COLON + var pathEnv = opt.path || process.env.PATH || '' + var pathExt = [''] + + pathEnv = pathEnv.split(colon) + + var pathExtExe = '' + if (isWindows) { + pathEnv.unshift(process.cwd()) + pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM') + pathExt = pathExtExe.split(colon) + + + // Always test the cmd itself first. isexe will check to make sure + // it's found in the pathExt set. + if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') + pathExt.unshift('') + } + + // If it has a slash, then we don't bother searching the pathenv. + // just check the file itself, and that's it. + if (cmd.match(/\//) || isWindows && cmd.match(/\\/)) + pathEnv = [''] + + return { + env: pathEnv, + ext: pathExt, + extExe: pathExtExe + } +} + +function which (cmd, opt, cb) { + if (typeof opt === 'function') { + cb = opt + opt = {} + } + + var info = getPathInfo(cmd, opt) + var pathEnv = info.env + var pathExt = info.ext + var pathExtExe = info.extExe + var found = [] + + ;(function F (i, l) { + if (i === l) { + if (opt.all && found.length) + return cb(null, found) + else + return cb(getNotFoundError(cmd)) + } + + var pathPart = pathEnv[i] + if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') + pathPart = pathPart.slice(1, -1) + + var p = path.join(pathPart, cmd) + if (!pathPart && (/^\.[\\\/]/).test(cmd)) { + p = cmd.slice(0, 2) + p + } + ;(function E (ii, ll) { + if (ii === ll) return F(i + 1, l) + var ext = pathExt[ii] + isexe(p + ext, { pathExt: pathExtExe }, function (er, is) { + if (!er && is) { + if (opt.all) + found.push(p + ext) + else + return cb(null, p + ext) + } + return E(ii + 1, ll) + }) + })(0, pathExt.length) + })(0, pathEnv.length) +} + +function whichSync (cmd, opt) { + opt = opt || {} + + var info = getPathInfo(cmd, opt) + var pathEnv = info.env + var pathExt = info.ext + var pathExtExe = info.extExe + var found = [] + + for (var i = 0, l = pathEnv.length; i < l; i ++) { + var pathPart = pathEnv[i] + if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') + pathPart = pathPart.slice(1, -1) + + var p = path.join(pathPart, cmd) + if (!pathPart && /^\.[\\\/]/.test(cmd)) { + p = cmd.slice(0, 2) + p + } + for (var j = 0, ll = pathExt.length; j < ll; j ++) { + var cur = p + pathExt[j] + var is + try { + is = isexe.sync(cur, { pathExt: pathExtExe }) + if (is) { + if (opt.all) + found.push(cur) + else + return cur + } + } catch (ex) {} + } + } + + if (opt.all && found.length) + return found + + if (opt.nothrow) + return null + + throw getNotFoundError(cmd) +} + + +/***/ }), + +/***/ 62: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "v1", { + enumerable: true, + get: function () { + return _v.default; + } +}); +Object.defineProperty(exports, "v3", { + enumerable: true, + get: function () { + return _v2.default; + } +}); +Object.defineProperty(exports, "v4", { + enumerable: true, + get: function () { + return _v3.default; + } +}); +Object.defineProperty(exports, "v5", { + enumerable: true, + get: function () { + return _v4.default; + } +}); + +var _v = _interopRequireDefault(__webpack_require__(893)); + +var _v2 = _interopRequireDefault(__webpack_require__(209)); + +var _v3 = _interopRequireDefault(__webpack_require__(733)); + +var _v4 = _interopRequireDefault(__webpack_require__(384)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ 87: +/***/ (function(module) { + +module.exports = require("os"); + +/***/ }), + +/***/ 118: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + +const os = __webpack_require__(87); + +const nameMap = new Map([ + [20, ['Big Sur', '11']], + [19, ['Catalina', '10.15']], + [18, ['Mojave', '10.14']], + [17, ['High Sierra', '10.13']], + [16, ['Sierra', '10.12']], + [15, ['El Capitan', '10.11']], + [14, ['Yosemite', '10.10']], + [13, ['Mavericks', '10.9']], + [12, ['Mountain Lion', '10.8']], + [11, ['Lion', '10.7']], + [10, ['Snow Leopard', '10.6']], + [9, ['Leopard', '10.5']], + [8, ['Tiger', '10.4']], + [7, ['Panther', '10.3']], + [6, ['Jaguar', '10.2']], + [5, ['Puma', '10.1']] +]); + +const macosRelease = release => { + release = Number((release || os.release()).split('.')[0]); + + const [name, version] = nameMap.get(release); + + return { + name, + version + }; +}; + +module.exports = macosRelease; +// TODO: remove this in the next major version +module.exports.default = macosRelease; + + +/***/ }), + +/***/ 129: +/***/ (function(module) { + +module.exports = require("child_process"); + +/***/ }), + +/***/ 145: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + +const pump = __webpack_require__(453); +const bufferStream = __webpack_require__(966); + +class MaxBufferError extends Error { + constructor() { + super('maxBuffer exceeded'); + this.name = 'MaxBufferError'; + } +} + +function getStream(inputStream, options) { + if (!inputStream) { + return Promise.reject(new Error('Expected a stream')); + } + + options = Object.assign({maxBuffer: Infinity}, options); + + const {maxBuffer} = options; + + let stream; + return new Promise((resolve, reject) => { + const rejectPromise = error => { + if (error) { // A null check + error.bufferedData = stream.getBufferedValue(); + } + reject(error); + }; + + stream = pump(inputStream, bufferStream(options), error => { + if (error) { + rejectPromise(error); + return; + } + + resolve(); + }); + + stream.on('data', () => { + if (stream.getBufferedLength() > maxBuffer) { + rejectPromise(new MaxBufferError()); + } + }); + }).then(() => stream.getBufferedValue()); +} + +module.exports = getStream; +module.exports.buffer = (stream, options) => getStream(stream, Object.assign({}, options, {encoding: 'buffer'})); +module.exports.array = (stream, options) => getStream(stream, Object.assign({}, options, {array: true})); +module.exports.MaxBufferError = MaxBufferError; + + +/***/ }), + +/***/ 159: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createOrUpdateBranch = exports.tryFetch = void 0; +const core = __importStar(__webpack_require__(470)); +const uuid_1 = __webpack_require__(62); +const CHERRYPICK_EMPTY = 'The previous cherry-pick is now empty, possibly due to conflict resolution.'; +function tryFetch(git, branch) { + return __awaiter(this, void 0, void 0, function* () { + try { + yield git.fetch([`${branch}:refs/remotes/origin/${branch}`]); + return true; + } + catch (_a) { + return false; + } + }); +} +exports.tryFetch = tryFetch; +// Return true if branch2 is ahead of branch1 +function isAhead(git, branch1, branch2) { + return __awaiter(this, void 0, void 0, function* () { + const result = yield git.revList([`${branch1}...${branch2}`], ['--right-only', '--count']); + return Number(result) > 0; + }); +} +// Return true if branch2 is behind branch1 +function isBehind(git, branch1, branch2) { + return __awaiter(this, void 0, void 0, function* () { + const result = yield git.revList([`${branch1}...${branch2}`], ['--left-only', '--count']); + return Number(result) > 0; + }); +} +// Return true if branch2 is even with branch1 +function isEven(git, branch1, branch2) { + return __awaiter(this, void 0, void 0, function* () { + return (!(yield isAhead(git, branch1, branch2)) && + !(yield isBehind(git, branch1, branch2))); + }); +} +function hasDiff(git, branch1, branch2) { + return __awaiter(this, void 0, void 0, function* () { + const result = yield git.diff([`${branch1}..${branch2}`]); + return result.length > 0; + }); +} +function splitLines(multilineString) { + return multilineString + .split('\n') + .map(s => s.trim()) + .filter(x => x !== ''); +} +function createOrUpdateBranch(git, commitMessage, baseInput, branch) { + return __awaiter(this, void 0, void 0, function* () { + // Get the working base. This may or may not be the actual base. + const workingBase = yield git.symbolicRef('HEAD', ['--short']); + // If the base is not specified it is assumed to be the working base. + const base = baseInput ? baseInput : workingBase; + // Set the default return values + const result = { + action: 'none', + base: base, + hasDiffWithBase: false + }; + // Save the working base changes to a temporary branch + const tempBranch = uuid_1.v4(); + yield git.checkout(tempBranch, 'HEAD'); + // Commit any uncomitted changes + if (yield git.isDirty(true)) { + core.info('Uncommitted changes found. Adding a commit.'); + yield git.exec(['add', '-A']); + yield git.commit(['-m', commitMessage]); + } + // Perform fetch and reset the working base + // Commits made during the workflow will be removed + yield git.fetch([`${workingBase}:${workingBase}`], 'origin', ['--force']); + // If the working base is not the base, rebase the temp branch commits + if (workingBase != base) { + core.info(`Rebasing commits made to branch '${workingBase}' on to base branch '${base}'`); + // Checkout the actual base + yield git.fetch([`${base}:${base}`], 'origin', ['--force']); + yield git.checkout(base); + // Cherrypick commits from the temporary branch starting from the working base + const commits = yield git.revList([`${workingBase}..${tempBranch}`, '.'], ['--reverse']); + for (const commit of splitLines(commits)) { + const result = yield git.cherryPick(['--strategy=recursive', '--strategy-option=theirs', commit], true); + if (result.exitCode != 0 && !result.stderr.includes(CHERRYPICK_EMPTY)) { + throw new Error(`Unexpected error: ${result.stderr}`); + } + } + // Reset the temp branch to the working index + yield git.checkout(tempBranch, 'HEAD'); + // Reset the base + yield git.fetch([`${base}:${base}`], 'origin', ['--force']); + } + // Try to fetch the pull request branch + if (!(yield tryFetch(git, branch))) { + // The pull request branch does not exist + core.info(`Pull request branch '${branch}' does not exist yet.`); + // Create the pull request branch + yield git.checkout(branch, 'HEAD'); + // Check if the pull request branch is ahead of the base + result.hasDiffWithBase = yield isAhead(git, base, branch); + if (result.hasDiffWithBase) { + result.action = 'created'; + core.info(`Created branch '${branch}'`); + } + else { + core.info(`Branch '${branch}' is not ahead of base '${base}' and will not be created`); + } + } + else { + // The pull request branch exists + core.info(`Pull request branch '${branch}' already exists as remote branch 'origin/${branch}'`); + // Checkout the pull request branch + yield git.checkout(branch); + if (yield hasDiff(git, branch, tempBranch)) { + // If the branch differs from the recreated temp version then the branch is reset + // For changes on base this action is similar to a rebase of the pull request branch + core.info(`Resetting '${branch}'`); + // Alternatively, git switch -C branch tempBranch + yield git.checkout(branch, tempBranch); + } + // Check if the pull request branch has been updated + // If the branch was reset or updated it will be ahead + // It may be behind if a reset now results in no diff with the base + if (!(yield isEven(git, `origin/${branch}`, branch))) { + result.action = 'updated'; + core.info(`Updated branch '${branch}'`); + } + else { + core.info(`Branch '${branch}' is even with its remote and will not be updated`); + } + // Check if the pull request branch is ahead of the base + result.hasDiffWithBase = yield isAhead(git, base, branch); + } + // Delete the temporary branch + yield git.exec(['branch', '--delete', '--force', tempBranch]); + return result; + }); +} +exports.createOrUpdateBranch = createOrUpdateBranch; + + +/***/ }), + +/***/ 168: +/***/ (function(module) { + +"use strict"; + +const alias = ['stdin', 'stdout', 'stderr']; + +const hasAlias = opts => alias.some(x => Boolean(opts[x])); + +module.exports = opts => { + if (!opts) { + return null; + } + + if (opts.stdio && hasAlias(opts)) { + throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${alias.map(x => `\`${x}\``).join(', ')}`); + } + + if (typeof opts.stdio === 'string') { + return opts.stdio; + } + + const stdio = opts.stdio || []; + + if (!Array.isArray(stdio)) { + throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); + } + + const result = []; + const len = Math.max(stdio.length, alias.length); + + for (let i = 0; i < len; i++) { + let value = null; + + if (stdio[i] !== undefined) { + value = stdio[i]; + } else if (opts[alias[i]] !== undefined) { + value = opts[alias[i]]; + } + + result[i] = value; + } + + return result; +}; + + +/***/ }), + +/***/ 197: +/***/ (function(module, __unusedexports, __webpack_require__) { + +module.exports = isexe +isexe.sync = sync + +var fs = __webpack_require__(747) + +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), options) +} + +function checkStat (stat, options) { + return stat.isFile() && checkMode(stat, options) +} + +function checkMode (stat, options) { + var mod = stat.mode + var uid = stat.uid + var gid = stat.gid + + var myUid = options.uid !== undefined ? + options.uid : process.getuid && process.getuid() + var myGid = options.gid !== undefined ? + options.gid : process.getgid && process.getgid() + + var u = parseInt('100', 8) + var g = parseInt('010', 8) + var o = parseInt('001', 8) + var ug = u | g + + var ret = (mod & o) || + (mod & g) && gid === myGid || + (mod & u) && uid === myUid || + (mod & ug) && myUid === 0 + + return ret +} + + +/***/ }), + +/***/ 198: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const core = __importStar(__webpack_require__(470)); +const create_pull_request_1 = __webpack_require__(940); +const util_1 = __webpack_require__(669); +const utils = __importStar(__webpack_require__(611)); +function run() { + return __awaiter(this, void 0, void 0, function* () { + try { + const inputs = { + token: core.getInput('token'), + path: core.getInput('path'), + commitMessage: core.getInput('commit-message'), + committer: core.getInput('committer'), + author: core.getInput('author'), + title: core.getInput('title'), + body: core.getInput('body'), + labels: utils.getInputAsArray('labels'), + assignees: utils.getInputAsArray('assignees'), + reviewers: utils.getInputAsArray('reviewers'), + teamReviewers: utils.getInputAsArray('team-reviewers'), + milestone: Number(core.getInput('milestone')), + draft: core.getInput('draft') === 'true', + branch: core.getInput('branch'), + requestToParent: core.getInput('request-to-parent') === 'true', + base: core.getInput('base'), + branchSuffix: core.getInput('branch-suffix') + }; + core.debug(`Inputs: ${util_1.inspect(inputs)}`); + yield create_pull_request_1.createPullRequest(inputs); + } + catch (error) { + core.setFailed(error.message); + } + }); +} +run(); + + +/***/ }), + +/***/ 209: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _v = _interopRequireDefault(__webpack_require__(212)); + +var _md = _interopRequireDefault(__webpack_require__(803)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v3 = (0, _v.default)('v3', 0x30, _md.default); +var _default = v3; +exports.default = _default; + +/***/ }), + +/***/ 211: +/***/ (function(module) { + +module.exports = require("https"); + +/***/ }), + +/***/ 212: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +exports.URL = exports.DNS = void 0; + +var _bytesToUuid = _interopRequireDefault(__webpack_require__(390)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function uuidToBytes(uuid) { + // Note: We assume we're being passed a valid uuid string + const bytes = []; + uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) { + bytes.push(parseInt(hex, 16)); + }); + return bytes; +} + +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); // UTF8 escape + + const bytes = []; + + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)); + } + + return bytes; +} + +const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +exports.DNS = DNS; +const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +exports.URL = URL; + +function _default(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + if (typeof value === 'string') { + value = stringToBytes(value); + } + + if (typeof namespace === 'string') { + namespace = uuidToBytes(namespace); + } + + if (!Array.isArray(value)) { + throw TypeError('value must be an array of bytes'); + } + + if (!Array.isArray(namespace) || namespace.length !== 16) { + throw TypeError('namespace must be uuid string or an Array of 16 byte values'); + } // Per 4.3 + + + const bytes = hashfunc(namespace.concat(value)); + bytes[6] = bytes[6] & 0x0f | version; + bytes[8] = bytes[8] & 0x3f | 0x80; + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + + return buf; + } + + return (0, _bytesToUuid.default)(bytes); + } // Function#name is not settable on some platforms (#270) + + + try { + generateUUID.name = name; // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support + + + generateUUID.DNS = DNS; + generateUUID.URL = URL; + return generateUUID; +} + +/***/ }), + +/***/ 260: +/***/ (function(module, __unusedexports, __webpack_require__) { + +// Note: since nyc uses this module to output coverage, any lines +// that are in the direct sync flow of nyc's outputCoverage are +// ignored, since we can never get coverage for them. +var assert = __webpack_require__(357) +var signals = __webpack_require__(654) +var isWin = /^win/i.test(process.platform) + +var EE = __webpack_require__(614) +/* istanbul ignore if */ +if (typeof EE !== 'function') { + EE = EE.EventEmitter +} + +var emitter +if (process.__signal_exit_emitter__) { + emitter = process.__signal_exit_emitter__ +} else { + emitter = process.__signal_exit_emitter__ = new EE() + emitter.count = 0 + emitter.emitted = {} +} + +// Because this emitter is a global, we have to check to see if a +// previous version of this library failed to enable infinite listeners. +// I know what you're about to say. But literally everything about +// signal-exit is a compromise with evil. Get used to it. +if (!emitter.infinite) { + emitter.setMaxListeners(Infinity) + emitter.infinite = true +} + +module.exports = function (cb, opts) { + assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler') + + if (loaded === false) { + load() + } + + var ev = 'exit' + if (opts && opts.alwaysLast) { + ev = 'afterexit' + } + + var remove = function () { + emitter.removeListener(ev, cb) + if (emitter.listeners('exit').length === 0 && + emitter.listeners('afterexit').length === 0) { + unload() + } + } + emitter.on(ev, cb) + + return remove +} + +module.exports.unload = unload +function unload () { + if (!loaded) { + return + } + loaded = false + + signals.forEach(function (sig) { + try { + process.removeListener(sig, sigListeners[sig]) + } catch (er) {} + }) + process.emit = originalProcessEmit + process.reallyExit = originalProcessReallyExit + emitter.count -= 1 +} + +function emit (event, code, signal) { + if (emitter.emitted[event]) { + return + } + emitter.emitted[event] = true + emitter.emit(event, code, signal) +} + +// { : , ... } +var sigListeners = {} +signals.forEach(function (sig) { + sigListeners[sig] = function listener () { + // If there are no other listeners, an exit is coming! + // Simplest way: remove us and then re-send the signal. + // We know that this will kill the process, so we can + // safely emit now. + var listeners = process.listeners(sig) + if (listeners.length === emitter.count) { + unload() + emit('exit', null, sig) + /* istanbul ignore next */ + emit('afterexit', null, sig) + /* istanbul ignore next */ + if (isWin && sig === 'SIGHUP') { + // "SIGHUP" throws an `ENOSYS` error on Windows, + // so use a supported signal instead + sig = 'SIGINT' + } + process.kill(process.pid, sig) + } + } +}) + +module.exports.signals = function () { + return signals +} + +module.exports.load = load + +var loaded = false + +function load () { + if (loaded) { + return + } + loaded = true + + // This is the number of onSignalExit's that are in play. + // It's important so that we can count the correct number of + // listeners on signals, and don't wait for the other one to + // handle it instead of us. + emitter.count += 1 + + signals = signals.filter(function (sig) { + try { + process.on(sig, sigListeners[sig]) + return true + } catch (er) { + return false + } + }) + + process.emit = processEmit + process.reallyExit = processReallyExit +} + +var originalProcessReallyExit = process.reallyExit +function processReallyExit (code) { + process.exitCode = code || 0 + emit('exit', process.exitCode, null) + /* istanbul ignore next */ + emit('afterexit', process.exitCode, null) + /* istanbul ignore next */ + originalProcessReallyExit.call(process, process.exitCode) +} + +var originalProcessEmit = process.emit +function processEmit (ev, arg) { + if (ev === 'exit') { + if (arg !== undefined) { + process.exitCode = arg + } + var ret = originalProcessEmit.apply(this, arguments) + emit('exit', process.exitCode, null) + /* istanbul ignore next */ + emit('afterexit', process.exitCode, null) + return ret + } else { + return originalProcessEmit.apply(this, arguments) + } +} + + +/***/ }), + +/***/ 280: +/***/ (function(module) { + +module.exports = register + +function register (state, name, method, options) { + if (typeof method !== 'function') { + throw new Error('method for before hook must be a function') + } + + if (!options) { + options = {} + } + + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options) + }, method)() + } + + return Promise.resolve() + .then(function () { + if (!state.registry[name]) { + return method(options) + } + + return (state.registry[name]).reduce(function (method, registered) { + return registered.hook.bind(null, method, options) + }, method)() + }) +} + + +/***/ }), + +/***/ 289: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitCommandManager = void 0; +const exec = __importStar(__webpack_require__(986)); +const io = __importStar(__webpack_require__(1)); +const tagsRefSpec = '+refs/tags/*:refs/tags/*'; +class GitCommandManager { + constructor(workingDirectory, gitPath) { + this.workingDirectory = workingDirectory; + this.gitPath = gitPath; + } + static create(workingDirectory) { + return __awaiter(this, void 0, void 0, function* () { + const gitPath = yield io.which('git', true); + return new GitCommandManager(workingDirectory, gitPath); + }); + } + setAuthGitOptions(authGitOptions) { + this.authGitOptions = authGitOptions; + } + setIdentityGitOptions(identityGitOptions) { + this.identityGitOptions = identityGitOptions; + } + checkout(ref, startPoint) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['checkout', '--progress']; + if (startPoint) { + args.push('-B', ref, startPoint); + } + else { + args.push(ref); + } + yield this.exec(args); + }); + } + cherryPick(options, allowAllExitCodes = false) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['cherry-pick']; + if (this.identityGitOptions) { + args.unshift(...this.identityGitOptions); + } + if (options) { + args.push(...options); + } + return yield this.exec(args, allowAllExitCodes); + }); + } + commit(options) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['commit']; + if (this.identityGitOptions) { + args.unshift(...this.identityGitOptions); + } + if (options) { + args.push(...options); + } + yield this.exec(args); + }); + } + diff(options) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['-c', 'core.pager=cat', 'diff']; + if (options) { + args.push(...options); + } + const output = yield this.exec(args); + return output.stdout.trim(); + }); + } + fetch(refSpec, remoteName, options) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['-c', 'protocol.version=2']; + if (this.authGitOptions) { + args.push(...this.authGitOptions); + } + args.push('fetch'); + if (!refSpec.some(x => x === tagsRefSpec)) { + args.push('--no-tags'); + } + args.push('--progress', '--no-recurse-submodules'); + if (options) { + args.push(...options); + } + if (remoteName) { + args.push(remoteName); + } + else { + args.push('origin'); + } + for (const arg of refSpec) { + args.push(arg); + } + yield this.exec(args); + }); + } + getWorkingDirectory() { + return this.workingDirectory; + } + isDirty(untracked) { + return __awaiter(this, void 0, void 0, function* () { + const diffArgs = ['--abbrev=40', '--full-index', '--raw']; + // Check staged changes + if (yield this.diff([...diffArgs, '--staged'])) { + return true; + } + // Check working index changes + if (yield this.diff(diffArgs)) { + return true; + } + // Check untracked changes + if (untracked && (yield this.status(['--porcelain', '-unormal']))) { + return true; + } + return false; + }); + } + push(options) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['push']; + if (this.authGitOptions) { + args.unshift(...this.authGitOptions); + } + if (options) { + args.push(...options); + } + yield this.exec(args); + }); + } + revList(commitExpression, options) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['rev-list']; + if (options) { + args.push(...options); + } + args.push(...commitExpression); + const output = yield this.exec(args); + return output.stdout.trim(); + }); + } + revParse(ref, options) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['rev-parse']; + if (options) { + args.push(...options); + } + args.push(ref); + const output = yield this.exec(args); + return output.stdout.trim(); + }); + } + status(options) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['status']; + if (options) { + args.push(...options); + } + const output = yield this.exec(args); + return output.stdout.trim(); + }); + } + symbolicRef(ref, options) { + return __awaiter(this, void 0, void 0, function* () { + const args = ['symbolic-ref', ref]; + if (options) { + args.push(...options); + } + const output = yield this.exec(args); + return output.stdout.trim(); + }); + } + tryConfigUnset(configKey, globalConfig) { + return __awaiter(this, void 0, void 0, function* () { + const output = yield this.exec([ + 'config', + globalConfig ? '--global' : '--local', + '--unset-all', + configKey + ], true); + return output.exitCode === 0; + }); + } + tryGetFetchUrl() { + return __awaiter(this, void 0, void 0, function* () { + const output = yield this.exec(['config', '--local', '--get', 'remote.origin.url'], true); + if (output.exitCode !== 0) { + return ''; + } + const stdout = output.stdout.trim(); + if (stdout.includes('\n')) { + return ''; + } + return stdout; + }); + } + exec(args, allowAllExitCodes = false) { + return __awaiter(this, void 0, void 0, function* () { + const result = new GitOutput(); + const env = {}; + for (const key of Object.keys(process.env)) { + env[key] = process.env[key]; + } + const stdout = []; + const stderr = []; + const options = { + cwd: this.workingDirectory, + env, + ignoreReturnCode: allowAllExitCodes, + listeners: { + stdout: (data) => { + stdout.push(data.toString()); + }, + stderr: (data) => { + stderr.push(data.toString()); + } + } + }; + result.exitCode = yield exec.exec(`"${this.gitPath}"`, args, options); + result.stdout = stdout.join(''); + result.stderr = stderr.join(''); + return result; + }); + } +} +exports.GitCommandManager = GitCommandManager; +class GitOutput { + constructor() { + this.stdout = ''; + this.stderr = ''; + this.exitCode = 0; + } +} + + +/***/ }), + +/***/ 299: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +const VERSION = "2.2.3"; + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + + response.data.total_count = totalCount; + return response; +} + +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + next() { + if (!url) { + return Promise.resolve({ + done: true + }); + } + + return requestMethod({ + method, + url, + headers + }).then(normalizePaginatedListResponse).then(response => { + // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + url = ((response.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { + value: response + }; + }); + } + + }) + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then(result => { + if (result.done) { + return results; + } + + let earlyExit = false; + + function done() { + earlyExit = true; + } + + results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + + if (earlyExit) { + return results; + } + + return gather(octokit, results, iterator, mapFn); + }); +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.paginateRest = paginateRest; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 306: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + + +const fs = __webpack_require__(747); +const shebangCommand = __webpack_require__(907); + +function readShebang(command) { + // Read the first 150 bytes from the file + const size = 150; + let buffer; + + if (Buffer.alloc) { + // Node.js v4.5+ / v5.10+ + buffer = Buffer.alloc(size); + } else { + // Old Node.js API + buffer = new Buffer(size); + buffer.fill(0); // zero-fill + } + + let fd; + + try { + fd = fs.openSync(command, 'r'); + fs.readSync(fd, buffer, 0, size, 0); + fs.closeSync(fd); + } catch (e) { /* Empty */ } + + // Attempt to extract shebang (null is returned if not a shebang) + return shebangCommand(buffer.toString()); +} + +module.exports = readShebang; + + +/***/ }), + +/***/ 323: +/***/ (function(module) { + +"use strict"; + + +var isStream = module.exports = function (stream) { + return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'; +}; + +isStream.writable = function (stream) { + return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object'; +}; + +isStream.readable = function (stream) { + return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object'; +}; + +isStream.duplex = function (stream) { + return isStream.writable(stream) && isStream.readable(stream); +}; + +isStream.transform = function (stream) { + return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object'; +}; + + +/***/ }), + +/***/ 357: +/***/ (function(module) { + +module.exports = require("assert"); + +/***/ }), + +/***/ 384: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _v = _interopRequireDefault(__webpack_require__(212)); + +var _sha = _interopRequireDefault(__webpack_require__(498)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v5 = (0, _v.default)('v5', 0x50, _sha.default); +var _default = v5; +exports.default = _default; + +/***/ }), + +/***/ 385: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var isPlainObject = _interopDefault(__webpack_require__(626)); +var universalUserAgent = __webpack_require__(796); + +function lowercaseKeys(object) { + if (!object) { + return {}; + } + + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) Object.assign(result, { + [key]: options[key] + });else result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { + [key]: options[key] + }); + } + }); + return result; +} + +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); + } else { + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates + + + options.headers = lowercaseKeys(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); + } + + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; +} + +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + + if (names.length === 0) { + return url; + } + + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +const urlVariableRegex = /\{[^}]+\}/g; + +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} + +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + + if (!matches) { + return []; + } + + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* istanbul ignore file */ +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + + return part; + }).join(""); +} + +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} + +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} + +function isDefined(value) { + return value !== undefined && value !== null; +} + +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} + +function getValues(context, operator, key, modifier) { + var value = context[key], + result = []; + + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + + return result; +} + +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} + +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + + if (operator && operator !== "+") { + var separator = ","; + + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{+$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + + const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequset = /application\/octet-stream/i.test(headers.accept); + + if (!isBinaryRequset) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } + + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } + } + } // default content-type for JSON if body is set + + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); +} + +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "6.0.3"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] + } +}; + +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 390: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +/** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ +const byteToHex = []; + +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).substr(1)); +} + +function bytesToUuid(buf, offset_) { + const offset = offset_ || 0; // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + + return (byteToHex[buf[offset + 0]] + byteToHex[buf[offset + 1]] + byteToHex[buf[offset + 2]] + byteToHex[buf[offset + 3]] + '-' + byteToHex[buf[offset + 4]] + byteToHex[buf[offset + 5]] + '-' + byteToHex[buf[offset + 6]] + byteToHex[buf[offset + 7]] + '-' + byteToHex[buf[offset + 8]] + byteToHex[buf[offset + 9]] + '-' + byteToHex[buf[offset + 10]] + byteToHex[buf[offset + 11]] + byteToHex[buf[offset + 12]] + byteToHex[buf[offset + 13]] + byteToHex[buf[offset + 14]] + byteToHex[buf[offset + 15]]).toLowerCase(); +} + +var _default = bytesToUuid; +exports.default = _default; + +/***/ }), + +/***/ 413: +/***/ (function(module) { + +module.exports = require("stream"); + +/***/ }), + +/***/ 417: +/***/ (function(module) { + +module.exports = require("crypto"); + +/***/ }), + +/***/ 427: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + +// Older verions of Node.js might not have `util.getSystemErrorName()`. +// In that case, fall back to a deprecated internal. +const util = __webpack_require__(669); + +let uv; + +if (typeof util.getSystemErrorName === 'function') { + module.exports = util.getSystemErrorName; +} else { + try { + uv = process.binding('uv'); + + if (typeof uv.errname !== 'function') { + throw new TypeError('uv.errname is not a function'); + } + } catch (err) { + console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err); + uv = null; + } + + module.exports = code => errname(uv, code); +} + +// Used for testing the fallback behavior +module.exports.__test__ = errname; + +function errname(uv, code) { + if (uv) { + return uv.errname(code); + } + + if (!(code < 0)) { + throw new Error('err >= 0'); + } + + return `Unknown system error ${code}`; +} + + + +/***/ }), + +/***/ 431: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const os = __importStar(__webpack_require__(87)); +/** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ +function issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + os.EOL); +} +exports.issueCommand = issueCommand; +function issue(name, message = '') { + issueCommand(name, {}, message); +} +exports.issue = issue; +const CMD_STRING = '::'; +class Command { + constructor(command, properties, message) { + if (!command) { + command = 'missing.command'; + } + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += ' '; + let first = true; + for (const key in this.properties) { + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) { + first = false; + } + else { + cmdStr += ','; + } + cmdStr += `${key}=${escapeProperty(val)}`; + } + } + } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; + } +} +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +function toCommandValue(input) { + if (input === null || input === undefined) { + return ''; + } + else if (typeof input === 'string' || input instanceof String) { + return input; + } + return JSON.stringify(input); +} +exports.toCommandValue = toCommandValue; +function escapeData(s) { + return toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A'); +} +function escapeProperty(s) { + return toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + .replace(/:/g, '%3A') + .replace(/,/g, '%2C'); +} +//# sourceMappingURL=command.js.map + +/***/ }), + +/***/ 448: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +var universalUserAgent = __webpack_require__(796); +var beforeAfterHook = __webpack_require__(523); +var request = __webpack_require__(753); +var graphql = __webpack_require__(898); +var authToken = __webpack_require__(813); + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +const VERSION = "3.1.0"; + +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(_objectSpread2(_objectSpread2({}, requestDefaults), {}, { + baseUrl: requestDefaults.baseUrl.replace(/\/api\/v3$/, "/api") + })); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registred. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const auth = options.authStrategy(Object.assign({ + request: this.request + }, options.auth)); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); + }); + } + + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } + + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + + + static plugin(...newPlugins) { + var _a; + + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; + } + +} +Octokit.VERSION = VERSION; +Octokit.plugins = []; + +exports.Octokit = Octokit; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 453: +/***/ (function(module, __unusedexports, __webpack_require__) { + +var once = __webpack_require__(969) +var eos = __webpack_require__(9) +var fs = __webpack_require__(747) // we only need fs to get the ReadStream and WriteStream prototypes + +var noop = function () {} +var ancient = /^v?\.0/.test(process.version) + +var isFn = function (fn) { + return typeof fn === 'function' +} + +var isFS = function (stream) { + if (!ancient) return false // newer node version do not need to care about fs is a special way + if (!fs) return false // browser + return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close) +} + +var isRequest = function (stream) { + return stream.setHeader && isFn(stream.abort) +} + +var destroyer = function (stream, reading, writing, callback) { + callback = once(callback) + + var closed = false + stream.on('close', function () { + closed = true + }) + + eos(stream, {readable: reading, writable: writing}, function (err) { + if (err) return callback(err) + closed = true + callback() + }) + + var destroyed = false + return function (err) { + if (closed) return + if (destroyed) return + destroyed = true + + if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks + if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want + + if (isFn(stream.destroy)) return stream.destroy() + + callback(err || new Error('stream was destroyed')) + } +} + +var call = function (fn) { + fn() +} + +var pipe = function (from, to) { + return from.pipe(to) +} + +var pump = function () { + var streams = Array.prototype.slice.call(arguments) + var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop + + if (Array.isArray(streams[0])) streams = streams[0] + if (streams.length < 2) throw new Error('pump requires two streams per minimum') + + var error + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1 + var writing = i > 0 + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err + if (err) destroys.forEach(call) + if (reading) return + destroys.forEach(call) + callback(error) + }) + }) + + return streams.reduce(pipe) +} + +module.exports = pump + + +/***/ }), + +/***/ 454: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var Stream = _interopDefault(__webpack_require__(413)); +var http = _interopDefault(__webpack_require__(605)); +var Url = _interopDefault(__webpack_require__(835)); +var https = _interopDefault(__webpack_require__(211)); +var zlib = _interopDefault(__webpack_require__(761)); + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = __webpack_require__(18).convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parse_url(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parse_url(`${input}`); + } + input = {}; + } else { + parsedURL = parse_url(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; +const resolve_url = Url.resolve; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + request.body.destroy(error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + finalize(); + }); + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + const locationURL = location === null ? null : resolve_url(request.url, location); + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout + }; + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +module.exports = exports = fetch; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = exports; +exports.Headers = Headers; +exports.Request = Request; +exports.Response = Response; +exports.FetchError = FetchError; + + +/***/ }), + +/***/ 463: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var deprecation = __webpack_require__(692); +var once = _interopDefault(__webpack_require__(969)); + +const logOnce = once(deprecation => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ + +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = "HttpError"; + this.status = statusCode; + Object.defineProperty(this, "code", { + get() { + logOnce(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + } + + }); + this.headers = options.headers || {}; // redact request credentials without mutating original request options + + const requestCopy = Object.assign({}, options.request); + + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") + }); + } + + requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + } + +} + +exports.RequestError = RequestError; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 468: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitConfigHelper = exports.ConfigOption = void 0; +const core = __importStar(__webpack_require__(470)); +class ConfigOption { + constructor() { + this.name = ''; + this.value = ''; + } +} +exports.ConfigOption = ConfigOption; +class GitConfigHelper { + constructor(git) { + this.git = git; + } + addConfigOption(name, value) { + return __awaiter(this, void 0, void 0, function* () { + const result = yield this.git.exec(['config', '--local', '--add', name, value], true); + return result.exitCode === 0; + }); + } + unsetConfigOption(name, valueRegex = '.') { + return __awaiter(this, void 0, void 0, function* () { + const result = yield this.git.exec(['config', '--local', '--unset', name, valueRegex], true); + return result.exitCode === 0; + }); + } + configOptionExists(name, valueRegex = '.') { + return __awaiter(this, void 0, void 0, function* () { + const result = yield this.git.exec(['config', '--local', '--name-only', '--get-regexp', name, valueRegex], true); + return result.exitCode === 0; + }); + } + getConfigOption(name, valueRegex = '.') { + return __awaiter(this, void 0, void 0, function* () { + const option = new ConfigOption(); + const result = yield this.git.exec(['config', '--local', '--get-regexp', name, valueRegex], true); + option.name = name; + option.value = result.stdout.trim().split(`${name} `)[1]; + return option; + }); + } + getAndUnsetConfigOption(name, valueRegex = '.') { + return __awaiter(this, void 0, void 0, function* () { + if (yield this.configOptionExists(name, valueRegex)) { + const option = yield this.getConfigOption(name, valueRegex); + if (yield this.unsetConfigOption(name, valueRegex)) { + core.debug(`Unset config option '${name}'`); + return option; + } + } + return new ConfigOption(); + }); + } +} +exports.GitConfigHelper = GitConfigHelper; + + +/***/ }), + +/***/ 470: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const command_1 = __webpack_require__(431); +const os = __importStar(__webpack_require__(87)); +const path = __importStar(__webpack_require__(622)); +/** + * The code to exit an action + */ +var ExitCode; +(function (ExitCode) { + /** + * A code indicating that the action was successful + */ + ExitCode[ExitCode["Success"] = 0] = "Success"; + /** + * A code indicating that the action was a failure + */ + ExitCode[ExitCode["Failure"] = 1] = "Failure"; +})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); +//----------------------------------------------------------------------- +// Variables +//----------------------------------------------------------------------- +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function exportVariable(name, val) { + const convertedVal = command_1.toCommandValue(val); + process.env[name] = convertedVal; + command_1.issueCommand('set-env', { name }, convertedVal); +} +exports.exportVariable = exportVariable; +/** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ +function setSecret(secret) { + command_1.issueCommand('add-mask', {}, secret); +} +exports.setSecret = setSecret; +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ +function addPath(inputPath) { + command_1.issueCommand('add-path', {}, inputPath); + process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; +} +exports.addPath = addPath; +/** + * Gets the value of an input. The value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ +function getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; + if (options && options.required && !val) { + throw new Error(`Input required and not supplied: ${name}`); + } + return val.trim(); +} +exports.getInput = getInput; +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function setOutput(name, value) { + command_1.issueCommand('set-output', { name }, value); +} +exports.setOutput = setOutput; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +function setCommandEcho(enabled) { + command_1.issue('echo', enabled ? 'on' : 'off'); +} +exports.setCommandEcho = setCommandEcho; +//----------------------------------------------------------------------- +// Results +//----------------------------------------------------------------------- +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ +function setFailed(message) { + process.exitCode = ExitCode.Failure; + error(message); +} +exports.setFailed = setFailed; +//----------------------------------------------------------------------- +// Logging Commands +//----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ +function isDebug() { + return process.env['RUNNER_DEBUG'] === '1'; +} +exports.isDebug = isDebug; +/** + * Writes debug message to user log + * @param message debug message + */ +function debug(message) { + command_1.issueCommand('debug', {}, message); +} +exports.debug = debug; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + */ +function error(message) { + command_1.issue('error', message instanceof Error ? message.toString() : message); +} +exports.error = error; +/** + * Adds an warning issue + * @param message warning issue message. Errors will be converted to string via toString() + */ +function warning(message) { + command_1.issue('warning', message instanceof Error ? message.toString() : message); +} +exports.warning = warning; +/** + * Writes info to log with console.log. + * @param message info message + */ +function info(message) { + process.stdout.write(message + os.EOL); +} +exports.info = info; +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ +function startGroup(name) { + command_1.issue('group', name); +} +exports.startGroup = startGroup; +/** + * End an output group. + */ +function endGroup() { + command_1.issue('endgroup'); +} +exports.endGroup = endGroup; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ +function group(name, fn) { + return __awaiter(this, void 0, void 0, function* () { + startGroup(name); + let result; + try { + result = yield fn(); + } + finally { + endGroup(); + } + return result; + }); +} +exports.group = group; +//----------------------------------------------------------------------- +// Wrapper action state +//----------------------------------------------------------------------- +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function saveState(name, value) { + command_1.issueCommand('save-state', { name }, value); +} +exports.saveState = saveState; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ +function getState(name) { + return process.env[`STATE_${name}`] || ''; +} +exports.getState = getState; +//# sourceMappingURL=core.js.map + +/***/ }), + +/***/ 473: +/***/ (function(module) { + +"use strict"; + +module.exports = /^#!.*/; + + +/***/ }), + +/***/ 498: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _crypto = _interopRequireDefault(__webpack_require__(417)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('sha1').update(bytes).digest(); +} + +var _default = sha1; +exports.default = _default; + +/***/ }), + +/***/ 510: +/***/ (function(module) { + +module.exports = addHook + +function addHook (state, kind, name, hook) { + var orig = hook + if (!state.registry[name]) { + state.registry[name] = [] + } + + if (kind === 'before') { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)) + } + } + + if (kind === 'after') { + hook = function (method, options) { + var result + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_ + return orig(result, options) + }) + .then(function () { + return result + }) + } + } + + if (kind === 'error') { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options) + }) + } + } + + state.registry[name].push({ + hook: hook, + orig: orig + }) +} + + +/***/ }), + +/***/ 523: +/***/ (function(module, __unusedexports, __webpack_require__) { + +var register = __webpack_require__(280) +var addHook = __webpack_require__(510) +var removeHook = __webpack_require__(866) + +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind +var bindable = bind.bind(bind) + +function bindApi (hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) + hook.api = { remove: removeHookRef } + hook.remove = removeHookRef + + ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind] + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) + }) +} + +function HookSingular () { + var singularHookName = 'h' + var singularHookState = { + registry: {} + } + var singularHook = register.bind(null, singularHookState, singularHookName) + bindApi(singularHook, singularHookState, singularHookName) + return singularHook +} + +function HookCollection () { + var state = { + registry: {} + } + + var hook = register.bind(null, state) + bindApi(hook, state) + + return hook +} + +var collectionHookDeprecationMessageDisplayed = false +function Hook () { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') + collectionHookDeprecationMessageDisplayed = true + } + return HookCollection() +} + +Hook.Singular = HookSingular.bind() +Hook.Collection = HookCollection.bind() + +module.exports = Hook +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook +module.exports.Singular = Hook.Singular +module.exports.Collection = Hook.Collection + + +/***/ }), + +/***/ 542: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + + +const path = __webpack_require__(622); +const which = __webpack_require__(55); +const pathKey = __webpack_require__(565)(); + +function resolveCommandAttempt(parsed, withoutPathExt) { + const cwd = process.cwd(); + const hasCustomCwd = parsed.options.cwd != null; + + // If a custom `cwd` was specified, we need to change the process cwd + // because `which` will do stat calls but does not support a custom cwd + if (hasCustomCwd) { + try { + process.chdir(parsed.options.cwd); + } catch (err) { + /* Empty */ + } + } + + let resolved; + + try { + resolved = which.sync(parsed.command, { + path: (parsed.options.env || process.env)[pathKey], + pathExt: withoutPathExt ? path.delimiter : undefined, + }); + } catch (e) { + /* Empty */ + } finally { + process.chdir(cwd); + } + + // If we successfully resolved, ensure that an absolute path is returned + // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it + if (resolved) { + resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); + } + + return resolved; +} + +function resolveCommand(parsed) { + return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); +} + +module.exports = resolveCommand; + + +/***/ }), + +/***/ 548: +/***/ (function(module) { + +"use strict"; + + +/*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; +} + +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObjectObject(o) { + return isObject(o) === true + && Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObjectObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (typeof ctor !== 'function') return false; + + // If has modified prototype + prot = ctor.prototype; + if (isObjectObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +module.exports = isPlainObject; + + +/***/ }), + +/***/ 565: +/***/ (function(module) { + +"use strict"; + +module.exports = opts => { + opts = opts || {}; + + const env = opts.env || process.env; + const platform = opts.platform || process.platform; + + if (platform !== 'win32') { + return 'PATH'; + } + + return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path'; +}; + + +/***/ }), + +/***/ 605: +/***/ (function(module) { + +module.exports = require("http"); + +/***/ }), + +/***/ 607: +/***/ (function(module, exports) { + +exports = module.exports = SemVer + +var debug +/* istanbul ignore next */ +if (typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG)) { + debug = function () { + var args = Array.prototype.slice.call(arguments, 0) + args.unshift('SEMVER') + console.log.apply(console, args) + } +} else { + debug = function () {} +} + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +exports.SEMVER_SPEC_VERSION = '2.0.0' + +var MAX_LENGTH = 256 +var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +var MAX_SAFE_COMPONENT_LENGTH = 16 + +// The actual regexps go on exports.re +var re = exports.re = [] +var src = exports.src = [] +var R = 0 + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +var NUMERICIDENTIFIER = R++ +src[NUMERICIDENTIFIER] = '0|[1-9]\\d*' +var NUMERICIDENTIFIERLOOSE = R++ +src[NUMERICIDENTIFIERLOOSE] = '[0-9]+' + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +var NONNUMERICIDENTIFIER = R++ +src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*' + +// ## Main Version +// Three dot-separated numeric identifiers. + +var MAINVERSION = R++ +src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + + '(' + src[NUMERICIDENTIFIER] + ')\\.' + + '(' + src[NUMERICIDENTIFIER] + ')' + +var MAINVERSIONLOOSE = R++ +src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[NUMERICIDENTIFIERLOOSE] + ')' + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. + +var PRERELEASEIDENTIFIER = R++ +src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + + '|' + src[NONNUMERICIDENTIFIER] + ')' + +var PRERELEASEIDENTIFIERLOOSE = R++ +src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + + '|' + src[NONNUMERICIDENTIFIER] + ')' + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +var PRERELEASE = R++ +src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + + '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))' + +var PRERELEASELOOSE = R++ +src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + + '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))' + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +var BUILDIDENTIFIER = R++ +src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+' + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +var BUILD = R++ +src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + + '(?:\\.' + src[BUILDIDENTIFIER] + ')*))' + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +var FULL = R++ +var FULLPLAIN = 'v?' + src[MAINVERSION] + + src[PRERELEASE] + '?' + + src[BUILD] + '?' + +src[FULL] = '^' + FULLPLAIN + '$' + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + + src[PRERELEASELOOSE] + '?' + + src[BUILD] + '?' + +var LOOSE = R++ +src[LOOSE] = '^' + LOOSEPLAIN + '$' + +var GTLT = R++ +src[GTLT] = '((?:<|>)?=?)' + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +var XRANGEIDENTIFIERLOOSE = R++ +src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*' +var XRANGEIDENTIFIER = R++ +src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*' + +var XRANGEPLAIN = R++ +src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + + '(?:' + src[PRERELEASE] + ')?' + + src[BUILD] + '?' + + ')?)?' + +var XRANGEPLAINLOOSE = R++ +src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:' + src[PRERELEASELOOSE] + ')?' + + src[BUILD] + '?' + + ')?)?' + +var XRANGE = R++ +src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$' +var XRANGELOOSE = R++ +src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$' + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +var COERCE = R++ +src[COERCE] = '(?:^|[^\\d])' + + '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:$|[^\\d])' + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +var LONETILDE = R++ +src[LONETILDE] = '(?:~>?)' + +var TILDETRIM = R++ +src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+' +re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g') +var tildeTrimReplace = '$1~' + +var TILDE = R++ +src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$' +var TILDELOOSE = R++ +src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$' + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +var LONECARET = R++ +src[LONECARET] = '(?:\\^)' + +var CARETTRIM = R++ +src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+' +re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g') +var caretTrimReplace = '$1^' + +var CARET = R++ +src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$' +var CARETLOOSE = R++ +src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$' + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +var COMPARATORLOOSE = R++ +src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$' +var COMPARATOR = R++ +src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$' + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +var COMPARATORTRIM = R++ +src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + + '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')' + +// this one has to use the /g flag +re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g') +var comparatorTrimReplace = '$1$2$3' + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +var HYPHENRANGE = R++ +src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + + '\\s+-\\s+' + + '(' + src[XRANGEPLAIN] + ')' + + '\\s*$' + +var HYPHENRANGELOOSE = R++ +src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + + '\\s+-\\s+' + + '(' + src[XRANGEPLAINLOOSE] + ')' + + '\\s*$' + +// Star ranges basically just allow anything at all. +var STAR = R++ +src[STAR] = '(<|>)?=?\\s*\\*' + +// Compile to actual regexp objects. +// All are flag-free, unless they were created above with a flag. +for (var i = 0; i < R; i++) { + debug(i, src[i]) + if (!re[i]) { + re[i] = new RegExp(src[i]) + } +} + +exports.parse = parse +function parse (version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (version instanceof SemVer) { + return version + } + + if (typeof version !== 'string') { + return null + } + + if (version.length > MAX_LENGTH) { + return null + } + + var r = options.loose ? re[LOOSE] : re[FULL] + if (!r.test(version)) { + return null + } + + try { + return new SemVer(version, options) + } catch (er) { + return null + } +} + +exports.valid = valid +function valid (version, options) { + var v = parse(version, options) + return v ? v.version : null +} + +exports.clean = clean +function clean (version, options) { + var s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} + +exports.SemVer = SemVer + +function SemVer (version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + if (version instanceof SemVer) { + if (version.loose === options.loose) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError('Invalid Version: ' + version) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') + } + + if (!(this instanceof SemVer)) { + return new SemVer(version, options) + } + + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + + var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL]) + + if (!m) { + throw new TypeError('Invalid Version: ' + version) + } + + this.raw = version + + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map(function (id) { + if (/^[0-9]+$/.test(id)) { + var num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }) + } + + this.build = m[5] ? m[5].split('.') : [] + this.format() +} + +SemVer.prototype.format = function () { + this.version = this.major + '.' + this.minor + '.' + this.patch + if (this.prerelease.length) { + this.version += '-' + this.prerelease.join('.') + } + return this.version +} + +SemVer.prototype.toString = function () { + return this.version +} + +SemVer.prototype.compare = function (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + return this.compareMain(other) || this.comparePre(other) +} + +SemVer.prototype.compareMain = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + return compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) +} + +SemVer.prototype.comparePre = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + var i = 0 + do { + var a = this.prerelease[i] + var b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) +} + +// preminor will bump the version up to the next minor release, and immediately +// down to pre-release. premajor and prepatch work the same way. +SemVer.prototype.inc = function (release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier) + this.inc('pre', identifier) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier) + } + this.inc('pre', identifier) + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if (this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0) { + this.major++ + } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0] + } else { + var i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + this.prerelease.push(0) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0] + } + } else { + this.prerelease = [identifier, 0] + } + } + break + + default: + throw new Error('invalid increment argument: ' + release) + } + this.format() + this.raw = this.version + return this +} + +exports.inc = inc +function inc (version, release, loose, identifier) { + if (typeof (loose) === 'string') { + identifier = loose + loose = undefined + } + + try { + return new SemVer(version, loose).inc(release, identifier).version + } catch (er) { + return null + } +} + +exports.diff = diff +function diff (version1, version2) { + if (eq(version1, version2)) { + return null + } else { + var v1 = parse(version1) + var v2 = parse(version2) + var prefix = '' + if (v1.prerelease.length || v2.prerelease.length) { + prefix = 'pre' + var defaultResult = 'prerelease' + } + for (var key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return prefix + key + } + } + } + return defaultResult // may be undefined + } +} + +exports.compareIdentifiers = compareIdentifiers + +var numeric = /^[0-9]+$/ +function compareIdentifiers (a, b) { + var anum = numeric.test(a) + var bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +} + +exports.rcompareIdentifiers = rcompareIdentifiers +function rcompareIdentifiers (a, b) { + return compareIdentifiers(b, a) +} + +exports.major = major +function major (a, loose) { + return new SemVer(a, loose).major +} + +exports.minor = minor +function minor (a, loose) { + return new SemVer(a, loose).minor +} + +exports.patch = patch +function patch (a, loose) { + return new SemVer(a, loose).patch +} + +exports.compare = compare +function compare (a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)) +} + +exports.compareLoose = compareLoose +function compareLoose (a, b) { + return compare(a, b, true) +} + +exports.rcompare = rcompare +function rcompare (a, b, loose) { + return compare(b, a, loose) +} + +exports.sort = sort +function sort (list, loose) { + return list.sort(function (a, b) { + return exports.compare(a, b, loose) + }) +} + +exports.rsort = rsort +function rsort (list, loose) { + return list.sort(function (a, b) { + return exports.rcompare(a, b, loose) + }) +} + +exports.gt = gt +function gt (a, b, loose) { + return compare(a, b, loose) > 0 +} + +exports.lt = lt +function lt (a, b, loose) { + return compare(a, b, loose) < 0 +} + +exports.eq = eq +function eq (a, b, loose) { + return compare(a, b, loose) === 0 +} + +exports.neq = neq +function neq (a, b, loose) { + return compare(a, b, loose) !== 0 +} + +exports.gte = gte +function gte (a, b, loose) { + return compare(a, b, loose) >= 0 +} + +exports.lte = lte +function lte (a, b, loose) { + return compare(a, b, loose) <= 0 +} + +exports.cmp = cmp +function cmp (a, op, b, loose) { + switch (op) { + case '===': + if (typeof a === 'object') + a = a.version + if (typeof b === 'object') + b = b.version + return a === b + + case '!==': + if (typeof a === 'object') + a = a.version + if (typeof b === 'object') + b = b.version + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError('Invalid operator: ' + op) + } +} + +exports.Comparator = Comparator +function Comparator (comp, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } + + if (!(this instanceof Comparator)) { + return new Comparator(comp, options) + } + + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) + + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } + + debug('comp', this) +} + +var ANY = {} +Comparator.prototype.parse = function (comp) { + var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR] + var m = comp.match(r) + + if (!m) { + throw new TypeError('Invalid comparator: ' + comp) + } + + this.operator = m[1] + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } +} + +Comparator.prototype.toString = function () { + return this.value +} + +Comparator.prototype.test = function (version) { + debug('Comparator.test', version, this.options.loose) + + if (this.semver === ANY) { + return true + } + + if (typeof version === 'string') { + version = new SemVer(version, this.options) + } + + return cmp(version, this.operator, this.semver, this.options) +} + +Comparator.prototype.intersects = function (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + var rangeTmp + + if (this.operator === '') { + rangeTmp = new Range(comp.value, options) + return satisfies(this.value, rangeTmp, options) + } else if (comp.operator === '') { + rangeTmp = new Range(this.value, options) + return satisfies(comp.semver, rangeTmp, options) + } + + var sameDirectionIncreasing = + (this.operator === '>=' || this.operator === '>') && + (comp.operator === '>=' || comp.operator === '>') + var sameDirectionDecreasing = + (this.operator === '<=' || this.operator === '<') && + (comp.operator === '<=' || comp.operator === '<') + var sameSemVer = this.semver.version === comp.semver.version + var differentDirectionsInclusive = + (this.operator === '>=' || this.operator === '<=') && + (comp.operator === '>=' || comp.operator === '<=') + var oppositeDirectionsLessThan = + cmp(this.semver, '<', comp.semver, options) && + ((this.operator === '>=' || this.operator === '>') && + (comp.operator === '<=' || comp.operator === '<')) + var oppositeDirectionsGreaterThan = + cmp(this.semver, '>', comp.semver, options) && + ((this.operator === '<=' || this.operator === '<') && + (comp.operator === '>=' || comp.operator === '>')) + + return sameDirectionIncreasing || sameDirectionDecreasing || + (sameSemVer && differentDirectionsInclusive) || + oppositeDirectionsLessThan || oppositeDirectionsGreaterThan +} + +exports.Range = Range +function Range (range, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (range instanceof Range) { + if (range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + return new Range(range.value, options) + } + + if (!(this instanceof Range)) { + return new Range(range, options) + } + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First, split based on boolean or || + this.raw = range + this.set = range.split(/\s*\|\|\s*/).map(function (range) { + return this.parseRange(range.trim()) + }, this).filter(function (c) { + // throw out any that are not relevant for whatever reason + return c.length + }) + + if (!this.set.length) { + throw new TypeError('Invalid SemVer Range: ' + range) + } + + this.format() +} + +Range.prototype.format = function () { + this.range = this.set.map(function (comps) { + return comps.join(' ').trim() + }).join('||').trim() + return this.range +} + +Range.prototype.toString = function () { + return this.range +} + +Range.prototype.parseRange = function (range) { + var loose = this.options.loose + range = range.trim() + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE] + range = range.replace(hr, hyphenReplace) + debug('hyphen replace', range) + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range, re[COMPARATORTRIM]) + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[TILDETRIM], tildeTrimReplace) + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[CARETTRIM], caretTrimReplace) + + // normalize spaces + range = range.split(/\s+/).join(' ') + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR] + var set = range.split(' ').map(function (comp) { + return parseComparator(comp, this.options) + }, this).join(' ').split(/\s+/) + if (this.options.loose) { + // in loose mode, throw out any that are not valid comparators + set = set.filter(function (comp) { + return !!comp.match(compRe) + }) + } + set = set.map(function (comp) { + return new Comparator(comp, this.options) + }, this) + + return set +} + +Range.prototype.intersects = function (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some(function (thisComparators) { + return thisComparators.every(function (thisComparator) { + return range.set.some(function (rangeComparators) { + return rangeComparators.every(function (rangeComparator) { + return thisComparator.intersects(rangeComparator, options) + }) + }) + }) + }) +} + +// Mostly just for testing and legacy API reasons +exports.toComparators = toComparators +function toComparators (range, options) { + return new Range(range, options).set.map(function (comp) { + return comp.map(function (c) { + return c.value + }).join(' ').trim().split(' ') + }) +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +function parseComparator (comp, options) { + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} + +function isX (id) { + return !id || id.toLowerCase() === 'x' || id === '*' +} + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceTilde(comp, options) + }).join(' ') +} + +function replaceTilde (comp, options) { + var r = options.loose ? re[TILDELOOSE] : re[TILDE] + return comp.replace(r, function (_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else if (pr) { + debug('replaceTilde pr', pr) + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } else { + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceCaret(comp, options) + }).join(' ') +} + +function replaceCaret (comp, options) { + debug('caret', comp, options) + var r = options.loose ? re[CARETLOOSE] : re[CARET] + return comp.replace(r, function (_, M, m, p, pr) { + debug('caret', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + if (M === '0') { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else { + ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0' + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + (+M + 1) + '.0.0' + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + (+M + 1) + '.0.0' + } + } + + debug('caret return', ret) + return ret + }) +} + +function replaceXRanges (comp, options) { + debug('replaceXRanges', comp, options) + return comp.split(/\s+/).map(function (comp) { + return replaceXRange(comp, options) + }).join(' ') +} + +function replaceXRange (comp, options) { + comp = comp.trim() + var r = options.loose ? re[XRANGELOOSE] : re[XRANGE] + return comp.replace(r, function (ret, gtlt, M, m, p, pr) { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + var xM = isX(M) + var xm = xM || isX(m) + var xp = xm || isX(p) + var anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + ret = gtlt + M + '.' + m + '.' + p + } else if (xm) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (xp) { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars (comp, options) { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re[STAR], '') +} + +// This function is passed to string.replace(re[HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +function hyphenReplace ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = '>=' + fM + '.0.0' + } else if (isX(fp)) { + from = '>=' + fM + '.' + fm + '.0' + } else { + from = '>=' + from + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = '<' + (+tM + 1) + '.0.0' + } else if (isX(tp)) { + to = '<' + tM + '.' + (+tm + 1) + '.0' + } else if (tpr) { + to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr + } else { + to = '<=' + to + } + + return (from + ' ' + to).trim() +} + +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + version = new SemVer(version, this.options) + } + + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false +} + +function testSet (set, version, options) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} + +exports.satisfies = satisfies +function satisfies (version, range, options) { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} + +exports.maxSatisfying = maxSatisfying +function maxSatisfying (versions, range, options) { + var max = null + var maxSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} + +exports.minSatisfying = minSatisfying +function minSatisfying (versions, range, options) { + var min = null + var minSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} + +exports.minVersion = minVersion +function minVersion (range, loose) { + range = new Range(range, loose) + + var minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + comparators.forEach(function (comparator) { + // Clone to avoid manipulating the comparator's semver object. + var compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!minver || gt(minver, compver)) { + minver = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error('Unexpected operation: ' + comparator.operator) + } + }) + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} + +exports.validRange = validRange +function validRange (range, options) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} + +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr +function ltr (version, range, options) { + return outside(version, range, '<', options) +} + +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr +function gtr (version, range, options) { + return outside(version, range, '>', options) +} + +exports.outside = outside +function outside (version, range, hilo, options) { + version = new SemVer(version, options) + range = new Range(range, options) + + var gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisifes the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + var high = null + var low = null + + comparators.forEach(function (comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +exports.prerelease = prerelease +function prerelease (version, options) { + var parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} + +exports.intersects = intersects +function intersects (r1, r2, options) { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2) +} + +exports.coerce = coerce +function coerce (version) { + if (version instanceof SemVer) { + return version + } + + if (typeof version !== 'string') { + return null + } + + var match = version.match(re[COERCE]) + + if (match == null) { + return null + } + + return parse(match[1] + + '.' + (match[2] || '0') + + '.' + (match[3] || '0')) +} + + +/***/ }), + +/***/ 611: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseDisplayNameEmail = exports.randomString = exports.secondsSinceEpoch = exports.getRemoteDetail = exports.getRepoPath = exports.getStringAsArray = exports.getInputAsArray = void 0; +const core = __importStar(__webpack_require__(470)); +const path = __importStar(__webpack_require__(622)); +function getInputAsArray(name, options) { + return getStringAsArray(core.getInput(name, options)); +} +exports.getInputAsArray = getInputAsArray; +function getStringAsArray(str) { + return str + .split(/[\n,]+/) + .map(s => s.trim()) + .filter(x => x !== ''); +} +exports.getStringAsArray = getStringAsArray; +function getRepoPath(relativePath) { + let githubWorkspacePath = process.env['GITHUB_WORKSPACE']; + if (!githubWorkspacePath) { + throw new Error('GITHUB_WORKSPACE not defined'); + } + githubWorkspacePath = path.resolve(githubWorkspacePath); + core.debug(`githubWorkspacePath: ${githubWorkspacePath}`); + let repoPath = githubWorkspacePath; + if (relativePath) + repoPath = path.resolve(repoPath, relativePath); + core.debug(`repoPath: ${repoPath}`); + return repoPath; +} +exports.getRepoPath = getRepoPath; +function getRemoteDetail(remoteUrl) { + // Parse the protocol and github repository from a URL + // e.g. HTTPS, peter-evans/create-pull-request + const httpsUrlPattern = /^https:\/\/.*@?github.com\/(.+\/.+)$/i; + const sshUrlPattern = /^git@github.com:(.+\/.+).git$/i; + const httpsMatch = remoteUrl.match(httpsUrlPattern); + if (httpsMatch) { + return { + protocol: 'HTTPS', + repository: httpsMatch[1] + }; + } + const sshMatch = remoteUrl.match(sshUrlPattern); + if (sshMatch) { + return { + protocol: 'SSH', + repository: sshMatch[1] + }; + } + throw new Error(`The format of '${remoteUrl}' is not a valid GitHub repository URL`); +} +exports.getRemoteDetail = getRemoteDetail; +function secondsSinceEpoch() { + const now = new Date(); + return Math.round(now.getTime() / 1000); +} +exports.secondsSinceEpoch = secondsSinceEpoch; +function randomString() { + return Math.random().toString(36).substr(2, 7); +} +exports.randomString = randomString; +function parseDisplayNameEmail(displayNameEmail) { + // Parse the name and email address from a string in the following format + // Display Name + const pattern = /^([^<]+)\s*<([^>]+)>$/i; + // Check we have a match + const match = displayNameEmail.match(pattern); + if (!match) { + throw new Error(`The format of '${displayNameEmail}' is not a valid email address with display name`); + } + // Check that name and email are not just whitespace + const name = match[1].trim(); + const email = match[2].trim(); + if (!name || !email) { + throw new Error(`The format of '${displayNameEmail}' is not a valid email address with display name`); + } + return { + name: name, + email: email + }; +} +exports.parseDisplayNameEmail = parseDisplayNameEmail; + + +/***/ }), + +/***/ 614: +/***/ (function(module) { + +module.exports = require("events"); + +/***/ }), + +/***/ 621: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + +const path = __webpack_require__(622); +const pathKey = __webpack_require__(682); + +module.exports = opts => { + opts = Object.assign({ + cwd: process.cwd(), + path: process.env[pathKey()] + }, opts); + + let prev; + let pth = path.resolve(opts.cwd); + const ret = []; + + while (prev !== pth) { + ret.push(path.join(pth, 'node_modules/.bin')); + prev = pth; + pth = path.resolve(pth, '..'); + } + + // ensure the running `node` binary is used + ret.push(path.dirname(process.execPath)); + + return ret.concat(opts.path).join(path.delimiter); +}; + +module.exports.env = opts => { + opts = Object.assign({ + env: process.env + }, opts); + + const env = Object.assign({}, opts.env); + const path = pathKey({env}); + + opts.path = env[path]; + env[path] = module.exports(opts); + + return env; +}; + + +/***/ }), + +/***/ 622: +/***/ (function(module) { + +module.exports = require("path"); + +/***/ }), + +/***/ 626: +/***/ (function(module) { + +"use strict"; + + +/*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; +} + +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObjectObject(o) { + return isObject(o) === true + && Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObjectObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (typeof ctor !== 'function') return false; + + // If has modified prototype + prot = ctor.prototype; + if (isObjectObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +module.exports = isPlainObject; + + +/***/ }), + +/***/ 654: +/***/ (function(module) { + +// This is not the set of all possible signals. +// +// It IS, however, the set of all signals that trigger +// an exit on either Linux or BSD systems. Linux is a +// superset of the signal names supported on BSD, and +// the unknown signals just fail to register, so we can +// catch that easily enough. +// +// Don't bother with SIGKILL. It's uncatchable, which +// means that we can't fire any callbacks anyway. +// +// If a user does happen to register a handler on a non- +// fatal signal like SIGWINCH or something, and then +// exit, it'll end up firing `process.emit('exit')`, so +// the handler will be fired anyway. +// +// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised +// artificially, inherently leave the process in a +// state from which it is not safe to try and enter JS +// listeners. +module.exports = [ + 'SIGABRT', + 'SIGALRM', + 'SIGHUP', + 'SIGINT', + 'SIGTERM' +] + +if (process.platform !== 'win32') { + module.exports.push( + 'SIGVTALRM', + 'SIGXCPU', + 'SIGXFSZ', + 'SIGUSR2', + 'SIGTRAP', + 'SIGSYS', + 'SIGQUIT', + 'SIGIOT' + // should detect profiler and enable/disable accordingly. + // see #21 + // 'SIGPROF' + ) +} + +if (process.platform === 'linux') { + module.exports.push( + 'SIGIO', + 'SIGPOLL', + 'SIGPWR', + 'SIGSTKFLT', + 'SIGUNUSED' + ) +} + + +/***/ }), + +/***/ 669: +/***/ (function(module) { + +module.exports = require("util"); + +/***/ }), + +/***/ 672: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +const assert_1 = __webpack_require__(357); +const fs = __webpack_require__(747); +const path = __webpack_require__(622); +_a = fs.promises, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink; +exports.IS_WINDOWS = process.platform === 'win32'; +function exists(fsPath) { + return __awaiter(this, void 0, void 0, function* () { + try { + yield exports.stat(fsPath); + } + catch (err) { + if (err.code === 'ENOENT') { + return false; + } + throw err; + } + return true; + }); +} +exports.exists = exists; +function isDirectory(fsPath, useStat = false) { + return __awaiter(this, void 0, void 0, function* () { + const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath); + return stats.isDirectory(); + }); +} +exports.isDirectory = isDirectory; +/** + * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: + * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). + */ +function isRooted(p) { + p = normalizeSeparators(p); + if (!p) { + throw new Error('isRooted() parameter "p" cannot be empty'); + } + if (exports.IS_WINDOWS) { + return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello + ); // e.g. C: or C:\hello + } + return p.startsWith('/'); +} +exports.isRooted = isRooted; +/** + * Recursively create a directory at `fsPath`. + * + * This implementation is optimistic, meaning it attempts to create the full + * path first, and backs up the path stack from there. + * + * @param fsPath The path to create + * @param maxDepth The maximum recursion depth + * @param depth The current recursion depth + */ +function mkdirP(fsPath, maxDepth = 1000, depth = 1) { + return __awaiter(this, void 0, void 0, function* () { + assert_1.ok(fsPath, 'a path argument must be provided'); + fsPath = path.resolve(fsPath); + if (depth >= maxDepth) + return exports.mkdir(fsPath); + try { + yield exports.mkdir(fsPath); + return; + } + catch (err) { + switch (err.code) { + case 'ENOENT': { + yield mkdirP(path.dirname(fsPath), maxDepth, depth + 1); + yield exports.mkdir(fsPath); + return; + } + default: { + let stats; + try { + stats = yield exports.stat(fsPath); + } + catch (err2) { + throw err; + } + if (!stats.isDirectory()) + throw err; + } + } + } + }); +} +exports.mkdirP = mkdirP; +/** + * Best effort attempt to determine whether a file exists and is executable. + * @param filePath file path to check + * @param extensions additional file extensions to try + * @return if file exists and is executable, returns the file path. otherwise empty string. + */ +function tryGetExecutablePath(filePath, extensions) { + return __awaiter(this, void 0, void 0, function* () { + let stats = undefined; + try { + // test file exists + stats = yield exports.stat(filePath); + } + catch (err) { + if (err.code !== 'ENOENT') { + // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + } + if (stats && stats.isFile()) { + if (exports.IS_WINDOWS) { + // on Windows, test for valid extension + const upperExt = path.extname(filePath).toUpperCase(); + if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) { + return filePath; + } + } + else { + if (isUnixExecutable(stats)) { + return filePath; + } + } + } + // try each extension + const originalFilePath = filePath; + for (const extension of extensions) { + filePath = originalFilePath + extension; + stats = undefined; + try { + stats = yield exports.stat(filePath); + } + catch (err) { + if (err.code !== 'ENOENT') { + // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + } + if (stats && stats.isFile()) { + if (exports.IS_WINDOWS) { + // preserve the case of the actual file (since an extension was appended) + try { + const directory = path.dirname(filePath); + const upperName = path.basename(filePath).toUpperCase(); + for (const actualName of yield exports.readdir(directory)) { + if (upperName === actualName.toUpperCase()) { + filePath = path.join(directory, actualName); + break; + } + } + } + catch (err) { + // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); + } + return filePath; + } + else { + if (isUnixExecutable(stats)) { + return filePath; + } + } + } + } + return ''; + }); +} +exports.tryGetExecutablePath = tryGetExecutablePath; +function normalizeSeparators(p) { + p = p || ''; + if (exports.IS_WINDOWS) { + // convert slashes on Windows + p = p.replace(/\//g, '\\'); + // remove redundant slashes + return p.replace(/\\\\+/g, '\\'); + } + // remove redundant slashes + return p.replace(/\/\/+/g, '/'); +} +// on Mac/Linux, test the execute bit +// R W X R W X R W X +// 256 128 64 32 16 8 4 2 1 +function isUnixExecutable(stats) { + return ((stats.mode & 1) > 0 || + ((stats.mode & 8) > 0 && stats.gid === process.getgid()) || + ((stats.mode & 64) > 0 && stats.uid === process.getuid())); +} +//# sourceMappingURL=io-util.js.map + +/***/ }), + +/***/ 682: +/***/ (function(module) { + +"use strict"; + +module.exports = opts => { + opts = opts || {}; + + const env = opts.env || process.env; + const platform = opts.platform || process.platform; + + if (platform !== 'win32') { + return 'PATH'; + } + + return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path'; +}; + + +/***/ }), + +/***/ 686: /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; @@ -947,367 +7947,58 @@ class ExecState extends events.EventEmitter { /***/ }), -/***/ 16: -/***/ (function(module) { - -module.exports = require("tls"); - -/***/ }), - -/***/ 57: -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isDocker = void 0; -const fs = __importStar(__webpack_require__(747)); -function hasDockerEnv() { - try { - fs.statSync('/.dockerenv'); - return true; - } - catch (_) { - return false; - } -} -function hasDockerCGroup() { - try { - return fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker'); - } - catch (_) { - return false; - } -} -function isDocker() { - return hasDockerEnv() || hasDockerCGroup(); -} -exports.isDocker = isDocker; - - -/***/ }), - -/***/ 87: -/***/ (function(module) { - -module.exports = require("os"); - -/***/ }), - -/***/ 129: -/***/ (function(module) { - -module.exports = require("child_process"); - -/***/ }), - -/***/ 139: -/***/ (function(module, __unusedexports, __webpack_require__) { - -// Unique ID creation requires a high quality random # generator. In node.js -// this is pretty straight-forward - we use the crypto API. - -var crypto = __webpack_require__(417); - -module.exports = function nodeRNG() { - return crypto.randomBytes(16); -}; - - -/***/ }), - -/***/ 141: -/***/ (function(__unusedmodule, exports, __webpack_require__) { +/***/ 692: +/***/ (function(__unusedmodule, exports) { "use strict"; -var net = __webpack_require__(631); -var tls = __webpack_require__(16); -var http = __webpack_require__(605); -var https = __webpack_require__(211); -var events = __webpack_require__(614); -var assert = __webpack_require__(357); -var util = __webpack_require__(669); +Object.defineProperty(exports, '__esModule', { value: true }); +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.httpsOverHttps = httpsOverHttps; + /* istanbul ignore next */ - -function httpOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; -} - -function httpsOverHttp(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} - -function httpOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; -} - -function httpsOverHttps(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; -} - - -function TunnelingAgent(options) { - var self = this; - self.options = options || {}; - self.proxyOptions = self.options.proxy || {}; - self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - - self.on('free', function onFree(socket, host, port, localAddress) { - var options = toOptions(host, port, localAddress); - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.inherits(TunnelingAgent, events.EventEmitter); - -TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { - var self = this; - var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); - - if (self.sockets.length >= this.maxSockets) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; - } - - // If we are under maxSockets create a new one. - self.createSocket(options, function(socket) { - socket.on('free', onFree); - socket.on('close', onCloseOrRemove); - socket.on('agentRemove', onCloseOrRemove); - req.onSocket(socket); - - function onFree() { - self.emit('free', socket, options); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); } - function onCloseOrRemove(err) { - self.removeSocket(socket); - socket.removeListener('free', onFree); - socket.removeListener('close', onCloseOrRemove); - socket.removeListener('agentRemove', onCloseOrRemove); - } - }); -}; - -TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { - var self = this; - var placeholder = {}; - self.sockets.push(placeholder); - - var connectOptions = mergeOptions({}, self.proxyOptions, { - method: 'CONNECT', - path: options.host + ':' + options.port, - agent: false, - headers: { - host: options.host + ':' + options.port - } - }); - if (options.localAddress) { - connectOptions.localAddress = options.localAddress; - } - if (connectOptions.proxyAuth) { - connectOptions.headers = connectOptions.headers || {}; - connectOptions.headers['Proxy-Authorization'] = 'Basic ' + - new Buffer(connectOptions.proxyAuth).toString('base64'); + this.name = 'Deprecation'; } - debug('making CONNECT request'); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - - if (res.statusCode !== 200) { - debug('tunneling socket could not be established, statusCode=%d', - res.statusCode); - socket.destroy(); - var error = new Error('tunneling socket could not be established, ' + - 'statusCode=' + res.statusCode); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - return; - } - if (head.length > 0) { - debug('got illegal response body from proxy'); - socket.destroy(); - var error = new Error('got illegal response body from proxy'); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - return; - } - debug('tunneling connection has established'); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - - function onError(cause) { - connectReq.removeAllListeners(); - - debug('tunneling socket could not be established, cause=%s\n', - cause.message, cause.stack); - var error = new Error('tunneling socket could not be established, ' + - 'cause=' + cause.message); - error.code = 'ECONNRESET'; - options.request.emit('error', error); - self.removeSocket(placeholder); - } -}; - -TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { - var pos = this.sockets.indexOf(socket) - if (pos === -1) { - return; - } - this.sockets.splice(pos, 1); - - var pending = this.requests.shift(); - if (pending) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); - } -}; - -function createSecureSocket(options, cb) { - var self = this; - TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - var hostHeader = options.request.getHeader('host'); - var tlsOptions = mergeOptions({}, self.options, { - socket: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host - }); - - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); } - -function toOptions(host, port, localAddress) { - if (typeof host === 'string') { // since v0.10 - return { - host: host, - port: port, - localAddress: localAddress - }; - } - return host; // for v0.11 or later -} - -function mergeOptions(target) { - for (var i = 1, len = arguments.length; i < len; ++i) { - var overrides = arguments[i]; - if (typeof overrides === 'object') { - var keys = Object.keys(overrides); - for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { - var k = keys[j]; - if (overrides[k] !== undefined) { - target[k] = overrides[k]; - } - } - } - } - return target; -} - - -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = function() { - var args = Array.prototype.slice.call(arguments); - if (typeof args[0] === 'string') { - args[0] = 'TUNNEL: ' + args[0]; - } else { - args.unshift('TUNNEL:'); - } - console.error.apply(console, args); - } -} else { - debug = function() {}; -} -exports.debug = debug; // for test +exports.Deprecation = Deprecation; /***/ }), -/***/ 198: +/***/ 697: +/***/ (function(module) { + +"use strict"; + +module.exports = (promise, onFinally) => { + onFinally = onFinally || (() => {}); + + return promise.then( + val => new Promise(resolve => { + resolve(onFinally()); + }).then(() => val), + err => new Promise(resolve => { + resolve(onFinally()); + }).then(() => { + throw err; + }) + ); +}; + + +/***/ }), + +/***/ 718: /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; @@ -1341,3313 +8032,132 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitHubHelper = void 0; const core = __importStar(__webpack_require__(470)); -const exec = __importStar(__webpack_require__(986)); -const isDocker_1 = __webpack_require__(57); -const setupPython_1 = __webpack_require__(953); -const git_1 = __webpack_require__(453); -const util_1 = __webpack_require__(669); -const EXTRAHEADER_OPTION = 'http.https://github.com/.extraheader'; -const EXTRAHEADER_VALUE_REGEX = '^AUTHORIZATION:'; -function run() { - return __awaiter(this, void 0, void 0, function* () { - let repoPath; - let extraHeaderOption = new git_1.ConfigOption(); - try { - // Python assets - const cpr = `${__dirname}/cpr`; - core.debug(`cpr: ${cpr}`); - // Determine how to access python and pip - const { pip, python } = (function () { - if (isDocker_1.isDocker()) { - core.info('Running inside a Docker container'); - // Python 3 assumed to be installed and on the PATH - return { - pip: 'pip3', - python: 'python3' - }; - } - else { - // Setup Python from the tool cache - setupPython_1.setupPython('3.x', 'x64'); - return { - pip: 'pip', - python: 'python' - }; - } - })(); - // Install requirements - yield exec.exec(pip, [ - 'install', - '--requirement', - `${cpr}/requirements.txt`, - '--no-index', - `--find-links=${__dirname}/vendor` - ]); - // Fetch action inputs - const inputs = { - token: core.getInput('token'), - path: core.getInput('path'), - commitMessage: core.getInput('commit-message'), - committer: core.getInput('committer'), - author: core.getInput('author'), - title: core.getInput('title'), - body: core.getInput('body'), - labels: core.getInput('labels'), - assignees: core.getInput('assignees'), - reviewers: core.getInput('reviewers'), - teamReviewers: core.getInput('team-reviewers'), - milestone: core.getInput('milestone'), - project: core.getInput('project'), - projectColumn: core.getInput('project-column'), - draft: core.getInput('draft'), - branch: core.getInput('branch'), - requestToParent: core.getInput('request-to-parent'), - base: core.getInput('base'), - branchSuffix: core.getInput('branch-suffix') - }; - core.debug(`Inputs: ${util_1.inspect(inputs)}`); - // Set environment variables from inputs. - if (inputs.token) - process.env.GITHUB_TOKEN = inputs.token; - if (inputs.path) - process.env.CPR_PATH = inputs.path; - if (inputs.commitMessage) - process.env.CPR_COMMIT_MESSAGE = inputs.commitMessage; - if (inputs.committer) - process.env.CPR_COMMITTER = inputs.committer; - if (inputs.author) - process.env.CPR_AUTHOR = inputs.author; - if (inputs.title) - process.env.CPR_TITLE = inputs.title; - if (inputs.body) - process.env.CPR_BODY = inputs.body; - if (inputs.labels) - process.env.CPR_LABELS = inputs.labels; - if (inputs.assignees) - process.env.CPR_ASSIGNEES = inputs.assignees; - if (inputs.reviewers) - process.env.CPR_REVIEWERS = inputs.reviewers; - if (inputs.teamReviewers) - process.env.CPR_TEAM_REVIEWERS = inputs.teamReviewers; - if (inputs.milestone) - process.env.CPR_MILESTONE = inputs.milestone; - if (inputs.project) - process.env.CPR_PROJECT_NAME = inputs.project; - if (inputs.projectColumn) - process.env.CPR_PROJECT_COLUMN_NAME = inputs.projectColumn; - if (inputs.draft) - process.env.CPR_DRAFT = inputs.draft; - if (inputs.branch) - process.env.CPR_BRANCH = inputs.branch; - if (inputs.requestToParent) - process.env.CPR_REQUEST_TO_PARENT = inputs.requestToParent; - if (inputs.base) - process.env.CPR_BASE = inputs.base; - if (inputs.branchSuffix) - process.env.CPR_BRANCH_SUFFIX = inputs.branchSuffix; - // Get the repository path - repoPath = git_1.getRepoPath(inputs.path); - // Get the extraheader config option if it exists - extraHeaderOption = yield git_1.getAndUnsetConfigOption(repoPath, EXTRAHEADER_OPTION, EXTRAHEADER_VALUE_REGEX); - // Execute create pull request - yield exec.exec(python, [`${cpr}/create_pull_request.py`]); +const octokit_client_1 = __webpack_require__(921); +const ERROR_PR_REVIEW_FROM_AUTHOR = 'Review cannot be requested from pull request author'; +class GitHubHelper { + constructor(token) { + const options = {}; + if (token) { + options.auth = `${token}`; } - catch (error) { - core.setFailed(error.message); - } - finally { - // Restore the extraheader config option - if (extraHeaderOption.value != '') { - if (yield git_1.addConfigOption(repoPath, EXTRAHEADER_OPTION, extraHeaderOption.value)) - core.debug(`Restored config option '${EXTRAHEADER_OPTION}'`); - } - } - }); -} -run(); - - -/***/ }), - -/***/ 211: -/***/ (function(module) { - -module.exports = require("https"); - -/***/ }), - -/***/ 280: -/***/ (function(module, exports) { - -exports = module.exports = SemVer - -var debug -/* istanbul ignore next */ -if (typeof process === 'object' && - process.env && - process.env.NODE_DEBUG && - /\bsemver\b/i.test(process.env.NODE_DEBUG)) { - debug = function () { - var args = Array.prototype.slice.call(arguments, 0) - args.unshift('SEMVER') - console.log.apply(console, args) - } -} else { - debug = function () {} -} - -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -exports.SEMVER_SPEC_VERSION = '2.0.0' - -var MAX_LENGTH = 256 -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || - /* istanbul ignore next */ 9007199254740991 - -// Max safe segment length for coercion. -var MAX_SAFE_COMPONENT_LENGTH = 16 - -// The actual regexps go on exports.re -var re = exports.re = [] -var src = exports.src = [] -var t = exports.tokens = {} -var R = 0 - -function tok (n) { - t[n] = R++ -} - -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. - -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. - -tok('NUMERICIDENTIFIER') -src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*' -tok('NUMERICIDENTIFIERLOOSE') -src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+' - -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. - -tok('NONNUMERICIDENTIFIER') -src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*' - -// ## Main Version -// Three dot-separated numeric identifiers. - -tok('MAINVERSION') -src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + - '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + - '(' + src[t.NUMERICIDENTIFIER] + ')' - -tok('MAINVERSIONLOOSE') -src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')' - -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. - -tok('PRERELEASEIDENTIFIER') -src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] + - '|' + src[t.NONNUMERICIDENTIFIER] + ')' - -tok('PRERELEASEIDENTIFIERLOOSE') -src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] + - '|' + src[t.NONNUMERICIDENTIFIER] + ')' - -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. - -tok('PRERELEASE') -src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] + - '(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))' - -tok('PRERELEASELOOSE') -src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] + - '(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))' - -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. - -tok('BUILDIDENTIFIER') -src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+' - -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. - -tok('BUILD') -src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] + - '(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))' - -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. - -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. - -tok('FULL') -tok('FULLPLAIN') -src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] + - src[t.PRERELEASE] + '?' + - src[t.BUILD] + '?' - -src[t.FULL] = '^' + src[t.FULLPLAIN] + '$' - -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -tok('LOOSEPLAIN') -src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] + - src[t.PRERELEASELOOSE] + '?' + - src[t.BUILD] + '?' - -tok('LOOSE') -src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$' - -tok('GTLT') -src[t.GTLT] = '((?:<|>)?=?)' - -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -tok('XRANGEIDENTIFIERLOOSE') -src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*' -tok('XRANGEIDENTIFIER') -src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*' - -tok('XRANGEPLAIN') -src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + - '(?:' + src[t.PRERELEASE] + ')?' + - src[t.BUILD] + '?' + - ')?)?' - -tok('XRANGEPLAINLOOSE') -src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + - '(?:' + src[t.PRERELEASELOOSE] + ')?' + - src[t.BUILD] + '?' + - ')?)?' - -tok('XRANGE') -src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$' -tok('XRANGELOOSE') -src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$' - -// Coercion. -// Extract anything that could conceivably be a part of a valid semver -tok('COERCE') -src[t.COERCE] = '(^|[^\\d])' + - '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + - '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + - '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + - '(?:$|[^\\d])' -tok('COERCERTL') -re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g') - -// Tilde ranges. -// Meaning is "reasonably at or greater than" -tok('LONETILDE') -src[t.LONETILDE] = '(?:~>?)' - -tok('TILDETRIM') -src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+' -re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g') -var tildeTrimReplace = '$1~' - -tok('TILDE') -src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$' -tok('TILDELOOSE') -src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$' - -// Caret ranges. -// Meaning is "at least and backwards compatible with" -tok('LONECARET') -src[t.LONECARET] = '(?:\\^)' - -tok('CARETTRIM') -src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+' -re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g') -var caretTrimReplace = '$1^' - -tok('CARET') -src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$' -tok('CARETLOOSE') -src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$' - -// A simple gt/lt/eq thing, or just "" to indicate "any version" -tok('COMPARATORLOOSE') -src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$' -tok('COMPARATOR') -src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$' - -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -tok('COMPARATORTRIM') -src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] + - '\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')' - -// this one has to use the /g flag -re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g') -var comparatorTrimReplace = '$1$2$3' - -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -tok('HYPHENRANGE') -src[t.HYPHENRANGE] = '^\\s*(' + src[t.XRANGEPLAIN] + ')' + - '\\s+-\\s+' + - '(' + src[t.XRANGEPLAIN] + ')' + - '\\s*$' - -tok('HYPHENRANGELOOSE') -src[t.HYPHENRANGELOOSE] = '^\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' + - '\\s+-\\s+' + - '(' + src[t.XRANGEPLAINLOOSE] + ')' + - '\\s*$' - -// Star ranges basically just allow anything at all. -tok('STAR') -src[t.STAR] = '(<|>)?=?\\s*\\*' - -// Compile to actual regexp objects. -// All are flag-free, unless they were created above with a flag. -for (var i = 0; i < R; i++) { - debug(i, src[i]) - if (!re[i]) { - re[i] = new RegExp(src[i]) - } -} - -exports.parse = parse -function parse (version, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false + this.octokit = new octokit_client_1.Octokit(options); } - } - - if (version instanceof SemVer) { - return version - } - - if (typeof version !== 'string') { - return null - } - - if (version.length > MAX_LENGTH) { - return null - } - - var r = options.loose ? re[t.LOOSE] : re[t.FULL] - if (!r.test(version)) { - return null - } - - try { - return new SemVer(version, options) - } catch (er) { - return null - } -} - -exports.valid = valid -function valid (version, options) { - var v = parse(version, options) - return v ? v.version : null -} - -exports.clean = clean -function clean (version, options) { - var s = parse(version.trim().replace(/^[=v]+/, ''), options) - return s ? s.version : null -} - -exports.SemVer = SemVer - -function SemVer (version, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } - } - if (version instanceof SemVer) { - if (version.loose === options.loose) { - return version - } else { - version = version.version - } - } else if (typeof version !== 'string') { - throw new TypeError('Invalid Version: ' + version) - } - - if (version.length > MAX_LENGTH) { - throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') - } - - if (!(this instanceof SemVer)) { - return new SemVer(version, options) - } - - debug('SemVer', version, options) - this.options = options - this.loose = !!options.loose - - var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) - - if (!m) { - throw new TypeError('Invalid Version: ' + version) - } - - this.raw = version - - // these are actually numbers - this.major = +m[1] - this.minor = +m[2] - this.patch = +m[3] - - if (this.major > MAX_SAFE_INTEGER || this.major < 0) { - throw new TypeError('Invalid major version') - } - - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { - throw new TypeError('Invalid minor version') - } - - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { - throw new TypeError('Invalid patch version') - } - - // numberify any prerelease numeric ids - if (!m[4]) { - this.prerelease = [] - } else { - this.prerelease = m[4].split('.').map(function (id) { - if (/^[0-9]+$/.test(id)) { - var num = +id - if (num >= 0 && num < MAX_SAFE_INTEGER) { - return num - } - } - return id - }) - } - - this.build = m[5] ? m[5].split('.') : [] - this.format() -} - -SemVer.prototype.format = function () { - this.version = this.major + '.' + this.minor + '.' + this.patch - if (this.prerelease.length) { - this.version += '-' + this.prerelease.join('.') - } - return this.version -} - -SemVer.prototype.toString = function () { - return this.version -} - -SemVer.prototype.compare = function (other) { - debug('SemVer.compare', this.version, this.options, other) - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } - - return this.compareMain(other) || this.comparePre(other) -} - -SemVer.prototype.compareMain = function (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } - - return compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch) -} - -SemVer.prototype.comparePre = function (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } - - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) { - return -1 - } else if (!this.prerelease.length && other.prerelease.length) { - return 1 - } else if (!this.prerelease.length && !other.prerelease.length) { - return 0 - } - - var i = 0 - do { - var a = this.prerelease[i] - var b = other.prerelease[i] - debug('prerelease compare', i, a, b) - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers(a, b) - } - } while (++i) -} - -SemVer.prototype.compareBuild = function (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } - - var i = 0 - do { - var a = this.build[i] - var b = other.build[i] - debug('prerelease compare', i, a, b) - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers(a, b) - } - } while (++i) -} - -// preminor will bump the version up to the next minor release, and immediately -// down to pre-release. premajor and prepatch work the same way. -SemVer.prototype.inc = function (release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0 - this.patch = 0 - this.minor = 0 - this.major++ - this.inc('pre', identifier) - break - case 'preminor': - this.prerelease.length = 0 - this.patch = 0 - this.minor++ - this.inc('pre', identifier) - break - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0 - this.inc('patch', identifier) - this.inc('pre', identifier) - break - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) { - this.inc('patch', identifier) - } - this.inc('pre', identifier) - break - - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || - this.patch !== 0 || - this.prerelease.length === 0) { - this.major++ - } - this.minor = 0 - this.patch = 0 - this.prerelease = [] - break - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) { - this.minor++ - } - this.patch = 0 - this.prerelease = [] - break - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) { - this.patch++ - } - this.prerelease = [] - break - // This probably shouldn't be used publicly. - // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) { - this.prerelease = [0] - } else { - var i = this.prerelease.length - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++ - i = -2 - } - } - if (i === -1) { - // didn't increment anything - this.prerelease.push(0) - } - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) { - this.prerelease = [identifier, 0] - } - } else { - this.prerelease = [identifier, 0] - } - } - break - - default: - throw new Error('invalid increment argument: ' + release) - } - this.format() - this.raw = this.version - return this -} - -exports.inc = inc -function inc (version, release, loose, identifier) { - if (typeof (loose) === 'string') { - identifier = loose - loose = undefined - } - - try { - return new SemVer(version, loose).inc(release, identifier).version - } catch (er) { - return null - } -} - -exports.diff = diff -function diff (version1, version2) { - if (eq(version1, version2)) { - return null - } else { - var v1 = parse(version1) - var v2 = parse(version2) - var prefix = '' - if (v1.prerelease.length || v2.prerelease.length) { - prefix = 'pre' - var defaultResult = 'prerelease' - } - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return prefix + key - } - } - } - return defaultResult // may be undefined - } -} - -exports.compareIdentifiers = compareIdentifiers - -var numeric = /^[0-9]+$/ -function compareIdentifiers (a, b) { - var anum = numeric.test(a) - var bnum = numeric.test(b) - - if (anum && bnum) { - a = +a - b = +b - } - - return a === b ? 0 - : (anum && !bnum) ? -1 - : (bnum && !anum) ? 1 - : a < b ? -1 - : 1 -} - -exports.rcompareIdentifiers = rcompareIdentifiers -function rcompareIdentifiers (a, b) { - return compareIdentifiers(b, a) -} - -exports.major = major -function major (a, loose) { - return new SemVer(a, loose).major -} - -exports.minor = minor -function minor (a, loose) { - return new SemVer(a, loose).minor -} - -exports.patch = patch -function patch (a, loose) { - return new SemVer(a, loose).patch -} - -exports.compare = compare -function compare (a, b, loose) { - return new SemVer(a, loose).compare(new SemVer(b, loose)) -} - -exports.compareLoose = compareLoose -function compareLoose (a, b) { - return compare(a, b, true) -} - -exports.compareBuild = compareBuild -function compareBuild (a, b, loose) { - var versionA = new SemVer(a, loose) - var versionB = new SemVer(b, loose) - return versionA.compare(versionB) || versionA.compareBuild(versionB) -} - -exports.rcompare = rcompare -function rcompare (a, b, loose) { - return compare(b, a, loose) -} - -exports.sort = sort -function sort (list, loose) { - return list.sort(function (a, b) { - return exports.compareBuild(a, b, loose) - }) -} - -exports.rsort = rsort -function rsort (list, loose) { - return list.sort(function (a, b) { - return exports.compareBuild(b, a, loose) - }) -} - -exports.gt = gt -function gt (a, b, loose) { - return compare(a, b, loose) > 0 -} - -exports.lt = lt -function lt (a, b, loose) { - return compare(a, b, loose) < 0 -} - -exports.eq = eq -function eq (a, b, loose) { - return compare(a, b, loose) === 0 -} - -exports.neq = neq -function neq (a, b, loose) { - return compare(a, b, loose) !== 0 -} - -exports.gte = gte -function gte (a, b, loose) { - return compare(a, b, loose) >= 0 -} - -exports.lte = lte -function lte (a, b, loose) { - return compare(a, b, loose) <= 0 -} - -exports.cmp = cmp -function cmp (a, op, b, loose) { - switch (op) { - case '===': - if (typeof a === 'object') - a = a.version - if (typeof b === 'object') - b = b.version - return a === b - - case '!==': - if (typeof a === 'object') - a = a.version - if (typeof b === 'object') - b = b.version - return a !== b - - case '': - case '=': - case '==': - return eq(a, b, loose) - - case '!=': - return neq(a, b, loose) - - case '>': - return gt(a, b, loose) - - case '>=': - return gte(a, b, loose) - - case '<': - return lt(a, b, loose) - - case '<=': - return lte(a, b, loose) - - default: - throw new TypeError('Invalid operator: ' + op) - } -} - -exports.Comparator = Comparator -function Comparator (comp, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } - } - - if (comp instanceof Comparator) { - if (comp.loose === !!options.loose) { - return comp - } else { - comp = comp.value - } - } - - if (!(this instanceof Comparator)) { - return new Comparator(comp, options) - } - - debug('comparator', comp, options) - this.options = options - this.loose = !!options.loose - this.parse(comp) - - if (this.semver === ANY) { - this.value = '' - } else { - this.value = this.operator + this.semver.version - } - - debug('comp', this) -} - -var ANY = {} -Comparator.prototype.parse = function (comp) { - var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] - var m = comp.match(r) - - if (!m) { - throw new TypeError('Invalid comparator: ' + comp) - } - - this.operator = m[1] !== undefined ? m[1] : '' - if (this.operator === '=') { - this.operator = '' - } - - // if it literally is just '>' or '' then allow anything. - if (!m[2]) { - this.semver = ANY - } else { - this.semver = new SemVer(m[2], this.options.loose) - } -} - -Comparator.prototype.toString = function () { - return this.value -} - -Comparator.prototype.test = function (version) { - debug('Comparator.test', version, this.options.loose) - - if (this.semver === ANY || version === ANY) { - return true - } - - if (typeof version === 'string') { - try { - version = new SemVer(version, this.options) - } catch (er) { - return false - } - } - - return cmp(version, this.operator, this.semver, this.options) -} - -Comparator.prototype.intersects = function (comp, options) { - if (!(comp instanceof Comparator)) { - throw new TypeError('a Comparator is required') - } - - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } - } - - var rangeTmp - - if (this.operator === '') { - if (this.value === '') { - return true - } - rangeTmp = new Range(comp.value, options) - return satisfies(this.value, rangeTmp, options) - } else if (comp.operator === '') { - if (comp.value === '') { - return true - } - rangeTmp = new Range(this.value, options) - return satisfies(comp.semver, rangeTmp, options) - } - - var sameDirectionIncreasing = - (this.operator === '>=' || this.operator === '>') && - (comp.operator === '>=' || comp.operator === '>') - var sameDirectionDecreasing = - (this.operator === '<=' || this.operator === '<') && - (comp.operator === '<=' || comp.operator === '<') - var sameSemVer = this.semver.version === comp.semver.version - var differentDirectionsInclusive = - (this.operator === '>=' || this.operator === '<=') && - (comp.operator === '>=' || comp.operator === '<=') - var oppositeDirectionsLessThan = - cmp(this.semver, '<', comp.semver, options) && - ((this.operator === '>=' || this.operator === '>') && - (comp.operator === '<=' || comp.operator === '<')) - var oppositeDirectionsGreaterThan = - cmp(this.semver, '>', comp.semver, options) && - ((this.operator === '<=' || this.operator === '<') && - (comp.operator === '>=' || comp.operator === '>')) - - return sameDirectionIncreasing || sameDirectionDecreasing || - (sameSemVer && differentDirectionsInclusive) || - oppositeDirectionsLessThan || oppositeDirectionsGreaterThan -} - -exports.Range = Range -function Range (range, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } - } - - if (range instanceof Range) { - if (range.loose === !!options.loose && - range.includePrerelease === !!options.includePrerelease) { - return range - } else { - return new Range(range.raw, options) - } - } - - if (range instanceof Comparator) { - return new Range(range.value, options) - } - - if (!(this instanceof Range)) { - return new Range(range, options) - } - - this.options = options - this.loose = !!options.loose - this.includePrerelease = !!options.includePrerelease - - // First, split based on boolean or || - this.raw = range - this.set = range.split(/\s*\|\|\s*/).map(function (range) { - return this.parseRange(range.trim()) - }, this).filter(function (c) { - // throw out any that are not relevant for whatever reason - return c.length - }) - - if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + range) - } - - this.format() -} - -Range.prototype.format = function () { - this.range = this.set.map(function (comps) { - return comps.join(' ').trim() - }).join('||').trim() - return this.range -} - -Range.prototype.toString = function () { - return this.range -} - -Range.prototype.parseRange = function (range) { - var loose = this.options.loose - range = range.trim() - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] - range = range.replace(hr, hyphenReplace) - debug('hyphen replace', range) - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) - debug('comparator trim', range, re[t.COMPARATORTRIM]) - - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[t.TILDETRIM], tildeTrimReplace) - - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[t.CARETTRIM], caretTrimReplace) - - // normalize spaces - range = range.split(/\s+/).join(' ') - - // At this point, the range is completely trimmed and - // ready to be split into comparators. - - var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] - var set = range.split(' ').map(function (comp) { - return parseComparator(comp, this.options) - }, this).join(' ').split(/\s+/) - if (this.options.loose) { - // in loose mode, throw out any that are not valid comparators - set = set.filter(function (comp) { - return !!comp.match(compRe) - }) - } - set = set.map(function (comp) { - return new Comparator(comp, this.options) - }, this) - - return set -} - -Range.prototype.intersects = function (range, options) { - if (!(range instanceof Range)) { - throw new TypeError('a Range is required') - } - - return this.set.some(function (thisComparators) { - return ( - isSatisfiable(thisComparators, options) && - range.set.some(function (rangeComparators) { - return ( - isSatisfiable(rangeComparators, options) && - thisComparators.every(function (thisComparator) { - return rangeComparators.every(function (rangeComparator) { - return thisComparator.intersects(rangeComparator, options) - }) - }) - ) - }) - ) - }) -} - -// take a set of comparators and determine whether there -// exists a version which can satisfy it -function isSatisfiable (comparators, options) { - var result = true - var remainingComparators = comparators.slice() - var testComparator = remainingComparators.pop() - - while (result && remainingComparators.length) { - result = remainingComparators.every(function (otherComparator) { - return testComparator.intersects(otherComparator, options) - }) - - testComparator = remainingComparators.pop() - } - - return result -} - -// Mostly just for testing and legacy API reasons -exports.toComparators = toComparators -function toComparators (range, options) { - return new Range(range, options).set.map(function (comp) { - return comp.map(function (c) { - return c.value - }).join(' ').trim().split(' ') - }) -} - -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -function parseComparator (comp, options) { - debug('comp', comp, options) - comp = replaceCarets(comp, options) - debug('caret', comp) - comp = replaceTildes(comp, options) - debug('tildes', comp) - comp = replaceXRanges(comp, options) - debug('xrange', comp) - comp = replaceStars(comp, options) - debug('stars', comp) - return comp -} - -function isX (id) { - return !id || id.toLowerCase() === 'x' || id === '*' -} - -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -function replaceTildes (comp, options) { - return comp.trim().split(/\s+/).map(function (comp) { - return replaceTilde(comp, options) - }).join(' ') -} - -function replaceTilde (comp, options) { - var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] - return comp.replace(r, function (_, M, m, p, pr) { - debug('tilde', comp, _, M, m, p, pr) - var ret - - if (isX(M)) { - ret = '' - } else if (isX(m)) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' - } else if (isX(p)) { - // ~1.2 == >=1.2.0 <1.3.0 - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' - } else if (pr) { - debug('replaceTilde pr', pr) - ret = '>=' + M + '.' + m + '.' + p + '-' + pr + - ' <' + M + '.' + (+m + 1) + '.0' - } else { - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0' - } - - debug('tilde return', ret) - return ret - }) -} - -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -function replaceCarets (comp, options) { - return comp.trim().split(/\s+/).map(function (comp) { - return replaceCaret(comp, options) - }).join(' ') -} - -function replaceCaret (comp, options) { - debug('caret', comp, options) - var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] - return comp.replace(r, function (_, M, m, p, pr) { - debug('caret', comp, _, M, m, p, pr) - var ret - - if (isX(M)) { - ret = '' - } else if (isX(m)) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' - } else if (isX(p)) { - if (M === '0') { - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' - } else { - ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0' - } - } else if (pr) { - debug('replaceCaret pr', pr) - if (M === '0') { - if (m === '0') { - ret = '>=' + M + '.' + m + '.' + p + '-' + pr + - ' <' + M + '.' + m + '.' + (+p + 1) - } else { - ret = '>=' + M + '.' + m + '.' + p + '-' + pr + - ' <' + M + '.' + (+m + 1) + '.0' - } - } else { - ret = '>=' + M + '.' + m + '.' + p + '-' + pr + - ' <' + (+M + 1) + '.0.0' - } - } else { - debug('no pr') - if (M === '0') { - if (m === '0') { - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + m + '.' + (+p + 1) - } else { - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0' - } - } else { - ret = '>=' + M + '.' + m + '.' + p + - ' <' + (+M + 1) + '.0.0' - } - } - - debug('caret return', ret) - return ret - }) -} - -function replaceXRanges (comp, options) { - debug('replaceXRanges', comp, options) - return comp.split(/\s+/).map(function (comp) { - return replaceXRange(comp, options) - }).join(' ') -} - -function replaceXRange (comp, options) { - comp = comp.trim() - var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] - return comp.replace(r, function (ret, gtlt, M, m, p, pr) { - debug('xRange', comp, ret, gtlt, M, m, p, pr) - var xM = isX(M) - var xm = xM || isX(m) - var xp = xm || isX(p) - var anyX = xp - - if (gtlt === '=' && anyX) { - gtlt = '' - } - - // if we're including prereleases in the match, then we need - // to fix this to -0, the lowest possible prerelease value - pr = options.includePrerelease ? '-0' : '' - - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0-0' - } else { - // nothing is forbidden - ret = '*' - } - } else if (gtlt && anyX) { - // we know patch is an x, because we have any x at all. - // replace X with 0 - if (xm) { - m = 0 - } - p = 0 - - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = '>=' - if (xm) { - M = +M + 1 - m = 0 - p = 0 - } else { - m = +m + 1 - p = 0 - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<' - if (xm) { - M = +M + 1 - } else { - m = +m + 1 - } - } - - ret = gtlt + M + '.' + m + '.' + p + pr - } else if (xm) { - ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr - } else if (xp) { - ret = '>=' + M + '.' + m + '.0' + pr + - ' <' + M + '.' + (+m + 1) + '.0' + pr - } - - debug('xRange return', ret) - - return ret - }) -} - -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -function replaceStars (comp, options) { - debug('replaceStars', comp, options) - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[t.STAR], '') -} - -// This function is passed to string.replace(re[t.HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -function hyphenReplace ($0, - from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) { - if (isX(fM)) { - from = '' - } else if (isX(fm)) { - from = '>=' + fM + '.0.0' - } else if (isX(fp)) { - from = '>=' + fM + '.' + fm + '.0' - } else { - from = '>=' + from - } - - if (isX(tM)) { - to = '' - } else if (isX(tm)) { - to = '<' + (+tM + 1) + '.0.0' - } else if (isX(tp)) { - to = '<' + tM + '.' + (+tm + 1) + '.0' - } else if (tpr) { - to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr - } else { - to = '<=' + to - } - - return (from + ' ' + to).trim() -} - -// if ANY of the sets match ALL of its comparators, then pass -Range.prototype.test = function (version) { - if (!version) { - return false - } - - if (typeof version === 'string') { - try { - version = new SemVer(version, this.options) - } catch (er) { - return false - } - } - - for (var i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version, this.options)) { - return true - } - } - return false -} - -function testSet (set, version, options) { - for (var i = 0; i < set.length; i++) { - if (!set[i].test(version)) { - return false - } - } - - if (version.prerelease.length && !options.includePrerelease) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (i = 0; i < set.length; i++) { - debug(set[i].semver) - if (set[i].semver === ANY) { - continue - } - - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) { - return true - } - } - } - - // Version has a -pre, but it's not one of the ones we like. - return false - } - - return true -} - -exports.satisfies = satisfies -function satisfies (version, range, options) { - try { - range = new Range(range, options) - } catch (er) { - return false - } - return range.test(version) -} - -exports.maxSatisfying = maxSatisfying -function maxSatisfying (versions, range, options) { - var max = null - var maxSV = null - try { - var rangeObj = new Range(range, options) - } catch (er) { - return null - } - versions.forEach(function (v) { - if (rangeObj.test(v)) { - // satisfies(v, range, options) - if (!max || maxSV.compare(v) === -1) { - // compare(max, v, true) - max = v - maxSV = new SemVer(max, options) - } - } - }) - return max -} - -exports.minSatisfying = minSatisfying -function minSatisfying (versions, range, options) { - var min = null - var minSV = null - try { - var rangeObj = new Range(range, options) - } catch (er) { - return null - } - versions.forEach(function (v) { - if (rangeObj.test(v)) { - // satisfies(v, range, options) - if (!min || minSV.compare(v) === 1) { - // compare(min, v, true) - min = v - minSV = new SemVer(min, options) - } - } - }) - return min -} - -exports.minVersion = minVersion -function minVersion (range, loose) { - range = new Range(range, loose) - - var minver = new SemVer('0.0.0') - if (range.test(minver)) { - return minver - } - - minver = new SemVer('0.0.0-0') - if (range.test(minver)) { - return minver - } - - minver = null - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i] - - comparators.forEach(function (comparator) { - // Clone to avoid manipulating the comparator's semver object. - var compver = new SemVer(comparator.semver.version) - switch (comparator.operator) { - case '>': - if (compver.prerelease.length === 0) { - compver.patch++ - } else { - compver.prerelease.push(0) - } - compver.raw = compver.format() - /* fallthrough */ - case '': - case '>=': - if (!minver || gt(minver, compver)) { - minver = compver - } - break - case '<': - case '<=': - /* Ignore maximum versions */ - break - /* istanbul ignore next */ - default: - throw new Error('Unexpected operation: ' + comparator.operator) - } - }) - } - - if (minver && range.test(minver)) { - return minver - } - - return null -} - -exports.validRange = validRange -function validRange (range, options) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, options).range || '*' - } catch (er) { - return null - } -} - -// Determine if version is less than all the versions possible in the range -exports.ltr = ltr -function ltr (version, range, options) { - return outside(version, range, '<', options) -} - -// Determine if version is greater than all the versions possible in the range. -exports.gtr = gtr -function gtr (version, range, options) { - return outside(version, range, '>', options) -} - -exports.outside = outside -function outside (version, range, hilo, options) { - version = new SemVer(version, options) - range = new Range(range, options) - - var gtfn, ltefn, ltfn, comp, ecomp - switch (hilo) { - case '>': - gtfn = gt - ltefn = lte - ltfn = lt - comp = '>' - ecomp = '>=' - break - case '<': - gtfn = lt - ltefn = gte - ltfn = gt - comp = '<' - ecomp = '<=' - break - default: - throw new TypeError('Must provide a hilo val of "<" or ">"') - } - - // If it satisifes the range it is not outside - if (satisfies(version, range, options)) { - return false - } - - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i] - - var high = null - var low = null - - comparators.forEach(function (comparator) { - if (comparator.semver === ANY) { - comparator = new Comparator('>=0.0.0') - } - high = high || comparator - low = low || comparator - if (gtfn(comparator.semver, high.semver, options)) { - high = comparator - } else if (ltfn(comparator.semver, low.semver, options)) { - low = comparator - } - }) - - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false - } - - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && - ltefn(version, low.semver)) { - return false - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false - } - } - return true -} - -exports.prerelease = prerelease -function prerelease (version, options) { - var parsed = parse(version, options) - return (parsed && parsed.prerelease.length) ? parsed.prerelease : null -} - -exports.intersects = intersects -function intersects (r1, r2, options) { - r1 = new Range(r1, options) - r2 = new Range(r2, options) - return r1.intersects(r2) -} - -exports.coerce = coerce -function coerce (version, options) { - if (version instanceof SemVer) { - return version - } - - if (typeof version === 'number') { - version = String(version) - } - - if (typeof version !== 'string') { - return null - } - - options = options || {} - - var match = null - if (!options.rtl) { - match = version.match(re[t.COERCE]) - } else { - // Find the right-most coercible string that does not share - // a terminus with a more left-ward coercible string. - // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' - // - // Walk through the string checking with a /g regexp - // Manually set the index so as to pick up overlapping matches. - // Stop when we get a match that ends at the string end, since no - // coercible string can be more right-ward without the same terminus. - var next - while ((next = re[t.COERCERTL].exec(version)) && - (!match || match.index + match[0].length !== version.length) - ) { - if (!match || - next.index + next[0].length !== match.index + match[0].length) { - match = next - } - re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length - } - // leave it in a clean state - re[t.COERCERTL].lastIndex = -1 - } - - if (match === null) { - return null - } - - return parse(match[2] + - '.' + (match[3] || '0') + - '.' + (match[4] || '0'), options) -} - - -/***/ }), - -/***/ 357: -/***/ (function(module) { - -module.exports = require("assert"); - -/***/ }), - -/***/ 413: -/***/ (function(module, __unusedexports, __webpack_require__) { - -module.exports = __webpack_require__(141); - - -/***/ }), - -/***/ 417: -/***/ (function(module) { - -module.exports = require("crypto"); - -/***/ }), - -/***/ 431: -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const os = __importStar(__webpack_require__(87)); -/** - * Commands - * - * Command Format: - * ::name key=value,key=value::message - * - * Examples: - * ::warning::This is the message - * ::set-env name=MY_VAR::some value - */ -function issueCommand(command, properties, message) { - const cmd = new Command(command, properties, message); - process.stdout.write(cmd.toString() + os.EOL); -} -exports.issueCommand = issueCommand; -function issue(name, message = '') { - issueCommand(name, {}, message); -} -exports.issue = issue; -const CMD_STRING = '::'; -class Command { - constructor(command, properties, message) { - if (!command) { - command = 'missing.command'; - } - this.command = command; - this.properties = properties; - this.message = message; - } - toString() { - let cmdStr = CMD_STRING + this.command; - if (this.properties && Object.keys(this.properties).length > 0) { - cmdStr += ' '; - let first = true; - for (const key in this.properties) { - if (this.properties.hasOwnProperty(key)) { - const val = this.properties[key]; - if (val) { - if (first) { - first = false; - } - else { - cmdStr += ','; - } - cmdStr += `${key}=${escapeProperty(val)}`; - } - } - } - } - cmdStr += `${CMD_STRING}${escapeData(this.message)}`; - return cmdStr; - } -} -/** - * Sanitizes an input into a string so it can be passed into issueCommand safely - * @param input input to sanitize into a string - */ -function toCommandValue(input) { - if (input === null || input === undefined) { - return ''; - } - else if (typeof input === 'string' || input instanceof String) { - return input; - } - return JSON.stringify(input); -} -exports.toCommandValue = toCommandValue; -function escapeData(s) { - return toCommandValue(s) - .replace(/%/g, '%25') - .replace(/\r/g, '%0D') - .replace(/\n/g, '%0A'); -} -function escapeProperty(s) { - return toCommandValue(s) - .replace(/%/g, '%25') - .replace(/\r/g, '%0D') - .replace(/\n/g, '%0A') - .replace(/:/g, '%3A') - .replace(/,/g, '%2C'); -} -//# sourceMappingURL=command.js.map - -/***/ }), - -/***/ 453: -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getAndUnsetConfigOption = exports.getConfigOption = exports.configOptionExists = exports.unsetConfigOption = exports.addConfigOption = exports.execGit = exports.getRepoPath = exports.ConfigOption = void 0; -const core = __importStar(__webpack_require__(470)); -const exec = __importStar(__webpack_require__(986)); -const path = __importStar(__webpack_require__(622)); -class GitOutput { - constructor() { - this.stdout = ''; - this.exitCode = 0; - } -} -class ConfigOption { - constructor() { - this.name = ''; - this.value = ''; - } -} -exports.ConfigOption = ConfigOption; -function getRepoPath(relativePath) { - let githubWorkspacePath = process.env['GITHUB_WORKSPACE']; - if (!githubWorkspacePath) { - throw new Error('GITHUB_WORKSPACE not defined'); - } - githubWorkspacePath = path.resolve(githubWorkspacePath); - core.debug(`githubWorkspacePath: ${githubWorkspacePath}`); - let repoPath = githubWorkspacePath; - if (relativePath) - repoPath = path.resolve(repoPath, relativePath); - core.debug(`repoPath: ${repoPath}`); - return repoPath; -} -exports.getRepoPath = getRepoPath; -function execGit(repoPath, args, ignoreReturnCode = false) { - return __awaiter(this, void 0, void 0, function* () { - const result = new GitOutput(); - const stdout = []; - const options = { - cwd: repoPath, - ignoreReturnCode: ignoreReturnCode, - listeners: { - stdout: (data) => { - stdout.push(data.toString()); - } - } + parseRepository(repository) { + const [owner, repo] = repository.split('/'); + return { + owner: owner, + repo: repo }; - result.exitCode = yield exec.exec('git', args, options); - result.stdout = stdout.join(''); - return result; - }); -} -exports.execGit = execGit; -function addConfigOption(repoPath, name, value) { - return __awaiter(this, void 0, void 0, function* () { - const result = yield execGit(repoPath, ['config', '--local', '--add', name, value], true); - return result.exitCode === 0; - }); -} -exports.addConfigOption = addConfigOption; -function unsetConfigOption(repoPath, name, valueRegex = '.') { - return __awaiter(this, void 0, void 0, function* () { - const result = yield execGit(repoPath, ['config', '--local', '--unset', name, valueRegex], true); - return result.exitCode === 0; - }); -} -exports.unsetConfigOption = unsetConfigOption; -function configOptionExists(repoPath, name, valueRegex = '.') { - return __awaiter(this, void 0, void 0, function* () { - const result = yield execGit(repoPath, ['config', '--local', '--name-only', '--get-regexp', name, valueRegex], true); - return result.exitCode === 0; - }); -} -exports.configOptionExists = configOptionExists; -function getConfigOption(repoPath, name, valueRegex = '.') { - return __awaiter(this, void 0, void 0, function* () { - const option = new ConfigOption(); - const result = yield execGit(repoPath, ['config', '--local', '--get-regexp', name, valueRegex], true); - option.name = name; - option.value = result.stdout.trim().split(`${name} `)[1]; - return option; - }); -} -exports.getConfigOption = getConfigOption; -function getAndUnsetConfigOption(repoPath, name, valueRegex = '.') { - return __awaiter(this, void 0, void 0, function* () { - if (yield configOptionExists(repoPath, name, valueRegex)) { - const option = yield getConfigOption(repoPath, name, valueRegex); - if (yield unsetConfigOption(repoPath, name, valueRegex)) { - core.debug(`Unset config option '${name}'`); - return option; + } + createOrUpdate(inputs, baseRepository, headBranch) { + return __awaiter(this, void 0, void 0, function* () { + // Try to create the pull request + try { + const { data: pull } = yield this.octokit.pulls.create(Object.assign(Object.assign({}, this.parseRepository(baseRepository)), { title: inputs.title, head: headBranch, base: inputs.base, body: inputs.body, draft: inputs.draft })); + core.info(`Created pull request #${pull.number} (${headBranch} => ${inputs.base})`); + return pull.number; } - } - return new ConfigOption(); - }); -} -exports.getAndUnsetConfigOption = getAndUnsetConfigOption; - - -/***/ }), - -/***/ 470: -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const command_1 = __webpack_require__(431); -const os = __importStar(__webpack_require__(87)); -const path = __importStar(__webpack_require__(622)); -/** - * The code to exit an action - */ -var ExitCode; -(function (ExitCode) { - /** - * A code indicating that the action was successful - */ - ExitCode[ExitCode["Success"] = 0] = "Success"; - /** - * A code indicating that the action was a failure - */ - ExitCode[ExitCode["Failure"] = 1] = "Failure"; -})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); -//----------------------------------------------------------------------- -// Variables -//----------------------------------------------------------------------- -/** - * Sets env variable for this action and future actions in the job - * @param name the name of the variable to set - * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function exportVariable(name, val) { - const convertedVal = command_1.toCommandValue(val); - process.env[name] = convertedVal; - command_1.issueCommand('set-env', { name }, convertedVal); -} -exports.exportVariable = exportVariable; -/** - * Registers a secret which will get masked from logs - * @param secret value of the secret - */ -function setSecret(secret) { - command_1.issueCommand('add-mask', {}, secret); -} -exports.setSecret = setSecret; -/** - * Prepends inputPath to the PATH (for this action and future actions) - * @param inputPath - */ -function addPath(inputPath) { - command_1.issueCommand('add-path', {}, inputPath); - process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; -} -exports.addPath = addPath; -/** - * Gets the value of an input. The value is also trimmed. - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns string - */ -function getInput(name, options) { - const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; - if (options && options.required && !val) { - throw new Error(`Input required and not supplied: ${name}`); - } - return val.trim(); -} -exports.getInput = getInput; -/** - * Sets the value of an output. - * - * @param name name of the output to set - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function setOutput(name, value) { - command_1.issueCommand('set-output', { name }, value); -} -exports.setOutput = setOutput; -/** - * Enables or disables the echoing of commands into stdout for the rest of the step. - * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. - * - */ -function setCommandEcho(enabled) { - command_1.issue('echo', enabled ? 'on' : 'off'); -} -exports.setCommandEcho = setCommandEcho; -//----------------------------------------------------------------------- -// Results -//----------------------------------------------------------------------- -/** - * Sets the action status to failed. - * When the action exits it will be with an exit code of 1 - * @param message add error issue message - */ -function setFailed(message) { - process.exitCode = ExitCode.Failure; - error(message); -} -exports.setFailed = setFailed; -//----------------------------------------------------------------------- -// Logging Commands -//----------------------------------------------------------------------- -/** - * Gets whether Actions Step Debug is on or not - */ -function isDebug() { - return process.env['RUNNER_DEBUG'] === '1'; -} -exports.isDebug = isDebug; -/** - * Writes debug message to user log - * @param message debug message - */ -function debug(message) { - command_1.issueCommand('debug', {}, message); -} -exports.debug = debug; -/** - * Adds an error issue - * @param message error issue message. Errors will be converted to string via toString() - */ -function error(message) { - command_1.issue('error', message instanceof Error ? message.toString() : message); -} -exports.error = error; -/** - * Adds an warning issue - * @param message warning issue message. Errors will be converted to string via toString() - */ -function warning(message) { - command_1.issue('warning', message instanceof Error ? message.toString() : message); -} -exports.warning = warning; -/** - * Writes info to log with console.log. - * @param message info message - */ -function info(message) { - process.stdout.write(message + os.EOL); -} -exports.info = info; -/** - * Begin an output group. - * - * Output until the next `groupEnd` will be foldable in this group - * - * @param name The name of the output group - */ -function startGroup(name) { - command_1.issue('group', name); -} -exports.startGroup = startGroup; -/** - * End an output group. - */ -function endGroup() { - command_1.issue('endgroup'); -} -exports.endGroup = endGroup; -/** - * Wrap an asynchronous function call in a group. - * - * Returns the same type as the function itself. - * - * @param name The name of the group - * @param fn The function to wrap in the group - */ -function group(name, fn) { - return __awaiter(this, void 0, void 0, function* () { - startGroup(name); - let result; - try { - result = yield fn(); - } - finally { - endGroup(); - } - return result; - }); -} -exports.group = group; -//----------------------------------------------------------------------- -// Wrapper action state -//----------------------------------------------------------------------- -/** - * Saves state for current action, the state can only be retrieved by this action's post job execution. - * - * @param name name of the state to store - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function saveState(name, value) { - command_1.issueCommand('save-state', { name }, value); -} -exports.saveState = saveState; -/** - * Gets the value of an state set by this action's main execution. - * - * @param name name of the state to get - * @returns string - */ -function getState(name) { - return process.env[`STATE_${name}`] || ''; -} -exports.getState = getState; -//# sourceMappingURL=core.js.map - -/***/ }), - -/***/ 533: -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const core = __importStar(__webpack_require__(470)); -const io = __importStar(__webpack_require__(1)); -const fs = __importStar(__webpack_require__(747)); -const os = __importStar(__webpack_require__(87)); -const path = __importStar(__webpack_require__(622)); -const httpm = __importStar(__webpack_require__(539)); -const semver = __importStar(__webpack_require__(280)); -const stream = __importStar(__webpack_require__(794)); -const util = __importStar(__webpack_require__(669)); -const v4_1 = __importDefault(__webpack_require__(826)); -const exec_1 = __webpack_require__(986); -const assert_1 = __webpack_require__(357); -const retry_helper_1 = __webpack_require__(979); -class HTTPError extends Error { - constructor(httpStatusCode) { - super(`Unexpected HTTP response: ${httpStatusCode}`); - this.httpStatusCode = httpStatusCode; - Object.setPrototypeOf(this, new.target.prototype); - } -} -exports.HTTPError = HTTPError; -const IS_WINDOWS = process.platform === 'win32'; -const userAgent = 'actions/tool-cache'; -/** - * Download a tool from an url and stream it into a file - * - * @param url url of tool to download - * @param dest path to download tool - * @returns path to downloaded tool - */ -function downloadTool(url, dest) { - return __awaiter(this, void 0, void 0, function* () { - dest = dest || path.join(_getTempDirectory(), v4_1.default()); - yield io.mkdirP(path.dirname(dest)); - core.debug(`Downloading ${url}`); - core.debug(`Destination ${dest}`); - const maxAttempts = 3; - const minSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS', 10); - const maxSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS', 20); - const retryHelper = new retry_helper_1.RetryHelper(maxAttempts, minSeconds, maxSeconds); - return yield retryHelper.execute(() => __awaiter(this, void 0, void 0, function* () { - return yield downloadToolAttempt(url, dest || ''); - }), (err) => { - if (err instanceof HTTPError && err.httpStatusCode) { - // Don't retry anything less than 500, except 408 Request Timeout and 429 Too Many Requests - if (err.httpStatusCode < 500 && - err.httpStatusCode !== 408 && - err.httpStatusCode !== 429) { - return false; + catch (e) { + if (!e.message || + !e.message.includes(`A pull request already exists for ${headBranch}`)) { + throw e; } } - // Otherwise retry - return true; + // Update the pull request that exists for this branch and base + const { data: pulls } = yield this.octokit.pulls.list(Object.assign(Object.assign({}, this.parseRepository(baseRepository)), { state: 'open', head: headBranch, base: inputs.base })); + const { data: pull } = yield this.octokit.pulls.update(Object.assign(Object.assign({}, this.parseRepository(baseRepository)), { pull_number: pulls[0].number, title: inputs.title, body: inputs.body, draft: inputs.draft })); + core.info(`Updated pull request #${pull.number} (${headBranch} => ${inputs.base})`); + return pull.number; }); - }); -} -exports.downloadTool = downloadTool; -function downloadToolAttempt(url, dest) { - return __awaiter(this, void 0, void 0, function* () { - if (fs.existsSync(dest)) { - throw new Error(`Destination file path ${dest} already exists`); - } - // Get the response headers - const http = new httpm.HttpClient(userAgent, [], { - allowRetries: false - }); - const response = yield http.get(url); - if (response.message.statusCode !== 200) { - const err = new HTTPError(response.message.statusCode); - core.debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`); - throw err; - } - // Download the response body - const pipeline = util.promisify(stream.pipeline); - const responseMessageFactory = _getGlobal('TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY', () => response.message); - const readStream = responseMessageFactory(); - let succeeded = false; - try { - yield pipeline(readStream, fs.createWriteStream(dest)); - core.debug('download complete'); - succeeded = true; - return dest; - } - finally { - // Error, delete dest before retry - if (!succeeded) { - core.debug('download failed'); + } + createOrUpdatePullRequest(inputs, headRepository) { + return __awaiter(this, void 0, void 0, function* () { + const { data: headRepo } = yield this.octokit.repos.get(Object.assign({}, this.parseRepository(headRepository))); + if (inputs.requestToParent && !headRepo.parent) { + throw new Error(`The checked out repository is not a fork. Input 'request-to-parent' should be set to 'false'.`); + } + const baseRepository = inputs.requestToParent + ? headRepo.parent.full_name + : headRepository; + const headBranch = `${headRepo.owner.login}:${inputs.branch}`; + // Create or update the pull request + const pullNumber = yield this.createOrUpdate(inputs, baseRepository, headBranch); + // Set output + core.setOutput('pull-request-number', pullNumber); + // Set milestone, labels and assignees + const updateIssueParams = {}; + if (inputs.milestone) { + updateIssueParams['milestone'] = inputs.milestone; + core.info(`Applying milestone '${inputs.milestone}'`); + } + if (inputs.labels.length > 0) { + updateIssueParams['labels'] = inputs.labels; + core.info(`Applying labels '${inputs.labels}'`); + } + if (inputs.assignees.length > 0) { + updateIssueParams['assignees'] = inputs.assignees; + core.info(`Applying assignees '${inputs.assignees}'`); + } + if (Object.keys(updateIssueParams).length > 0) { + yield this.octokit.issues.update(Object.assign(Object.assign(Object.assign({}, this.parseRepository(baseRepository)), { issue_number: pullNumber }), updateIssueParams)); + } + // Request reviewers and team reviewers + const requestReviewersParams = {}; + if (inputs.reviewers.length > 0) { + requestReviewersParams['reviewers'] = inputs.reviewers; + core.info(`Requesting reviewers '${inputs.reviewers}'`); + } + if (inputs.teamReviewers.length > 0) { + requestReviewersParams['team_reviewers'] = inputs.teamReviewers; + core.info(`Requesting team reviewers '${inputs.teamReviewers}'`); + } + if (Object.keys(requestReviewersParams).length > 0) { try { - yield io.rmRF(dest); + yield this.octokit.pulls.requestReviewers(Object.assign(Object.assign(Object.assign({}, this.parseRepository(baseRepository)), { pull_number: pullNumber }), requestReviewersParams)); } - catch (err) { - core.debug(`Failed to delete '${dest}'. ${err.message}`); - } - } - } - }); -} -/** - * Extract a .7z file - * - * @param file path to the .7z file - * @param dest destination directory. Optional. - * @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this - * problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will - * gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is - * bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line - * interface, it is smaller than the full command line interface, and it does support long paths. At the - * time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website. - * Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path - * to 7zr.exe can be pass to this function. - * @returns path to the destination directory - */ -function extract7z(file, dest, _7zPath) { - return __awaiter(this, void 0, void 0, function* () { - assert_1.ok(IS_WINDOWS, 'extract7z() not supported on current OS'); - assert_1.ok(file, 'parameter "file" is required'); - dest = yield _createExtractFolder(dest); - const originalCwd = process.cwd(); - process.chdir(dest); - if (_7zPath) { - try { - const args = [ - 'x', - '-bb1', - '-bd', - '-sccUTF-8', - file - ]; - const options = { - silent: true - }; - yield exec_1.exec(`"${_7zPath}"`, args, options); - } - finally { - process.chdir(originalCwd); - } - } - else { - const escapedScript = path - .join(__dirname, '..', 'scripts', 'Invoke-7zdec.ps1') - .replace(/'/g, "''") - .replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines - const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ''); - const escapedTarget = dest.replace(/'/g, "''").replace(/"|\n|\r/g, ''); - const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`; - const args = [ - '-NoLogo', - '-Sta', - '-NoProfile', - '-NonInteractive', - '-ExecutionPolicy', - 'Unrestricted', - '-Command', - command - ]; - const options = { - silent: true - }; - try { - const powershellPath = yield io.which('powershell', true); - yield exec_1.exec(`"${powershellPath}"`, args, options); - } - finally { - process.chdir(originalCwd); - } - } - return dest; - }); -} -exports.extract7z = extract7z; -/** - * Extract a compressed tar archive - * - * @param file path to the tar - * @param dest destination directory. Optional. - * @param flags flags for the tar command to use for extraction. Defaults to 'xz' (extracting gzipped tars). Optional. - * @returns path to the destination directory - */ -function extractTar(file, dest, flags = 'xz') { - return __awaiter(this, void 0, void 0, function* () { - if (!file) { - throw new Error("parameter 'file' is required"); - } - // Create dest - dest = yield _createExtractFolder(dest); - // Determine whether GNU tar - core.debug('Checking tar --version'); - let versionOutput = ''; - yield exec_1.exec('tar --version', [], { - ignoreReturnCode: true, - silent: true, - listeners: { - stdout: (data) => (versionOutput += data.toString()), - stderr: (data) => (versionOutput += data.toString()) - } - }); - core.debug(versionOutput.trim()); - const isGnuTar = versionOutput.toUpperCase().includes('GNU TAR'); - // Initialize args - const args = [flags]; - let destArg = dest; - let fileArg = file; - if (IS_WINDOWS && isGnuTar) { - args.push('--force-local'); - destArg = dest.replace(/\\/g, '/'); - // Technically only the dest needs to have `/` but for aesthetic consistency - // convert slashes in the file arg too. - fileArg = file.replace(/\\/g, '/'); - } - if (isGnuTar) { - // Suppress warnings when using GNU tar to extract archives created by BSD tar - args.push('--warning=no-unknown-keyword'); - } - args.push('-C', destArg, '-f', fileArg); - yield exec_1.exec(`tar`, args); - return dest; - }); -} -exports.extractTar = extractTar; -/** - * Extract a zip - * - * @param file path to the zip - * @param dest destination directory. Optional. - * @returns path to the destination directory - */ -function extractZip(file, dest) { - return __awaiter(this, void 0, void 0, function* () { - if (!file) { - throw new Error("parameter 'file' is required"); - } - dest = yield _createExtractFolder(dest); - if (IS_WINDOWS) { - yield extractZipWin(file, dest); - } - else { - yield extractZipNix(file, dest); - } - return dest; - }); -} -exports.extractZip = extractZip; -function extractZipWin(file, dest) { - return __awaiter(this, void 0, void 0, function* () { - // build the powershell command - const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines - const escapedDest = dest.replace(/'/g, "''").replace(/"|\n|\r/g, ''); - const command = `$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}')`; - // run powershell - const powershellPath = yield io.which('powershell'); - const args = [ - '-NoLogo', - '-Sta', - '-NoProfile', - '-NonInteractive', - '-ExecutionPolicy', - 'Unrestricted', - '-Command', - command - ]; - yield exec_1.exec(`"${powershellPath}"`, args); - }); -} -function extractZipNix(file, dest) { - return __awaiter(this, void 0, void 0, function* () { - const unzipPath = yield io.which('unzip'); - yield exec_1.exec(`"${unzipPath}"`, [file], { cwd: dest }); - }); -} -/** - * Caches a directory and installs it into the tool cacheDir - * - * @param sourceDir the directory to cache into tools - * @param tool tool name - * @param version version of the tool. semver format - * @param arch architecture of the tool. Optional. Defaults to machine architecture - */ -function cacheDir(sourceDir, tool, version, arch) { - return __awaiter(this, void 0, void 0, function* () { - version = semver.clean(version) || version; - arch = arch || os.arch(); - core.debug(`Caching tool ${tool} ${version} ${arch}`); - core.debug(`source dir: ${sourceDir}`); - if (!fs.statSync(sourceDir).isDirectory()) { - throw new Error('sourceDir is not a directory'); - } - // Create the tool dir - const destPath = yield _createToolPath(tool, version, arch); - // copy each child item. do not move. move can fail on Windows - // due to anti-virus software having an open handle on a file. - for (const itemName of fs.readdirSync(sourceDir)) { - const s = path.join(sourceDir, itemName); - yield io.cp(s, destPath, { recursive: true }); - } - // write .complete - _completeToolPath(tool, version, arch); - return destPath; - }); -} -exports.cacheDir = cacheDir; -/** - * Caches a downloaded file (GUID) and installs it - * into the tool cache with a given targetName - * - * @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid. - * @param targetFile the name of the file name in the tools directory - * @param tool tool name - * @param version version of the tool. semver format - * @param arch architecture of the tool. Optional. Defaults to machine architecture - */ -function cacheFile(sourceFile, targetFile, tool, version, arch) { - return __awaiter(this, void 0, void 0, function* () { - version = semver.clean(version) || version; - arch = arch || os.arch(); - core.debug(`Caching tool ${tool} ${version} ${arch}`); - core.debug(`source file: ${sourceFile}`); - if (!fs.statSync(sourceFile).isFile()) { - throw new Error('sourceFile is not a file'); - } - // create the tool dir - const destFolder = yield _createToolPath(tool, version, arch); - // copy instead of move. move can fail on Windows due to - // anti-virus software having an open handle on a file. - const destPath = path.join(destFolder, targetFile); - core.debug(`destination file ${destPath}`); - yield io.cp(sourceFile, destPath); - // write .complete - _completeToolPath(tool, version, arch); - return destFolder; - }); -} -exports.cacheFile = cacheFile; -/** - * Finds the path to a tool version in the local installed tool cache - * - * @param toolName name of the tool - * @param versionSpec version of the tool - * @param arch optional arch. defaults to arch of computer - */ -function find(toolName, versionSpec, arch) { - if (!toolName) { - throw new Error('toolName parameter is required'); - } - if (!versionSpec) { - throw new Error('versionSpec parameter is required'); - } - arch = arch || os.arch(); - // attempt to resolve an explicit version - if (!_isExplicitVersion(versionSpec)) { - const localVersions = findAllVersions(toolName, arch); - const match = _evaluateVersions(localVersions, versionSpec); - versionSpec = match; - } - // check for the explicit version in the cache - let toolPath = ''; - if (versionSpec) { - versionSpec = semver.clean(versionSpec) || ''; - const cachePath = path.join(_getCacheDirectory(), toolName, versionSpec, arch); - core.debug(`checking cache: ${cachePath}`); - if (fs.existsSync(cachePath) && fs.existsSync(`${cachePath}.complete`)) { - core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`); - toolPath = cachePath; - } - else { - core.debug('not found'); - } - } - return toolPath; -} -exports.find = find; -/** - * Finds the paths to all versions of a tool that are installed in the local tool cache - * - * @param toolName name of the tool - * @param arch optional arch. defaults to arch of computer - */ -function findAllVersions(toolName, arch) { - const versions = []; - arch = arch || os.arch(); - const toolPath = path.join(_getCacheDirectory(), toolName); - if (fs.existsSync(toolPath)) { - const children = fs.readdirSync(toolPath); - for (const child of children) { - if (_isExplicitVersion(child)) { - const fullPath = path.join(toolPath, child, arch || ''); - if (fs.existsSync(fullPath) && fs.existsSync(`${fullPath}.complete`)) { - versions.push(child); - } - } - } - } - return versions; -} -exports.findAllVersions = findAllVersions; -function _createExtractFolder(dest) { - return __awaiter(this, void 0, void 0, function* () { - if (!dest) { - // create a temp dir - dest = path.join(_getTempDirectory(), v4_1.default()); - } - yield io.mkdirP(dest); - return dest; - }); -} -function _createToolPath(tool, version, arch) { - return __awaiter(this, void 0, void 0, function* () { - const folderPath = path.join(_getCacheDirectory(), tool, semver.clean(version) || version, arch || ''); - core.debug(`destination ${folderPath}`); - const markerPath = `${folderPath}.complete`; - yield io.rmRF(folderPath); - yield io.rmRF(markerPath); - yield io.mkdirP(folderPath); - return folderPath; - }); -} -function _completeToolPath(tool, version, arch) { - const folderPath = path.join(_getCacheDirectory(), tool, semver.clean(version) || version, arch || ''); - const markerPath = `${folderPath}.complete`; - fs.writeFileSync(markerPath, ''); - core.debug('finished caching tool'); -} -function _isExplicitVersion(versionSpec) { - const c = semver.clean(versionSpec) || ''; - core.debug(`isExplicit: ${c}`); - const valid = semver.valid(c) != null; - core.debug(`explicit? ${valid}`); - return valid; -} -function _evaluateVersions(versions, versionSpec) { - let version = ''; - core.debug(`evaluating ${versions.length} versions`); - versions = versions.sort((a, b) => { - if (semver.gt(a, b)) { - return 1; - } - return -1; - }); - for (let i = versions.length - 1; i >= 0; i--) { - const potential = versions[i]; - const satisfied = semver.satisfies(potential, versionSpec); - if (satisfied) { - version = potential; - break; - } - } - if (version) { - core.debug(`matched: ${version}`); - } - else { - core.debug('match not found'); - } - return version; -} -/** - * Gets RUNNER_TOOL_CACHE - */ -function _getCacheDirectory() { - const cacheDirectory = process.env['RUNNER_TOOL_CACHE'] || ''; - assert_1.ok(cacheDirectory, 'Expected RUNNER_TOOL_CACHE to be defined'); - return cacheDirectory; -} -/** - * Gets RUNNER_TEMP - */ -function _getTempDirectory() { - const tempDirectory = process.env['RUNNER_TEMP'] || ''; - assert_1.ok(tempDirectory, 'Expected RUNNER_TEMP to be defined'); - return tempDirectory; -} -/** - * Gets a global variable - */ -function _getGlobal(key, defaultValue) { - /* eslint-disable @typescript-eslint/no-explicit-any */ - const value = global[key]; - /* eslint-enable @typescript-eslint/no-explicit-any */ - return value !== undefined ? value : defaultValue; -} -//# sourceMappingURL=tool-cache.js.map - -/***/ }), - -/***/ 539: -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -const url = __webpack_require__(835); -const http = __webpack_require__(605); -const https = __webpack_require__(211); -const pm = __webpack_require__(950); -let tunnel; -var HttpCodes; -(function (HttpCodes) { - HttpCodes[HttpCodes["OK"] = 200] = "OK"; - HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; - HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; - HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; - HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; - HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; - HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; - HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; - HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; - HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; - HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; - HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; - HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; - HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; - HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; - HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; - HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; - HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; - HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; - HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; - HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; - HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; - HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; - HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; - HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; - HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; - HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; -})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); -var Headers; -(function (Headers) { - Headers["Accept"] = "accept"; - Headers["ContentType"] = "content-type"; -})(Headers = exports.Headers || (exports.Headers = {})); -var MediaTypes; -(function (MediaTypes) { - MediaTypes["ApplicationJson"] = "application/json"; -})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); -/** - * Returns the proxy URL, depending upon the supplied url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ -function getProxyUrl(serverUrl) { - let proxyUrl = pm.getProxyUrl(url.parse(serverUrl)); - return proxyUrl ? proxyUrl.href : ''; -} -exports.getProxyUrl = getProxyUrl; -const HttpRedirectCodes = [ - HttpCodes.MovedPermanently, - HttpCodes.ResourceMoved, - HttpCodes.SeeOther, - HttpCodes.TemporaryRedirect, - HttpCodes.PermanentRedirect -]; -const HttpResponseRetryCodes = [ - HttpCodes.BadGateway, - HttpCodes.ServiceUnavailable, - HttpCodes.GatewayTimeout -]; -const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; -const ExponentialBackoffCeiling = 10; -const ExponentialBackoffTimeSlice = 5; -class HttpClientResponse { - constructor(message) { - this.message = message; - } - readBody() { - return new Promise(async (resolve, reject) => { - let output = Buffer.alloc(0); - this.message.on('data', (chunk) => { - output = Buffer.concat([output, chunk]); - }); - this.message.on('end', () => { - resolve(output.toString()); - }); - }); - } -} -exports.HttpClientResponse = HttpClientResponse; -function isHttps(requestUrl) { - let parsedUrl = url.parse(requestUrl); - return parsedUrl.protocol === 'https:'; -} -exports.isHttps = isHttps; -class HttpClient { - constructor(userAgent, handlers, requestOptions) { - this._ignoreSslError = false; - this._allowRedirects = true; - this._allowRedirectDowngrade = false; - this._maxRedirects = 50; - this._allowRetries = false; - this._maxRetries = 1; - this._keepAlive = false; - this._disposed = false; - this.userAgent = userAgent; - this.handlers = handlers || []; - this.requestOptions = requestOptions; - if (requestOptions) { - if (requestOptions.ignoreSslError != null) { - this._ignoreSslError = requestOptions.ignoreSslError; - } - this._socketTimeout = requestOptions.socketTimeout; - if (requestOptions.allowRedirects != null) { - this._allowRedirects = requestOptions.allowRedirects; - } - if (requestOptions.allowRedirectDowngrade != null) { - this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; - } - if (requestOptions.maxRedirects != null) { - this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); - } - if (requestOptions.keepAlive != null) { - this._keepAlive = requestOptions.keepAlive; - } - if (requestOptions.allowRetries != null) { - this._allowRetries = requestOptions.allowRetries; - } - if (requestOptions.maxRetries != null) { - this._maxRetries = requestOptions.maxRetries; - } - } - } - options(requestUrl, additionalHeaders) { - return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); - } - get(requestUrl, additionalHeaders) { - return this.request('GET', requestUrl, null, additionalHeaders || {}); - } - del(requestUrl, additionalHeaders) { - return this.request('DELETE', requestUrl, null, additionalHeaders || {}); - } - post(requestUrl, data, additionalHeaders) { - return this.request('POST', requestUrl, data, additionalHeaders || {}); - } - patch(requestUrl, data, additionalHeaders) { - return this.request('PATCH', requestUrl, data, additionalHeaders || {}); - } - put(requestUrl, data, additionalHeaders) { - return this.request('PUT', requestUrl, data, additionalHeaders || {}); - } - head(requestUrl, additionalHeaders) { - return this.request('HEAD', requestUrl, null, additionalHeaders || {}); - } - sendStream(verb, requestUrl, stream, additionalHeaders) { - return this.request(verb, requestUrl, stream, additionalHeaders); - } - /** - * Gets a typed object from an endpoint - * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise - */ - async getJson(requestUrl, additionalHeaders = {}) { - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - let res = await this.get(requestUrl, additionalHeaders); - return this._processResponse(res, this.requestOptions); - } - async postJson(requestUrl, obj, additionalHeaders = {}) { - let data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - let res = await this.post(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - } - async putJson(requestUrl, obj, additionalHeaders = {}) { - let data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - let res = await this.put(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - } - async patchJson(requestUrl, obj, additionalHeaders = {}) { - let data = JSON.stringify(obj, null, 2); - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); - additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); - let res = await this.patch(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - } - /** - * Makes a raw http request. - * All other methods such as get, post, patch, and request ultimately call this. - * Prefer get, del, post and patch - */ - async request(verb, requestUrl, data, headers) { - if (this._disposed) { - throw new Error('Client has already been disposed.'); - } - let parsedUrl = url.parse(requestUrl); - let info = this._prepareRequest(verb, parsedUrl, headers); - // Only perform retries on reads since writes may not be idempotent. - let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 - ? this._maxRetries + 1 - : 1; - let numTries = 0; - let response; - while (numTries < maxTries) { - response = await this.requestRaw(info, data); - // Check if it's an authentication challenge - if (response && - response.message && - response.message.statusCode === HttpCodes.Unauthorized) { - let authenticationHandler; - for (let i = 0; i < this.handlers.length; i++) { - if (this.handlers[i].canHandleAuthentication(response)) { - authenticationHandler = this.handlers[i]; - break; - } - } - if (authenticationHandler) { - return authenticationHandler.handleAuthentication(this, info, data); - } - else { - // We have received an unauthorized response but have no handlers to handle it. - // Let the response return to the caller. - return response; - } - } - let redirectsRemaining = this._maxRedirects; - while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && - this._allowRedirects && - redirectsRemaining > 0) { - const redirectUrl = response.message.headers['location']; - if (!redirectUrl) { - // if there's no location to redirect to, we won't - break; - } - let parsedRedirectUrl = url.parse(redirectUrl); - if (parsedUrl.protocol == 'https:' && - parsedUrl.protocol != parsedRedirectUrl.protocol && - !this._allowRedirectDowngrade) { - throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); - } - // we need to finish reading the response before reassigning response - // which will leak the open socket. - await response.readBody(); - // strip authorization header if redirected to a different hostname - if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { - for (let header in headers) { - // header names are case insensitive - if (header.toLowerCase() === 'authorization') { - delete headers[header]; - } - } - } - // let's make the request with the new redirectUrl - info = this._prepareRequest(verb, parsedRedirectUrl, headers); - response = await this.requestRaw(info, data); - redirectsRemaining--; - } - if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { - // If not a retry code, return immediately instead of retrying - return response; - } - numTries += 1; - if (numTries < maxTries) { - await response.readBody(); - await this._performExponentialBackoff(numTries); - } - } - return response; - } - /** - * Needs to be called if keepAlive is set to true in request options. - */ - dispose() { - if (this._agent) { - this._agent.destroy(); - } - this._disposed = true; - } - /** - * Raw request. - * @param info - * @param data - */ - requestRaw(info, data) { - return new Promise((resolve, reject) => { - let callbackForResult = function (err, res) { - if (err) { - reject(err); - } - resolve(res); - }; - this.requestRawWithCallback(info, data, callbackForResult); - }); - } - /** - * Raw request with callback. - * @param info - * @param data - * @param onResult - */ - requestRawWithCallback(info, data, onResult) { - let socket; - if (typeof data === 'string') { - info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); - } - let callbackCalled = false; - let handleResult = (err, res) => { - if (!callbackCalled) { - callbackCalled = true; - onResult(err, res); - } - }; - let req = info.httpModule.request(info.options, (msg) => { - let res = new HttpClientResponse(msg); - handleResult(null, res); - }); - req.on('socket', sock => { - socket = sock; - }); - // If we ever get disconnected, we want the socket to timeout eventually - req.setTimeout(this._socketTimeout || 3 * 60000, () => { - if (socket) { - socket.end(); - } - handleResult(new Error('Request timeout: ' + info.options.path), null); - }); - req.on('error', function (err) { - // err has statusCode property - // res should have headers - handleResult(err, null); - }); - if (data && typeof data === 'string') { - req.write(data, 'utf8'); - } - if (data && typeof data !== 'string') { - data.on('close', function () { - req.end(); - }); - data.pipe(req); - } - else { - req.end(); - } - } - /** - * Gets an http agent. This function is useful when you need an http agent that handles - * routing through a proxy server - depending upon the url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ - getAgent(serverUrl) { - let parsedUrl = url.parse(serverUrl); - return this._getAgent(parsedUrl); - } - _prepareRequest(method, requestUrl, headers) { - const info = {}; - info.parsedUrl = requestUrl; - const usingSsl = info.parsedUrl.protocol === 'https:'; - info.httpModule = usingSsl ? https : http; - const defaultPort = usingSsl ? 443 : 80; - info.options = {}; - info.options.host = info.parsedUrl.hostname; - info.options.port = info.parsedUrl.port - ? parseInt(info.parsedUrl.port) - : defaultPort; - info.options.path = - (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); - info.options.method = method; - info.options.headers = this._mergeHeaders(headers); - if (this.userAgent != null) { - info.options.headers['user-agent'] = this.userAgent; - } - info.options.agent = this._getAgent(info.parsedUrl); - // gives handlers an opportunity to participate - if (this.handlers) { - this.handlers.forEach(handler => { - handler.prepareRequest(info.options); - }); - } - return info; - } - _mergeHeaders(headers) { - const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); - if (this.requestOptions && this.requestOptions.headers) { - return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); - } - return lowercaseKeys(headers || {}); - } - _getExistingOrDefaultHeader(additionalHeaders, header, _default) { - const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); - let clientHeader; - if (this.requestOptions && this.requestOptions.headers) { - clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; - } - return additionalHeaders[header] || clientHeader || _default; - } - _getAgent(parsedUrl) { - let agent; - let proxyUrl = pm.getProxyUrl(parsedUrl); - let useProxy = proxyUrl && proxyUrl.hostname; - if (this._keepAlive && useProxy) { - agent = this._proxyAgent; - } - if (this._keepAlive && !useProxy) { - agent = this._agent; - } - // if agent is already assigned use that agent. - if (!!agent) { - return agent; - } - const usingSsl = parsedUrl.protocol === 'https:'; - let maxSockets = 100; - if (!!this.requestOptions) { - maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; - } - if (useProxy) { - // If using proxy, need tunnel - if (!tunnel) { - tunnel = __webpack_require__(413); - } - const agentOptions = { - maxSockets: maxSockets, - keepAlive: this._keepAlive, - proxy: { - proxyAuth: proxyUrl.auth, - host: proxyUrl.hostname, - port: proxyUrl.port - } - }; - let tunnelAgent; - const overHttps = proxyUrl.protocol === 'https:'; - if (usingSsl) { - tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; - } - else { - tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; - } - agent = tunnelAgent(agentOptions); - this._proxyAgent = agent; - } - // if reusing agent across request and tunneling agent isn't assigned create a new agent - if (this._keepAlive && !agent) { - const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; - agent = usingSsl ? new https.Agent(options) : new http.Agent(options); - this._agent = agent; - } - // if not using private agent and tunnel agent isn't setup then use global agent - if (!agent) { - agent = usingSsl ? https.globalAgent : http.globalAgent; - } - if (usingSsl && this._ignoreSslError) { - // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process - // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options - // we have to cast it to any and change it directly - agent.options = Object.assign(agent.options || {}, { - rejectUnauthorized: false - }); - } - return agent; - } - _performExponentialBackoff(retryNumber) { - retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); - const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); - return new Promise(resolve => setTimeout(() => resolve(), ms)); - } - static dateTimeDeserializer(key, value) { - if (typeof value === 'string') { - let a = new Date(value); - if (!isNaN(a.valueOf())) { - return a; - } - } - return value; - } - async _processResponse(res, options) { - return new Promise(async (resolve, reject) => { - const statusCode = res.message.statusCode; - const response = { - statusCode: statusCode, - result: null, - headers: {} - }; - // not found leads to null obj returned - if (statusCode == HttpCodes.NotFound) { - resolve(response); - } - let obj; - let contents; - // get the result from the body - try { - contents = await res.readBody(); - if (contents && contents.length > 0) { - if (options && options.deserializeDates) { - obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + catch (e) { + if (e.message && e.message.includes(ERROR_PR_REVIEW_FROM_AUTHOR)) { + core.warning(ERROR_PR_REVIEW_FROM_AUTHOR); } else { - obj = JSON.parse(contents); + throw e; } - response.result = obj; } - response.headers = res.message.headers; - } - catch (err) { - // Invalid resource (contents not json); leaving result obj null - } - // note that 3xx redirects are handled by the http layer. - if (statusCode > 299) { - let msg; - // if exception/error in body, attempt to get better error - if (obj && obj.message) { - msg = obj.message; - } - else if (contents && contents.length > 0) { - // it may be the case that the exception is in the body message as string - msg = contents; - } - else { - msg = 'Failed request: (' + statusCode + ')'; - } - let err = new Error(msg); - // attach statusCode and body obj (if available) to the error object - err['statusCode'] = statusCode; - if (response.result) { - err['result'] = response.result; - } - reject(err); - } - else { - resolve(response); } }); } } -exports.HttpClient = HttpClient; +exports.GitHubHelper = GitHubHelper; /***/ }), -/***/ 605: -/***/ (function(module) { - -module.exports = require("http"); - -/***/ }), - -/***/ 614: -/***/ (function(module) { - -module.exports = require("events"); - -/***/ }), - -/***/ 622: -/***/ (function(module) { - -module.exports = require("path"); - -/***/ }), - -/***/ 631: -/***/ (function(module) { - -module.exports = require("net"); - -/***/ }), - -/***/ 669: -/***/ (function(module) { - -module.exports = require("util"); - -/***/ }), - -/***/ 672: +/***/ 723: /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -4657,223 +8167,197 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var _a; Object.defineProperty(exports, "__esModule", { value: true }); -const assert_1 = __webpack_require__(357); -const fs = __webpack_require__(747); -const path = __webpack_require__(622); -_a = fs.promises, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink; -exports.IS_WINDOWS = process.platform === 'win32'; -function exists(fsPath) { - return __awaiter(this, void 0, void 0, function* () { - try { - yield exports.stat(fsPath); - } - catch (err) { - if (err.code === 'ENOENT') { - return false; - } - throw err; - } - return true; - }); -} -exports.exists = exists; -function isDirectory(fsPath, useStat = false) { - return __awaiter(this, void 0, void 0, function* () { - const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath); - return stats.isDirectory(); - }); -} -exports.isDirectory = isDirectory; -/** - * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: - * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). - */ -function isRooted(p) { - p = normalizeSeparators(p); - if (!p) { - throw new Error('isRooted() parameter "p" cannot be empty'); +exports.GitIdentityHelper = void 0; +const core = __importStar(__webpack_require__(470)); +const git_config_helper_1 = __webpack_require__(468); +const utils = __importStar(__webpack_require__(611)); +// Default the committer and author to the GitHub Actions bot +const DEFAULT_COMMITTER = 'GitHub '; +const DEFAULT_AUTHOR = 'github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>'; +class GitIdentityHelper { + constructor(git) { + this.git = git; } - if (exports.IS_WINDOWS) { - return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello - ); // e.g. C: or C:\hello + getGitIdentityFromConfig() { + return __awaiter(this, void 0, void 0, function* () { + const gitConfigHelper = new git_config_helper_1.GitConfigHelper(this.git); + if ((yield gitConfigHelper.configOptionExists('user.name')) && + (yield gitConfigHelper.configOptionExists('user.email'))) { + const userName = yield gitConfigHelper.getConfigOption('user.name'); + const userEmail = yield gitConfigHelper.getConfigOption('user.email'); + return { + authorName: userName.value, + authorEmail: userEmail.value, + committerName: userName.value, + committerEmail: userEmail.value + }; + } + if ((yield gitConfigHelper.configOptionExists('committer.name')) && + (yield gitConfigHelper.configOptionExists('committer.email')) && + (yield gitConfigHelper.configOptionExists('author.name')) && + (yield gitConfigHelper.configOptionExists('author.email'))) { + const committerName = yield gitConfigHelper.getConfigOption('committer.name'); + const committerEmail = yield gitConfigHelper.getConfigOption('committer.email'); + const authorName = yield gitConfigHelper.getConfigOption('author.name'); + const authorEmail = yield gitConfigHelper.getConfigOption('author.email'); + return { + authorName: authorName.value, + authorEmail: authorEmail.value, + committerName: committerName.value, + committerEmail: committerEmail.value + }; + } + return undefined; + }); } - return p.startsWith('/'); -} -exports.isRooted = isRooted; -/** - * Recursively create a directory at `fsPath`. - * - * This implementation is optimistic, meaning it attempts to create the full - * path first, and backs up the path stack from there. - * - * @param fsPath The path to create - * @param maxDepth The maximum recursion depth - * @param depth The current recursion depth - */ -function mkdirP(fsPath, maxDepth = 1000, depth = 1) { - return __awaiter(this, void 0, void 0, function* () { - assert_1.ok(fsPath, 'a path argument must be provided'); - fsPath = path.resolve(fsPath); - if (depth >= maxDepth) - return exports.mkdir(fsPath); - try { - yield exports.mkdir(fsPath); - return; - } - catch (err) { - switch (err.code) { - case 'ENOENT': { - yield mkdirP(path.dirname(fsPath), maxDepth, depth + 1); - yield exports.mkdir(fsPath); - return; - } - default: { - let stats; - try { - stats = yield exports.stat(fsPath); - } - catch (err2) { - throw err; - } - if (!stats.isDirectory()) - throw err; + getIdentity(author, committer) { + return __awaiter(this, void 0, void 0, function* () { + // If either committer or author is supplied they will be cross used + if (!committer && author) { + core.info('Supplied author will also be used as the committer.'); + committer = author; + } + if (!author && committer) { + core.info('Supplied committer will also be used as the author.'); + author = committer; + } + // If no committer/author has been supplied, try and fetch identity + // configuration already existing in git config. + if (!committer && !author) { + const identity = yield this.getGitIdentityFromConfig(); + if (identity) { + core.info('Retrieved a pre-configured git identity.'); + return identity; } } - } - }); -} -exports.mkdirP = mkdirP; -/** - * Best effort attempt to determine whether a file exists and is executable. - * @param filePath file path to check - * @param extensions additional file extensions to try - * @return if file exists and is executable, returns the file path. otherwise empty string. - */ -function tryGetExecutablePath(filePath, extensions) { - return __awaiter(this, void 0, void 0, function* () { - let stats = undefined; - try { - // test file exists - stats = yield exports.stat(filePath); - } - catch (err) { - if (err.code !== 'ENOENT') { - // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + // Set defaults if no committer/author has been supplied and no + // existing identity configuration was found. + if (!committer && !author) { + core.info('Action defaults set for the author and committer.'); + committer = DEFAULT_COMMITTER; + author = DEFAULT_AUTHOR; } - } - if (stats && stats.isFile()) { - if (exports.IS_WINDOWS) { - // on Windows, test for valid extension - const upperExt = path.extname(filePath).toUpperCase(); - if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) { - return filePath; - } - } - else { - if (isUnixExecutable(stats)) { - return filePath; - } - } - } - // try each extension - const originalFilePath = filePath; - for (const extension of extensions) { - filePath = originalFilePath + extension; - stats = undefined; - try { - stats = yield exports.stat(filePath); - } - catch (err) { - if (err.code !== 'ENOENT') { - // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); - } - } - if (stats && stats.isFile()) { - if (exports.IS_WINDOWS) { - // preserve the case of the actual file (since an extension was appended) - try { - const directory = path.dirname(filePath); - const upperName = path.basename(filePath).toUpperCase(); - for (const actualName of yield exports.readdir(directory)) { - if (upperName === actualName.toUpperCase()) { - filePath = path.join(directory, actualName); - break; - } - } - } - catch (err) { - // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); - } - return filePath; - } - else { - if (isUnixExecutable(stats)) { - return filePath; - } - } - } - } - return ''; - }); -} -exports.tryGetExecutablePath = tryGetExecutablePath; -function normalizeSeparators(p) { - p = p || ''; - if (exports.IS_WINDOWS) { - // convert slashes on Windows - p = p.replace(/\//g, '\\'); - // remove redundant slashes - return p.replace(/\\\\+/g, '\\'); + const parsedAuthor = utils.parseDisplayNameEmail(author); + const parsedCommitter = utils.parseDisplayNameEmail(committer); + return { + authorName: parsedAuthor.name, + authorEmail: parsedAuthor.email, + committerName: parsedCommitter.name, + committerEmail: parsedCommitter.email + }; + }); } - // remove redundant slashes - return p.replace(/\/\/+/g, '/'); } -// on Mac/Linux, test the execute bit -// R W X R W X R W X -// 256 128 64 32 16 8 4 2 1 -function isUnixExecutable(stats) { - return ((stats.mode & 1) > 0 || - ((stats.mode & 8) > 0 && stats.gid === process.getgid()) || - ((stats.mode & 64) > 0 && stats.uid === process.getuid())); -} -//# sourceMappingURL=io-util.js.map +exports.GitIdentityHelper = GitIdentityHelper; + /***/ }), -/***/ 722: -/***/ (function(module) { +/***/ 733: +/***/ (function(__unusedmodule, exports, __webpack_require__) { -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -var byteToHex = []; -for (var i = 0; i < 256; ++i) { - byteToHex[i] = (i + 0x100).toString(16).substr(1); +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _rng = _interopRequireDefault(__webpack_require__(844)); + +var _bytesToUuid = _interopRequireDefault(__webpack_require__(390)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function v4(options, buf, offset) { + options = options || {}; + + const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + + + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + + return buf; + } + + return (0, _bytesToUuid.default)(rnds); } -function bytesToUuid(buf, offset) { - var i = offset || 0; - var bth = byteToHex; - // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return ([ - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]] - ]).join(''); +var _default = v4; +exports.default = _default; + +/***/ }), + +/***/ 742: +/***/ (function(module, __unusedexports, __webpack_require__) { + +var fs = __webpack_require__(747) +var core +if (process.platform === 'win32' || global.TESTING_WINDOWS) { + core = __webpack_require__(818) +} else { + core = __webpack_require__(197) } -module.exports = bytesToUuid; +module.exports = isexe +isexe.sync = sync + +function isexe (path, options, cb) { + if (typeof options === 'function') { + cb = options + options = {} + } + + if (!cb) { + if (typeof Promise !== 'function') { + throw new TypeError('callback not provided') + } + + return new Promise(function (resolve, reject) { + isexe(path, options || {}, function (er, is) { + if (er) { + reject(er) + } else { + resolve(is) + } + }) + }) + } + + core(path, options || {}, function (er, is) { + // ignore EACCES because that just means we aren't allowed to run it + if (er) { + if (er.code === 'EACCES' || options && options.ignoreErrors) { + er = null + is = false + } + } + cb(er, is) + }) +} + +function sync (path, options) { + // my kingdom for a filtered catch + try { + return core.sync(path, options || {}) + } catch (er) { + if (options && options.ignoreErrors || er.code === 'EACCES') { + return false + } else { + throw er + } + } +} /***/ }), @@ -4885,45 +8369,454 @@ module.exports = require("fs"); /***/ }), -/***/ 794: -/***/ (function(module) { +/***/ 753: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var endpoint = __webpack_require__(385); +var universalUserAgent = __webpack_require__(796); +var isPlainObject = _interopDefault(__webpack_require__(548)); +var nodeFetch = _interopDefault(__webpack_require__(454)); +var requestError = __webpack_require__(463); + +const VERSION = "5.4.5"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + + let headers = {}; + let status; + let url; + const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect + }, requestOptions.request)).then(response => { + url = response.url; + status = response.status; + + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + + if (status === 204 || status === 205) { + return; + } // GitHub API returns 200 for HEAD requests + + + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + + throw new requestError.RequestError(response.statusText, status, { + headers, + request: requestOptions + }); + } + + if (status === 304) { + throw new requestError.RequestError("Not modified", status, { + headers, + request: requestOptions + }); + } + + if (status >= 400) { + return response.text().then(message => { + const error = new requestError.RequestError(message, status, { + headers, + request: requestOptions + }); + + try { + let responseBody = JSON.parse(error.message); + Object.assign(error, responseBody); + let errors = responseBody.errors; // Assumption `errors` would always be in Array format + + error.message = error.message + ": " + errors.map(JSON.stringify).join(", "); + } catch (e) {// ignore, see octokit/rest.js#684 + } + + throw error; + }); + } + + const contentType = response.headers.get("content-type"); + + if (/application\/json/.test(contentType)) { + return response.json(); + } + + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + + return getBufferResponse(response); + }).then(data => { + return { + status, + url, + headers, + data + }; + }).catch(error => { + if (error instanceof requestError.RequestError) { + throw error; + } + + throw new requestError.RequestError(error.message, 500, { + headers, + request: requestOptions + }); + }); +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} + +const request = withDefaults(endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` + } +}); + +exports.request = request; +//# sourceMappingURL=index.js.map -module.exports = require("stream"); /***/ }), -/***/ 826: -/***/ (function(module, __unusedexports, __webpack_require__) { +/***/ 759: +/***/ (function(module) { -var rng = __webpack_require__(139); -var bytesToUuid = __webpack_require__(722); +"use strict"; -function v4(options, buf, offset) { - var i = buf && offset || 0; - if (typeof(options) == 'string') { - buf = options === 'binary' ? new Array(16) : null; - options = null; - } - options = options || {}; +// See http://www.robvanderwoude.com/escapechars.php +const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; - var rnds = options.random || (options.rng || rng)(); +function escapeCommand(arg) { + // Escape meta chars + arg = arg.replace(metaCharsRegExp, '^$1'); - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ++ii) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || bytesToUuid(rnds); + return arg; } -module.exports = v4; +function escapeArgument(arg, doubleEscapeMetaChars) { + // Convert to string + arg = `${arg}`; + + // Algorithm below is based on https://qntm.org/cmd + + // Sequence of backslashes followed by a double quote: + // double up all the backslashes and escape the double quote + arg = arg.replace(/(\\*)"/g, '$1$1\\"'); + + // Sequence of backslashes followed by the end of the string + // (which will become a double quote later): + // double up all the backslashes + arg = arg.replace(/(\\*)$/, '$1$1'); + + // All other backslashes occur literally + + // Quote the whole thing: + arg = `"${arg}"`; + + // Escape meta chars + arg = arg.replace(metaCharsRegExp, '^$1'); + + // Double escape meta chars if necessary + if (doubleEscapeMetaChars) { + arg = arg.replace(metaCharsRegExp, '^$1'); + } + + return arg; +} + +module.exports.command = escapeCommand; +module.exports.argument = escapeArgument; + + +/***/ }), + +/***/ 761: +/***/ (function(module) { + +module.exports = require("zlib"); + +/***/ }), + +/***/ 768: +/***/ (function(module) { + +"use strict"; + +module.exports = function (x) { + var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt(); + var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt(); + + if (x[x.length - 1] === lf) { + x = x.slice(0, x.length - 1); + } + + if (x[x.length - 1] === cr) { + x = x.slice(0, x.length - 1); + } + + return x; +}; + + +/***/ }), + +/***/ 774: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + + +const cp = __webpack_require__(129); +const parse = __webpack_require__(884); +const enoent = __webpack_require__(15); + +function spawn(command, args, options) { + // Parse the arguments + const parsed = parse(command, args, options); + + // Spawn the child process + const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); + + // Hook into child process "exit" event to emit an error if the command + // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + enoent.hookChildProcess(spawned, parsed); + + return spawned; +} + +function spawnSync(command, args, options) { + // Parse the arguments + const parsed = parse(command, args, options); + + // Spawn the child process + const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); + + // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); + + return result; +} + +module.exports = spawn; +module.exports.spawn = spawn; +module.exports.sync = spawnSync; + +module.exports._parse = parse; +module.exports._enoent = enoent; + + +/***/ }), + +/***/ 796: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var osName = _interopDefault(__webpack_require__(2)); + +function getUserAgent() { + try { + return `Node.js/${process.version.substr(1)} (${osName()}; ${process.arch})`; + } catch (error) { + if (/wmic os get Caption/.test(error.message)) { + return "Windows "; + } + + return ""; + } +} + +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 803: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _crypto = _interopRequireDefault(__webpack_require__(417)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('md5').update(bytes).digest(); +} + +var _default = md5; +exports.default = _default; + +/***/ }), + +/***/ 813: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +async function auth(token) { + const tokenType = token.split(/\./).length === 3 ? "app" : /^v\d+\./.test(token) ? "installation" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; +} + +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + + return `token ${token}`; +} + +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } + + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; + +exports.createTokenAuth = createTokenAuth; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 818: +/***/ (function(module, __unusedexports, __webpack_require__) { + +module.exports = isexe +isexe.sync = sync + +var fs = __webpack_require__(747) + +function checkPathExt (path, options) { + var pathext = options.pathExt !== undefined ? + options.pathExt : process.env.PATHEXT + + if (!pathext) { + return true + } + + pathext = pathext.split(';') + if (pathext.indexOf('') !== -1) { + return true + } + for (var i = 0; i < pathext.length; i++) { + var p = pathext[i].toLowerCase() + if (p && path.substr(-p.length).toLowerCase() === p) { + return true + } + } + return false +} + +function checkStat (stat, path, options) { + if (!stat.isSymbolicLink() && !stat.isFile()) { + return false + } + return checkPathExt(path, options) +} + +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, path, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), path, options) +} /***/ }), @@ -4935,73 +8828,1626 @@ module.exports = require("url"); /***/ }), -/***/ 950: +/***/ 842: +/***/ (function(__unusedmodule, exports) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +const Endpoints = { + actions: { + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + createRegistrationTokenForOrg: ["POST /orgs/{org}/actions/runners/registration-token"], + createRegistrationTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/registration-token"], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/remove-token"], + deleteArtifact: ["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + deleteSelfHostedRunnerFromOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}"], + deleteSelfHostedRunnerFromRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"], + deleteWorkflowRunLogs: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + downloadArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"], + downloadJobLogsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"], + downloadWorkflowRunLogs: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: ["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunUsage: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"], + getWorkflowUsage: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listJobsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: ["GET /repos/{owner}/{repo}/actions/runners/downloads"], + listSelectedReposForOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"], + listWorkflowRuns: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + removeSelectedRepoFromOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + setSelectedReposForOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: ["DELETE /notifications/threads/{thread_id}/subscription"], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: ["GET /notifications/threads/{thread_id}/subscription"], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: ["GET /users/{username}/events/orgs/{org}"], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: ["GET /users/{username}/received_events/public"], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: ["GET /repos/{owner}/{repo}/notifications"], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: ["PUT /notifications/threads/{thread_id}/subscription"], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: ["PUT /user/installations/{installation_id}/repositories/{repository_id}", { + mediaType: { + previews: ["machine-man"] + } + }], + checkToken: ["POST /applications/{client_id}/token"], + createContentAttachment: ["POST /content_references/{content_reference_id}/attachments", { + mediaType: { + previews: ["corsair"] + } + }], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: ["POST /app/installations/{installation_id}/access_tokens", { + mediaType: { + previews: ["machine-man"] + } + }], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}", { + mediaType: { + previews: ["machine-man"] + } + }], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app", { + mediaType: { + previews: ["machine-man"] + } + }], + getBySlug: ["GET /apps/{app_slug}", { + mediaType: { + previews: ["machine-man"] + } + }], + getInstallation: ["GET /app/installations/{installation_id}", { + mediaType: { + previews: ["machine-man"] + } + }], + getOrgInstallation: ["GET /orgs/{org}/installation", { + mediaType: { + previews: ["machine-man"] + } + }], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation", { + mediaType: { + previews: ["machine-man"] + } + }], + getSubscriptionPlanForAccount: ["GET /marketplace_listing/accounts/{account_id}"], + getSubscriptionPlanForAccountStubbed: ["GET /marketplace_listing/stubbed/accounts/{account_id}"], + getUserInstallation: ["GET /users/{username}/installation", { + mediaType: { + previews: ["machine-man"] + } + }], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: ["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"], + listInstallationReposForAuthenticatedUser: ["GET /user/installations/{installation_id}/repositories", { + mediaType: { + previews: ["machine-man"] + } + }], + listInstallations: ["GET /app/installations", { + mediaType: { + previews: ["machine-man"] + } + }], + listInstallationsForAuthenticatedUser: ["GET /user/installations", { + mediaType: { + previews: ["machine-man"] + } + }], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories", { + mediaType: { + previews: ["machine-man"] + } + }], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: ["GET /user/marketplace_purchases/stubbed"], + removeRepoFromInstallation: ["DELETE /user/installations/{installation_id}/repositories/{repository_id}", { + mediaType: { + previews: ["machine-man"] + } + }], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: ["DELETE /app/installations/{installation_id}/suspended"] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs", { + mediaType: { + previews: ["antiope"] + } + }], + createSuite: ["POST /repos/{owner}/{repo}/check-suites", { + mediaType: { + previews: ["antiope"] + } + }], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}", { + mediaType: { + previews: ["antiope"] + } + }], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}", { + mediaType: { + previews: ["antiope"] + } + }], + listAnnotations: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", { + mediaType: { + previews: ["antiope"] + } + }], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs", { + mediaType: { + previews: ["antiope"] + } + }], + listForSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", { + mediaType: { + previews: ["antiope"] + } + }], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites", { + mediaType: { + previews: ["antiope"] + } + }], + rerequestSuite: ["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", { + mediaType: { + previews: ["antiope"] + } + }], + setSuitesPreferences: ["PATCH /repos/{owner}/{repo}/check-suites/preferences", { + mediaType: { + previews: ["antiope"] + } + }], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}", { + mediaType: { + previews: ["antiope"] + } + }] + }, + codeScanning: { + getAlert: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_id}"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct", { + mediaType: { + previews: ["scarlet-witch"] + } + }], + getConductCode: ["GET /codes_of_conduct/{key}", { + mediaType: { + previews: ["scarlet-witch"] + } + }], + getForRepo: ["GET /repos/{owner}/{repo}/community/code_of_conduct", { + mediaType: { + previews: ["scarlet-witch"] + } + }] + }, + emojis: { + get: ["GET /emojis"] + }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits", { + mediaType: { + previews: ["sombra"] + } + }], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits", { + mediaType: { + previews: ["sombra"] + } + }], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits", { + mediaType: { + previews: ["sombra"] + } + }], + removeRestrictionsForRepo: ["DELETE /repos/{owner}/{repo}/interaction-limits", { + mediaType: { + previews: ["sombra"] + } + }], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits", { + mediaType: { + previews: ["sombra"] + } + }], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits", { + mediaType: { + previews: ["sombra"] + } + }] + }, + issues: { + addAssignees: ["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: ["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: ["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: ["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", { + mediaType: { + previews: ["mockingbird"] + } + }], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"], + removeAssignees: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + removeLabel: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: ["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: ["POST /markdown/raw", { + headers: { + "content-type": "text/plain; charset=utf-8" + } + }] + }, + meta: { + get: ["GET /meta"] + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + deleteArchiveForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + deleteArchiveForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + downloadArchiveForOrg: ["GET /orgs/{org}/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + getArchiveForAuthenticatedUser: ["GET /user/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}", { + mediaType: { + previews: ["wyandotte"] + } + }], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}", { + mediaType: { + previews: ["wyandotte"] + } + }], + listForAuthenticatedUser: ["GET /user/migrations", { + mediaType: { + previews: ["wyandotte"] + } + }], + listForOrg: ["GET /orgs/{org}/migrations", { + mediaType: { + previews: ["wyandotte"] + } + }], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories", { + mediaType: { + previews: ["wyandotte"] + } + }], + listReposForUser: ["GET /user/{migration_id}/repositories", { + mediaType: { + previews: ["wyandotte"] + } + }], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock", { + mediaType: { + previews: ["wyandotte"] + } + }], + unlockRepoForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", { + mediaType: { + previews: ["wyandotte"] + } + }], + updateImport: ["PATCH /repos/{owner}/{repo}/import"] + }, + orgs: { + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: ["PUT /orgs/{org}/outside_collaborators/{username}"], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations", { + mediaType: { + previews: ["machine-man"] + } + }], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listWebhooks: ["GET /orgs/{org}/hooks"], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: ["DELETE /orgs/{org}/outside_collaborators/{username}"], + removePublicMembershipForAuthenticatedUser: ["DELETE /orgs/{org}/public_members/{username}"], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: ["PUT /orgs/{org}/public_members/{username}"], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: ["PATCH /user/memberships/orgs/{org}"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}", { + mediaType: { + previews: ["inertia"] + } + }], + createCard: ["POST /projects/columns/{column_id}/cards", { + mediaType: { + previews: ["inertia"] + } + }], + createColumn: ["POST /projects/{project_id}/columns", { + mediaType: { + previews: ["inertia"] + } + }], + createForAuthenticatedUser: ["POST /user/projects", { + mediaType: { + previews: ["inertia"] + } + }], + createForOrg: ["POST /orgs/{org}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + createForRepo: ["POST /repos/{owner}/{repo}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + delete: ["DELETE /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + deleteCard: ["DELETE /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + deleteColumn: ["DELETE /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }], + get: ["GET /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getCard: ["GET /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getColumn: ["GET /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getPermissionForUser: ["GET /projects/{project_id}/collaborators/{username}/permission", { + mediaType: { + previews: ["inertia"] + } + }], + listCards: ["GET /projects/columns/{column_id}/cards", { + mediaType: { + previews: ["inertia"] + } + }], + listCollaborators: ["GET /projects/{project_id}/collaborators", { + mediaType: { + previews: ["inertia"] + } + }], + listColumns: ["GET /projects/{project_id}/columns", { + mediaType: { + previews: ["inertia"] + } + }], + listForOrg: ["GET /orgs/{org}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listForRepo: ["GET /repos/{owner}/{repo}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listForUser: ["GET /users/{username}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + moveCard: ["POST /projects/columns/cards/{card_id}/moves", { + mediaType: { + previews: ["inertia"] + } + }], + moveColumn: ["POST /projects/columns/{column_id}/moves", { + mediaType: { + previews: ["inertia"] + } + }], + removeCollaborator: ["DELETE /projects/{project_id}/collaborators/{username}", { + mediaType: { + previews: ["inertia"] + } + }], + update: ["PATCH /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + updateCard: ["PATCH /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + updateColumn: ["PATCH /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + deletePendingReview: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + deleteReviewComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + dismissReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + listReviewComments: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + requestReviewers: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + submitReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch", { + mediaType: { + previews: ["lydian"] + } + }], + updateReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + updateReviewComment: ["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"] + }, + rateLimit: { + get: ["GET /rate_limit"] + }, + reactions: { + createForCommitComment: ["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForIssue: ["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForIssueComment: ["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForPullRequestReviewComment: ["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForTeamDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForTeamDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForIssue: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForIssueComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForPullRequestComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForTeamDiscussion: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForTeamDiscussionComment: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForIssueComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForPullRequestReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForTeamDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForTeamDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }] + }, + repos: { + acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}"], + addAppAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + addTeamAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + addUserAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: ["GET /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + createCommitComment: ["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + createCommitSignatureProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentStatus: ["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages", { + mediaType: { + previews: ["switcheroo"] + } + }], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createUsingTemplate: ["POST /repos/{template_owner}/{template_repo}/generate", { + mediaType: { + previews: ["baptiste"] + } + }], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}"], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + deleteAdminBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + deleteBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: ["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: ["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages", { + mediaType: { + previews: ["switcheroo"] + } + }], + deletePullRequestReviewProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: ["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: ["DELETE /repos/{owner}/{repo}/automated-security-fixes", { + mediaType: { + previews: ["london"] + } + }], + disableVulnerabilityAlerts: ["DELETE /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + downloadArchive: ["GET /repos/{owner}/{repo}/{archive_format}/{ref}"], + enableAutomatedSecurityFixes: ["PUT /repos/{owner}/{repo}/automated-security-fixes", { + mediaType: { + previews: ["london"] + } + }], + enableVulnerabilityAlerts: ["PUT /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + getAdminBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + getAllStatusCheckContexts: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"], + getAllTopics: ["GET /repos/{owner}/{repo}/topics", { + mediaType: { + previews: ["mercy"] + } + }], + getAppsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: ["GET /repos/{owner}/{repo}/collaborators/{username}/permission"], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentStatus: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getStatusChecksProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + getTeamsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", { + mediaType: { + previews: ["groot"] + } + }], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/statuses"], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentStatuses: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", { + mediaType: { + previews: ["groot"] + } + }], + listReleaseAssets: ["GET /repos/{owner}/{repo}/releases/{release_id}/assets"], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + removeAppAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + removeCollaborator: ["DELETE /repos/{owner}/{repo}/collaborators/{username}"], + removeStatusCheckContexts: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + removeStatusCheckProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + removeTeamAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + removeUserAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics", { + mediaType: { + previews: ["mercy"] + } + }], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + setAppAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + setStatusCheckContexts: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + setTeamAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + setUserAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection"], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: ["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"], + updatePullRequestReviewProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: ["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"], + updateStatusCheckPotection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + uploadReleaseAsset: ["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", { + baseUrl: "https://uploads.github.com" + }] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits", { + mediaType: { + previews: ["cloak"] + } + }], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics"], + users: ["GET /search/users"] + }, + teams: { + addOrUpdateMembershipForUserInOrg: ["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"], + addOrUpdateProjectPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + addOrUpdateRepoPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + checkPermissionsForProjectInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + checkPermissionsForRepoInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + deleteDiscussionInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + getDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + getMembershipForUserInOrg: ["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: ["GET /orgs/{org}/teams/{team_slug}/invitations"], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"], + removeProjectInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + removeRepoInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + updateDiscussionCommentInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + updateDiscussionInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: ["POST /user/emails"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: ["POST /user/keys"], + deleteEmailForAuthenticated: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}"], + list: ["GET /users"], + listBlockedByAuthenticated: ["GET /user/blocks"], + listEmailsForAuthenticated: ["GET /user/emails"], + listFollowedByAuthenticated: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: ["GET /user/keys"], + setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility"], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; + +const VERSION = "4.0.0"; + +function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ + method, + url + }, defaults); + + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + + const scopeMethods = newMethods[scope]; + + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + + return newMethods; +} + +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData` + + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined + }); + return requestWithDefaults(options); + } + + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); + } + + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + + if (decorations.renamedParameters) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + + if (!(alias in options)) { + options[alias] = options[name]; + } + + delete options[name]; + } + } + + return requestWithDefaults(options); + } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + + + return requestWithDefaults(...args); + } + + return Object.assign(withDecorations, requestWithDefaults); +} + +/** + * This plugin is a 1:1 copy of internal @octokit/rest plugins. The primary + * goal is to rebuild @octokit/rest on top of @octokit/core. Once that is + * done, we will remove the registerEndpoints methods and return the methods + * directly as with the other plugins. At that point we will also remove the + * legacy workarounds and deprecations. + * + * See the plan at + * https://github.com/octokit/plugin-rest-endpoint-methods.js/pull/1 + */ + +function restEndpointMethods(octokit) { + return endpointsToMethods(octokit, Endpoints); +} +restEndpointMethods.VERSION = VERSION; + +exports.restEndpointMethods = restEndpointMethods; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 844: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = rng; + +var _crypto = _interopRequireDefault(__webpack_require__(417)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const rnds8 = new Uint8Array(16); + +function rng() { + return _crypto.default.randomFillSync(rnds8); +} + +/***/ }), + +/***/ 866: +/***/ (function(module) { + +module.exports = removeHook + +function removeHook (state, name, method) { + if (!state.registry[name]) { + return + } + + var index = state.registry[name] + .map(function (registered) { return registered.orig }) + .indexOf(method) + + if (index === -1) { + return + } + + state.registry[name].splice(index, 1) +} + + +/***/ }), + +/***/ 884: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + + +const path = __webpack_require__(622); +const niceTry = __webpack_require__(948); +const resolveCommand = __webpack_require__(542); +const escape = __webpack_require__(759); +const readShebang = __webpack_require__(306); +const semver = __webpack_require__(607); + +const isWin = process.platform === 'win32'; +const isExecutableRegExp = /\.(?:com|exe)$/i; +const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; + +// `options.shell` is supported in Node ^4.8.0, ^5.7.0 and >= 6.0.0 +const supportsShellOption = niceTry(() => semver.satisfies(process.version, '^4.8.0 || ^5.7.0 || >= 6.0.0', true)) || false; + +function detectShebang(parsed) { + parsed.file = resolveCommand(parsed); + + const shebang = parsed.file && readShebang(parsed.file); + + if (shebang) { + parsed.args.unshift(parsed.file); + parsed.command = shebang; + + return resolveCommand(parsed); + } + + return parsed.file; +} + +function parseNonShell(parsed) { + if (!isWin) { + return parsed; + } + + // Detect & add support for shebangs + const commandFile = detectShebang(parsed); + + // We don't need a shell if the command filename is an executable + const needsShell = !isExecutableRegExp.test(commandFile); + + // If a shell is required, use cmd.exe and take care of escaping everything correctly + // Note that `forceShell` is an hidden option used only in tests + if (parsed.options.forceShell || needsShell) { + // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/` + // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument + // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called, + // we need to double escape them + const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); + + // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\bar) + // This is necessary otherwise it will always fail with ENOENT in those cases + parsed.command = path.normalize(parsed.command); + + // Escape command & arguments + parsed.command = escape.command(parsed.command); + parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars)); + + const shellCommand = [parsed.command].concat(parsed.args).join(' '); + + parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; + parsed.command = process.env.comspec || 'cmd.exe'; + parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped + } + + return parsed; +} + +function parseShell(parsed) { + // If node supports the shell option, there's no need to mimic its behavior + if (supportsShellOption) { + return parsed; + } + + // Mimic node shell option + // See https://github.com/nodejs/node/blob/b9f6a2dc059a1062776133f3d4fd848c4da7d150/lib/child_process.js#L335 + const shellCommand = [parsed.command].concat(parsed.args).join(' '); + + if (isWin) { + parsed.command = typeof parsed.options.shell === 'string' ? parsed.options.shell : process.env.comspec || 'cmd.exe'; + parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; + parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped + } else { + if (typeof parsed.options.shell === 'string') { + parsed.command = parsed.options.shell; + } else if (process.platform === 'android') { + parsed.command = '/system/bin/sh'; + } else { + parsed.command = '/bin/sh'; + } + + parsed.args = ['-c', shellCommand]; + } + + return parsed; +} + +function parse(command, args, options) { + // Normalize arguments, similar to nodejs + if (args && !Array.isArray(args)) { + options = args; + args = null; + } + + args = args ? args.slice(0) : []; // Clone array to avoid changing the original + options = Object.assign({}, options); // Clone object to avoid changing the original + + // Build our parsed object + const parsed = { + command, + args, + options, + file: undefined, + original: { + command, + args, + }, + }; + + // Delegate further parsing to shell or non-shell + return options.shell ? parseShell(parsed) : parseNonShell(parsed); +} + +module.exports = parse; + + +/***/ }), + +/***/ 893: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _rng = _interopRequireDefault(__webpack_require__(844)); + +var _bytesToUuid = _interopRequireDefault(__webpack_require__(390)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// **`v1()` - Generate time-based UUID** +// +// Inspired by https://github.com/LiosK/UUID.js +// and http://docs.python.org/library/uuid.html +let _nodeId; + +let _clockseq; // Previous uuid creation time + + +let _lastMSecs = 0; +let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + +function v1(options, buf, offset) { + let i = buf && offset || 0; + const b = buf || new Array(16); + options = options || {}; + let node = options.node || _nodeId; + let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)(); + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; + } + + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + + + let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + + if (dt < 0 && options.clockseq === undefined) { + clockseq = clockseq + 1 & 0x3fff; + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + + + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } // Per 4.2.1.2 Throw error if too many uuids are requested + + + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + + msecs += 12219292800000; // `time_low` + + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; // `time_mid` + + const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; // `time_high_and_version` + + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + + b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + + b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + + b[i++] = clockseq & 0xff; // `node` + + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } + + return buf || (0, _bytesToUuid.default)(b); +} + +var _default = v1; +exports.default = _default; + +/***/ }), + +/***/ 898: +/***/ (function(__unusedmodule, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { value: true }); + +var request = __webpack_require__(753); +var universalUserAgent = __webpack_require__(796); + +const VERSION = "4.5.1"; + +class GraphqlError extends Error { + constructor(request, response) { + const message = response.data.errors[0].message; + super(message); + Object.assign(this, response.data); + this.name = "GraphqlError"; + this.request = request; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +function graphql(request, query, options) { + options = typeof query === "string" ? options = Object.assign({ + query + }, options) : options = query; + const requestOptions = Object.keys(options).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = options[key]; + return result; + } + + if (!result.variables) { + result.variables = {}; + } + + result.variables[key] = options[key]; + return result; + }, {}); + return request(requestOptions).then(response => { + if (response.data.errors) { + throw new GraphqlError(requestOptions, { + data: response.data + }); + } + + return response.data.data; + }); +} + +function withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 907: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + +var shebangRegex = __webpack_require__(473); + +module.exports = function (str) { + var match = str.match(shebangRegex); + + if (!match) { + return null; + } + + var arr = match[0].replace(/#! ?/, '').split(' '); + var bin = arr[0].split('/').pop(); + var arg = arr[1]; + + return (bin === 'env' ? + arg : + bin + (arg ? ' ' + arg : '') + ); +}; + + +/***/ }), + +/***/ 921: /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const url = __webpack_require__(835); -function getProxyUrl(reqUrl) { - let usingSsl = reqUrl.protocol === 'https:'; - let proxyUrl; - if (checkBypass(reqUrl)) { - return proxyUrl; - } - let proxyVar; - if (usingSsl) { - proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; - } - else { - proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; - } - if (proxyVar) { - proxyUrl = url.parse(proxyVar); - } - return proxyUrl; -} -exports.getProxyUrl = getProxyUrl; -function checkBypass(reqUrl) { - if (!reqUrl.hostname) { - return false; - } - let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; - if (!noProxy) { - return false; - } - // Determine the request port - let reqPort; - if (reqUrl.port) { - reqPort = Number(reqUrl.port); - } - else if (reqUrl.protocol === 'http:') { - reqPort = 80; - } - else if (reqUrl.protocol === 'https:') { - reqPort = 443; - } - // Format the request hostname and hostname with port - let upperReqHosts = [reqUrl.hostname.toUpperCase()]; - if (typeof reqPort === 'number') { - upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); - } - // Compare request host against noproxy - for (let upperNoProxyItem of noProxy - .split(',') - .map(x => x.trim().toUpperCase()) - .filter(x => x)) { - if (upperReqHosts.some(x => x === upperNoProxyItem)) { - return true; - } - } - return false; -} -exports.checkBypass = checkBypass; +exports.Octokit = void 0; +const core_1 = __webpack_require__(448); +const plugin_paginate_rest_1 = __webpack_require__(299); +const plugin_rest_endpoint_methods_1 = __webpack_require__(842); +exports.Octokit = core_1.Octokit.plugin(plugin_paginate_rest_1.paginateRest, plugin_rest_endpoint_methods_1.restEndpointMethods); /***/ }), -/***/ 953: +/***/ 940: /***/ (function(__unusedmodule, exports, __webpack_require__) { "use strict"; @@ -5025,58 +10471,6 @@ var __importStar = (this && this.__importStar) || function (mod) { __setModuleDefault(result, mod); return result; }; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.setupPython = void 0; -const core = __importStar(__webpack_require__(470)); -const tc = __importStar(__webpack_require__(533)); -const path = __importStar(__webpack_require__(622)); -const semver = __importStar(__webpack_require__(280)); -/** - * Setup for Python from the GitHub Actions tool cache - * Converted from https://github.com/actions/setup-python - * - * @param {string} versionSpec version of Python - * @param {string} arch architecture (x64|x32) - */ -function setupPython(versionSpec, arch) { - return new Promise(resolve => { - const IS_WINDOWS = process.platform === 'win32'; - // Find the version of Python we want in the tool cache - const installDir = tc.find('Python', versionSpec, arch); - core.debug(`installDir: ${installDir}`); - // Set paths - core.exportVariable('pythonLocation', installDir); - core.addPath(installDir); - if (IS_WINDOWS) { - core.addPath(path.join(installDir, 'Scripts')); - } - else { - core.addPath(path.join(installDir, 'bin')); - } - if (IS_WINDOWS) { - // Add --user directory - // `installDir` from tool cache should look like $AGENT_TOOLSDIRECTORY/Python//x64/ - // So if `findLocalTool` succeeded above, we must have a conformant `installDir` - const version = path.basename(path.dirname(installDir)); - const major = semver.major(version); - const minor = semver.minor(version); - const userScriptsDir = path.join(process.env['APPDATA'] || '', 'Python', `Python${major}${minor}`, 'Scripts'); - core.addPath(userScriptsDir); - } - // On Linux and macOS, pip will create the --user directory and add it to PATH as needed. - resolve(); - }); -} -exports.setupPython = setupPython; - - -/***/ }), - -/***/ 979: -/***/ (function(__unusedmodule, exports, __webpack_require__) { - -"use strict"; - var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -5086,66 +10480,666 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; -}; Object.defineProperty(exports, "__esModule", { value: true }); +exports.createPullRequest = void 0; const core = __importStar(__webpack_require__(470)); -/** - * Internal class for retries - */ -class RetryHelper { - constructor(maxAttempts, minSeconds, maxSeconds) { - if (maxAttempts < 1) { - throw new Error('max attempts should be greater than or equal to 1'); - } - this.maxAttempts = maxAttempts; - this.minSeconds = Math.floor(minSeconds); - this.maxSeconds = Math.floor(maxSeconds); - if (this.minSeconds > this.maxSeconds) { - throw new Error('min seconds should be less than or equal to max seconds'); - } - } - execute(action, isRetryable) { - return __awaiter(this, void 0, void 0, function* () { - let attempt = 1; - while (attempt < this.maxAttempts) { - // Try - try { - return yield action(); - } - catch (err) { - if (isRetryable && !isRetryable(err)) { - throw err; - } - core.info(err.message); - } - // Sleep - const seconds = this.getSleepAmount(); - core.info(`Waiting ${seconds} seconds before trying again`); - yield this.sleep(seconds); - attempt++; +const create_or_update_branch_1 = __webpack_require__(159); +const github_helper_1 = __webpack_require__(718); +const git_command_manager_1 = __webpack_require__(289); +const git_config_helper_1 = __webpack_require__(468); +const git_identity_helper_1 = __webpack_require__(723); +const utils = __importStar(__webpack_require__(611)); +const EXTRAHEADER_OPTION = 'http.https://github.com/.extraheader'; +const EXTRAHEADER_VALUE_REGEX = '^AUTHORIZATION:'; +const DEFAULT_COMMIT_MESSAGE = '[create-pull-request] automated change'; +const DEFAULT_TITLE = 'Changes by create-pull-request action'; +const DEFAULT_BODY = 'Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action'; +const DEFAULT_BRANCH = 'create-pull-request/patch'; +function createPullRequest(inputs) { + return __awaiter(this, void 0, void 0, function* () { + let gitConfigHelper; + let extraHeaderOption = new git_config_helper_1.ConfigOption(); + try { + // Get the repository path + const repoPath = utils.getRepoPath(inputs.path); + // Create a git command manager + const git = yield git_command_manager_1.GitCommandManager.create(repoPath); + // Unset and save the extraheader config option if it exists + gitConfigHelper = new git_config_helper_1.GitConfigHelper(git); + extraHeaderOption = yield gitConfigHelper.getAndUnsetConfigOption(EXTRAHEADER_OPTION, EXTRAHEADER_VALUE_REGEX); + //github_token = inputs.token + //path = repoPath + // Set defaults + inputs.commitMessage = inputs.commitMessage + ? inputs.commitMessage + : DEFAULT_COMMIT_MESSAGE; + inputs.title = inputs.title ? inputs.title : DEFAULT_TITLE; + inputs.body = inputs.body ? inputs.body : DEFAULT_BODY; + inputs.branch = inputs.branch ? inputs.branch : DEFAULT_BRANCH; + // Determine the GitHub repository from git config + // This will be the target repository for the pull request branch + const remoteOriginUrlConfig = yield gitConfigHelper.getConfigOption('remote.origin.url'); + const remote = yield utils.getRemoteDetail(remoteOriginUrlConfig.value); + core.info(`Pull request branch target repository set to ${remote.repository}`); + if (remote.protocol == 'HTTPS') { + core.debug('Using HTTPS protocol'); + // Encode and configure the basic credential for HTTPS access + const basicCredential = Buffer.from(`x-access-token:${inputs.token}`, 'utf8').toString('base64'); + core.setSecret(basicCredential); + git.setAuthGitOptions([ + '-c', + `http.https://github.com/.extraheader=AUTHORIZATION: basic ${basicCredential}` + ]); } - // Last attempt - return yield action(); - }); - } - getSleepAmount() { - return (Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + - this.minSeconds); - } - sleep(seconds) { - return __awaiter(this, void 0, void 0, function* () { - return new Promise(resolve => setTimeout(resolve, seconds * 1000)); - }); - } + // Determine if the checked out ref is a valid base for a pull request + // The action needs the checked out HEAD ref to be a branch + // This check will fail in the following cases: + // - HEAD is detached + // - HEAD is a merge commit (pull_request events) + // - HEAD is a tag + const symbolicRefResult = yield git.exec(['symbolic-ref', 'HEAD', '--short'], true); + if (symbolicRefResult.exitCode != 0) { + core.debug(`${symbolicRefResult.stderr}`); + throw new Error('The checked out ref is not a valid base for a pull request. Unable to continue.'); + } + const workingBase = symbolicRefResult.stdout.trim(); + // Exit if the working base is a PR branch created by this action. + // This may occur when using a PAT instead of GITHUB_TOKEN because + // a PAT allows workflow actions to trigger further events. + if (workingBase.startsWith(inputs.branch)) { + throw new Error(`Working base branch '${workingBase}' was created by this action. Unable to continue.`); + } + // Apply the branch suffix if set + if (inputs.branchSuffix) { + switch (inputs.branchSuffix) { + case 'short-commit-hash': + // Suffix with the short SHA1 hash + inputs.branch = `${inputs.branch}-${yield git.revParse('HEAD', [ + '--short' + ])}`; + break; + case 'timestamp': + // Suffix with the current timestamp + inputs.branch = `${inputs.branch}-${utils.secondsSinceEpoch()}`; + break; + case 'random': + // Suffix with a 7 character random string + inputs.branch = `${inputs.branch}-${utils.randomString()}`; + break; + default: + throw new Error(`Branch suffix '${inputs.branchSuffix}' is not a valid value. Unable to continue.`); + } + } + // Output head branch + core.info(`Pull request branch to create or update set to '${inputs.branch}'`); + // Determine the committer and author + const gitIdentityHelper = new git_identity_helper_1.GitIdentityHelper(git); + const identity = yield gitIdentityHelper.getIdentity(inputs.author, inputs.committer); + git.setIdentityGitOptions([ + '-c', + `author.name=${identity.authorName}`, + '-c', + `author.email=${identity.authorEmail}`, + '-c', + `committer.name=${identity.committerName}`, + '-c', + `committer.email=${identity.committerEmail}` + ]); + core.info(`Configured git committer as '${identity.committerName} <${identity.committerEmail}>'`); + core.info(`Configured git author as '${identity.authorName} <${identity.authorEmail}>'`); + // Create or update the pull request branch + const result = yield create_or_update_branch_1.createOrUpdateBranch(git, inputs.commitMessage, inputs.base, inputs.branch); + if (['created', 'updated'].includes(result.action)) { + // The branch was created or updated + core.info(`Pushing pull request branch to 'origin/${inputs.branch}'`); + yield git.push(['--force', 'origin', `HEAD:refs/heads/${inputs.branch}`]); + // Set the base. It would have been '' if not specified as an input + inputs.base = result.base; + if (result.hasDiffWithBase) { + // Create or update the pull request + const githubHelper = new github_helper_1.GitHubHelper(inputs.token); + yield githubHelper.createOrUpdatePullRequest(inputs, remote.repository); + // coupr.create_or_update_pull_request( + // github_token, + // github_repository, + // branch, + // base, + // title, + // body, + // os.environ.get("CPR_LABELS"), + // os.environ.get("CPR_ASSIGNEES"), + // os.environ.get("CPR_MILESTONE"), + // os.environ.get("CPR_REVIEWERS"), + // os.environ.get("CPR_TEAM_REVIEWERS"), + // os.environ.get("CPR_PROJECT_NAME"), + // os.environ.get("CPR_PROJECT_COLUMN_NAME"), + // os.environ.get("CPR_DRAFT"), + // os.environ.get("CPR_REQUEST_TO_PARENT"), + // ) + } + else { + // If there is no longer a diff with the base delete the branch + core.info(`Branch '${inputs.branch}' no longer differs from base branch '${inputs.base}'`); + core.info(`Closing pull request and deleting branch '${inputs.branch}'`); + yield git.push([ + '--delete', + '--force', + 'origin', + `refs/heads/${inputs.branch}` + ]); + } + } + } + catch (error) { + core.setFailed(error.message); + } + finally { + // Restore the extraheader config option + if (extraHeaderOption.value != '') { + if (yield gitConfigHelper.addConfigOption(EXTRAHEADER_OPTION, extraHeaderOption.value)) + core.debug(`Restored config option '${EXTRAHEADER_OPTION}'`); + } + } + }); } -exports.RetryHelper = RetryHelper; -//# sourceMappingURL=retry-helper.js.map +exports.createPullRequest = createPullRequest; + + +/***/ }), + +/***/ 948: +/***/ (function(module) { + +"use strict"; + + +/** + * Tries to execute a function and discards any error that occurs. + * @param {Function} fn - Function that might or might not throw an error. + * @returns {?*} Return-value of the function when no error occurred. + */ +module.exports = function(fn) { + + try { return fn() } catch (e) {} + +} + +/***/ }), + +/***/ 955: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + +const path = __webpack_require__(622); +const childProcess = __webpack_require__(129); +const crossSpawn = __webpack_require__(774); +const stripEof = __webpack_require__(768); +const npmRunPath = __webpack_require__(621); +const isStream = __webpack_require__(323); +const _getStream = __webpack_require__(145); +const pFinally = __webpack_require__(697); +const onExit = __webpack_require__(260); +const errname = __webpack_require__(427); +const stdio = __webpack_require__(168); + +const TEN_MEGABYTES = 1000 * 1000 * 10; + +function handleArgs(cmd, args, opts) { + let parsed; + + opts = Object.assign({ + extendEnv: true, + env: {} + }, opts); + + if (opts.extendEnv) { + opts.env = Object.assign({}, process.env, opts.env); + } + + if (opts.__winShell === true) { + delete opts.__winShell; + parsed = { + command: cmd, + args, + options: opts, + file: cmd, + original: { + cmd, + args + } + }; + } else { + parsed = crossSpawn._parse(cmd, args, opts); + } + + opts = Object.assign({ + maxBuffer: TEN_MEGABYTES, + buffer: true, + stripEof: true, + preferLocal: true, + localDir: parsed.options.cwd || process.cwd(), + encoding: 'utf8', + reject: true, + cleanup: true + }, parsed.options); + + opts.stdio = stdio(opts); + + if (opts.preferLocal) { + opts.env = npmRunPath.env(Object.assign({}, opts, {cwd: opts.localDir})); + } + + if (opts.detached) { + // #115 + opts.cleanup = false; + } + + if (process.platform === 'win32' && path.basename(parsed.command) === 'cmd.exe') { + // #116 + parsed.args.unshift('/q'); + } + + return { + cmd: parsed.command, + args: parsed.args, + opts, + parsed + }; +} + +function handleInput(spawned, input) { + if (input === null || input === undefined) { + return; + } + + if (isStream(input)) { + input.pipe(spawned.stdin); + } else { + spawned.stdin.end(input); + } +} + +function handleOutput(opts, val) { + if (val && opts.stripEof) { + val = stripEof(val); + } + + return val; +} + +function handleShell(fn, cmd, opts) { + let file = '/bin/sh'; + let args = ['-c', cmd]; + + opts = Object.assign({}, opts); + + if (process.platform === 'win32') { + opts.__winShell = true; + file = process.env.comspec || 'cmd.exe'; + args = ['/s', '/c', `"${cmd}"`]; + opts.windowsVerbatimArguments = true; + } + + if (opts.shell) { + file = opts.shell; + delete opts.shell; + } + + return fn(file, args, opts); +} + +function getStream(process, stream, {encoding, buffer, maxBuffer}) { + if (!process[stream]) { + return null; + } + + let ret; + + if (!buffer) { + // TODO: Use `ret = util.promisify(stream.finished)(process[stream]);` when targeting Node.js 10 + ret = new Promise((resolve, reject) => { + process[stream] + .once('end', resolve) + .once('error', reject); + }); + } else if (encoding) { + ret = _getStream(process[stream], { + encoding, + maxBuffer + }); + } else { + ret = _getStream.buffer(process[stream], {maxBuffer}); + } + + return ret.catch(err => { + err.stream = stream; + err.message = `${stream} ${err.message}`; + throw err; + }); +} + +function makeError(result, options) { + const {stdout, stderr} = result; + + let err = result.error; + const {code, signal} = result; + + const {parsed, joinedCmd} = options; + const timedOut = options.timedOut || false; + + if (!err) { + let output = ''; + + if (Array.isArray(parsed.opts.stdio)) { + if (parsed.opts.stdio[2] !== 'inherit') { + output += output.length > 0 ? stderr : `\n${stderr}`; + } + + if (parsed.opts.stdio[1] !== 'inherit') { + output += `\n${stdout}`; + } + } else if (parsed.opts.stdio !== 'inherit') { + output = `\n${stderr}${stdout}`; + } + + err = new Error(`Command failed: ${joinedCmd}${output}`); + err.code = code < 0 ? errname(code) : code; + } + + err.stdout = stdout; + err.stderr = stderr; + err.failed = true; + err.signal = signal || null; + err.cmd = joinedCmd; + err.timedOut = timedOut; + + return err; +} + +function joinCmd(cmd, args) { + let joinedCmd = cmd; + + if (Array.isArray(args) && args.length > 0) { + joinedCmd += ' ' + args.join(' '); + } + + return joinedCmd; +} + +module.exports = (cmd, args, opts) => { + const parsed = handleArgs(cmd, args, opts); + const {encoding, buffer, maxBuffer} = parsed.opts; + const joinedCmd = joinCmd(cmd, args); + + let spawned; + try { + spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts); + } catch (err) { + return Promise.reject(err); + } + + let removeExitHandler; + if (parsed.opts.cleanup) { + removeExitHandler = onExit(() => { + spawned.kill(); + }); + } + + let timeoutId = null; + let timedOut = false; + + const cleanup = () => { + if (timeoutId) { + clearTimeout(timeoutId); + timeoutId = null; + } + + if (removeExitHandler) { + removeExitHandler(); + } + }; + + if (parsed.opts.timeout > 0) { + timeoutId = setTimeout(() => { + timeoutId = null; + timedOut = true; + spawned.kill(parsed.opts.killSignal); + }, parsed.opts.timeout); + } + + const processDone = new Promise(resolve => { + spawned.on('exit', (code, signal) => { + cleanup(); + resolve({code, signal}); + }); + + spawned.on('error', err => { + cleanup(); + resolve({error: err}); + }); + + if (spawned.stdin) { + spawned.stdin.on('error', err => { + cleanup(); + resolve({error: err}); + }); + } + }); + + function destroy() { + if (spawned.stdout) { + spawned.stdout.destroy(); + } + + if (spawned.stderr) { + spawned.stderr.destroy(); + } + } + + const handlePromise = () => pFinally(Promise.all([ + processDone, + getStream(spawned, 'stdout', {encoding, buffer, maxBuffer}), + getStream(spawned, 'stderr', {encoding, buffer, maxBuffer}) + ]).then(arr => { + const result = arr[0]; + result.stdout = arr[1]; + result.stderr = arr[2]; + + if (result.error || result.code !== 0 || result.signal !== null) { + const err = makeError(result, { + joinedCmd, + parsed, + timedOut + }); + + // TODO: missing some timeout logic for killed + // https://github.com/nodejs/node/blob/master/lib/child_process.js#L203 + // err.killed = spawned.killed || killed; + err.killed = err.killed || spawned.killed; + + if (!parsed.opts.reject) { + return err; + } + + throw err; + } + + return { + stdout: handleOutput(parsed.opts, result.stdout), + stderr: handleOutput(parsed.opts, result.stderr), + code: 0, + failed: false, + killed: false, + signal: null, + cmd: joinedCmd, + timedOut: false + }; + }), destroy); + + crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed); + + handleInput(spawned, parsed.opts.input); + + spawned.then = (onfulfilled, onrejected) => handlePromise().then(onfulfilled, onrejected); + spawned.catch = onrejected => handlePromise().catch(onrejected); + + return spawned; +}; + +// TODO: set `stderr: 'ignore'` when that option is implemented +module.exports.stdout = (...args) => module.exports(...args).then(x => x.stdout); + +// TODO: set `stdout: 'ignore'` when that option is implemented +module.exports.stderr = (...args) => module.exports(...args).then(x => x.stderr); + +module.exports.shell = (cmd, opts) => handleShell(module.exports, cmd, opts); + +module.exports.sync = (cmd, args, opts) => { + const parsed = handleArgs(cmd, args, opts); + const joinedCmd = joinCmd(cmd, args); + + if (isStream(parsed.opts.input)) { + throw new TypeError('The `input` option cannot be a stream in sync mode'); + } + + const result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts); + result.code = result.status; + + if (result.error || result.status !== 0 || result.signal !== null) { + const err = makeError(result, { + joinedCmd, + parsed + }); + + if (!parsed.opts.reject) { + return err; + } + + throw err; + } + + return { + stdout: handleOutput(parsed.opts, result.stdout), + stderr: handleOutput(parsed.opts, result.stderr), + code: 0, + failed: false, + signal: null, + cmd: joinedCmd, + timedOut: false + }; +}; + +module.exports.shellSync = (cmd, opts) => handleShell(module.exports.sync, cmd, opts); + + +/***/ }), + +/***/ 966: +/***/ (function(module, __unusedexports, __webpack_require__) { + +"use strict"; + +const {PassThrough} = __webpack_require__(413); + +module.exports = options => { + options = Object.assign({}, options); + + const {array} = options; + let {encoding} = options; + const buffer = encoding === 'buffer'; + let objectMode = false; + + if (array) { + objectMode = !(encoding || buffer); + } else { + encoding = encoding || 'utf8'; + } + + if (buffer) { + encoding = null; + } + + let len = 0; + const ret = []; + const stream = new PassThrough({objectMode}); + + if (encoding) { + stream.setEncoding(encoding); + } + + stream.on('data', chunk => { + ret.push(chunk); + + if (objectMode) { + len = ret.length; + } else { + len += chunk.length; + } + }); + + stream.getBufferedValue = () => { + if (array) { + return ret; + } + + return buffer ? Buffer.concat(ret, len) : ret.join(''); + }; + + stream.getBufferedLength = () => len; + + return stream; +}; + + +/***/ }), + +/***/ 969: +/***/ (function(module, __unusedexports, __webpack_require__) { + +var wrappy = __webpack_require__(11) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) + +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) + + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) + +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} + +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f +} + /***/ }), @@ -5171,7 +11165,7 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -const tr = __importStar(__webpack_require__(9)); +const tr = __importStar(__webpack_require__(686)); /** * Exec a command. * Output will be streamed to the live console. diff --git a/package-lock.json b/package-lock.json index 09facab..48b5000 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,13 @@ "@actions/io": "^1.0.1", "semver": "^6.1.0", "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } } }, "@babel/code-frame": { @@ -1071,6 +1078,111 @@ "fastq": "^1.6.0" } }, + "@octokit/auth-token": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz", + "integrity": "sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==", + "requires": { + "@octokit/types": "^5.0.0" + } + }, + "@octokit/core": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.1.0.tgz", + "integrity": "sha512-yPyQSmxIXLieEIRikk2w8AEtWkFdfG/LXcw1KvEtK3iP0ENZLW/WYQmdzOKqfSaLhooz4CJ9D+WY79C8ZliACw==", + "requires": { + "@octokit/auth-token": "^2.4.0", + "@octokit/graphql": "^4.3.1", + "@octokit/request": "^5.4.0", + "@octokit/types": "^5.0.0", + "before-after-hook": "^2.1.0", + "universal-user-agent": "^5.0.0" + } + }, + "@octokit/endpoint": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.3.tgz", + "integrity": "sha512-Y900+r0gIz+cWp6ytnkibbD95ucEzDSKzlEnaWS52hbCDNcCJYO5mRmWW7HRAnDc7am+N/5Lnd8MppSaTYx1Yg==", + "requires": { + "@octokit/types": "^5.0.0", + "is-plain-object": "^3.0.0", + "universal-user-agent": "^5.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==" + } + } + }, + "@octokit/graphql": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.1.tgz", + "integrity": "sha512-qgMsROG9K2KxDs12CO3bySJaYoUu2aic90qpFrv7A8sEBzZ7UFGvdgPKiLw5gOPYEYbS0Xf8Tvf84tJutHPulQ==", + "requires": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^5.0.0", + "universal-user-agent": "^5.0.0" + } + }, + "@octokit/plugin-paginate-rest": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.2.3.tgz", + "integrity": "sha512-eKTs91wXnJH8Yicwa30jz6DF50kAh7vkcqCQ9D7/tvBAP5KKkg6I2nNof8Mp/65G0Arjsb4QcOJcIEQY+rK1Rg==", + "requires": { + "@octokit/types": "^5.0.0" + } + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.0.0.tgz", + "integrity": "sha512-emS6gysz4E9BNi9IrCl7Pm4kR+Az3MmVB0/DoDCmF4U48NbYG3weKyDlgkrz6Jbl4Mu4nDx8YWZwC4HjoTdcCA==", + "requires": { + "@octokit/types": "^5.0.0", + "deprecation": "^2.3.1" + } + }, + "@octokit/request": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.5.tgz", + "integrity": "sha512-atAs5GAGbZedvJXXdjtKljin+e2SltEs48B3naJjqWupYl2IUBbB/CJisyjbNHcKpHzb3E+OYEZ46G8eakXgQg==", + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.0.0", + "@octokit/types": "^5.0.0", + "deprecation": "^2.0.0", + "is-plain-object": "^3.0.0", + "node-fetch": "^2.3.0", + "once": "^1.4.0", + "universal-user-agent": "^5.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==" + } + } + }, + "@octokit/request-error": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz", + "integrity": "sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==", + "requires": { + "@octokit/types": "^5.0.1", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-5.0.1.tgz", + "integrity": "sha512-GorvORVwp244fGKEt3cgt/P+M0MGy4xEDbckw+K5ojEezxyMDgCaYPKVct+/eWQfZXOT7uq0xRpmrl/+hliabA==", + "requires": { + "@types/node": ">= 8" + } + }, "@sinonjs/commons": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.0.tgz", @@ -1195,8 +1307,7 @@ "@types/node": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.1.tgz", - "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==", - "dev": true + "integrity": "sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -1810,6 +1921,11 @@ "tweetnacl": "^0.14.3" } }, + "before-after-hook": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", + "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2289,6 +2405,11 @@ "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=", "dev": true }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2356,7 +2477,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -2909,7 +3029,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -2924,7 +3043,6 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -2936,20 +3054,17 @@ "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -2957,14 +3072,12 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -3380,7 +3493,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -3967,8 +4079,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-string": { "version": "1.0.5", @@ -4016,8 +4127,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", @@ -5508,6 +5618,11 @@ "tslib": "^1.10.0" } }, + "macos-release": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.0.tgz", + "integrity": "sha512-ko6deozZYiAkqa/0gmcsz+p4jSy3gY7/ZsCEokPaYd8k+6/aXGkiTgr61+Owup7Sf+xjqW8u2ElhoM9SEcEfuA==" + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -5675,8 +5790,7 @@ "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "no-case": { "version": "3.0.3", @@ -5691,8 +5805,7 @@ "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", - "dev": true + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" }, "node-int64": { "version": "0.4.0", @@ -5770,7 +5883,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, "requires": { "path-key": "^2.0.0" }, @@ -5778,8 +5890,7 @@ "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" } } }, @@ -5913,7 +6024,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -5941,6 +6051,15 @@ "word-wrap": "^1.2.3" } }, + "os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "requires": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + } + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -5956,8 +6075,7 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "2.3.0", @@ -6185,7 +6303,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -6402,6 +6519,12 @@ "psl": "^1.1.28", "punycode": "^2.1.1" } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true } } }, @@ -6776,8 +6899,7 @@ "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "sisteransi": { "version": "1.0.5", @@ -7208,8 +7330,7 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-final-newline": { "version": "2.0.0", @@ -7537,6 +7658,14 @@ "set-value": "^2.0.1" } }, + "universal-user-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz", + "integrity": "sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==", + "requires": { + "os-name": "^3.1.0" + } + }, "unixify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", @@ -7608,9 +7737,9 @@ "dev": true }, "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.2.0.tgz", + "integrity": "sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q==" }, "v8-compile-cache": { "version": "2.1.1", @@ -7752,6 +7881,14 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "windows-release": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.1.tgz", + "integrity": "sha512-Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A==", + "requires": { + "execa": "^1.0.0" + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -7772,8 +7909,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "1.0.3", diff --git a/package.json b/package.json index b33d4c5..53b4b4f 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,11 @@ "@actions/core": "1.2.4", "@actions/exec": "1.0.4", "@actions/tool-cache": "1.3.4", - "is-docker": "2.0.0" + "@octokit/core": "3.1.0", + "@octokit/plugin-paginate-rest": "2.2.3", + "@octokit/plugin-rest-endpoint-methods": "4.0.0", + "is-docker": "2.0.0", + "uuid": "8.2.0" }, "devDependencies": { "@types/jest": "25.2.2", diff --git a/src/create-or-update-branch.ts b/src/create-or-update-branch.ts new file mode 100644 index 0000000..03fb852 --- /dev/null +++ b/src/create-or-update-branch.ts @@ -0,0 +1,192 @@ +import * as core from '@actions/core' +import {GitCommandManager} from './git-command-manager' +import {v4 as uuidv4} from 'uuid' + +const CHERRYPICK_EMPTY = + 'The previous cherry-pick is now empty, possibly due to conflict resolution.' + +export async function tryFetch( + git: GitCommandManager, + branch: string +): Promise { + try { + await git.fetch([`${branch}:refs/remotes/origin/${branch}`]) + return true + } catch { + return false + } +} + +// Return true if branch2 is ahead of branch1 +async function isAhead( + git: GitCommandManager, + branch1: string, + branch2: string +): Promise { + const result = await git.revList( + [`${branch1}...${branch2}`], + ['--right-only', '--count'] + ) + return Number(result) > 0 +} + +// Return true if branch2 is behind branch1 +async function isBehind( + git: GitCommandManager, + branch1: string, + branch2: string +): Promise { + const result = await git.revList( + [`${branch1}...${branch2}`], + ['--left-only', '--count'] + ) + return Number(result) > 0 +} + +// Return true if branch2 is even with branch1 +async function isEven( + git: GitCommandManager, + branch1: string, + branch2: string +): Promise { + return ( + !(await isAhead(git, branch1, branch2)) && + !(await isBehind(git, branch1, branch2)) + ) +} + +async function hasDiff( + git: GitCommandManager, + branch1: string, + branch2: string +): Promise { + const result = await git.diff([`${branch1}..${branch2}`]) + return result.length > 0 +} + +function splitLines(multilineString: string): string[] { + return multilineString + .split('\n') + .map(s => s.trim()) + .filter(x => x !== '') +} + +export async function createOrUpdateBranch( + git: GitCommandManager, + commitMessage: string, + baseInput: string, + branch: string +): Promise { + // Get the working base. This may or may not be the actual base. + const workingBase = await git.symbolicRef('HEAD', ['--short']) + // If the base is not specified it is assumed to be the working base. + const base = baseInput ? baseInput : workingBase + + // Set the default return values + const result: CreateOrUpdateBranchResult = { + action: 'none', + base: base, + hasDiffWithBase: false + } + + // Save the working base changes to a temporary branch + const tempBranch = uuidv4() + await git.checkout(tempBranch, 'HEAD') + // Commit any uncomitted changes + if (await git.isDirty(true)) { + core.info('Uncommitted changes found. Adding a commit.') + await git.exec(['add', '-A']) + await git.commit(['-m', commitMessage]) + } + + // Perform fetch and reset the working base + // Commits made during the workflow will be removed + await git.fetch([`${workingBase}:${workingBase}`], 'origin', ['--force']) + + // If the working base is not the base, rebase the temp branch commits + if (workingBase != base) { + core.info( + `Rebasing commits made to branch '${workingBase}' on to base branch '${base}'` + ) + // Checkout the actual base + await git.fetch([`${base}:${base}`], 'origin', ['--force']) + await git.checkout(base) + // Cherrypick commits from the temporary branch starting from the working base + const commits = await git.revList( + [`${workingBase}..${tempBranch}`, '.'], + ['--reverse'] + ) + for (const commit of splitLines(commits)) { + const result = await git.cherryPick( + ['--strategy=recursive', '--strategy-option=theirs', commit], + true + ) + if (result.exitCode != 0 && !result.stderr.includes(CHERRYPICK_EMPTY)) { + throw new Error(`Unexpected error: ${result.stderr}`) + } + } + // Reset the temp branch to the working index + await git.checkout(tempBranch, 'HEAD') + // Reset the base + await git.fetch([`${base}:${base}`], 'origin', ['--force']) + } + + // Try to fetch the pull request branch + if (!(await tryFetch(git, branch))) { + // The pull request branch does not exist + core.info(`Pull request branch '${branch}' does not exist yet.`) + // Create the pull request branch + await git.checkout(branch, 'HEAD') + // Check if the pull request branch is ahead of the base + result.hasDiffWithBase = await isAhead(git, base, branch) + if (result.hasDiffWithBase) { + result.action = 'created' + core.info(`Created branch '${branch}'`) + } else { + core.info( + `Branch '${branch}' is not ahead of base '${base}' and will not be created` + ) + } + } else { + // The pull request branch exists + core.info( + `Pull request branch '${branch}' already exists as remote branch 'origin/${branch}'` + ) + // Checkout the pull request branch + await git.checkout(branch) + + if (await hasDiff(git, branch, tempBranch)) { + // If the branch differs from the recreated temp version then the branch is reset + // For changes on base this action is similar to a rebase of the pull request branch + core.info(`Resetting '${branch}'`) + // Alternatively, git switch -C branch tempBranch + await git.checkout(branch, tempBranch) + } + + // Check if the pull request branch has been updated + // If the branch was reset or updated it will be ahead + // It may be behind if a reset now results in no diff with the base + if (!(await isEven(git, `origin/${branch}`, branch))) { + result.action = 'updated' + core.info(`Updated branch '${branch}'`) + } else { + core.info( + `Branch '${branch}' is even with its remote and will not be updated` + ) + } + + // Check if the pull request branch is ahead of the base + result.hasDiffWithBase = await isAhead(git, base, branch) + } + + // Delete the temporary branch + await git.exec(['branch', '--delete', '--force', tempBranch]) + + return result +} + +interface CreateOrUpdateBranchResult { + action: string + base: string + hasDiffWithBase: boolean +} diff --git a/src/create-pull-request.ts b/src/create-pull-request.ts new file mode 100644 index 0000000..50f2a46 --- /dev/null +++ b/src/create-pull-request.ts @@ -0,0 +1,232 @@ +import * as core from '@actions/core' +import {createOrUpdateBranch} from './create-or-update-branch' +import {GitHubHelper} from './github-helper' +import {GitCommandManager} from './git-command-manager' +import {ConfigOption, GitConfigHelper} from './git-config-helper' +import {GitIdentityHelper} from './git-identity-helper' +import * as utils from './utils' + +const EXTRAHEADER_OPTION = 'http.https://github.com/.extraheader' +const EXTRAHEADER_VALUE_REGEX = '^AUTHORIZATION:' + +const DEFAULT_COMMIT_MESSAGE = '[create-pull-request] automated change' +const DEFAULT_TITLE = 'Changes by create-pull-request action' +const DEFAULT_BODY = + 'Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action' +const DEFAULT_BRANCH = 'create-pull-request/patch' + +export interface Inputs { + token: string + path: string + commitMessage: string + committer: string + author: string + title: string + body: string + labels: string[] + assignees: string[] + reviewers: string[] + teamReviewers: string[] + milestone: number + draft: boolean + branch: string + requestToParent: boolean + base: string + branchSuffix: string +} + +export async function createPullRequest(inputs: Inputs): Promise { + let gitConfigHelper + let extraHeaderOption = new ConfigOption() + try { + // Get the repository path + const repoPath = utils.getRepoPath(inputs.path) + // Create a git command manager + const git = await GitCommandManager.create(repoPath) + // Unset and save the extraheader config option if it exists + gitConfigHelper = new GitConfigHelper(git) + extraHeaderOption = await gitConfigHelper.getAndUnsetConfigOption( + EXTRAHEADER_OPTION, + EXTRAHEADER_VALUE_REGEX + ) + + //github_token = inputs.token + //path = repoPath + + // Set defaults + inputs.commitMessage = inputs.commitMessage + ? inputs.commitMessage + : DEFAULT_COMMIT_MESSAGE + inputs.title = inputs.title ? inputs.title : DEFAULT_TITLE + inputs.body = inputs.body ? inputs.body : DEFAULT_BODY + inputs.branch = inputs.branch ? inputs.branch : DEFAULT_BRANCH + + // Determine the GitHub repository from git config + // This will be the target repository for the pull request branch + const remoteOriginUrlConfig = await gitConfigHelper.getConfigOption( + 'remote.origin.url' + ) + const remote = await utils.getRemoteDetail(remoteOriginUrlConfig.value) + core.info( + `Pull request branch target repository set to ${remote.repository}` + ) + + if (remote.protocol == 'HTTPS') { + core.debug('Using HTTPS protocol') + // Encode and configure the basic credential for HTTPS access + const basicCredential = Buffer.from( + `x-access-token:${inputs.token}`, + 'utf8' + ).toString('base64') + core.setSecret(basicCredential) + git.setAuthGitOptions([ + '-c', + `http.https://github.com/.extraheader=AUTHORIZATION: basic ${basicCredential}` + ]) + } + + // Determine if the checked out ref is a valid base for a pull request + // The action needs the checked out HEAD ref to be a branch + // This check will fail in the following cases: + // - HEAD is detached + // - HEAD is a merge commit (pull_request events) + // - HEAD is a tag + const symbolicRefResult = await git.exec( + ['symbolic-ref', 'HEAD', '--short'], + true + ) + if (symbolicRefResult.exitCode != 0) { + core.debug(`${symbolicRefResult.stderr}`) + throw new Error( + 'The checked out ref is not a valid base for a pull request. Unable to continue.' + ) + } + const workingBase = symbolicRefResult.stdout.trim() + + // Exit if the working base is a PR branch created by this action. + // This may occur when using a PAT instead of GITHUB_TOKEN because + // a PAT allows workflow actions to trigger further events. + if (workingBase.startsWith(inputs.branch)) { + throw new Error( + `Working base branch '${workingBase}' was created by this action. Unable to continue.` + ) + } + + // Apply the branch suffix if set + if (inputs.branchSuffix) { + switch (inputs.branchSuffix) { + case 'short-commit-hash': + // Suffix with the short SHA1 hash + inputs.branch = `${inputs.branch}-${await git.revParse('HEAD', [ + '--short' + ])}` + break + case 'timestamp': + // Suffix with the current timestamp + inputs.branch = `${inputs.branch}-${utils.secondsSinceEpoch()}` + break + case 'random': + // Suffix with a 7 character random string + inputs.branch = `${inputs.branch}-${utils.randomString()}` + break + default: + throw new Error( + `Branch suffix '${inputs.branchSuffix}' is not a valid value. Unable to continue.` + ) + } + } + + // Output head branch + core.info( + `Pull request branch to create or update set to '${inputs.branch}'` + ) + + // Determine the committer and author + const gitIdentityHelper = new GitIdentityHelper(git) + const identity = await gitIdentityHelper.getIdentity( + inputs.author, + inputs.committer + ) + git.setIdentityGitOptions([ + '-c', + `author.name=${identity.authorName}`, + '-c', + `author.email=${identity.authorEmail}`, + '-c', + `committer.name=${identity.committerName}`, + '-c', + `committer.email=${identity.committerEmail}` + ]) + core.info( + `Configured git committer as '${identity.committerName} <${identity.committerEmail}>'` + ) + core.info( + `Configured git author as '${identity.authorName} <${identity.authorEmail}>'` + ) + + // Create or update the pull request branch + const result = await createOrUpdateBranch( + git, + inputs.commitMessage, + inputs.base, + inputs.branch + ) + + if (['created', 'updated'].includes(result.action)) { + // The branch was created or updated + core.info(`Pushing pull request branch to 'origin/${inputs.branch}'`) + await git.push(['--force', 'origin', `HEAD:refs/heads/${inputs.branch}`]) + + // Set the base. It would have been '' if not specified as an input + inputs.base = result.base + + if (result.hasDiffWithBase) { + // Create or update the pull request + const githubHelper = new GitHubHelper(inputs.token) + await githubHelper.createOrUpdatePullRequest(inputs, remote.repository) + // coupr.create_or_update_pull_request( + // github_token, + // github_repository, + // branch, + // base, + // title, + // body, + // os.environ.get("CPR_LABELS"), + // os.environ.get("CPR_ASSIGNEES"), + // os.environ.get("CPR_MILESTONE"), + // os.environ.get("CPR_REVIEWERS"), + // os.environ.get("CPR_TEAM_REVIEWERS"), + // os.environ.get("CPR_PROJECT_NAME"), + // os.environ.get("CPR_PROJECT_COLUMN_NAME"), + // os.environ.get("CPR_DRAFT"), + // os.environ.get("CPR_REQUEST_TO_PARENT"), + // ) + } else { + // If there is no longer a diff with the base delete the branch + core.info( + `Branch '${inputs.branch}' no longer differs from base branch '${inputs.base}'` + ) + core.info(`Closing pull request and deleting branch '${inputs.branch}'`) + await git.push([ + '--delete', + '--force', + 'origin', + `refs/heads/${inputs.branch}` + ]) + } + } + } catch (error) { + core.setFailed(error.message) + } finally { + // Restore the extraheader config option + if (extraHeaderOption.value != '') { + if ( + await gitConfigHelper.addConfigOption( + EXTRAHEADER_OPTION, + extraHeaderOption.value + ) + ) + core.debug(`Restored config option '${EXTRAHEADER_OPTION}'`) + } + } +} diff --git a/src/git-command-manager.ts b/src/git-command-manager.ts new file mode 100644 index 0000000..2125533 --- /dev/null +++ b/src/git-command-manager.ts @@ -0,0 +1,258 @@ +import * as exec from '@actions/exec' +import * as io from '@actions/io' + +const tagsRefSpec = '+refs/tags/*:refs/tags/*' + +export class GitCommandManager { + private gitPath: string + private workingDirectory: string + // Git options used when commands require auth + private authGitOptions?: string[] + // Git options used when commands require an identity + private identityGitOptions?: string[] + + private constructor(workingDirectory: string, gitPath: string) { + this.workingDirectory = workingDirectory + this.gitPath = gitPath + } + + static async create(workingDirectory: string): Promise { + const gitPath = await io.which('git', true) + return new GitCommandManager(workingDirectory, gitPath) + } + + setAuthGitOptions(authGitOptions: string[]): void { + this.authGitOptions = authGitOptions + } + + setIdentityGitOptions(identityGitOptions: string[]): void { + this.identityGitOptions = identityGitOptions + } + + async checkout(ref: string, startPoint?: string): Promise { + const args = ['checkout', '--progress'] + if (startPoint) { + args.push('-B', ref, startPoint) + } else { + args.push(ref) + } + await this.exec(args) + } + + async cherryPick( + options?: string[], + allowAllExitCodes = false + ): Promise { + const args = ['cherry-pick'] + if (this.identityGitOptions) { + args.unshift(...this.identityGitOptions) + } + + if (options) { + args.push(...options) + } + + return await this.exec(args, allowAllExitCodes) + } + + async commit(options?: string[]): Promise { + const args = ['commit'] + if (this.identityGitOptions) { + args.unshift(...this.identityGitOptions) + } + + if (options) { + args.push(...options) + } + + await this.exec(args) + } + + async diff(options?: string[]): Promise { + const args = ['-c', 'core.pager=cat', 'diff'] + if (options) { + args.push(...options) + } + const output = await this.exec(args) + return output.stdout.trim() + } + + async fetch( + refSpec: string[], + remoteName?: string, + options?: string[] + ): Promise { + const args = ['-c', 'protocol.version=2'] + if (this.authGitOptions) { + args.push(...this.authGitOptions) + } + args.push('fetch') + + if (!refSpec.some(x => x === tagsRefSpec)) { + args.push('--no-tags') + } + + args.push('--progress', '--no-recurse-submodules') + + if (options) { + args.push(...options) + } + + if (remoteName) { + args.push(remoteName) + } else { + args.push('origin') + } + for (const arg of refSpec) { + args.push(arg) + } + + await this.exec(args) + } + + getWorkingDirectory(): string { + return this.workingDirectory + } + + async isDirty(untracked: boolean): Promise { + const diffArgs = ['--abbrev=40', '--full-index', '--raw'] + // Check staged changes + if (await this.diff([...diffArgs, '--staged'])) { + return true + } + // Check working index changes + if (await this.diff(diffArgs)) { + return true + } + // Check untracked changes + if (untracked && (await this.status(['--porcelain', '-unormal']))) { + return true + } + return false + } + + async push(options?: string[]): Promise { + const args = ['push'] + if (this.authGitOptions) { + args.unshift(...this.authGitOptions) + } + + if (options) { + args.push(...options) + } + + await this.exec(args) + } + + async revList( + commitExpression: string[], + options?: string[] + ): Promise { + const args = ['rev-list'] + if (options) { + args.push(...options) + } + args.push(...commitExpression) + const output = await this.exec(args) + return output.stdout.trim() + } + + async revParse(ref: string, options?: string[]): Promise { + const args = ['rev-parse'] + if (options) { + args.push(...options) + } + args.push(ref) + const output = await this.exec(args) + return output.stdout.trim() + } + + async status(options?: string[]): Promise { + const args = ['status'] + if (options) { + args.push(...options) + } + const output = await this.exec(args) + return output.stdout.trim() + } + + async symbolicRef(ref: string, options?: string[]): Promise { + const args = ['symbolic-ref', ref] + if (options) { + args.push(...options) + } + const output = await this.exec(args) + return output.stdout.trim() + } + + async tryConfigUnset( + configKey: string, + globalConfig?: boolean + ): Promise { + const output = await this.exec( + [ + 'config', + globalConfig ? '--global' : '--local', + '--unset-all', + configKey + ], + true + ) + return output.exitCode === 0 + } + + async tryGetFetchUrl(): Promise { + const output = await this.exec( + ['config', '--local', '--get', 'remote.origin.url'], + true + ) + + if (output.exitCode !== 0) { + return '' + } + + const stdout = output.stdout.trim() + if (stdout.includes('\n')) { + return '' + } + + return stdout + } + + async exec(args: string[], allowAllExitCodes = false): Promise { + const result = new GitOutput() + + const env = {} + for (const key of Object.keys(process.env)) { + env[key] = process.env[key] + } + + const stdout: string[] = [] + const stderr: string[] = [] + + const options = { + cwd: this.workingDirectory, + env, + ignoreReturnCode: allowAllExitCodes, + listeners: { + stdout: (data: Buffer) => { + stdout.push(data.toString()) + }, + stderr: (data: Buffer) => { + stderr.push(data.toString()) + } + } + } + + result.exitCode = await exec.exec(`"${this.gitPath}"`, args, options) + result.stdout = stdout.join('') + result.stderr = stderr.join('') + return result + } +} + +class GitOutput { + stdout = '' + stderr = '' + exitCode = 0 +} diff --git a/src/git-config-helper.ts b/src/git-config-helper.ts new file mode 100644 index 0000000..25a9fbc --- /dev/null +++ b/src/git-config-helper.ts @@ -0,0 +1,64 @@ +import * as core from '@actions/core' +import {GitCommandManager} from './git-command-manager' + +export class ConfigOption { + name = '' + value = '' +} + +export class GitConfigHelper { + private git: GitCommandManager + + constructor(git: GitCommandManager) { + this.git = git + } + + async addConfigOption(name: string, value: string): Promise { + const result = await this.git.exec( + ['config', '--local', '--add', name, value], + true + ) + return result.exitCode === 0 + } + + async unsetConfigOption(name: string, valueRegex = '.'): Promise { + const result = await this.git.exec( + ['config', '--local', '--unset', name, valueRegex], + true + ) + return result.exitCode === 0 + } + + async configOptionExists(name: string, valueRegex = '.'): Promise { + const result = await this.git.exec( + ['config', '--local', '--name-only', '--get-regexp', name, valueRegex], + true + ) + return result.exitCode === 0 + } + + async getConfigOption(name: string, valueRegex = '.'): Promise { + const option = new ConfigOption() + const result = await this.git.exec( + ['config', '--local', '--get-regexp', name, valueRegex], + true + ) + option.name = name + option.value = result.stdout.trim().split(`${name} `)[1] + return option + } + + async getAndUnsetConfigOption( + name: string, + valueRegex = '.' + ): Promise { + if (await this.configOptionExists(name, valueRegex)) { + const option = await this.getConfigOption(name, valueRegex) + if (await this.unsetConfigOption(name, valueRegex)) { + core.debug(`Unset config option '${name}'`) + return option + } + } + return new ConfigOption() + } +} diff --git a/src/git-identity-helper.ts b/src/git-identity-helper.ts new file mode 100644 index 0000000..f9b260f --- /dev/null +++ b/src/git-identity-helper.ts @@ -0,0 +1,105 @@ +import * as core from '@actions/core' +import {GitCommandManager} from './git-command-manager' +import {GitConfigHelper} from './git-config-helper' +import * as utils from './utils' + +// Default the committer and author to the GitHub Actions bot +const DEFAULT_COMMITTER = 'GitHub ' +const DEFAULT_AUTHOR = + 'github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>' + +interface GitIdentity { + authorName: string + authorEmail: string + committerName: string + committerEmail: string +} + +export class GitIdentityHelper { + private git: GitCommandManager + + constructor(git: GitCommandManager) { + this.git = git + } + + private async getGitIdentityFromConfig(): Promise { + const gitConfigHelper = new GitConfigHelper(this.git) + + if ( + (await gitConfigHelper.configOptionExists('user.name')) && + (await gitConfigHelper.configOptionExists('user.email')) + ) { + const userName = await gitConfigHelper.getConfigOption('user.name') + const userEmail = await gitConfigHelper.getConfigOption('user.email') + return { + authorName: userName.value, + authorEmail: userEmail.value, + committerName: userName.value, + committerEmail: userEmail.value + } + } + + if ( + (await gitConfigHelper.configOptionExists('committer.name')) && + (await gitConfigHelper.configOptionExists('committer.email')) && + (await gitConfigHelper.configOptionExists('author.name')) && + (await gitConfigHelper.configOptionExists('author.email')) + ) { + const committerName = await gitConfigHelper.getConfigOption( + 'committer.name' + ) + const committerEmail = await gitConfigHelper.getConfigOption( + 'committer.email' + ) + const authorName = await gitConfigHelper.getConfigOption('author.name') + const authorEmail = await gitConfigHelper.getConfigOption('author.email') + return { + authorName: authorName.value, + authorEmail: authorEmail.value, + committerName: committerName.value, + committerEmail: committerEmail.value + } + } + + return undefined + } + + async getIdentity(author: string, committer: string): Promise { + // If either committer or author is supplied they will be cross used + if (!committer && author) { + core.info('Supplied author will also be used as the committer.') + committer = author + } + if (!author && committer) { + core.info('Supplied committer will also be used as the author.') + author = committer + } + + // If no committer/author has been supplied, try and fetch identity + // configuration already existing in git config. + if (!committer && !author) { + const identity = await this.getGitIdentityFromConfig() + if (identity) { + core.info('Retrieved a pre-configured git identity.') + return identity + } + } + + // Set defaults if no committer/author has been supplied and no + // existing identity configuration was found. + if (!committer && !author) { + core.info('Action defaults set for the author and committer.') + committer = DEFAULT_COMMITTER + author = DEFAULT_AUTHOR + } + + const parsedAuthor = utils.parseDisplayNameEmail(author) + const parsedCommitter = utils.parseDisplayNameEmail(committer) + return { + authorName: parsedAuthor.name, + authorEmail: parsedAuthor.email, + committerName: parsedCommitter.name, + committerEmail: parsedCommitter.email + } + } +} diff --git a/src/git.ts b/src/git.ts deleted file mode 100644 index c205158..0000000 --- a/src/git.ts +++ /dev/null @@ -1,121 +0,0 @@ -import * as core from '@actions/core' -import * as exec from '@actions/exec' -import * as path from 'path' - -class GitOutput { - stdout = '' - exitCode = 0 -} - -export class ConfigOption { - name = '' - value = '' -} - -export function getRepoPath(relativePath?: string): string { - let githubWorkspacePath = process.env['GITHUB_WORKSPACE'] - if (!githubWorkspacePath) { - throw new Error('GITHUB_WORKSPACE not defined') - } - githubWorkspacePath = path.resolve(githubWorkspacePath) - core.debug(`githubWorkspacePath: ${githubWorkspacePath}`) - - let repoPath = githubWorkspacePath - if (relativePath) repoPath = path.resolve(repoPath, relativePath) - - core.debug(`repoPath: ${repoPath}`) - return repoPath -} - -export async function execGit( - repoPath: string, - args: string[], - ignoreReturnCode = false -): Promise { - const result = new GitOutput() - - const stdout: string[] = [] - const options = { - cwd: repoPath, - ignoreReturnCode: ignoreReturnCode, - listeners: { - stdout: (data: Buffer): void => { - stdout.push(data.toString()) - } - } - } - - result.exitCode = await exec.exec('git', args, options) - result.stdout = stdout.join('') - return result -} - -export async function addConfigOption( - repoPath: string, - name: string, - value: string -): Promise { - const result = await execGit( - repoPath, - ['config', '--local', '--add', name, value], - true - ) - return result.exitCode === 0 -} - -export async function unsetConfigOption( - repoPath: string, - name: string, - valueRegex = '.' -): Promise { - const result = await execGit( - repoPath, - ['config', '--local', '--unset', name, valueRegex], - true - ) - return result.exitCode === 0 -} - -export async function configOptionExists( - repoPath: string, - name: string, - valueRegex = '.' -): Promise { - const result = await execGit( - repoPath, - ['config', '--local', '--name-only', '--get-regexp', name, valueRegex], - true - ) - return result.exitCode === 0 -} - -export async function getConfigOption( - repoPath: string, - name: string, - valueRegex = '.' -): Promise { - const option = new ConfigOption() - const result = await execGit( - repoPath, - ['config', '--local', '--get-regexp', name, valueRegex], - true - ) - option.name = name - option.value = result.stdout.trim().split(`${name} `)[1] - return option -} - -export async function getAndUnsetConfigOption( - repoPath: string, - name: string, - valueRegex = '.' -): Promise { - if (await configOptionExists(repoPath, name, valueRegex)) { - const option = await getConfigOption(repoPath, name, valueRegex) - if (await unsetConfigOption(repoPath, name, valueRegex)) { - core.debug(`Unset config option '${name}'`) - return option - } - } - return new ConfigOption() -} diff --git a/src/github-helper.ts b/src/github-helper.ts new file mode 100644 index 0000000..32dd5d2 --- /dev/null +++ b/src/github-helper.ts @@ -0,0 +1,157 @@ +import * as core from '@actions/core' +import {Inputs} from './create-pull-request' +import {Octokit, OctokitOptions} from './octokit-client' + +const ERROR_PR_REVIEW_FROM_AUTHOR = + 'Review cannot be requested from pull request author' + +interface Repository { + owner: string + repo: string +} + +export class GitHubHelper { + private octokit: InstanceType + + constructor(token: string) { + const options: OctokitOptions = {} + if (token) { + options.auth = `${token}` + } + this.octokit = new Octokit(options) + } + + private parseRepository(repository: string): Repository { + const [owner, repo] = repository.split('/') + return { + owner: owner, + repo: repo + } + } + + private async createOrUpdate( + inputs: Inputs, + baseRepository: string, + headBranch: string + ): Promise { + // Try to create the pull request + try { + const {data: pull} = await this.octokit.pulls.create({ + ...this.parseRepository(baseRepository), + title: inputs.title, + head: headBranch, + base: inputs.base, + body: inputs.body, + draft: inputs.draft + }) + core.info( + `Created pull request #${pull.number} (${headBranch} => ${inputs.base})` + ) + return pull.number + } catch (e) { + if ( + !e.message || + !e.message.includes(`A pull request already exists for ${headBranch}`) + ) { + throw e + } + } + + // Update the pull request that exists for this branch and base + const {data: pulls} = await this.octokit.pulls.list({ + ...this.parseRepository(baseRepository), + state: 'open', + head: headBranch, + base: inputs.base + }) + const {data: pull} = await this.octokit.pulls.update({ + ...this.parseRepository(baseRepository), + pull_number: pulls[0].number, + title: inputs.title, + body: inputs.body, + draft: inputs.draft + }) + core.info( + `Updated pull request #${pull.number} (${headBranch} => ${inputs.base})` + ) + return pull.number + } + + async createOrUpdatePullRequest( + inputs: Inputs, + headRepository: string + ): Promise { + const {data: headRepo} = await this.octokit.repos.get({ + ...this.parseRepository(headRepository) + }) + + if (inputs.requestToParent && !headRepo.parent) { + throw new Error( + `The checked out repository is not a fork. Input 'request-to-parent' should be set to 'false'.` + ) + } + const baseRepository = inputs.requestToParent + ? headRepo.parent.full_name + : headRepository + + const headBranch = `${headRepo.owner.login}:${inputs.branch}` + + // Create or update the pull request + const pullNumber = await this.createOrUpdate( + inputs, + baseRepository, + headBranch + ) + + // Set output + core.setOutput('pull-request-number', pullNumber) + + // Set milestone, labels and assignees + const updateIssueParams = {} + if (inputs.milestone) { + updateIssueParams['milestone'] = inputs.milestone + core.info(`Applying milestone '${inputs.milestone}'`) + } + if (inputs.labels.length > 0) { + updateIssueParams['labels'] = inputs.labels + core.info(`Applying labels '${inputs.labels}'`) + } + if (inputs.assignees.length > 0) { + updateIssueParams['assignees'] = inputs.assignees + core.info(`Applying assignees '${inputs.assignees}'`) + } + if (Object.keys(updateIssueParams).length > 0) { + await this.octokit.issues.update({ + ...this.parseRepository(baseRepository), + issue_number: pullNumber, + ...updateIssueParams + }) + } + + // Request reviewers and team reviewers + const requestReviewersParams = {} + if (inputs.reviewers.length > 0) { + requestReviewersParams['reviewers'] = inputs.reviewers + core.info(`Requesting reviewers '${inputs.reviewers}'`) + } + if (inputs.teamReviewers.length > 0) { + requestReviewersParams['team_reviewers'] = inputs.teamReviewers + core.info(`Requesting team reviewers '${inputs.teamReviewers}'`) + } + if (Object.keys(requestReviewersParams).length > 0) { + try { + await this.octokit.pulls.requestReviewers({ + ...this.parseRepository(baseRepository), + pull_number: pullNumber, + ...requestReviewersParams + }) + } catch (e) { + if (e.message && e.message.includes(ERROR_PR_REVIEW_FROM_AUTHOR)) { + core.warning(ERROR_PR_REVIEW_FROM_AUTHOR) + } else { + throw e + } + } + } + } +} diff --git a/src/main.ts b/src/main.ts index 0e9c95a..0039668 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,56 +1,11 @@ import * as core from '@actions/core' -import * as exec from '@actions/exec' -import {isDocker} from './isDocker' -import {setupPython} from './setupPython' -import { - ConfigOption, - getRepoPath, - getAndUnsetConfigOption, - addConfigOption -} from './git' +import {Inputs, createPullRequest} from './create-pull-request' import {inspect} from 'util' - -const EXTRAHEADER_OPTION = 'http.https://github.com/.extraheader' -const EXTRAHEADER_VALUE_REGEX = '^AUTHORIZATION:' +import * as utils from './utils' async function run(): Promise { - let repoPath - let extraHeaderOption = new ConfigOption() try { - // Python assets - const cpr = `${__dirname}/cpr` - core.debug(`cpr: ${cpr}`) - - // Determine how to access python and pip - const {pip, python} = (function (): {pip: string; python: string} { - if (isDocker()) { - core.info('Running inside a Docker container') - // Python 3 assumed to be installed and on the PATH - return { - pip: 'pip3', - python: 'python3' - } - } else { - // Setup Python from the tool cache - setupPython('3.x', 'x64') - return { - pip: 'pip', - python: 'python' - } - } - })() - - // Install requirements - await exec.exec(pip, [ - 'install', - '--requirement', - `${cpr}/requirements.txt`, - '--no-index', - `--find-links=${__dirname}/vendor` - ]) - - // Fetch action inputs - const inputs = { + const inputs: Inputs = { token: core.getInput('token'), path: core.getInput('path'), commitMessage: core.getInput('commit-message'), @@ -58,71 +13,22 @@ async function run(): Promise { author: core.getInput('author'), title: core.getInput('title'), body: core.getInput('body'), - labels: core.getInput('labels'), - assignees: core.getInput('assignees'), - reviewers: core.getInput('reviewers'), - teamReviewers: core.getInput('team-reviewers'), - milestone: core.getInput('milestone'), - project: core.getInput('project'), - projectColumn: core.getInput('project-column'), - draft: core.getInput('draft'), + labels: utils.getInputAsArray('labels'), + assignees: utils.getInputAsArray('assignees'), + reviewers: utils.getInputAsArray('reviewers'), + teamReviewers: utils.getInputAsArray('team-reviewers'), + milestone: Number(core.getInput('milestone')), + draft: core.getInput('draft') === 'true', branch: core.getInput('branch'), - requestToParent: core.getInput('request-to-parent'), + requestToParent: core.getInput('request-to-parent') === 'true', base: core.getInput('base'), branchSuffix: core.getInput('branch-suffix') } core.debug(`Inputs: ${inspect(inputs)}`) - // Set environment variables from inputs. - if (inputs.token) process.env.GITHUB_TOKEN = inputs.token - if (inputs.path) process.env.CPR_PATH = inputs.path - if (inputs.commitMessage) - process.env.CPR_COMMIT_MESSAGE = inputs.commitMessage - if (inputs.committer) process.env.CPR_COMMITTER = inputs.committer - if (inputs.author) process.env.CPR_AUTHOR = inputs.author - if (inputs.title) process.env.CPR_TITLE = inputs.title - if (inputs.body) process.env.CPR_BODY = inputs.body - if (inputs.labels) process.env.CPR_LABELS = inputs.labels - if (inputs.assignees) process.env.CPR_ASSIGNEES = inputs.assignees - if (inputs.reviewers) process.env.CPR_REVIEWERS = inputs.reviewers - if (inputs.teamReviewers) - process.env.CPR_TEAM_REVIEWERS = inputs.teamReviewers - if (inputs.milestone) process.env.CPR_MILESTONE = inputs.milestone - if (inputs.project) process.env.CPR_PROJECT_NAME = inputs.project - if (inputs.projectColumn) - process.env.CPR_PROJECT_COLUMN_NAME = inputs.projectColumn - if (inputs.draft) process.env.CPR_DRAFT = inputs.draft - if (inputs.branch) process.env.CPR_BRANCH = inputs.branch - if (inputs.requestToParent) - process.env.CPR_REQUEST_TO_PARENT = inputs.requestToParent - if (inputs.base) process.env.CPR_BASE = inputs.base - if (inputs.branchSuffix) process.env.CPR_BRANCH_SUFFIX = inputs.branchSuffix - - // Get the repository path - repoPath = getRepoPath(inputs.path) - // Get the extraheader config option if it exists - extraHeaderOption = await getAndUnsetConfigOption( - repoPath, - EXTRAHEADER_OPTION, - EXTRAHEADER_VALUE_REGEX - ) - - // Execute create pull request - await exec.exec(python, [`${cpr}/create_pull_request.py`]) + await createPullRequest(inputs) } catch (error) { core.setFailed(error.message) - } finally { - // Restore the extraheader config option - if (extraHeaderOption.value != '') { - if ( - await addConfigOption( - repoPath, - EXTRAHEADER_OPTION, - extraHeaderOption.value - ) - ) - core.debug(`Restored config option '${EXTRAHEADER_OPTION}'`) - } } } diff --git a/src/octokit-client.ts b/src/octokit-client.ts new file mode 100644 index 0000000..5e82c5d --- /dev/null +++ b/src/octokit-client.ts @@ -0,0 +1,7 @@ +import {Octokit as Core} from '@octokit/core' +import {paginateRest} from '@octokit/plugin-paginate-rest' +import {restEndpointMethods} from '@octokit/plugin-rest-endpoint-methods' +export {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods' +export {OctokitOptions} from '@octokit/core/dist-types/types' + +export const Octokit = Core.plugin(paginateRest, restEndpointMethods) diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..a3b304c --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,107 @@ +import * as core from '@actions/core' +import * as path from 'path' + +export function getInputAsArray( + name: string, + options?: core.InputOptions +): string[] { + return getStringAsArray(core.getInput(name, options)) +} + +export function getStringAsArray(str: string): string[] { + return str + .split(/[\n,]+/) + .map(s => s.trim()) + .filter(x => x !== '') +} + +export function getRepoPath(relativePath?: string): string { + let githubWorkspacePath = process.env['GITHUB_WORKSPACE'] + if (!githubWorkspacePath) { + throw new Error('GITHUB_WORKSPACE not defined') + } + githubWorkspacePath = path.resolve(githubWorkspacePath) + core.debug(`githubWorkspacePath: ${githubWorkspacePath}`) + + let repoPath = githubWorkspacePath + if (relativePath) repoPath = path.resolve(repoPath, relativePath) + + core.debug(`repoPath: ${repoPath}`) + return repoPath +} + +interface RemoteDetail { + protocol: string + repository: string +} + +export function getRemoteDetail(remoteUrl: string): RemoteDetail { + // Parse the protocol and github repository from a URL + // e.g. HTTPS, peter-evans/create-pull-request + const httpsUrlPattern = /^https:\/\/.*@?github.com\/(.+\/.+)$/i + const sshUrlPattern = /^git@github.com:(.+\/.+).git$/i + + const httpsMatch = remoteUrl.match(httpsUrlPattern) + if (httpsMatch) { + return { + protocol: 'HTTPS', + repository: httpsMatch[1] + } + } + + const sshMatch = remoteUrl.match(sshUrlPattern) + if (sshMatch) { + return { + protocol: 'SSH', + repository: sshMatch[1] + } + } + + throw new Error( + `The format of '${remoteUrl}' is not a valid GitHub repository URL` + ) +} + +export function secondsSinceEpoch(): number { + const now = new Date() + return Math.round(now.getTime() / 1000) +} + +export function randomString(): string { + return Math.random().toString(36).substr(2, 7) +} + +interface DisplayNameEmail { + name: string + email: string +} + +export function parseDisplayNameEmail( + displayNameEmail: string +): DisplayNameEmail { + // Parse the name and email address from a string in the following format + // Display Name + const pattern = /^([^<]+)\s*<([^>]+)>$/i + + // Check we have a match + const match = displayNameEmail.match(pattern) + if (!match) { + throw new Error( + `The format of '${displayNameEmail}' is not a valid email address with display name` + ) + } + + // Check that name and email are not just whitespace + const name = match[1].trim() + const email = match[2].trim() + if (!name || !email) { + throw new Error( + `The format of '${displayNameEmail}' is not a valid email address with display name` + ) + } + + return { + name: name, + email: email + } +} From 803cc5ea8aaea8e78ee69423540d925e0b5bf365 Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Thu, 16 Jul 2020 18:18:58 +0900 Subject: [PATCH 018/707] Remove python related code and artifacts --- .gitignore | 3 - dist/cpr/common.py | 48 -- dist/cpr/create_or_update_branch.py | 145 ----- dist/cpr/create_or_update_pull_request.py | 162 ----- dist/cpr/create_pull_request.py | 229 ------- dist/cpr/requirements.txt | 4 - dist/cpr/test_common.py | 69 -- dist/cpr/test_create_or_update_branch.py | 757 ---------------------- dist/vendor/Deprecated-1.2.10.tar.gz | Bin 2969723 -> 0 bytes dist/vendor/GitPython-3.1.2.tar.gz | Bin 430474 -> 0 bytes dist/vendor/PyGithub-1.51.tar.gz | Bin 141594 -> 0 bytes dist/vendor/PyJWT-1.7.1.tar.gz | Bin 41979 -> 0 bytes dist/vendor/certifi-2020.6.20.tar.gz | Bin 157997 -> 0 bytes dist/vendor/chardet-3.0.4.tar.gz | Bin 1868453 -> 0 bytes dist/vendor/gitdb-4.0.5.tar.gz | Bin 392815 -> 0 bytes dist/vendor/idna-2.9.tar.gz | Bin 175042 -> 0 bytes dist/vendor/requests-2.24.0.tar.gz | Bin 115071 -> 0 bytes dist/vendor/setuptools-46.4.0.zip | Bin 865912 -> 0 bytes dist/vendor/smmap-3.0.4.tar.gz | Bin 22459 -> 0 bytes dist/vendor/urllib3-1.25.9.tar.gz | Bin 254921 -> 0 bytes dist/vendor/wheel-0.34.2.tar.gz | Bin 58330 -> 0 bytes dist/vendor/wrapt-1.12.1.tar.gz | Bin 27488 -> 0 bytes package-lock.json | 6 +- package.json | 11 +- renovate.json | 9 - src/cpr/common.py | 48 -- src/cpr/create_or_update_branch.py | 145 ----- src/cpr/create_or_update_pull_request.py | 162 ----- src/cpr/create_pull_request.py | 229 ------- src/cpr/requirements.txt | 4 - src/cpr/test_common.py | 69 -- src/cpr/test_create_or_update_branch.py | 757 ---------------------- src/isDocker.ts | 22 - src/setupPython.ts | 50 -- 34 files changed, 9 insertions(+), 2920 deletions(-) delete mode 100644 dist/cpr/common.py delete mode 100644 dist/cpr/create_or_update_branch.py delete mode 100644 dist/cpr/create_or_update_pull_request.py delete mode 100644 dist/cpr/create_pull_request.py delete mode 100644 dist/cpr/requirements.txt delete mode 100644 dist/cpr/test_common.py delete mode 100644 dist/cpr/test_create_or_update_branch.py delete mode 100644 dist/vendor/Deprecated-1.2.10.tar.gz delete mode 100644 dist/vendor/GitPython-3.1.2.tar.gz delete mode 100644 dist/vendor/PyGithub-1.51.tar.gz delete mode 100644 dist/vendor/PyJWT-1.7.1.tar.gz delete mode 100644 dist/vendor/certifi-2020.6.20.tar.gz delete mode 100644 dist/vendor/chardet-3.0.4.tar.gz delete mode 100644 dist/vendor/gitdb-4.0.5.tar.gz delete mode 100644 dist/vendor/idna-2.9.tar.gz delete mode 100644 dist/vendor/requests-2.24.0.tar.gz delete mode 100644 dist/vendor/setuptools-46.4.0.zip delete mode 100644 dist/vendor/smmap-3.0.4.tar.gz delete mode 100644 dist/vendor/urllib3-1.25.9.tar.gz delete mode 100644 dist/vendor/wheel-0.34.2.tar.gz delete mode 100644 dist/vendor/wrapt-1.12.1.tar.gz delete mode 100644 renovate.json delete mode 100644 src/cpr/common.py delete mode 100644 src/cpr/create_or_update_branch.py delete mode 100644 src/cpr/create_or_update_pull_request.py delete mode 100755 src/cpr/create_pull_request.py delete mode 100644 src/cpr/requirements.txt delete mode 100644 src/cpr/test_common.py delete mode 100644 src/cpr/test_create_or_update_branch.py delete mode 100644 src/isDocker.ts delete mode 100644 src/setupPython.ts diff --git a/.gitignore b/.gitignore index a135bac..d352240 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -__pycache__ -.python-version - lib/ node_modules/ diff --git a/dist/cpr/common.py b/dist/cpr/common.py deleted file mode 100644 index faf0d03..0000000 --- a/dist/cpr/common.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env python3 -import random -import re -import string - - -def get_random_string(length=7, chars=string.ascii_lowercase + string.digits): - return "".join(random.choice(chars) for _ in range(length)) - - -def parse_github_repository(url): - # Parse the protocol and github repository from a URL - # e.g. HTTPS, peter-evans/create-pull-request - https_pattern = re.compile(r"^https://.*@?github.com/(.+/.+)$") - ssh_pattern = re.compile(r"^git@github.com:(.+/.+).git$") - - match = https_pattern.match(url) - if match is not None: - return "HTTPS", match.group(1) - - match = ssh_pattern.match(url) - if match is not None: - return "SSH", match.group(1) - - raise ValueError(f"The format of '{url}' is not a valid GitHub repository URL") - - -def parse_display_name_email(display_name_email): - # Parse the name and email address from a string in the following format - # Display Name - pattern = re.compile(r"^([^<]+)\s*<([^>]+)>$") - - # Check we have a match - match = pattern.match(display_name_email) - if match is None: - raise ValueError( - f"The format of '{display_name_email}' is not a valid email address with display name" - ) - - # Check that name and email are not just whitespace - name = match.group(1).strip() - email = match.group(2).strip() - if len(name) == 0 or len(email) == 0: - raise ValueError( - f"The format of '{display_name_email}' is not a valid email address with display name" - ) - - return name, email diff --git a/dist/cpr/create_or_update_branch.py b/dist/cpr/create_or_update_branch.py deleted file mode 100644 index 2cb24d1..0000000 --- a/dist/cpr/create_or_update_branch.py +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/env python3 -""" Create or Update Branch """ -import common as cmn -from git import Repo, GitCommandError -import os - - -CHERRYPICK_EMPTY = ( - "The previous cherry-pick is now empty, possibly due to conflict resolution." -) - - -def fetch_successful(repo, repo_url, branch): - try: - repo.git.fetch(repo_url, f"{branch}:refs/remotes/origin/{branch}") - except GitCommandError: - return False - return True - - -def is_ahead(repo, branch_1, branch_2): - # Return true if branch_2 is ahead of branch_1 - return ( - int(repo.git.rev_list("--right-only", "--count", f"{branch_1}...{branch_2}")) - > 0 - ) - - -def is_behind(repo, branch_1, branch_2): - # Return true if branch_2 is behind branch_1 - return ( - int(repo.git.rev_list("--left-only", "--count", f"{branch_1}...{branch_2}")) > 0 - ) - - -def is_even(repo, branch_1, branch_2): - # Return true if branch_2 is even with branch_1 - return not is_ahead(repo, branch_1, branch_2) and not is_behind( - repo, branch_1, branch_2 - ) - - -def has_diff(repo, branch_1, branch_2): - diff = repo.git.diff(f"{branch_1}..{branch_2}") - return len(diff) > 0 - - -def create_or_update_branch(repo, repo_url, commit_message, base, branch): - # Set the default return values - action = "none" - diff = False - - # Get the working base. This may or may not be the actual base. - working_base = repo.git.symbolic_ref("HEAD", "--short") - # If the base is not specified it is assumed to be the working base - if base is None: - base = working_base - - # Save the working base changes to a temporary branch - temp_branch = cmn.get_random_string(length=20) - repo.git.checkout("HEAD", b=temp_branch) - # Commit any uncomitted changes - if repo.is_dirty(untracked_files=True): - print(f"Uncommitted changes found. Adding a commit.") - repo.git.add("-A") - repo.git.commit(m=commit_message) - - # Perform fetch and reset the working base - # Commits made during the workflow will be removed - repo.git.fetch("--force", repo_url, f"{working_base}:{working_base}") - - # If the working base is not the base, rebase the temp branch commits - if working_base != base: - print( - f"Rebasing commits made to branch '{working_base}' on to base branch '{base}'" - ) - # Checkout the actual base - repo.git.fetch("--force", repo_url, f"{base}:{base}") - repo.git.checkout(base) - # Cherrypick commits from the temporary branch starting from the working base - commits = repo.git.rev_list("--reverse", f"{working_base}..{temp_branch}", ".") - for commit in commits.splitlines(): - try: - repo.git.cherry_pick( - "--strategy", - "recursive", - "--strategy-option", - "theirs", - f"{commit}", - ) - except GitCommandError as e: - if CHERRYPICK_EMPTY not in e.stderr: - print("Unexpected error: ", e) - raise - # Reset the temp branch to the working index - repo.git.checkout("-B", temp_branch, "HEAD") - # Reset the base - repo.git.fetch("--force", repo_url, f"{base}:{base}") - - # Try to fetch the pull request branch - if not fetch_successful(repo, repo_url, branch): - # The pull request branch does not exist - print(f"Pull request branch '{branch}' does not exist yet") - # Create the pull request branch - repo.git.checkout("HEAD", b=branch) - # Check if the pull request branch is ahead of the base - diff = is_ahead(repo, base, branch) - if diff: - action = "created" - print(f"Created branch '{branch}'") - else: - print( - f"Branch '{branch}' is not ahead of base '{base}' and will not be created" - ) - else: - # The pull request branch exists - print( - f"Pull request branch '{branch}' already exists as remote branch 'origin/{branch}'" - ) - # Checkout the pull request branch - repo.git.checkout(branch) - - if has_diff(repo, branch, temp_branch): - # If the branch differs from the recreated temp version then the branch is reset - # For changes on base this action is similar to a rebase of the pull request branch - print(f"Resetting '{branch}'") - repo.git.checkout("-B", branch, temp_branch) - # repo.git.switch("-C", branch, temp_branch) - - # Check if the pull request branch has been updated - # If the branch was reset or updated it will be ahead - # It may be behind if a reset now results in no diff with the base - if not is_even(repo, f"origin/{branch}", branch): - action = "updated" - print(f"Updated branch '{branch}'") - else: - print(f"Branch '{branch}' is even with its remote and will not be updated") - - # Check if the pull request branch is ahead of the base - diff = is_ahead(repo, base, branch) - - # Delete the temporary branch - repo.git.branch("--delete", "--force", temp_branch) - - return {"action": action, "diff": diff, "base": base} diff --git a/dist/cpr/create_or_update_pull_request.py b/dist/cpr/create_or_update_pull_request.py deleted file mode 100644 index a34b090..0000000 --- a/dist/cpr/create_or_update_pull_request.py +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env python3 -""" Create or Update Pull Request """ -from github import Github, GithubException -import os - - -def string_to_bool(str): - if str is None: - return False - else: - return str.lower() in [ - "true", - "1", - "t", - "y", - "yes", - "on", - ] - - -def cs_string_to_list(str): - # Split the comma separated string into a list - l = [i.strip() for i in str.split(",")] - # Remove empty strings - return list(filter(None, l)) - - -def create_project_card(github_repo, project_name, project_column_name, pull_request): - # Locate the project by name - project = None - for project_item in github_repo.get_projects("all"): - if project_item.name == project_name: - project = project_item - break - - if not project: - print("::error::Project not found. Unable to create project card.") - return - - # Locate the column by name - column = None - for column_item in project.get_columns(): - if column_item.name == project_column_name: - column = column_item - break - - if not column: - print("::error::Project column not found. Unable to create project card.") - return - - # Create a project card for the pull request - column.create_card(content_id=pull_request.id, content_type="PullRequest") - print( - "Added pull request #%d to project '%s' under column '%s'" - % (pull_request.number, project.name, column.name) - ) - - -def create_or_update_pull_request( - github_token, - github_repository, - branch, - base, - title, - body, - labels, - assignees, - milestone, - reviewers, - team_reviewers, - project_name, - project_column_name, - draft, - request_to_parent, -): - github_repo = head_repo = Github(github_token).get_repo(github_repository) - if string_to_bool(request_to_parent): - github_repo = github_repo.parent - if github_repo is None: - raise ValueError( - "The checked out repository is not a fork. Input 'request-to-parent' should be set to false." - ) - - head_branch = f"{head_repo.owner.login}:{branch}" - - # Create the pull request - try: - pull_request = github_repo.create_pull( - title=title, - body=body, - base=base, - head=head_branch, - draft=string_to_bool(draft), - ) - print( - f"Created pull request #{pull_request.number} ({head_branch} => {github_repo.owner.login}:{base})" - ) - except GithubException as e: - if e.status == 422: - # A pull request exists for this branch and base - # Get the pull request - pull_request = github_repo.get_pulls( - state="open", base=base, head=head_branch - )[0] - # Update title and body - pull_request.as_issue().edit(title=title, body=body) - print( - f"Updated pull request #{pull_request.number} ({head_branch} => {github_repo.owner.login}:{base})" - ) - else: - print(str(e)) - raise - - # Set the output variables - os.system(f"echo ::set-env name=PULL_REQUEST_NUMBER::{pull_request.number}") - os.system(f"echo ::set-output name=pull-request-number::{pull_request.number}") - # 'pr_number' is deprecated - os.system(f"echo ::set-output name=pr_number::{pull_request.number}") - - # Set labels, assignees and milestone - if labels is not None: - print(f"Applying labels '{labels}'") - pull_request.as_issue().edit(labels=cs_string_to_list(labels)) - if assignees is not None: - print(f"Applying assignees '{assignees}'") - pull_request.as_issue().edit(assignees=cs_string_to_list(assignees)) - if milestone is not None: - print(f"Applying milestone '{milestone}'") - milestone = github_repo.get_milestone(int(milestone)) - pull_request.as_issue().edit(milestone=milestone) - - # Set pull request reviewers - if reviewers is not None: - print(f"Requesting reviewers '{reviewers}'") - try: - pull_request.create_review_request(reviewers=cs_string_to_list(reviewers)) - except GithubException as e: - # Likely caused by "Review cannot be requested from pull request author." - if e.status == 422: - print("Request reviewers failed - {}".format(e.data["message"])) - - # Set pull request team reviewers - if team_reviewers is not None: - print(f"Requesting team reviewers '{team_reviewers}'") - pull_request.create_review_request( - team_reviewers=cs_string_to_list(team_reviewers) - ) - - # Create a project card for the pull request - if project_name is not None and project_column_name is not None: - try: - create_project_card( - github_repo, project_name, project_column_name, pull_request - ) - except GithubException as e: - # Likely caused by "Project already has the associated issue." - if e.status == 422: - print( - "Create project card failed - {}".format( - e.data["errors"][0]["message"] - ) - ) diff --git a/dist/cpr/create_pull_request.py b/dist/cpr/create_pull_request.py deleted file mode 100644 index ead7f02..0000000 --- a/dist/cpr/create_pull_request.py +++ /dev/null @@ -1,229 +0,0 @@ -#!/usr/bin/env python3 -""" Create Pull Request """ -import base64 -import common as cmn -import create_or_update_branch as coub -import create_or_update_pull_request as coupr -from git import Repo, GitCommandError -import json -import os -import sys -import time - - -# Default the committer and author to the GitHub Actions bot -DEFAULT_COMMITTER = "GitHub " -DEFAULT_AUTHOR = ( - "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" -) -DEFAULT_COMMIT_MESSAGE = "[create-pull-request] automated change" -DEFAULT_TITLE = "Changes by create-pull-request action" -DEFAULT_BODY = ( - "Automated changes by " - + "[create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action" -) -DEFAULT_BRANCH = "create-pull-request/patch" - - -def get_git_config_value(repo, name): - try: - return repo.git.config("--get", name) - except GitCommandError: - return None - - -def get_repository_detail(repo): - remote_origin_url = get_git_config_value(repo, "remote.origin.url") - if remote_origin_url is None: - raise ValueError("Failed to fetch 'remote.origin.url' from git config") - protocol, github_repository = cmn.parse_github_repository(remote_origin_url) - return remote_origin_url, protocol, github_repository - - -def git_user_config_is_set(repo): - name = get_git_config_value(repo, "user.name") - email = get_git_config_value(repo, "user.email") - - if name is not None and email is not None: - print(f"Git user already configured as '{name} <{email}>'") - return True - - committer_name = get_git_config_value(repo, "committer.name") - committer_email = get_git_config_value(repo, "committer.email") - author_name = get_git_config_value(repo, "author.name") - author_email = get_git_config_value(repo, "author.email") - - if ( - committer_name is not None - and committer_email is not None - and author_name is not None - and author_email is not None - ): - print( - f"Git committer already configured as '{committer_name} <{committer_email}>'" - ) - print(f"Git author already configured as '{author_name} <{author_email}>'") - return True - - return False - - -def set_committer_author(repo, committer, author): - # If either committer or author is supplied they will be cross used - if committer is None and author is not None: - print("Supplied author will also be used as the committer.") - committer = author - if author is None and committer is not None: - print("Supplied committer will also be used as the author.") - author = committer - - # If no committer/author has been supplied but user configuration already - # exists in git config we can exit and use the existing config as-is. - if committer is None and author is None: - if git_user_config_is_set(repo): - return - - # Set defaults if no committer/author has been supplied - if committer is None and author is None: - committer = DEFAULT_COMMITTER - author = DEFAULT_AUTHOR - - # Set git environment. This will not persist after the action completes. - committer_name, committer_email = cmn.parse_display_name_email(committer) - author_name, author_email = cmn.parse_display_name_email(author) - repo.git.update_environment( - GIT_COMMITTER_NAME=committer_name, - GIT_COMMITTER_EMAIL=committer_email, - GIT_AUTHOR_NAME=author_name, - GIT_AUTHOR_EMAIL=author_email, - ) - print(f"Configured git committer as '{committer_name} <{committer_email}>'") - print(f"Configured git author as '{author_name} <{author_email}>'") - - -# Get required environment variables -github_token = os.environ["GITHUB_TOKEN"] -# Get environment variables with defaults -path = os.getenv("CPR_PATH", os.getcwd()) -branch = os.getenv("CPR_BRANCH", DEFAULT_BRANCH) -commit_message = os.getenv("CPR_COMMIT_MESSAGE", DEFAULT_COMMIT_MESSAGE) -# Get environment variables with a default of 'None' -committer = os.environ.get("CPR_COMMITTER") -author = os.environ.get("CPR_AUTHOR") -base = os.environ.get("CPR_BASE") - -# Set the repo path -repo = Repo(path) - -# Determine the GitHub repository from git config -# This will be the target repository for the pull request -repo_url, protocol, github_repository = get_repository_detail(repo) -print(f"Target repository set to {github_repository}") - -if protocol == "HTTPS": - print(f"::debug::Using HTTPS protocol") - # Encode and configure the basic credential for HTTPS access - basic_credential = base64.b64encode( - f"x-access-token:{github_token}".encode("utf-8") - ).decode("utf-8") - # Mask the basic credential in logs and debug output - print(f"::add-mask::{basic_credential}") - repo.git.set_persistent_git_options( - c=f"http.https://github.com/.extraheader=AUTHORIZATION: basic {basic_credential}" - ) - -# Determine if the checked out ref is a valid base for a pull request -# The action needs the checked out HEAD ref to be a branch -# This check will fail in the following cases: -# - HEAD is detached -# - HEAD is a merge commit (pull_request events) -# - HEAD is a tag -try: - working_base = repo.git.symbolic_ref("HEAD", "--short") -except GitCommandError as e: - print(f"::debug::{e.stderr}") - print( - f"::error::The checked out ref is not a valid base for a pull request. " - + "Unable to continue. Exiting." - ) - sys.exit(1) - -# Exit if the working base is a PR branch created by this action. -# This may occur when using a PAT instead of GITHUB_TOKEN because -# a PAT allows workflow actions to trigger further events. -if working_base.startswith(branch): - print( - f"::error::Working base branch '{working_base}' was created by this action. " - + "Unable to continue. Exiting." - ) - sys.exit(1) - -# Fetch an optional environment variable to determine the branch suffix -branch_suffix = os.environ.get("CPR_BRANCH_SUFFIX") -if branch_suffix is not None: - if branch_suffix == "short-commit-hash": - # Suffix with the short SHA1 hash - branch = "{}-{}".format(branch, repo.git.rev_parse("--short", "HEAD")) - elif branch_suffix == "timestamp": - # Suffix with the current timestamp - branch = "{}-{}".format(branch, int(time.time())) - elif branch_suffix == "random": - # Suffix with a 7 character random string - branch = "{}-{}".format(branch, cmn.get_random_string()) - else: - print( - f"::error::Branch suffix '{branch_suffix}' is not a valid value. " - + "Unable to continue. Exiting." - ) - sys.exit(1) - -# Output head branch -print(f"Pull request branch to create or update set to '{branch}'") - -# Set the committer and author -try: - set_committer_author(repo, committer, author) -except ValueError as e: - print(f"::error::{e} " + "Unable to continue. Exiting.") - sys.exit(1) - -# Create or update the pull request branch -result = coub.create_or_update_branch(repo, repo_url, commit_message, base, branch) - -if result["action"] in ["created", "updated"]: - # The branch was created or updated - print(f"Pushing pull request branch to 'origin/{branch}'") - repo.git.push("--force", repo_url, f"HEAD:refs/heads/{branch}") - - # Set the base. It would have been 'None' if not specified as an input - base = result["base"] - - # If there is no longer a diff with the base delete the branch and exit - if not result["diff"]: - print(f"Branch '{branch}' no longer differs from base branch '{base}'") - print(f"Closing pull request and deleting branch '{branch}'") - repo.git.push("--delete", "--force", repo_url, f"refs/heads/{branch}") - sys.exit() - - # Fetch optional environment variables with default values - title = os.getenv("CPR_TITLE", DEFAULT_TITLE) - body = os.getenv("CPR_BODY", DEFAULT_BODY) - - # Create or update the pull request - coupr.create_or_update_pull_request( - github_token, - github_repository, - branch, - base, - title, - body, - os.environ.get("CPR_LABELS"), - os.environ.get("CPR_ASSIGNEES"), - os.environ.get("CPR_MILESTONE"), - os.environ.get("CPR_REVIEWERS"), - os.environ.get("CPR_TEAM_REVIEWERS"), - os.environ.get("CPR_PROJECT_NAME"), - os.environ.get("CPR_PROJECT_COLUMN_NAME"), - os.environ.get("CPR_DRAFT"), - os.environ.get("CPR_REQUEST_TO_PARENT"), - ) diff --git a/dist/cpr/requirements.txt b/dist/cpr/requirements.txt deleted file mode 100644 index 5afd424..0000000 --- a/dist/cpr/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -setuptools==46.4.0 -wheel==0.34.2 -GitPython==3.1.2 -PyGithub==1.51 diff --git a/dist/cpr/test_common.py b/dist/cpr/test_common.py deleted file mode 100644 index 9409258..0000000 --- a/dist/cpr/test_common.py +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env python3 -""" Test Common """ -import common as cmn -import pytest - - -def test_get_random_string(): - assert len(cmn.get_random_string()) == 7 - assert len(cmn.get_random_string(length=20)) == 20 - - -def test_parse_github_repository_success(): - protocol, repository = cmn.parse_github_repository( - "https://github.com/peter-evans/create-pull-request" - ) - assert protocol == "HTTPS" - assert repository == "peter-evans/create-pull-request" - - protocol, repository = cmn.parse_github_repository( - "https://xxx:x-oauth-basic@github.com/peter-evans/create-pull-request" - ) - assert protocol == "HTTPS" - assert repository == "peter-evans/create-pull-request" - - protocol, repository = cmn.parse_github_repository( - "git@github.com:peter-evans/create-pull-request.git" - ) - assert protocol == "SSH" - assert repository == "peter-evans/create-pull-request" - - -def test_parse_github_repository_failure(): - url = "https://github.com/peter-evans" - with pytest.raises(ValueError) as e_info: - cmn.parse_github_repository(url) - assert ( - e_info.value.args[0] - == f"The format of '{url}' is not a valid GitHub repository URL" - ) - - -def test_parse_display_name_email_success(): - name, email = cmn.parse_display_name_email("abc def ") - assert name == "abc def" - assert email == "abc@def.com" - - name, email = cmn.parse_display_name_email( - "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" - ) - assert name == "github-actions[bot]" - assert email == "41898282+github-actions[bot]@users.noreply.github.com" - - -def test_parse_display_name_email_failure(): - display_name_email = "abc@def.com" - with pytest.raises(ValueError) as e_info: - cmn.parse_display_name_email(display_name_email) - assert ( - e_info.value.args[0] - == f"The format of '{display_name_email}' is not a valid email address with display name" - ) - - display_name_email = " < >" - with pytest.raises(ValueError) as e_info: - cmn.parse_display_name_email(display_name_email) - assert ( - e_info.value.args[0] - == f"The format of '{display_name_email}' is not a valid email address with display name" - ) diff --git a/dist/cpr/test_create_or_update_branch.py b/dist/cpr/test_create_or_update_branch.py deleted file mode 100644 index a0f400c..0000000 --- a/dist/cpr/test_create_or_update_branch.py +++ /dev/null @@ -1,757 +0,0 @@ -#!/usr/bin/env python3 -""" Test Create or Update Branch """ -import create_or_update_branch as coub -from git import Repo -import os -import pytest -import sys -import time - - -# Set git repo -REPO_PATH = os.getenv("COUB_REPO_PATH", os.getcwd()) -repo = Repo(REPO_PATH) - -# Set git environment -author_name = "github-actions[bot]" -author_email = "41898282+github-actions[bot]@users.noreply.github.com" -committer_name = "GitHub" -committer_email = "noreply@github.com" -repo.git.update_environment( - GIT_AUTHOR_NAME=author_name, - GIT_AUTHOR_EMAIL=author_email, - GIT_COMMITTER_NAME=committer_name, - GIT_COMMITTER_EMAIL=committer_email, -) - -REPO_URL = repo.git.config("--get", "remote.origin.url") - -TRACKED_FILE = "tracked-file.txt" -UNTRACKED_FILE = "untracked-file.txt" - -DEFAULT_BRANCH = "tests/master" -NOT_BASE_BRANCH = "tests/branch-that-is-not-the-base" -NOT_EXIST_BRANCH = "tests/branch-that-does-not-exist" - -COMMIT_MESSAGE = "[create-pull-request] automated change" -BRANCH = "tests/create-pull-request/patch" -BASE = DEFAULT_BRANCH - - -def create_tracked_change(content=None): - if content is None: - content = str(time.time()) - # Create a tracked file change - with open(os.path.join(REPO_PATH, TRACKED_FILE), "w") as f: - f.write(content) - return content - - -def create_untracked_change(content=None): - if content is None: - content = str(time.time()) - # Create an untracked file change - with open(os.path.join(REPO_PATH, UNTRACKED_FILE), "w") as f: - f.write(content) - return content - - -def get_tracked_content(): - # Read the content of the tracked file - with open(os.path.join(REPO_PATH, TRACKED_FILE), "r") as f: - return f.read() - - -def get_untracked_content(): - # Read the content of the untracked file - with open(os.path.join(REPO_PATH, UNTRACKED_FILE), "r") as f: - return f.read() - - -def create_changes(tracked_content=None, untracked_content=None): - tracked_content = create_tracked_change(tracked_content) - untracked_content = create_untracked_change(untracked_content) - return tracked_content, untracked_content - - -def create_commits(number=2, final_tracked_content=None, final_untracked_content=None): - for i in range(number): - commit_number = i + 1 - if commit_number == number: - tracked_content, untracked_content = create_changes( - final_tracked_content, final_untracked_content - ) - else: - tracked_content, untracked_content = create_changes() - repo.git.add("-A") - repo.git.commit(m=f"Commit {commit_number}") - return tracked_content, untracked_content - - -@pytest.fixture(scope="module", autouse=True) -def before_after_all(): - print("Before all tests") - # Check there are no local changes that might be - # destroyed by running these tests - assert not repo.is_dirty(untracked_files=True) - - # Create a new default branch for the test run - repo.remotes.origin.fetch() - repo.git.checkout("master") - repo.git.checkout("HEAD", b=NOT_BASE_BRANCH) - create_tracked_change() - repo.git.add("-A") - repo.git.commit(m="This commit should not appear in pr branches") - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{NOT_BASE_BRANCH}") - # Create a new default branch for the test run - repo.git.checkout("master") - repo.git.checkout("HEAD", b=DEFAULT_BRANCH) - create_tracked_change() - repo.git.add("-A") - repo.git.commit(m="Add file to be a tracked file for tests") - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{DEFAULT_BRANCH}") - - yield - - print("After all tests") - repo.git.checkout("master") - # Delete the "not base branch" created for the test run - repo.git.branch("--delete", "--force", NOT_BASE_BRANCH) - repo.git.push("--delete", "--force", REPO_URL, f"refs/heads/{NOT_BASE_BRANCH}") - # Delete the default branch created for the test run - repo.git.branch("--delete", "--force", DEFAULT_BRANCH) - repo.git.push("--delete", "--force", REPO_URL, f"refs/heads/{DEFAULT_BRANCH}") - - -def before_test(): - print("Before test") - # Checkout the default branch - repo.git.checkout(DEFAULT_BRANCH) - - -def after_test(delete_remote=True): - print("After test") - # Output git log - print(repo.git.log("-5", pretty="oneline")) - # Delete the pull request branch if it exists - repo.git.checkout(DEFAULT_BRANCH) - print(f"Deleting {BRANCH}") - for branch in repo.branches: - if branch.name == BRANCH: - repo.git.branch("--delete", "--force", BRANCH) - break - if delete_remote: - print(f"Deleting origin/{BRANCH}") - for ref in repo.remotes.origin.refs: - if ref.name == f"origin/{BRANCH}": - repo.git.push("--delete", "--force", REPO_URL, f"refs/heads/{BRANCH}") - repo.remotes.origin.fetch("--prune") - break - - -@pytest.fixture(autouse=True) -def before_after_tests(): - before_test() - yield - after_test() - - -# Tests if a branch exists and can be fetched -def coub_fetch_successful(): - assert coub.fetch_successful(repo, REPO_URL, NOT_BASE_BRANCH) - assert not coub.fetch_successful(repo, REPO_URL, NOT_EXIST_BRANCH) - - -# Tests no changes resulting in no new branch being created -def coub_no_changes_on_create(): - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "none" - - -# Tests create and update with a tracked file change -def coub_tracked_changes(): - # Create a tracked file change - tracked_content = create_tracked_change() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create a tracked file change - tracked_content = create_tracked_change() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - - -# Tests create and update with an untracked file change -def coub_untracked_changes(): - # Create an untracked file change - untracked_content = create_untracked_change() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "created" - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create an untracked file change - untracked_content = create_untracked_change() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_untracked_content() == untracked_content - - -# Tests create and update with identical changes -# The pull request branch will not be updated -def coub_identical_changes(): - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create identical tracked and untracked file changes - create_changes(tracked_content, untracked_content) - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "none" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Tests create and update with commits on the base inbetween -def coub_commits_on_base(): - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create commits on the base - create_commits() - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{DEFAULT_BRANCH}") - repo.remotes.origin.fetch() - - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Tests create and then an update with no changes -# This effectively reverts the branch back to match the base and results in no diff -def coub_changes_no_diff(): - # Save the default branch tracked content - default_tracked_content = get_tracked_content() - - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Running with no update effectively reverts the branch back to match the base - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "updated" - assert result["diff"] == False - assert get_tracked_content() == default_tracked_content - - -# Tests create and update with commits on the base inbetween -# The changes on base effectively revert the branch back to match the base and results in no diff -def coub_commits_on_base_no_diff(): - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create commits on the base - tracked_content, untracked_content = create_commits() - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{DEFAULT_BRANCH}") - repo.remotes.origin.fetch() - - # Create the same tracked and untracked file changes that were made to the base - create_changes(tracked_content, untracked_content) - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "updated" - assert result["diff"] == False - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Tests create and update with commits on the working base (during the workflow) -def coub_commits_on_working_base(): - # Create commits on the working base - tracked_content, untracked_content = create_commits() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create commits on the working base - tracked_content, untracked_content = create_commits() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Tests create and update with changes and commits on the working base (during the workflow) -def coub_changes_and_commits_on_working_base(): - # Create commits on the working base - create_commits() - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create commits on the working base - create_commits() - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Tests create and update with changes and commits on the working base (during the workflow) -# with commits on the base inbetween -def coub_changes_and_commits_on_base_and_working_base(): - # Create commits on the working base - create_commits() - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create commits on the base - create_commits() - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{DEFAULT_BRANCH}") - repo.remotes.origin.fetch() - - # Create commits on the working base - create_commits() - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, None, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Working Base is Not Base (WBNB) -# Tests no changes resulting in no new branch being created -def coub_wbnb_no_changes_on_create(): - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "none" - - -# Working Base is Not Base (WBNB) -# Tests create and update with a tracked file change -def coub_wbnb_tracked_changes(): - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create a tracked file change - tracked_content = create_tracked_change() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create a tracked file change - tracked_content = create_tracked_change() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - - -# Working Base is Not Base (WBNB) -# Tests create and update with an untracked file change -def coub_wbnb_untracked_changes(): - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create an untracked file change - untracked_content = create_untracked_change() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "created" - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create an untracked file change - untracked_content = create_untracked_change() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_untracked_content() == untracked_content - - -# Working Base is Not Base (WBNB) -# Tests create and update with identical changes -# The pull request branch will not be updated -def coub_wbnb_identical_changes(): - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create identical tracked and untracked file changes - create_changes(tracked_content, untracked_content) - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "none" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Working Base is Not Base (WBNB) -# Tests create and update with commits on the base inbetween -def coub_wbnb_commits_on_base(): - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create commits on the base - create_commits() - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{DEFAULT_BRANCH}") - repo.remotes.origin.fetch() - - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Working Base is Not Base (WBNB) -# Tests create and then an update with no changes -# This effectively reverts the branch back to match the base and results in no diff -def coub_wbnb_changes_no_diff(): - # Save the default branch tracked content - default_tracked_content = get_tracked_content() - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Running with no update effectively reverts the branch back to match the base - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "updated" - assert result["diff"] == False - assert get_tracked_content() == default_tracked_content - - -# Working Base is Not Base (WBNB) -# Tests create and update with commits on the base inbetween -# The changes on base effectively revert the branch back to match the base and results in no diff -# This scenario will cause cherrypick to fail due to an empty commit. -# The commit is empty because the changes now exist on the base. -def coub_wbnb_commits_on_base_no_diff(): - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create commits on the base - tracked_content, untracked_content = create_commits() - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{DEFAULT_BRANCH}") - repo.remotes.origin.fetch() - - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create the same tracked and untracked file changes that were made to the base - create_changes(tracked_content, untracked_content) - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "updated" - assert result["diff"] == False - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Working Base is Not Base (WBNB) -# Tests create and update with commits on the working base (during the workflow) -def coub_wbnb_commits_on_working_base(): - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create commits on the working base - tracked_content, untracked_content = create_commits() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create commits on the working base - tracked_content, untracked_content = create_commits() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Working Base is Not Base (WBNB) -# Tests create and update with changes and commits on the working base (during the workflow) -def coub_wbnb_changes_and_commits_on_working_base(): - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create commits on the working base - create_commits() - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create commits on the working base - create_commits() - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# Working Base is Not Base (WBNB) -# Tests create and update with changes and commits on the working base (during the workflow) -# with commits on the base inbetween -def coub_wbnb_changes_and_commits_on_base_and_working_base(): - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create commits on the working base - create_commits() - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "created" - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - # Push pull request branch to remote - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{BRANCH}") - repo.remotes.origin.fetch() - - after_test(delete_remote=False) - before_test() - - # Create commits on the base - create_commits() - repo.git.push("--force", REPO_URL, f"HEAD:refs/heads/{DEFAULT_BRANCH}") - repo.remotes.origin.fetch() - - # Set the working base to a branch that is not the pull request base - repo.git.checkout(NOT_BASE_BRANCH) - # Create commits on the working base - create_commits() - # Create tracked and untracked file changes - tracked_content, untracked_content = create_changes() - result = coub.create_or_update_branch(repo, REPO_URL, COMMIT_MESSAGE, BASE, BRANCH) - assert result["action"] == "updated" - assert result["diff"] - assert get_tracked_content() == tracked_content - assert get_untracked_content() == untracked_content - - -# pytest -v -s ~/git/create-pull-request/src - -test_coub_fetch_successful = coub_fetch_successful - -test_coub_no_changes_on_create = coub_no_changes_on_create -test_coub_tracked_changes = coub_tracked_changes -test_coub_untracked_changes = coub_untracked_changes -test_coub_identical_changes = coub_identical_changes -test_coub_commits_on_base = coub_commits_on_base - -test_coub_changes_no_diff = coub_changes_no_diff -test_coub_commits_on_base_no_diff = coub_commits_on_base_no_diff - -test_coub_commits_on_working_base = coub_commits_on_working_base -test_coub_changes_and_commits_on_working_base = coub_changes_and_commits_on_working_base -test_coub_changes_and_commits_on_base_and_working_base = ( - coub_changes_and_commits_on_base_and_working_base -) - -# WBNB -test_coub_wbnb_no_changes_on_create = coub_wbnb_no_changes_on_create -test_coub_wbnb_tracked_changes = coub_wbnb_tracked_changes -test_coub_wbnb_untracked_changes = coub_wbnb_untracked_changes -test_coub_wbnb_identical_changes = coub_wbnb_identical_changes -test_coub_wbnb_commits_on_base = coub_wbnb_commits_on_base - -test_coub_wbnb_changes_no_diff = coub_wbnb_changes_no_diff -test_coub_wbnb_commits_on_base_no_diff = coub_wbnb_commits_on_base_no_diff - -test_coub_wbnb_commits_on_working_base = coub_wbnb_commits_on_working_base -test_coub_wbnb_changes_and_commits_on_working_base = ( - coub_wbnb_changes_and_commits_on_working_base -) -test_coub_wbnb_changes_and_commits_on_base_and_working_base = ( - coub_wbnb_changes_and_commits_on_base_and_working_base -) diff --git a/dist/vendor/Deprecated-1.2.10.tar.gz b/dist/vendor/Deprecated-1.2.10.tar.gz deleted file mode 100644 index 77715a55093ba25af6700bea884a24adbb83b6ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2969723 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 z%0DnXUUNeVR2Ar7NdqZ2G_xx74QL8@X+t_8R@_9)Sq&Cl|lia^JFY7)F9qU>vd0`o6^5XAD?q z>flNYIXTX`@W*3oWCh-fgCNghb{&JB(?4Gf6Qhw~&i0tFgFpI{797GD?_$hj<>BeXG7DLLteMo@iVwT*QX!hOiFWf9GEmMUek*0%twTGS- zxR<|QnRWG{)XA8fT!ImzOg+SWn1$f8Tec)UHQLY7g!erb@(tns`?7#g~Ahegb`YQg@ z8^Wzgs6ZwT-b{5d(Av-dD0@#6TFI$eWAgTmu&cupZ3e;t^v+kTI3j^YHS_& z&XLqW>>aiRm(k+omOT(wsY7!D1t~nGUNwO`9mvB0AX%S@(3zU)&IRY!Q`S-_z~sAF z?X_|Rc3XV=GNbNQ{YdNDv7$dgJqYS{tieax>7@nI;{DXAGGX^WZW=Wqzx{wTmbC+! z=v?G1oSK%N(YjG$_y$O0!xum$*`1xD5)tTz5$Cj4o;m+DvW40fVTOt}la@qQfRW$F z3;W>D4Z9V;p=0_S3JiwP*fL3tc{*r5I0kCcOlB1`4`JViIR4LpT79*~E9QON$=(X5~&OgO|8$i3T{^1iQco{lrpR@y6%LOAY;`f^Nc@YK3*D$dNm z;H^k^iKMZbexYG7g=9A^)}1nq^n{qQs~}(q|Kwg?-{%MPePWxSd{{31&JeQK==o$q zpwJ@IGOchcoyHZmG1qc3(U~sqwv8a zgT|6$Fr*(ez>ix=lH zDJGTYBF0rfklkKmRGL#_{VftQx%B%6Lypmp@(_M3sOXPLa9cKtt$AWYo(F$=U=NcV zYSAbZGx`@T0p%Zh5K4lK!~PmVzfsaH zzfC`%ug#1~7Y~%HN}ee2vO!rPH_2t(8mw8ODRs$M^51z%3ou zLN_Y_@S^UV0t_xje8GHeReT5GbB$dk_hFXMx^|ZAv=;_=?bz?-9yh`)P_c1>H=0!Y@=^ zt{M6uDyxCwauw6}w8Xp!Bm%bAm4!--g;W8+ydWZutMB-0!JLVTw$95`e`UarF2`~s zEqr91WR#QTmsB1u8GQ`h6IkJs^-_VjQe-{A%RiqrdzqP>fV+Pe^Ghx+B(P(INLpaZ zP5j%p;q9rdIhPg5;bJaM$R21^%ssrGaXDPRCnwl&v1q@YcwlD++om>LdCxQ_Z~^EA_!@*@9`~$f2ggF*x4< zO(Y^V-==~jrtFuPTNo2Pv*YrrSn$ZHl6zuCkL@;$`aU28e`O!n^n`DoLtXCN#d}F9 z^O(l69Z3h?Zg5%q8k}3v*2+}XLr~ZBUG%jCQP_HmO|_~b@3wS^8>I{+jelv-JHcOC zPHdgL%Oy;(^5T?rdpS*nR~b>5##xL5sKGk*HtUPPE$I#~endRHSl`~9L2g1$<#u`Q4h=wBGgDLvOcmw*0WXLj6%mmkWgjK>HAD zBOa07ZErik7)}?P#17%}q#jyABP~8?!}VQuzH(gB-%`MDSvF!H(C;(+nYLv@OzPN> zZv;{R-lU`#Gwvow>My#^g?=gyaAC3KS&4<}TTf=0=O-A9uD@fLsG5`O@TNN2%O!*S zAy_gr?#0#pWX3qb?pk;A#E^x&;vu(${7c%N1Pm_-E?DPwkhQ#of=}LByZ4D;-VTlA zbm2Dysi)=1tO;TIM&QgZ3i9~q>B)wp)C5!-Qu0+PnF?QnanlTQzo)#X^#&80qV+Z}wD^VwFX8z3_hnI$-ad%!LM77pe6lU`p*uR3k zFhp8hvtOPcs%<~t9xiP^-yaCd2P<7duA($5QDP`AwB#R`2+K&e04RnD>KOw2XferR z8Io6@@7PZOgUhh`5LN`UNs?fS`*8((MS^O+YCI4ey7aqZx-{gqZ*FJdwaLn41jZDgx&AQ&*J_zVLzCuq0i#y>CU$4j zby8xr%{17az#6^!i6kqC9%UaHR^ETUO%kc?A>0&m?|V-#6Eb2|VBL$XeM)1D zUhoGEQe68sYbu^+*B!iTrmP{b|r@WIKI|D&oNM<1-^2jgCV4&}M$` zk|3`Sggb8vu$lq9w-pN77JL&9Y=Ei55G%w}&W}U#~0XU@g9wTMK z5^6Hn%?+W=09dD!({u~HjE|~w8ATqO>9lufOpk+v%{x!O^#Lhc!Rz0l_S#zuS#)$B zl6P4V?XYNTQ9z^lIKW!K8&Fn(ZrN`;+nV-Q#@uaG`XyJ~n%`dsY73fx%wF{|28Mvw>8$5{?fLuQso@bne zS*x6e4XDhu*?r*>2GD@VtGBR`CgvpD|It?Z!zL#*Yw1yA1U%0-ShX#7`hCQ&tWb1m zw!aXT;_*d<6|GL7cAwCoaDp^72s~|!byR8fs>XSyNn|Jb_auLh7(cv@;SWMcsb3b; zenrN3s(mz6gJ?!|^<`tHtI27!L2R$x=)Tdbw}8q0?dtp0_XSIpO|KWr&IilRuibLB zP7`#Qmm8Ff@%Et?3I^7zH{OnnrJ*j%d8M4W#)Sve#Cs(vNN#5vi;f)ec>5gadRYWB zt!9)GuI3hZR14V}-xO}sXT@6Jz{Q8E)wArUul?|Ko;!u&4aFp`*1Qfz(|*ttWXyTx z5PhX~tF+|dOa&2r=R$h&>6jqDd zQJKB3X~t61>}Y(ug@1KwCcJ=8p2!hL{CGl4FAi1>Xh!)Bds;pD0Z4%oD@5Hu^w50CCN&vq42qkU~`z6IZ5R&!i((*mXO3pEfXasYV zgc;e^n_=K0mQ>-zxu7e4M3b?GwtTUrdW@laSH6(#{_|+5Zdn2^URnkASt5Isstz2Y zK#%7Wm})H>>+$B;V$ea}nX!A31r^>WZ^`|(2cplS<+)jnGk9V?kA^PmjdQ1aC7@RX z_ipLK$nkwdFj$>Fk9=8Z(W(=53~kIfHXiYe4cvUZXzen0wYlk!K4wB=EytT?Svr6es4?Y;NPh z_b(|Ul!hUF!3+7~Cs#p5?uGfT{L+o|PO*fJ-jKkjBa}tPj}CdN=+a)}#9cmD_6j*H z*A#j6g_=D=E=3Wi8@&?4^NgZUB#gX(ZbK zejq0gyJbyYZN6Z$bZepDb-P*2s08<~V|WLGa39C|$)$!Mp!krA?4@O4B_+IHoP&q( z+;mViV=*KItX%jP(SKt0^90&B2aCKNx;$&MT16%T&Y{k8sAIKcxd&KHGzNYcX>#Uq zWGF`yrwOBuR0VB&vG+Y?u><5qlswP{m99$;1{dyfT5t07ahfeIstzg3_~2b>|>$SSL(MoiW$nE&D&E0laSLT;9~_aihv z5=GktC$iSpj)c&lYtJAR_sP=uW$1gklgfppVUD%MJRKV5?WLmI5dpfjZvt^A9sYQ- zj8kl$`iH!uVJLl?gvhkbk*okA(BF(Ole9of#Pj1$M)X5YUhmQoGgBDK#W4*l6c@CG8AS?cn$M4*+Z(;}dma2NXW)hnNSE~EZH z8V^r`N)~fqFu@)Xzl)pa+2LmYynXj-EM%81o5%aj%fSh=ix{y~Fl9(W`BU5|+OEZ;;a@@YgGbF8547R-? zr6<@sRHV?0BL@ zl>uOI5Z*+1F%;&Xh`x4U&GpA~VGpV*ExPxXZ7kIGTiD%OCfRm9QAAyo^kq{LW)d{j znwc_dAF-E3z}Fcl>lXu2O&^f|ftJbTHu63ee9>lfzsOGi6FccIJnXz5>Wew^#ScoU z9sdVhJNm2LG4W3uwfSlSO5krg7W4E!y;#jQ(@->jXToO9{JS@W8tIF_bvy%=4Ek4o z>j!zH`1)6R?-c0&J87V~eF5s>Z+4cPb~o7g7muw| z(O|~RA|^rp42zM`2D>XrRObme%k4DAe)5{xyiI${Z^6Hi?V)v|HG7xX)AV-0y-M>X3~%bqv+zZ(44%rIxQ5N4PakiR#*`)n0dWOE}X!wstxr(Wo(slM!i2X*yMUIOSyIGb5V*Isqclh;3I1GC%(SK)Y4&SqO*c`pEl#dKLH?agcT zI?j_gst));3mzktPDM?nPWl-}3^ZVSs+R$wbBu>k&^NS6Nv0`3wgA613?W-l=@CO) z7lmO3Xq_RV@5*PMpI|7saPsrNaT&LZvgl}PjblK@8GsT&p*8~stuOha&uIF2xlT8ua7woHc1bKCbzG9Xs^%_|SXEVGkSoNXuAT-%S8r#<9_D*v&JFaI z-!CfqZ~@e$nhDcuLsFbK+CEznh*k)S$C&hDRy+YXa|ETc16OC$T-Jylf}U7gnJkII z)`axhQ7EUBg-0_B;jqOvP6Lj`4eqyx4195HG2WAi5CFVW*PHRJXf)f#5-O5bf+Ou+ z^h?A6Bl6LJH|U2+iokpP-kui9ZP~y%$*n#Y^&snt-i-xOZkeIa|8Q@pZ=-J3&e-W* z!Rvdhq}FXXg=tL5np11as?#LrB{zmGoED)6b}x+B=`^3u4x}5haj_~UjKQmiD(t@& zOxpSA$OJ&oEWh^1fe=_|nGzSXyQW6v3C75_hX+4Jo39I9QXpKmGsOUxDQeIR;l8%_ zU_N4~_+NN9FduRIQwpc9=MTHE3}o9>Mz7uU%0!~{Tvtuxk7QeDek`@uO|SAv=P@Kbds&zy<}?nEoJ`5Z|n6G z?I2TwDPr7{IW>L%soEzx{rI7n_9+wN*lqoM1U!wbh5QEnpUwgDM4)mL zSwtwzwnh0ogsVr$O_L6yOGUH-o5nbxe?;=qnEe$@T2*L807 z(k?3bpL$*-vfk$F4v%=$f4&4j?J{;qyqU*+g)|Yo`z`S6)06K1n@fG~JWesZfx`Ks z!+v>B)D#;Oc+`~Q8>sJpdCc*fe|y1Z@LQH#6?2C)V zsbQA2&n|3r38^S)QPr!St@_6qQ!d19_J_GuHH8bYX~5{t7;8B-MV4-zdM}h|N@TYd zXERb@o6croUvf?SCE8aw$=2y}PpqWJCWb>J(K=OKzn5pEs`9?QG_8ODzNL>?k4lu* z-LKA|uFyzJs;|>3vYY07nB5UL@>w~<)@xjA%?y21|R=c`M zwkem|FF$e;+G50yxqqbUyqe<4?ALW=TL#I*u`P*>Ov!ohPq-9++V7Vb zjLFH-W1sErtTz-#YaxLHY-DtcPwDDv>0}nFns#^cc5`_C>U!R6&!(gEhlWO7MiG)_ zaND}Mi;mF5YJ%nVgoN8VqM>O0K8%^~EEUIITn9HFIIO9H)R-4_e#9yz%lADSc|Jxy+z-jgKg0uLN42WmKpc09OjTh^u@Wbk(6A zdq4qNB`6NG(9uIcgP(?aG1E+m?Ln*OM;f$`q$IKgeI-c4H{h~1g^cRLCMIl4J{M9x zHam;Ao12~D+a(kSJh$m-&-5jjKAM)W4C;`|ad+VaJ^7SY{}vdyu6j6!8Z@LPvv>mi zF-HbyNf}BN_i%y@Kqa}hsCMi{ss?;M;m0~xRxehX+Gu~DB?ry3Qp63=&vLsBy-My) z8)2l8g5Y9dfwiioo^o5dP2El|N!?6c{$)E~8pZM_*~!uA_f$rC6L5G%JB$KXZ2si_ zYkk~PCVo+K&l~26QB-Z~2=V1xT{g937I9p?9%2v!aP8jE5$deZms1a{N{E&Z3Hc~VS8#?es{U@E7ID-Csi z5@j`FC@^nmfRt6=e6rELma34AM9>~MbDq?-BNuerO#ja8ZLb0Gvym&n@Ob(-1tcSE5uR3m;#= z+~6mMZb@}MXC>9Cua;fNP`|Upk<1oh7d`XF_d~}7o}*Q$k42a84^kaWp>Q#O4OG zk&v${9v(fqE5*xs+;`e+|K5W}kxC%9+q*!2tB|>;i+C=-31mk^n?{(Wm_o$JLPF%| zr_`|N3DNY4fZ6`jy*y+q(n_TtJF52GR-_|1JWqKIy895z`9?j|E33ikV7nu5dORX0F=4Q$czS8U^h3M8(@PeY z8yR=}u@WJz5-DQ3$iTi;>^~-bM2|l)&O#+c8X*PuQcCAhPKp>Wir> z;QO4SLDK&G&Q*G{l2Nz@oh5Cr33K%Kz3CF9Pk77h<)b2kQ2dJ#)T8Td$9YEUXcg0* z+c2Ke(@cpBx(dtjnXoSYfhV#vID%+wlc>YC9HE)}nJBEh1`yfZ4$Vq#nX@5ON6YAq zMZb6G!z8ny5JDD+D z1zX)?b4H7pnNGL#IryLt7-8n@SHUET8MB%uoxZT$!~O-!%cA03kv$^p$U;&ufWN83 zi_{<`%Jq#QUsfER!fMt`_gQePw>~ik!}gl-#X7U5aK+7{_L|eg=$cK)11$=LhLAi1rsDJi@{iHtFe`!u z_t2EI=rz0+e$-zh$F$Q+F~SQ5fTofi&R$gbYi^;XVM3^2#muFSKS5}!BHE4irBqfJ zh$Di4ecc^<2E9|`B&jOM9~#=e2Fc!Ua!Zdxo7+jOm5XV=DMO#4-f^5lCVW$WKyAnF znY0vCS~ku=kwNcp7Ay!B}8V^$w z^g_7PpHOXPwn#Uvdn}3R#OW^{?9&xy;RrVquCFoO9%wJ%JK|GWM>#RJeAIG20Ra3ku^DDGc!_9V6M}+ zEXvR$y_zq(W8EOM-2t;xk#y0TeQk?E-v;Nn^VZG%jGEbfklrNNWn!)=q?mU(a+DLf z^YUNSto(h-*DVJ!f4A(3^8OPa=k#-A@47j|zuq`)5xEL4b7{6x8PK`J&Ar5}KI3iR zWi6S7E@h$p_I&uITIy4dHLij=L@2u=7qA_REoHCZZy^CL6`fftA=vJht;J@PDJBJ# zg3E>p=G=I&f@{O~avlk$b*wdoYG>$sJvKXN9_~`S(Q$W|Vl2%9e~HA&c+!gxNVkRDT62&BmC}V}D0?@y)M@uwT(P1IT}k?wYM| zp$Y$vw_@=AJ-2xn4;ll4_+Ls$U!m5&f4pD+{(DWGui7s3|5jD}TknGR$6toN&al$_ z$MWRTPi`QTzKm#n9a8^;v0Q9;?qm{Z9ngQtX6TdrV@B-n@b}+so)k(_=&-*AHIe>3 zhzK6#zpdio>kK!;m!6`Lt)U~Gu9KOuwegp>;(w8Ul$(sa0DX!B0`mMSw?y)PFQ-|7 z47$zJo3WPwBh#U=sBLo1EFS41p>fU80_VOB<5dhYCyW z0spL+!~3A|px{8_o&9*4!N?fDZ}lh|22?wo#%MY@WH0jt@wNy$3ibUeXA%yAkjV49)be2n$M0d|_<5~RUs8#-<>Lb`r7 zIuLbj0a>^gbb7Yz&(3$`nSvOvwt_Q0^Sfdgra(U?k1As&li_#`Yf0H+H`Rb>Y#J=( z?4Df*6AkwLTgp;w2$l-eQK$uJqW*{yG-kOn1MqbJ5iY)#Y};~z8$j2p&C>mdnGgUD z5Emhx&s|=0UsKV=PJoa!CQe}p(=x(xhA0~k_z9gJ@@HrCF4e+hi_!1X+m=3AVGf+K;fPNDp^$8<4zuCC)0J+L616(^L9$^Am#$}CA zNZb$GJkugfNP)MV8Ob4qtJ>1Z0cT=j z>_+yAtf1|<%vr(M&f~>@X~~d@UWzHKCvbqXgZf32||-= z+U2x}Y8hQIzUc;wlR!5TuQ*P$FkbKK<<%|qk_~Nb%78SaZc~;h1DkoR;28!Bt&44x zDzspdrq4Kfd(SjvbrzSFoIxCxoCs`mo`)*D11Nf#c=bZ0*Rl|#WbDt3G6zMHHE`VNBUt1e9 zy8@rG?FI}j1mQI-K6*Hy`UtbY9o*hjiO7gSPPQvkk?-EjSzAf0L})DhZ%Qe@_?ER_MoQP>#rOt5;I8LGkR_e1Avas z7_IrRe|zCI(+Z`n zQ(GM8Xl5qERWMuAdJO;0l?F2IoO?uaegZ9&=yu{BbIn==g4<}yW3VoK3{sb)_M9p6 zkH|Wm4oyL~8<;pioy}YH=Ze@6pHL;5r%xx~{mk~7RE@8X;6hj|K}a?F39*|CA3vfC z-^t{i=Jn>|D)ru&1AxWTlV#`a(y5!$XTeBNDf$L$UT=a9PqKd{Vq)OAd100;o_PQJ(IwYJ;Etg#pbUO12j0~0et>NN z1zYb(jLKzvt8r<*lpghg37J$%G)TYpaDMxccx(vM`{0~F9`Gt^|0=rJl?v%fM&s1X zWg0LVOkXE^n_vmix4zb&uEUSRKH^Nr#fHz5bMJ6vxe7n`_Ho@=t&cKm9FEkzS{C|}S_W6WVX5%BKK%&Dn&?Q;vdkkTUG zHpPKeL5vK?J|MM4GuN5DE(+sb4Ih`TdtQZfB3?yxJqg9z#|Pb$rg2zGr-%y5TaN;P z?CJG~h4e9bVEe%0=M>=Ml7nU?VyY0zZ-J4#^XeVlK8t{jJ6~1w0e*O+HR~r;MrQ$? zvAZ7mBt4wA3hFX~xM0gK5VunQYU>Go$0{>$4Pph@VnDd_@ff9I%C~tk#kvCbRNx2) zb(2dpkayEl3IrT&d<->YNGcQNHC=B`6UhkgE zZTF`Rr|@~b-3PnvahQa1BFm0-N*!Masg+?l_yBzOF6o~KXW}1QN7w$AC|P4mb=$d? zyM()E%shIumvQ7W4y(|E|_3# zDzbzxO98U2E>FrB>c=tr9&i>i9&?+s(Tr;9-`XR&Q?Lwnm;mi7X!a#F2S_0?sm`pz zB7mCO7IIZ$7l&B#sIIa!z0oel7^est<%kK3cg0D6VfSnL6k_|cu_LC-bpoGtNnIOE zSM80vSP#!oiD}^Xse{ilLW+J~>Qnc8XwtTlO3T?{4;OLOZi?w&hY1n3GMDg|yyKg1 zYnD`ro3m5&4n#s-?1lN~L^0^jw;NX*zJSlioc8j2M8oIK-?C!LGHR;JB)!mfm%*2p ztm%VmG47|5?fC|rctP)&%?Pr+R!&}AD(e6!;0xY4zqZb8Q*GR*%@VCi(FhA2_@$ET z!|IdM=aPbmkh>Ua&p2ETdmZs@r)F#jM{&zxoLEw94Bqii@VW^$E9yD0&qcg*2teqv zc3I65-T_o+V5Z)mn_ZZpL4?7Xl4tEuZ`-IDno-1H+kOWenEp5RQX<2fpgyc~AzyUd zRZj6=f=#sor9X5)BO-kYzuiK+WEdt3;7*a*)7sf3R4T4Fx)wwOM6oY|%e|w} zLHQd{$?MbI89U(JI>gSipl#Cwik)09t*@an!3ZoaEmW^q=8zh@Q)4Gxh~ZJ8a3Z+& zZKH5g^ZF1pv7TLoXwuyaw5o>P?{>T$T!{_RT z3ME*xPRmGvP2&j_1`>)6;Pol0Ea-PMS0hD3Gk22WL;es%h|tpoH6>}H^_tGG0ESh2 zy0Q6iwrM)`ZohtdO5x2|IGT(?SB60AW;LvF0$LR2!YA3X6;t&ZJSSCr(-TG@0ZGv~ zMry{qM}%}j2upnP3&Vz(HuYFcqn~Bb0*E-Z_PJJU(tvbEwqRczfSfRM!L!OTaME$u zoK_K9GPujKD@QV6nuBVcqXzEOPT~*_A#7O0h8)|i|9Y=T{D&lhne*d)v{bQET_{*~ zbUloW#SLe)0qmbj))E0o)m{=`U%nPmG|waTW!oze%7N9UNd?4+#1a zDt0G6t0?cZ`!SPMsTfXzf+b!-f%(CPD5X5Y;f1k5Hb#?}N9@-nX2qQU99<#p_q__z zzEGs}SQ=R+b-YSa|E*)4RWxrW#ft=BS|G6B>>b(6_;O_<3*eGcE$Pmo%{o@ znFu(lG~?oZPWkKAE%dnegSE{QW(-eJFj6eWOWO#BKXPwSls`NcmW0be(sG9t^Yd zBF1s*OKvQAht8wv^{3CwI$F+K_<8Xk{Pp+8#MY?%OF*3Gb)q1%Opkf?tR!){W=Zw^ z{oK-XiY~sSmMq}}P*w`;mT3-;sf# zr1R^oI6(Aqb6)n5frWRvvmSM_ytO5_)0Bo+|22MI8>7(xyMg1|+LYg0c;=2cg7ly{ zaY13!rENLnx~)NXG%y1i0p|?Mz2*GK;gZOb-QeIBNy$ysY}dNqhJoNK^}UWW>#LS6~MQfU{5l3e_|Z=P7Dj_MGqar)wNy6 zHOP~U3CVI}P0)=g``yMJnaiQ%?j)a`IM++7-SltXmG4B?Vf8ncwc5XC8u|o1XZi%| zPR23Y^8u5%!71(Vuvfmn%7}dXkKn%vSv1Zq`GuoBYzIn`gckNxT_Bd5{n+>xji&?pS)UrT{* zT+2A5TC0`dUOrUgh}ojNUUla=pOl_wQwkubrA}fPUsYUGE&GuJAzec|P(J-FqIvgd z0KxwWh>ng6d3UdfDHZ9QStov0%F>q=@>4^4o#=4x1?I)f1~uiSeE@7I9kuP*P-&JHlPj@= zRaY^V(JY3<%3j(IivC!r_J>^>FsZTz^y|{YK>*i#luEeayf#rQI;T5}p%S1FsIe@_ zQ{GHIKP=ZK@iYiNj2)dD9S3Bda5q8v23C(m_9ULskeNV)aUn9APb!+4wiZ@tCFA&H zJR$mi@0+sDee^JTlCu_?JQePv9`F=-J9-ceH~m~teFOsv1xb`H!|ybUhlO@O{;smJ zM>n`A8{f5X2~qW@K>h>#K}5h{CuUy@8AZ8sZ$p}-IIt`d6I<@mjXa4;Z~Q9C1GS+B z5ds@G&Ud%p8Gp!c1Rcc+EWW#$%s&b$*zbm!)l3Ht(i0Hnhp#cHSnuI)_YM z*Yyj`~mLZc{u7fs^0r|8f}rhG+!d0TyOhit%d1L#TU zL4~`O*gD0Hllu9Yzgc$Z!zN#o^>s(=Ab>s129Gb0$VzaiYdG!$(ddHo`vliWr1gziVFJ+S%S450g6O3BHTSII`L6s8G3}>Gg=#y8nPt;3uYa z)lAzrE?bP&ES-9jVXks*EG0hz;n)zSH3qz;Qq^C~H2M&9LNwEy?{{+~Y0Acf*QO;p z<#5+B4-d{LF8e~BH$Fa-mdOjx^(ZG@;Es!Tcy}E?-c0opi&qoLN@E|_^Rz+-RFjYI zXaz`7hZBy=I3drX<&q=?P-i*f*x-m-WGGa6G0kZ5H%MOuv2~Qhp z6rqX&;KcD1A)`{g8IHXGm}~yL+bWc(?|fPSu~^`gjT<#ixm=B@k&z2L2rnrgXx4JF zRzm#pZR?l(Tqs$u>;SfZ1;nhnoK@Y;>~5HchLr+DH2MEx>l>phiQ1)OoY=N8u|2V^ ziEU$&OmJe`wr$(CZ5tD3zIo?e>#lFzb$@p4-TQR^=sr*Hs;6pumQC*SIDR5m%B<|y z$~y7iznXd4XjQ$?Zg;|QR@P$rv}7%rvVd9S4?p9{5FkAc#!wclbY|<1d0sBIIS_Y7 z4V})-pO7YTbi|&rs3ls-g85S~ayP#FX6ZTUqhTo;7SXG}^ldOo2JsD3|2+Qq1s}I7 zK~rp#2(zDZvIIMi7G=>-Xx5gm6IPL-R?+&IHxv-W$s_3bu|FzPs&i1FSK%gdw_6$5 zN={Mxp~M-+xuYHy?e;?!go-6}Q*T$!P?>bgG3~Nd4>wyVAv7XLue<_9FRleX3Ex&D z6AmW_F8QpaGczTx0Tu%|qK^cR8TjJE=Ab$YX@=WAm>fC|0M zW8?ezTRlm(Hzl4+uy|NL*~T_A*iSEzTHIR`Fx6d(BuGU-{oq0<3XEPUK3iL##@Y)a z9W?Ait^QPHvD(Ij)!JqEe0)o@%Dd#MY6%uQz8T1cr3OQ`>zAJ?%b$bsi?l@LX*e$Z zAZ1pu+IzB%=<@+m`XX1m8UH?%Z$cprp-)vt7Xo8EIJ9j9+IV3L>>yosMo3A%{s~r3 z-ExE!3PsoDSk?EDhnf0B2(+KqB~jR+tuA_;?-z6}l+d)e8nm7{qfHdrCrxCP3oieAY%0=H=h`eY+0~gwGB=90#rg+cq0 zw0(-V|I#W@Cn-}pngnLJP}ui;{*S@0mdKW#EH>B_NgMGu3qsixa+KXkbnDSxHZqm? z>iPaPX?)Lt^h3s8Rm98gubY^j=Zhm>elb;44v=gnSp`O0$6gKz!Djv~`5>bReU*WQ z^y|-&a?TI%Z|)5$fBbsxt?wi~hOAgIX~Cwgxo@d}(6fq7+)+KE<$mGcOC+V$HVsyw zPJ(a4TPo+r5aLxZa9}OgEht@i*_KGJ;b|%27(YjSOih^10b}Hz9el^O?bP+er4Zu^ zq0(63+H8h&r~DdA=%ti8* z+cPkLPVy+@dN<8mA#^UdAvs95;hjo{jgZ$he6h*?g2A5OF8nn_cHAunz|Jaes2bq# z;9!;uh1M38(JN9lrlpH-kHlf~@Q|Vdq)>+`c8=45OXZbgk6lNrW;VLJ45&rxuuGumh)tbde{XGh=L%fz{E?@DEYu~(N&F!*9}i%6UW71&RYERsGI z&kaAFN89Suv?5Hbzw~MgcTU6!mxQP95|T4x9r>~%V&QO*i>2=FtX9gqszYkhM-tis z0lqsbP?Zq7VNTL!mNnmR2o znV-uAU<#u)afX`xz}OqTT18}ZQFR>#uBmdFb90B50A+P?CIS#opYY5t&ACce@N0Iz z4>4CrQ)VIKO`UMB;LS*hR+=f?xLe?N5T^tFQEq>k;vQ~#Uvya0-B z@z+B>gryydSb0y>_62PN5nj2e2795&D9@x`$6JV{#7j6Ov%@}bhUIS;F&^X$Fa|6H z)~*iPoxOR2m#wM+qr%_Wq20@d1cee^exhA^a*=$2Vu3J&EAexub?ax3!QBc;C zrbowUi%qFbn$KN#dxVi~^qJXn1C{f8N^)OwKdH`&gGa zDkmAWgdxgng^th+L?FMJ(6AqJ20bmqFsH%z60(~bLN&L*NZ)0aq9M!TY5Kg~ySgb= zBEWZcysoZ0D>O%OwfG^c9u2x~RGkRJ!5PW9KnjI~pa63D61&h=N`umQcB;h(A$V4X zz49zmT%U^-9rzhBQ%!#ZypAQvJcTFYstKgdP$3N|D8+#)=Mp@r;ew@qQ|bhUpvG`N zuD^KC$Ki#%Ub@w6^8@>JXG<{&#!$;pamukK!(mkzCB|;-In@hB!Wdv%@HF8CkB%9rd1*5P>%%m`H7iKF^6e(wbE40kqVp9PpEZn3#NlZX z;BjzBJG59R7<~^>MD1$#N#&x8J*uV2Vy*PMyuNNWX}gx?G2CFJ3?o(zDAEVwb=4-r z$v8;Z3uBOh$tA=ZaOrEZY5I!Z?0e@_$#WYh8QB7K&ZOwK6aDfunmJVMDnDsaE`B{mz|83Rb)$t$Rw2`RS81S2>k8Hbl^~SGp#h@Updyl$dHmE?6QLXW~(FlG4Utw;V zwIo#g<$qZi3J8Yv4N`-EKzXDzb;15kHE9{|g59J3M_*ST|GVPpW7v2Hvi~R}0VT>z zyniK{WPc@^ME?i-9H0SE`>(`vLksYqn|;>;oc|X%)%y>S0;3N|{I_rr2Hi|rZdcUOn5y5S$GwM~53gLXXb^)phIQw4T%2Rd>; zRn>rJ0<>`Eme2N5O_Ye5C?&0#-x!jlDxF>K8|tk}l&ak=Q@GlsL5T)R;|LaL?AO2J z(g~)m7DlNmCBqj(aSJS2ja29q`yK zPvdxcpW}8!KwjBR*;gd&CBe*U}d|qe$p85qj#TRh8)h^bURa z2z-Y^X`2mkCZj(rXg)CYu~0+e5;r>VUiS-D*4wpuL=gsas3#n51~&1`{CFPV)wF>e zAba{P4ncYe^*aJkS&)Rxj|M{Y!kGpRb{i6b-XuuZfC0TT_SuJ6 z#sc!4x@Ftdh@7pQ{SJbi(VKKavhd>-wiC{T0JjnOL)9~(rmxCHbS0uQSi$IoR1uqW znt?@Tc3fR8&}A)6S7c~wh6kk9)QwHciiNt^8o3|BvR3K7m(Ye5Hn@s#Olcg*PvWOo z!6{^C$H4;q;9UXfU1&3Q^QAH`xPww5b`Nl|;4;q&KZL@SX#r=tXD+az#f!TlbVd>? z+A2HX1Im#oTRVJWHeBzwiY@v37Mq%6;lB;1kFec8CEg0WZU^z{wXNYm+Cc++kmOn{*Nax#9vcujK}asS@*mijUCjABlk1iVH?Q1krpO)M?_w1q1OW zuFri%f;r;$QUs@{`HAa1{%|bqxt|N$#yT=>f%`I??<1T7;jaaNZ!z=rIQ(E{!gRtz z&B&VfjRV+2NDx4QR1W-FecN9o&3?&z*T{kknD89xq50e@LW4t(J_@N*gJa0^ z=NLRN#zr$5wt*XxbEKv3CmoRxCR!LPD^R)M?dLa*F-4vWw|*`~pUQjE9sM?##h!%L zQqnBY4o*DiXvg0m5~c!N6AH>+FQ->9(MeV<^^Lnk#LVO}cerh)$=sF zOf=^77WdmhJE4u3^e=T!f%-oB+(aK|3vL1y`s-rvhlZw#msL@7np#uFCc%1GfL>Q-(=wW*ORx_*Q`C8q?Z)DCwjCBxVUmjO@K@ z#9At!LY(C#jHCB*jL>522xgDgtW=>~u@ny52_n($y(ZJfIn~k=-z!a$F=H);=#g%g zBnBF8OpCLdyq$8F1Nc5}3RXOHZ5gf-O8P+`fg!#b2Y4DAF36@V=TDHoMh&uTWHh#(h-s^!sM`s(jsh12k%STZ6ivk#g z>qj;7HO+)3(WcFW#!SV_hq*`W7EB2FqSqA0ZSIwz!oXXF9om>_510u{D0&GijsFSc zqS`Tk9Ghf+M<-5{5$l0($BjO?CuBp4lhN@W3#=F7oqUI=<4koC_aOY*#_%($G8a zs$8XYqvoZTRo)DaTvq{34Np)K0Z!N>{*mKY7El zQyL4zC^tW;kE}vdSa3Sff%kRVVMTq(`}*_ITQ{z)0rUhuq&!n}U7p=B_dqoa&m*tR zn*W+*dRJtI@^JX=sdtyYME0_h=kI>{Py=qfCz{%qK}{)`c2^1^F`Otf)-&E%%zDs> zlhMS!k$PtL`Jnan@>Wwpq~DXLL9XbfcdaPH9|d%JWYzf z1J5@r0T7f=D60tJU$Jc>n$Q@evY=Q0Wx6JKP1yOQZS;-{2O7O0g(P@W*q;2Zscwd9xEkk=I_P*r>Qpm-;|d282}?9*?)@4^?cMQ zL>CZ{)>6>_D^{@uejD%`4A^o(VKav<|6~;z;+uQ`Gd%^U!*s-l0nMCg+7Te!EY0r>f;B zyQpT5x&{>G5k0zLslAPwA(Vf?OD@IaneB0chQF9;vDQ0q?#dBnVk^f*{@108Yam0U)~Hu%e{iGKxe+9QMhKAC3Pid+?3g0)-4mU#?L)6HyoyQ?$=b&Z1XTY88)3jf1OCY%s-!gq# zNpL()n;Ct<*x2!_JlcqVL+M!~JziP1b(d-3=c3XIQ+hqMukm^2b;{pjj!tw2hJoKU zx6w3AP~h(t=~TBYIl)E-Uc{BuTJ9ELp4xP*GXDX)gshbHA!b!sb)OpeDZB1e5EK6D zrQAF9n5~%#s|S>(FzD|7xxs45c~RdwchX?`V{s#Cr~4%Ume~8`2MoA4GpOtjEEi_^ z(9%JDWLK%a?|RaN2Sc2onL0O=6;Ni|1aQ-|kkBRYocy|Ko{AI@9S*1|noTGPtMr9l^KkA2E3b6(2yF(8$fdVLadNqgphC;=$I*Nrb0`|4k3;a+NX7iprL)$aF~hFK-s()jU7y~ zSIwSkJ&egqI_W#$w;D&L%o{kjLd3EB0e+Z`n}UBx2XaQ& z_EtpPqY{DOsUOfQEi72viUUgBx>I#1oq1SLh27~I4RXV9lYQL|5z|jO>VKBWGt5GA)uRU=KbK%Kq9Zo>4m8`u#>{0NU zS=8GsE=QF=732e5?>$F^zjYMkR%@TFM`DRP2m}J{9jQU`fNX4bIx?%VMf2u%&`9?` z8rBiE{FN0Ju`vnAMGbl`;nO4V!)COCk$~fRjs>|B$NM*?`XzhAkXaMv-dj|dDafdv zm3s~YsI2&}#y>W7CL=Dt*LBSD};J@F^in#=OTI(9EeAC6@RFh+ZM4oX4)t%bzOzJ3E zV>oetJ#`JMTmz2{BrdCbQpbm2M9ss%&9bo&rLbGFu2$>h`B>U{ai$?FAaYiI$={R5n#4R0tQ=DwgVgBt1&cX;c(U)qr!CrfX_m04DlF?F+QS+DUZ79yxz_Vfwu-D>o z6YHA5Ej+e!GnPgSsb6n|7-QetKr-KcgvopqX!m3 z_+pQ)Y91CmyGsl#W~f_SYoDX8woYAIh1#~^Fv)PXD!C64>m>w(ys~gECnQ`t=vCTR zyv;5o>~b&<;3%dLMGIQ)0Rt`*Y`8|DUw8K8iR4c)wqyq8))uHv$dJeHCtMqJ|Gpri z@Y&j&yXlg(=~&KZP!N(h*zrL&hk(gKyS|}tkZh!153;F!f*7{!545;R>IUn{67G_l zlH!{%-Kl=EG^o=;v9?UX`Ylg|SydHFP=E4O+U>SAdUa2CFi#C8K@>NP)(C7TVuX|t zh={E#bAEDBc%wL~v$e)r!V%K!EWYYs|CN+KDEE==pYIy~SWJ0(x7u2y)&Qc*C}UM; zP>3vFY&t5#jMUb>m?Obe1c>;2)0D)O@qZm0A?Q}mo3%@fFzVQpH6tcW_IW9}032oz zj62GpMqA+HFuPL}EcMEwbi8Jp-zHPtM!EcURRWK40tcel2yi&>V|~4%KHnuW_f{1q z$YVnY>!E`1z`vwro}S2cfdJnmVr?XdQ$N~3akQcDY@-gVeZpkKy4u;%Lf4<3%LNK% zz`B>|F&q#i&yy_f=1_hT*1!_SwVOR4`6sHO;7w%C)_6in=ag@e)~LPOu(wy?iMis{(5>_ z;{-YbyS*Q-IA`?R1#|v99X$a59`Qc!4o%$X`8*w~el2GsDFi7Kn2}pE>{|3kp%a2C z3D!)=;8XGcYPCtf0A2xHH&_}q^aFBZX!lh_-u2GnYLS#~N}^l^LxXGo!q=Br__2Yk($lkyCD{K)14qO=0U~)sNy#h!ZZ0%NSdcOFOP^S4)X-}kAuRbilM76adFMG?by~uDl#bigyZA5uPnZZEn;tQn{nJT zsMsO}TSr3hy`$Fa*k(o`3M?t?F?@9M(%XL+f(!U~unNF5jy3gt%&mGVhG^%Y{1E4- zfK% z6Jm4CV@KmRI!KQ-a0uDZsh0}oYP%xGK-xVN4k9|rf~nvPh?`F@A6Yo=Ax_Izs@TbcPf z$*@q&T8LFo-XEFpm`0;0m>W?aMjfb%O0tfe`zxCuVXp^7Vq_Z^fRb$VyR7dGl&GY` zq3Gkt2%Vte`Iu3LgCpE+H%CKF2d>$96~lv6z`OKglm5_g?Nv z?vTtdy)136iGi5W9!M8rYlEXF)+ZeBP0h1ooV`wnWCdlmhLkW!U45+cC4?0%0UB`r z;#)4r%*>k5f&)Ds@hKix%Hl$xenTY=&C~wz0h)(v2TU}A!Rux)D=FP-e%$f{%V!N$ zi*?A1!{+yrF?t=SDUWci+vfM$uAFE&dh>>iPwYhNCMmIp0>wTR{UCE%_CzR~qrQ~Y z(!==nt-T#APF8bL0oG<8jZ^+u7kGhC1q;mRU@RIrT$w%FO=Nq-OB)1Hn*^P8>A90n zMVdB>b^3#vK5usH@WWq|Q*|xGg|2jyAV^azDh#@IRJqbzL&R|m=88)YNj_u4$@|Ug zmJP2`owd{LYz*Qjk?!R>o%aKr)^~IO&m$9;h?kMri>^BMoEAy-*@AIhJ8&9oyZq?r zr3Luja>=a?m&_YXiQXfI#&)Z}aHcnaz(bcGsa^+Kz%b!4ApoY~``7ExOKoWb$pt4i zo|k<3&>!p(6|llRvQ`xO}Mvd#et_ zeG$O+`5kYK)dF0?CL)m#2H1Nu6W8+tQ)nEiVZiYx7dLzlsw%hYMnB&l6Q2($&(Pzb z>%2|53X1-Iexc<4?B?)XQ2M#I|cQ89>>kw7KSYsu?8 z%AuAU$5HiG>-)%G~v~%0o#$}`6;8@`U#=*<2ca|m+ak4e+H>zi(euU3cOdT8b z>_I^JqW0hPUDS5;#Y5R@<25l@qzM?r+xQI(?klsH`#;I%Gr(PXi5(0$r@Q=#kjpUl zT{5QAX!%Wh4?3AC`GX)0-_@gEeI|$GGMUrU@oO=VwlD7tIZV&0_-DoTw885m1q>R( z8OJ@mAB9svTo2+M3L`&mccs8E;qC1-JAuodvu?K(kGC&MUuz^rzmd8kql4~4^r(9T zWgDb1{|tBwKLg*x4=uJST!hJ2DA&RkhbXe!2qpWXM|fv=Hqn9hoh$zEDb>=6ZD5(0 zUOy|+KmQuFV)Asc?SCafoa2-lbSF=04JA6%#x3c9#x~kT+&L{ zI9-gRNI|ngR8xRLJaE{K@6pxGgxpeRl((S%fEj3UsAGCrs~|Zsm-IGnFnWs;lQeR* z+B}3=ZD$7~cg?x!Kn+pLE4}EuZS3j@zfCr{-x2w!q6fsSWyvDqmBp25EUqlR)V#~# zL3mP|i)R%K@=L3mc+qF0*n#PP_BA2M)CnVOT;~V}YS+Kb<)iHfC90AuRqyQOD zyar?@2YsagJL6ss>~qt`%Q6quxqsjidPWE{(b1I#`$FPbBbb z@v*d*XX|NO>D(3N=jXi$cY!ZCr}mdLuY|(3soM1CGtMt&a73&Nf(((v%E9#u!;?qs zgq)5J$rFYZ;fm}K;;j+K0$b=1ULVf^yx(ki9Wj(!ML)41B=%*+B~Tj!eF%aVuEufrUy5@2~C!yMgYH^tPNlNI8! zbHI=hay5{iD09q3lpwQDxx|;Z0_lg>AIW)nZ@Smym~e+jT3S=E9x3mP zD1&kQEQYwRq}k;229HPbjGuP)MYn$lkQo3ZJFWAoX;^D{&`q5sIm^8)(PrSfw2w=x>R!;)1j@l zFSP@KN+Ul6rCfEjN;!G}@XO7o=7rU(g!auzJ=e#JXX(mUYARf@mYkjT?HruhI&>04 z4`*YsVP1|HJF1-@vXySIRLx9Eze9Pr`sn5?l*V8+uvzYYnpS$^ zITM&{kIXo~7zc)XE~}rdjv9}&y#1XQ`I+QWlL(t_A!hHpCY8JTa%*o4NZ@HYe`4Z&i#4Z25| zSfTM2LJC!QN#M?Nxrj16Bt#N~c-y3G^u5t}Oc;7=J>nSBxI`vJA}dJgYNHW&(m1Wl z7cwIj$Wu~4ODE@c1tTg<)%^ogWBN;*KyJg>HrC4B8S1L4dK5U@@ksIp`LuXZjQ*Wp z*7E`~s9&2S>7rM^zDdJV)Y9G+2uz@UY5uW%g0#44W;)CFgNO<#Js`ZAmI^IyWcgdM69$$0Q*$&fd1XmxuyvrVTzASOt9tQpfBh4}bIJB0I{tPNdzauM~02 zxREsgK-w={eydZMl|0oNG)PIXKv0F z`%vgf?z1bdN%?``0y~|1#Qo}1qIEl+3g?>+jo)IZ9@xfhI1XJY+qRuaJmU`?{V^$@ zdUaL{JnWy9Ocszh7FxG4OB&-D<+GP`ARx-LwRS6sx%+bS&)J1wiok~SeHs6ta=W-Y zKscr@7loi`L0N4^_yHr!37VZ`aipi2$co*J(?~MIYjXVFOe_%`3QBY&-tK@;i1H$^ zXl8>iDGo6b)GCV5sDSE|+vSKYEV-JPG$OVGT$WjkR&bqg051VW6Xu_f9VVypz(^8@ zT;<|3SZ=|RG-HrngfJ5a`U<8eTZ->VbUEro%8?K*JoPbBMh!-cYVitao0I&B<^eS7 z_PoI_IWC46MOl+bcgCQx)Q%;5>O*z~>33*yq=y{TILY9?ME>L>W3)c3t)^XNZoA3= zCN7`%8dMA3u8+0Ri%&is1uweL5X&h-&{7$0Lhegp4JY^zaX239i3HLr@5M_?v{7sl=ur-5`tWZ1T|`f$AOe$}~_Ec_!-{ zrtiNh2G+lbIIH!||76<*v;kV2DA0x!Xs&XQ!{NI>QiVd&Mm-VA0Pq3^BI7&ji;Zv*5@Sg2-HU{yf!$ zN>cxzH5OCp*N{JKsS^vpOah8q&mkx@2fTxs(^niDX_Tm3fci)DaFmlKcfxxE|8S7k zgX*F55j21VE70IU-6|^ zleO$m!;7&Jtr|_dGq>ezOJkpbDKWIYtFgXk$*LH`b)J2I9rO-(6;>0Q*Y>qMs28|` zf)PgfdJ*^UJw*M-EZP&6d7VrWsc}C#`xIjx@(<1F7swhM7gY)u=vyP=K@pQ9KZkS%psv5zdePQ_p?TgMJf3fl zFLxdgdcp_*F8>o*k|Jzy_d zeMQSa=Emxmq1iDYH=FbY8cra08Fve*FP=mRg`I=Z>>Qt`Zt9X!?u}fM^D$PKv3o7X z&DD`;&$tgLv&_*QOPO`x$R=%_oCp;lJ6}0m(~!P$0oSDD(s}w?;Y9_ziqYZ>Eo1ZF zg+-<5x(fBxyj-~@v#HM{?h=uuq1^E28oB4B_Ac$i)u0ExlN|Vg#{EqM;^ACl^b2hs zzxt2ul9uGUDLCG||DbMqR$U?q^TEO!CATSzoXolP#$APY1-1!wS=K!2I)wi;l~!NA@HTQ^E%wu$*ai&w=$P*+3#VezEDl zL+H|-C`R9g1u7JSJKmwS~nR>}R zovkRjjvAZ?gbUL7XqJ_HX<})dhvWH011}4O%*x~qnOrmyc0-aZeL3ID$T3c@dAgF0 z+NXrk+jDwg0x@tDBoym9RlT^ImCUZ^L(!m;>O{!{eg;+>XR~^fC-Wd!y8*dZ>P82=hIFh?ZfxMG7Nhu5m4~@-7Wf-)X zn{Fg98x|w1+pRnEUWO@(k9E<4$ieaB@HhPi+?d|L3Q9X?W2*Kr84Pa{mKY_h0$SEZJN*DhtNGG zOOgXxo8Bps`F^$c>KKm3d+sF;Qy;}E`qVj(mA5)CZF&^dU1xjoOkqxdnU-+lWNQ6w z?eW5f>FZ3;`&Qo&)v1#YuINkV1-kCi2xQ!p2$#4xi z1(DLzsdEjC-y0r82CSxvp9#mYG z035)%y(Nc6`<%(seI6-#l^kCo_M)Q^}n1Pn<{7ea@;5;7hNgv zRQO}s9o0*;WIWA2)7-UAM;8O@C|J~_cUfT7gHEd4|IFDmMhFg-fz~`>-p%(>y6{bw z^cics_Ns*HnDSZVBGdwY<>|BRb39?J!f1O_`YDP@#FTiN*mz9q*{tI?;d~S5?)tpX zuG-nootzY=eM2T(^pP7p)`>T4^R6Xu#iBw0*@wp*bJXJz_KS&Vngc7G%fV~I!DZWa z+Y$S>!>K|2drMB{9Vf*>$X#p3OoJ(wtX; zHDnZJYVRJVk?n5TDnT3JdnF@| zW@EyeF9!3Uf38JT*)^aUe!ie>&yStsV~Xx9+tFBAMP{43qs2}G=#=wfn9uJo<*YQw zU>VcBWm7Dw`9G|}yjcs4^RZze{n8vy21?LBR*CEPD5>ih@5y8{~OJf4GQU zrtOS`j_k>r3=mbPH&-$E=2eaX{p=5Ay^cvs?xT$z4L2=6R7_kePJ9$H1#(&+-J4cD zQ@GiU6)yV=*>9m_jn^C(D9lf;oW6gUq2Jv?q8z)n(eGfncBT%kuZNjUe0#+zonUzt zM0?2hf$tuXj^4=<5M;SWbB!{xO8ve5Jc_IfA-#;VN~piXpbmgOQk>-liZh|oDnzbZ zf#eSNQh!C*Sgg4mw;70LuAbv^k7>HAV2zl}f15g;u3S@5(n>HUY2WJ|XH4np#)(eS z5QI2Ejt>{T)A%*3iedDYd+?eYunx!in;#yJ?s8S4*Byymw+7|hn`&(%q$(|8nrnS2 zh}zlp_oLV59p2u&;6X1Nka(uuchdqi(G%}j7$F3ji>obLN7m*v+PS*#YXs++d)g*6 z-OD95UF>K4>#K`)>nay(M{N>ZJe=7^fT9IWL&EZ@i1B`gTf#S>ZY3%rxSWAxaYSw> z4fSY#I9jj@TQj>L_e=tRH>utOxf&9B;3_O|GF)bn+s56&Mg?&T*m>!@xnM8LgMnd< zvW~Hq+=kRngDGapr&RPC4Cf=NYv<5Y3Jn~01)^v8h)A63NrHLeNNe5j<-zyjJKqr_ z5Ecjf9-}zzJk6Q*ZOg>^*lqL(yt{XQQ6fmpC$-Kv3YxXp`e`6``7XXrWG`!AL&B{hot+yV81##(qD5 zq>4~`q#qLuFs(Bqgqv*doA8`2SGb)}^H|2}cO<*stjy6gc>Vl*a|=YjHvhdTa+lI; zh%e|b@O`pLR}d~Y5wf-G$+dUm(i|l4CI!d&CGLO2s+pBrx>nlG zrX2Q#02^AHm9_&vm8xF6`{}4Dj(KpPdmLFr4T|MYoDAtE?uxm^k90d=rzXC8%`N(~ z9QC~MG%y1<%8hl^B{n-l19`<*NV~!Jaf15fUF~JF>);?c5pd#T-Lx-Q9&Y>km?rCzAw47KlDcQY7~z77+K0Zeur&JnvUsh zVD3}BN72O-`}GnWm3K<(Pwg>8_Fhv*0i^QBkNi30EU!a8I8-wdM_{p^B~C?*~ztZ8xwIqkHuETu%IzxfIm?b)jO?pzay~r%?eL5(&E#C9>ig z)Oi~OIv@;29xF*I(mPgiixp9r|3_zHf%R!jMgu#dqAn~#Dtt`RTSeF(x!9x6CUu(F z1R*#81TE61#3-?IP#nc&fS+mG9k5ex^}h8bpfZH3wH6xs$j{ORt_@k(h0#FVwZ3M5 z1Mb42Y_8r+VCc zwAA_Q)a9oF<(Gp2TPK{EFKlSyLs3-dH_j2%PVSXo#}V$v)cnHAjc_U?Xuy~4kD-@? zR2RZ9s-y{Wa%U!SU7WtHB6fw!4$|aGB{bKcl9hT)ov}CP>pi?}sX16Kdte=JW4Lik z)mW50C$LfRoAq1Oygwt9#g_W2@Fi%%HI#q#%&Kwil^d~jO*`B&gTe57^l}D>o zL=$*PZ@&_#xp~N>^`jLDvH`W-+hJ@^cMhKR4EN6WI5&Q&Y$ZAdiP3Oe@Kv*XLzRD& zK$Ez~%w@2eBNi)Y!6OtIW48FBPv{m=TI#^$l3=>ai_6URE1sYzPfS5g6ytU!rG^hw zW|alg*9sKD3VDt(@r?BStu~7z+EC3<(XJ_PK?24EyTcwPLUAL36b6JpWdiCh=Tg^> zDV{H9{gFoq$M8@_6LDlM->l|~Dl!&uF6Krh9qhxMqQR+tB7%z#lfGk60&%!WFyn{S z41GUTj8e`--4vumormDwSs;kM=f~0UY^eP@r+GZIsOmD^GPnM0LJJ?p)onMk5D#0+ zDwVPRs5trMR&C6vPXkQV=RI)|KQ5H?-hqrY8SC+WduOHoLsjJ$`PEVlLTT_-MK_ye zn2G;I#H@{fW}jX~N%6I`P}GR%*nT!>`CJFn^W=LGD|j7>$D`1qz}-$;HG z*$d?>YJ_@`e^GU?``$pm!nox)xPu!Fj^SASn?$1cC&{~5v~N!GMTOB)ewu4kbH7BPW#%_#JY0c2@>Rs3!bPxn4r_pet9&PF2_Ct;OxHp5>RnYiN$3 z=hsRKDA$B;594wYCH?ND=cN8aFD>R(VL~kv7I8ndzOpNH0eJ|5m=DLkE=mfjT3*16 zlPOL?tGO43fwRBqAO{Ivs2G;V4nGcY8q{_$_Z>eMi2~4~$&b}4f-VzY;tcN8f3uOf zHDCcc@3L20q!BDp@ge)p?-hPnj0U><&%{&QHdoPB@`% zBxewhR3#u^=^FGW&|{c^E-_ zH#K0|bY!1NrA^-}$mS%;`YJwNKgfMrzN8X{au;qaf3-g1+c8lYxX}HpW_NL{wTwkt)+Pf@v6n~j86wAq*X(;(f$qd zh+He$K>032or9Nk0B+&k(x4j1IJPzS+K@i9w)Kn<3>Ej&*o$KOK$&|fHy5`t;!6j~ESxW@fJ{mzhw%~Lp z_0<}Tod5%hRsH|5wx=vCZRq>$sUn|m`;a9eI8Wbu$m z$gOiMT)j}Z&@_z&95c%}(dLwYW8*z}Ez4$sXxeV+z3t*?Mw{u1#}8A$l{CWwisei(pA_>AUyTkra{&4>fXF!<0ZH~VTVOPfJfAF#Xo*x^D2kxGYk{^ab3dTfyU|nq9>ri6_wy54I84 zj&AI6=%|IGiT#v=a5nM;Oz@6V^qLrcj{=0n7o4NZkvN^kq-;7(60*IK?Wk)$$Ve{zKpF1N+H06C@%BV_tIbD03-HfCR034{xJH0V5h z-E7LIJROljjY=fucR4*XFRrtLxl=F72CS80juzbmkQ8euu}2l_v@If^=>&^=R5-*(a|Bka4OCuAAwT)fe;k>9!6K(K zjJw}oFfN5V>xi-pmR#uE>CvDkz7&_%+s0f(!B;ycPg7nS&64vv4zHImoX}JlzW1F%A96l-y+&NfG|En1;p*hv z73Ym)?&gqn$;U4*FWbXB7)~e9)XR$GK0JtrIPjzcyIQTF*EYvde~7XY?Go^q3aSiD z$MT`pWG4Lq8SBCd%+J|(F!xn@`I;2rf3C^#1cwL5gXB7`%N*{~;o$6lKRf>S;`paW$NxP)|8y|M55mgW zG(UA?mVYBuxc^kue~*=420#M+)Dg@WF79RZ6W==BSRFRZZPdnu61B!YeHRUu_e&I5 z-R7@q;Hs**eC5aB;$~b>m8|h_kl{k*gN`50{#DiS*oCDt$-1v!gE|sqdQYsmFV0K` ztWehCX5utU-p1sA=OO^+_eQQ`UWds*LWM`p^Pg8^(|D_Qf6qa3u3C-HgF^DjrXg*& zet%rHvtq?W@5ZkR>_NN$-uM(Q1q?GeF^X7lSa8e}(iv2YM-z_19imAuIw#-ZdyIg_ zcWgpFeR-OF{^$<@wPXNaXs0$i6oIK+UoP^@XWGvD50%Cy2P3p+~{f zLR?jLy3-v&!+reh(GyD924ix{hw}1r5@Q-Zlbm1f8GpCm$!jbN9y@!vZ-F&H54|Bb z!}C1hcN3&kq30rf$qi$(4Dbp>xf0;;;1ICEU^EJiqJ6GPcNPo}f}|EwAI6L<{<5dr zz(MG~f1OrM{-@ohY+t<@YT|hP2Fc_75g1yW@n*5)9@rRBmk52Vh>uFRDZ^RnV3VEqqnnCQ5d-W{x=TS#!`RG z5Ltm{S`R}rCu$C=5Bcfeo+P`a&%HhbG@;?_W?W zf9HOf#X8nkoH2?6zet=FDK~I!Lgg3|;A*jpzTd2yEy!LVMK^c{vSwK;NRxWQg+Dn* z-py`Rh88M#2b@pQ!pl!jvH=d_=U+raz=pb~@L-@84_45IYfCFc(ML&)m>?t3?mZS1 zf16<1l?j~dV+|!l2*w|9s*Lg$%?)Lt>*EH=Xzj~r!zuohE zPtwyfn9jtbZ_iB0zD_O7umU7%u2xtm&F})$0La0Be`_BOvQO=2Nx~FTU1}T|p_zq> z(n}^(jBmOBpBc#S*1u3EF4wJNoC<7Xf0qNAc8!z?Yh##6XB16*LUPDS);&rxD=+K( zu>PS&9tQr~3&sCszw7(T2o!x=E~9W?x-C5OeAT({Ss~g@QwB{v_rsQPToG$aPssVA z(-z6!JgVC|W3v`o6v=s#0F2`SjZsc7XM<5hQOns70T|r0XzDMFPT&y5jvyJ7f0~{{(?Y{?(VW+Rk1@%3FA5bee@YO`7YRT5O|=NYB`>4E(T>OPAoxlT!oxxLHp2FM zea?CYyvNx`_G9Y1Kv=XpIBtspt2H8Z2yzuIh8?bC-3TNvDG(=^LA=Mq>YwX2$k zW&IGH7~9Rm)%B&fI^|cJo8=KqrkWk=!(;YU_L9MuUw%pcE0lEf7W`a!&nb~_#wS$@76&3DTV3qrlA=38LFYk__i#9bTE0I z+p{I+-=|bNt69KnvIeQgxyoBbc=WO#4l2zQBZEzh_W9HQKaBTJ%c8z!kyS!exk-0M zgI}@lubcW!>&-zesvhAA7Sd~m7Hqip^TSZsdQq+bWr+KhbGYsqTTRWk;kiQy>V>{+`tc=?yV z9KU+~=Qo2rpRb!{qn=uEBQEw}pYSSl8gqZ-ZR$rNmkKM%1+`zW&y7QGgX$gZZcSvP zgxVU@TgNFm#P)viI243La}ufY_e!%N0B#w7zhCxre-N};!jkaY%vh}Axv%0AP-T5F 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 xSt3;}P Date: Mon, 25 May 2020 16:12:13 +0900 Subject: [PATCH 004/707] Add rebase slash command --- .github/workflows/slash-command-dispatch.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/slash-command-dispatch.yml b/.github/workflows/slash-command-dispatch.yml index 11a9812..48d3529 100644 --- a/.github/workflows/slash-command-dispatch.yml +++ b/.github/workflows/slash-command-dispatch.yml @@ -34,5 +34,11 @@ jobs: "command": "cpr-example", "permission": "admin", "issue_type": "issue" + }, + { + "command": "rebase", + "permission": "admin", + "repository": "peter-evans/slash-command-dispatch-processor", + "issue_type": "pull-request" } ] From d77392faf026647e2e8bad2c312fe1707666727e Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Mon, 25 May 2020 17:15:16 +0900 Subject: [PATCH 005/707] Update slash command dispatch token --- .github/workflows/slash-command-dispatch.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/slash-command-dispatch.yml b/.github/workflows/slash-command-dispatch.yml index 48d3529..a0d6ab2 100644 --- a/.github/workflows/slash-command-dispatch.yml +++ b/.github/workflows/slash-command-dispatch.yml @@ -9,7 +9,7 @@ jobs: - name: Slash Command Dispatch uses: peter-evans/slash-command-dispatch@v1 with: - token: ${{ secrets.REPO_ACCESS_TOKEN }} + token: ${{ secrets.ACTIONS_BOT_TOKEN }} reaction-token: ${{ secrets.GITHUB_TOKEN }} config: > [ From c2d829c681f60bed1469d10b31939030b515775d Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Wed, 27 May 2020 11:43:25 +0900 Subject: [PATCH 006/707] Update documentation --- README.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 431957e..1ca3fbb 100644 --- a/README.md +++ b/README.md @@ -55,10 +55,10 @@ All inputs are **optional**. If not set, sensible default values will be used. | `project` | *Deprecated*. See [Create a project card](#create-a-project-card) for details. | | | `project-column` | *Deprecated*. See [Create a project card](#create-a-project-card) for details. | | | `draft` | Create a [draft pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests#draft-pull-requests). | `false` | -| `branch` | The branch name. See [Branch naming](#branch-naming) for details. | `create-pull-request/patch` | +| `branch` | The branch name. See [Action behaviour](#action-behaviour) for details. | `create-pull-request/patch` | | `request-to-parent` | Create the pull request in the parent repository of the checked out fork. See [push pull request branches to a fork](https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#push-pull-request-branches-to-a-fork) for details. | `false` | | `base` | Sets the pull request base branch. | Defaults to the branch checked out in the workflow. | -| `branch-suffix` | The branch suffix type. Valid values are `random`, `timestamp` and `short-commit-hash`. See [Branch naming](#branch-naming) for details. | | +| `branch-suffix` | The branch suffix type. Valid values are `random`, `timestamp` and `short-commit-hash`. See [Action behaviour](#action-behaviour) for details. | | ### Action outputs @@ -86,20 +86,29 @@ If there is some reason you need to use `actions/checkout@v1` the following step - run: git checkout "${GITHUB_REF:11}" ``` -### Branch naming +### Action behaviour -For branch naming there are two strategies. Create a fixed-name pull request branch that will be updated with new changes until it is merged or closed, OR, always create a new unique branch each time there are changes to be committed. +The default behaviour of the action is to create a pull request that will be continually updated with new changes until it is merged or closed. +Changes are committed and pushed to a fixed-name branch, the name of which can be configured with the `branch` input. +Any subsequent changes will be committed to the *same* branch and reflected in the open pull request. -#### Strategy A - Create and update a pull request branch (default) +How the action behaves: -This strategy is the default behaviour of the action. The input `branch` defaults to `create-pull-request/patch`. Changes will be committed to this branch and a pull request created. Any subsequent changes will be committed to the *same* branch and reflected in the open pull request. If the pull request is merged or closed a new one will be created. If subsequent changes cause the branch to no longer differ from the base the pull request will be automatically closed and the branch deleted. +- If there are changes (i.e. a diff exists with the checked out base branch), the changes will be pushed to a new `branch` and a pull request created. +- If there are no changes (i.e. no diff exists with the checked out base branch), no pull request will be created and the action exits silently. +- If a pull request already exists and there are no further changes (i.e. no diff with the current pull request branch) then the action exits silently. +- If a pull request exists and new changes on the base branch make the pull request unnecessary (i.e. there is no longer a diff between the base and pull request branch), the pull request is automatically closed and the branch deleted. -#### Strategy B - Always create a new pull request branch +For further details about how the action works and usage guidelines, see [Concepts, guidelines and advanced usage](docs/concepts-guidelines.md). -For this strategy there are three options to suffix the branch name. -The branch name is defined by the input `branch` and defaults to `create-pull-request/patch`. The following options are values for `branch-suffix`. +#### Alternative strategy - Always create a new pull request branch -- `random` - Commits will be made to a branch suffixed with a random alpha-numeric string. This option should be used if multiple pull requests will be created during the execution of a workflow. e.g. `create-pull-request/patch-6qj97jr`, `create-pull-request/patch-5jrjhvd` +For some use cases it *may* be desirable to always create a new unique branch each time there are changes to be committed. +This strategy is not recommended and mainly kept for backwards compatibility. + +To use this strategy, set input `branch-suffix` with one of the following options. + +- `random` - Commits will be made to a branch suffixed with a random alpha-numeric string. e.g. `create-pull-request/patch-6qj97jr`, `create-pull-request/patch-5jrjhvd` - `timestamp` - Commits will be made to a branch suffixed by a timestamp. e.g. `create-pull-request/patch-1569322532`, `create-pull-request/patch-1569322552` From 8d744a2cd3d94d3eb7e01cbba84b6aaf3aff1863 Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Tue, 2 Jun 2020 15:58:02 +0900 Subject: [PATCH 007/707] Remove reaction-token --- .github/workflows/slash-command-dispatch.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/slash-command-dispatch.yml b/.github/workflows/slash-command-dispatch.yml index a0d6ab2..7f0f421 100644 --- a/.github/workflows/slash-command-dispatch.yml +++ b/.github/workflows/slash-command-dispatch.yml @@ -10,7 +10,6 @@ jobs: uses: peter-evans/slash-command-dispatch@v1 with: token: ${{ secrets.ACTIONS_BOT_TOKEN }} - reaction-token: ${{ secrets.GITHUB_TOKEN }} config: > [ { From 926d56fcba4e2c2a3607430a2865fe20f888401c Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Tue, 2 Jun 2020 16:44:14 +0900 Subject: [PATCH 008/707] Update documentation --- docs/concepts-guidelines.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/concepts-guidelines.md b/docs/concepts-guidelines.md index 22b1faa..358bd24 100644 --- a/docs/concepts-guidelines.md +++ b/docs/concepts-guidelines.md @@ -241,7 +241,9 @@ jobs: image: alpine steps: - name: Install dependencies - run: apk --no-cache add git python3 + run: | + apk --no-cache add git python3 + python3 -m ensurepip - uses: actions/checkout@v2 From 5f7beeb2ff04cae211b735289f346ebe9957c17f Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Tue, 2 Jun 2020 18:16:23 +0900 Subject: [PATCH 009/707] Fix ci artifacts --- .github/workflows/ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d3bf45..52e26dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,6 +32,10 @@ jobs: with: name: dist path: dist + - uses: actions/upload-artifact@v2 + with: + name: action.yml + path: action.yml test: if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository @@ -49,6 +53,11 @@ jobs: with: name: dist path: dist + - if: matrix.target == 'built' || github.event_name == 'pull_request' + uses: actions/download-artifact@v2 + with: + name: action.yml + path: . - name: Create change run: date +%s > report.txt From 86ccd8cdef885c52827becd248befb18a4ad12d0 Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Wed, 3 Jun 2020 16:47:02 +0900 Subject: [PATCH 010/707] Add missing types --- dist/index.js | 18 +- package-lock.json | 3719 ++++++++++++++++++++++---------------------- src/git.ts | 22 +- src/setupPython.ts | 2 +- 4 files changed, 1921 insertions(+), 1840 deletions(-) diff --git a/dist/index.js b/dist/index.js index f4223ce..73bb52e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -4861,14 +4861,16 @@ function bytesToUuid(buf, offset) { var i = offset || 0; var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return ([bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]]]).join(''); + return ([ + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]] + ]).join(''); } module.exports = bytesToUuid; diff --git a/package-lock.json b/package-lock.json index 986733a..09facab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,9 +26,9 @@ } }, "@actions/io": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.1.tgz", - "integrity": "sha512-rhq+tfZukbtaus7xyUtwKfuiCRXd1hWSfmJNEpFgBQJ4woqPEpsBw04awicjwz9tyG2/MVhAEMfVn664Cri5zA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.2.tgz", + "integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg==" }, "@actions/tool-cache": { "version": "1.3.4", @@ -44,28 +44,28 @@ } }, "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.1" } }, "@babel/core": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", - "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.2.tgz", + "integrity": "sha512-KQmV9yguEjQsXqyOUGKjS4+3K8/DlOCE2pZcq4augdQmtTy5iv5EHtmMSJ7V4c1BIPjuwtZYqYLCq9Ga+hGBRQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.6", - "@babel/parser": "^7.9.6", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6", + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.2", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helpers": "^7.10.1", + "@babel/parser": "^7.10.2", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -81,166 +81,204 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true } } }, "@babel/generator": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", - "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "dev": true, "requires": { - "@babel/types": "^7.9.6", + "@babel/types": "^7.10.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } } }, "@babel/helper-function-name": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", - "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.9.5" + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" } }, "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz", + "integrity": "sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" } }, "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz", + "integrity": "sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" } }, "@babel/helper-module-transforms": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", - "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz", + "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.9.0", + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1", "lodash": "^4.17.13" } }, "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz", + "integrity": "sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" } }, "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", - "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz", + "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" } }, "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz", + "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", "dev": true, "requires": { - "@babel/types": "^7.8.3" + "@babel/types": "^7.10.1" } }, "@babel/helper-validator-identifier": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", - "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", "dev": true }, "@babel/helpers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", - "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz", + "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==", "dev": true, "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.10.1", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/parser": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", - "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -262,12 +300,12 @@ } }, "@babel/plugin-syntax-class-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz", - "integrity": "sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz", + "integrity": "sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-json-strings": { @@ -280,12 +318,12 @@ } }, "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz", - "integrity": "sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.1.tgz", + "integrity": "sha512-XyHIFa9kdrgJS91CUH+ccPVTnJShr8nLGc5bG2IhGXv5p1Rd+8BleGE5yzIg2Nc1QZAdHDa0Qp4m6066OL96Iw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-nullish-coalescing-operator": { @@ -298,12 +336,12 @@ } }, "@babel/plugin-syntax-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", - "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz", + "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.1" } }, "@babel/plugin-syntax-object-rest-spread": { @@ -334,18 +372,18 @@ } }, "@babel/runtime": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", - "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", + "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz", - "integrity": "sha512-6toWAfaALQjt3KMZQc6fABqZwUDDuWzz+cAfPhqyEnzxvdWOAkjwPNxgF8xlmo7OWLsSjaKjsskpKHRLaMArOA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz", + "integrity": "sha512-+a2M/u7r15o3dV1NEizr9bRi+KUVnrs/qYxF0Z06DAPx/4VCWaz1WA7EcbE+uqGgt39lp5akWGmHsTseIkHkHg==", "dev": true, "requires": { "core-js-pure": "^3.0.0", @@ -353,28 +391,28 @@ } }, "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" } }, "@babel/traverse": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", - "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" @@ -389,12 +427,12 @@ } }, "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.9.5", + "@babel/helper-validator-identifier": "^7.10.1", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -415,18 +453,176 @@ "minimist": "^1.2.0" } }, + "@graphql-toolkit/common": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@graphql-toolkit/common/-/common-0.10.7.tgz", + "integrity": "sha512-epcJvmIAo+vSEY76F0Dj1Ef6oeewT5pdMe1obHj7LHXN9V22O86aQzwdEEm1iG91qROqSw/apcDnSCMjuVeQVA==", + "dev": true, + "requires": { + "aggregate-error": "3.0.1", + "camel-case": "4.1.1", + "graphql-tools": "5.0.0", + "lodash": "4.17.15" + } + }, + "@graphql-toolkit/core": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@graphql-toolkit/core/-/core-0.10.7.tgz", + "integrity": "sha512-LXcFLG7XcRJrPz/xD+0cExzLx/ptVynDM20650/FbmHbKOU50d9mSbcsrzAOq/3f4q3HrRDssvn0f6pPm0EHMg==", + "dev": true, + "requires": { + "@graphql-toolkit/common": "0.10.7", + "@graphql-toolkit/schema-merging": "0.10.7", + "aggregate-error": "3.0.1", + "globby": "11.0.0", + "import-from": "^3.0.0", + "is-glob": "4.0.1", + "lodash": "4.17.15", + "p-limit": "2.3.0", + "resolve-from": "5.0.0", + "tslib": "1.11.2", + "unixify": "1.0.0", + "valid-url": "1.0.9" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "tslib": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz", + "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==", + "dev": true + } + } + }, + "@graphql-toolkit/graphql-file-loader": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@graphql-toolkit/graphql-file-loader/-/graphql-file-loader-0.10.7.tgz", + "integrity": "sha512-6tUIuw/YBlm0VyVgXgMrOXsEQ+WpXVgr2NQwHNzmZo82kPGqImveq7A2D3gBWLyVTcinDScRcKJMxM4kCF5T0A==", + "dev": true, + "requires": { + "@graphql-toolkit/common": "0.10.7", + "tslib": "1.11.2" + }, + "dependencies": { + "tslib": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz", + "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==", + "dev": true + } + } + }, + "@graphql-toolkit/json-file-loader": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@graphql-toolkit/json-file-loader/-/json-file-loader-0.10.7.tgz", + "integrity": "sha512-nVISrODqvn5LiQ4nKL5pz1Let/W1tuj2viEwrNyTS+9mcjaCE2nhV5MOK/7ZY0cR+XeA4N2u65EH1lQd63U3Cw==", + "dev": true, + "requires": { + "@graphql-toolkit/common": "0.10.7", + "tslib": "1.11.2" + }, + "dependencies": { + "tslib": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz", + "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==", + "dev": true + } + } + }, + "@graphql-toolkit/schema-merging": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@graphql-toolkit/schema-merging/-/schema-merging-0.10.7.tgz", + "integrity": "sha512-VngxJbVdRfXYhdMLhL90pqN+hD/2XTZwhHPGvpWqmGQhT6roc98yN3xyDyrWFYYsuiY4gTexdmrHQ3d7mzitwA==", + "dev": true, + "requires": { + "@graphql-toolkit/common": "0.10.7", + "deepmerge": "4.2.2", + "graphql-tools": "5.0.0", + "tslib": "1.11.2" + }, + "dependencies": { + "tslib": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz", + "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==", + "dev": true + } + } + }, + "@graphql-toolkit/url-loader": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@graphql-toolkit/url-loader/-/url-loader-0.10.7.tgz", + "integrity": "sha512-Ec3T4Zuo63LwG+RfK2ryz8ChPfncBf8fiSJ1xr68FtLDVznDNulvlNKFbfREE5koWejwsnJrjLCv6IX5IbhExg==", + "dev": true, + "requires": { + "@graphql-toolkit/common": "0.10.7", + "cross-fetch": "3.0.4", + "graphql-tools": "5.0.0", + "tslib": "1.11.2", + "valid-url": "1.0.9" + }, + "dependencies": { + "tslib": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz", + "integrity": "sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==", + "dev": true + } + } + }, "@istanbuljs/load-nyc-config": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", - "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", + "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" }, "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -454,14 +650,16 @@ "slash": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -473,36 +671,6 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -541,14 +709,16 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -561,27 +731,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -590,24 +739,6 @@ "requires": { "glob": "^7.1.3" } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -620,6 +751,30 @@ "@jest/fake-timers": "^26.0.1", "@jest/types": "^26.0.1", "jest-mock": "^26.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "@jest/fake-timers": { @@ -633,6 +788,30 @@ "jest-message-util": "^26.0.1", "jest-mock": "^26.0.1", "jest-util": "^26.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "@jest/globals": { @@ -644,6 +823,30 @@ "@jest/environment": "^26.0.1", "@jest/types": "^26.0.1", "expect": "^26.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "@jest/reporters": { @@ -679,14 +882,16 @@ "v8-to-istanbul": "^4.1.3" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -699,35 +904,11 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -740,6 +921,14 @@ "callsites": "^3.0.0", "graceful-fs": "^4.2.4", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "@jest/test-result": { @@ -752,6 +941,30 @@ "@jest/types": "^26.0.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "@jest/test-sequencer": { @@ -790,14 +1003,16 @@ "write-file-atomic": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -810,106 +1025,56 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, "@jest/types": { - "version": "26.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", - "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^1.1.1", "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "chalk": "^3.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" } }, "@sinonjs/commons": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.2.tgz", - "integrity": "sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.0.tgz", + "integrity": "sha512-wEj54PfsZ5jGSwMX68G8ZXFawcSglQSXqCftWX3ec8MDUzQdHgcKvw97awHbY0efQEL5iKUOAmmVtoYgmrSG4Q==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -925,9 +1090,9 @@ } }, "@types/babel__core": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz", - "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==", + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.8.tgz", + "integrity": "sha512-KXBiQG2OXvaPWFPDS1rD8yV9vO0OuWIqAEqLsbfX0oU2REN5KuoMnZ1gClWcBhO5I3n6oTVAmrMufOvRqdmFTQ==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -957,9 +1122,9 @@ } }, "@types/babel__traverse": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz", - "integrity": "sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.12.tgz", + "integrity": "sha512-t4CoEokHTfcyfb4hUaF9oOHu9RmmNWnm1CP0YmMqOOfClKascOmvlEM736vlqeScuGvBDsHkf8R2INd4DWreQA==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -987,9 +1152,9 @@ } }, "@types/istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz", + "integrity": "sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w==", "dev": true }, "@types/istanbul-lib-report": { @@ -1002,9 +1167,9 @@ } }, "@types/istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*", @@ -1019,106 +1184,6 @@ "requires": { "jest-diff": "^25.2.1", "pretty-format": "^25.2.1" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - } - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "@types/json-schema": { @@ -1139,10 +1204,16 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, "@types/prettier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.0.0.tgz", - "integrity": "sha512-/rM+sWiuOZ5dvuVzV37sUuklsbg+JPOP8d+nNFlo2ZtfpzPiPvh1/gc8liWOLBqe+sR+ZM7guPaIcTt6UZTo7Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.0.1.tgz", + "integrity": "sha512-boy4xPNEtiw6N3abRhBi/e7hNvy3Tt8E9ZRAQrwAGzoCGZS/1wjo9KY7JHhnfnEsG5wSjDbymCozUM9a3ea7OQ==", "dev": true }, "@types/stack-utils": { @@ -1152,9 +1223,9 @@ "dev": true }, "@types/yargs": { - "version": "15.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", - "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -1167,15 +1238,51 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "2.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz", - "integrity": "sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.1.0.tgz", + "integrity": "sha512-D52KwdgkjYc+fmTZKW7CZpH5ZBJREJKZXRrveMiRCmlzZ+Rw9wRVJ1JAmHQ9b/+Ehy1ZeaylofDB9wwXUt83wg==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "2.33.0", + "@typescript-eslint/experimental-utils": "3.1.0", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.0.0", + "semver": "^7.3.2", "tsutils": "^3.17.1" + }, + "dependencies": { + "@typescript-eslint/experimental-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.1.0.tgz", + "integrity": "sha512-Zf8JVC2K1svqPIk1CB/ehCiWPaERJBBokbMfNTNRczCbQSlQXaXtO/7OfYz9wZaecNvdSvVADt6/XQuIxhC79w==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "3.1.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.1.0.tgz", + "integrity": "sha512-+4nfYauqeQvK55PgFrmBWFVYb6IskLyOosYEmhH3mSVhfBp9AIJnjExdgDmKWoOBHRcPM8Ihfm2BFpZf0euUZQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } } }, "@typescript-eslint/experimental-utils": { @@ -1225,6 +1332,15 @@ } } }, + "@wry/equality": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", + "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + } + }, "@zeit/ncc": { "version": "0.22.1", "resolved": "https://registry.npmjs.org/@zeit/ncc/-/ncc-0.22.1.tgz", @@ -1238,9 +1354,9 @@ "dev": true }, "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", "dev": true }, "acorn-globals": { @@ -1265,10 +1381,20 @@ "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", "dev": true }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1278,12 +1404,20 @@ } }, "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1293,12 +1427,13 @@ "dev": true }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, "anymatch": { @@ -1309,6 +1444,61 @@ "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + } + } + }, + "apollo-link": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz", + "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==", + "dev": true, + "requires": { + "apollo-utilities": "^1.3.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.9.3", + "zen-observable-ts": "^0.8.21" + } + }, + "apollo-link-http-common": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz", + "integrity": "sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==", + "dev": true, + "requires": { + "apollo-link": "^1.2.14", + "ts-invariant": "^0.4.0", + "tslib": "^1.9.3" + } + }, + "apollo-upload-client": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/apollo-upload-client/-/apollo-upload-client-13.0.0.tgz", + "integrity": "sha512-lJ9/bk1BH1lD15WhWRha2J3+LrXrPIX5LP5EwiOUHv8PCORp4EUrcujrA3rI5hZeZygrTX8bshcuMdpqpSrvtA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.9.2", + "apollo-link": "^1.2.12", + "apollo-link-http-common": "^0.2.14", + "extract-files": "^8.0.0" + } + }, + "apollo-utilities": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz", + "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==", + "dev": true, + "requires": { + "@wry/equality": "^0.1.2", + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.10.0" } }, "argparse": { @@ -1359,6 +1549,12 @@ "is-string": "^1.0.5" } }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -1427,9 +1623,9 @@ "dev": true }, "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", "dev": true }, "axobject-query": { @@ -1468,14 +1664,16 @@ "slash": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -1487,36 +1685,6 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -1714,6 +1882,16 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "dev": true, + "requires": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -1736,14 +1914,13 @@ "dev": true }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "char-regex": { @@ -1787,6 +1964,12 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -1811,17 +1994,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "co": { @@ -1847,18 +2019,18 @@ } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "combined-stream": { @@ -1877,9 +2049,9 @@ "dev": true }, "comment-parser": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.4.tgz", - "integrity": "sha512-Nnl77/mt6sj1BiYSVMeMWzvD0183F2MFOJyFRmZHimUVDYS9J40AvXpiFA7RpU5pQH+HkvYc0dnsHpwW2xmbyQ==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.5.tgz", + "integrity": "sha512-iH9YA35ccw94nx5244GVkpyC9eVTsL71jZz6iz5w6RIf79JLF2AsXHXq9p6Oaohyl3sx5qSMnGsWUDFIAfWL4w==", "dev": true }, "component-emitter": { @@ -1927,35 +2099,38 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "cross-fetch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz", - "integrity": "sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=", + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "requires": { - "node-fetch": "2.1.2", - "whatwg-fetch": "2.0.4" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "cross-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.4.tgz", + "integrity": "sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw==", + "dev": true, + "requires": { + "node-fetch": "2.6.0", + "whatwg-fetch": "3.0.0" } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "cssom": { @@ -2108,6 +2283,12 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "deprecated-decorator": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", + "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=", + "dev": true + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2115,11 +2296,20 @@ "dev": true }, "diff-sequences": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.0.0.tgz", - "integrity": "sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg==", + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -2227,6 +2417,54 @@ "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } } }, "eslint": { @@ -2273,16 +2511,6 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, "chalk": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", @@ -2293,121 +2521,11 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -2466,76 +2584,18 @@ "ms": "2.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } } } }, "eslint-plugin-eslint-comments": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz", - "integrity": "sha512-QexaqrNeteFfRTad96W+Vi4Zj1KFbkHHNMMaHZEYcovKav6gdomyGzaxSDSL3GoIyUOo078wRAdYlu1caiauIQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5", @@ -2543,17 +2603,17 @@ }, "dependencies": { "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true } } }, "eslint-plugin-flowtype": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.0.3.tgz", - "integrity": "sha512-QtfUeODs6B7/girI8t/FeZ9FKb0vl7hRkWty/L4Ae3Shwfb79P/rf/S8pzjOxz0Bv0R0VHDN2ATubJfo1fXNcg==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.1.3.tgz", + "integrity": "sha512-UU+BbIxBflqJ171yxbd/HcOktCmOdhXbchIVIq/yBvKpLZXvfzNDOyJGcnuQYLaH840hdoIdU/bqxhoW6I0rIQ==", "dev": true, "requires": { "lodash": "^4.17.15", @@ -2585,33 +2645,18 @@ "read-pkg-up": ">=6.0.0", "supports-color": "^7.1.0", "svg-element-attributes": ">=1.2.1" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "eslint-plugin-graphql": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-graphql/-/eslint-plugin-graphql-3.1.1.tgz", - "integrity": "sha512-VNu2AipS8P1BAnE/tcJ2EmBWjFlCnG+1jKdUlFNDQjocWZlFiPpMu9xYNXePoEXK+q+jG51M/6PdhOjEgJZEaQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-graphql/-/eslint-plugin-graphql-4.0.0.tgz", + "integrity": "sha512-d5tQm24YkVvCEk29ZR5ScsgXqAGCjKlMS8lx3mS7FS/EKsWbkvXQImpvic03EpMIvNTBW5e+2xnHzXB/VHNZJw==", "dev": true, "requires": { - "graphql-config": "^2.0.1", - "lodash": "^4.11.1" + "@babel/runtime": "^7.10.0", + "graphql-config": "^3.0.2", + "lodash.flatten": "^4.4.0", + "lodash.without": "^4.4.0" } }, "eslint-plugin-import": { @@ -2653,72 +2698,12 @@ "isarray": "^1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, "read-pkg-up": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", @@ -2741,9 +2726,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "25.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-25.4.1.tgz", - "integrity": "sha512-EixCLTv36/etbr5GGC89n0GLDkU/5NmadPzI3x6gSzldqrZpyQVh6qqN3jarWdfTvJsimorP4KNCIwe5mk/7TA==", + "version": "27.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-27.0.0.tgz", + "integrity": "sha512-cgojh/+T8JNB3yBmLerFZz/md+h9rQgmz0qCbeezlPoS5eSMAzsTl3io4Ac4N9Z6o/6ilDKzmqwJHw0Z21RYKg==", "dev": true, "requires": { "comment-parser": "^0.7.4", @@ -2752,7 +2737,7 @@ "lodash": "^4.17.15", "regextras": "^0.7.1", "semver": "^6.3.0", - "spdx-expression-parse": "^3.0.0" + "spdx-expression-parse": "^3.0.1" } }, "eslint-plugin-jsx-a11y": { @@ -2933,6 +2918,57 @@ "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -3005,29 +3041,32 @@ "jest-regex-util": "^26.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "dev": true, "requires": { - "color-name": "~1.1.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", "dev": true } } @@ -3135,6 +3174,12 @@ } } }, + "extract-files": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-8.1.0.tgz", + "integrity": "sha512-PTGtfthZK79WUMk+avLmwx3NGdU8+iVFXC2NMGxKsn0MnihOG2lvumj+AZo8CTwTrwjXDgZ5tztbRlEdRjBonQ==", + "dev": true + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -3153,6 +3198,20 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "fast-glob": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", + "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3165,6 +3224,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "fb-watchman": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", @@ -3202,13 +3270,12 @@ } }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -3241,13 +3308,13 @@ "dev": true }, "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, @@ -3297,6 +3364,12 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, "get-stdin": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", @@ -3359,6 +3432,28 @@ "type-fest": "^0.8.1" } }, + "globby": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz", + "integrity": "sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } + } + }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", @@ -3372,35 +3467,44 @@ "dev": true }, "graphql-config": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.2.2.tgz", - "integrity": "sha512-mtv1ejPyyR2mJUUZNhljggU+B/Xl8tJJWf+h145hB+1Y48acSghFalhNtXfPBcYl2tJzpb+lGxfj3O7OjaiMgw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-3.0.2.tgz", + "integrity": "sha512-efoimZ4F2wF2OwZJzPq2KdPjQs1K+UgJSfsHoHBBA0TwveGyQ/0kS3lUphhJg/JXIrZociuRkfjrk8JC4iPPJQ==", "dev": true, "requires": { - "graphql-import": "^0.7.1", - "graphql-request": "^1.5.0", - "js-yaml": "^3.10.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.4" + "@graphql-toolkit/common": "~0.10.6", + "@graphql-toolkit/core": "~0.10.6", + "@graphql-toolkit/graphql-file-loader": "~0.10.6", + "@graphql-toolkit/json-file-loader": "~0.10.6", + "@graphql-toolkit/schema-merging": "~0.10.6", + "@graphql-toolkit/url-loader": "~0.10.6", + "cosmiconfig": "6.0.0", + "minimatch": "3.0.4", + "tslib": "^1.11.1" } }, - "graphql-import": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/graphql-import/-/graphql-import-0.7.1.tgz", - "integrity": "sha512-YpwpaPjRUVlw2SN3OPljpWbVRWAhMAyfSba5U47qGMOSsPLi2gYeJtngGpymjm9nk57RFWEpjqwh4+dpYuFAPw==", + "graphql-tools": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-5.0.0.tgz", + "integrity": "sha512-5zn3vtn//382b7G3Wzz3d5q/sh+f7tVrnxeuhTMTJ7pWJijNqLxH7VEzv8VwXCq19zAzHYEosFHfXiK7qzvk7w==", "dev": true, "requires": { - "lodash": "^4.17.4", - "resolve-from": "^4.0.0" - } - }, - "graphql-request": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-1.8.2.tgz", - "integrity": "sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg==", - "dev": true, - "requires": { - "cross-fetch": "2.2.2" + "apollo-link": "^1.2.14", + "apollo-upload-client": "^13.0.0", + "deprecated-decorator": "^0.1.6", + "form-data": "^3.0.0", + "iterall": "^1.3.0", + "node-fetch": "^2.6.0", + "tslib": "^1.11.1", + "uuid": "^7.0.3" + }, + "dependencies": { + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "dev": true + } } }, "growly": { @@ -3436,9 +3540,9 @@ } }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "has-symbols": { @@ -3562,6 +3666,23 @@ "resolve-from": "^4.0.0" } }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, "import-local": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", @@ -3570,6 +3691,51 @@ "requires": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } } }, "imurmurhash": { @@ -3578,6 +3744,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3613,58 +3785,6 @@ "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "internal-slot": { @@ -3717,9 +3837,9 @@ "dev": true }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-ci": { @@ -3918,15 +4038,12 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", - "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.0.0", "semver": "^6.3.0" @@ -3941,23 +4058,6 @@ "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "istanbul-lib-source-maps": { @@ -3969,6 +4069,14 @@ "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "istanbul-reports": { @@ -3981,6 +4089,12 @@ "istanbul-lib-report": "^3.0.0" } }, + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", + "dev": true + }, "jest": { "version": "26.0.1", "resolved": "https://registry.npmjs.org/jest/-/jest-26.0.1.tgz", @@ -3992,14 +4106,16 @@ "jest-cli": "^26.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4012,27 +4128,6 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "jest-cli": { "version": "26.0.1", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.0.1.tgz", @@ -4053,15 +4148,6 @@ "prompts": "^2.0.1", "yargs": "^15.3.1" } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -4076,21 +4162,32 @@ "throat": "^5.0.0" }, "dependencies": { - "cross-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", - "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "execa": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz", - "integrity": "sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz", + "integrity": "sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==", "dev": true, "requires": { "cross-spawn": "^7.0.0", @@ -4127,36 +4224,6 @@ "requires": { "path-key": "^3.0.0" } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4186,14 +4253,16 @@ "throat": "^5.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4206,34 +4275,16 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "pretty-format": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", + "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", "dev": true, "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" + "@jest/types": "^26.0.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" } } } @@ -4264,14 +4315,16 @@ "pretty-format": "^26.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4284,100 +4337,36 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", "dev": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "pretty-format": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", + "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "@jest/types": "^26.0.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" } } } }, "jest-diff": { - "version": "26.0.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.0.1.tgz", - "integrity": "sha512-odTcHyl5X+U+QsczJmOjWw5tPvww+y9Yim5xzqxVl/R1j4z71+fHW4g8qu1ugMmKdFdxw+AtQgs5mupPnzcIBQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", "dev": true, "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.0.0", - "jest-get-type": "^26.0.0", - "pretty-format": "^26.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" } }, "jest-docblock": { @@ -4402,14 +4391,16 @@ "pretty-format": "^26.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4422,34 +4413,22 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", "dev": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "pretty-format": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", + "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "@jest/types": "^26.0.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" } } } @@ -4466,6 +4445,30 @@ "jest-mock": "^26.0.1", "jest-util": "^26.0.1", "jsdom": "^16.2.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "jest-environment-node": { @@ -4479,12 +4482,36 @@ "@jest/types": "^26.0.1", "jest-mock": "^26.0.1", "jest-util": "^26.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "jest-get-type": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", - "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", "dev": true }, "jest-haste-map": { @@ -4508,13 +4535,26 @@ "which": "^2.0.2" }, "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "isexe": "^2.0.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } } } @@ -4544,14 +4584,16 @@ "throat": "^5.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4564,34 +4606,16 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "pretty-format": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", + "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", "dev": true, "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" + "@jest/types": "^26.0.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" } } } @@ -4604,6 +4628,48 @@ "requires": { "jest-get-type": "^26.0.0", "pretty-format": "^26.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", + "dev": true + }, + "pretty-format": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", + "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", + "dev": true, + "requires": { + "@jest/types": "^26.0.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + } } }, "jest-matcher-utils": { @@ -4618,14 +4684,16 @@ "pretty-format": "^26.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4638,34 +4706,40 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "diff-sequences": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.0.0.tgz", + "integrity": "sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg==", + "dev": true + }, + "jest-diff": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.0.1.tgz", + "integrity": "sha512-odTcHyl5X+U+QsczJmOjWw5tPvww+y9Yim5xzqxVl/R1j4z71+fHW4g8qu1ugMmKdFdxw+AtQgs5mupPnzcIBQ==", "dev": true, "requires": { - "color-name": "~1.1.4" + "chalk": "^4.0.0", + "diff-sequences": "^26.0.0", + "jest-get-type": "^26.0.0", + "pretty-format": "^26.0.1" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", "dev": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "pretty-format": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", + "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "@jest/types": "^26.0.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" } } } @@ -4686,14 +4760,16 @@ "stack-utils": "^2.0.2" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4705,36 +4781,6 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -4745,6 +4791,30 @@ "dev": true, "requires": { "@jest/types": "^26.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "jest-pnp-resolver": { @@ -4775,14 +4845,16 @@ "slash": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4794,36 +4866,6 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -4836,6 +4878,30 @@ "@jest/types": "^26.0.1", "jest-regex-util": "^26.0.0", "jest-snapshot": "^26.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "jest-runner": { @@ -4865,14 +4931,16 @@ "throat": "^5.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4884,36 +4952,6 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -4951,14 +4989,16 @@ "yargs": "^15.3.1" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -4971,35 +5011,11 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { + "strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -5035,14 +5051,16 @@ "semver": "^7.3.2" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -5055,41 +5073,47 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "diff-sequences": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.0.0.tgz", + "integrity": "sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg==", + "dev": true + }, + "jest-diff": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.0.1.tgz", + "integrity": "sha512-odTcHyl5X+U+QsczJmOjWw5tPvww+y9Yim5xzqxVl/R1j4z71+fHW4g8qu1ugMmKdFdxw+AtQgs5mupPnzcIBQ==", "dev": true, "requires": { - "color-name": "~1.1.4" + "chalk": "^4.0.0", + "diff-sequences": "^26.0.0", + "jest-get-type": "^26.0.0", + "pretty-format": "^26.0.1" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", "dev": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "pretty-format": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", + "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", + "dev": true, + "requires": { + "@jest/types": "^26.0.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -5106,14 +5130,16 @@ "make-dir": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -5125,36 +5151,6 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -5172,14 +5168,16 @@ "pretty-format": "^26.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "camelcase": { @@ -5198,34 +5196,22 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "jest-get-type": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.0.0.tgz", + "integrity": "sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg==", "dev": true }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "pretty-format": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", + "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "@jest/types": "^26.0.1", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" } } } @@ -5244,14 +5230,16 @@ "string-length": "^4.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "@jest/types": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.0.1.tgz", + "integrity": "sha512-IbtjvqI9+eS1qFnOIEL7ggWmT+iK/U+Vde9cGWtYb/b6XgKb3X44ZAe/z9YZzoAAZ/E92m0DqrilF934IGNnQA==", "dev": true, "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, "chalk": { @@ -5263,36 +5251,6 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -5304,23 +5262,6 @@ "requires": { "merge-stream": "^2.0.0", "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "js-tokens": { @@ -5443,12 +5384,12 @@ } }, "jsx-ast-utils": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", - "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.3.0.tgz", + "integrity": "sha512-3HNoc7nZ1hpZIKB3hJ7BlFRkzCx2BynRtfSwbkqZdpRdvAPsGMnzclPwrvDBS7/lalHTj21NwIeaEpysHBOudg==", "dev": true, "requires": { - "array-includes": "^3.0.3", + "array-includes": "^3.1.1", "object.assign": "^4.1.0" } }, @@ -5471,13 +5412,13 @@ "dev": true }, "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, "lines-and-columns": { @@ -5506,22 +5447,17 @@ "requires": { "error-ex": "^1.2.0" } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true } } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -5530,6 +5466,12 @@ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -5542,6 +5484,12 @@ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, + "lodash.without": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", + "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", + "dev": true + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -5551,6 +5499,15 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "dev": true, + "requires": { + "tslib": "^1.10.0" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -5596,6 +5553,12 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "merge2": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.0.tgz", + "integrity": "sha512-jxzaaEHzHbWqSj2fn02NhgvJSYT6RQYNGBDh4xL8ynXzzEhrtolRQ5AKCNXX99mX/JbwD9uI6gK5Y1dzZcUUtQ==", + "dev": true + }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", @@ -5715,10 +5678,20 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "dev": true, + "requires": { + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, "node-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", - "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", "dev": true }, "node-int64": { @@ -5734,9 +5707,9 @@ "dev": true }, "node-notifier": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-7.0.0.tgz", - "integrity": "sha512-y8ThJESxsHcak81PGpzWwQKxzk+5YtP3IxR8AYdpXQ1IB6FmcVzFdZXrkPin49F/DKUCfeeiziB8ptY9npzGuA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-7.0.1.tgz", + "integrity": "sha512-VkzhierE7DBmQEElhTGJIoiZa1oqRijOtgOlsXg32KrJRXsPy0NXFBqWGW/wTswnJlDCs5viRYaqWguqzsKcmg==", "dev": true, "optional": true, "requires": { @@ -5761,16 +5734,6 @@ "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", "dev": true, "optional": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -5795,10 +5758,13 @@ } }, "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } }, "npm-run-path": { "version": "2.0.2", @@ -5807,6 +5773,14 @@ "dev": true, "requires": { "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -5892,14 +5866,13 @@ } }, "object.entries": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", - "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", + "es-abstract": "^1.17.5", "has": "^1.0.3" } }, @@ -5955,17 +5928,17 @@ } }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, "os-tmpdir": { @@ -5996,12 +5969,29 @@ } }, "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^1.1.0" + }, + "dependencies": { + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } } }, "p-try": { @@ -6037,6 +6027,16 @@ "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", "dev": true }, + "pascal-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", + "dev": true, + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", @@ -6044,9 +6044,9 @@ "dev": true }, "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { @@ -6056,9 +6056,9 @@ "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { @@ -6068,13 +6068,10 @@ "dev": true }, "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true }, "performance-now": { "version": "2.1.0", @@ -6104,12 +6101,12 @@ } }, "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^4.0.0" + "find-up": "^2.1.0" } }, "posix-character-classes": { @@ -6119,9 +6116,9 @@ "dev": true }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "prettier": { @@ -6140,42 +6137,15 @@ } }, "pretty-format": { - "version": "26.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.0.1.tgz", - "integrity": "sha512-SWxz6MbupT3ZSlL0Po4WF/KujhQaVehijR2blyRDCzk9e45EaYMVhMBn49fnRuHxtkSpXTes1GxNpVmH86Bxfw==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", "dev": true, "requires": { - "@jest/types": "^26.0.1", + "@jest/types": "^25.5.0", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } } }, "progress": { @@ -6240,22 +6210,24 @@ "dev": true }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" }, "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } } } }, @@ -6268,6 +6240,62 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + } } }, "regenerator-runtime": { @@ -6354,6 +6382,17 @@ "uuid": "^3.3.2" }, "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -6464,6 +6503,12 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -6485,6 +6530,12 @@ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, "rxjs": { "version": "6.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", @@ -6635,15 +6686,6 @@ "to-regex": "^3.0.2" } }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -6700,18 +6742,18 @@ } }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "shellwords": { @@ -6732,9 +6774,9 @@ } }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "sisteransi": { @@ -6760,6 +6802,30 @@ "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -6816,12 +6882,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true } } }, @@ -6897,9 +6957,9 @@ } }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { @@ -6923,6 +6983,14 @@ "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "source-map-url": { @@ -6932,9 +7000,9 @@ "dev": true }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -6948,9 +7016,9 @@ "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -7047,17 +7115,6 @@ "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "string-natural-compare": { @@ -7075,17 +7132,6 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "string.prototype.matchall": { @@ -7154,9 +7200,9 @@ } }, "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-eof": { @@ -7178,12 +7224,12 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, "supports-hyperlinks": { @@ -7194,23 +7240,6 @@ "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "svg-element-attributes": { @@ -7398,6 +7427,15 @@ "punycode": "^2.1.1" } }, + "ts-invariant": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + } + }, "ts-jest": { "version": "25.5.1", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz", @@ -7452,12 +7490,12 @@ "dev": true }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-detect": { @@ -7499,6 +7537,15 @@ "set-value": "^2.0.1" } }, + "unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=", + "dev": true, + "requires": { + "normalize-path": "^2.1.1" + } + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -7561,20 +7608,20 @@ "dev": true }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", "dev": true }, "v8-to-istanbul": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz", - "integrity": "sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz", + "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -7590,6 +7637,12 @@ } } }, + "valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -7654,9 +7707,9 @@ } }, "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==", "dev": true }, "whatwg-mimetype": { @@ -7666,13 +7719,13 @@ "dev": true }, "whatwg-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.0.0.tgz", - "integrity": "sha512-41ou2Dugpij8/LPO5Pq64K5q++MnRCBpEHvQr26/mArEKTkCV5aoXIqyhuYtE0pkqScXwhf2JP57rkRTYM29lQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.1.0.tgz", + "integrity": "sha512-vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw==", "dev": true, "requires": { "lodash.sortby": "^4.7.0", - "tr46": "^2.0.0", + "tr46": "^2.0.2", "webidl-conversions": "^5.0.0" }, "dependencies": { @@ -7685,9 +7738,9 @@ } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -7714,42 +7767,6 @@ "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "wrappy": { @@ -7780,9 +7797,9 @@ } }, "ws": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz", - "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz", + "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==", "dev": true }, "xml-name-validator": { @@ -7812,6 +7829,12 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true + }, "yargs": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", @@ -7829,6 +7852,42 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } } }, "yargs-parser": { @@ -7840,6 +7899,22 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==", + "dev": true + }, + "zen-observable-ts": { + "version": "0.8.21", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", + "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", + "dev": true, + "requires": { + "tslib": "^1.9.3", + "zen-observable": "^0.8.0" + } } } } diff --git a/src/git.ts b/src/git.ts index b33a72c..c205158 100644 --- a/src/git.ts +++ b/src/git.ts @@ -50,7 +50,11 @@ export async function execGit( return result } -export async function addConfigOption(repoPath, name, value): Promise { +export async function addConfigOption( + repoPath: string, + name: string, + value: string +): Promise { const result = await execGit( repoPath, ['config', '--local', '--add', name, value], @@ -60,8 +64,8 @@ export async function addConfigOption(repoPath, name, value): Promise { } export async function unsetConfigOption( - repoPath, - name, + repoPath: string, + name: string, valueRegex = '.' ): Promise { const result = await execGit( @@ -73,8 +77,8 @@ export async function unsetConfigOption( } export async function configOptionExists( - repoPath, - name, + repoPath: string, + name: string, valueRegex = '.' ): Promise { const result = await execGit( @@ -86,8 +90,8 @@ export async function configOptionExists( } export async function getConfigOption( - repoPath, - name, + repoPath: string, + name: string, valueRegex = '.' ): Promise { const option = new ConfigOption() @@ -102,8 +106,8 @@ export async function getConfigOption( } export async function getAndUnsetConfigOption( - repoPath, - name, + repoPath: string, + name: string, valueRegex = '.' ): Promise { if (await configOptionExists(repoPath, name, valueRegex)) { diff --git a/src/setupPython.ts b/src/setupPython.ts index ff2cd82..d6f1cb8 100644 --- a/src/setupPython.ts +++ b/src/setupPython.ts @@ -10,7 +10,7 @@ import * as semver from 'semver' * @param {string} versionSpec version of Python * @param {string} arch architecture (x64|x32) */ -export function setupPython(versionSpec, arch): Promise { +export function setupPython(versionSpec: string, arch: string): Promise { return new Promise(resolve => { const IS_WINDOWS = process.platform === 'win32' From 5d969a55c17a248f517863252a0277bac22088eb Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Fri, 5 Jun 2020 18:23:04 +0900 Subject: [PATCH 011/707] Add gradle example --- docs/examples.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/docs/examples.md b/docs/examples.md index 5e326f4..6e5732e 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -5,6 +5,7 @@ - [Keep a branch up-to-date with another](#keep-a-branch-up-to-date-with-another) - [Use case: Create a pull request to update X periodically](#use-case-create-a-pull-request-to-update-x-periodically) - [Update NPM dependencies](#update-npm-dependencies) + - [Update Gradle dependencies](#update-gradle-dependencies) - [Update SwaggerUI for GitHub Pages](#update-swaggerui-for-github-pages) - [Spider and download a website](#spider-and-download-a-website) - [Use case: Create a pull request to update X by calling the GitHub API](#use-case-create-a-pull-request-to-update-x-by-calling-the-github-api) @@ -144,6 +145,44 @@ jobs: - run: npm run build ``` +### Update Gradle dependencies + +The following workflow will create a pull request for Gradle dependencies. +It requires first configuring your project to use Gradle lockfiles. +See [here](https://github.com/peter-evans/gradle-auto-dependency-updates) for how to configure your project and use the following workflow. + +```yml +name: Update Dependencies +on: + schedule: + - cron: '0 1 * * 1' +jobs: + update-dep: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Perform dependency resolution and write new lockfiles + run: ./gradlew dependencies --write-locks + - name: Create Pull Request + uses: peter-evans/create-pull-request@v2 + with: + token: ${{ secrets.PAT }} + commit-message: Update dependencies + title: Update dependencies + body: | + - Dependency updates + + Auto-generated by [create-pull-request][1] + + [1]: https://github.com/peter-evans/create-pull-request + branch: update-dependencies +``` + ### Update SwaggerUI for GitHub Pages When using [GitHub Pages to host Swagger documentation](https://github.com/peter-evans/swagger-github-pages), this workflow updates the repository with the latest distribution of [SwaggerUI](https://github.com/swagger-api/swagger-ui). From 14ee9d1df2e00f782e04311f0696047c7b6c447b Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Sat, 27 Jun 2020 16:45:24 +0900 Subject: [PATCH 012/707] Parse repo urls with credentials --- dist/cpr/common.py | 2 +- dist/cpr/test_common.py | 6 ++++++ src/cpr/common.py | 2 +- src/cpr/test_common.py | 6 ++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/dist/cpr/common.py b/dist/cpr/common.py index 99f3f7c..faf0d03 100644 --- a/dist/cpr/common.py +++ b/dist/cpr/common.py @@ -11,7 +11,7 @@ def get_random_string(length=7, chars=string.ascii_lowercase + string.digits): def parse_github_repository(url): # Parse the protocol and github repository from a URL # e.g. HTTPS, peter-evans/create-pull-request - https_pattern = re.compile(r"^https://github.com/(.+/.+)$") + https_pattern = re.compile(r"^https://.*@?github.com/(.+/.+)$") ssh_pattern = re.compile(r"^git@github.com:(.+/.+).git$") match = https_pattern.match(url) diff --git a/dist/cpr/test_common.py b/dist/cpr/test_common.py index bd8419a..9409258 100644 --- a/dist/cpr/test_common.py +++ b/dist/cpr/test_common.py @@ -16,6 +16,12 @@ def test_parse_github_repository_success(): assert protocol == "HTTPS" assert repository == "peter-evans/create-pull-request" + protocol, repository = cmn.parse_github_repository( + "https://xxx:x-oauth-basic@github.com/peter-evans/create-pull-request" + ) + assert protocol == "HTTPS" + assert repository == "peter-evans/create-pull-request" + protocol, repository = cmn.parse_github_repository( "git@github.com:peter-evans/create-pull-request.git" ) diff --git a/src/cpr/common.py b/src/cpr/common.py index 99f3f7c..faf0d03 100644 --- a/src/cpr/common.py +++ b/src/cpr/common.py @@ -11,7 +11,7 @@ def get_random_string(length=7, chars=string.ascii_lowercase + string.digits): def parse_github_repository(url): # Parse the protocol and github repository from a URL # e.g. HTTPS, peter-evans/create-pull-request - https_pattern = re.compile(r"^https://github.com/(.+/.+)$") + https_pattern = re.compile(r"^https://.*@?github.com/(.+/.+)$") ssh_pattern = re.compile(r"^git@github.com:(.+/.+).git$") match = https_pattern.match(url) diff --git a/src/cpr/test_common.py b/src/cpr/test_common.py index bd8419a..9409258 100644 --- a/src/cpr/test_common.py +++ b/src/cpr/test_common.py @@ -16,6 +16,12 @@ def test_parse_github_repository_success(): assert protocol == "HTTPS" assert repository == "peter-evans/create-pull-request" + protocol, repository = cmn.parse_github_repository( + "https://xxx:x-oauth-basic@github.com/peter-evans/create-pull-request" + ) + assert protocol == "HTTPS" + assert repository == "peter-evans/create-pull-request" + protocol, repository = cmn.parse_github_repository( "git@github.com:peter-evans/create-pull-request.git" ) From e9a825aacd71c2d551fdc26c0e8b53b847679feb Mon Sep 17 00:00:00 2001 From: peter-evans Date: Sat, 27 Jun 2020 08:06:58 +0000 Subject: [PATCH 013/707] Update distribution --- dist/vendor/certifi-2020.4.5.1.tar.gz | Bin 158038 -> 0 bytes dist/vendor/certifi-2020.6.20.tar.gz | Bin 0 -> 157997 bytes dist/vendor/requests-2.23.0.tar.gz | Bin 114327 -> 0 bytes dist/vendor/requests-2.24.0.tar.gz | Bin 0 -> 115071 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 dist/vendor/certifi-2020.4.5.1.tar.gz create mode 100644 dist/vendor/certifi-2020.6.20.tar.gz delete mode 100644 dist/vendor/requests-2.23.0.tar.gz create mode 100644 dist/vendor/requests-2.24.0.tar.gz diff --git a/dist/vendor/certifi-2020.4.5.1.tar.gz b/dist/vendor/certifi-2020.4.5.1.tar.gz deleted file mode 100644 index 11408d47edb833c5e78328954587e2114ed86dd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158038 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