From 98995672cd1ebedc83716fa4225f916a56cfa299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0smay=C4=B1l=20=C4=B0smay=C4=B1lov?= <110806089+ismayilov-ismayil@users.noreply.github.com> Date: Thu, 22 Sep 2022 16:20:03 +0400 Subject: [PATCH] Changed U+0441 character to U+0063 (#359) * Changed U+0441 character to U+0063 * Added alias for backward compatibility * Changed variable name to avoid confusion * Changed corresponding guide * Added build status * bumping task version --- README.md | 17 ++++++------- .../resources.resjson/en-US/resources.resjson | 4 +-- .../google-play-promote.ts | 4 +-- Tasks/GooglePlayPromoteV3/task.json | 9 ++++--- Tasks/GooglePlayPromoteV3/task.loc.json | 11 ++++++--- baseREADME.md | 6 ++++- docs/vsts-README.md | 23 +++++++++--------- images/promote-task.png | Bin 14292 -> 29150 bytes 8 files changed, 41 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index c903bd7c..d6e8e3ec 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ This extension supports Visual Studio Team Services (VSTS) and Team Foundation S In order to automate the release of app updates to the Google Play store, you need to have manually released at least one version through the [Google Play Developer Console](https://play.google.com/apps/publish/). Additionally, you need to create a service account that is authorized to manage your app(s) releases on your behalf and can be used to authenticate "headlessly" from your VSTS build/release definitions. If you haven't already done so, then perform the following steps to create a service account: > For a more in depth guide [click this link](https://docs.microsoft.com/en-us/appcenter/distribution/stores/googleplay). -1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Settings** in the left-hand navigation menu (the gear icon) +1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Setup** in the left-hand navigation menu (the gear icon) 2. Select the **API access** setting and click the **Create Service Account** button underneath the **Service Accounts** section @@ -31,15 +31,11 @@ In order to automate the release of app updates to the Google Play store, you ne 6. Save the provided JSON file somewhere safe and memorable. You'll be using it later. -7. Go to the **IAM** page and click on the **Add** button. +7. Back in the **Google Play Developer Console**, click the **Done** button to close the modal -8. Select the newly created service account in the **New members** box and assign it the **Service Account User Role**, then click **Save**. +8. Click the **Grant access** button in the row associated with the service account you just created. -9. Back in the **Google Play Developer Console**, click the **Done** button to close the modal - -10. Click the **Grant access** button in the row associated with the service account you just created. - -11. Ensure that the **Role** is set to **Release Manager** and then click the **Add user** button +9. Ensure that the **Role** is set to **Release Manager** and then click the **Add user** button To take advantage of the metadata updating capabilities, files need to be organized using fastlane’s [supply tool](https://github.com/fastlane/fastlane/tree/master/supply#readme) format: @@ -215,7 +211,7 @@ $(Specified Directory) 8. **Deobfuscation path** *(File path, Required if visible)* - The path to the native debug symbols zip archive to upload. Glob patterns are supported. Only visible if `Upload native debug symbols` is enabled. -9. **Send changes to review** *(Boolean, Optional)* - Select this option to send changes for review in GooglePlay Console. If changes are already sent for review automatically, you shouldn't select this option. +9. **Send changes to review** *(Boolean, Optional)* - Select this option to send changes for review in GooglePlay Console. If changes are already sent for review automatically, you shouldn't select this option. ![Send Changes To Review](images/send-changes-to-review.png) @@ -333,6 +329,8 @@ Allows you to promote a previously released APK from one track to another (e.g. 5. **Rollout Fraction** *(String, Required if visible)* - The percentage of users to roll the app out to, specified as a number between 0 and 1 (e.g. `0.5` == `50%` of users). If you use rollout, and want to be able to automate the process of increasing the rollout over time, refer to the `Google Play - Increase Rollout` task. +6. **Clean Source Track** *(Boolean, Optional)* - Clean the source track. Default value is _true_. + ### Google Play - Increase Rollout Allows you to increase the rollout percentage of an app that was previously released to the **Rollout** track, and includes the following options: @@ -448,3 +446,4 @@ $(Specified Directory) Google Play and the Google Play logo are trademarks of Google Inc. This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. +Google Play and the Google Play logo are trademarks of Google Inc. diff --git a/Tasks/GooglePlayPromoteV3/Strings/resources.resjson/en-US/resources.resjson b/Tasks/GooglePlayPromoteV3/Strings/resources.resjson/en-US/resources.resjson index 67a99cf6..5f29a360 100644 --- a/Tasks/GooglePlayPromoteV3/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/GooglePlayPromoteV3/Strings/resources.resjson/en-US/resources.resjson @@ -20,8 +20,8 @@ "loc.input.help.rolloutToUserFraction": "Promote the release to a percentage of users. Use the 'Google Play - Increase Rollout' task to increase the rollout within a track.", "loc.input.label.userFraction": "Rollout fraction", "loc.input.help.userFraction": "The percentage of users the specified APK will be released to for the specified 'Destination track'. It can be increased later with the 'Google Play - Increase Rollout' task.", - "loc.input.label.сleanTheSourceTrack": "Сlean the source track", - "loc.input.help.сleanTheSourceTrack": "Source track will be cleared", + "loc.input.label.cleanSourceTrack": "Clean the source track", + "loc.input.help.cleanSourceTrack": "Source track will be cleared", "loc.messages.InvalidAuthFile": "Specified auth file was invalid", "loc.messages.InvalidAuthFilewithName": "%s was not a valid auth file", "loc.messages.JsonKeyFileNotFound": "The service account JSON key file could not be found.", diff --git a/Tasks/GooglePlayPromoteV3/google-play-promote.ts b/Tasks/GooglePlayPromoteV3/google-play-promote.ts index 83b5b9de..7bb0f2ab 100644 --- a/Tasks/GooglePlayPromoteV3/google-play-promote.ts +++ b/Tasks/GooglePlayPromoteV3/google-play-promote.ts @@ -33,7 +33,7 @@ async function run() { const destinationTrack: string = tl.getInput('destinationTrack', true); const userFractionSupplied: boolean = tl.getBoolInput('rolloutToUserFraction'); const userFraction: number = Number(userFractionSupplied ? tl.getInput('userFraction', false) : 1.0); - const сleanSourceTrack: boolean = tl.getBoolInput('сleanTheSourceTrack'); + const cleanSourceTrack: boolean = tl.getBoolInput('cleanSourceTrack'); const versionCode: string = tl.getInput('versionCode', false); // Constants @@ -73,7 +73,7 @@ async function run() { track = await googleutil.updateTrack(edits, packageName, destinationTrack, versionNumber, userFraction, releaseNotes); tl.debug(`Update track: ${JSON.stringify(track)}`); - if (сleanSourceTrack) { + if (cleanSourceTrack) { console.log(tl.loc('CleanTrack', sourceTrack)); track = await googleutil.updateTrack(edits, packageName, sourceTrack, [], userFraction); tl.debug(`Update clean track: ${JSON.stringify(track)}`); diff --git a/Tasks/GooglePlayPromoteV3/task.json b/Tasks/GooglePlayPromoteV3/task.json index 91ebabb4..b91cf725 100644 --- a/Tasks/GooglePlayPromoteV3/task.json +++ b/Tasks/GooglePlayPromoteV3/task.json @@ -14,7 +14,7 @@ "version": { "Major": "3", "Minor": "211", - "Patch": "0" + "Patch": "1" }, "minimumAgentVersion": "2.182.1", "instanceNameFormat": "Promote $(packageName) from $(sourceTrack) to $(destinationTrack)", @@ -118,9 +118,12 @@ "visibleRule": "rolloutToUserFraction = true" }, { - "name": "сleanTheSourceTrack", + "name": "cleanSourceTrack", + "aliases": [ + "сleanTheSourceTrack" + ], "type": "boolean", - "label": "Сlean the source track", + "label": "Clean the source track", "defaultValue": true, "required": false, "helpMarkDown": "Source track will be cleared" diff --git a/Tasks/GooglePlayPromoteV3/task.loc.json b/Tasks/GooglePlayPromoteV3/task.loc.json index e2a05e42..6215d17d 100644 --- a/Tasks/GooglePlayPromoteV3/task.loc.json +++ b/Tasks/GooglePlayPromoteV3/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": "3", "Minor": "211", - "Patch": "0" + "Patch": "1" }, "minimumAgentVersion": "2.182.1", "instanceNameFormat": "ms-resource:loc.instanceNameFormat", @@ -118,12 +118,15 @@ "visibleRule": "rolloutToUserFraction = true" }, { - "name": "сleanTheSourceTrack", + "name": "cleanSourceTrack", + "aliases": [ + "сleanTheSourceTrack" + ], "type": "boolean", - "label": "ms-resource:loc.input.label.сleanTheSourceTrack", + "label": "ms-resource:loc.input.label.cleanSourceTrack", "defaultValue": true, "required": false, - "helpMarkDown": "ms-resource:loc.input.help.сleanTheSourceTrack" + "helpMarkDown": "ms-resource:loc.input.help.cleanSourceTrack" } ], "execution": { diff --git a/baseREADME.md b/baseREADME.md index 419697e4..d4f8860e 100644 --- a/baseREADME.md +++ b/baseREADME.md @@ -1,5 +1,7 @@ # Visual Studio Team Services Extension for Google Play +[![Build status](https://dev.azure.com/mseng/AzureDevOps/_apis/build/status/CrossPlatform.google-play-vsts-extension.GitHub.CI)](https://dev.azure.com/mseng/AzureDevOps/_build/latest?definitionId=5350) + This extension contains a set of deployment tasks which allow you to automate the release, promotion and rollout of app updates to the Google Play store from your CI environment. This can reduce the effort needed to keep your internal test, alpha, beta, rollout and production deployments up-to-date, since you can simply push changes to the configured source control branches, and let your automated build take care of the rest. ## Prerequisites @@ -9,7 +11,7 @@ This extension supports Visual Studio Team Services (VSTS) and Team Foundation S In order to automate the release of app updates to the Google Play store, you need to have manually released at least one version through the [Google Play Developer Console](https://play.google.com/apps/publish/). Additionally, you need to create a service account that is authorized to manage your app(s) releases on your behalf and can be used to authenticate "headlessly" from your VSTS build/release definitions. If you haven't already done so, then perform the following steps to create a service account: > For a more in depth guide [click this link](https://docs.microsoft.com/en-us/appcenter/distribution/stores/googleplay). -1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Settings** in the left-hand navigation menu (the gear icon) +1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Setup** in the left-hand navigation menu (the gear icon) 2. Select the **API access** setting and click the **Create Service Account** button underneath the **Service Accounts** section @@ -319,6 +321,8 @@ Allows you to promote a previously released APK from one track to another (e.g. 5. **Rollout Fraction** *(String, Required if visible)* - The percentage of users to roll the app out to, specified as a number between 0 and 1 (e.g. `0.5` == `50%` of users). If you use rollout, and want to be able to automate the process of increasing the rollout over time, refer to the `Google Play - Increase Rollout` task. +6. **Clean Source Track** *(Boolean, Optional)* - Clean the source track. Default value is _true_. + ### Google Play - Increase Rollout Allows you to increase the rollout percentage of an app that was previously released to the **Rollout** track, and includes the following options: diff --git a/docs/vsts-README.md b/docs/vsts-README.md index 98bbd3e1..1368f46e 100644 --- a/docs/vsts-README.md +++ b/docs/vsts-README.md @@ -1,5 +1,7 @@ # Visual Studio Team Services Extension for Google Play +[![Build status](https://dev.azure.com/mseng/AzureDevOps/_apis/build/status/CrossPlatform.google-play-vsts-extension.GitHub.CI)](https://dev.azure.com/mseng/AzureDevOps/_build/latest?definitionId=5350) + This extension contains a set of deployment tasks which allow you to automate the release, promotion and rollout of app updates to the Google Play store from your CI environment. This can reduce the effort needed to keep your internal test, alpha, beta, rollout and production deployments up-to-date, since you can simply push changes to the configured source control branches, and let your automated build take care of the rest. ## Prerequisites @@ -9,7 +11,7 @@ This extension supports Visual Studio Team Services (VSTS) and Team Foundation S In order to automate the release of app updates to the Google Play store, you need to have manually released at least one version through the [Google Play Developer Console](https://play.google.com/apps/publish/). Additionally, you need to create a service account that is authorized to manage your app(s) releases on your behalf and can be used to authenticate "headlessly" from your VSTS build/release definitions. If you haven't already done so, then perform the following steps to create a service account: > For a more in depth guide [click this link](https://docs.microsoft.com/en-us/appcenter/distribution/stores/googleplay). -1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Settings** in the left-hand navigation menu (the gear icon) +1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Setup** in the left-hand navigation menu (the gear icon) 2. Select the **API access** setting and click the **Create Service Account** button underneath the **Service Accounts** section @@ -21,15 +23,11 @@ In order to automate the release of app updates to the Google Play store, you ne 6. Save the provided JSON file somewhere safe and memorable. You'll be using it later. -7. Go to the **IAM** page and click on the **Add** button. - -8. Select the newly created service account in the **New members** box and assign it the **Service Account User Role**, then click **Save**. - -9. Back in the **Google Play Developer Console**, click the **Done** button to close the modal +7. Back in the **Google Play Developer Console**, click the **Done** button to close the modal -10. Click the **Grant access** button in the row associated with the service account you just created. +8. Click the **Grant access** button in the row associated with the service account you just created. -11. Ensure that the **Role** is set to **Release Manager** and then click the **Add user** button +9. Ensure that the **Role** is set to **Release Manager** and then click the **Add user** button To take advantage of the metadata updating capabilities, files need to be organized using fastlane’s [supply tool](https://github.com/fastlane/fastlane/tree/master/supply#readme) format: @@ -205,7 +203,7 @@ $(Specified Directory) 8. **Deobfuscation path** *(File path, Required if visible)* - The path to the native debug symbols zip archive to upload. Glob patterns are supported. Only visible if `Upload native debug symbols` is enabled. -9. **Send changes to review** *(Boolean, Optional)* - Select this option to send changes for review in GooglePlay Console. If changes are already sent for review automatically, you shouldn't select this option. +9. **Send changes to review** *(Boolean, Optional)* - Select this option to send changes for review in GooglePlay Console. If changes are already sent for review automatically, you shouldn't select this option. ![Send Changes To Review](images/send-changes-to-review.png) @@ -213,7 +211,7 @@ $(Specified Directory) ![Send Changes To Review](images/send-changes-to-review.png) -11. **Replace version codes** *(String, Required)* - You may specify which APK version codes should be replaced in the track with this deployment. Available options are: *All*, *List* - comma separated list of version codes, *Regular expression* - a regular expression pattern to select a list of APK version codes to be removed from the track with this deployment, e.g. _.\\*12?(3|4)?5_ +11. **Replace version codes** *(String, Required)* - You may specify which APK version codes should be replaced in the track with this deployment. Available options are: *All*, *List* - comma separated list of version codes, *Regular expression* - a regular expression pattern to select a list of APK version codes to be removed from the track with this deployment, e.g. _.\\*12?(3|4)?5_ 12. **Replace Version Codes** *(String, Optional)* - Specify version codes to replace in the selected track with the new APKs/AABs: all, the comma separated list, or a regular expression pattern. Not visible if `action` is *Only update store listing*. @@ -224,8 +222,6 @@ $(Specified Directory) 14. **Version Code Pattern** *(String, Required if visible)* - The regular expression pattern to select a list of version codes to be removed from the track with this deployment, e.g. .\*12?(3|4)?5. Only available if `Replace Version Codes` value is *Regular expression*. -15. **Release as Draft** *(Boolean, Optional)* - Allows to create a draft release which can later be deployed via the Google Play Console. - ### Google Play - Release V3 (deprecated in favor of Google Play - Release V4) Allows you to release an update to your app on Google Play, and includes the following options: @@ -325,6 +321,8 @@ Allows you to promote a previously released APK from one track to another (e.g. 5. **Rollout Fraction** *(String, Required if visible)* - The percentage of users to roll the app out to, specified as a number between 0 and 1 (e.g. `0.5` == `50%` of users). If you use rollout, and want to be able to automate the process of increasing the rollout over time, refer to the `Google Play - Increase Rollout` task. +6. **Clean Source Track** *(Boolean, Optional)* - Clean the source track. Default value is _true_. + ### Google Play - Increase Rollout Allows you to increase the rollout percentage of an app that was previously released to the **Rollout** track, and includes the following options: @@ -440,3 +438,4 @@ $(Specified Directory) Google Play and the Google Play logo are trademarks of Google Inc. This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. +Google Play and the Google Play logo are trademarks of Google Inc. diff --git a/images/promote-task.png b/images/promote-task.png index 257a267c9fa32b28ba145becf6926d3d16438b90..8d207c7973d68174bb23c07694eb3acbc919b9fc 100644 GIT binary patch literal 29150 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 literal 14292 zcmdU$cU05ay7%LZV+jg#WFjI6V?~Mt1f>NSv0y<^=|y6rC_?Cj8fP#vh{7lWA_P=Q zXdx(_5HbV-0Ra)IAqk-c2&B*wTJmn@+;i8tYu$V9nS1X0uJ!)mLb7&#zy15|y`Sg% ze7+B{S1iqULia);5XjC8=g(Y&K)&sRK)y-b_6_(Xz3_es_^~PAnzdYE7=@)DEGGA?YE<g{|H<0c<8EE;ae{qpm* z-tX#ff1S9go7a40_Q139XYLvoYx*sZ&U=1u|6SN;xaEh~Uu9FD*$&t`;!6waWVAc< zLr2cssn{A7qnyCuaB zzQ%b=K^}ElBMSCFAeNP%pm60g^2zchN+(xGZffmSdib+iZ-a!O%gV4pulhvVb@r~> z2vYC~9x0Jwx`R({H{S9q)2XiQxt0A~leVLSHh~G`t%q<=e|`D=*P>bg}1 z8`3Sy`|MF`<6U8sJPNngaB%sO;*nh)hF#EN zm;fph5Eh^efpoB4U>Vas3VJZtN2r`)#_{*&?dY_x-tsZJ#2pnev##j5u&ddAOHk9&z{1tkAZrB(L^G?+men$<4uSaIz5WVHRC+Ll zIRG}hW)k}f*zUgV|KJdGIIxT$kl&xYY{MIbW1Hljhc=*w%egs|d z>B$DR^31-*pWEQ#79ZqS<+~0N>Tcx6dSCB=z?+yGqpXdsyp;?#W9Kq>f{dGM!hTKNGz@j>g2F2w!jGrr7Fl57`82za z_cp%;r`fKp)edc~G#*F3Id}fF_7~4D28fT^h&(1#XEbY{7w(t4Tcj4z&#pX0$KDxC zuTte!*fCFc8e-?fGLKtjT4nl&BsN0fkn=KS`x#sYhhjJSHO>xcZ=km=X1r`c>3OH^ zA@_jBlX`817O#@Jc?K8ja(t_g?=~MlY`OBl*1DJdh~}9aRQJ&71SMi%d024pq4K+X zi|s0X-r^rx1JWe9Ntt0o7G9LGW#rXG!|CO2#HD0e?zkk?Jch~ln4eMHxxkcu0M+6K0mZdi5-x>xQhO=%u zMaC9{x2DA2X&+HK$Fg-Gw0sW4&bb$)Juz^&eiYaJO1#TZ)sERRfg zT8rnNl#9uP!FL(y5lhqI#XPNb6WJ+jtJT+`B&~ z^wa>3Gr=UN)@ONN6CA^^w}HRBDA8^E&Pr^ZR*DXvA6L1zdwU2BiDx>n&9*k^zl5?#m}4K!U`2ywkfq|KXupY3sskMHdgzR9J$b8qj^JIR)LD?A8+bhbU_VpR;i zzY?CB$tvRJj^>tMI#I3DZ9EI>F44@roLZ2R5%p>+!ywry-gC)ZXPlYx^h9m*>T_=kaG!s1{h8#87O9rLKa9>^^WKj&@Gkmc^loV7&3(DJ zesx^XZnS1CSu&!Nt2c1cC30~}+KZVsfR2g8u5rCZ)ls;s6Xe$-(JePMurxThq_2d)u-6_ZOLl$> zDfxj-;2&^~p*4KhcEZNrD8S&U!_e4vFjr;(MI;*K>;QcM?X9$HzDk`ZQcCO(BQ+ zpaIif`(~d~3qgqVc+@jpY8a9>bhC==KCTrth&%K=VfSguE7KtQ3hfg2<{RSVhj6c^ z2J*(8k^((|TsdV$H{J(k<2M22HF>_7?GguT zXgq&;xAaKHJL>9)J}!0W0{i5kVCwBLpVzM{(xEb(kc);+W9qNMQPz60(uv)hAP({# z1b)WK{W;y*yzt7&k4r66XJt$AUhE1K2AeXU=9Scm#j9uYI`a8*9Y#GFMYRv1@IF*u z{;>sEJGrt0?RUL%W8rgk?9fMRPwvh-x%G6K-J{WtChw0QwDwL1xZX+FC2>wi~L5FD_|JNh;N&1IV9czvH6$1-bK0x7?OeJZOs%hUHT~7~9 zC)PY01cwK09GdBngr!aqjnUBh<20)%L8}Z;aekVnzTMSSvA{IFFK z|5lWCDWZ_^i|NlGT)bYy%jhAeqy)bW6Yocf@aX>0=QG&8i7|iLfS;L4uT>s@gy8S= zMS$hnPIouFDlh4CJrP*dd5w2?#gIg{W7Eg9)9RFgymmNSx<4xH7dh|uGi*eUP?u>8pl^A7VObC-Ql&>WZ&xSQLi{V^jrygc}1f$|62&(C3}C}74YpU zs(R!3{dQA2Ht1`e^J=xFPEL$Cdvv(Ydcx<2288LXMH_TTzHj3|4!EVG?XMUS>(+Kx z2Qrj5utoaW;Ebw;@am|AVshZhWGATS*q&;E+x zg~uI6-z-;)U^MKR70tMZ?w6n05}3rxVn8#i?VLXisMn(RlR$KOmQ=vcc2vn?1zI#W z9C&85-}Q|5t^xXk;*qKluWEcknkG@NE84eO3Y=)zCP>wsT@E!)X=gcY;Afv8YR$b~ zJA5Qw9buV~&;QKT=~BE{^Gbe2zgQ_s>LPwF`g=}W5#P+E`iszX8&KzNMPFS((dr`g zC+bs!jj=Cx1uW}&6oG6p{OSK`*^3NIY$iFQikMMTjl(%K4(k4_NyY~uc*_^m){d{z z#JyHN#gc{k2KbR?X3|0CKC3#kXc*7Y!@Mt-RQhiQK{=ofYPzS`J3fA-zRNR!aB|OK z(mRl4^c8nB`|0mN$sNSCH1_+39oiOmACEUtmSQv^LtNJ;dP2ToaL*$ci0A@6+=6#gaD8+}E3_mQlt>oqeo*|l-j&r=&o(e3%g*UO>2q0XsF z!6ai9KD0X1MNUwPoa>SznyeT~!)Yw;#B2x#qnNOwC=t_@hX#zFm_r~%za6#(8FA9b z-~3IrM^oayg)6M^EX#W25>)1~IBI_x8sSnmiis3XbeeKcip0Hf&Z~l;anWcdGeU^8 zQVRmbO0a;Lh97#$~yuxq8!`=MND_Z(l4)iW!C92o%7_UidxbbRq@!`bV#T({(?tg3eDS-&K^vv*#D|&wZoQU;? zZD$&epW&Gc85nk=e%YPOI^lYy$4FQ(95J>+V`6ySXiyp!IE*kmG_YFUYSpqIVuKL_ z8mL>sY^c>OvQ~MN->qexpTh0e^|WvkrI~MaJaVaQ#!n|B>(_TggHqaqUCh_@$oiby zE*-LOAiu(^d;5Oh(>ptfd^44lxK!(!eWvm|-REkwuCrRot}H+8A^3)aiZz8+trlVE z;Wdk9o(wSTZ(mSjng^)Y4oacqG$w?fG;G>-;}_OTT2&q_czwAe--0I1IH ze+P%nK7rMJ3xTMsZs900T}sfYf6JW?@_!;+{oBx_tgeYc{*OxO4d|+h7vN-6wc4QF z95*-}-kJpiKYub&t9@?sR|Pt=FKO#d#Gq2l&(W;GiM%lQQR%)%;|fV-6Aj&}Nnz#p zq6khUdxsRC3Lm!xH-lw+YlF@yW*@KTJduvR8=o?I)>-CUqJNQoza`YjQyme?@r<}q zw{1HkJx#+kH#CA?y$J#-&JC~;VP@9WG2%`PWnNiOQu6U*8F+*l{X-CP0qh z!o8+EyK{PW+VWY7A zhJ}QbZ-Tr|fx^jrYBxo)%6}`Os8CGyh?$ZpQy4LU{RFd)lyhc(?W2f;&^sZ&+h$X} zRP_ABePBU{r>}wA|09$-J8cj0TG8u0MFAfi>a+yM@dmfSvq3_QD6_g3BS~%H-ItP-AhBSOYFiN0>1j~$G zB{tBFOwmH2A^7syV|Z#?fzp#Bf*YIcL;jAyqNk)oqSjVAQUtG$FWxpzDj`c=D zdF;TDRkiI<+QHe!y;5_*L$BRXDF^0y1YN3X!YICN_`zq<@Y8)w8MXihgl3e)eTs``}R(i*f(MmT9hUhTat?JvAba z1MGZMRGfMw!{%I7TOkhD!50m2qnty&iGq#*mUZ_l zX&BcrBXb!=}%6NnCGhDdx(WQO>z_9l7gl zjNJv*-*JxCP?40_Y?B*heo=nBoI$}2ShE6r{GUO2=`@LM#Fjs@iCf4L6k}p&MR0M( zOGr9MNwd`nkYrkGTwty~$(`I#qtO-N>^IdYGF)F)G;WyBI&+WHc0*B_<#ANZg?(6 zx3N569_ifD%$%5kDIr1JJ^W|Qnd^yAQ*cUQTf)u#z_l_my{@u0u*9q%0s>&wtdorh zP16MNM*U8?TJ6X2K`rieitc)?s3}F-lmAuaoWSwLmm9jOF-ryW zzm#>bpPDz~?#DOzSytNwpaf0S@<&_8+kR9`=41aF31y%QH74%i z`Z+!HM+)ax>XxtWf080)d9DGyIJQ(EE>=;=Bv11W_0mY+K!zVXq(V`zPH3+my6`O9 zue0iW55tfb?0d{n#lmvFCc_kk=yD}nGw1;{1r9keSnE3BbJW^G7AzOF1M)!qhMQVM z!NurQ2rjYU>>a&s%R+vBlXtNZ_?Eotgr2ERAh)#6PP@Ol!48G3l(J-ASOF$q)n3gW zSG2ZDvX_c&x1}+G>d{)4$I`+u(6`<}6S@bTXCt5+qU;B|Tx#3UeQL{EIw>1tb8AhmD{YqjQ+a3)B{NS?%`k2lm8s~|M^09TLE%al+F)aS2C!cR7pPzKZ zxXp>6d-!_pw7h!ll`SDJz6MA{rS>A5&v@mVT0`6!Y{DxQ+v%BjWpARvVMk!;72e8G zTYKz@*`+G zHLVk_w4t~Wf0-w7MDs#s?c!i>-S=A|Rqh=%a!MB~6{-@uhUF852Y!&JSHFv9=`^lC zS6@q8C(sl~$i^(!7)h-l8p#!&GlW3wdr~vcr!vSUg9=67rtEDp!V&{Rt26LQstgme zzKB$Aif+ve(c{ioj+`3zWj7Of5%Mx%9i%(NF6jOspHibp#lxG!a#RQ3cbPY)-@31> zDwB1OSu?MDY0l@%hpi27OPbrAjTdB9;nnS3M+y9;mgJ5#>^|Uz|d>TWb5k!!7sRWSh@O ztAE-O5?(Fu_KO}XV<@!Br8F|b_11JZ?q=M2O9RPtFg2c&LFVJFC_|1I&Ku;*Zy>&r z=~>joGd{{=lUuyHs(R4B(vSRd`n1(JFo(NW2WDgGNvlfx0Kw?)Eb1h?l->_nzcpA} zmr2yCl2Zl?Ic;c#)r&=xv+1@c1MyU;arfXin!~w|JTBJ6^19U{4D+3J(gqf%x>E|9 z8?ITe*qi)J21WXWzCE_tc%sZNuJ5jQU#>dhUT}BXgACOv_j>RphON7h+AtNFA{Eo~ ze(~Y_WVmK6k!malwl_VUNaYxh9{M${ggd$5w@Ujqe1tS~Idk4cbQk8@&buGp?3E-; z9r`IC_7<)q;d^o?HZzI&>>J2WM8I8P?R1ax)A-95TN2eSZ&s0=e(s}=P<(hI%iZ@K zRL0CfZ_s)~W=GCcq`)&gT{Dew4nHHu7J|(9nOzI(Xt9)pc!0ND13@drj2B8l@9J@glh?+(v?=chN5_>9*BxcpIV11!Q4udvy4*I zRNq^`IjsMD;qYJTOx!za2nhf38!UVYnm`2qfBt8^eY+BBb3-{xzfKd_mVIwQyjP3} z12`|*%c~(;9}t=pDljMMy%zxWOZ%vVA`-mqd5TXfI0sDk1W$YmvL&!SWwzHD7`}S4 zWxk+BLJ;_RYrXmal&(W$VY!@A`W4pJhJ`mTE_w>9P5}X)(r~zd&wl_c`*^?)DpLCOETQMV2suigwZ$%)W)bIA_5{L8lx-8BnUNL2DA_m!b8r&jZ$6f?#&W&IS`Y5i>859d+mwfac0|IPZjsVC`@GlwVFrW1DBFm!u6j*0nnf+mk zGL~~_PE%kJSn1UC(Q5w7Hu^q*b=!4D_IupEka>l5S25;p`_$-FeLctQ2;(#{-Ft>V zddeTII~Z@gFSoJ6vM<7raY?<_g1@xT>%n`mz7F08FJf0r@=Uj|PO@a-(#gffxL{US zd69cJ;(bKNe5KB%o{kV4VRW{_C)&TzNHMcYj*+ev8TKap)=SgGk2)|DHu3SvOF?j_ z{N3A)IFZ{k&LVwH8-4^Ezo}Xs;aQRFu~d-8zn({3t*D9HZauL%5b=`0?|`zDYUZ=F z99}vi4sPg;zQ${6wX=g$?K21J3X8#T_6#=Du1UofT@w``Lyxm7I7@XE-Ay5Bfq*Bp ztzrYMs##rX2k6250E5s^hW8OdV>wro;(fyE(>wcQqAb4iV=oM_sjIjvtSM(!(AtF` zhb&6nh1L8yVz>$Zd*OyiFOJpWVPk&t4pcLE5%|@#&S0;eAHtS}9a~tLdeKqtE(vzm zc@t4+&6=u?p1t{AIkU)-ap4Q+&1$0Z7XP_bFo$C7IN}-gOZp10BVv|&TEew}Jh)_u zC1y}&DIx6M6)R=L+AaUJ>jral!B||3OjJ!2rz3n7qYeT=)h8R#<5vgua6W z6INAsU{Uos3?$2gGzne1vI+8g5F=`Zn=GGHvRqzDMAptVtYTiy7ejd)?J62v zD`lU$FLERM>yZO%d@Dgo^F2GXW5d?0dM7u1>1gw;c64oT*<8JrblIXy2FX4imC*38 zy$elr&EFIIrKey~suWf?d^S_*M9Q|pMcj9g-(k86BX||`O*i!jLLPhWwZ>pghLOUj zH;*_EG`&a>S%}K~+4nC;RTF<(Y>4)cIKH~8w#Nl@boGy}XH3LpHS`Ie1_9_|g&;)TUk0H)~#jq&IvgrHIPeYC1w{K^?g( zKFK}+b8QTC(;6~ygRd>b^(JKfFgVA}0BrCntN`edsw02GH1OXTt95u{?k;E;0+nIv zKWHiX6PNubhf*w$tdfLG7fR%O0OU?1z}1Zx@r8 z%>H#XrA-juu4FqFR_D;-Vln^qBu{ucuDM~{NGzhKFvL|+(46-eNh6_o!%ql7G1nTK zRg!>MZ!7%-k;+o|At*@}eruwI@_(fAtm8{T)MZ0~Pj9CY(!a zkyY*H^+u;<`T51>3(oOgg^#y)x&%&OzR!EXJRSOGdUlR5P$U7Y#@;lH-4jRK1_yF& zeI4!le4U_xY6E^FBH4-MeGV_7*3bV-FDO2V6eNs`gk0n_Eo#TUQ$+PGkGj zUsx9LQv-c+aTIC;>1l>C;_WT1m-+KgHds*6YtZ>;bnUAL?X&UY)SidHZ@1i8nUZGx zsXN5M!nxHI%_cMgc7^;^X!17<^wGl+ret{H0`2W(Qd)C8+94)LcA(RNHT!USmx?{Q z8b<#lGwLTcP)8V($!C^#mMNFayP!q-o$4RfD&GlzxpqTqep8~9ZQ*6iB}Y*tIE;k=s&tI| zO;d~l*0~hXhPyD9MJ2|ntV;Tt2z`tQKCM$_v0Jq{u~S(*-M*Nj$5@TTWCGQ2%0?7) ze1J)oOsveN!MEt4B$Mp~nI#owquwUS$8+G7{4aIQR_fS^D4YI81oTJ9@m^E|@wtcq zaP8G8&oYA($G!eN=V%Uv2u#_pOmB{>fx~`sNU0bIM8A!s>2QK6W{G8x%Z)0`rUq4J z)Lfi>6j~w^z_?xwh2IL(&#=6=p{k)P-7#sz1uXhJ-~OcOnl)nP-7Q$u_aXJoG_PoK z*1aNYRwGC?R|OdLMvlL}o#+($RgO(|#Nl*juPvJ(H&oqEuPtnb7ujKBny-Et)I?g^ zqu)fi=Db8wG}UTj=ib*A3P4|pm&uMJZa`06diF?U2E6PXs0;>PI#6txsg*h)1xId~ zRi&$3%gs#!{gL$M_Kgb{d@tcQH14V`F@q_og~zEzoihM zO)lKCAB^Od^04^M6dGWaH_n1?$q*&;d|d$@)ZCS^F#^N);p&KEt9&Q0$R$wVUnf#L z2B4%qYwhb3i+Q0RvyI(4WL4eDQ?@jCZ{)tBhe-oc$Sa9`8%?Hv7yLoDF_7kS|7kPP zUpuhJH~N`wT-<28cn8Kl(D?^r|L($nw&HMh!tx|U$$E%np+_QMnuN0mrb}Y$T3d^w zxs9?PSuHG-@({T+>JQopC!%T>hgm6BBWb{;RB6lSza>~r@)k00z52d$^uL8P>>CC! z@y3m8yfgV$+6Ea-SOf8BI1v;a9dg+?LxIHoK{P`3OS$`t)r5qNY)uCnz*hSwB~p^4tzS^XcWO)e$50jEr< zn|A}K^hZ1bCgz#0Ch){_%89(5gWxJ(pvXg@#2xWvn@e3Mi=O;p1^l#IUJY?Xgt@R~ z^zM8+k>A3_iPA5wWVe0;bJh6b8Qe>%cF9aLktto&uai#-2yWZnMsy!DyJ@wZs2A$pF_O$g2%t?_`bO?AUVdYNI9a=D;Szj6jDQI=%%2BUtFlYHo& zxTKEI^_%HC?wXdo6T4S-sSGOfGcEMP;f^U_7?Xxy9FI%WwMxEdbvJpZo(od1HeN*> z8lo;=bmWk7=zB?3#IuOs4KfR@P`+@JZ9r%``(P#cw4wFwu4}SZX+(@(Om0@66QdT zDzEzAF0}LWTNgHOD*&v;{M2lp>E(2oYr08}f{-;qnhxkz)_En>Sg)@#H1;A}Wc69N z;Y`bAb_IY_)Y*6zA*ZymDp_BWq@@funr^&(@8Qq6ws=cWc2sth$uVZsGfS!LSu2%r z;8=982bRh~4~{#w&N13S*ke9&5IJ?lWs~@FfNVqD7AyW2R1-Ydub_p^Gg--7ZV=n=vLoK>@~UX0KR ziTga#=-jv&AScMB!i^Yn>d(fEe=-t9zW}`_Vy(l{Ro$u)Q;?qhc#M<122w8xq z&9KDBqwruJqptd|583QD`Bx+c^67oyJgQ*-2LA?(8y$X3d(Y(&5#q1L1v*H}g{HVK zDf&{7?w|(B4Q1dJBjZ5lHyZtyv7~Us1;$wLIXY9$YH6%_0Y%BB`ca*w6lCN?pcA8R zfLTL+w`z-+4ia@Ln2N@uP}v~MPif$(a#MYA#eD91di#7nzd?w^toOwTUeB@VPmM@) z1%shw0mlg01dx?xd0ZY}bmx5j(?J6m!?Zd?aH~Wc@hdMWclY*~1~TaBEzq=ad6%3V z_I}tGp~|*zEv;!p4xP>#ScIcyUK)1fHL{XE@n z!+DR~W4Zsvad$a2xuW0KBb?v1mu2MPOha2hjplvrSP$~kI?N=X%YEI=rV5bT2ON(9 ztL#rR+H$C4wQ>wgOF4Lahb;?N`1KOb3tsC$c~$WQ%8UGWUhAeIKzZ1)6rfc*#}8O= z`e)+?WmWplI=kd8$EA7X^L66^0L(E=F=-B9v5CHvgWo}h2OaIOotu5Wa`l9^=r@}VOxU5rVgYNgIqu4|s%lv&ab6SDoC=?B%lD{G%Bj$+^E{!4jvPdQh(1@)Wx{rbI0mjba}n!F4sqQ)3UPs_kfLzgB9@md*4)q zt08Jh^c@K?LC*jS%_(&XXPv_Q0TLf=6};Bk@LC3Tg7W#=-}N(S`eE^)Nx(POB^jDI zxVBUY;CIyrJ2Ev+6i?ZE_{r*JEXc>-r2zWhPANCvV6CZy|EsKZabZd#Q_!hH8n}CI RgRej?oV7etY