From a272edc0293ccc14d2e27f4717f6fd10b9f5148b Mon Sep 17 00:00:00 2001 From: dannymartinm Date: Thu, 8 Sep 2022 15:57:15 -0500 Subject: [PATCH 01/10] Adding all changes under gh-actions-self-hosted-runners folder in PR#22703 in order to create a new PR only with Infra related work. --- .../gh-actions-self-hosted-runners/README.md | 121 ++++++++++++++++++ .../diagrams/gh-actions-k8s-runners-pod.png | Bin 0 -> 72689 bytes .../self-hosted-runners-architecture.png | Bin 0 -> 201523 bytes .../self-hosted-runners-delete-function.png | Bin 0 -> 77310 bytes .../helper-functions/README.md | 39 ++++++ .../cloud-functions/example.env | 8 ++ .../cloud-functions/generateToken/index.js | 67 ++++++++++ .../generateToken/package.json | 14 ++ .../monitorRunnersStatus/index.js | 86 +++++++++++++ .../monitorRunnersStatus/package.json | 14 ++ .../removeOfflineRunners/index.js | 73 +++++++++++ .../removeOfflineRunners/package.json | 14 ++ .../self-hosted-linux/README.md | 100 +++++++++++++++ .../self-hosted-linux/docker/Dockerfile | 59 +++++++++ .../docker/docker-compose.yml | 30 +++++ .../self-hosted-linux/docker/entrypoint.sh | 58 +++++++++ .../self-hosted-linux/docker/example.var.env | 7 + .../kubernetes/delete-k8s-deployment.sh | 20 +++ .../kubernetes/github-actions-deployment.yml | 76 +++++++++++ .../kubernetes/github-actions-hpa.yml | 29 +++++ .../kubernetes/github-actions-secrets.yml | 30 +++++ .../kubernetes/run-k8s-deployment.sh | 22 ++++ .../self-hosted-windows/README.md | 43 +++++++ .../self-hosted-windows/shutdownScript.ps1 | 24 ++++ .../self-hosted-windows/startupScript.ps1 | 50 ++++++++ 25 files changed, 984 insertions(+) create mode 100644 .github/gh-actions-self-hosted-runners/README.md create mode 100644 .github/gh-actions-self-hosted-runners/diagrams/gh-actions-k8s-runners-pod.png create mode 100644 .github/gh-actions-self-hosted-runners/diagrams/self-hosted-runners-architecture.png create mode 100644 .github/gh-actions-self-hosted-runners/diagrams/self-hosted-runners-delete-function.png create mode 100644 .github/gh-actions-self-hosted-runners/helper-functions/README.md create mode 100644 .github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/example.env create mode 100644 .github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js create mode 100644 .github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/package.json create mode 100644 .github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js create mode 100644 .github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/package.json create mode 100644 .github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js create mode 100644 .github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/package.json create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/README.md create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/docker/docker-compose.yml create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/docker/entrypoint.sh create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/docker/example.var.env create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/delete-k8s-deployment.sh create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-deployment.yml create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-hpa.yml create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-secrets.yml create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/run-k8s-deployment.sh create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-windows/README.md create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-windows/shutdownScript.ps1 create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-windows/startupScript.ps1 diff --git a/.github/gh-actions-self-hosted-runners/README.md b/.github/gh-actions-self-hosted-runners/README.md new file mode 100644 index 000000000000..c5f9f483a8c3 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/README.md @@ -0,0 +1,121 @@ + +# GitHub Actions - Self-hosted Runners +The current GitHub Actions workflows are being tested on multiple operating systems, such as Ubuntu, Windows and MacOS. The way to migrate these runners from GitHub to GCP is by implementing self-hosted runners, so we implemented them in both Ubuntu and Windows environments, going with Google Kubernetes Engine and Google Cloud Compute VMs instances respectively. + +On the other hand, we will rely on GitHub-hosted runners for MacOS builds until a straightforward implementation approach comes out. + +## Ubuntu +Ubuntu Self-hosted runners are stored in Artifact Registry and implemented using Google Kubernetes Engine with the following specifications: + +#### Cluster +* Cluster: [gh-actions-linux-runners](https://console.cloud.google.com/kubernetes/clusters/details/us-central1-a/gh-actions-linux-runners/details?project=apache-beam-testing) +* Image: [linux-github-actions-runner](https://console.cloud.google.com/artifacts/docker/apache-beam-testing/us-central1/beam-github-actions/linux-github-actions-runner?project=apache-beam-testing) + +#### Pool +* Number of nodes: 5 +* Cluster Autoscaler: ON + * Minimum number of nodes: 5 + * Maximum number of nodes: 10 + +#### Node +* Machine Type: e2-custom-6-18432 +* Disk Size: 100 GB +* CPU: 6 vCPUs +* Memory : 18 GB + +#### Pod +##### Container 1: gh-actions-runner +* Image: $LOCAL_IMAGE_NAME LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:latest +* CPU: 2 +* Memory: 1028 Mi +* Volumes + * gcloud-key + * docker-certs-client +* Environment variables + * Container variables + * GOOGLE_APPLICATION_CREDENTIALS + * DOCKER_HOST + * DOCKER_TLS_VERIFY + * DOCKER_CERT_PATH + * Kubernetes secret env variables + * github-actions-secrets + * gcloud-key + +##### Container 2: dind +* Image: `docker:20.10.17-dind` +* Volumes + * dind-storage + * docker-certs-client + +###### Pod Diagram +![PodDiagram](diagrams/gh-actions-k8s-runners-pod.png) + +#### AutoScaling +* Horizontal Pod Autoscaling + * 5-10 nodes (From Pool Cluster Autoscaler) + * HorizontalPodAutoscaler + * Min replicas: 10 + * Max replicas: 20 + * CPU utilization: 70% +* Vertical Pod Autoscaling + * updateMode: "Auto" + + +## Windows +Windows Virtual machines have the following specifications + +#### VM specifications +* Instance Template: _TODO: Add GCP link when final resources are in place._ +* Machine Type: n2-standard-2 +* Disk Size: 70 GB +* Disk Image: [disk-image-windows-runner](https://console.cloud.google.com/compute/imagesDetail/projects/apache-beam-testing/global/images/disk-image-windows-runner?project=apache-beam-testing) +* CPU: 2 vCPUs +* Memory : 8 GB + +#### Instance group settings +* Region: us-west1 (multizone) +* Scale-out metric: 70% of CPU Usage. +* Cooldown period: 300s + +#### Notes: +At first glance we considered implementing Windows runners using K8s, however this was not optimal because of the following reasons: + +* VS Build tools are required for certain workflows, unfortunately official images that support this dependency are huge in size, reaching 20GB easily which is not an ideal case for k8S management. +* Windows Subsystem For Linux(WSL) is a feature that allows to execute bash scripts inside Windows which removes tech debt by avoiding writing steps in powershell, but this feature is disabled with payload removed in Windows containers. + + +## Self-Hosted Runners Architecture +![Diagram](diagrams/self-hosted-runners-architecture.png) + + +## GitHub Actions Workflow - Monitor Self-hosted Runners + +In order to monitor the Self-hosted Runners status, we have implemented a separate GitHub Actions workflow using GitHub-hosted runners, this workflow periodically calls a Cloud Function that serves data regarding the number of `active` and `offline` runners. In case of failure this workflow will send an email +alert to the dev distribution email `dev@beam.apache.org`. + +The Cloud Function uses the endpoints provided by the installed GitHub App to retrieve information about the runners. + +## Cronjob - Delete Unused Self-hosted Runners + +Depending on the termination event, sometimes the removal script for offline runners is not triggered correctly from inside the VMs or K8s pod, because of that an additional pipeline was created in order to clean up the list of GitHub runners in the group. + +This was implemented using a [GCP Cloud Function](https://console.cloud.google.com/functions/details/us-central1/remove-self-hosted-runners-group?env=gen1&project=apache-beam-testing&tab=source) [[code]](./helper-functions/cloud-functions/removeOfflineRunners) subscribed to a [Pub/Sub](https://console.cloud.google.com/cloudpubsub/topic/detail/remove-runners?referrer=search&project=apache-beam-testing) topic, the topic is triggered through a [Cloud Scheduler](https://console.cloud.google.com/cloudscheduler/jobs/edit/us-central1/runners-clean-up-schedule?project=apache-beam-testing) that is executed once per day, the function consumes a [GitHub API](https://docs.github.com/en/rest/reference/actions#delete-a-self-hosted-runner-from-an-organization) to delete offline self-hosted runners from the organization retrieving the token with its service account to secrets manager. + + +![Delete Offline Self-hosted Runners](diagrams/self-hosted-runners-delete-function.png) \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/diagrams/gh-actions-k8s-runners-pod.png b/.github/gh-actions-self-hosted-runners/diagrams/gh-actions-k8s-runners-pod.png new file mode 100644 index 0000000000000000000000000000000000000000..882aafcb246ede19246601f693aaebfb5f380750 GIT binary patch literal 72689 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 Y3}GvFTQ^*J6UqPtp00i_>zopr0K31Ood5s; literal 0 HcmV?d00001 diff --git a/.github/gh-actions-self-hosted-runners/diagrams/self-hosted-runners-architecture.png b/.github/gh-actions-self-hosted-runners/diagrams/self-hosted-runners-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..dcc337640d3171c11beb39850ad10f03b1973ee2 GIT binary patch literal 201523 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 literal 0 HcmV?d00001 diff --git a/.github/gh-actions-self-hosted-runners/diagrams/self-hosted-runners-delete-function.png b/.github/gh-actions-self-hosted-runners/diagrams/self-hosted-runners-delete-function.png new file mode 100644 index 0000000000000000000000000000000000000000..5b6858b26b608b75c4863ea53542c5c12eb82f40 GIT binary patch literal 77310 zcmYhjN6zfb(jNFp4Kx}8H0fcZrx#EUbU|;1^uFj#adJVj=)E^P=uxjj6D>tU?LoWf z#x85qayRpUw{2?|NXDO{@s81KmK=6 zQvLh?`u~BCf44dk``3T{Z~yoI`0KCq|J;OV>#w5j^1uFpa({pO2Le^&y8Q#?|A8RM zH2w2eC*_j#>pzEl14ZC^KmO{X&VPU3gFp!KpCJ;wJa83dARN5G$UiZhjQ_qrDf8jq z8pQtzfd>AQk!1C-jcfG}lm)+)Vaq%435vnH>4LWi{D+}`!T7(({|9_!rm4%rJk@H@ z2N6fff1(5^{!g0h8TvmE4t($GHU}S4p0(p!g{zja2PGm5q5p*5f1uD!ie#z(mnPov z9Qm@=<=>@_Szrn-{!4RdECIgVuq9tb8u z0Mq$z^9F9I|81tagOiQs%Qpv{#PGj9$5x1c-+t*&)a;J3)hPBUp!?+A@p4VkM>cSm zG;MKQScuaG!!Lqi>6>9fY71Yi@skFL<0bVh>!3vA2S%nomYUA3ly2zFlvY7WEBX(F zU3HQ4k`Y0BPb^FT_*9fHNjB8J1Y}t+J%V@7C@YL2IqG;ZH8<2Mldw? zi7nU*pT|1EWqC-C!3JNBe*3~#TOj?}k`0{@TQP+PKH~vXf_7MhgS()U!8b~>9q{pX zXsE4c0hQCP(M%RGL2b_Z)6+g`zcAPjY_U(4igZ7spqdUwt*k(GRKCn~MM-*iP6kwu zNhv>&YpXB1I~FpVnkcJl$?Cxxg4q?3yTcKA0gKO`KSr*1P_}il^i8kCc8jZ-QW#v@ zQFK=~IVSpSM-vo%XYwdMG!)bQVL$0$UAsNd%O@su()w{V*mdmA7q@(|czR>sJ$yU7 z5S}`u>Gl4=X}JO85tqZNK z1-CydcpI<-f^fM@=^vO|Pyk&AI^aAMuGa_Dku~s!wcS#0^+DnT|13ASD;d7vEQ$RV z&1-W^^hg{ot!C0XhXk0J_i0wHQRX$vGmL{@@K|_-Z+#18z~tKir|X?PJKL$^sETW; z4{QuT#SxT(E9|hB;M-MTCirON#G)IwpzHn zaYAV^+Hge4?+x!b9P1`|l(OhZ=ZAqH_JV}&b?FH4C}+@O^1Jf zivyCFz*h_ZGdJ#M!jN!k-`(>$$b$lxz$;q>3mjGvhnq3FZaw*CTM^IL;)B94*~@}N zyPG*r&O*|H2T~D~C%-%>knbloR(N~YV^Usm0$vaJaVW-y75e6*KK-_W{oX-Fb!oWI zJ5TuX4tMx{VL~L$#XER!GW%VZ-KnnRJShT-#~+G*tE$72JOOklVCBTMh4UeyH^_UR zGFkY@7WkNZ#6UUkdEpaqUfIakv$cA6DOd)!c~+ND4BP(HHI{&aVi~&aVnlllTb<{Z zm6-++8yArrhrv^qE%irFZ-*#WReO17Ymc0F)6%@ZUz);3V+ghYt5`Wgnfsq<0zc2U zPh`<-JJpHx;D73_XeDKndsXCdxu6%Zw6?4Wv^I6*ED7Yy4P{W9ohbZmPJ!`ZACgZQ zwpM7eZXb>|;ubOePS$3DTOM&9-1fu9la#@>nG}m#eG@|?r%#opZt~5~YT4kj8SFZm zA`A*oEp^UV#PD~+8qxw)b!C^7?yY|PNwP>8xEbiEyCLobKqt22~-a~JiqnfTBOAR6A0KbZ)3Q~pZn>4{`& zD2+Z?-Qpv-QS(5)61ib>eGA@0+->#ieDF5&l>=DrSWx^6g2iE(H2Xxt$n(dJg6$w8 zc8kwclVmqZ_66N63pk6SF3sY}wOipGuQ-s^0m|R8xyX z3h)_qpTdq`6@oeu6aWbTB#5Y1yF^+v_O>i6Y;(O5oY-GE@@^M}T&O}3_R0V|? zLvV}=zOblNkp6ohA(t|(SH+2Pro6JA5?>*Q>u)1eZ-(!ryMF{&U35pqzE=ad84mm_ za*QmX&^u+Kky%to-{)5XKRCu0&Q}QW*eiWI<{;VVz))iaYE{hfzNG^2ELNbql{h!4 zk0@Ko0WK2H_}LC55)X`bz|Y6o!26ov)c5^Fa8z{PhQ*@y3VIZi8;B%UPio|k>;@N< zXnCLEx5ZaMFvh+G?i2;X!30n`pB4GDq{E`wf@XYB!ZC!X*eCl{Zzgj*{1x6{rr7;> z79L!G^%Z=3mk6OZ?9P->O5<@eMG=uFQ*edyE)sb8XE{8Dih-(#0OnpKitG8kN{2$S z8K8^}fD`;XbGb~x$c@pd^{#_YUxjYK9;gS-K1aiCy^-*57Pv?ExfU-2)v!z)TUNvxL(#U{|cN)nMhf(VDi`hLewJ`{MSk>z1N{rF_ zm~8X$^|2L@3+za~xo9L_tyY+GFx~8m^~xaQuBPn~{?25hvD2QYAC}xdI0Yy2zKB43 zr1JMZ94$GBQGUQ+S*6*i^b$PDrkMLOexD;w%XY)uJAkg7rd_HWbeW~yiGOD3$@dT+e5jlweQ{03F!2^16i99T`1-^zYXB^9Nmm2x<})9VC%>8>27i z^zAIO{_vXU5ufCm4k6m1due!nXg_AbR|;rfYN@AmqRPk~uh*O0YY(x{@9OedMa=Z~ z;GCsS<1sdzHdV8k;a9{EfiH~+B#7YiNN78z{6)FxK9p>;cb(E9+7Fds8n5CZL?Ncj z??uaKYcJf+->Iww#9;FA`Dx4_W>u!?YUU@#;j#<9kD|-S6f)RG_N{ZKo^Rz$b{e6j zzS88213@TUgS@BPldpp~HnvamOp!jyamzv0%);jBsH>N=^Aw9dh}-_~DM2_TjGOK` znyflsHu_=!;$lhc=jh0?`3?TCz2Lx2>iTi>Ve9J>KQm^1Z;R@N`tSu7CR_XlU_)My zcueBD=4?F>ygu*xeP-j2cW?UayBXLZ-@Z&ZE8`qbkDDTO)?_LQW`%`%)bopR5-zvS<;4`&~vRP1)fqrjPC@1%x@sN29m;d3@RQKqE9OFgtYUFol-CGg?n~q-5FG zOIDFH{6_(Fdh^d_90_Yk`$wf)Dg0s!zOIp!Q$6G_)kz_r z(n^G|@ZmCqWlFAqg;IU+qh#pI3w(pdR>z zUMy#6N&u8ND=ne;4Y59bk{8+=uMly#n6CyrFqU6gD$L=kJ9(+$EAZBt3SAhpTK4De z(FTorgzui4LjvN(Legfiz_R()mm7mZc_Z!UX}E>6?Lf}6>8sfQ#x)>P(QAn`T%ml0 zk_J)O7f6vZ!kBrQzhjwp>k3wjwbZ_(Y_O2xVl33F&qK@o%moZ;pGWb_6pO6)xXe75 z_NngSt4}da8xF=SrWyZK`fw0uFS%^pxN3d=UPaQ{svB~tr&ARTZkmX=KM0NLK0f@} zUNKKczoJ>$XD>rnx&;^1xx?APqQNo!pU#=u!)amkmPa~=lanC#SKMu1QP7dZ+M8pX z+bJ3h>jO)=4@S+Z=uKY)(1o#?%hh}V2x)k%NLq6^BmjIE>zqD!F*vN@N9OTU)0!m& zE$8;9-|vw1n%c0I^(omF8r46Bq~-PPuouOCJmd-lUre>z&d%@@s# zy^qb9o0;L`s8}$RzoACr;tt^H`jW$iEuSQ?i}G`Z!xgGSpl-%Uyfe$1Jl4OecizXD zr>l82hQo4K*ObMtBmRMHtho1TNp(Jk-qKgoIH~o2rsg59x}vfWymQ`3O_Rjgz=Wu8 zxRuS7t^`l}wTB^LL(Kp!wcY}A&%T*U2B0{ctu4ai(*kSz7AQPnm%Qu5>+_ND`xk5a zvp3Hc$i{LJaQ}W zJDIUdeO8(g4a9@p*j~`14y9>ihlV zeZ*r{lspj2B&L7?LTxa@)ceFC+v^MTgQ!mcgqTjK{Kl`~=!hd+ZZ6F%qM|G9!HlJh z*stg^trTyv#($rZ%|YsGqC zy%QAv@lByzO@`snwhaFlHRMU z?AN|3WAj;_KO{|LAsp7CE0zHPu% z@~Zxm(SN@xKALVFk_-m3Pf4$VSV}fco`kK!TvWx?{b~B^c!@O@$CRD;V|aHZCwt*E zsX%9o-?@^?#TB58l2o&KZn0yG8YA>?l9cD);A%yVnmygCk4(b~i1R#6 zyAD~_R2;ijrx{%}&I-t=q*({Y$dePAFK%avDQ{30jOxy^mKJyI{vF~XC-X;0JPWYZ z;RoRCTQL_qO4=WVY)853(S45ty;g0Elebv?U}`F>S{9s0Uz=9CsAkcwN}g2LZ6FftBG&SE_ebPkuy{1o)}9~D zBN57ae{DdWsuDS3(7+YFD5_prwq79!4G+LLKa2^QPj-E05NL)X^c0-{(Zir0UrU1} z*U+SuNh+W;p*<+x;SJXKl?JUBr>m-v`=Zvd3Kt^lIG3h&eZP)b<>oT)Lk_ti6 z^;#$z{e%{5t&k^b<#SA<)=G@MvSxY08JAwG<>6N2B|G5}hx(6E9(R{+7PKRap^G+nu#rTx5Vj+aHW@`t`tO}!LE-g4 zwS!Z{+(NO^I#C@i#s2;P< zmvMLaL%NY<73W0MCkH zkg`tT2qfQ@57w@>i;AgY{yi;9RJa|Q^5%{gW&DsAA*EH`#{g-D+-ctTbS-NXiQ6`AWom|5dBw%(o=tCfLa;?azdZ zHvtds4vZr@7xt93aXX*ffkFF#Z)2^-xCaUb{sb-+b!FCX{I^=~49lbyZ^U8{N`tR1 zl$lO{TOVLiZ4mT4Mw=kc_V`jv)JZ6=-!5L^i=e|*BsQDJ2t71`&*@4^(4Llh#B3fA zT}(eT|9Cs?rQQR43IJJ)$2(F9s14zB*(Y#qZ76(K9cvVZ=&<d{68k1wqeP>%BTlwfe3*Zn$NHGv%m4QGfFgy zyitOy;e*0JP+nF*bib@pDe`ucNP?4 zLcE`Jih09AEKtEC8gr@RHC-98(O#A`c}!e9;a(g?x^5hYXqw|!;n2NiIA0q_9#+@; zooU_uvL!2i0AJv?oF~zxno$73F}Eazpdj(MxpLUv!o0#kiZgQ2fQjfn{dG7T93xB7EzQjH61OvR{5R{I6Z%E$v%3GxOPu%(p@A&blacJ#g4 zSR7^d8?`Yb*r~1O%~SvxxwbAI?Ws;D+x2<)0_9YaX!8I zOk^^_7w49b3mH@3EcAjOeBEmIJ`(oTw$>_99L)14zP;+7a9`*!1Z%xgL5qD90I=H` zFccx(f8k8l86knR=RH~<-@rHz=y>r6h{W_oRYK=6BF;$y;U`7Z&25LRI54y zl}@#XzD6^%8tF%Jmd)&Y%+u^;GHqZ4vpg{6iUOz!>1(A;4CUJ`^(eUTPTBgk0`{E` z574mpBc2Ksis}g#lg(*fEDob^0jC?{`~*UTa#hHd59|O(2gALGbKWzqSb8-leK;5h znLA#wx}NC;ak|HAsnT29xq&B%WRv<9IV8gwc#v61ZSCgCn0$A0yl#R0z_gs@wBqSW zZf$mQ1tu0#H=0A7@tKD@=C36GohqLRQS>kxkZ;-JT(SBfb5FjuM;tY6#uZKxl;B6`-Snn^DiL5tNmcXJz?zuXvH>4n6(uE{@3 zl@TX3JCC@Ec0|u7^Xzi$P39`m!I1(7@MfK2eZRJUl2>-{cUgqYhzDcx8lYnE>G;0t zL%zzZsdyRGj01KnQ%Q5ErXZJ-a zb-vR1sWK*M)P>M`xh!rwo0&@pmHx4*Uvxu2d{-%NxdY$37gIrsw^KgaRGV4N$$R)U zUx%fTa#RmHbM5)%yyd^NdSN%R)-+b!R}b2Mztj-fRwE4`31G@i4&CpCrj|w`II>)% zw(AH1sEgJ#x9v1ihbJk}IQ{t?mM3h+*V~MY`j8_~4{3lUdSTjo%K{p0(gs0qz;P85 zL0pz76rQZ#HOCaBN0H+4QfRsnU@rh5MpPV;9nR}|Jb1>!PKKetRQ+#FN5$PqZ55F- zx{QxBT||}+z}7CmcCUoOuwC8Um?Qd1Oae65d^zj@F3jIi4Foir%0H5)?h@>Y_d{? zk&(9Fh7@-ag=c=TBT~~!Da7^uJ&9<#>p-~hxqUi4@JS(e8SLvrn_nYaj(oxGvD@D> z1kuXkhSe5ID4?yif_Ju*xQ=^3zDza()5kt)n0J>i1`qLGx(L^<&P5gD^VTPXMZi>F)iAPCGNhuBNBR_`=Dk~5v?|| zeUJf1sZ2K5%9o7AR$x}ywW1AYyTfMTRxA~^GUr6=!9j$H*{b#(f1Zjuz@BEcYL33A zr4b8)FI|s6ah|L`*TI!^1mf%F9C-&*I($Oa6FNMoV2&mamVx<-Ws+v2>;R;Whb{%8 z1yC`lkTm*T)igHN@~NV-)V>8H2_~}VK)0TI$hC%WJRwoQ9?~(sM(pM`#4Gzv;<0PS z{sj^1Mz^2Opl7)Pyb6<~zIH4^23mn8oM4(rY{Q%BSXZ5QhPL5_Y<>shUWq+3@U`Qq ztgCatG6S#uveMtaNb5zQK`eps9%G9GvY1(J3h#b&vg5XWye0rw3kw6i*gqJ|x_J7UliZpU@p2$m0 z{TO2{GKZYh6nhw^n}L1S05r*#=^W5%vr_?E6!|m~-?5L)bL>)#l_0$S1>cN?r4vrX zPFDPHnEbZA3?fOIgiGe=FU^hY;bNXy{2LUdMyPPvjNn{wk8uGOLw6{ZfiFK$ItNcZ3NYNXqQ`L(JB0SW=(J ziy9IrB~WuMZHVn4F(xLRWb)ERtOSHT_C;8%7A`_<4pZkj&%Gj^WEKeNidn23@cX(jPL8&;rhI;P(sea`Zsyk|@RV^s{Q%G?q*(yhfTt^; zKyxTSvsIW6%x&O8(m(pQI9H~Dm+6Ve8gqYv-QFv3g=mfG$g%CYHE*s5E|tO0GFA~- zmB9XE-0HL{pnDcvV_!^sIJ|koiv_oUbP$VWmp-)^gs46OEJPR>ic86o`#inkd3@iX zAO=oz^C*kzbmET6CwZaHIy7Rp_LV*j{EM+^?EBY3%A-&(rNM@BBn963;g(8Y5F!V7 zZI;sWP~h6(OK%%2o)F(|zoLowG(VeS&s;@=1Nc^z*{rfQ{}NGK2Tg60&F2n|X@V@{ z$1%TeJ%cv6Wvnm52lTo6OjrVR)g)aeVoaI}{J=xI*1fQ+r05O!2n|&R;zupI73tQS z6#dK6=yj}ynqhMEgNe`5B%mY1Y|n3pxGrYx?kj2E5Jw`UUi=O{$2<|xl8AW}5+qAA zs4$Lh6f%50C%AIA$$S2>7M1|^l^J|n?=F_gT|+fyo5OSS{!PzVEU@kPUoC!dz@}W0 z(eh77hD{r$S_vYcaTQ+jgA7%t2SiFYgZM?(wSo8g75lITj+UtZai&$q?g^OlL6G1l zW$_ly#OR?fEyD7xIpzrTA@tp_cMwMe3dJAly96OC(r*#PdmVtE=$ANUl1QrxJj=^R zo)3M~@H$%tgqs(r1B{(*7H#U%2oO!89-ISqHRGi_Bw~NFwN7VDGz`r0a}c5vrSMhz zOxz|n47z$Jd$WTm$rAajWf>6?pi~8|`VDH@*tm~L(2-rM1!Cd|zIpAphadnMW3g$q zuPE@}0&@1t`CXHk^T)c%j{jZVxm*IU&x`_aP4;rvSJOl{E4dmv0-j=>HQAB=NKtqU zj|(uaARG=Dir7w-pi5x4v3zq9!TgDbIGGd!`6hK`i-2qi*U`gE8Gq_$d1Pi*iRzB2$og0YdBDrhK@=qfLUk};PCK{ooB zon-?#^O&KVxk=W?+VdPZYBFGziZ-X$GxuZ;epROKEi4dGY!ZyA8bwz`tqTHvAMy?_ z<$8kPRMBc~VIe>8f{hOeJml{r!*2(n2tm0k_Y|J_ZzJ_q1t6yJ z0(5rEI;>wXge;zug}^fn$Ws=2Kmdr3 zz{#~%mynQopXP!>tEsh=lNn`27Ttpyi^@+f*P_c#lukOVi+_kfQ06u@=1Y0FuRWT< zYefhi+i2GxI%fK6_PB5B1|s~U*UC%^`O7xg4@6S|8rpf(tO>mM{t`fGY|t7kK3Oaw zAhtAP4z&enGvMM)6NYrT)hPqs+Ktw>4U=P;<{R`!CgNbXv-8NgX(MrslKZj!MEfO+ zLE~l|wEd23=cEl;2VKJ3C9ehs`F&*w)B?Q*Pw)2nODd5{Lk$i=lhwo2?FghJy&TC@ z%2YE*Rt1;@_XP22Gw+`eZ6Id`)SDQi_LXS5CPo$ueA%g5tIeTzP*J83hzn8AcwiXS z%h-&GYsNk>*|M}-myVl5+Cn~bzdk$oJ4eusg0Z}Fb_!Ftp&n1Ur-hXD1qpkKEr`W{ z0J*x%84%w^uHKfnN5N?G5L-gB%>>QzQz{yCpA$SlLt2PeDwWd_?H#e1%|3Az~OsyPgcD z@}rU`9M&@VcJRzwL5tv3l`a}r4*LQ472ly5FswcYQ@S8>a^oJ+8FXo2CCKrb@T^uHi{Sb5|!0A1l*nHY_C z%3y5^!)6G=L48U2=5G)YYyBF3oku#6#u3D*2|bnjcJ=LS1T&ElkTSuC3?bB{I74@g z;W*58<~llF5KF=rB?JP(80Du}SA9pi!9ly0O?G9sJyiV4GVUOhh8g>#zSH22)Y%3!cQj3I+}uPJL!wonv5&X=MK{Vm%a>? zp~(De0u%nIKKhB}plt~?XC;KWtrs1Q{3ov;`o^LHjKs#aFmHcO99$BHBc#M z56;tcXyzY1*LrYJ#R^XL#IZx8oH<;hpQP;@a0S9~oybLgR9=Bd6)y@#W)NvRqPeAm zC^0K^*+Fpe>lP1r#L+p&rp-VI&i8;?6`eCOdI_)m$VRAHAb@IbhL5~qUY=eCEWY9{ z@oZUNfK}7Ilkk)?mcq*do1gCzatWsN@xj?YP5pLg5kqWwD}X+uuX)u7&&P)fGYu1V zIau+h9N27mRTQ>#o89a6`~rV6&FngE#Z#ROq{$x>P?!&DH&9MrXfbki9DfMjZ~Np= zZVnZbSn!61h#*pU&!iS8Z;|$mPFq98E`*r+k~Nn;peK*lHEyR9ny?C`9{zBr05otg zBNkMf033sgsVOXJF|3?cTj@!LK*1}s#(`+%)Yt1Z^JXhI<;Q=d0*YR>TCohr_gUUk zD%Wjzc&$xinr7bQPw`Gq=f7}kH!|>UPzXnw%?vy?e)R3RU3P=>J*?mwA#NbPN&?bM z{E(nX2Vtc`0M%Na1?kW8Iw1v@c;j?UlfOB#>cLNE&pOv?T`Vs^PSNb72#t3-2<}rJ z5VGL-!W){oqFE)&D<677)3ETQd!X=zP^1XR`ICypvfbYTv0xx8GCt-(OF$Tr2m7H3 zT;pR|%pU^p2f%Iu-|J)wGz_W_)rU+}rPv0(b`T9@0S0aNt6qlu@ILu_3|O{o|_?7*nuVw^7!gQCBl=ee8?5+A259-F6O z7lrzcz9g7kWRj5s{1 zd82>;D}^m9?$eCqn5j#0|Gd}up3Xk|LE$T>^7ECSWp`QhR3m^SKg=<x;5 z-+6V!4Ma3eVfd)v z^da~7M>Jl=w}2A|+(cjqw%{X|Ilp^NH3sm$5*Vd9W7oxZsk?Dsd>%M&9#H^+`_?%q z9BBFO+z;JZG+<p!G==TT@y@4g|C6+@Euq`fZU!(UNj~4t`uU?eF#(EDZn;M!a%HZ znNA9HwmL~Vz$Y>gX3z>&p0I+;DT7-1XYEUO65}P5;z#1Fx7mQy8ij~|0$SY3S)ih# z$w`H@1h(07p%kxp0uRWjtcCHKdp6Zepomw1WEJ6XX45i+XU+nF(?FB5L(eEg2s#GC z^f7mg3w#V*Kcpb6x^0H#bueK0s^TDHq%T3FGw*JR_y>LX;R@ohe#v5;j54osujD~J zhMfz<1!#EXK;laUJTA4__Rl;Q?vDZ?VCiFG5B@>I=bS)*?w^$8^7UGi+lzh(4q5SI zJfD+`RFA;79|1EUGfA`k!7YirWyHe=%92to`3(|g`}H%HXeovh@8pCHQW<`r&ulKU zeRl6#g&6HkX1Yxt;&Lhu7LKx}fg2|5!o|S-!#B)}I7l(h(%#Gm?dl1){g#-Bb*y5X4!{PXibm z48d-yi(^}+!3|T}R4l3&xgch^`Zb>z)%#mia`^)buejnw?pzH4>P$2ci|>2H=~nJ+ zADKg-vRDwA=U+iEv$pJO;CzZqHGDpmeDz_J>RUEKRBN*EAE(kvfe58v#UC|5n&01O zj?A}KV9C?M1jKl5yL#Ch`U6h1bBxK_gvYf3!1c$u2Eh!MGqC28uT2lH`joaSX8uM zbd0!58iV*Ja7T0h@OM^$!O@gsm>x{lSUxY?`IWfVAurD^p(O{nA4K-3Gmw|Bd8&{Sk>xA|vJr#+nPK-;Mlk98*`ZiC%es;7+ zDhqU>7>MVs{atEV;@-^`+>Szkd1VV}BJ9rW#8Jl?`~xu<>uOG@*4a5CaoJU~1!8cA z&mxV;tPAC<#L@f5K-C>SEjvy_kH{Du-{d2D2yk`%p4@+M_iHskt%fiTl6O&7z`>&| zK&ep01hz9Psnc)2nDSZm9D>V1n8&uQ%BSjn-`pro-AFga|6^YuM=D%EKt||s5nr6` zfX-qY^`!CrdI(2?$RvObkmm_m&QXt}j~UH^Y7NC^W8cXD$D(!6b98)ipgl27RV$8A zpw{VIkMh8!W)MSG0qchSt*x z^^H(j6NJ9 zwo=L60>1hC+(qZrnh59ajTz&&>CP{AFcmcq@SJ7YbzB_vzGkN9{JLKT0vsq1q(4N8 z9ELOq7xi-xPVkK4zl|}uo6n`j$8>XLi$C22rKWLPfBG?Gj_!+8@Or2S4mEF zuM=ZONw%em?rkVzBR@}d_y4(gWkn>Y{3nXYXzZ{UQCS}GW80p69A$lP_>85K= zf#89A?au1g8xi1cY9CN>?C%Mct^EFwK>jsJ^t3twbaKHyNHQd(T`@LLjeNX57cA zCVB9h->;UO7zS3O2~%LN#O&`(bBjavG;a(kisBCl3~@-`K^|Db4{5&Op4A`Kim#DICC5TI{g(& zVz6}nFwn*BRs8VHvyT?qT_j<=Hyq2s?_<|GL47)VdGQQLq=JR$b47UAL8RMZr!rgq z!4gqAv_M#j1M2WUnTL%qL-*_zjWLszi!7-;{E7)tYkwIwVwq@crddbqc+|#xHAbpVY-g95i2yua?wG>+M zRo5vM0-2m=m<+_)&8Ozk#W2X^9uRaSD<2^f76}A!K%i>r!}dy|5~zKGpOvMUJ@^AP zLZgGg{?;3mcJZ?TB-NDNM8z0Lh)W2jE2g*tIe{51QEj53^0cHk8c)Ria}#(!XyVg* z8?na%A1rOMnyW>&R^8Y<)m*iik1W{$qAs>3#eDfv3-V`RSAoDu7yOl(0B=+2Gh{&V zv-ahJ1m#{o^N!p6bQ-HjFbuSY^%%J9bgix-f@eqQx6O0U2*wu2O1QTXaUh_D3(z`+yo5DjZ$NjkSVR=)$pnuApH z+Xd;)%;a1;t^jJCY8kmvakmF-HmIf^&J=5fI8iiBhTW;6$tP!I=^`keU8)xjVm$3- zmc3MlsyaRaN@TYJ6Ig+mAU0F^8fD{3_j-ASeYe=8S+)sHvNndwz@LQqt#354xYs{G z8dk5`cvozt@K@wcq>zH;1fFdQBrTIWwTh7F7d_$(gl&TuovwzW-hBlXAAxKKo8Dw5 zyLKJrtFMuC5N+o%UW;ow4Nqkpiou^C)pH#>Sos3GJ`|W5Jmy%my{Lk^G#~IsMfk`1 zz4E=~@{_|H$o$bq1oAMB998`Fh4cXE37W^1;ZFn^n}v1%Ozr?l1C6SSE1<)vU3iuP z91xKuJhoC7%{jmybFev3#47(kdvD?w^ZNgd6OJXzp_Dbpnyt(}jgXpVY4)0FHWjn4 z&Azwc$QE)qNJ;iM6{SV8M95aM9ElbZLMn+$>wV4n{_gw!e7@h`UvNJ@9`hK@_Fk^{ zb-mW-^ZC}Y!&nFig~wy@LG_mA0MQ?Kn`Z?;ZjK&+uVf(dMW}ES@5`=I` zkQPrcs7OJ0ItjtknIvc|MsG3;QECca9A=?}S#Syj&%wniB@96rJOsxwDFECfglUM@ z3lKu8g$A0yVUQ3uE?glNS)&C4Q13!2=vE9=f}(1%NR`y?7b*d380;4)xyYl#qy)f} zgvvvewop05NQD9T43Pol1e48nBxo3iTciXDF9f0k`VlaK6<|&6Ap|&w$dfB!Vl|Yk z7J<46&tkxYAu&`oM65tT)`k$Y^@azz84Btpm_*2 zG?)sPF=62nK)O+bnwGQT0*|(bDKK(6K;r5s2ACz(tY)&!MhqQ*2QXBXQW0#^;NX5% zsx$kd2^pZs8!Ck8wPsMNR!RednSjr&m$3uYA$Sfw90|f$DMu}2inafw?0UeT6M!-c zoeem!N+Oqu3zAXDB)yTtP@)71nTg9q7->=m94FP_=o%5lnU``vVZ@^3i->Xq76c0# zY7hw;!qlo5Awb>4jAG%S4w+b@g3=HcqKQDk;~f+~9ALo!QbLGPY9dL+7?6=umEc+e zOdB}tASs22gV6z|7s}-0@I4}ws zgiFOkg17*)4zwV2auSrv&|x9SP={25!OF@17+AVZ$TU(&S@`=4&uXX7P0_CGdYVkbQ=>qBeXV5pcF%8+3iRTLk_V5 z_&yne@^j8t82Fq|mq(M#W_F-B+Rp(R{QTe$C7(+L05qKjSc@PH!@=f=)T$tcoW#|E zBvpu|m;mlcY?njWej*GMZq{2u|7jblZ4jN+0H~&XIfezut30p|szIbMn$1)@f#Qsh zqYXfui^iryLWRL1K9)dm5cD)O4uvA|p{hV0S`vz-VO2(*9f;gmX=*t^Oy-I(YMzQI zA<7^Eu|few101f-0XI>VEQk%1wJ4#WMjB@ ztW0h91NAnrEwB}iK!J%?8ZZoj2*pxb6k${}E{v`YV{^jPd^H=xWHDI|AXM{T>`|S; zfJGo6(SWA_Oe`LtVfeu~C?6fBwo{{>F&o7}P!TyG+?BEwVv7mMM9>XE1RF#y3-V*o zHNiF#NfM2K8f`W|3g}cgP%L7g6c3Uut)2=b|VEKn0IqELVb z5NpH)HWcD?$a*3W7a&3SGNcoo2iPfifsstI3qUIrp>q0ID9<9c^TLc&6jvmY2+*Jd zqJTn7axde8j;iwzz8h{05;ZAQ97$h9~!RXJH%L?pVb~5s0-H7=zP9I8P3!wKm#9iyNR|i zL9_%^J$ckHvs7)S!~O}3i9ECctOB4brqKXGr;w;c2w8Lj3RJ4JVt{A`q6Sc_l!#Qr z%`6iVP6`Fz1rGt4!y*}g0TM@tgO>&hh)PXi0=->9m@508%K615D321~NiNdR(!0_%@Q$4QJTfyF7g6J#OF(JGkOAyV>H z1ah!0L>;1`GZktTi%M7U)H1Lwyj3PgfWr?(1asIDhRv$CKm(yhdx+6FSC~YF-T-xQ z0UI|&0z-pkfd}PqxDwFsF+p4jMk5S!pwJLB6o(AaD8&W~l@D5=4DoiscUl!7i76^R5O z7N^o59%_Vww~RDaFiNcFv-yZ;*&U^wt%Igr%^?0O@I zOb2PHfaZ+7@OGOHXaV7Eq~Ktgvj_lXhR}fo0*1;94MS)FM?^#5$$_R4#Gz3D}Nph6(hqXUr! zo(!k?sjyr{2#;iAN0R|R9H|3~5=W9~ct$=)sAq;@)MB_153_}_tTwTY3c>=s0i!@+ z>3ABB3KUz=fsimH4s1Fo6o%s)DN-hsg$f1oJt{O80+i6yTzeqP5=Ia(gjiCz#_u2L z2suq77ell<9@k*8`fF#S zV4m^qrKlnLZmJ(q&k zG3{JGak#(|h(?k5Od3C&fzulSe9pq>`dNiyz~W`Y$POk+N`QhSAN-ucq67h;r^%T( zGtoHktdA!DgEOQ!EvXm;l6WZ0fYswb$y^OA9#fCeBf|v}EzyV&$*ck-R>h9SLr6R+ z6f2+`%nUvmfaGLq6QFzwz#<`-g!=G6JJac9fS4s#Z^GGvm1t@(#zbMrg|HBEFo3m6 z!zDB%&n|KnMQoOE2hpt72VrCes?`Vq3YRRCz-R-iDg+^d#>Rn(Oa`vRnTLQV+d>m^ z`9YwI$qpv+p&TAW54cA2WPr*DMw|`kQ%b@V%rJvJngS%4 zFggPeW>d;pRDh5tVU$`S+Db*RRnGOt)0oI6(8!jM0H_DcLaSv8Ot1jp7|03%;MWR8 zpd~|q(oLaZTBwdDK*NF1lMMolJ~)d&9S~g*)CI1H`~%e09?;6yV52PnT1 zI)`S_sp*(7Jqgbw(8XvnUymjuxkjZ7BMb>7hyz0%0MxGly|W-DFA&9%lQ2BEM935x z7;HSzC?>Gb8Y)f_ZnFv)IGhR*0fCQNM zCVV(jhY&JVP>$8c55=P~2%}mn)*)feCXy1!l7m+a2rf)4;+xeWb`*-`KyhJGxhf1OP^(pVl%52mqlj>W z7^p6CoW(wtITSo=QO=}LA+eAkRE9(wP9Y0ItWYlK0EA)~Bxm(3D98%efL0dxiv|Zp z1dEc$CnEwOC>cZ~;&7dPNW2b020qh3^s~vWb}n%GVN#V2YCus#04Uv}0XnWA(g?D$ zEl@Sfx$MJKp}`sy2F0f0h#HPo7sST{SPTY&A(2Bvd1202n68rAxEhI=O#vMjcrez0 zBx1DT0%77d^q?YbZ{lmV5=dE#)aBbZ@xr~&yhh{Fsqik+8oS~Tf@=Ha4v(V3zds( z$Z#~DV+jpn5#WI;JKY)>WS0S;7o2FJ)53HpG|9}=g6t4)0HT^qRUl0fC=KO?60FYf zkZA_z5+p{+nBit)AQ=|Qk#nUXN;rflGw5+5b~s0?4G{yKr0`H|h=^hh2JAY(Sf`?; zA$C7Tv{DBIM_?3S7sF9_0n8L=$A>DkEGy3*M#azo7eN>3+>4yZAy}N%tDaZ zWkEbV9?)C>;o13dmac7i^O_f5LK* ztbTO8nXcqX3>dh8YnN~WNeYHJ91|kqIM;&&ER`S(6e-5TBn*JoCIW$Gp2Zps(kN@R zLL)~hEP5#rCdJq+I17&MfFnbI=qZ#2g|kS&F^Xv@eY6x3qD2FB51|~ia)LBLIusca z0`#@bT!sQIF>=iqq$L``hG;xOq>XZl#*UWbI9|L&| z9vg|UGcb0JoDig?VFW}dnFOKR9XJz$4KO-P0RR&M7$S*A!|06?8_1}*41rJ~VFM@z zXhS#;*uoKo(!-P@Mlh4?oQW)A5J?I&@F*}M5l9LFP8K!@^!3u!E{9q<5EC9IIo0XP~R!=l2# zu{O9w3(|RHv_tC$VOeN6gjTB8D=@q;G8YZ3Gn7M?0%tAN26FX5Y$gIKg%N1b6fSVJ59sKY66Z~_t0`U6(yZr+kH}@>}z_4Mz4GRelWZ9y=q>uj7 z{Z7N3_79^_djr?P#>@-(b^OSM({5~;JnBiNu)pGE=9*{lHO3pufBDmUUe9>&!P(z- z3V&JPy(6uu;)_)yYVZ2qb^B=LrALh)ADO~ALnS4dngQ&c1K?jEZe;M<|MB>3sf&I} zb*P@XaPqIi|N8?nhR9X@wteH6|M75jnNsch=Gs?mgD2`^Sz~U zeHKa@D(C9%rsRNz4b1)TKV@c=m+ziA!ZLT^!cmbWrki``VjrI*B&V3o1HC_NT`y%1 zYt#Jn^LoF3a?9_^DmlJy-;_FgbNb?C%iy%$TS`TkH(Z_9;;({o>& zKSfUe<`U`k_3oU6H>E=ZTKh6EDl1E@?Oqq3*J?{=&ziq!+}(8!$I7mT811fEm?<%> zg`9gR^FOZXZ!_>l=7EWS4gEMe%zHmGlXj;ly4EFXnfGD1>=9xlF>-O~(4fDgyDhTe zdFD~axaN$6>sjZGPi`(fwLZ23cf?%HJO9eG?(pWHU|$om4)3S0ncn?6Az-EXvwL;N z&58U1`Q)t=X0qe&rD?D4aHFq!5`JaH)vuf9%DKg3AcC@yoYqlU6^SQz?b`JXyVCS= z`a8pZ$lBhp`wTU0>(!BK$Pp?0 zYYy{ckUzb5zxwULGC|UhwYw8%TyXF1>L|Z+;>G%e)$a=XJ2QrEM_TK{<0InZ<8vZy z$M41UwO)GI_n@28Qk{d1I+-@Ywx&Uqf3>ge%Cvy^*n5kX9GSl);-i0eopJuT6Cxb& z{>L6o-kW>gc!@GwLmb(5y-!nTYuYV{G`u(;+0hWwew=e5N-%r<{?Q>^|7V#SPu=@i zlXo(!){S&F_*u`IzAwK|UB;dkp6uV|cWWOn99OmyB|bU1+HSW`L&zCFuT6Zuzw?p* zr0*3vX3%a<-`lZO;d2s^o;QkbNDsDO@0-}yURpY{U~UWhP_C5V756@{3%3` zo=kWHR;F($oA0~0I6F_7B3@_JkhV=r!I z=Zug9m$9nymiVE8ZhXL}rAH4QWJfpMZ5yX4AD=e+tK%Ae`S(Q6sE;qazgfSnTD*Ai zFwY3vP;v3a*YSPFLr>xlocE3p%+|!L3M?*r<*0(e;k#{hMDM407r6xgHM|SO#l=UK zO*h7-C5m=b9pr^EnX~shI(Yni>4YNn%gqOU*3GCI(SEqlr>`>U;CeROBfh_ba59>I zyI^!E;BMX#6^>HM4i=o9ApD8H^rtG=!+ zg`64X>apSPv!Ms#GkR)o9&xKKlkKe<;d;05=lQ0Xzh}IT_Fd2!S!HuHWB|L1+4}se z{~){;k&xfhpX>XY7yIH5YVH)@gs%Mq!p4Ed8j*lIq00L155mDA-_A~AIk{%irit#u zC!a+DtMq&;-+RiYuVa_&tsAy})rSS3k zAjiGA+cw^1eh(8H=4m`=XR0vGvjYCm#NT!7l8NWdP#vH8kh16YSWMGzpRPaZsw}&Y z@ouP|rlct`lMzYG{>W1Ud9JFG%zg9SAUxOll<5hx&(*jNwS~``PU5B!V2#zQyX%-y z9YcfdLtkq|$p?liLslp5+JEfLf&(7GEt|=U1+zn9++|g(yCY8PZ}zPe-rjC#S?PV{ zStk81SSgWXr?&qfuec_rT)ed;Z%Xx(J#=4M2M_WP*i%hJ)(@@f;_5Xs3qGg52XB;1 z4n=OIulafE>HDWHP7hGqZu4^Y3HT6|0+Wne)BhD)YSdEzw{eDux-9o+|HTUtvvNHh zN5;=tbG2VI4$d#BoN~WMn7+2@fa}Ou4%c&{ebrsB)e#MjmYlt}?)zrjqiG#Yv4lwT z^Kkq=wCZ^7mDZx#U1A6A{bpBR$ocx~He#dcq0gnBg)Br%{!r|k&ckPNo35nKtB+6r zPzbwy_g$rU`>yb!*IKWKqe=)~_S^Kc9mbvhi_Yio85JM@cPOE;;28~Gp3FP3BX8n@ z?3ar?BeF%eO1?gf7$a@_bqzfuzW3amx3?zxSA5;OA#V?E(fg*deBSk*x2~&xzT1yK zI$3qRd(!@y{7&}X%k~xaIX&w9!}r%vQu4xn1k&U9m=YGm&?Q=NE<1{62Nj z+x(JUzpO;D%T~VXxZhH^i2wH8(Zjnd%Sthy&<|A?u1UwZdo1Fe9Q7n*0q;WhZgj)f zq|Du0=j7bKTE1b&gq-H_-uCGiZY^c>v^93#Q;qW$gr90!R%3e~6m=}SH-d5E2b=|F z?)AGa^)r1L&MW+$3VSmBPIFnJ>+eUmRxL~1_vs~;yev_7_IBb2ml-)P>t_GP5Y$Ex zk2OyiCC|;fGYET#zOX;hb%gtITGA?7b5ddM2bZ#2lL8{*|2j=RG{bA^a?k;YN&?nJ zc<_Eh>W#;~*}vB_ultwwe$Fyzm-gA-takn09|6LO;_il+hkafX60&lo0ZabQX>Mvq zdrIa_Uva$r>UB@Bt}$R;BkxAZJT`3{DgRX5w8wvzciSHu^2e!SRx_`@#7#?XvKDMK z1PRk`>+htqHP7N6g%s<)-N=4&WDD2Tdt$-z+>vh8PrAIP2rAb^Bn_5_HXa*mv`X`&htHsvb&e@<7r7=H-qth zWvOhcV@Zwcs4=*i8KQFLy8PaC$-7Olqh?-kUs&+r(P4OIzk7uHNytg^>eu^^?~EiK zuJXL*-Q%0Thko(ovh#{K3&~5t-_t6r{VWl7+m6ZK1&zNJW4n-(C~z@N{_tp$DZOaV zWZwvVM{*SYYSdt~W6a@bziY19amUdQr^}8^9>@II4eZBv{+koEA>Qe%!I?qV-S>TH zCuDCad}$wC^MrisXyws^x@Wg;D^{hnvj%-%diqTJ7T6uVH6i%c>!sQ08W+1RcHL@m z(C$MZ)Y}>tU_Lfx``RB)4;IH{_r_V0c--AJ5jQJW9zi@?`CwWke`I#s z#Z?~;%Z@@9*_R*L{>=Pp<&Iboi9YmJS{jKh9=Nehjnf|9y?>0CErh1z?kNhOm8G^l z{}6Slg7`4xK;f48h%!m5DFR$BbIyLsVC7h^JB8s}!dQ=CRPgI%xS93Al|jo^RZS;y zpCzJGyK3Tdr>SD9rN((=Pu5O1)maxe`V*HK*{lP(6Roi&ldIXwvg!|{o-e86KUyxe z5fJ^0y`~YAK4&ER+iFb%>8oQbx0}*8Z@=vM#pO|asXXx1v||smFDG&ezzPcbwTYRN zcgeC$c((bO@2O(>z3wI0z@FF%v-}>@w|88_ZNk5(W9RUHUMrQ)MR&J-&__gE9A_-a zF-}els!n~gJEDRy!7(DGVS>8u^W|Tcm#4mM+2Tf9+&(FPTW2J-%ThJ!y6UiePhIgn z#njZ;!D(l1s4|l-{&*>FdNM{;o!{K3yXf+)_hFyxAa|U~ci-0r*s0Bpi`grDTePWh ztG-4Vhab*+E-rgLr==^dKf!k%?p8*%!dp=J+Ui@NqdbmG$Aq46uB_|-tgLva$E=Ew zxo_G#vUoJqJ5Bntaoe1-2OCw|8cp7r=M^P$mM5Mzx2v*L7hYC_oT?<71`+h;iFH@>Dy&})*t}m}>V;dKHeaZX6-dfkz-7kA>>n#jesqLW|DA##l|i=MUqdH2clG~d_K`;Q)V)%qWH zSpHZ3 z^mWR@8;Mu;-hRg}ST%aw@Z1LfaZ9hypSF2QYtK$LcUx!dt3-EfRL_x=#CiLZz)e9T z4_w}0{{Dn;D1qjwzcNPRwFNlbg8pf6&X!2-Gk?L;Qz7LI-`u}d-?qB2)_8?Y;H1^-(M+? zvFzz;DJW}6 zmS=OWazE|m&rwM~iWW7FHHpfmR_}UP*cM663rccx`kE{IkGyUf;Zhp7TGhjP_Wx>eO$ihh1{8AFH;N)$qTx&+?)tL9R{ta(FQ3NAdm< zIe%Uas2)|gq3l)L9rw@EMP-nZE5^LPmv`OqjDNHsnF2DLzot~X|EPEp=vu-PF3dh$ zyQ#rnnzy3v7q{wJ&#HSYi^Zb?#q_wjF7p_okqfd_ zk){s7TR&*|ddJ(Asfz)0RSJtnO?)?98f~>a_(QdHKuJTqn?4pN>;cjrF&-E$=Sd zZgE;FQ~R2(8qu=%({j7(DSuA&382+vQq$NC%i(`KJ6*>w&NaP`>pqa+elEAD`*6oy z_ZjXYX_2&ZTKP^xcDdo|#nuhy-!!huINp`F2s@6JpAxmaE9b$Hq8p;v0(0gsB{Jit z-<#5|{HE*h;WomD9{IQbd8K5uTlKDGmzs0NRHJ-qVx>7z6KL)JS0rm@2&hlgk(9Tc z4@7PJl5zbY#$!H}8J;eIeBwo}fxavlhDDPDvCV)IVO%hQ9mL{Csy} zN-JSmgv;g4S3V_2a%<~Hyj*`J_uZ-L&uxlQXr1QH(x~j$&(fc_{oAnSWSxoAAv0yWgX#PN?>L`Q#7Enn&u-tlwy zd)xb;o5!~3j#kMN3uh)3-rwQ-E!NXGYvcos=12C}McJ3Rx4IATzGyym$#z$p*TAb! zZKlO++%`Vf` zk^OTYd;a%0cK;K|<&;7{>JdebbXGnRix9O;tCe_SX=Sgd6nJeiyO>4TRT!6{>3UH@ zSTTfhYhXR+jwf(yMUt1EC8N7rYcGWrMf1_gtG*FS+YBe99y`MaU4eb5exh>@ZB}m4 zT?R8ne^KM(F0ARJ`Z!iXIu7%`=u^(* zo*DIQ#{R0#XD9CWh3FsQW@MSuJyts?Dfdfj;*0yg9L{V#vEyKIK>;G50F3Nw@9G$A zyF0%oW$MeQFG+y~DHqn4Hqh@S`d>d`9yO`?@@^pIH&axp7giplqebKB4c4}uH~OU1 zU+yO^E+3f>qQ5R&;Gz}pPVD3L#CBldu120NX-(Gq>iequC8wvhl!tLg*S2nKzPPA2 zKj2DN-2|i$uo_i&ZZgVJcb%BMqH$Nk?D@cGTmwcU>(He~i(CY5Iz#R0sfleS)53Ly z$^&^mdypODy~~c&J)2$UyY-1v+Dj* zXDl|(yE|&U_mf|{sN?j<2Kdu5l^!MS&s-$+r0uVHk)IFOALebXEW6{f^H(P1rHKD& zFr@p|+MtE6y1t0+Ya&lftxp|QQ;}Waup||kYYR8@eCc~_P(K@2(ZktkEFy2xu3nLo zwd)TAxu9u(-myCVgXR4Ri^L~Cz7vkWa8sFxN-T{0xbD(w;kquUTpF@xYexFAyYQUy zU4qjKGj?QubW!<$kx!Ns3A57Bt2cPr-%XyMgmN7cmFc4u=n}NYV+Ky)m29;s#4eA9E?XaCEHhjf0VbVDoY`l zJt1N6!`3O)u^Mni@_N(5{J~_;oBx|&w*Nt8$VegS#*!@USvRgX)dF<~!Qf7q;T^H` zj6!gH9n`y~I%K-{4tFZ8k9&7sd20IhqJT|Zd1nr6ef!cYmQW2PqRL}Gi*)O_}biRbRx5$ z|4ZAsRdYO7FV>|;B;T4`ZRyZ{%gjAKOh?*KzGY*DYv|Ob!ZTZt7v2N2yu4~rwBb$6 zpVb>246f_yNyU%v2rs#G4yI{(D>64k7UxQ5HV4gYKga87dmD2gDf=D$MQlq?V~RMT zxL6rS@8tSkg;m_}8oXI_dF@?cJ-l|6EIY9Z&T=O}G^R zf(UrjJUjX`*BO$`1tH1mBW91u+jkDT#1ed{S^LtKvpcn#)FL}B%&rurFY@b}$b9^y zY_eBDgP`Cszs*Udg1%(l{`5#saj{oR9eJBc+t!{LW3A?nxd}L%`L0M|E{#63%@y{G+ zbyv@qwdTbIA9FTb+`e_rene=&sGW@;Qg%wO_{4m>y`k>%#vrF$c>-UNRir-HopY2dxyPoP%{e_I^2bT;)6S{`uEAhauIh=lN zg*Kf!a^9jF_v?`_B1FXln5q0ZA0K`E6Y^kbHevS+Nipn~rKa{%%W|GANI!o8F0FtF z-)7$_p%*g0P46obNL~H{=B9ajK|n!u*v8aE-L=e#_p`(sPrSpVHa^1I$uw^|y#?wpzWbQRij zbPr}!4)05CQHPeVAK|lI|HtOMzfJp*=8?1lJi8_-b&}O61!*?I|7BB~ezI#TIqRLBlVVZ@hyp%upmoAhx zzJ*?r6s&vuGp)P@mC&8Nqw0&Rrax`RF72D${~HU?TXE6wp7i+2gXP~>LEH)wXH4o! zpZ_uN&g+2u;0GD) zhFE;WA2cyww+zMJh)ZoJzSduly8^`=|7yH=VoU9rXZl8v#wFnrimmAG^AhzOx6R?( zj#+Lk;zo}1xY)Gd&$2V1Pq8&gUhJ_UruIp}-PY{lQm6>Ou1ul-Fs&OhqlPwht6p%g#g z54@Z9?n+8iYEzZ(+1A#a$Sc*kq|VEYd9hK4AMX;)Wi+NVt?7zg^XXA#t6S^k-+E@= zknK9U{OX)9^v(~Jzei2XST~MWRFydQI#x**q`15^^nY^%?aoPUvx4>W$%trLc*J7f zUz8~?Xa;<0HZX=8{z<@CW2<G4R={0}WWN&2yE;}-M4yG5UmXUtC^yW@6I6SV(}0 z2@cxuXws&SfWy12>@$cLd%WD_rkGw#;7kCBbgPoH- z|MOH}x*cYJGxY!3%75(Ug51Un^(lzVB`C4~-GI(#$6Lv|y7;lvYG9s`wP)rpf!>^a zw2HHJLhZ#475kTlK0SI(!(*3)QL;z7r)=6bvFhgJIJjy4j9Em=yhA*5}Q>bA1p<0*Te)f8isJd$G;%|QFj(d|Y`&rgH zSgl!M^&qW?>~1^kSpF}@9USnl8*hBhx$O6$&_oEWKOZvo=(P3QherzCT(2$jpCh|A zecO5q3Q$%P`tQx!)xN&-V9WYJZlXD@=(lD5qqmO$^t7G6vujVvUObvX03#uoJ%6tf zgpdC^#g9qHLe4mD=kKUVU3YoTtuEj4Wto|*kkNAnPq-(?rnAnqo*Mb)R>+mdk_#Wg z4Gn8|A9Sor>8QS9Yi_FQxPvB#Mufe!$@445@A9(zM)Ol5_ISm}3%l~Jr&G#GuGfb~ zCjZ-IMKD~NA64AlY>t_d%zHQrd$rgxa_`vz+t-v04l&X{McmEu=!oelXlE~a~VX~mDUqK!k>BfiD`l=Zbfo6Sj2@Sx2K zsP@_O3vYc{NnnE|vf$r#{r3tN?eb;i6Xs;H4EL|g&w6t9Y{v%0#vWMzb#%b{H)Y++ zuEZy|M{Ot2iMUlGu4bK$9jKpF+`DJ=*Js*gyWo_Sjq(V;_pI;vW0Za8@{NX$w*IP) zS4X;YziR)8`}Sm8)A8E#1U&!!sGUncJFdyuWhGH{_{c5)b_|FJ7u@MJv%UvUzqoV2 z=jk@x*xpF z88_(LM>nKJY>De4VoHpIpnpPyrD~4ip#{0zh0RMX@9mt|9KQ=`h+#+Dj&bNvYr$~eB%V`wEI;KYx~Yo z+EvK~i=M3eDtdZ+<>T#J%(II_KA-rvi?n?sd=t9#VL7sMVE@+E*F_`qtHv+iK04s@ ztw&{#4>nbZC;58ucbywe@Y42YRK?le&Kxq%dLbF@wdS;hqFI>p5SzSaLfX))Ju%v= zE}lm*&_%7OyT|(vj$b|$J!+Ac)&1z@_Ue?P$T>6j=blfthQC4gR*vyZ$4rik z`7vhY6kGrP6_tp((uAL4U)a;`i1~?q@h82f4aE)I?}NsF-~J2i#EC1Eu`M5q&mH{t zky<;!je8k0dRyt+jKnJmEy9Wc!qic7%W^{xM!QMGA;{n0_q)^+Rs7EfYM zA_YpD9>lQyj~D-_Uw-v_Qo^k60a2&!>0qO)Dbw;I`qk#^C-4|( zfgWRVU!LsY(3xWC86CU@UHZl&VqnmtuDa@Vf@H?l2`@{-){UOyyNot7!pLsp8`-QA<{AU*7B>Fc+Q z&*n9XTGN}Gc`v8E@)^-FcVC(hzv<>XbpQU$^qQ<;LzqYDcV4+y)rF~E)ua2&fBR<7 zpT5c>s4VH*y|Uq+`(Q^!GsLvvH8EAixJ%-q&(`K7P5oEk^`_pyjV~{0?cOut@tv2( zR2|NpKEhGt>i7ec>3NFU^AWQ;3`;NW9I@`qHtX^`r_vT+-ChgDPpM>f@b!M3jaYr*Comsaz>HJ#`C4F=4`RjhE(wV`tfs@jwng94V zC&efoV~f3UYWhO%#mi-8|Amu#etvtrj-NQCdOHEfDNl|5)x02k=I!We99Zqaq>TZ`F5@KkmM#7L!gwNeC$`D` zH=l*y2A0oXeQ6J9!2cIceGGNu`B&Rkk5E52=U4PP>P9Uy=*0vAH!UZ-j=eL+`fdtvl#w6Hn@@&H5JqQr*;W>BXCKudno&m7hlal>af^enyWf6N{Q273YRMg~g*= zPaiIBJHIVx#2CYt{m)m5GLFmZ7EfK5&{G#)`{VM(E#^P1=*-;l3F;0()A^n6v#zbX zEz%v@vUpwgQDtd#mypb!e$ln--70nZ>;d9-h>v1|EXh4)SI)ruvx z2b-{)qLW{3cyaq6|J2>%3emLyW#=`{>(3K6O<4hXGx=Ch7I)8!A=J`B52dJIB4joHgRjq>7t5|K{xlvwQpJeqr;Rr&8)$om?wJ?;S&*+IcIWuX04!>vNB%pbKJLV3NywFjgcN zJ?87(pO>gn*<UB^BgeJ6=CU*HI%bi2kdaaH`*Qbqsgx-&=A&{FKFA8}(vE z-NUa+sH^9=p{vzD2O-x}_0`pH@!V2Kr%%M-g_zlig=xFqNQaKVeorgw?OxFUg5n(H zud@Mhg8*4xyqOvr$(_=(4Y6>^#HL!9}dk$jy=Xj4?QWF6@9o{ zv_$@gD{IEWy8>?2$Wxd72nBJ>)sxRET-^T-$ac-WfZzD2@c#B&do??Ve>R>wqs@4< zK54Aq4rTt8802nrurzw|i~jn7Zm=xTY)0LgFk!{?iLswiKjev-*Ge*EvLkJ&t7I( z)U!i*R84%C-qVipnN{U4k(` zt)71TkKlRP#&1bqzjAii-fz22a@Bq~e023nPf>4AlC1Me-)mlycS7rz7w7IYzdvry zFL*rL?Duxt`uMxs-5!}JQRV74eY=nT`YiiR1)@RlRsN;^ywBp2@FSq6ybTIVxgo!w zadcza?R9C>{>BWSy>8_Y@#)iRvA<6$Reyimy!-mzdFWl|r*Hd`&$;@?#%${qn`z9H z&dY+#N#qw>ita7+b`f=vT`nzSOy0D0?MA!XnxD@v*3G_&1FAd`S->OrxQ!vO(vT_r z`>R5!J5(j6gpQbxukBvw_R*7yYubu*$78?Ez3-r%t0{V6zpaomfT6#+Zquf_C+BlGvpiRls8e&of> zi!Qo3YlUF;Teh}x>8*Xwr{=M5PHeCD9e(XqxW{w%53cbYBX?KsdA_~n)k?4VF$>?` zXnW)q$Df#exMD;)8tUcuSHixC2$5OzH!Ww;TGgw40oWBQF_FR1kFpq9$Fqz-Qin;J zFD3kPiB&uN@4p|-`0jD?tnb*oqVnjt>-@%>7t&&fcjv!H>i1Rl=(k2m-XEHqGP1d> zF1#u1aVGX^L|MxZx8q4!OI@yCgw=iT(p()R7)zNIs}=seR@Kz+1;>|Hud{eIWpuiA zd{Q=Jke)97vV(7rKk?sOV)8uXc-;O+@Z%EA!6+XRw7qTthf7=2PKxdMId9c}MawpV zJ`UtP+oCU@Ns0f~mbPq%5~Y^TNcg(`#oM}Pbkp$E2+R;Sr=;D{|Wf|M@HdlV8o#@Rv z5QSxFFMcsbx-}_#*6i4Nqao{D>F={I)xTXZ_Xtdodu3{&?$L2k@UcZ>)s?=tUMxFl z9CheU$)ffnk0NWwF#HXFES(Wre@?Qht36^sFtvaSFG_uxIO2cNbQXS5e$U&N5)cGw zkP;A(2I&SV>8_=_ySuwYQW^p2uBDrmE@@c0S-SJNKi}u|`ww={Irlj;*Ie@+yc5Ja z%P@lSrU!adQyL=J3pTE!bOjzV(ytka_ z2&XF_symwE$giake^Zho|r(Apb!> zLSGSVLL|+INb5eTN&xhruL0Z_J_+y&2LxlY5Az3t7lgJ;t?%djiWR#&6|FDkbHLS4 zhUGj>O@??oLEd7uFWa*0PJ>a9^{6&`=d}axmEcgfz|1z^5Q2agJdo#-#C0pFQ2TQS zB(k82DJ<%*!s}=h^`aa1gP>ys?=$2B)-*o-Yg&gT8v@c zbYVZwHeQ;MPdui_*bwB9)b;Tux8ZbI2o5tl@m;u4>3<@YWcS{s(edTER!8}7vZVK& zf@}nSH|`2FgH*8IRvT|2E<7$&9s6}aJn^_;Nxm@ zItX??YI+XL^*4wTi_f(6ZFhwd?=Ny*y{vECbO@2r8j-G7jXzF>{GMJ1Ooi9KYq&-d zjygQ8j7pCRO@~lLB)51>6s-m=ougtJ| z&)&Laih%Etk2QxFdt!^#fID2_6X^DIsm_!5yDqyz2AYG7hguGfDOY^oB2|)OgW1Nz zQd;xYBPX@x+-I`A*zxW}1cnvC>hw<1k+}gXA+`ZU-Aj-A-?en{=`l}_2S$qD>fe#wefgnI_~4tBmb+4nJCDI4DhV<@Sx#VFh>J+$y5t{9 zTz$s|E1YEB&i85Bi`<&%#LZ;{*@9g%HLPcbNfd|`d^GCGDp!!nxfeeiavS)=RkfUv zZ*a`#B_!5h00q7mUQgWyJ+&FTr^f1U#{)Z#RZYK~7MjK2-@41)>B#l5jYl(^@gkZ1 zWoBg8J@$ug_puPS`$v7~B^s)n-f{%0+m1ds^^VKcDLM!`dpd;!M&c~b3lV*qkbipc za)vk0AQo`0FE}hX5KW`e3=``3Sh*$sX%6x3c+!MnT17{^anYd-eDe^v#^qIehFNXW z`}N(CizE$^)3iC!>*?5ECSyrs!{NW^S#DaA_a2%GYw<+^sh@<{8h?VvEpa0(ChS5} z4?ra`t|SMZSPOM+C=mjghiL>+WS>rRbHd1A&#V3NpuJJXZrY=d$e|G0TG<&D0dG^G z2Ull%D#H8V-`KIE?!PbGHXVbdY`JK1sMU*Au*g*u53%lYM*sz#Iz_DdG*x($3)7&z6Bdk@4cpRXPoe_|#(N2T-M%+NSe4W}_WEIHfc64Q(5BnS$ZTo3_78kEd6Vpp4##oXa0()Y6MxX zJC@|e2}JxH0}VQoeprXGbKTZN%fAKx7^j)o7OteUT38!-0COG#7_eEi=S%jh`OH1wB7Cs%yY9Y6b-3-BRae6mgd%Si!ODZo^t?7XVh@<+`uQ}$zh@@ID zS=fI>=){wy?-O`DKbn*KFCVkeTP|vROL2@k1h*;#=1|BfG+1X642Y5_-RU~o@N1_Y zK9Fj@0x1GjnT_+>q0+ov^wBl{$k|+T5nS{9uqEP?iD_MJ$XhhAzg)H~0|`gbQw>f6 z5AHIeBe95|pGZU8rr4K(fT_#k9And4q!>|vRT^hO=~ikjCJ-m+>9-2Wl_`m{>~jZW z0u0vI2kGaHUWB!ft=x+;zcjb@>OJ0(wSfI?KQ4jK$bLPpD(E)mg&EX|b-smWZ;GBa zsc#_-cl>#E+L6Drc~o!|wl;su-MsNmN^3^uxnGuj1nDk)19@Xd>f{?JsawM@PCNi8 zpi)R8YL?cc4R?nzw_0)9>DFGju8vZg;)OP0yIcr*uZhPVs&Zofyv9zC9bIAP&+74C z#G(t|Sz&C?$>s8#;^D=J`w2&*rVQLzl7VRI=*Z^}!`-lk(O$cjbi^9HdQVoI8X!hD zg-56O?V(v1=EJS3Hh=StrG{5l_I&)7?0DGYrBYD=k%lxYR663biBuKADdQLf(fSdTgKUWoPrW#&PI2UjD)dzt2v9cK+^lWc*hw ze^tll3}%jfKA_Pb`hvWRXCm=t-pVG4%4do`EAmQmmY7|Fp_joR^>^OqhO@2%FzzI^ zq6Fe0c2KsL&&B)n<@tu8NcKUeii*Dzej35t1Zf}9tgjFl=od}m9`+ypVy7XR42RV; zF8fLT*|<_OtTsR2&##GT0&Rn+fIs7GMt1pQ>ZT%=^oNeyO zjC_V0YcD}&&_Z}`>sLbkbNfPifRW=ouCA9Y`!?Q#jY!@; z)K1A|+Y=PH=|z8P-JFPIK8O^<>`B?njtY5uolug40TmPJ<%>={8~&|AC1zRT{Lmwv zS5sBmEBzQ_ki5-E;lPOoP3R zj#IQOWC>jongrW$7YrNp@a+EuAc}^X8W@8U-}~m;hcRag;e=LP(=kh3xuc9WQVksZ za}$n)OKnRP;%?W&wk{l%CjR2&wZJx?!q(QG6+62%*Ioh*G&S%SOH1hpYfgm-oz@LW zJnoG4m)nY$Rk`*bu;;L#FPLdQXLHk&i(S=%d_{9|v9FiRPtH#Ba;-G%I_dy{%VJ zhz^U#M4XSWQKmQK)RdyFd$D)zj}^RrXJO@5)hBglWotFWL*5_*?p>nIrP9LUyR!q{ zBFjYmM6Jp97zy(cN&4rTkglxCDGze(@Tg}SsOQeLckO*O?C%JRh_5fn*O{5Arp8x% zGkczrD#kgixS$;%Xfo~;I~37jNKmi}#r1G`xWK2|wsJBDBeT2AL`#%w6z;5=k+s(| zf(aM9T!J^o|4_m=ro3Ta@48V(ZQ6T_>0~%)?;Xop;MV|j5?q(Z$kei;C!{5I;IKJa zVsDytMBm_->Eq$7J8b3}frHtXUy7s(^PEUuyf#kH%&Kt#HvBK6fhGdbuZfR|q0jsS z8;Q5>M%M;pg++r~`=W7ih~_gwqrGKJIe~7kUMeoJ2jz&O>H?;-z6exjTMzIgudSCZ z5+T=EtA1cFQwk7g+&E5UNeSWWuiQB9SKGK_N(=BSnNIY~Tbe-uG*5)K6t`Vxv)cG| z4Z#~_>A&Jk^W;hJ=CASUEf=$tlk|p65m$2EHGbIdJ*K{kbFKDvY2yh@jRL7woS&Dv zcpewFC+tYY_eE!)75yfA0`jY`Aa_VJtVX}BFT!Vyu8PEj=*`W0$e%oyk%bOL>n%Y* zWn>O=4CUj3CG^XL%ONi(9oSHT|-B9 zRUBC3cOE#rDIo=%l3l2_%h?gKP={D*Vlfu|Yb%7S?~9S~b{W6TW(Fe@5+Em8-)xt1 z;?x)8YJ4?mWWL#kPg3;7AP?>ueZM`!DY9Gr6~nnGy`Y~Qz0$QKDFZ**&Nj)+NwB)a zA*o_K_OWySqSM?4gA0$F6CXGFrOBm`8lm!ITE0n=ZiCG)XdVIf=ZZdGSm-eP_-8X$ z!8kX-S3c&_I2PL{VWKJ`>t6DW02FOwPk~>O#r{>>M>7Jx^wcJ_TVe(c;e__+Uw-j~ zJ+7N@`8Tbu`q2;%u~1Vj{?V}dzDGcV_QO%Hl|cnu)EdfTJX^1Ni->IFcxpxSyZ`Qz zE@fGLr1!(vqHS`EQG^uF*A6DK+GK9ew;~ERD*C?uSme11?OI~dqQwpJmR#RZygcts zkpD3vRsT-L8J@MZ&tAaw8%S%h%VRs)aH}EO=ZZkAamWlWg zv=i2$AGw;qozmnl+dW4HX~r`O27evn9sAvGo20?6x~f;FS@2%bt(}6_B8a_|KMb^j zOC4ypj@*n$$!_PL2^u17~zRTn`52%7bW4puxOb7EAitTv-7M$BCV{CJN=k$;n zcLurHA9t4N`ntk9r@57Sv+qr=$Ao&s3SPZbU`rq3R%*FAGi8l&P*46I$~h4r-X+dT zGHBsOjEXS7`d9c1pVMOo;hF zOBXRg*Zh7wys}jFHX{brCYrG(nu47{gyQ+%3OKm0OOt(>L^I%UE5SY?(9>$ z{LI}&Hcbvsy+6uPb0?ETDZxTbUp81lKEAIMx!7bn(zTF=?nOm06-A8}?!nf6oVoAF zzyWf#2BH#n)i;KmQ1`=0-7*eR_o+^{XcJ-gM($~~(-Uj@CkKtSoa8(vBa+7-yl36= zH2!wX`8OnYd+VM&Bkz;1P9RkQerXZdLXKkaYN%vfN7rQUXAMS>|By9H&MV^?j)%xR zVwR8PRno1JhmeZV*o|f5pKCs?d%qY=%rUfMv_3>zx&HrNji_!+;JLB(k1{dW^ARp4 z%ZTmKGkG=HN=06khM}TnFPUQZTuM?ioJ=!0&Q^bgcQ>+&K8%%gviwE1XAxGZ*qb5Z z661Tvz`z0ObJhc)dh#ngMN{z6xM?dsi=UW(Jaz7liX^Tivo>U2;L9(r4(c}3zxUH={z&ZYDE~nT%;9gHBdU@Z-+-%AkFdwP-aF?M^0V7Cn4VHe2URQVIyd0{?0kaE?a(M~k%+-J8v03ncU(Wg>T#mm zb;@nG6pBI0r&h-9eyrtsFpcydtflDG^ND-S7pDd)Mec`tLVW<{`@RmH2rBM8KfU7> z)Y#e3U;A7Uj9u;s_IUZ{g+w3zpS_E z&R&lK-@yu(mCILT#8<#i1si11iZf50^EK<@bZRFTca*-RBjUpb^y4wf57oPaKzuR}`m?MDrU^E^*}r@c9rGlJ=rK%oWY zA9OU*nPYQ9afXUtY)?VbrH1XUdEai`TU(InM;*uI_JGySL}Be?Hc1hFU5$A%4seo5 z8&2%N7BR|R0;(>HN`h@ zS9QmgC9wlI^VY2v*`wiEMGz}8G?1=h-tKneQn)=lh3^NgsUObVwz%lnZ5Tu|{HIFy z781r`qGA6}4;#`1u3vL&YhUkt_51VDvq99x)#i0-I*^ZHZUCUe>G^t|N?4ejJm86q zMlmPW1L}ng>_Y=Zg{rEm)2iG2{rjoivCOR~+8h-63V?nRHyFo&sO;?gRRx&Js@rby z(#Pf5DH`&Yf`S6BrKKgj#=UI5Lc9Ju85XGy1ce9nCQXqp_y9z!ZUgx0>Ej$Xb=VKIkXEXQN;QpE53@|LS(%5=_W; zqm5F_Gs>n>>!8H;(JW_FQ({x{B<#EQ;F|D#WS!&k4F@2}Y75x^Qo3gQYahzV0_%}3 z-Cv_STYuj4z%=*8<6-Z~rY-(B$BTzma*8+yJ2M*4Fj&xr42AT1=Qf>NX8pD(>`cJa zGcbc+VcHtOgVywZ{uo@tgS)ZLc!| zAPqrHXa2~a1Jn%S{Lt%vrK*X^Y8!qYgG3hV0LF&Vffo2&)mc_-W}Mt2L_Qe_ws_#5 z@HAPe5qv#Qp=5*}J8a8HBfj`JlRbFEGVk(qEyURDZW}`R0x;jva6E2T2sGFbY5%TK z*Fj@_nH@~I**lqU#jVaA2WFa3diISQlRP_9I?FsAHCyRMD^4JMEcz#0t%Z8@DPd@~ z8p$1@xZIpaM@Qls7ewEJHA*LE@N*hee@*XDIG`8oCgXOTW-*+#<;tHd5&r_NWa zvnK*R)5eSEIS+iYY?Sa=3@9z1;d}6NVI&`a*6cQ}`5TvEIaC1-G@v!yb61wR1u@|1 zJc6QPzSoY!>Zw*i}uB@&nMd zofbl%@MYl4J`uG?F#sCxvgV*Z1bV(e4I_k7J-|eUII91~;8=V%3>$M^EmtRk3f7~e zVto#8@m63quRdFAwaMKbNav-4lP7MQdDG=E3@NS8_yocCdRWH_OK0sS4O!x8`dopq zl7gq>>-p*X+%ZGEoM^T6cgAfEt;-8@-4#N+kf-joM|(C62N!og*diC1W?Z@Vh_9V5 z&%feu(Li2Yf89N#)$RhO*a(c&iBC)J>WYZg?11&I+e50CuP*WEa|MxNhs&OV0Dx_B zMoK_0j*tHd?D5zx9|v83Y?RYJ;jYl^D7^pnrBKDnPS>ITKu;0a)zcJSaB}B(l&(K= zPeoY?R2wNJ_M-xkt5 z9NCvm8`iw&=jYAp$}}sR*U<1UGSQ@I?vUB_)m#XPyU1#bhvXkst?z_Bw_Rx!%0E0n z$-|zj{aB7W*FedR!;=*K44iQUlZyZNVI?54**>0hYlG94}DY81`R00ksY-y|yJ(`Sl=VvTk)vJ-i2zG$|lE zu=TE{p-y*e#e`)>h=A0dfhYgydVxZ&0v2t-I^<)8iDE^UT@SQwVl5_ z;PZg>gsOx%kcjYYZtn;L?%dkCu6+h;mz^9>{~C|>wU&Go_}GhsqefqC#Na5*H>1XOO-=uYqIP=uBnjiN>kr;r6U8@@Z=a+;CnHac7H zQTJ-SX!-?vEKeajb~LKwA|_toh0E5F%;l*BF>BFc1)-pf{$fXF>Aa)N0kCXTPRSkp zDq8F$Th+&3fznmb;V(-= zMD`1%H+0+g%G#jz4!5jNzZ#Ra3qQdulObN9CIq=!vFyXN10!-(=HA-$zaFv`R{DH> zGnBL%3|3IEJRvxHP`mFazGj!28O(Nu(2F`4C%Rcd&LfDo(kUx}SQgz41Q2nkA2iLa zf(SXSlPPKg#Gl3?jkw#$8a?n#yDGYs0bt>S`Jv-Dq>#`Uk-j+sQuMPeZ;RW>f(P2oJJH&x1Qa(- z6QkN)-e6Rl6Lybt*AZ2-qkm&Sh9GwNz`ifWHh;@07Fa$hhp(zqM~fIzmBOI;aVYoi$uL7T z2Y$z$@1Tqpi{92icy`LA?_{*ENONeQju%^KNIuEUH=AoXJsfm~2376*G)!TKlBdV< z`;+ymC^(m&fc=Hr+%*}cKjY0UzQbxOXLR(<=jENph?5s|(!B0J3-J;F#K?L?l*xT_ znUo2hD>nz;)u!RSPvhS+S;8CWu&GJ4Pra+m2*iTm5pDIS3JaI*$hS22F)W8iJ#Q~y z5BzfW_hiPKz{OX47JCI|Gto_C57?fri2(!P+t6KQ$&>$VNloTPSlNTfncg-5DnDO`R`Ag zV``xr5jhcx0<5SJFdadhec)|ZTDI5YEkL=4`$}ox?fEsQx4OZa{h0#9n0GW^lz|?tA8NGuLzal*ZJbLuRH#R9}9!WTNwEqFFE_i^e z`0bwkFDfH#Lu`QHUBm18i24Ro>)VlcFXMG8p6~+UfPV;mKj-=Wl+4irt=QS{7V&uY zUyH+9)s68M^ImB7Ge1q9jm@5SBFd4fPvtlBXqO!P+XC=SGpprf-qPBT^~rx2M&qZG z%-7L1!y^m(&X_+PmWSz=I6hq_i>WibJeX&mPlBW1b&ol13!<2d+An~Amo<@v1_)=8nU==0`(u*-PVxvciKBZV$0ZM>VXgLJl_Sb`EL6{sr^ z(EAK^?6QUFi5@*L)>8V$zE?9F`8{SC+b+SL2GhSX5(x)9WMz(6p1B1)9MG}~#Uz11 zBX<)IulX-kWhSt__wG4mharn6mCexT|FWbNgR>~)Y5C#xiE+}S@fmFBmvGfa%J04o05i{ZwB+UGIiW@q zEPn?ry21!#u;jD?u99fidzo`fMRcxa<>&G}QXInmIbGkLWS3AGW7?uhZAng=-01e=!?6 zZOh=hqTWD;{r|6CMKsHt?$Wm)O)}NTFbrf%%$R?Px%NB7N6xa$`pSV?(3s}Nv7k;X z2Y-KmAD&52IV-31%?5c@9+UsLhE*r>gjHdfmp4Je=41S){)Pl6}@a-hAn;bw)C1nT^OL{d&nx^vNU#!RutE{J8kNKCAf>$g-4dk`DSk zcvr2-JjLk#tphdN+E+o01}zH?=PH7z8jXuON6EB!te`U#R;>SZlry?t$M*RJov zGxQt_6`)VAF*jqD6KXVMAbZItm7!|TC!d7IaMNf;UQi?;EMGpiiKDe7sb}R*@X;Y7 zw3+hg_x;|nVe``8`!P>24(Fo4&>tA@lYD}y6Nt*9StTJ`@8-jN896xA-CJ5@nX_wa z3Zy-I82@HW>@(DH9SxQPV!yv#9W5(kr5G78NHxCsc~+MYK9isXFz>Dv1R04!Qj+ON zM)_!D;AwL_DFMEzAc^OCPx&y4i)|;+briiH0-!#NpTaninzWb92MaXYJXt+NYwC<+0OMnsXP}pW z$BCiFxnWqFky7&G%gtwtU8y{ zQdm?(gmyZLtBBS(!;Dl5hAQdh0AUwfIE-b8@Oj#GY_-2mXr?e~2a?vlKKw0N9a%B@ktIon=626nF-~G5 zZG)ht)lvyM`DOs(ZbX9X)+oAK{Rojl}!W98??+-gCcX$+okMqjq7niv#7_JJQ#V07dC*hKfL9V3Rz@0PF z1NFBM_!Vrg8w1NrQr4584e&_g0W1tv`yRlkKup@ob{?ja#K5NcV~jllK;k~8ic%A~ zPPBD4bSu^VhpB}vHI`4yzSGoN=1j*t0zUUFc93Xv5kH33ulO9CzB#7}SI+&@U^ej4-{h5yLo zC;*=pmfuM|Hfv9mYJSNdaJ-wBmr>XBnC<_00qFEWTAV`)!DdLs{K#Q$dCm~&QVPvi zld*5GC=vA!T4yoHGhJWU7(v`5ZM5&HlL(Q#=lWn`kGtoD({2+9ACvO+9=)+XQo~sQ z#bs3WvnrHk13m@BvY#T1VQ%U-?7(O;tv1^GIUR?M9G?@mo46c7A1<{? zhv>kA0&6x|tTWs3k!cey0DS=Hrhr12J?;q0TxL6((AY6>f;;U{eff4eZZ|B;a7)p#g!%PX2ds zEj1WbJ?q_S_W=f3c^zjP`m1;Smt76(`T)DHTW3oHLF84i7PCAC&%BF;WJ$w86F|Eu zM|@d09=HlC(z@8o8Tbk+w&xQW0l zUe%r;$qA)cz4{>0r|D+R@?ZLX`zIfwH8Y#(bmy`+K2T%S7n{BS?eN)}6vG@ioGpK! z_8%RaV7b|WyW*d;v~+k)CxD)OA9Dl1FPs2wmeJmLwiehiUpazIzIoL>6YhC{z<>jh zuOoY0=+V|>nffSaaMb*DT9$?Aq%WJ#4PGyb-*w;6^oKd`eqIQx#W=|pVX@0-t}r=E z*Hhh8F@V$UMu}Rl9c5d0wKuOYN10)Rkc1=%zbyPM41hJxe zxA}+2qM8>!6RyFrzoBkx!TxqZysG*tGBWUI$4=u>!^h2s z5pG^QM&=o7UN<)C!5-rnip5#4=5#_2GizErFdoeK;~im(#aaep+OEX##znl;^Kp5> zbl$1G^pa8NMCLA@(V%m{$RnwVK)OJQ|5zNbiS2Thi{2)+F0t%eHR;`q_&b#jRz=Kl z(!q5i&-nw#o3%mYtiWXFi?7Asrp_j}y>XvD#AN>Avd((b!PsQ>_(NSOyce5L_)FZ+ zTa?{7A~{e)aSYNx_f;5m{QbMZ_uu=~w{8R=E7m7_?}cnJei-pgBDt(B3z1?^7R~0& zYS4UZJAxTQ&>;o4vi;h9NmEseIpk{0mauUaF?%DTXhE~@(y?OR1w5=lDtXTyHYDwQ zpWyM~**ob62)f!P-sx-RNgCI7!utQ^ZD_jfWE8;ms1gK>KX(*JWc2@2a0hv6!~unLl=OM}1Hr)^n*Gr0GA(7LmK$fLPYdhx zU!o~L$wz;8nD&wXuIPRl0G+~dPl7GlHnm?0c)>5a{CV01dPMggcQb)7`uE)}zztLz z#>+C!!apfhEjE6gX z(VHD*zpK-1k2K<@J_slZJqzTjf8;~~hK3V>kT+QYJMFKu)Q{9@Ym8-Z#_2qYVG4%M z>-)Ty&){G~d#C%x&}#xXv3Wdh29YR;s#<#lOHRW_?j+;<^dvZ&f!f?~0$nYp-o79% zp_lrfzeeO*43R+`mz^KPl%ab}{7q&&Z9xG%cOSf)FPUnV8;TyCMy{3=W_g?5o*l&% z9eI9vMhTZIi|)dBBIWfR-dQXGEw-uq&IeKPz&gqX(2zC8yVmx7$vh%kTXbU*YurOT z&drITFN=*j?#}RMODRwU49`Q}6WH(cXFI(QziGU@#G$QRm7c<-<+8;u%8^5|x-66& z0yJa^1|PB{LY@77rg)8h$UC|*cs%BD?7zNmi>cYwKgY@F-!h=3-dX@bOT=YH zo~vmq|DlUZAF<;wbpqmgJ*vjd5N$4@ECA8Ec4!SuTQQMWmZ^QX+e*k30Ir^hgPG#Y z`dMLsxm>@OY6W0n%}<%OT(zQlA5Pj%2LUqwSguwRzY(k~HjbFv_-cR3@QpAHs8x~g z;B)=$vijnG2deaFJez+iPZYt0#RO-?d4y^3=U8`^0D(STJ1Vft^+lMzn7*B(En{)z z_?wUAuo5{WJxVk4JqkKHI6CQ0Z70aYYJ}A8KPT*pQdD=w_Sx{Vm4scfy2WFjqYzJ9 zfpy>WvDG?9gRW^QALUVYPo2hLIw6QC_-ad+apAzWunoK;BoMHntm#Ew_7N-XyH?x5 zAH9f}vwqE!)dDH>?`&AI2-3JSxU;zPJK60mLG@32U1KgsZ$~a$z3iKRqJ$#Awc4;d zvle*y$TV28tQhvyRpt;>c{j`UlRhUYZ{_~&i{-Dg>LOjnScv0XRF6(Tj<3W^_|v#4 zise8}w#s=E@nr1bqIo<0(QnfUm5iXZ;*l^LEFa>jR*l=1bm{21tA>1w*r}yu*e=nj zqY`*`$K#oSHW*x^FhT#VIRJWUKZauh(o#hP-U#F5C@I?M=Vb#U`SNNrGxHqR5i((a zf!*=!n0&DaeBmqzsfTWDT&`Xh(Lxbpw+WY*%Ih&Qno!5-aToTchlpl$e<{#ep8% zz3|+%m(%(@oROM^uMT1~%&%oKr5%g6+3lFzx7Ug_{+$hPFy%b(H#sPUmb*R>xL?U{ zw;h6V-khEN^Nlr7UJ|+OOYySQ6MjJVz@8)1zo6|Jb~*a!J%<|Qk4*jh2idKvkpJBb z_k4??@9PRTD-tm2n-0Sqf1@Yrgy6&Qqh+mOgR)ouTex@g1DUo$vw ziX6s^^ZzOo1X?*#Qu;LYTbUaWzf>F;i88>rW6(z14o*BPEb-@TUr${5y&I*)kAS_< zBA9EypLzbJu?&==@_~sFJid1|ivh<814}9UVw zXpAc3OLU8H#@q#kSUAAmQxrHCPcu{9=6`1cIy}IJmTR)$6vo-F14S$h7+Tr%6AiHL zWAEB;Y`7#RSYXWZPS2<8@05yuzHT}nMw7(e360TZaF19k&&20e-TK8F!3|HabW`Up zokR5ZS_^653m*1N93wv0dmbtd4>fNT8N55|sr#q0`8tSmdDczz(!88|!EgvdwZYu( z(gQ`lGP%Jh~#cutaB()2qhXOFNx=UXQX zN9n=iHpRTurC^ssBPV<1onW2{oKz16iwvkKs!zn9+f&ppTqN&`yPL30*t4KLT`30f zCaW2=c~0`L$T9&(<$|+6T@xLSbn6rysl+F zvp1vb;9{(4N@lf8ouNMO3=sVc0rC8$)3{ZrA8}Yrs~%MhLSO`)n|6sepS?Uk`C-aY zeLylfs#lL`j=vsv@8lWabkHIW3Vx3hZdzcXdJFOJ>TS9Iz`E|2%;%lf*a^NCjXlQim9$|aq6o^VrQf!=iI zC2u~b^}^XBEx8SC_*T5R_U;Gk1x2D)pD;Ul=WYrz@Fp@ zpz^%4Ni~T&@*|QcQRf`DA{J{vwejvh=G8TADst=@RaQ%qs6ey16u`wz4>S`GYyWp|EZN58;kz0OnoG6L{NWAc9AhgbbhJH?g+QGeKd?A#FQW2w1&&Yebb_h5bbDHTt|eS zTDcsAM$7%RxCksG209+VK`5tU3VSTit~L~GK9Pq+o?_R!8XR;iwm+nEq(85jIR&va zk7KF~V$bP|csnDXLchXkdhxo)oUC~SWY`2#hJE#lK^$+bSTljhuC*BOfVcmB&VoXP z(R98nm(&?Yyt!4s{9Yk4T}H~4we%Is;?9Z*qma?#c68aWZ`ZFWFgTIzYe24h)c12H z3~AQ#%69Q?s-V)5cRw_Z#}=^XeWqh#n^ikLI_(O~Sz^x#NCd)6866uQb zP}W$`MmNX3G56C;n27KegXov3;XF=@3c%(y!tqqE9i`aV3^$yNE-VV#Dv`J5y9CH& zZnS0EAGT`L==WeWX7)e60xkNElu9|h8AznxCwgJ33@xr`n1u{KaiY&2)+w)SNKda# z-v(UdK5CMkSd#GrrMP|gc4 z##*JKvrX7dsuai=tLnrYVz&zW9)s1)k80zfh!n_ev7O28v`XC?GQ+f@^Be4c9HYDS zO@nMmQe# zRCa3Bx`2m{G-7X5Ah#m6LrMrb3qGLsRhf@0|*C446iN=l7+9EQcN;Z?hu zoPl0o2k+4C{x^qG=dY8k<`gHVIYFwR`73uXB_V@0*e9~*#I$5xCq$D&REAiG#e0_`#J;CL^y}{j`R1)bphG%uJHYq4Md-_vW zFK>xGP1C!g)>vqpOBTZ50*)$pw$j9p57QrRTpn#G*4wI?3 zzTjHwUHkjuXbr)wH#t6nU_nRuWj)K~c2T6+n$4J$nwwfo=p!dN8h0x}pB?d_N&lPE z$BfEN&nNr>Bo||qRE~BFY){`G-183QvFiNCgqI5hV#eczD|Uq`FFbpjmH#6$3045Vm17FpU~e@l@O4szx&vi z8+K=>mp{S0xgs_8tRuMe`FAIIDo;+c*QqD>2FmNkx@@5fdE&uWEEM`6(uiY8U3Tp1 z>Znswa2DK{V6iOsqX)jn%+mS(lH8oN!K2Q6SZZK(Z$_i>dR>kkwsOHwhhB~brgQxz zavj@stgKENR2u{713oMia(Fyogil1MHTD-^`kC2!3;_aiw6@SB-BFYaO@Vb$kQ#vh3Ik{Wg z;(2b*hz(^1PRy!RAN{_Rqu6*X`Z=RIC{aPPTKwd8{^C-K9=V#~HX%M?&Dn|rC4LZM zv`v5n=Q6z!X;VTaJq^4)(A9pl@rB{P--R-5%ykptOEP{VP`c;87cbvCGJLi2deL6h zlsiL*wdbZ9`dOF^RSyJ**hE%ivZc?DVbS7`S*{r^7Snp3*T_wx>aCC%<=AP~Me5FN zKwTkBFx4Q%PU55FR)=!OP(h`vi%eNYU2z>BDPjtYs)!%;M=J)&YCSFz$6}0s*?_8O zGtNUVZuVSStDM+AEz5FjLSfi!4Q=9$!nSU916YQxFhL@TJfwx_hU`?_h>s~-O4T4; z@htL@88{5{MW@fmgYdaOaU%|`oc??D5x*s8w{GUJq#P5&z1@0pdw;ul@8032UZ_=t zfH%A1-)r|p1^`baO5{-jQ@WNe(caaXkNDdzbdr1BbGamI?9IJ*l$+&Xr;RLMj}n~{ z9t@Jj>gTs-!ys8ZqR5nPp!YXcTV@crGoM`1BDa6r@FfyTs}b6^b>`MD~ft zr6~A>g+2%RsxAX>O|!T8Z%f5#Ui!dNt=Rj!Q!)9_pd#^B&4!_XbBxN5J!7_%3}GhJ zl4Pa8_{O@)VmrLgG#WqNyrU!C>-}8u9Qyii-s{fIjp9%(20>4ugIb|~0+tntK_P&X zF?W!wxpdZ51hwGPr6|y$*UYyU5F{eVrFVi=DqefJ;^bY!it)nktjs9tE@W8p&JhFa z`Duc>QUIu$AryysTQUZmS~91~1Yaw?o}JsYzBnKsLp-7VGBLkARblQ3dCXc7h}HQK z$f7}Ge2ev}<)U0CRX`FeQ27DEU3$1S=C9we=g9o0lBstvmLn~AP1W5Bl`BhWA|B3e z^T%*EH``C(AM9Jos_8Uylwd^+mqG_Pt1TK}GyI=77eGCJys{d(Ntr|pehI9dUe%;w z809AOR|kvtfoaqGo{O09 z^VC{@ZMM`F9Y8r1XAbfjX*S&dSJ0cm8zN?|@uywJ^A@*~b zM_-vPfA7fez$J|j*=1LSx_Oi{Y3vX+op}ZlrXJRNT}f>oTR4v+sSqXz$2m9 zjVJiT&ozo1+bWLOo73Hd;NJdHaQi0A7G-TGMv-p0oA5?NO%&@aM5HjrCdyivPbV!} z1Q&b#eiSAJp?W>-^OEChL1o>jt2=cthra5xli!Y4=$O|YM&?}mJi_yr6(dRM?(Gt+ zUkcl5`F!Cl5%kqKqP((w*AIF8^D7wSiNc;#a|8eQ-5yIQL+=d+SU2&HC)2Ml6?8Rz z@+m*JCR;@XK=TPw#U?m%dA~)lZv(29jQYw*1EdIVIL`(2-bMc0g9ADb%dsrtw?8gW zV}-PS=eQeIo0mZTFC=AKjA>l5wyLCe0=tMrqo)1=&|qiWaM4GLHnxAyoj>bK>*ICo zfqsJ&YfvKJpk4*AqaDpK@b{#<$iMwKTdF}LLjK%@sW@7?^%ZlRa-T^MEb;a&Cx0LY zWL9d-+Dfa@i^aTBAn=@j$!M9PThFz4%Nky_no&f?d2ttp`&vEPv}IUjGjBJSguj1d zrQ_(^#{o>U9zoPyu5sgjS+RnI_wIf<`y{1cWef2l4X%Hq^k@7FB$K*Auv_qlcIa)u zn1?gk7M2jZMl$|9Er&Gg)I+<(n!CDgQpWlIKMtrk;%+C*`Y9Vf!a8MBZn7|z4KcmBI{3>Qwf z|4bKjzii#O!8{La`M<=gt{h7=5#Sj)NWu-W{OtytHR^%deK`Jh)Ak_{yt=oMp0YG- zuy8XU($4dSLhZ_adlw=0x1lPI8`>h*9pCLv2mo{j*n_-@TSCUN<4shLOC@GAttK$) zAc16*zV~S6vZuaW_Rr7FR=)y70WYIy-lUtEmixhAlK3I)VIb~3KTg&?7J9lRK9NzA z)r~O0EK}H#Ur({}(yAZ1z4ho{q_bQG=$P$~68BPMK_dNb#_*Hn^1l^>L_?(iUwdyI zRaMmWjnXZGAfc3^bR(T2A&t^q0@B^BAPoxAhY%#Bk?xRETHqkvCEX2o9f{|C-tYc- z?|iY;h*Zs1=rC&B(J6D>DCN~pEh*1f3M5X zE-T!O3=23>#Xy@IzoUNSlwOjNOg!|GvH4^9$XlJlJ(CTL?;{p!^)($xCh44ZGWf$> z&fTKvqy1G&8qK5KimduN@LuZc7dCR8jI~B}E@!7{N`vR^_iOu5JWeHigXm;pS8ZNe zK4?iiPj%p{_+71yKkTYki`aQSrmS7%a?sd_{|v)Uw8dsRjW`qB}CbuI}>q*29_P(NW?-*cE zBfD5We@!dxGG``MS)lnS648Nm%9RCmlSx+0>dS6S)o8S@rW}*7na}Zu-2q^rWjd3c zvJtxf7D!Q+we?gkeDaJpbFam1?0HR4kASsj>o@a_(~aRrxOJn|Ubci*rTROO2qjsg ziq+MsY;u+>m$8!ELPt4?XqAtP^wPU6F1Ma;)6~`UO0tG1!cOl3belpjU4bC;U^Bq6 zD9WFH652Ap(*7jy^}86wGo(eU^10xkZ8;V5n6tMLFDe&H4Lu54&h`UX_i`V|xu=^J zpD#CiK%mXus}+V#@l~8yF1;T}<9m)BvQcG-b>>w+76nOv-)1)CYV%D_<&He`(`B)`*?Y<(gMq4BM?W2Mt>dUAc=hGb8y_c3++Uc^>X4G#}*N) z8OEAIbwCzX>r5y%y10_6)HeUC5!a6J;(=XTn$Eh)`n|y?dzR#XazLhv(fy|gMpTVN zD5V;^B%1O;BGZwIQK9~_l1QSB?C|ol2|BMlBIq=fG#Pc7iQss(>~$s#T0mFTY+Kcp$`r02-PjVKSB?Jsdecu-xGRzrVi z%zluB$bUK!{6@^)_B*vdKc75@w$1Suw|{sO|8t-;hLQ@1|QuJ(#qL$nJfbH{n2dNYTL0 zSU8vkw6*Dk$)7LLx03V}N{uuv)r#}?8c92%Ua(H&yCRHohN2$2qb5|6pOr`0Nli?q zJ0g5YA@D4C;A{8Wv-r6W-m2?E3$>yzeWty*Q^f_{_iXG!kd*GQv*J7yNLLYO^Q}dg z9_H{D*9yqZEg8zVJFo?~7mQd5yJ*5>$Yo64qSeVHP8KNSywMq*`y{{C=1`c;Px8a$`9{kkgV|Pbi zrQ1Q&^Xs?1POE?0!PFP!jOhLK3mDPCU4E4GhszC7cs{?r*=9qU$x|`Bv)baP@CWah zAvtGUuIui|Iw)0Fvt8$axaGYXxdl*V?Vgdd}GR~@X)XjWXLWK@jOCzQEHXeGf{Sasvd>#|BMPI6u(!UJH zBv?gNJ=iIhZ)VymTfb$f_p>J*>Fq~NC-;%w1gBPqW$zLe>sb52jg&(EcZ>UVr|*S! zF(IREXv>EOrS7F|sJ{!{?|z*d5*tdgvV?fx4DaWKzac}%eJa_^E5-Y|`>Gftj<4EN z7VAlV;M+t|)%A4Dd#q3cD$D;0Y7AXKWw8^#^L5FUz{m10+Mg_y%sYLuPV&OZ1oSPHHPvLbdnI)x_LFm zSxp<)FHw>D+3O+6a8o6~)=!Eq06ki-OG&-}xh#|t;Vt7;PmN>s)l`*%oT1o3TjTxc zi%F&QBl+H`pQokdk{j~T37tvda7H3Ki|P6+t~JGn^9D8&Cfjv$!km+84ugz|+bveB z8(M!qkL21cjUUK)d+Z`iGniOL{G_*3E1KAyZ8WmPp7Aqo8q-}@`(~>cqwg-2H7nGw zc4dAW@FyP_(Sfswmk?s{4jE0OirlE;Ow`WsDGbpzg7eqG@wnnkg6G;6%pK z=NiJ5oMI~Bmb~O5L+SSCRhHB=Ya%}@v5-At%u<;{_57!L;S3s#g(v#!y_#RlZ(9U3 zhl4!mKaN3kPY_;7>y7zpc^peHwH1DQMfba`Mm%M(BRoiz8xtx|Xl$_Xg|4;YSso-{ zOitSNm%%pnbmx7E%NEZG=j6C>UXF+j)eFZJ-Ac0)TOI%XkcRm=g?f|w?uNr!&+_Li zIPR)Qc<~#Osu1!f_CL*gFQ$5YO%PD9RTu{pDnx}(`wrG_D@0hw>yfc#M{Ay?sao9v zoYTnPS-tYzs^2Of*3B06{_ab>Pu$)_Em?DMwxYrw%l#td!O64{`7Wj`i4i(db$sNZ zj>}0R$C^dEXBHP;zYcltBYSj?Ms_yBqcC#%!l%AR<6%hoy#8n#entE0ce(Rb>lZ0< zvS+i?tF4<|lI@v!>5lT!2pcQtTh66V)br9asE4qxxhn7#NOoWy-8L&n^P}~h)3psR z*QVyUi@E7gE{>Y}_fVFx`RhW@#;mTczQmGvhITb328Qj?OU~K3xsQ>beU`j(k=*YI0Mhc3|*}!p5N&vaYE=to~EGKB9x?1dp$2he4VTnT4hutZyq2q;-Mqi61 zd9szH2&r#P6GydPCMbex8y-4Nt2qI-t+dLY;!@|zYX#&_v|ts&5gva`N(y7tEKik7 z;?35saT0btvQyO8|H6~?NvKH*1O>m8+L_3rrKUzjy-OyVE*|EQgAlPeEe{-&^24i- zaRXtwAjQ82%(Bo#QGAs(v8Tt;%OG@P->m9`u*e7r`7zgn8=U59ng8;sCyfmw*4KUS z$g&euiwoEffH1DaIx`3dpw#yod8~XYB*-%C_c9?ocy1ZeS7*AVcJw-8r=H4~5h^Ao z_NU&HZ)a!6X05pWF%M5AJ$pE5J9=$aP*Fpaxi|G@0oh~OzRuI3*B2M}xE+>ptg2V2 zWFXwdN6?ZUUd+vgOTh=67J=+N+=!rkb8FeK&Z;$(sjy)_Qo0X#`^JH1P%cGiy9Lh$ z#7Bi(s+5^2!&12_LAUe1?-};bq}v}JdxD;gcw3%wvW}!jbD*10GiWF-8xLAh!-0``JMz}mK(V|e=Fbo1~}IXWKI^!~7JJA}vnU9)g}pid!EvuT%u@)GC|qz~HWJU{i? ziVi8jg9$HHq#cZP?tKnE>?Lw-H2FaK=Dl1yTP^LSI;iix(vc9GNeMBvs^JmgEvUMC zU&C&H_Du2)DBBG0aUQ#iAe{f1e|(aX?57tI27h$%k`4Bx7UTmzDwhq4e$DDvtU{|8^se1}*cY=vO(!Mjb)c|pKAix{%vsaEv{sZIQ zq7oip)> z97_Y4%^NyIjdiu>lQZ%}KBbv=%54SVi?(RO63~&-=5dEZoMb8^3m1WJhW^ z9WF7)EY4n#D<M>X0LAl0l-cLoXDu70;C=mCJs*a8hw4#M-StJk2Ezs*eO+H01gP>HUKr5(X z(hU>r$mZ#$_aXiqQ@xs2RmiaJ^qaJVZEkzZzE$>1vsFvUKR(kc$}}~cA0!^Hg)rAQ z&in|lJzcLzGza~|FM3__v>f`yG8mxvQ2ZS&m+!wHTG#rbl6&;k76KK3gXR}33TStG zYvxDy-PPwI`-Tw$C`?*I*{^;Kp6Xtn#8z2>{9NPW9=r3*p@d-#)9bh*b)VI-3g-Ib z#fOI9db_%wO-X~`xFp;&7)SJju)Qay}4#85wer9 zUSjKEIENs(wH8Xoi#0U#)p!79ew#3f#=C2Riw3n z_vL>0{*xDS2cUo8eWu=uzqpT(Xs~JD3b;zB5twT@twhS^LP4z88-kX$P~!J@9&!?W z=|-lnFOk&UiU(&u70VQww@%FM2YqVDz|kC2(|(ceZ%Y&K^&CoUCMt z4~7%5HrFD`oCyiYACYajpuQmY*z)}u+o0YK(zV+w%Xb9? z)=LLMqmzR+pNds2L^mV*8iw}k$&GipuUczKs zSGD6RK?L3&(~QAA!XG=kyI~oJpz$+&Yeg1o6sB%1^P@*ip(T5NX-tdD{WuuswM6OT z#}|72*JE|Ph)H=JST;#kJN?-(jNGyX&i4k6dc7|UXL+{x-Wig$+tz#U{h6&f2f6VWNtYR_pjdYNRjR#)}VC42U|n3#)^oYprAWBg&& zQhAB7wv5i53_R+t$#+5}i80lshS8*zr2*E(Mjo`(kb)o{{qE;68?iAsj3dM`^xTXF z_y9YuvXk|d(f=jM#8{=p>daA2yQ6r}y(T&rkNll*41V<*H3B7vDgbzA{9(OYqFhyqS52$;1-n z;T+`>j4Q1+Ahr+UxLFq}%!hl_)(aXg+$b&H&SdckAPW%U=cwLYL&nM?eBp@B2rt-) z|3wSOE|x*R+n-S*jk!o|oY}_UaHMG=YSD;Y6B-1rO3*DUQ15YMM z#gG5V!T4j+Zy$*Nw^WN~7kZv~mQ)O}$*fB$-u14!v}-)-S$|A;ce~hGz0O=HKh~j} zckV}rSe4qK+OJBzb=S%8=YzL4%uF}In=1T7DUom(jH!zcC23$_##A+21d((W1j&_f zZO*Hc?whS3gm(f+)KFWj@ApzJ57x(OJejL#TAf4YNC`VCX}W#`ziB!Gh`;QHs!UJ`69LK+?ZjjCxX^q4jN2U`BILfgI+lsUon0HhV+6j=Ac0vR;01r_)v-b_seF zbIcR9ko-5dXtBko`C`I(isR6JKPh($;-{d-PVO9XzyD}9Tej(Gqd&QZ0pK}3q{3*L zLL?o^obaKLu1U|si8x+Iv+WvT-|m*f5KM^zkSO0+ zbvGesHmSEhS_&*sJ?QzWp10E9@Aw4e0GGi&?OPWjFT`?qlg68n~cxD^1_6Rh|?f7IQw{Vt?xkHWTs zqV>@Ku@i`SUnFC~x3~S1)S9sQcaxdPLfCIPoiFc&8>1vzsAejGKtz6V#%<_s)Z7eUwxH#-T)V zGRB`tlbDWPD0KTsQZ`k84UT_S=rR-;Lg zfKlTOij0K5rECF@8oPDpjySF`rV@yVYj97{QiPO@M-uRNl3D>7(MAeo^_DZ>rlpNv zel0g_7pxzAm#W&*zR*-sf1NwXxl~QDC{MGZht?bexnMDhkQy^w#ZONl^%pfKn$7EO zFjzA40GOnnk&!z2fb6emTeC88B_BF)b9<9VEn;?w+SF zgcZzcEgPhbaZ)c7_&NR*fQHvKqVrQxk8Ecm5iN!&}L8#GObm`>~4>9v}w~jWaCdAx~ewL$BJrvDCBdM5~_BK zy(hoz{X(3=f7(Wrr57Cx3WDkUfFiIj-P?1Rkwo3oIbBYV=$d^%2>-UdFqBX*(=y^khKA-7PUBa; z|Dr6W$u^zHOw^Rrw^WaskS(Acts3t7WdgDnQipsHOAVE5B=o!8>>6kfBiOceHVzk) zaBZ?~tnv#A-yh9mp#!={B>CE-&0|E#L(!V(5>eRdq~fQEc3ircm9iZ5mh!T`L=Zm_#=9y>*>s?>vm|WvgR) zdne1BQz*;FxuShEs>oQN3a#Cru09GP1EMqC0{WsM+gNW+m)?=I@-?ul>DI^MPvVn| zkNy0~yV@? z71EdfyH%*Zwy8Mep2jFAPA08O~jY;TWanuDV8v5YJPI4{#`-n zIgf)V*}s#GU5RWS9h*-uVkMuHe$?b?4oPLVE8^3ar6--(qIp1*Ny|_4)gRAJ195p& zYL%Gsi{e}Rq2%Vqi6@h<)CQ1~W_=kd|H|q2)EUlG>1+2F+B$shU5bs8)dNuIT|GW6}-k|S5YCC@@s}!5*`N>IrI4;#Z{a$8wsh3OT8OqD=2SN7lV=Us6%KK})>PM;#i-#f*2^3Yz`ZmXD^5wNs zV%P^OIU7>F|F9#F0k>3dfwDMvx>{J|6x#qwl8AAJhmfGI>^Bi%>~+oFZID0e+14&+ zm`omBl2hB|3)-Y1#NvVOoce~0YauDz162oQ5e$tN^w-YtvkbqV0ZR5V<}4YE?n}Ou zp-HLxr9Q%Q^v3l;ImtnmanJDYgvsI^Y^^izJBCzxhF$39PCTfuH(X1>^pO(rR5d=6 z^cH7!(xSS`-Q)IMm`{%K+DNkFs#^4s#Fc*D*n-ZCh-Ld)o*rVj!wGad8e|4Mf4290 z{U_^EYW6!n&S)DMhaH1au@@nwHps~YY#OL>Z}q2-t4i%^5?kzl%Rg#H$3slFowY{R zFz|F?_7^GYJ;y$~4^8S9_BqX4xzmJRLG3Il7!_LEdss2=SepV}nSZk+{7{R*5DTHY zVyEiPGh5r>g@K_lH?J6b6NqCY6zI=7EhJQuxjO#q^hf@BLMhQt{!dI~n}duA7|*RE0(Q(jPYM zsl@R%p{a15noqyDVITy1Y)GFsZzsgzL)Xyc%y?Kc)D{KJ}r`N|P-he3rlnlfF=?{%gvgd6<%9;u$1HS4zos$MRAwgy$Z3#B56mLH>4tr=hjhgLPj+8tw3gWc746~ z`izgMrMPbI9zBnWn^{WDnL0C*lHz=9hNmw}zW^|2XJn^sjF|{FrP`YJ1B%{QV{n?N zG&QX?tU_Xtp5>vG=G(zdXsW #scL=rz9iA1RdDEcr65b;-5nbf11qRv<^U_c`-E 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 literal 0 HcmV?d00001 diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/README.md b/.github/gh-actions-self-hosted-runners/helper-functions/README.md new file mode 100644 index 000000000000..3f462f2a709e --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/helper-functions/README.md @@ -0,0 +1,39 @@ + + +## Helper Functions + +### GCP Cloud Functions +For the local implementation of the following three functions is required to create an `.env` file. If you'd like to reproduce this code in a GCP Cloud Functions, you will need to replace the variables in the `Variables` section either as `Runtime environment variables` or `Secrets`. + +``` +APP_INSTALLATION_ID= +APP_ID= +CLIENT_ID= +PEM_KEY= +CLIENT_NAME= +ORG= +PROJECT_ID= +``` + +#### generateToken +Function implemented to retrieve the GitHub App token for register a self-hosted runner. It's used in the [entrypoint](../self-hosted-linux/docker/entrypoint.sh) of the Dockerfile. +##### monitorRunnersStatus +Function implemented to get the status of the self-hosted runners. It's used in the [monitor_self_hosted_runners](../../workflows/monitor_self_hosted_runners.yml) workflow. +#### removeOfflineRunners +Function implemented to delete the unused self-hosted runners. Please refer to this [README](../self-hosted-linux/README.md) for more details. \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/example.env b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/example.env new file mode 100644 index 000000000000..162c4dbaecd9 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/example.env @@ -0,0 +1,8 @@ +# Please create a .env file with the corresponding values of the variables +APP_INSTALLATION_ID= +APP_ID= +CLIENT_ID= +PEM_KEY= +CLIENT_NAME= +ORG= +PROJECT_ID= \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js new file mode 100644 index 000000000000..0aa01f794cee --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js @@ -0,0 +1,67 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +//This function provides registration tokens for windows and linux self-hosted +//runners, a service account with the appropriated permissions should be used to +// invoke the Cloud Function. + +import functions from '@google-cloud/functions-framework'; +import { Octokit } from "octokit"; +import { createAppAuth } from "@octokit/auth-app"; + + +async function getRunnerToken() { + try { + //Set your GH App values as environment variables + let authOptions = { + appId: process.env.APP_ID, + privateKey: process.env.PEM_KEY, + clientId: process.env.CLIENT_ID, + clientSecret: process.env.CLIENT_NAME, + installationId: process.env.APP_INSTALLATION_ID + } + const octokit = new Octokit({ + authStrategy: createAppAuth, + auth: authOptions + }); + let access = await octokit.request(`POST /app/installations/${process.env.APP_INSTALLATION_ID}}/access_tokens`, { + repositories: [ + 'beam' + ], + permissions: { + organization_self_hosted_runners: "write", + } + }); + //In order to access the registration token endpoint, an additional Auth token must be used + let authToken = access.data.token; + let auth = " token " + authToken; + let registrationToken = await octokit.request(`POST https://api.github.com/orgs/${process.env.ORG}/actions/runners/registration-token`, { + headers: { + authorization: auth, + }, + }); + return registrationToken.data; + } catch (error) { + console.error(error); + } +} + +functions.http('generateToken', (req, res) => { + getRunnerToken().then((registrationToken) => { + res.status(200).send(registrationToken); + }); +}); diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/package.json b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/package.json new file mode 100644 index 000000000000..4ad59848970c --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/package.json @@ -0,0 +1,14 @@ +{ + "name": "generate-token", + "version": "1.0.0", + "description": "Generates registration tokens for self-hosted runners", + "main": "", + "type": "module", + "dependencies": { + "@google-cloud/debug-agent": "^5.0.0", + "@google-cloud/functions-framework": "^2.0.0", + "@google-cloud/secret-manager": "^3.11.0", + "@octokit/auth-app": "^3.6.1", + "octokit": "^1.7.1" + } +} diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js new file mode 100644 index 000000000000..9c75f7c1f745 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js @@ -0,0 +1,86 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +//This function will return the number of online and offline runners for +// each OS (Windows, linux), an additional Github actions workflow will run +// to request this Cloud Function and send alerts based on the status. + +import functions from '@google-cloud/functions-framework'; +import { Octokit } from "octokit"; +import { createAppAuth } from "@octokit/auth-app"; + +async function monitorRunnerStatus() { + try { + //Set your GH App values as environment variables + let authOptions = { + appId: process.env.APP_ID, + privateKey: process.env.PEM_KEY, + clientId: process.env.CLIENT_ID, + clientSecret: process.env.CLIENT_NAME, + installationId: process.env.APP_INSTALLATION_ID + } + const octokit = new Octokit({ + authStrategy: createAppAuth, + auth: authOptions + }); + let runners = await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { + org: process.env.ORG, + per_page: 100, // In order to avoid cropped results we are explicitly setting this option in combination with a daily cleanup + }); + + //Filtering BEAM runners + let beamRunners = runners.data.runners.filter(runner => { + for (let label of runner.labels) { + if (label.name == "beam") { + return true; + } + } + return false; + }); + + //Dividing status for each runner OS + let osList = ["Linux", "Windows"]; + let status = {} + for (let os of osList) { + let osRunners = beamRunners.filter(runner => { + for (let label of runner.labels) { + if (label.name == os) { + return true; + } + } + return false; + }); + let onlineRunners = osRunners.filter(runner => { + return runner.status == "online"; + }); + status[os] = { + "totalRunners": osRunners.length, + "onlineRunners": onlineRunners.length, + "offlineRunners": osRunners.length - onlineRunners.length + } + } + return status; + } catch (error) { + console.error(error); + } +} + +functions.http('monitorRunnerStatus', (req, res) => { + monitorRunnerStatus().then((status) => { + res.status(200).send(status); + }); +}); diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/package.json b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/package.json new file mode 100644 index 000000000000..a521dd9a8628 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/package.json @@ -0,0 +1,14 @@ +{ + "name": "monitor-runner-status", + "version": "1.0.0", + "description": "Monitor the status of the runners and return filtered insights", + "main": "", + "type": "module", + "dependencies": { + "@google-cloud/debug-agent": "^5.0.0", + "@google-cloud/functions-framework": "^2.0.0", + "@google-cloud/secret-manager": "^3.11.0", + "@octokit/auth-app": "^3.6.1", + "octokit": "^1.7.1" + } +} \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js new file mode 100644 index 000000000000..731fb47d5044 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js @@ -0,0 +1,73 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// Unused offline self-hosted runners remains in the runners +// list unless it is explicitly removed, this function will periodically +// clean the list to only have active runners in the repo. +import functions from '@google-cloud/functions-framework'; +import { Octokit } from "octokit"; +import { createAppAuth } from "@octokit/auth-app"; + + +async function removeOfflineRunners() { + try { + //Set your GH App values as environment variables + let authOptions = { + appId: process.env.APP_ID, + privateKey: process.env.PEM_KEY, + clientId: process.env.CLIENT_ID, + clientSecret: process.env.CLIENT_NAME, + installationId: process.env.APP_INSTALLATION_ID + } + const octokit = new Octokit({ + authStrategy: createAppAuth, + auth: authOptions + }); + let runners = await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { + org: process.env.ORG + }); + + //Filtering BEAM runners + let beamRunners = runners.data.runners.filter(runner => { + for (let label of runner.labels) { + if (label.name == "Linux") { + return true; + } + } + return false; + }); + + //Getting offline runners only + let offlineRunners = beamRunners.filter(runner => { + return runner.status == "offline"; + }) + + //Deleting each offline runner in the list + for (let runner of offlineRunners) { + await octokit.request(`DELETE /orgs/${process.env.ORG}/actions/runners/${runner.id}`, {}); + } + return offlineRunners + } catch (error) { + console.error(error); + } +} + +functions.http('removeOfflineRunners', (req, res) => { + removeOfflineRunners().then((status) => { + res.status(200).send(status); + }); +}); diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/package.json b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/package.json new file mode 100644 index 000000000000..d4d00cb3da48 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/package.json @@ -0,0 +1,14 @@ +{ + "name": "remove-offline-runners", + "version": "1.0.0", + "description": "Removes offline runners from list", + "main": "", + "type": "module", + "dependencies": { + "@google-cloud/debug-agent": "^5.0.0", + "@google-cloud/functions-framework": "^2.0.0", + "@google-cloud/secret-manager": "^3.11.0", + "@octokit/auth-app": "^3.6.1", + "octokit": "^1.7.1" + } +} \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md b/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md new file mode 100644 index 000000000000..62f8a92f1825 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md @@ -0,0 +1,100 @@ + + +# GitHub Actions - Self-hosted Linux Runners +These folders contain the required resources to deploy the GitHub Actions self-hosted runners for the workflows running in Ubuntu OS. +* /docker + * Dockerfile and entrypoint: Resources needed to create a new self-hosted-runner image. + * docker-compose.yml: In case you would like to test and run the self-hosted runner locally. + +* /kubernetes + * Kubernetes files to create the resources needed to deploy the self-hosted runners. + +## Docker + +#### How to build a new image and push it to the Artifact Registry? +* Create the image locally + +`docker build -t $LOCAL_IMAGE_NAME:TAG .` + +* Tag the local image with the GCP repository name + +`docker tag $LOCAL_IMAGE_NAME LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:latest` + +* Make sure you are authenticated to the gcloud repository + +`gcloud auth configure-docker us-central1-docker.pkg.dev` + +* Push the tagged image to the repository + +`docker push LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:latest` + +* _**Important: Please add the commit hash as a tag when a new image is uploaded.**_ + +#### How to run a self-hosted locally? + +* Create a `.var.env` file from the `example.var.env` file and replace the corresponding values: + * GOOGLE_APPLICATION_CREDENTIALS: Path where the json file will be stored (Same path as the one given in the docker-compose.yml file) + * CLOUD_FUNCTION_NAME: Function where the self-hosted runner will get the RUNNER_TOKEN + * ORG_RUNNER_GROUP: Name of the GitHub Actions Runner Group. You can find it here: https://github.com/organizations/ORG_NAME/settings/actions/runner-groups + * ORG_NAME: Name of the Organization + * GCP_REGION: GCP Region where your Cloud Function is deployed + * GCP_PROJECT_ID: GCP Project ID where your Cloud Function is deployed + + +* Run the container + +`docker compose up` + +* You will be able to see the self-hosted runner in the Settings of your GitHub repository + +## Kubernetes + +For the current implementation we are using Google Kubernetes Engine (GKE) as a container orchestration platform. + +* Configure your Kubernetes local context + +`gcloud container clusters get-credentials $GCP_CLUSTER_NAME --zone $GCP_REGION --project $GCP_PROJECT-ID` + +* Create the desired k8s namespace + +`kubectl create namespace $NAMESPACE` + +* Create the GKE secret from a json file + +`kubectl create secret generic $k8s_SECRET_NAME --from-file=key.json=$LOCAL_PATH --namespace $NAMESPACE` + +* Update the `github-actions-secrets.yml` file with its corresponding values encrypted in base64 + +`echo -n "$VARIABLE_VALUE" | base64` + +* Replace in `github-actions-deployment.yml` file the `$IMAGE_URL` variable with the corresponding image URL: `GCP_LOCATION-docker.pkg.dev/GCP_PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME` + + +* In case you would like to create the deployment from scratch, run the `run-k8s-deployment.sh` script to execute the Kubernetes deployment in the GKE cluster. + * **Important: Make sure you have the GKE context selected in your local machine:** `kubectl config current-context` + +`./run-k8s-deployment.sh $NAMESPACE` + +* Otherwise, apply only the changes. **Important: Make sure you have the GKE context selected in your local machine:** `kubectl config current-context` + +`kubectl apply -f github-actions-$FILE_NAME.yml` + +* In case you would like to delete all the Kubernetes resources, run the `delete-k8s-deployment.sh` script with its corresponding namespace value. + +`./delete-k8s-deployment.sh $NAMESPACE` \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile new file mode 100644 index 000000000000..0ceb10b33b5d --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile @@ -0,0 +1,59 @@ +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ + +FROM ubuntu:20.04 + +ARG RUNNER_VERSION=2.295.0 + +RUN apt-get -yqq update +# Install APT packages +RUN DEBIAN_FRONTEND=noninteractive apt-get install -yqq acl aria2 apt-transport-https binutils bison brotli build-essential bzip2 ca-certificates coreutils curl dbus dnsutils dpkg fakeroot file flex fonts-noto-color-emoji ftp gnupg2 haveged imagemagick iproute2 iputils-ping jq lib32z1 libc++-dev libc++abi-dev libcurl4 libgbm-dev libgconf-2-4 libgsl-dev libgtk-3-0 libicu66 libkrb5-3 liblttng-ust0 libmagic-dev libmagickcore-dev libmagickwand-dev libsecret-1-dev libssl1.1 libsqlite3-dev libxss1 locales m4 mediainfo mercurial net-tools netcat openssh-client p7zip-full p7zip-rar parallel pass patchelf pkg-config pollinate python-is-python3 rpm rsync shellcheck sqlite3 ssh sshpass subversion sudo swig telnet texinfo time tk tzdata unzip upx wget xorriso xvfb xz-utils zip zlib1g zsync +RUN apt-get clean +RUN rm -rf /var/lib/apt/lists/* +RUN useradd -m actions && usermod -aG sudo actions && echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +USER actions +WORKDIR /home/actions + +# Get GitHub Actions Self-hosted Runners +RUN curl -O -L https://github.com/actions/runner/releases/download/v$RUNNER_VERSION/actions-runner-linux-x64-$RUNNER_VERSION.tar.gz +RUN tar xzf ./actions-runner-linux-x64-$RUNNER_VERSION.tar.gz + +# Get Docker +RUN curl -fsSL https://get.docker.com -o get-docker.sh +RUN sudo sh get-docker.sh + +# Install docker-compose +RUN sudo apt-get update && sudo apt-get install docker-compose-plugin + +# Install gcloud +# Make sure that your operating system meets the requirements +RUN sudo apt-get install apt-transport-https ca-certificates gnupg +# Add the gcloud CLI distribution URI as a package source +RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list +# Import the Google Cloud public key +RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - +# Update and install the gcloud CLI +RUN sudo apt-get update && sudo apt-get install google-cloud-cli + + +# Copy and chmod the entrypoint file +COPY --chown=actions:actions entrypoint.sh ./entrypoint.sh +RUN sudo chmod u+x ./entrypoint.sh + +CMD ["/home/actions/entrypoint.sh"] +ENTRYPOINT ["/bin/bash"] diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/docker-compose.yml b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/docker-compose.yml new file mode 100644 index 000000000000..9f97c7cee875 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/docker-compose.yml @@ -0,0 +1,30 @@ +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ + +version: "3.0" +services: + runner: + hostname: local-runner-test + build: . + entrypoint: ["/home/actions/entrypoint.sh"] + image: $IMAGE_URL:${TAG:-latest} # Replace variable manually + volumes: + - "/var/run/docker.sock:/var/run/docker.sock" + - "$USER_LOCAL_PATH:/var/secrets/google/key.json" # Replace variable manually + env_file: + - ./var.env diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/entrypoint.sh b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/entrypoint.sh new file mode 100644 index 000000000000..ab28021fe4f4 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/entrypoint.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Verify docker and docker compose installation +docker -v && docker compose version + +# Verify gcloud installation +gcloud version + +# Activate the mounted Service Account. +gcloud auth activate-service-account --key-file="${GOOGLE_APPLICATION_CREDENTIALS}" --no-user-output-enabled + +# Create gcloud docker config +gcloud auth configure-docker -q --no-user-output-enabled >& /dev/null + +# Register the Runner Token in the given Organization. +CLOUD_FUNCTION_URL="https://$GCP_REGION-$GCP_PROJECT_ID.cloudfunctions.net/$CLOUD_FUNCTION_NAME" + +# Get the Runner token from the specified Google Cloud Function +response=$(curl -sX POST -H "Authorization:bearer $(gcloud auth print-identity-token)" ${CLOUD_FUNCTION_URL}) +RUNNER_TOKEN=$(echo "$response" | jq '.token' --raw-output) + +./config.sh \ + --name $(hostname) \ + --token ${RUNNER_TOKEN} \ + --url https://github.com/$ORG_NAME \ + --work _work \ + --unattended \ + --replace \ + --labels ubuntu-20.04,beam \ + --runnergroup ${ORG_RUNNER_GROUP} \ + --ephemeral + +remove() { + ./config.sh remove --token "${RUNNER_TOKEN}" +} +trap 'remove; exit 130' INT +trap 'remove; exit 143' TERM +trap 'remove; exit 143' QUIT +trap 'remove; exit 143' ABRT +trap 'remove; exit 0' EXIT + +./run.sh "$*" & +wait $! diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/example.var.env b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/example.var.env new file mode 100644 index 000000000000..e46a186ec239 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/example.var.env @@ -0,0 +1,7 @@ +# var.env example, please create a var.env file with the corresponding values of the variables +GOOGLE_APPLICATION_CREDENTIALS= +CLOUD_FUNCTION_NAME= +ORG_RUNNER_GROUP= +ORG_NAME= +GCP_REGION= +GCP_PROJECT_ID= \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/delete-k8s-deployment.sh b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/delete-k8s-deployment.sh new file mode 100644 index 000000000000..41f24fa84f1b --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/delete-k8s-deployment.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +kubectl delete -f github-actions-hpa.yml --namespace "$1" +kubectl delete -f github-actions-vpa.yml --namespace "$1" +kubectl delete -f github-actions-secrets.yml --namespace "$1" +kubectl delete -f github-actions-deployment.yml --namespace "$1" diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-deployment.yml b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-deployment.yml new file mode 100644 index 000000000000..88acc542bc2b --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-deployment.yml @@ -0,0 +1,76 @@ +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ubuntu-runners + labels: + name: github-actions +spec: + selector: + matchLabels: + name: github-actions + replicas: 10 + template: + metadata: + labels: + name: github-actions + spec: + containers: + - name: github-actions-ubuntu-runner + image: $IMAGE_URL:latest # Replace variable manually + securityContext: + privileged: true + envFrom: + - secretRef: + name: github-actions-secrets + env: + - name: GOOGLE_APPLICATION_CREDENTIALS + value: /var/secrets/google/key.json + - name: DOCKER_HOST + value: tcp://localhost:2376 + - name: DOCKER_TLS_VERIFY + value: '1' + - name: DOCKER_CERT_PATH + value: /certs/client + volumeMounts: + - name: gcloud-key + mountPath: /var/secrets/google + - name: docker-certs-client + mountPath: /certs/client + resources: + requests: + memory: "1028Mi" + cpu: "2" + - name: dind + image: docker:20.10.17-dind + securityContext: + privileged: true + volumeMounts: + - name: dind-storage + mountPath: /var/lib/docker + - name: docker-certs-client + mountPath: /certs/client + volumes: + - name: gcloud-key + secret: + secretName: $k8s_SECRET_NAME # Replace variable manually + - name: dind-storage + emptyDir: {} + - name: docker-certs-client + emptyDir: {} diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-hpa.yml b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-hpa.yml new file mode 100644 index 000000000000..d7d2a25199fc --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-hpa.yml @@ -0,0 +1,29 @@ +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ +apiVersion: autoscaling/v1 +kind: HorizontalPodAutoscaler +metadata: + name: hpa-github-actions-linux +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: ubuntu-runners + minReplicas: 10 + maxReplicas: 20 + targetCPUUtilizationPercentage: 70 diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-secrets.yml b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-secrets.yml new file mode 100644 index 000000000000..ef6773bd14b5 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-secrets.yml @@ -0,0 +1,30 @@ +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ + +apiVersion: v1 +kind: Secret +metadata: + name: github-actions-secrets +type: Opaque +data: + CLOUD_FUNCTION_NAME: + GCP_PROJECT_ID: + GCP_REGION: + ORG_NAME: + ORG_RUNNER_GROUP: +immutable: true diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/run-k8s-deployment.sh b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/run-k8s-deployment.sh new file mode 100644 index 000000000000..410ff0663c42 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/run-k8s-deployment.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +kubectl create namespace "$1" +kubectl apply -f github-actions-secrets.yml --namespace "$1" +kubectl apply -f github-actions-deployment.yml --namespace "$1" +kubectl apply -f github-actions-hpa.yml --namespace "$1" +gcloud container clusters update github-actions-linux-runners --enable-vertical-pod-autoscaling --zone us-central1-a +kubectl apply -f github-actions-vpa.yml --namespace "$1" diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-windows/README.md b/.github/gh-actions-self-hosted-runners/self-hosted-windows/README.md new file mode 100644 index 000000000000..548d74b7626c --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-windows/README.md @@ -0,0 +1,43 @@ + + +# GitHub Actions - Self-hosted Windows Runners + +This folder contains the required resources to deploy the GitHub Actions self-hosted runners for the workflows running in Windows OS. + +#### How to build a new instance template for the instance group? + +* Create a new VM Instance using Windows 2019 Datacenter OS with at least 70GB of disk, 2vCPUs and 8 GB of RAM. + +* Install the following software: + * VS Build Tools 2019 + * MS Build Tools + * Desktop Development with C++ + * Testing tool Core Features + * Windows 10 SDK + * Git 2.34.1.windows.1 + * Git LFS + * Git Bash + +* Create an image disk from the VM instance. + +* Now that you have the image disk you can create an instance template by using it and adding the startup and shutdown scripts through the respective metadata fields. + +**Be sure that you are using a service account that has permissions to invoke cloud functions.** + +Now that the instance template is ready you can use it to either run it independently for an individual runner or create an instance group for a set of runners. \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-windows/shutdownScript.ps1 b/.github/gh-actions-self-hosted-runners/self-hosted-windows/shutdownScript.ps1 new file mode 100644 index 000000000000..cb1b40d6859e --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-windows/shutdownScript.ps1 @@ -0,0 +1,24 @@ +# + +Write-Output "removingRunner" +Set-Location C:/actionsDir + +$token=[System.Environment]::GetEnvironmentVariable('GITHUB_TOKEN','machine') +Write-Output $token +./config.cmd remove --token $token \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-windows/startupScript.ps1 b/.github/gh-actions-self-hosted-runners/self-hosted-windows/startupScript.ps1 new file mode 100644 index 000000000000..7da0669c20ca --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-windows/startupScript.ps1 @@ -0,0 +1,50 @@ +# + +Start-Sleep -Seconds 60 +$env:Path += ';C:\Program Files\git\bin' +$response= Invoke-RestMethod https://api.github.com/repos/actions/runner/tags +$version= $response[0].name.substring(1,$response[0].name.Length-1) + +$ORG_NAME="apache" +$ORG_RUNNER_GROUP="Beam" +$GCP_TOKEN=gcloud auth print-identity-token +$TOKEN_PROVIDER="https://$GCP_REGION-$GCP_PROJECT_ID.cloudfunctions.net/$CLOUD_FUNCTION_NAME" #Replace variables manually + +Set-Location C:/ + +Write-Output "Starting registration process" + +mkdir "actionsDir" + +Set-Location "actionsDir" + +Invoke-WebRequest -Uri https://github.com/actions/runner/releases/download/v$version/actions-runner-win-x64-$version.zip -OutFile actions-runner-win-x64-$version.zip + +Expand-Archive -LiteralPath $PWD\actions-runner-win-x64-$version.zip -DestinationPath $PWD -Force + +$RUNNER_TOKEN=(Invoke-WebRequest -Uri $TOKEN_PROVIDER -Method POST -Headers @{'Accept' = 'application/json'; 'Authorization' = "bearer $GCP_TOKEN"} -UseBasicParsing | ConvertFrom-Json).token + +[System.Environment]::SetEnvironmentVariable('GITHUB_TOKEN', $RUNNER_TOKEN,[System.EnvironmentVariableTarget]::Machine) +Write-Output $RUNNER_TOKEN | Out-File "token.txt" + +$hostname= "windows-runner-"+[guid]::NewGuid() + +./config.cmd --name $hostname --token $RUNNER_TOKEN --url https://github.com/$ORG_NAME --work _work --unattended --replace --labels windows,beam,windows-server-2019 --runnergroup $ORG_RUNNER_GROUP + +./run.cmd \ No newline at end of file From 568ae92ee385e459562785f800fe9ce950c310dc Mon Sep 17 00:00:00 2001 From: dannymartinm Date: Thu, 8 Sep 2022 16:55:59 -0500 Subject: [PATCH 02/10] Updated GH Actions Runner version to 2.296.1. Added github-actions-vpa file. --- .../self-hosted-linux/docker/Dockerfile | 2 +- .../kubernetes/github-actions-vpa.yml | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 .github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-vpa.yml diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile index 0ceb10b33b5d..64a2bd741357 100644 --- a/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile @@ -18,7 +18,7 @@ FROM ubuntu:20.04 -ARG RUNNER_VERSION=2.295.0 +ARG RUNNER_VERSION=2.296.1 RUN apt-get -yqq update # Install APT packages diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-vpa.yml b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-vpa.yml new file mode 100644 index 000000000000..5cb0559c23d7 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/github-actions-vpa.yml @@ -0,0 +1,28 @@ +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ +apiVersion: autoscaling.k8s.io/v1 +kind: VerticalPodAutoscaler +metadata: + name: vpa-github-actions +spec: + targetRef: + apiVersion: "apps/v1" + kind: Deployment + name: ubuntu-runners + updatePolicy: + updateMode: "Auto" From f0866fb6f533c0eb1bbfe839b44f1b63e682e12b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniela=20Mart=C3=ADn?= Date: Tue, 13 Sep 2022 14:53:13 -0500 Subject: [PATCH 03/10] Updating auth variable to use string interpolation. Co-authored-by: Danny McCormick --- .../helper-functions/cloud-functions/generateToken/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js index 0aa01f794cee..fe753979daa1 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js @@ -48,7 +48,7 @@ async function getRunnerToken() { }); //In order to access the registration token endpoint, an additional Auth token must be used let authToken = access.data.token; - let auth = " token " + authToken; + let auth = ` token ${authToken}`; let registrationToken = await octokit.request(`POST https://api.github.com/orgs/${process.env.ORG}/actions/runners/registration-token`, { headers: { authorization: auth, From 69c4d0cf3b52c66dc165e43bfbaa3c79fa025b1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniela=20Mart=C3=ADn?= Date: Tue, 13 Sep 2022 14:55:09 -0500 Subject: [PATCH 04/10] Code refactored for beamRunners filtering. Co-authored-by: Danny McCormick --- .../cloud-functions/monitorRunnersStatus/index.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js index 9c75f7c1f745..04de9a2103b9 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js @@ -57,12 +57,7 @@ async function monitorRunnerStatus() { let status = {} for (let os of osList) { let osRunners = beamRunners.filter(runner => { - for (let label of runner.labels) { - if (label.name == os) { - return true; - } - } - return false; + return runner.labels.find(label => label.name == os) }); let onlineRunners = osRunners.filter(runner => { return runner.status == "online"; From 30e4799790eb6f0f13391942fc743726dd089e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniela=20Mart=C3=ADn?= Date: Tue, 13 Sep 2022 14:56:24 -0500 Subject: [PATCH 05/10] Code refactored when looking for beam runners. Using find function instead of inner conditions. Co-authored-by: Danny McCormick --- .../cloud-functions/monitorRunnersStatus/index.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js index 04de9a2103b9..72adf3768751 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js @@ -44,12 +44,7 @@ async function monitorRunnerStatus() { //Filtering BEAM runners let beamRunners = runners.data.runners.filter(runner => { - for (let label of runner.labels) { - if (label.name == "beam") { - return true; - } - } - return false; + return runner.labels.find(label => label.name == "beam") }); //Dividing status for each runner OS From 54bbaf7b0fd1457ccdfce46a50f89e3c025c6b83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniela=20Mart=C3=ADn?= Date: Tue, 13 Sep 2022 14:56:52 -0500 Subject: [PATCH 06/10] Updating self-hosted-linux README file. Co-authored-by: Danny McCormick --- .../gh-actions-self-hosted-runners/self-hosted-linux/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md b/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md index 62f8a92f1825..3e7757f6ce58 100644 --- a/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md @@ -46,7 +46,7 @@ These folders contain the required resources to deploy the GitHub Actions self-h * _**Important: Please add the commit hash as a tag when a new image is uploaded.**_ -#### How to run a self-hosted locally? +#### How to run a self-hosted runner locally? * Create a `.var.env` file from the `example.var.env` file and replace the corresponding values: * GOOGLE_APPLICATION_CREDENTIALS: Path where the json file will be stored (Same path as the one given in the docker-compose.yml file) From 8764da9157c1f166e800a18ce58fb6c464d2323f Mon Sep 17 00:00:00 2001 From: Elias Segundo Antonio Date: Wed, 14 Sep 2022 10:58:38 -0500 Subject: [PATCH 07/10] Implementing PR#23158 requested changes * Implementing Review Changes * Refactoring to use find instead of plain loops and adding env var validation * Adding REQUIRED_ENV_VARS as a constant Co-authored-by: Elias Segundo --- .../gh-actions-self-hosted-runners/README.md | 2 +- .../cloud-functions/generateToken/index.js | 12 +++++- .../monitorRunnersStatus/index.js | 34 +++++++++++++--- .../removeOfflineRunners/index.js | 39 +++++++++++++------ .../self-hosted-windows/shutdownScript.ps1 | 1 - .../self-hosted-windows/startupScript.ps1 | 3 +- 6 files changed, 69 insertions(+), 22 deletions(-) diff --git a/.github/gh-actions-self-hosted-runners/README.md b/.github/gh-actions-self-hosted-runners/README.md index c5f9f483a8c3..7790197ee69a 100644 --- a/.github/gh-actions-self-hosted-runners/README.md +++ b/.github/gh-actions-self-hosted-runners/README.md @@ -81,7 +81,7 @@ Ubuntu Self-hosted runners are stored in Artifact Registry and implemented using Windows Virtual machines have the following specifications #### VM specifications -* Instance Template: _TODO: Add GCP link when final resources are in place._ +* Instance Template: windows_github_actions_runner * Machine Type: n2-standard-2 * Disk Size: 70 GB * Disk Image: [disk-image-windows-runner](https://console.cloud.google.com/compute/imagesDetail/projects/apache-beam-testing/global/images/disk-image-windows-runner?project=apache-beam-testing) diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js index fe753979daa1..edf41b693a20 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js @@ -23,7 +23,16 @@ import functions from '@google-cloud/functions-framework'; import { Octokit } from "octokit"; import { createAppAuth } from "@octokit/auth-app"; +const REQUIRED_ENV_VARS=["APP_ID","PEM_KEY","CLIENT_ID","CLIENT_SECRET","APP_INSTALLATION_ID","ORG"] + +function validateEnvSet(envVars) { + envVars.forEach(envVar => { + if (!process.env[envVar]) { + throw new Error(`${envVar} environment variable not set.`) + } + }); +} async function getRunnerToken() { try { //Set your GH App values as environment variables @@ -31,7 +40,7 @@ async function getRunnerToken() { appId: process.env.APP_ID, privateKey: process.env.PEM_KEY, clientId: process.env.CLIENT_ID, - clientSecret: process.env.CLIENT_NAME, + clientSecret: process.env.CLIENT_SECRET, installationId: process.env.APP_INSTALLATION_ID } const octokit = new Octokit({ @@ -61,6 +70,7 @@ async function getRunnerToken() { } functions.http('generateToken', (req, res) => { + validateEnvSet(REQUIRED_ENV_VARS) getRunnerToken().then((registrationToken) => { res.status(200).send(registrationToken); }); diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js index 72adf3768751..5c954071d96d 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js @@ -23,6 +23,18 @@ import functions from '@google-cloud/functions-framework'; import { Octokit } from "octokit"; import { createAppAuth } from "@octokit/auth-app"; + +const REQUIRED_ENV_VARS=["APP_ID","PEM_KEY","CLIENT_ID","CLIENT_SECRET","APP_INSTALLATION_ID","ORG"] + + +function validateEnvSet(envVars) { + envVars.forEach(envVar => { + if (!process.env[envVar]) { + throw new Error(`${envVar} environment variable not set.`) + } + }); +} + async function monitorRunnerStatus() { try { //Set your GH App values as environment variables @@ -30,20 +42,29 @@ async function monitorRunnerStatus() { appId: process.env.APP_ID, privateKey: process.env.PEM_KEY, clientId: process.env.CLIENT_ID, - clientSecret: process.env.CLIENT_NAME, + clientSecret: process.env.CLIENT_SECRET, installationId: process.env.APP_INSTALLATION_ID } const octokit = new Octokit({ authStrategy: createAppAuth, auth: authOptions }); - let runners = await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { - org: process.env.ORG, - per_page: 100, // In order to avoid cropped results we are explicitly setting this option in combination with a daily cleanup - }); + let pageCounter=1 + let runners=[] + let pageRunners=[] + do{ + pageRunners= await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { + org: process.env.ORG, + per_page: 50, + page:pageCounter + }); + runners=runners.concat(pageRunners.data.runners) + pageCounter++ + } while(pageRunners.data.runners.length!=0) + //Filtering BEAM runners - let beamRunners = runners.data.runners.filter(runner => { + let beamRunners = runners.filter(runner => { return runner.labels.find(label => label.name == "beam") }); @@ -70,6 +91,7 @@ async function monitorRunnerStatus() { } functions.http('monitorRunnerStatus', (req, res) => { + validateEnvSet(REQUIRED_ENV_VARS) monitorRunnerStatus().then((status) => { res.status(200).send(status); }); diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js index 731fb47d5044..53373af4933d 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js @@ -22,6 +22,15 @@ import functions from '@google-cloud/functions-framework'; import { Octokit } from "octokit"; import { createAppAuth } from "@octokit/auth-app"; +const REQUIRED_ENV_VARS=["APP_ID","PEM_KEY","CLIENT_ID","CLIENT_SECRET","APP_INSTALLATION_ID","ORG"] + +function validateEnvSet(envVars) { + envVars.forEach(envVar => { + if (!process.env[envVar]) { + throw new Error(`${envVar} environment variable not set.`) + } + }); +} async function removeOfflineRunners() { try { @@ -30,25 +39,30 @@ async function removeOfflineRunners() { appId: process.env.APP_ID, privateKey: process.env.PEM_KEY, clientId: process.env.CLIENT_ID, - clientSecret: process.env.CLIENT_NAME, + clientSecret: process.env.CLIENT_SECRET, installationId: process.env.APP_INSTALLATION_ID } const octokit = new Octokit({ authStrategy: createAppAuth, auth: authOptions }); - let runners = await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { - org: process.env.ORG - }); + let pageCounter=1 + let runners=[] + let pageRunners=[] + do{ + pageRunners= await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { + org: process.env.ORG, + per_page: 50, + page:pageCounter + }); + runners=runners.concat(pageRunners.data.runners) + pageCounter++ + } while(pageRunners.data.runners.length!=0) + //Filtering BEAM runners - let beamRunners = runners.data.runners.filter(runner => { - for (let label of runner.labels) { - if (label.name == "Linux") { - return true; - } - } - return false; + let beamRunners = runners.filter(runner => { + return runner.labels.find(label => label.name == "beam") }); //Getting offline runners only @@ -66,7 +80,10 @@ async function removeOfflineRunners() { } } + + functions.http('removeOfflineRunners', (req, res) => { + validateEnvSet(REQUIRED_ENV_VARS) removeOfflineRunners().then((status) => { res.status(200).send(status); }); diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-windows/shutdownScript.ps1 b/.github/gh-actions-self-hosted-runners/self-hosted-windows/shutdownScript.ps1 index cb1b40d6859e..f4bb20de89d5 100644 --- a/.github/gh-actions-self-hosted-runners/self-hosted-windows/shutdownScript.ps1 +++ b/.github/gh-actions-self-hosted-runners/self-hosted-windows/shutdownScript.ps1 @@ -20,5 +20,4 @@ Write-Output "removingRunner" Set-Location C:/actionsDir $token=[System.Environment]::GetEnvironmentVariable('GITHUB_TOKEN','machine') -Write-Output $token ./config.cmd remove --token $token \ No newline at end of file diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-windows/startupScript.ps1 b/.github/gh-actions-self-hosted-runners/self-hosted-windows/startupScript.ps1 index 7da0669c20ca..1d235e55b00a 100644 --- a/.github/gh-actions-self-hosted-runners/self-hosted-windows/startupScript.ps1 +++ b/.github/gh-actions-self-hosted-runners/self-hosted-windows/startupScript.ps1 @@ -16,7 +16,7 @@ # limitations under the License. # --> -Start-Sleep -Seconds 60 +Start-Sleep -Seconds 30 $env:Path += ';C:\Program Files\git\bin' $response= Invoke-RestMethod https://api.github.com/repos/actions/runner/tags $version= $response[0].name.substring(1,$response[0].name.Length-1) @@ -41,7 +41,6 @@ Expand-Archive -LiteralPath $PWD\actions-runner-win-x64-$version.zip -Destinatio $RUNNER_TOKEN=(Invoke-WebRequest -Uri $TOKEN_PROVIDER -Method POST -Headers @{'Accept' = 'application/json'; 'Authorization' = "bearer $GCP_TOKEN"} -UseBasicParsing | ConvertFrom-Json).token [System.Environment]::SetEnvironmentVariable('GITHUB_TOKEN', $RUNNER_TOKEN,[System.EnvironmentVariableTarget]::Machine) -Write-Output $RUNNER_TOKEN | Out-File "token.txt" $hostname= "windows-runner-"+[guid]::NewGuid() From bec2a859fc59361d17b345c91230fdf7dc672cfe Mon Sep 17 00:00:00 2001 From: dannymartinm Date: Wed, 14 Sep 2022 16:32:12 -0500 Subject: [PATCH 08/10] Adding REQUIRED_ENV_VARS as a shared constant for the helper Cloud Functions. --- .../cloud-functions/generateToken/index.js | 41 ++++++++--------- .../monitorRunnersStatus/index.js | 43 ++++++++--------- .../removeOfflineRunners/index.js | 46 +++++++++---------- .../cloud-functions/shared/constants.js | 19 ++++++++ 4 files changed, 81 insertions(+), 68 deletions(-) create mode 100644 .github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/shared/constants.js diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js index edf41b693a20..eabf1a5b3f29 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/generateToken/index.js @@ -1,30 +1,29 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -//This function provides registration tokens for windows and linux self-hosted -//runners, a service account with the appropriated permissions should be used to +// This function provides registration tokens for windows and linux self-hosted +// runners, a service account with the appropriated permissions should be used to // invoke the Cloud Function. import functions from '@google-cloud/functions-framework'; import { Octokit } from "octokit"; import { createAppAuth } from "@octokit/auth-app"; - -const REQUIRED_ENV_VARS=["APP_ID","PEM_KEY","CLIENT_ID","CLIENT_SECRET","APP_INSTALLATION_ID","ORG"] - +import { REQUIRED_ENV_VARS } from "../shared/constants" ; function validateEnvSet(envVars) { envVars.forEach(envVar => { diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js index 5c954071d96d..34d7a3c92286 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js @@ -1,31 +1,29 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -//This function will return the number of online and offline runners for +// This function will return the number of online and offline runners for // each OS (Windows, linux), an additional Github actions workflow will run // to request this Cloud Function and send alerts based on the status. import functions from '@google-cloud/functions-framework'; import { Octokit } from "octokit"; import { createAppAuth } from "@octokit/auth-app"; - - -const REQUIRED_ENV_VARS=["APP_ID","PEM_KEY","CLIENT_ID","CLIENT_SECRET","APP_INSTALLATION_ID","ORG"] - +import { REQUIRED_ENV_VARS } from "../shared/constants" ; function validateEnvSet(envVars) { envVars.forEach(envVar => { @@ -52,7 +50,7 @@ async function monitorRunnerStatus() { let pageCounter=1 let runners=[] let pageRunners=[] - do{ + do { pageRunners= await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { org: process.env.ORG, per_page: 50, @@ -61,7 +59,6 @@ async function monitorRunnerStatus() { runners=runners.concat(pageRunners.data.runners) pageCounter++ } while(pageRunners.data.runners.length!=0) - //Filtering BEAM runners let beamRunners = runners.filter(runner => { diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js index 53373af4933d..00c887e0ca1c 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js @@ -1,28 +1,29 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -// Unused offline self-hosted runners remains in the runners -// list unless it is explicitly removed, this function will periodically +// Unused offline self-hosted runners remains in the runners list +// unless it is explicitly removed, this function will periodically // clean the list to only have active runners in the repo. + import functions from '@google-cloud/functions-framework'; import { Octokit } from "octokit"; import { createAppAuth } from "@octokit/auth-app"; - -const REQUIRED_ENV_VARS=["APP_ID","PEM_KEY","CLIENT_ID","CLIENT_SECRET","APP_INSTALLATION_ID","ORG"] +import { REQUIRED_ENV_VARS } from "../shared/constants" ; function validateEnvSet(envVars) { envVars.forEach(envVar => { @@ -49,7 +50,7 @@ async function removeOfflineRunners() { let pageCounter=1 let runners=[] let pageRunners=[] - do{ + do { pageRunners= await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { org: process.env.ORG, per_page: 50, @@ -58,7 +59,6 @@ async function removeOfflineRunners() { runners=runners.concat(pageRunners.data.runners) pageCounter++ } while(pageRunners.data.runners.length!=0) - //Filtering BEAM runners let beamRunners = runners.filter(runner => { @@ -80,8 +80,6 @@ async function removeOfflineRunners() { } } - - functions.http('removeOfflineRunners', (req, res) => { validateEnvSet(REQUIRED_ENV_VARS) removeOfflineRunners().then((status) => { diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/shared/constants.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/shared/constants.js new file mode 100644 index 000000000000..c582b7931b08 --- /dev/null +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/shared/constants.js @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export const REQUIRED_ENV_VARS= ["APP_ID","PEM_KEY","CLIENT_ID","CLIENT_SECRET","APP_INSTALLATION_ID","ORG"]; From 71b54edcfac5e14813ddcdf991d475246de7c91e Mon Sep 17 00:00:00 2001 From: Elias Segundo Antonio Date: Wed, 14 Sep 2022 17:48:25 -0500 Subject: [PATCH 09/10] Implementing PR#23158 requested changes: octokit paginate * Using octokit paginate Co-authored-by: Elias Segundo --- .../monitorRunnersStatus/index.js | 17 +++++------------ .../removeOfflineRunners/index.js | 17 +++++------------ 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js index 34d7a3c92286..0ac14a1c5daf 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/monitorRunnersStatus/index.js @@ -47,19 +47,12 @@ async function monitorRunnerStatus() { authStrategy: createAppAuth, auth: authOptions }); - let pageCounter=1 - let runners=[] - let pageRunners=[] - do { - pageRunners= await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { - org: process.env.ORG, - per_page: 50, - page:pageCounter - }); - runners=runners.concat(pageRunners.data.runners) - pageCounter++ - } while(pageRunners.data.runners.length!=0) + const runners = await octokit.paginate("GET /orgs/${process.env.ORG}/actions/runners", { + org: process.env.ORG + }, + ) + //Filtering BEAM runners let beamRunners = runners.filter(runner => { return runner.labels.find(label => label.name == "beam") diff --git a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js index 00c887e0ca1c..0271329d8464 100644 --- a/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js +++ b/.github/gh-actions-self-hosted-runners/helper-functions/cloud-functions/removeOfflineRunners/index.js @@ -47,18 +47,11 @@ async function removeOfflineRunners() { authStrategy: createAppAuth, auth: authOptions }); - let pageCounter=1 - let runners=[] - let pageRunners=[] - do { - pageRunners= await octokit.request(`GET /orgs/${process.env.ORG}/actions/runners`, { - org: process.env.ORG, - per_page: 50, - page:pageCounter - }); - runners=runners.concat(pageRunners.data.runners) - pageCounter++ - } while(pageRunners.data.runners.length!=0) + + const runners = await octokit.paginate("GET /orgs/${process.env.ORG}/actions/runners", { + org: process.env.ORG + }, + ) //Filtering BEAM runners let beamRunners = runners.filter(runner => { From 12315d8ecc3aaf6a216347455fb1ca1d71f73517 Mon Sep 17 00:00:00 2001 From: dannymartinm Date: Wed, 14 Sep 2022 17:51:15 -0500 Subject: [PATCH 10/10] Updating self-hosted runner version to v2.296.2. --- .../gh-actions-self-hosted-runners/self-hosted-linux/README.md | 2 +- .../self-hosted-linux/docker/Dockerfile | 2 +- .../self-hosted-linux/kubernetes/run-k8s-deployment.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md b/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md index 3e7757f6ce58..f4b689a3ab2d 100644 --- a/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/README.md @@ -93,7 +93,7 @@ For the current implementation we are using Google Kubernetes Engine (GKE) as a * Otherwise, apply only the changes. **Important: Make sure you have the GKE context selected in your local machine:** `kubectl config current-context` -`kubectl apply -f github-actions-$FILE_NAME.yml` +`kubectl apply -f github-actions-$FILE_NAME.yml --namespace $NAMESPACE` * In case you would like to delete all the Kubernetes resources, run the `delete-k8s-deployment.sh` script with its corresponding namespace value. diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile index 64a2bd741357..dd9580882178 100644 --- a/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/docker/Dockerfile @@ -18,7 +18,7 @@ FROM ubuntu:20.04 -ARG RUNNER_VERSION=2.296.1 +ARG RUNNER_VERSION=2.296.2 RUN apt-get -yqq update # Install APT packages diff --git a/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/run-k8s-deployment.sh b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/run-k8s-deployment.sh index 410ff0663c42..f3af464b1822 100644 --- a/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/run-k8s-deployment.sh +++ b/.github/gh-actions-self-hosted-runners/self-hosted-linux/kubernetes/run-k8s-deployment.sh @@ -18,5 +18,5 @@ kubectl create namespace "$1" kubectl apply -f github-actions-secrets.yml --namespace "$1" kubectl apply -f github-actions-deployment.yml --namespace "$1" kubectl apply -f github-actions-hpa.yml --namespace "$1" -gcloud container clusters update github-actions-linux-runners --enable-vertical-pod-autoscaling --zone us-central1-a +gcloud container clusters update gh-actions-linux-runners --enable-vertical-pod-autoscaling --zone us-central1-a kubectl apply -f github-actions-vpa.yml --namespace "$1"