From 4714a6a9119cc7cb75605238380d336d96f42b51 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Sun, 11 Aug 2024 00:07:27 -0400 Subject: [PATCH 01/43] feat: rebrand chat bot to chat app (#477) Co-authored-by: pierrick --- README.md | 2 +- .../schedule-meetings/.clasp.json | 0 .../{chat-bots => }/schedule-meetings/Code.js | 22 +++++++++---------- .../schedule-meetings/Dialog.js | 0 .../schedule-meetings/README.md | 0 .../schedule-meetings/Utilities.js | 0 .../schedule-meetings/appsscript.json | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) rename solutions/{chat-bots => }/schedule-meetings/.clasp.json (100%) rename solutions/{chat-bots => }/schedule-meetings/Code.js (87%) rename solutions/{chat-bots => }/schedule-meetings/Dialog.js (100%) rename solutions/{chat-bots => }/schedule-meetings/README.md (100%) rename solutions/{chat-bots => }/schedule-meetings/Utilities.js (100%) rename solutions/{chat-bots => }/schedule-meetings/appsscript.json (96%) diff --git a/README.md b/README.md index a56b53039..acd1c3319 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ Codelab tutorials combine detailed explanation, coding exercises, and documented - [BigQuery + Sheets + Slides](http://g.co/codelabs/bigquery-sheets-slides) - [Docs Add-on + Cloud Natural Language API](http://g.co/codelabs/nlp-docs) - [Gmail Add-ons](http://g.co/codelabs/gmail-add-ons) -- [Hangouts Chat Bots](http://g.co/codelabs/chat-apps-script) +- [Google Chat Apps](https://developers.google.com/codelabs/chat-apps-script) ## Clone using the `clasp` command-line tool diff --git a/solutions/chat-bots/schedule-meetings/.clasp.json b/solutions/schedule-meetings/.clasp.json similarity index 100% rename from solutions/chat-bots/schedule-meetings/.clasp.json rename to solutions/schedule-meetings/.clasp.json diff --git a/solutions/chat-bots/schedule-meetings/Code.js b/solutions/schedule-meetings/Code.js similarity index 87% rename from solutions/chat-bots/schedule-meetings/Code.js rename to solutions/schedule-meetings/Code.js index 42b7f3f45..bec500809 100644 --- a/solutions/chat-bots/schedule-meetings/Code.js +++ b/solutions/schedule-meetings/Code.js @@ -1,5 +1,5 @@ // To learn how to use this script, refer to the documentation: -// https://developers.google.com/apps-script/samples/chat-bots/schedule-meetings +// https://developers.google.com/apps-script/samples/chat-apps/schedule-meetings /* Copyright 2022 Google LLC @@ -18,7 +18,7 @@ limitations under the License. */ // Application constants -const BOTNAME = 'Chat Meeting Scheduler'; +const APPNAME = 'Chat Meeting Scheduler'; const SLASHCOMMAND = { HELP: 1, // /help DIALOG: 2, // /schedule_Meeting @@ -26,16 +26,16 @@ const SLASHCOMMAND = { /** * Responds to an ADDED_TO_SPACE event in Google Chat. - * Called when the bot is added to a space. The bot can either be directly added to the space - * or added by a @mention. If the bot is added by a @mention, the event object includes a message property. - * Returns a Message object, which is usually a welcome message informing users about the bot. + * Called when the Chat app is added to a space. The Chat app can either be directly added to the space + * or added by a @mention. If the Chat app is added by a @mention, the event object includes a message property. + * Returns a Message object, which is usually a welcome message informing users about the Chat app. * * @param {Object} event The event object from Google Chat */ function onAddToSpace(event) { let message = ''; - // Personalizes the message depending on how the bot is called. + // Personalizes the message depending on how the Chat app is called. if (event.space.singleUserBotDm) { message = `Hi ${event.user.displayName}!`; } else { @@ -53,8 +53,8 @@ function onAddToSpace(event) { /** * Responds to a MESSAGE event triggered in Chat. - * Called when the bot is already in the space and the user invokes it via @mention or / command. - * Returns a message object containing the bot's response. For this bot, the response is either the + * Called when the Chat app is already in the space and the user invokes it via @mention or / command. + * Returns a message object containing the Chat app's response. For this Chat app, the response is either the * help text or the dialog to schedule a meeting. * * @param {object} event The event object from Google Chat @@ -176,15 +176,15 @@ function onCardClick(event) { } /** - * Responds with help text about this chat bot. + * Responds with help text about this Chat app. * @return {string} The help text as seen below */ function getHelpTextResponse_() { - const help = `*${BOTNAME}* lets you quickly create meetings from Google Chat. Here\'s a list of all its commands: + const help = `*${APPNAME}* lets you quickly create meetings from Google Chat. Here\'s a list of all its commands: \`/schedule_Meeting\` Opens a dialog with editable, preset parameters to create a meeting event \`/help\` Displays this help message - Learn more about creating Google Chat bots at https://developers.google.com/chat.` + Learn more about creating Google Chat apps at https://developers.google.com/chat.` return { 'text': help } } diff --git a/solutions/chat-bots/schedule-meetings/Dialog.js b/solutions/schedule-meetings/Dialog.js similarity index 100% rename from solutions/chat-bots/schedule-meetings/Dialog.js rename to solutions/schedule-meetings/Dialog.js diff --git a/solutions/chat-bots/schedule-meetings/README.md b/solutions/schedule-meetings/README.md similarity index 100% rename from solutions/chat-bots/schedule-meetings/README.md rename to solutions/schedule-meetings/README.md diff --git a/solutions/chat-bots/schedule-meetings/Utilities.js b/solutions/schedule-meetings/Utilities.js similarity index 100% rename from solutions/chat-bots/schedule-meetings/Utilities.js rename to solutions/schedule-meetings/Utilities.js diff --git a/solutions/chat-bots/schedule-meetings/appsscript.json b/solutions/schedule-meetings/appsscript.json similarity index 96% rename from solutions/chat-bots/schedule-meetings/appsscript.json rename to solutions/schedule-meetings/appsscript.json index 40869f567..113372528 100644 --- a/solutions/chat-bots/schedule-meetings/appsscript.json +++ b/solutions/schedule-meetings/appsscript.json @@ -3,6 +3,6 @@ "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "chat": { - "addToSpaceFallbackMessage": "Thank you for adding this Chat Bot!" + "addToSpaceFallbackMessage": "Thank you for adding this Chat App!" } } \ No newline at end of file From 2e6ee8bd540be16eeb776b5175159c93a8c05937 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Sun, 11 Aug 2024 00:08:12 -0400 Subject: [PATCH 02/43] Add Attendance Chat App codelab sources into solutions (#478) Co-authored-by: pierrick --- solutions/attendance-chat-app/README.md | 23 +++ solutions/attendance-chat-app/final/Code.gs | 160 +++++++++++++++ .../attendance-chat-app/final/appsscript.json | 12 ++ solutions/attendance-chat-app/step-3/Code.gs | 33 ++++ .../step-3/appsscript.json | 6 + solutions/attendance-chat-app/step-4/Code.gs | 33 ++++ .../step-4/appsscript.json | 6 + solutions/attendance-chat-app/step-5/Code.gs | 69 +++++++ .../step-5/appsscript.json | 6 + solutions/attendance-chat-app/step-6/Code.gs | 183 ++++++++++++++++++ .../step-6/appsscript.json | 12 ++ 11 files changed, 543 insertions(+) create mode 100644 solutions/attendance-chat-app/README.md create mode 100644 solutions/attendance-chat-app/final/Code.gs create mode 100644 solutions/attendance-chat-app/final/appsscript.json create mode 100644 solutions/attendance-chat-app/step-3/Code.gs create mode 100644 solutions/attendance-chat-app/step-3/appsscript.json create mode 100644 solutions/attendance-chat-app/step-4/Code.gs create mode 100644 solutions/attendance-chat-app/step-4/appsscript.json create mode 100644 solutions/attendance-chat-app/step-5/Code.gs create mode 100644 solutions/attendance-chat-app/step-5/appsscript.json create mode 100644 solutions/attendance-chat-app/step-6/Code.gs create mode 100644 solutions/attendance-chat-app/step-6/appsscript.json diff --git a/solutions/attendance-chat-app/README.md b/solutions/attendance-chat-app/README.md new file mode 100644 index 000000000..8404454da --- /dev/null +++ b/solutions/attendance-chat-app/README.md @@ -0,0 +1,23 @@ +# Attendance Chat App + +This code sample shows how to build a Google Chat app using Google +Apps Script. The Chat app responds to messages in a space or direct message (DM) and +allows the user to set a vacation responder in Gmail or add an all-day event to +their Calendar from Google Chat. + +## Usage + +You can follow [this codelab](https://developers.google.com/codelabs/chat-apps-script) +to build and test this Chat app. + +To use this Chat app, you must enable the Hangouts Chat API in the +[Google API Console](https://console.developers.google.com/). After enabling +the API, configuring the Chat app, and publishing it, you must add the Chat app to a space +or DM to begin a conversation. + +For more information about how to publish a Chat app, see +[Publishing Google Chat apps](https://developers.google.com/workspace/chat/apps-publish). + +## Disclaimer + +This is not an official product. diff --git a/solutions/attendance-chat-app/final/Code.gs b/solutions/attendance-chat-app/final/Code.gs new file mode 100644 index 000000000..c62c93a1c --- /dev/null +++ b/solutions/attendance-chat-app/final/Code.gs @@ -0,0 +1,160 @@ +/** + * Responds to an ADDED_TO_SPACE event in Google Chat. + * @param {object} event the event object from Google Chat + * @return {object} JSON-formatted response + * @see https://developers.google.com/workspace/chat/receive-respond-interactions + */ +function onAddToSpace(event) { + console.info(event); + var message = 'Thank you for adding me to '; + if (event.space.type === 'DM') { + message += 'a DM, ' + event.user.displayName + '!'; + } else { + message += event.space.displayName; + } + return { text: message }; +} + +/** + * Responds to a REMOVED_FROM_SPACE event in Google Chat. + * @param {object} event the event object from Google Chat + * @see https://developers.google.com/workspace/chat/receive-respond-interactions + */ +function onRemoveFromSpace(event) { + console.info(event); + console.log('Chat app removed from ', event.space.name); +} + +var DEFAULT_IMAGE_URL = 'https://goo.gl/bMqzYS'; +var HEADER = { + header: { + title : 'Attendance Chat app', + subtitle : 'Log your vacation time', + imageUrl : DEFAULT_IMAGE_URL + } +}; + +/** + * Creates a card-formatted response. + * @param {object} widgets the UI components to send + * @return {object} JSON-formatted response + */ +function createCardResponse(widgets) { + return { + cards: [HEADER, { + sections: [{ + widgets: widgets + }] + }] + }; +} + +var REASON = { + SICK: 'Out sick', + OTHER: 'Out of office' +}; +/** + * Responds to a MESSAGE event triggered in Google Chat. + * @param {object} event the event object from Google Chat + * @return {object} JSON-formatted response + */ +function onMessage(event) { + console.info(event); + var reason = REASON.OTHER; + var name = event.user.displayName; + var userMessage = event.message.text; + + // If the user said that they were 'sick', adjust the image in the + // header sent in response. + if (userMessage.indexOf('sick') > -1) { + // Hospital material icon + HEADER.header.imageUrl = 'https://goo.gl/mnZ37b'; + reason = REASON.SICK; + } else if (userMessage.indexOf('vacation') > -1) { + // Spa material icon + HEADER.header.imageUrl = 'https://goo.gl/EbgHuc'; + } + + var widgets = [{ + textParagraph: { + text: 'Hello, ' + name + '.
Are you taking time off today?' + } + }, { + buttons: [{ + textButton: { + text: 'Set vacation in Gmail', + onClick: { + action: { + actionMethodName: 'turnOnAutoResponder', + parameters: [{ + key: 'reason', + value: reason + }] + } + } + } + }, { + textButton: { + text: 'Block out day in Calendar', + onClick: { + action: { + actionMethodName: 'blockOutCalendar', + parameters: [{ + key: 'reason', + value: reason + }] + } + } + } + }] + }]; + return createCardResponse(widgets); +} + +/** + * Responds to a CARD_CLICKED event triggered in Google Chat. + * @param {object} event the event object from Google Chat + * @return {object} JSON-formatted response + * @see https://developers.google.com/workspace/chat/receive-respond-interactions + */ +function onCardClick(event) { + console.info(event); + var message = ''; + var reason = event.action.parameters[0].value; + if (event.action.actionMethodName == 'turnOnAutoResponder') { + turnOnAutoResponder(reason); + message = 'Turned on vacation settings.'; + } else if (event.action.actionMethodName == 'blockOutCalendar') { + blockOutCalendar(reason); + message = 'Blocked out your calendar for the day.'; + } else { + message = "I'm sorry; I'm not sure which button you clicked."; + } + return { text: message }; +} + +var ONE_DAY_MILLIS = 24 * 60 * 60 * 1000; +/** + * Turns on the user's vacation response for today in Gmail. + * @param {string} reason the reason for vacation, either REASON.SICK or REASON.OTHER + */ +function turnOnAutoResponder(reason) { + var currentTime = (new Date()).getTime(); + Gmail.Users.Settings.updateVacation({ + enableAutoReply: true, + responseSubject: reason, + responseBodyHtml: "I'm out of the office today; will be back on the next business day.

Created by Attendance Chat app!", + restrictToContacts: true, + restrictToDomain: true, + startTime: currentTime, + endTime: currentTime + ONE_DAY_MILLIS + }, 'me'); +} + +/** + * Places an all-day meeting on the user's Calendar. + * @param {string} reason the reason for vacation, either REASON.SICK or REASON.OTHER + */ +function blockOutCalendar(reason) { + CalendarApp.createAllDayEvent(reason, new Date(), new Date(Date.now() + ONE_DAY_MILLIS)); +} diff --git a/solutions/attendance-chat-app/final/appsscript.json b/solutions/attendance-chat-app/final/appsscript.json new file mode 100644 index 000000000..4482a3a30 --- /dev/null +++ b/solutions/attendance-chat-app/final/appsscript.json @@ -0,0 +1,12 @@ +{ + "timeZone": "America/Los_Angeles", + "dependencies": { + "enabledAdvancedServices": [{ + "userSymbol": "Gmail", + "serviceId": "gmail", + "version": "v1" + }] + }, + "chat": { + } +} \ No newline at end of file diff --git a/solutions/attendance-chat-app/step-3/Code.gs b/solutions/attendance-chat-app/step-3/Code.gs new file mode 100644 index 000000000..fc47fd758 --- /dev/null +++ b/solutions/attendance-chat-app/step-3/Code.gs @@ -0,0 +1,33 @@ +/** + * Responds to an ADDED_TO_SPACE event + * in Google Chat. + * + * @param event the event object from Google Chat + * @return JSON-formatted response + */ +function onAddToSpace(event) { + console.info(event); + + var message = ""; + + if (event.space.type === "DM") { + message = "Thank you for adding me to a DM, " + + event.user.displayName + "!"; + } else { + message = "Thank you for adding me to " + + event.space.displayName; + } + + return { "text": message }; +} + +/** + * Responds to a REMOVED_FROM_SPACE event + * in Google Chat. + * + * @param event the event object from Google Chat + */ +function onRemoveFromSpace(event) { + console.info(event); + console.info("Chat app removed from ", event.space.name); +} diff --git a/solutions/attendance-chat-app/step-3/appsscript.json b/solutions/attendance-chat-app/step-3/appsscript.json new file mode 100644 index 000000000..9e2a1d673 --- /dev/null +++ b/solutions/attendance-chat-app/step-3/appsscript.json @@ -0,0 +1,6 @@ +{ + "timeZone": "America/Los_Angeles", + "dependencies": { + }, + "chat": {} +} \ No newline at end of file diff --git a/solutions/attendance-chat-app/step-4/Code.gs b/solutions/attendance-chat-app/step-4/Code.gs new file mode 100644 index 000000000..fc47fd758 --- /dev/null +++ b/solutions/attendance-chat-app/step-4/Code.gs @@ -0,0 +1,33 @@ +/** + * Responds to an ADDED_TO_SPACE event + * in Google Chat. + * + * @param event the event object from Google Chat + * @return JSON-formatted response + */ +function onAddToSpace(event) { + console.info(event); + + var message = ""; + + if (event.space.type === "DM") { + message = "Thank you for adding me to a DM, " + + event.user.displayName + "!"; + } else { + message = "Thank you for adding me to " + + event.space.displayName; + } + + return { "text": message }; +} + +/** + * Responds to a REMOVED_FROM_SPACE event + * in Google Chat. + * + * @param event the event object from Google Chat + */ +function onRemoveFromSpace(event) { + console.info(event); + console.info("Chat app removed from ", event.space.name); +} diff --git a/solutions/attendance-chat-app/step-4/appsscript.json b/solutions/attendance-chat-app/step-4/appsscript.json new file mode 100644 index 000000000..9e2a1d673 --- /dev/null +++ b/solutions/attendance-chat-app/step-4/appsscript.json @@ -0,0 +1,6 @@ +{ + "timeZone": "America/Los_Angeles", + "dependencies": { + }, + "chat": {} +} \ No newline at end of file diff --git a/solutions/attendance-chat-app/step-5/Code.gs b/solutions/attendance-chat-app/step-5/Code.gs new file mode 100644 index 000000000..3aad2a4c5 --- /dev/null +++ b/solutions/attendance-chat-app/step-5/Code.gs @@ -0,0 +1,69 @@ +/** + * Responds to an ADDED_TO_SPACE event + * in Google Chat. + * + * @param event the event object from Google Chat + * @return JSON-formatted response + */ +function onAddToSpace(event) { + console.info(event); + + var message = ""; + + if (event.space.type === "DM") { + message = "Thank you for adding me to a DM, " + + event.user.displayName + "!"; + } else { + message = "Thank you for adding me to " + + event.space.displayName; + } + + return { "text": message }; +} + +/** + * Responds to a REMOVED_FROM_SPACE event + * in Google Chat. + * + * @param event the event object from Google Chat + */ +function onRemoveFromSpace(event) { + console.info(event); + console.info("Chat app removed from ", event.space.name); +} + +/** + * Creates a card-formatted response. + * + * @param widgets the UI components to send + * @return JSON-formatted response + */ +function createCardResponse(widgets) { + return { + "cards": [ + header, + { + "sections": [{ + "widgets": widgets + }] + }] + }; +} + +/** + * Responds to a MESSAGE event triggered in Google Chat. + * + * @param event the event object from Google Chat + * @return JSON-formatted response + */ +function onMessage(event) { + var userMessage = event.message.text; + + var widgets = [{ + "textParagraph": { + "text": "You said: " + userMessage + } + }]; + + return createCardResponse(widgets); +} \ No newline at end of file diff --git a/solutions/attendance-chat-app/step-5/appsscript.json b/solutions/attendance-chat-app/step-5/appsscript.json new file mode 100644 index 000000000..9e2a1d673 --- /dev/null +++ b/solutions/attendance-chat-app/step-5/appsscript.json @@ -0,0 +1,6 @@ +{ + "timeZone": "America/Los_Angeles", + "dependencies": { + }, + "chat": {} +} \ No newline at end of file diff --git a/solutions/attendance-chat-app/step-6/Code.gs b/solutions/attendance-chat-app/step-6/Code.gs new file mode 100644 index 000000000..84707a15f --- /dev/null +++ b/solutions/attendance-chat-app/step-6/Code.gs @@ -0,0 +1,183 @@ +/** + * Responds to an ADDED_TO_SPACE event + * in Google Chat. + * + * @param event the event object from Google Chat + * @return JSON-formatted response + */ +function onAddToSpace(event) { + console.info(event); + + var message = ""; + + if (event.space.type === "DM") { + message = "Thank you for adding me to a DM, " + + event.user.displayName + "!"; + } else { + message = "Thank you for adding me to " + + event.space.displayName; + } + + return { "text": message }; +} + +/** + * Responds to a REMOVED_FROM_SPACE event + * in Google Chat. + * + * @param event the event object from Google Chat + */ +function onRemoveFromSpace(event) { + console.info(event); + console.info("Chat app removed from ", event.space.name); +} + +var DEFAULT_IMAGE_URL = "https://goo.gl/bMqzYS"; +var header = { + "header": { + "title" : "Attendance Chat app", + "subtitle" : "Log your vacation time", + "imageUrl" : DEFAULT_IMAGE_URL + } +}; + +/** + * Creates a card-formatted response. + * + * @param widgets the UI components to send + * @return JSON-formatted response + */ +function createCardResponse(widgets) { + return { + "cards": [ + header, + { + "sections": [{ + "widgets": widgets + }] + }] + }; +} + +var REASON_SICK = "Out sick"; +var REASON_OTHER = "Out of office"; + +/** + * Responds to a MESSAGE event triggered in Google Chat. + * + * @param event the event object from Google Chat + * @return JSON-formatted response + */ +function onMessage(event) { + console.info(event); + + var reason = REASON_OTHER; + var name = event.user.displayName; + var userMessage = event.message.text; + + // If the user said that they were "sick", adjust the image in the + // header sent in response. + if (userMessage.indexOf("sick") > -1) { + + // Hospital material icon + header.header.imageUrl = "https://goo.gl/mnZ37b"; + reason = REASON_SICK; + + } else if (userMessage.indexOf("vacation") > -1) { + + // Spa material icon + header.header.imageUrl = "https://goo.gl/EbgHuc"; + } + + var widgets = [{ + "textParagraph": { + "text": "Hello, " + name + + ".
Are you taking time off today?" + } + }, { + "buttons": [{ + "textButton": { + "text": "Set vacation in Gmail", + "onClick": { + "action": { + "actionMethodName": "turnOnAutoResponder", + "parameters": [{ + "key": "reason", + "value": reason + }] + } + } + } + }, { + "textButton": { + "text": "Block out day in Calendar", + "onClick": { + "action": { + "actionMethodName": "blockOutCalendar", + "parameters": [{ + "key": "reason", + "value": reason + }] + } + } + } + }] + }]; + + return createCardResponse(widgets); +} + +/** + * Responds to a CARD_CLICKED event triggered in Google Chat. + * + * @param event the event object from Google Chat + * @return JSON-formatted response + */ +function onCardClick(event) { + console.info(event); + + var message = ""; + var reason = event.action.parameters[0].value; + + if (event.action.actionMethodName == "turnOnAutoResponder") { + turnOnAutoResponder(reason); + message = "Turned on vacation settings."; + } else if (event.action.actionMethodName == "blockOutCalendar") { + blockOutCalendar(reason); + message = "Blocked out your calendar for the day."; + } else { + message = "I'm sorry; I'm not sure which button you clicked."; + } + + return { "text": message }; +} + +var ONE_DAY_MILLIS = 24 * 60 * 60 * 1000; + +/** + * Turns on the user's vacation response for today in Gmail. + * + * @param reason the reason for vacation, either REASON_SICK or REASON_OTHER + */ +function turnOnAutoResponder(reason) { + var currentTime = (new Date()).getTime(); + + Gmail.Users.Settings.updateVacation({ + "enableAutoReply": true, + "responseSubject": reason, + "responseBodyHtml": "I'm out of the office today; will be back on the next business day.

Created by Attendance Chat app!", + "restrictToContacts": true, + "restrictToDomain": true, + "startTime": currentTime, + "endTime": currentTime + ONE_DAY_MILLIS + }, "me"); +} + +/** + * Places an all-day meeting on the user's Calendar. + * + * @param reason the reason for vacation, either REASON_SICK or REASON_OTHER + */ +function blockOutCalendar(reason) { + CalendarApp.createAllDayEvent(reason, new Date(), new Date(Date.now() + ONE_DAY_MILLIS)); +} diff --git a/solutions/attendance-chat-app/step-6/appsscript.json b/solutions/attendance-chat-app/step-6/appsscript.json new file mode 100644 index 000000000..4482a3a30 --- /dev/null +++ b/solutions/attendance-chat-app/step-6/appsscript.json @@ -0,0 +1,12 @@ +{ + "timeZone": "America/Los_Angeles", + "dependencies": { + "enabledAdvancedServices": [{ + "userSymbol": "Gmail", + "serviceId": "gmail", + "version": "v1" + }] + }, + "chat": { + } +} \ No newline at end of file From e498743343731c83681830b42ec36e9ea15d6882 Mon Sep 17 00:00:00 2001 From: lfelpi-google Date: Thu, 15 Aug 2024 16:09:17 -0400 Subject: [PATCH 03/43] fix: Update docs.gs for the tabs in Docs feature (#479) This is a part of an ongoing effort to update Docs API guides/documentation for the tabs feature. --- advanced/docs.gs | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/advanced/docs.gs b/advanced/docs.gs index c8721bf5e..e760e2dd9 100644 --- a/advanced/docs.gs +++ b/advanced/docs.gs @@ -45,6 +45,20 @@ function findAndReplace(documentId, findTextToReplacementMap) { const requests = []; for (const findText in findTextToReplacementMap) { const replaceText = findTextToReplacementMap[findText]; + // One option for replacing all text is to specify all tab IDs. + const request = { + replaceAllText: { + containsText: { + text: findText, + matchCase: true + }, + replaceText: replaceText, + tabsCriteria: { + tabIds: [TAB_ID_1, TAB_ID_2, TAB_ID_3], + } + } + }; + // Another option is to omit TabsCriteria if you are replacing across all tabs. const request = { replaceAllText: { containsText: { @@ -73,8 +87,8 @@ function findAndReplace(documentId, findTextToReplacementMap) { // [START docs_insert_and_style_text] /** - * Insert text at the beginning of the document and then style the inserted - * text. + * Insert text at the beginning of the first tab in the document and then style + * the inserted text. * @param {string} documentId The document the text is inserted into. * @param {string} text The text to insert into the document. * @return {Object} replies @@ -84,7 +98,10 @@ function insertAndStyleText(documentId, text) { const requests = [{ insertText: { location: { - index: 1 + index: 1, + // A tab can be specified using its ID. When omitted, the request is + // applied to the first tab. + // tabId: TAB_ID }, text: text } @@ -119,7 +136,7 @@ function insertAndStyleText(documentId, text) { // [START docs_read_first_paragraph] /** - * Read the first paragraph of the body of a document. + * Read the first paragraph of the first tab in a document. * @param {string} documentId The ID of the document to read. * @return {Object} paragraphText * @see https://developers.google.com/docs/api/reference/rest/v1/documents/get @@ -127,8 +144,9 @@ function insertAndStyleText(documentId, text) { function readFirstParagraph(documentId) { try { // Get the document using document ID - const document = Docs.Documents.get(documentId); - const bodyElements = document.body.content; + const document = Docs.Documents.get({'includeTabsContent': true}, documentId); + const firstTab = document.tabs[0]; + const bodyElements = firstTab.documentTab.body.content; for (let i = 0; i < bodyElements.length; i++) { const structuralElement = bodyElements[i]; // Print the first paragraph text present in document From efdc28b1bd5547da7b320e4fb1950851e0714d2a Mon Sep 17 00:00:00 2001 From: lfelpi-google Date: Thu, 15 Aug 2024 16:09:32 -0400 Subject: [PATCH 04/43] fix: Update quickstart.gs for the tabs in Docs feature (#480) This is part of an ongoing effort to update Docs API guides/documentation for the tabs feature. --- docs/quickstart/quickstart.gs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/quickstart/quickstart.gs b/docs/quickstart/quickstart.gs index ea514fc00..605cfe759 100644 --- a/docs/quickstart/quickstart.gs +++ b/docs/quickstart/quickstart.gs @@ -23,7 +23,7 @@ function printDocTitle() { const documentId = '195j9eDD3ccgjQRttHhJPymLJUCOUjs-jmwTrekvdjFE'; try { // Get the document using document id - const doc = Docs.Documents.get(documentId); + const doc = Docs.Documents.get({'includeTabsContent': true}, documentId); // Log the title of document. console.log('The title of the doc is: %s', doc.title); } catch (err) { From 847e2aabfc48c9cbaed9c721eb90bd625817de5a Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Fri, 16 Aug 2024 21:22:48 -0400 Subject: [PATCH 05/43] feat: add Advanced Service samples for Chat (#481) * feat: add Advanced Service samples for Chat * README improvements * README improvements #2 --------- Co-authored-by: pierrick --- .../AppAuthenticationUtils.gs | 61 ++ chat/advanced-service/Main.gs | 719 ++++++++++++++++++ chat/advanced-service/README.md | 24 + chat/advanced-service/appsscript.json | 28 + 4 files changed, 832 insertions(+) create mode 100644 chat/advanced-service/AppAuthenticationUtils.gs create mode 100644 chat/advanced-service/Main.gs create mode 100644 chat/advanced-service/README.md create mode 100644 chat/advanced-service/appsscript.json diff --git a/chat/advanced-service/AppAuthenticationUtils.gs b/chat/advanced-service/AppAuthenticationUtils.gs new file mode 100644 index 000000000..87af3ba93 --- /dev/null +++ b/chat/advanced-service/AppAuthenticationUtils.gs @@ -0,0 +1,61 @@ +/** + * Copyright 2024 Google LLC + * + * Licensed 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 + * + * https://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. + */ + +// [START chat_authentication_utils] + +// This script provides configuration and helper functions for app authentication. +// It may require modifications to work in your environment. + +// For more information on app authentication, see +// https://developers.google.com/workspace/chat/authenticate-authorize-chat-app + +const APP_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.bot']; +// Warning: This example uses a service account private key, it should always be stored in a +// secure location. +const SERVICE_ACCOUNT = { + // TODO(developer): Replace with the Google Chat credentials to use for app authentication, + // the service account private key's JSON. +}; + +/** + * Authenticates the app service by using the OAuth2 library. + * + * @return {Object} the authenticated app service + */ +function getService_() { + return OAuth2.createService(SERVICE_ACCOUNT.client_email) + .setTokenUrl(SERVICE_ACCOUNT.token_uri) + .setPrivateKey(SERVICE_ACCOUNT.private_key) + .setIssuer(SERVICE_ACCOUNT.client_email) + .setSubject(SERVICE_ACCOUNT.client_email) + .setScope(APP_AUTH_OAUTH_SCOPES) + .setCache(CacheService.getUserCache()) + .setLock(LockService.getUserLock()) + .setPropertyStore(PropertiesService.getScriptProperties()); +} + +/** + * Generates headers with the app credentials to use to make Google Chat API calls. + * + * @return {Object} the header with credentials + */ +function getHeaderWithAppCredentials() { + return { + 'Authorization': `Bearer ${getService_().getAccessToken()}` + }; +} + +// [END chat_authentication_utils] diff --git a/chat/advanced-service/Main.gs b/chat/advanced-service/Main.gs new file mode 100644 index 000000000..ab1b2fab1 --- /dev/null +++ b/chat/advanced-service/Main.gs @@ -0,0 +1,719 @@ +/** + * Copyright 2024 Google LLC + * + * Licensed 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 + * + * https://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 script provides each code sample in a separate function. +// It may require modifications to work in your environment. + +// For more information on user authentication, see +// https://developers.google.com/workspace/chat/authenticate-authorize-chat-user + +// For more information on app authentication, see +// https://developers.google.com/workspace/chat/authenticate-authorize-chat-app + +// [START chat_create_membership_user_cred] +/** + * This sample shows how to create membership with user credential for a human user + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.memberships' + * referenced in the manifest file (appsscript.json). + */ +function createMembershipUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + const membership = { + member: { + // TODO(developer): Replace USER_NAME here + name: 'users/USER_NAME', + // User type for the membership + type: 'HUMAN' + } + }; + + // Make the request + const response = Chat.Spaces.Members.create(membership, parent); + + // Handle the response + console.log(response); +} +// [END chat_create_membership_user_cred] + +// [START chat_create_membership_user_cred_for_app] +/** + * This sample shows how to create membership with app credential for an app + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.memberships.app' + * referenced in the manifest file (appsscript.json). + */ +function createMembershipUserCredForApp() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + const membership = { + member: { + // Member name for app membership, do not change this + name: 'users/app', + // User type for the membership + type: 'BOT' + } + }; + + // Make the request + const response = Chat.Spaces.Members.create(membership, parent); + + // Handle the response + console.log(response); +} +// [END chat_create_membership_user_cred_for_app] + +// [START chat_create_message_app_cred] +/** + * This sample shows how to create message with app credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' + * used by service accounts. + */ +function createMessageAppCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + const message = { + text: 'Hello with app credential!' + }; + const parameters = {}; + + // Make the request + const response = Chat.Spaces.Messages.create( + message, parent, parameters, getHeaderWithAppCredentials() + ); + + // Handle the response + console.log(response); +} +// [END chat_create_message_app_cred] + +// [START chat_create_message_app_cred_with_cards] +/** + * This sample shows how to create message with a card attached with app credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' + * used by service accounts. + */ +function createMessageAppCredWithCards() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + const message = { + text: 'Hello with app credential!', + cardsV2: [{ + cardId: 'card-id', + card: { + header: { + title: 'And with a card!', + } + } + }] + }; + const parameters = {}; + + // Make the request + const response = Chat.Spaces.Messages.create( + message, parent, parameters, getHeaderWithAppCredentials() + ); + + // Handle the response + console.log(response); +} +// [END chat_create_message_app_cred_with_cards] + +// [START chat_create_message_user_cred] +/** + * This sample shows how to create message with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create' + * referenced in the manifest file (appsscript.json). + */ +function createMessageUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + const message = { + text: 'Hello with user credential!' + }; + + // Make the request + const response = Chat.Spaces.Messages.create(message, parent); + + // Handle the response + console.log(response); +} +// [END chat_create_message_user_cred] + +// [START chat_create_message_user_cred_at_mention] +/** + * This sample shows how to create message with user credential with a user mention + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create' + * referenced in the manifest file (appsscript.json). + */ +function createMessageUserCredAtMention() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + const message = { + // The user with USER_NAME will be mentioned if they are in the space + // TODO(developer): Replace USER_NAME here + text: 'Hello !' + }; + + // Make the request + const response = Chat.Spaces.Messages.create(message, parent); + + // Handle the response + console.log(response); +} +// [END chat_create_message_user_cred_at_mention] + +// [START chat_create_message_user_cred_message_id] +/** + * This sample shows how to create message with user credential with message id + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create' + * referenced in the manifest file (appsscript.json). + */ +function createMessageUserCredMessageId() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + // Message id lets chat apps get, update or delete a message without needing + // to store the system assigned ID in the message's resource name + const messageId = 'client-MESSAGE-ID'; + const message = { text: 'Hello with user credential!' }; + + // Make the request + const response = Chat.Spaces.Messages.create(message, parent, { + messageId: messageId + }); + + // Handle the response + console.log(response); +} +// [END chat_create_message_user_cred_message_id] + +// [START chat_create_message_user_cred_request_id] +/** + * This sample shows how to create message with user credential with request id + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create' + * referenced in the manifest file (appsscript.json). + */ +function createMessageUserCredRequestId() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + // Specifying an existing request ID returns the message created with + // that ID instead of creating a new message + const requestId = 'REQUEST_ID'; + const message = { text: 'Hello with user credential!' }; + + // Make the request + const response = Chat.Spaces.Messages.create(message, parent, { + requestId: requestId + }); + + // Handle the response + console.log(response); +} +// [END chat_create_message_user_cred_request_id] + +// [START chat_create_message_user_cred_thread_key] +/** + * This sample shows how to create message with user credential with thread key + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create' + * referenced in the manifest file (appsscript.json). + */ +function createMessageUserCredThreadKey() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + // Creates the message as a reply to the thread specified by thread_key + // If it fails, the message starts a new thread instead + const messageReplyOption = 'REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD'; + const message = { + text: 'Hello with user credential!', + thread: { + // Thread key specifies a thread and is unique to the chat app + // that sets it + threadKey: 'THREAD_KEY' + } + }; + + // Make the request + const response = Chat.Spaces.Messages.create(message, parent, { + messageReplyOption: messageReplyOption + }); + + // Handle the response + console.log(response); +} +// [END chat_create_message_user_cred_thread_key] + +// [START chat_create_message_user_cred_thread_name] +/** + * This sample shows how to create message with user credential with thread name + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create' + * referenced in the manifest file (appsscript.json). + */ +function createMessageUserCredThreadName() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + // Creates the message as a reply to the thread specified by thread.name + // If it fails, the message starts a new thread instead + const messageReplyOption = 'REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD'; + const message = { + text: 'Hello with user credential!', + thread: { + // Resource name of a thread that uniquely identify a thread + // TODO(developer): Replace SPACE_NAME and THREAD_NAME here + name: 'spaces/SPACE_NAME/threads/THREAD_NAME' + } + }; + + // Make the request + const response = Chat.Spaces.Messages.create(message, parent, { + messageReplyOption: messageReplyOption + }); + + // Handle the response + console.log(response); +} +// [END chat_create_message_user_cred_thread_name] + +// [START chat_delete_message_app_cred] +/** + * This sample shows how to delete a message with app credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' + * used by service accounts. + */ +function deleteMessageAppCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here + const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME'; + const parameters = {}; + + // Make the request + const response = Chat.Spaces.Messages.remove(name, parameters, getHeaderWithAppCredentials()); + + // Handle the response + console.log(response); +} +// [END chat_delete_message_app_cred] + +// [START chat_delete_message_user_cred] +/** + * This sample shows how to delete a message with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages' + * referenced in the manifest file (appsscript.json). + */ +function deleteMessageUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here + const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME'; + + // Make the request + const response = Chat.Spaces.Messages.remove(name); + + // Handle the response + console.log(response); +} +// [END chat_delete_message_user_cred] + +// [START chat_get_membership_app_cred] +/** + * This sample shows how to get membership with app credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' + * used by service accounts. + */ +function getMembershipAppCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME and MEMBER_NAME here + const name = 'spaces/SPACE_NAME/members/MEMBER_NAME'; + const parameters = {}; + + // Make the request + const response = Chat.Spaces.Members.get(name, parameters, getHeaderWithAppCredentials()); + + // Handle the response + console.log(response); +} +// [END chat_get_membership_app_cred] + +// [START chat_get_membership_user_cred] +/** + * This sample shows how to get membership with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.memberships.readonly' + * referenced in the manifest file (appsscript.json). + */ +function getMembershipUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME and MEMBER_NAME here + const name = 'spaces/SPACE_NAME/members/MEMBER_NAME'; + + // Make the request + const response = Chat.Spaces.Members.get(name); + + // Handle the response + console.log(response); +} +// [END chat_get_membership_user_cred] + +// [START chat_get_message_app_cred] +/** + * This sample shows how to get message with app credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' + * used by service accounts. + */ +function getMessageAppCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here + const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME'; + const parameters = {}; + + // Make the request + const response = Chat.Spaces.Messages.get(name, parameters, getHeaderWithAppCredentials()); + + // Handle the response + console.log(response); +} +// [END chat_get_message_app_cred] + +// [START chat_get_message_user_cred] +/** + * This sample shows how to get message with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.readonly' + * referenced in the manifest file (appsscript.json). + */ +function getMessageUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here + const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME'; + + // Make the request + const response = Chat.Spaces.Messages.get(name); + + // Handle the response + console.log(response); +} +// [END chat_get_message_user_cred] + +// [START chat_get_space_app_cred] +/** + * This sample shows how to get space with app credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' + * used by service accounts. + */ +function getSpaceAppCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here + const name = 'spaces/SPACE_NAME'; + const parameters = {}; + + // Make the request + const response = Chat.Spaces.get(name, parameters, getHeaderWithAppCredentials()); + + // Handle the response + console.log(response); +} +// [END chat_get_space_app_cred] + +// [START chat_get_space_user_cred] +/** + * This sample shows how to get space with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces.readonly' + * referenced in the manifest file (appsscript.json). + */ +function getSpaceUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here + const name = 'spaces/SPACE_NAME'; + + // Make the request + const response = Chat.Spaces.get(name); + + // Handle the response + console.log(response); +} +// [END chat_get_space_user_cred] + +// [START chat_list_memberships_app_cred] +/** + * This sample shows how to list memberships with app credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' + * used by service accounts. + */ +function listMembershipsAppCred() { +// Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here + const parent = 'spaces/SPACE_NAME'; + // Filter membership by type (HUMAN or BOT) or role (ROLE_MEMBER or + // ROLE_MANAGER) + const filter = 'member.type = "HUMAN"'; + + // Iterate through the response pages using page tokens + let responsePage; + let pageToken = null; + do { + // Request response pages + responsePage = Chat.Spaces.Members.list(parent, { + filter: filter, + pageSize: 10, + pageToken: pageToken + }, getHeaderWithAppCredentials()); + // Handle response pages + if (responsePage.memberships) { + responsePage.memberships.forEach((membership) => console.log(membership)); + } + // Update the page token to the next one + pageToken = responsePage.nextPageToken; + } while (pageToken); +} +// [END chat_list_memberships_app_cred] + +// [START chat_list_memberships_user_cred] +/** + * This sample shows how to list memberships with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.memberships.readonly' + * referenced in the manifest file (appsscript.json). + */ +function listMembershipsUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here + const parent = 'spaces/SPACE_NAME'; + // Filter membership by type (HUMAN or BOT) or role (ROLE_MEMBER or + // ROLE_MANAGER) + const filter = 'member.type = "HUMAN"'; + + // Iterate through the response pages using page tokens + let responsePage; + let pageToken = null; + do { + // Request response pages + responsePage = Chat.Spaces.Members.list(parent, { + filter: filter, + pageSize: 10, + pageToken: pageToken + }); + // Handle response pages + if (responsePage.memberships) { + responsePage.memberships.forEach((membership) => console.log(membership)); + } + // Update the page token to the next one + pageToken = responsePage.nextPageToken; + } while (pageToken); +} +// [END chat_list_memberships_user_cred] + +// [START chat_list_messages_user_cred] +/** + * This sample shows how to list messages with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.readonly' + * referenced in the manifest file (appsscript.json). + */ +function listMessagesUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here + const parent = 'spaces/SPACE_NAME'; + + // Iterate through the response pages using page tokens + let responsePage; + let pageToken = null; + do { + // Request response pages + responsePage = Chat.Spaces.Messages.list(parent, { + pageSize: 10, + pageToken: pageToken + }); + // Handle response pages + if (responsePage.messages) { + responsePage.messages.forEach((message) => console.log(message)); + } + // Update the page token to the next one + pageToken = responsePage.nextPageToken; + } while (pageToken); +} +// [END chat_list_messages_user_cred] + +// [START chat_list_spaces_app_cred] +/** + * This sample shows how to list spaces with app credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' + * used by service accounts. + */ +function listSpacesAppCred() { + // Initialize request argument(s) + // Filter spaces by space type (SPACE or GROUP_CHAT or DIRECT_MESSAGE) + const filter = 'space_type = "SPACE"'; + + // Iterate through the response pages using page tokens + let responsePage; + let pageToken = null; + do { + // Request response pages + responsePage = Chat.Spaces.list({ + filter: filter, + pageSize: 10, + pageToken: pageToken + }, getHeaderWithAppCredentials()); + // Handle response pages + if (responsePage.spaces) { + responsePage.spaces.forEach((space) => console.log(space)); + } + // Update the page token to the next one + pageToken = responsePage.nextPageToken; + } while (pageToken); +} +// [END chat_list_spaces_app_cred] + +// [START chat_list_spaces_user_cred] +/** + * This sample shows how to list spaces with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces.readonly' + * referenced in the manifest file (appsscript.json). + */ +function listSpacesUserCred() { + // Initialize request argument(s) + // Filter spaces by space type (SPACE or GROUP_CHAT or DIRECT_MESSAGE) + const filter = 'space_type = "SPACE"'; + + // Iterate through the response pages using page tokens + let responsePage; + let pageToken = null; + do { + // Request response pages + responsePage = Chat.Spaces.list({ + filter: filter, + pageSize: 10, + pageToken: pageToken + }); + // Handle response pages + if (responsePage.spaces) { + responsePage.spaces.forEach((space) => console.log(space)); + } + // Update the page token to the next one + pageToken = responsePage.nextPageToken; + } while (pageToken); +} +// [END chat_list_spaces_user_cred] + +// [START chat_update_message_app_cred] +/** + * This sample shows how to update a message with app credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' + * used by service accounts. + */ +function updateMessageAppCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here + const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME'; + const message = { + text: 'Updated with app credential!' + }; + // The field paths to update. Separate multiple values with commas or use + // `*` to update all field paths. + const updateMask = 'text'; + + // Make the request + const response = Chat.Spaces.Messages.patch(message, name, { + updateMask: updateMask + }, getHeaderWithAppCredentials()); + + // Handle the response + console.log(response); +} +// [END chat_update_message_app_cred] + +// [START chat_update_message_user_cred] +/** + * This sample shows how to update a message with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages' + * referenced in the manifest file (appsscript.json). + */ +function updateMessageUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here + const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME'; + const message = { + text: 'Updated with user credential!' + }; + // The field paths to update. Separate multiple values with commas or use + // `*` to update all field paths. + const updateMask = 'text'; + + // Make the request + const response = Chat.Spaces.Messages.patch(message, name, { + updateMask: updateMask + }); + + // Handle the response + console.log(response); +} +// [END chat_update_message_user_cred] + +// [START chat_update_space_user_cred] +/** + * This sample shows how to update a space with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces' + * referenced in the manifest file (appsscript.json). + */ +function updateSpaceUserCred() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here + const name = 'spaces/SPACE_NAME'; + const space = { + displayName: 'New space display name' + }; + // The field paths to update. Separate multiple values with commas or use + // `*` to update all field paths. + const updateMask = 'displayName'; + + // Make the request + const response = Chat.Spaces.patch(space, name, { + updateMask: updateMask + }); + + // Handle the response + console.log(response); +} +// [END chat_update_space_user_cred] diff --git a/chat/advanced-service/README.md b/chat/advanced-service/README.md new file mode 100644 index 000000000..1c6ad18e7 --- /dev/null +++ b/chat/advanced-service/README.md @@ -0,0 +1,24 @@ +# Google Chat API - Advanced Service samples + +## Set up + +1. Follow the Google Chat app quickstart for Apps Script + https://developers.google.com/workspace/chat/quickstart/apps-script-app and + open the resulting Apps Script project in a web browser. + +1. Override the Apps Script project contents with the files `appsscript.json`, + `AppAuthenticationUtils.gs`, and `Main.gs` from this code sample directory. + +1. To run samples that use app credentials: + + 1. Create a service account. For steps, see + [Authenticate as a Google Chat app](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). + + 1. Open `AppAuthenticationUtils.gs` and set the value of the constant `SERVICE_ACCOUNT` to + the private key's JSON of the service account that you created in the previous step. + +## Run + +In the `Main.gs` file, each function contains a sample that calls a Chat API method +using either app or user authentication. To run one of the samples, select the name +of the function from the dropdown menu and click `Run`. diff --git a/chat/advanced-service/appsscript.json b/chat/advanced-service/appsscript.json new file mode 100644 index 000000000..4fbe0a6f4 --- /dev/null +++ b/chat/advanced-service/appsscript.json @@ -0,0 +1,28 @@ +{ + "timeZone": "America/New_York", + "exceptionLogging": "STACKDRIVER", + "runtimeVersion": "V8", + "oauthScopes": [ + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly", + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.app", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.create", + "https://www.googleapis.com/auth/chat.messages.readonly" + ], + "chat": {}, + "dependencies": { + "enabledAdvancedServices": [{ + "userSymbol": "Chat", + "version": "v1", + "serviceId": "chat" + }], + "libraries": [{ + "userSymbol": "OAuth2", + "version": "43", + "libraryId": "1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF" + }] + } +} From 8102759813e0a44d3d65d52724d50b5b3b33776d Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Wed, 21 Aug 2024 13:11:10 -0400 Subject: [PATCH 06/43] feat: update GAPIC samples to be featured in create message guide (#482) * feat: update GAPIC samples to be featured in create message guide * Fix style --------- Co-authored-by: pierrick --- chat/advanced-service/Main.gs | 85 ++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 36 deletions(-) diff --git a/chat/advanced-service/Main.gs b/chat/advanced-service/Main.gs index ab1b2fab1..01ad85d41 100644 --- a/chat/advanced-service/Main.gs +++ b/chat/advanced-service/Main.gs @@ -91,41 +91,47 @@ function createMessageAppCred() { // TODO(developer): Replace SPACE_NAME here. const parent = 'spaces/SPACE_NAME'; const message = { - text: 'Hello with app credential!' - }; - const parameters = {}; - - // Make the request - const response = Chat.Spaces.Messages.create( - message, parent, parameters, getHeaderWithAppCredentials() - ); - - // Handle the response - console.log(response); -} -// [END chat_create_message_app_cred] - -// [START chat_create_message_app_cred_with_cards] -/** - * This sample shows how to create message with a card attached with app credential - * - * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot' - * used by service accounts. - */ -function createMessageAppCredWithCards() { - // Initialize request argument(s) - // TODO(developer): Replace SPACE_NAME here. - const parent = 'spaces/SPACE_NAME'; - const message = { - text: 'Hello with app credential!', - cardsV2: [{ - cardId: 'card-id', - card: { - header: { - title: 'And with a card!', + text: '👋🌎 Hello world! I created this message by calling ' + + 'the Chat API\'s `messages.create()` method.', + cardsV2 : [{ card: { + header: { + title: 'About this message', + imageUrl: 'https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/info/default/24px.svg' + }, + sections: [{ + header: 'Contents', + widgets: [{ textParagraph: { + text: '🔡 Text which can include ' + + 'hyperlinks 🔗, emojis 😄🎉, and @mentions 🗣️.' + }}, { textParagraph: { + text: '🖼️ A card to display visual elements' + + 'and request information such as text 🔤, ' + + 'dates and times 📅, and selections ☑️.' + }}, { textParagraph: { + text: '👉🔘 An accessory widget which adds ' + + 'a button to the bottom of a message.' + }} + ]}, { + header: "What's next", + collapsible: true, + widgets: [{ textParagraph: { + text: "❤️ Add a reaction." + }}, { textParagraph: { + text: "🔄 Update " + + "or ❌ delete " + + "the message." + } + }] } - } - }] + ] + }}], + accessoryWidgets: [{ buttonList: { buttons: [{ + text: 'View documentation', + icon: { materialIcon: { name: 'link' }}, + onClick: { openLink: { + url: 'https://developers.google.com/workspace/chat/create-messages' + }} + }]}}] }; const parameters = {}; @@ -137,7 +143,7 @@ function createMessageAppCredWithCards() { // Handle the response console.log(response); } -// [END chat_create_message_app_cred_with_cards] +// [END chat_create_message_app_cred] // [START chat_create_message_user_cred] /** @@ -151,7 +157,14 @@ function createMessageUserCred() { // TODO(developer): Replace SPACE_NAME here. const parent = 'spaces/SPACE_NAME'; const message = { - text: 'Hello with user credential!' + text: '👋🌎 Hello world!' + + 'Text messages can contain things like:\n\n' + + '* Hyperlinks 🔗\n' + + '* Emojis 😄🎉\n' + + '* Mentions of other Chat users `@` \n\n' + + 'For details, see the ' + + '.' }; // Make the request From 3d7d7f77defbca487eca2ff288694204632c9103 Mon Sep 17 00:00:00 2001 From: Steve Bazyl Date: Fri, 23 Aug 2024 11:50:58 -0600 Subject: [PATCH 07/43] Fix processing listLabeels response (items -> labels) --- advanced/driveLabels.gs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/advanced/driveLabels.gs b/advanced/driveLabels.gs index 1e4ffa447..004a35089 100644 --- a/advanced/driveLabels.gs +++ b/advanced/driveLabels.gs @@ -69,9 +69,9 @@ function listLabelsOnDriveItem(fileId) { try { const appliedLabels = Drive.Files.listLabels(fileId); - console.log('%d label(s) are applied to this file', appliedLabels.items.length); + console.log('%d label(s) are applied to this file', appliedLabels.labels.length); - appliedLabels.items.forEach((appliedLabel) => { + appliedLabels.labels.forEach((appliedLabel) => { // Resource name of the label at the applied revision. const labelName = 'labels/' + appliedLabel.id + '@' + appliedLabel.revisionId; From 5828c323d5f2fe019917066cc0a07b9d1d9acf7d Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Tue, 24 Sep 2024 12:21:27 -0600 Subject: [PATCH 08/43] fix: update picker example (#486) - fix for drive.file scope by adding .setAppId() - make a call to Drive.Files.get() to get the file metadata after picking the file - render the full picker response with the drive file response - add manifest to the picker example to force the picker to use the drive.file scope --- picker/README.md | 11 +- picker/appsscript.json | 18 ++++ picker/code.gs | 41 +++---- picker/dialog.html | 237 ++++++++++++++++++++++++++--------------- 4 files changed, 189 insertions(+), 118 deletions(-) create mode 100644 picker/appsscript.json diff --git a/picker/README.md b/picker/README.md index d8dfd7b26..4efb72ea3 100644 --- a/picker/README.md +++ b/picker/README.md @@ -1,12 +1,5 @@ # File Picker Sample -This sample shows how to create a "file-open" dialog in Google Sheets that -allows the user to select a file from their Drive. It does so by loading -[Google Picker](https://developers.google.com/picker/), a standard G Suite -client-side API for this purpose. More information is available in the Apps -Script guide -[Dialogs and Sidebars in Google Workspace Documents](https://developers.google.com/apps-script/guides/dialogs#file-open_dialogs). +This sample shows how to create a "file-open" dialog in Google Sheets thatallows the user to select a file from their Drive. It does so by loading [Google Picker](https://developers.google.com/picker/), for this purpose. More information is available in the Apps Script guide [Dialogs and Sidebars in Google Workspace Documents](https://developers.google.com/apps-script/guides/dialogs#file-open_dialogs). -Note that this sample expects to be -[bound](https://developers.google.com/apps-script/guides/bound) -to a spreadsheet. +Note that this sample expects to be [bound](https://developers.google.com/apps-script/guides/bound) to a spreadsheet. diff --git a/picker/appsscript.json b/picker/appsscript.json new file mode 100644 index 000000000..bc86e7be2 --- /dev/null +++ b/picker/appsscript.json @@ -0,0 +1,18 @@ +{ + "timeZone": "America/Los_Angeles", + "exceptionLogging": "STACKDRIVER", + "runtimeVersion": "V8", + "oauthScopes": [ + "https://www.googleapis.com/auth/script.container.ui", + "https://www.googleapis.com/auth/drive.file" + ], + "dependencies": { + "enabledAdvancedServices": [ + { + "userSymbol": "Drive", + "version": "v3", + "serviceId": "drive" + } + ] + } + } \ No newline at end of file diff --git a/picker/code.gs b/picker/code.gs index e373d62d9..3346d4214 100644 --- a/picker/code.gs +++ b/picker/code.gs @@ -19,14 +19,10 @@ * Creates a custom menu in Google Sheets when the spreadsheet opens. */ function onOpen() { - try { - SpreadsheetApp.getUi().createMenu('Picker') - .addItem('Start', 'showPicker') - .addToUi(); - } catch (e) { - // TODO (Developer) - Handle exception - console.log('Failed with error: %s', e.error); - } + SpreadsheetApp.getUi() + .createMenu("Picker") + .addItem("Start", "showPicker") + .addToUi(); } /** @@ -34,16 +30,17 @@ function onOpen() { * JavaScript code for the Google Picker API. */ function showPicker() { - try { - const html = HtmlService.createHtmlOutputFromFile('dialog.html') - .setWidth(600) - .setHeight(425) - .setSandboxMode(HtmlService.SandboxMode.IFRAME); - SpreadsheetApp.getUi().showModalDialog(html, 'Select a file'); - } catch (e) { - // TODO (Developer) - Handle exception - console.log('Failed with error: %s', e.error); - } + const html = HtmlService.createHtmlOutputFromFile("dialog.html") + .setWidth(800) + .setHeight(600) + .setSandboxMode(HtmlService.SandboxMode.IFRAME); + SpreadsheetApp.getUi().showModalDialog(html, "Select a file"); +} +/** + * Checks that the file can be accessed. + */ +function getFile(fileId) { + return Drive.Files.get(fileId, { fields: "*" }); } /** @@ -57,12 +54,6 @@ function showPicker() { * @return {string} The user's OAuth 2.0 access token. */ function getOAuthToken() { - try { - DriveApp.getRootFolder(); - return ScriptApp.getOAuthToken(); - } catch (e) { - // TODO (Developer) - Handle exception - console.log('Failed with error: %s', e.error); - } + return ScriptApp.getOAuthToken(); } // [END picker_code] diff --git a/picker/dialog.html b/picker/dialog.html index 4ba2aaa7d..1ade5a4d9 100644 --- a/picker/dialog.html +++ b/picker/dialog.html @@ -13,106 +13,175 @@ - - - + - /** - * Displays an error message within the #result element. - * - * @param {string} message The error message to display. - */ - function showError(message) { - document.getElementById('result').innerHTML = 'Error: ' + message; - } - - - -
- -

-
- - + +
+ +
+
+ + From 2a76335ed375919f5557ba4d52d75534cd18d3ee Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Tue, 24 Sep 2024 16:23:52 -0600 Subject: [PATCH 09/43] style: rm unused template string --- picker/dialog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picker/dialog.html b/picker/dialog.html index 1ade5a4d9..9d85af9eb 100644 --- a/picker/dialog.html +++ b/picker/dialog.html @@ -146,7 +146,7 @@ content: JSON.stringify(data, null, 2), }, { - title: `Drive.Files.Get response`, + title: "Drive.Files.Get response", content: JSON.stringify(driveFilesGetResponse, null, 2), }, ]) { From 7a8eca76eed9a4a1b62fb3e4b0759e394f1f45b5 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:45:43 -0400 Subject: [PATCH 10/43] feat: add create membership for group code sample (#488) Co-authored-by: pierrick --- chat/advanced-service/Main.gs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/chat/advanced-service/Main.gs b/chat/advanced-service/Main.gs index 01ad85d41..f9f7876d0 100644 --- a/chat/advanced-service/Main.gs +++ b/chat/advanced-service/Main.gs @@ -79,6 +79,33 @@ function createMembershipUserCredForApp() { } // [END chat_create_membership_user_cred_for_app] +// [START chat_create_membership_user_cred_for_group] +/** + * This sample shows how to create membership with user credential for a group + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.memberships' + * referenced in the manifest file (appsscript.json). + */ +function createMembershipUserCredForGroup() { + // Initialize request argument(s) + // TODO(developer): Replace SPACE_NAME here. + const parent = 'spaces/SPACE_NAME'; + const membership = { + groupMember: { + // TODO(developer): Replace GROUP_NAME here + name: 'groups/GROUP_NAME' + } + }; + + // Make the request + const response = Chat.Spaces.Members.create(membership, parent); + + // Handle the response + console.log(response); +} +// [END chat_create_membership_user_cred_for_group] + + // [START chat_create_message_app_cred] /** * This sample shows how to create message with app credential From 0b0d7287b334c5ce0332c4255e70850918320cb3 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:08:29 -0400 Subject: [PATCH 11/43] feat: add create and set up space code samples (#489) Co-authored-by: pierrick --- chat/advanced-service/Main.gs | 55 +++++++++++++++++++++++++++ chat/advanced-service/appsscript.json | 1 + 2 files changed, 56 insertions(+) diff --git a/chat/advanced-service/Main.gs b/chat/advanced-service/Main.gs index f9f7876d0..c9c57a009 100644 --- a/chat/advanced-service/Main.gs +++ b/chat/advanced-service/Main.gs @@ -345,6 +345,29 @@ function createMessageUserCredThreadName() { } // [END chat_create_message_user_cred_thread_name] +// [START chat_create_space_user_cred] +/** + * This sample shows how to create space with user credential + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces.create' + * referenced in the manifest file (appsscript.json). + */ +function createSpaceUserCred() { + // Initialize request argument(s) + const space = { + spaceType: 'SPACE', + // TODO(developer): Replace DISPLAY_NAME here + displayName: 'DISPLAY_NAME' + }; + + // Make the request + const response = Chat.Spaces.create(space); + + // Handle the response + console.log(response); +} +// [END chat_create_space_user_cred] + // [START chat_delete_message_app_cred] /** * This sample shows how to delete a message with app credential @@ -674,6 +697,38 @@ function listSpacesUserCred() { } // [END chat_list_spaces_user_cred] +// [START chat_set_up_space_user_cred] +/** + * This sample shows how to set up a named space with one initial member with + * user credential. + * + * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces.create' + * referenced in the manifest file (appsscript.json). + */ +function setUpSpaceUserCred() { + // Initialize request argument(s) + const space = { + spaceType: 'SPACE', + // TODO(developer): Replace DISPLAY_NAME here + displayName: 'DISPLAY_NAME' + }; + const memberships = [{ + member: { + // TODO(developer): Replace USER_NAME here + name: 'users/USER_NAME', + // User type for the membership + type: 'HUMAN' + } + }]; + + // Make the request + const response = Chat.Spaces.setup({ space: space, memberships: memberships }); + + // Handle the response + console.log(response); +} +// [END chat_set_up_space_user_cred] + // [START chat_update_message_app_cred] /** * This sample shows how to update a message with app credential diff --git a/chat/advanced-service/appsscript.json b/chat/advanced-service/appsscript.json index 4fbe0a6f4..7f1d4d24f 100644 --- a/chat/advanced-service/appsscript.json +++ b/chat/advanced-service/appsscript.json @@ -4,6 +4,7 @@ "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.create", "https://www.googleapis.com/auth/chat.spaces.readonly", "https://www.googleapis.com/auth/chat.memberships", "https://www.googleapis.com/auth/chat.memberships.app", From f9a39aff5c5bca88d4747798dc2765acadcbd107 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Thu, 3 Oct 2024 13:49:56 -0400 Subject: [PATCH 12/43] feat: update message with app creds (#490) Co-authored-by: pierrick --- chat/advanced-service/Main.gs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/chat/advanced-service/Main.gs b/chat/advanced-service/Main.gs index c9c57a009..b029ef102 100644 --- a/chat/advanced-service/Main.gs +++ b/chat/advanced-service/Main.gs @@ -741,11 +741,15 @@ function updateMessageAppCred() { // TODO(developer): Replace SPACE_NAME and MESSAGE_NAME here const name = 'spaces/SPACE_NAME/messages/MESSAGE_NAME'; const message = { - text: 'Updated with app credential!' + text: 'Text updated with app credential!', + cardsV2 : [{ card: { header: { + title: 'Card updated with app credential!', + imageUrl: 'https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/info/default/24px.svg' + }}}] }; // The field paths to update. Separate multiple values with commas or use // `*` to update all field paths. - const updateMask = 'text'; + const updateMask = 'text,cardsV2'; // Make the request const response = Chat.Spaces.Messages.patch(message, name, { From 3a18325ffe525012eecd8f344fb0161a705a8444 Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Wed, 16 Oct 2024 09:55:40 -0600 Subject: [PATCH 13/43] fix: advanced docs params after id (#495) --- advanced/docs.gs | 2 +- docs/quickstart/quickstart.gs | 11 ++--------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/advanced/docs.gs b/advanced/docs.gs index e760e2dd9..ee4e7e191 100644 --- a/advanced/docs.gs +++ b/advanced/docs.gs @@ -144,7 +144,7 @@ function insertAndStyleText(documentId, text) { function readFirstParagraph(documentId) { try { // Get the document using document ID - const document = Docs.Documents.get({'includeTabsContent': true}, documentId); + const document = Docs.Documents.get(documentId, {'includeTabsContent': true}); const firstTab = document.tabs[0]; const bodyElements = firstTab.documentTab.body.content; for (let i = 0; i < bodyElements.length; i++) { diff --git a/docs/quickstart/quickstart.gs b/docs/quickstart/quickstart.gs index 605cfe759..5ef105882 100644 --- a/docs/quickstart/quickstart.gs +++ b/docs/quickstart/quickstart.gs @@ -21,14 +21,7 @@ */ function printDocTitle() { const documentId = '195j9eDD3ccgjQRttHhJPymLJUCOUjs-jmwTrekvdjFE'; - try { - // Get the document using document id - const doc = Docs.Documents.get({'includeTabsContent': true}, documentId); - // Log the title of document. - console.log('The title of the doc is: %s', doc.title); - } catch (err) { - // TODO (developer) - Handle exception from Docs API - console.log('Failed to found document with an error %s', err.message); - } + const doc = Docs.Documents.get(documentId, {'includeTabsContent': true}); + console.log(`The title of the doc is: ${doc.title}`); } // [END docs_quickstart] From 984736807ae7734f428ea0b907d90c6881ceda34 Mon Sep 17 00:00:00 2001 From: Chanel Greco Date: Thu, 24 Oct 2024 18:23:04 +0200 Subject: [PATCH 14/43] =?UTF-8?q?Add=20new=20sample=20that=20is=20for=20a?= =?UTF-8?q?=20Google=20Workspace=20Add-on=20that=20adds=20sentim=E2=80=A6?= =?UTF-8?q?=20(#496)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add new sample that is for a Google Workspace Add-on that adds sentiment analysis capabilities to Gmail. * Applied changes are suggested. * Deleted console.log statement --- gmail-sentiment-analysis/Cards.gs | 67 ++++++++++++++++ gmail-sentiment-analysis/Code.gs | 24 ++++++ gmail-sentiment-analysis/Gmail.gs | 49 ++++++++++++ gmail-sentiment-analysis/README.md | 31 ++++++++ gmail-sentiment-analysis/Vertex.gs | 97 ++++++++++++++++++++++++ gmail-sentiment-analysis/appsscript.json | 27 +++++++ 6 files changed, 295 insertions(+) create mode 100644 gmail-sentiment-analysis/Cards.gs create mode 100644 gmail-sentiment-analysis/Code.gs create mode 100644 gmail-sentiment-analysis/Gmail.gs create mode 100644 gmail-sentiment-analysis/README.md create mode 100644 gmail-sentiment-analysis/Vertex.gs create mode 100644 gmail-sentiment-analysis/appsscript.json diff --git a/gmail-sentiment-analysis/Cards.gs b/gmail-sentiment-analysis/Cards.gs new file mode 100644 index 000000000..566c1ca47 --- /dev/null +++ b/gmail-sentiment-analysis/Cards.gs @@ -0,0 +1,67 @@ +/* +Copyright 2024 Google LLC + +Licensed 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 + + https://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. +*/ + + +/** + * Builds the card for to display in the sidepanel of gmail. + * @return {CardService.Card} The card to show to the user. + */ + +function buildCard_GmailHome(notifyOk=false){ + const imageUrl ='https://icons.iconarchive.com/icons/roundicons/100-free-solid/48/spy-icon.png'; + const image = CardService.newImage() + .setImageUrl(imageUrl); + + const cardHeader = CardService.newCardHeader() + .setImageUrl(imageUrl) + .setImageStyle(CardService.ImageStyle.CIRCLE) + .setTitle("Analyze your GMail"); + + const action = CardService.newAction() + .setFunctionName('analyzeSentiment'); + const button = CardService.newTextButton() + .setText('Identify angry customers') + .setOnClickAction(action) + .setTextButtonStyle(CardService.TextButtonStyle.FILLED); + const buttonSet = CardService.newButtonSet() + .addButton(button); + + const section = CardService.newCardSection() + .setHeader("Emails sentiment analysis") + .addWidget(buttonSet); + + const card = CardService.newCardBuilder() + .setHeader(cardHeader) + .addSection(section); + +/** + * This builds the card that contains the footer that informs + * the user about the successful execution of the Add-on. + */ + +if(notifyOk==true){ + let fixedFooter = CardService.newFixedFooter() + .setPrimaryButton( + CardService.newTextButton() + .setText("Analysis complete") + .setOnClickAction( + CardService.newAction() + .setFunctionName( + "buildCard_GmailHome"))); + card.setFixedFooter(fixedFooter); +} + return card.build(); +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/Code.gs b/gmail-sentiment-analysis/Code.gs new file mode 100644 index 000000000..7b353e735 --- /dev/null +++ b/gmail-sentiment-analysis/Code.gs @@ -0,0 +1,24 @@ +/* +Copyright 2024 Google LLC + +Licensed 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 + + https://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. +*/ + +/** + * Callback for rendering the homepage card. + * @return {CardService.Card} The card to show to the user. + */ +function onHomepage(e) { + return buildCard_GmailHome(); +} + diff --git a/gmail-sentiment-analysis/Gmail.gs b/gmail-sentiment-analysis/Gmail.gs new file mode 100644 index 000000000..1bf87b1a9 --- /dev/null +++ b/gmail-sentiment-analysis/Gmail.gs @@ -0,0 +1,49 @@ +/* +Copyright 2024 Google LLC + +Licensed 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 + + https://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. +*/ + +/** + * Callback for initiating the sentiment analysis. + * @return {CardService.Card} The card to show to the user. + */ + +function analyzeSentiment(){ + emailSentiment(); + return buildCard_GmailHome(true); +} + +/** + * Gets the last 10 threads in the inbox and the corresponding messages. + * Fetches the label that should be applied to negative messages. + * The processSentiment is called on each message + * and tested with RegExp to check for a negative answer from the model + */ + +function emailSentiment() { + const threads = GmailApp.getInboxThreads(0, 10); + const msgs = GmailApp.getMessagesForThreads(threads); + const label_upset = GmailApp.getUserLabelByName("UPSET TONE 😡"); + let currentPrediction; + + for (let i = 0 ; i < msgs.length; i++) { + for (let j = 0; j < msgs[i].length; j++) { + let emailText = msgs[i][j].getPlainBody(); + currentPrediction = processSentiment(emailText); + if(currentPrediction === true){ + label_upset.addToThread(msgs[i][j].getThread()); + } + } + } +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/README.md b/gmail-sentiment-analysis/README.md new file mode 100644 index 000000000..1638b0977 --- /dev/null +++ b/gmail-sentiment-analysis/README.md @@ -0,0 +1,31 @@ +# Gmail sentiment analysis with Vertex AI + +## Project Description + +Google Workspace Add-on that extends Gmail and adds sentiment analysis capabilities. + +## Prerequisites + +* Google Cloud Project (aka Standard Cloud Project for Apps Script) with billing enabled + +## Set up your environment + +1. Create a Cloud Project + 1. Enable the Vertex AI API + 1. Create a Service Account and grant the role `Vertex AI User` + 1. Create a private key with type JSON. This will download the JSON file for use in the next section. +1. Open an Apps Script Project bound to a Google Sheets Spreadsheet + 1. From Project Settings, change project to GCP project number of Cloud Project from step 1 + 1. Add a Script Property. Enter `service_account_key` as the property name and paste the JSON key from the service account as the value. +1. Add OAuth2 v43 Apps Script Library using the ID `1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF`. +1. Add the project code to Apps Script + +## Usage + +1. Create a label in Gmail with this exact text and emojy (case sensitive!): UPSET TONE 😡 +1. In Gmail, click on the Productivity toolbox icon (icon of a spy) in the sidepanel. +1. The sidepanel will open up. Grant the Add-on autorization to run. +1. The Add-on will load. Click on the blue button "Identify angry customers." +1. Close the Add-on by clicking on the X in the top right corner. +1. It can take a couple of minutes until the label is applied to the messages that have a negative tone. +1. If you don't want to wait until the labels are added, you can refresh the browser. \ No newline at end of file diff --git a/gmail-sentiment-analysis/Vertex.gs b/gmail-sentiment-analysis/Vertex.gs new file mode 100644 index 000000000..f6299ecde --- /dev/null +++ b/gmail-sentiment-analysis/Vertex.gs @@ -0,0 +1,97 @@ +/* +Copyright 2024 Google LLC + +Licensed 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 + + https://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. +*/ + +const PROJECT_ID = [ADD YOUR GCP PROJECT ID HERE]; +const VERTEX_AI_LOCATION = 'europe-west2'; +const MODEL_ID = 'gemini-1.5-pro-002'; +const SERVICE_ACCOUNT_KEY = PropertiesService.getScriptProperties().getProperty('service_account_key'); + +/** + * Packages prompt and necessary settings, then sends a request to + * Vertex API. + * A check is performed to see if the response from Vertex AI contains FALSE as a value. + * Returns the outcome of that check which is a boolean. + * + * @param emailText - Email message that is sent to the model. + */ + +function processSentiment(emailText) { + const prompt = `Analyze the following message: ${emailText}. If the sentiment of this message is negative, answer with FALSE. If the sentiment of this message is neutral or positive, answer with TRUE. Do not use any other words than the ones requested in this prompt as a response!`; + + const request = { + "contents": [{ + "role": "user", + "parts": [{ + "text": prompt + }] + }], + "generationConfig": { + "temperature": 0.9, + "maxOutputTokens": 1024, + + } + }; + + const credentials = credentialsForVertexAI(); + + const fetchOptions = { + method: 'POST', + headers: { + 'Authorization': `Bearer ${credentials.accessToken}` + }, + contentType: 'application/json', + muteHttpExceptions: true, + payload: JSON.stringify(request) + } + + const url = `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/` + + `locations/${VERTEX_AI_LOCATION}/publishers/google/models/${MODEL_ID}:generateContent` + + const response = UrlFetchApp.fetch(url, fetchOptions); + const payload = JSON.parse(response.getContentText()); + + const regex = /FALSE/; + + return regex.test(payload.candidates[0].content.parts[0].text); + +} + +/** + * Gets credentials required to call Vertex API using a Service Account. + * Requires use of Service Account Key stored with project + * + * @return {!Object} Containing the Cloud Project Id and the access token. + */ + +function credentialsForVertexAI() { + const credentials = SERVICE_ACCOUNT_KEY; + if (!credentials) { + throw new Error("service_account_key script property must be set."); + } + + const parsedCredentials = JSON.parse(credentials); + + const service = OAuth2.createService("Vertex") + .setTokenUrl('https://oauth2.googleapis.com/token') + .setPrivateKey(parsedCredentials['private_key']) + .setIssuer(parsedCredentials['client_email']) + .setPropertyStore(PropertiesService.getScriptProperties()) + .setScope("https://www.googleapis.com/auth/cloud-platform"); + return { + projectId: parsedCredentials['project_id'], + accessToken: service.getAccessToken(), + } +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/appsscript.json b/gmail-sentiment-analysis/appsscript.json new file mode 100644 index 000000000..80b231e9a --- /dev/null +++ b/gmail-sentiment-analysis/appsscript.json @@ -0,0 +1,27 @@ +{ + "timeZone": "Europe/Madrid", + "dependencies": { + "libraries": [ + { + "userSymbol": "OAuth2", + "version": "43", + "libraryId": "1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF" + } + ] + }, + "addOns": { + "common": { + "name": "Productivity toolbox", + "logoUrl": "https://icons.iconarchive.com/icons/roundicons/100-free-solid/64/spy-icon.png", + "useLocaleFromApp": true + }, + "gmail": { + "homepageTrigger": { + "runFunction": "onHomepage", + "enabled": true + } + } + }, + "exceptionLogging": "STACKDRIVER", + "runtimeVersion": "V8" +} \ No newline at end of file From 1e5f10a12efd3655c29a3e96feb7570ef4534d88 Mon Sep 17 00:00:00 2001 From: Chanel Greco Date: Thu, 24 Oct 2024 18:35:37 +0200 Subject: [PATCH 15/43] Put gmail sentiment analysis into ai folder. --- ai/gmail-sentiment-analysis/Cards.gs | 67 ++++++++++++++ ai/gmail-sentiment-analysis/Code.gs | 24 +++++ ai/gmail-sentiment-analysis/Gmail.gs | 49 +++++++++++ ai/gmail-sentiment-analysis/README.md | 31 +++++++ ai/gmail-sentiment-analysis/Vertex.gs | 97 +++++++++++++++++++++ ai/gmail-sentiment-analysis/appsscript.json | 27 ++++++ 6 files changed, 295 insertions(+) create mode 100644 ai/gmail-sentiment-analysis/Cards.gs create mode 100644 ai/gmail-sentiment-analysis/Code.gs create mode 100644 ai/gmail-sentiment-analysis/Gmail.gs create mode 100644 ai/gmail-sentiment-analysis/README.md create mode 100644 ai/gmail-sentiment-analysis/Vertex.gs create mode 100644 ai/gmail-sentiment-analysis/appsscript.json diff --git a/ai/gmail-sentiment-analysis/Cards.gs b/ai/gmail-sentiment-analysis/Cards.gs new file mode 100644 index 000000000..566c1ca47 --- /dev/null +++ b/ai/gmail-sentiment-analysis/Cards.gs @@ -0,0 +1,67 @@ +/* +Copyright 2024 Google LLC + +Licensed 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 + + https://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. +*/ + + +/** + * Builds the card for to display in the sidepanel of gmail. + * @return {CardService.Card} The card to show to the user. + */ + +function buildCard_GmailHome(notifyOk=false){ + const imageUrl ='https://icons.iconarchive.com/icons/roundicons/100-free-solid/48/spy-icon.png'; + const image = CardService.newImage() + .setImageUrl(imageUrl); + + const cardHeader = CardService.newCardHeader() + .setImageUrl(imageUrl) + .setImageStyle(CardService.ImageStyle.CIRCLE) + .setTitle("Analyze your GMail"); + + const action = CardService.newAction() + .setFunctionName('analyzeSentiment'); + const button = CardService.newTextButton() + .setText('Identify angry customers') + .setOnClickAction(action) + .setTextButtonStyle(CardService.TextButtonStyle.FILLED); + const buttonSet = CardService.newButtonSet() + .addButton(button); + + const section = CardService.newCardSection() + .setHeader("Emails sentiment analysis") + .addWidget(buttonSet); + + const card = CardService.newCardBuilder() + .setHeader(cardHeader) + .addSection(section); + +/** + * This builds the card that contains the footer that informs + * the user about the successful execution of the Add-on. + */ + +if(notifyOk==true){ + let fixedFooter = CardService.newFixedFooter() + .setPrimaryButton( + CardService.newTextButton() + .setText("Analysis complete") + .setOnClickAction( + CardService.newAction() + .setFunctionName( + "buildCard_GmailHome"))); + card.setFixedFooter(fixedFooter); +} + return card.build(); +} \ No newline at end of file diff --git a/ai/gmail-sentiment-analysis/Code.gs b/ai/gmail-sentiment-analysis/Code.gs new file mode 100644 index 000000000..7b353e735 --- /dev/null +++ b/ai/gmail-sentiment-analysis/Code.gs @@ -0,0 +1,24 @@ +/* +Copyright 2024 Google LLC + +Licensed 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 + + https://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. +*/ + +/** + * Callback for rendering the homepage card. + * @return {CardService.Card} The card to show to the user. + */ +function onHomepage(e) { + return buildCard_GmailHome(); +} + diff --git a/ai/gmail-sentiment-analysis/Gmail.gs b/ai/gmail-sentiment-analysis/Gmail.gs new file mode 100644 index 000000000..1bf87b1a9 --- /dev/null +++ b/ai/gmail-sentiment-analysis/Gmail.gs @@ -0,0 +1,49 @@ +/* +Copyright 2024 Google LLC + +Licensed 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 + + https://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. +*/ + +/** + * Callback for initiating the sentiment analysis. + * @return {CardService.Card} The card to show to the user. + */ + +function analyzeSentiment(){ + emailSentiment(); + return buildCard_GmailHome(true); +} + +/** + * Gets the last 10 threads in the inbox and the corresponding messages. + * Fetches the label that should be applied to negative messages. + * The processSentiment is called on each message + * and tested with RegExp to check for a negative answer from the model + */ + +function emailSentiment() { + const threads = GmailApp.getInboxThreads(0, 10); + const msgs = GmailApp.getMessagesForThreads(threads); + const label_upset = GmailApp.getUserLabelByName("UPSET TONE 😡"); + let currentPrediction; + + for (let i = 0 ; i < msgs.length; i++) { + for (let j = 0; j < msgs[i].length; j++) { + let emailText = msgs[i][j].getPlainBody(); + currentPrediction = processSentiment(emailText); + if(currentPrediction === true){ + label_upset.addToThread(msgs[i][j].getThread()); + } + } + } +} \ No newline at end of file diff --git a/ai/gmail-sentiment-analysis/README.md b/ai/gmail-sentiment-analysis/README.md new file mode 100644 index 000000000..1638b0977 --- /dev/null +++ b/ai/gmail-sentiment-analysis/README.md @@ -0,0 +1,31 @@ +# Gmail sentiment analysis with Vertex AI + +## Project Description + +Google Workspace Add-on that extends Gmail and adds sentiment analysis capabilities. + +## Prerequisites + +* Google Cloud Project (aka Standard Cloud Project for Apps Script) with billing enabled + +## Set up your environment + +1. Create a Cloud Project + 1. Enable the Vertex AI API + 1. Create a Service Account and grant the role `Vertex AI User` + 1. Create a private key with type JSON. This will download the JSON file for use in the next section. +1. Open an Apps Script Project bound to a Google Sheets Spreadsheet + 1. From Project Settings, change project to GCP project number of Cloud Project from step 1 + 1. Add a Script Property. Enter `service_account_key` as the property name and paste the JSON key from the service account as the value. +1. Add OAuth2 v43 Apps Script Library using the ID `1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF`. +1. Add the project code to Apps Script + +## Usage + +1. Create a label in Gmail with this exact text and emojy (case sensitive!): UPSET TONE 😡 +1. In Gmail, click on the Productivity toolbox icon (icon of a spy) in the sidepanel. +1. The sidepanel will open up. Grant the Add-on autorization to run. +1. The Add-on will load. Click on the blue button "Identify angry customers." +1. Close the Add-on by clicking on the X in the top right corner. +1. It can take a couple of minutes until the label is applied to the messages that have a negative tone. +1. If you don't want to wait until the labels are added, you can refresh the browser. \ No newline at end of file diff --git a/ai/gmail-sentiment-analysis/Vertex.gs b/ai/gmail-sentiment-analysis/Vertex.gs new file mode 100644 index 000000000..f6299ecde --- /dev/null +++ b/ai/gmail-sentiment-analysis/Vertex.gs @@ -0,0 +1,97 @@ +/* +Copyright 2024 Google LLC + +Licensed 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 + + https://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. +*/ + +const PROJECT_ID = [ADD YOUR GCP PROJECT ID HERE]; +const VERTEX_AI_LOCATION = 'europe-west2'; +const MODEL_ID = 'gemini-1.5-pro-002'; +const SERVICE_ACCOUNT_KEY = PropertiesService.getScriptProperties().getProperty('service_account_key'); + +/** + * Packages prompt and necessary settings, then sends a request to + * Vertex API. + * A check is performed to see if the response from Vertex AI contains FALSE as a value. + * Returns the outcome of that check which is a boolean. + * + * @param emailText - Email message that is sent to the model. + */ + +function processSentiment(emailText) { + const prompt = `Analyze the following message: ${emailText}. If the sentiment of this message is negative, answer with FALSE. If the sentiment of this message is neutral or positive, answer with TRUE. Do not use any other words than the ones requested in this prompt as a response!`; + + const request = { + "contents": [{ + "role": "user", + "parts": [{ + "text": prompt + }] + }], + "generationConfig": { + "temperature": 0.9, + "maxOutputTokens": 1024, + + } + }; + + const credentials = credentialsForVertexAI(); + + const fetchOptions = { + method: 'POST', + headers: { + 'Authorization': `Bearer ${credentials.accessToken}` + }, + contentType: 'application/json', + muteHttpExceptions: true, + payload: JSON.stringify(request) + } + + const url = `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/` + + `locations/${VERTEX_AI_LOCATION}/publishers/google/models/${MODEL_ID}:generateContent` + + const response = UrlFetchApp.fetch(url, fetchOptions); + const payload = JSON.parse(response.getContentText()); + + const regex = /FALSE/; + + return regex.test(payload.candidates[0].content.parts[0].text); + +} + +/** + * Gets credentials required to call Vertex API using a Service Account. + * Requires use of Service Account Key stored with project + * + * @return {!Object} Containing the Cloud Project Id and the access token. + */ + +function credentialsForVertexAI() { + const credentials = SERVICE_ACCOUNT_KEY; + if (!credentials) { + throw new Error("service_account_key script property must be set."); + } + + const parsedCredentials = JSON.parse(credentials); + + const service = OAuth2.createService("Vertex") + .setTokenUrl('https://oauth2.googleapis.com/token') + .setPrivateKey(parsedCredentials['private_key']) + .setIssuer(parsedCredentials['client_email']) + .setPropertyStore(PropertiesService.getScriptProperties()) + .setScope("https://www.googleapis.com/auth/cloud-platform"); + return { + projectId: parsedCredentials['project_id'], + accessToken: service.getAccessToken(), + } +} \ No newline at end of file diff --git a/ai/gmail-sentiment-analysis/appsscript.json b/ai/gmail-sentiment-analysis/appsscript.json new file mode 100644 index 000000000..80b231e9a --- /dev/null +++ b/ai/gmail-sentiment-analysis/appsscript.json @@ -0,0 +1,27 @@ +{ + "timeZone": "Europe/Madrid", + "dependencies": { + "libraries": [ + { + "userSymbol": "OAuth2", + "version": "43", + "libraryId": "1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF" + } + ] + }, + "addOns": { + "common": { + "name": "Productivity toolbox", + "logoUrl": "https://icons.iconarchive.com/icons/roundicons/100-free-solid/64/spy-icon.png", + "useLocaleFromApp": true + }, + "gmail": { + "homepageTrigger": { + "runFunction": "onHomepage", + "enabled": true + } + } + }, + "exceptionLogging": "STACKDRIVER", + "runtimeVersion": "V8" +} \ No newline at end of file From 82f025ba867766da6efee4f9f0f5ead385b7a15a Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Thu, 16 Jan 2025 15:46:06 -0800 Subject: [PATCH 16/43] chore: Sync Gmail sentiment analyis to an Apps Script project (#510) --- gmail-sentiment-analysis/.clasp.json | 3 ++ gmail-sentiment-analysis/Cards.gs | 38 +++++++++---------- gmail-sentiment-analysis/Code.gs | 1 - gmail-sentiment-analysis/Gmail.gs | 8 ++-- gmail-sentiment-analysis/Vertex.gs | 48 +++++------------------- gmail-sentiment-analysis/appsscript.json | 22 +++++------ 6 files changed, 47 insertions(+), 73 deletions(-) create mode 100644 gmail-sentiment-analysis/.clasp.json diff --git a/gmail-sentiment-analysis/.clasp.json b/gmail-sentiment-analysis/.clasp.json new file mode 100644 index 000000000..8206fa91c --- /dev/null +++ b/gmail-sentiment-analysis/.clasp.json @@ -0,0 +1,3 @@ +{ + "scriptId": "1Z2gfvr0oYn68ppDtQbv0qIuKKVWhvwOTr-gCE0GFKVjNk8NDlpfJAGAr" +} diff --git a/gmail-sentiment-analysis/Cards.gs b/gmail-sentiment-analysis/Cards.gs index 566c1ca47..6a07c735d 100644 --- a/gmail-sentiment-analysis/Cards.gs +++ b/gmail-sentiment-analysis/Cards.gs @@ -20,8 +20,8 @@ limitations under the License. * @return {CardService.Card} The card to show to the user. */ -function buildCard_GmailHome(notifyOk=false){ - const imageUrl ='https://icons.iconarchive.com/icons/roundicons/100-free-solid/48/spy-icon.png'; +function buildCard_GmailHome(notifyOk = false) { + const imageUrl = 'https://icons.iconarchive.com/icons/roundicons/100-free-solid/48/spy-icon.png'; const image = CardService.newImage() .setImageUrl(imageUrl); @@ -29,7 +29,7 @@ function buildCard_GmailHome(notifyOk=false){ .setImageUrl(imageUrl) .setImageStyle(CardService.ImageStyle.CIRCLE) .setTitle("Analyze your GMail"); - + const action = CardService.newAction() .setFunctionName('analyzeSentiment'); const button = CardService.newTextButton() @@ -47,21 +47,21 @@ function buildCard_GmailHome(notifyOk=false){ .setHeader(cardHeader) .addSection(section); -/** - * This builds the card that contains the footer that informs - * the user about the successful execution of the Add-on. - */ + /** + * This builds the card that contains the footer that informs + * the user about the successful execution of the Add-on. + */ -if(notifyOk==true){ - let fixedFooter = CardService.newFixedFooter() - .setPrimaryButton( - CardService.newTextButton() - .setText("Analysis complete") - .setOnClickAction( - CardService.newAction() - .setFunctionName( - "buildCard_GmailHome"))); - card.setFixedFooter(fixedFooter); -} + if (notifyOk == true) { + let fixedFooter = CardService.newFixedFooter() + .setPrimaryButton( + CardService.newTextButton() + .setText("Analysis complete") + .setOnClickAction( + CardService.newAction() + .setFunctionName( + "buildCard_GmailHome"))); + card.setFixedFooter(fixedFooter); + } return card.build(); -} \ No newline at end of file +} diff --git a/gmail-sentiment-analysis/Code.gs b/gmail-sentiment-analysis/Code.gs index 7b353e735..b599ca2cf 100644 --- a/gmail-sentiment-analysis/Code.gs +++ b/gmail-sentiment-analysis/Code.gs @@ -21,4 +21,3 @@ limitations under the License. function onHomepage(e) { return buildCard_GmailHome(); } - diff --git a/gmail-sentiment-analysis/Gmail.gs b/gmail-sentiment-analysis/Gmail.gs index 1bf87b1a9..7e4b3c621 100644 --- a/gmail-sentiment-analysis/Gmail.gs +++ b/gmail-sentiment-analysis/Gmail.gs @@ -19,7 +19,7 @@ limitations under the License. * @return {CardService.Card} The card to show to the user. */ -function analyzeSentiment(){ +function analyzeSentiment() { emailSentiment(); return buildCard_GmailHome(true); } @@ -37,13 +37,13 @@ function emailSentiment() { const label_upset = GmailApp.getUserLabelByName("UPSET TONE 😡"); let currentPrediction; - for (let i = 0 ; i < msgs.length; i++) { + for (let i = 0; i < msgs.length; i++) { for (let j = 0; j < msgs[i].length; j++) { let emailText = msgs[i][j].getPlainBody(); currentPrediction = processSentiment(emailText); - if(currentPrediction === true){ + if (currentPrediction === true) { label_upset.addToThread(msgs[i][j].getThread()); } } } -} \ No newline at end of file +} diff --git a/gmail-sentiment-analysis/Vertex.gs b/gmail-sentiment-analysis/Vertex.gs index f6299ecde..25d1994a3 100644 --- a/gmail-sentiment-analysis/Vertex.gs +++ b/gmail-sentiment-analysis/Vertex.gs @@ -14,10 +14,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -const PROJECT_ID = [ADD YOUR GCP PROJECT ID HERE]; +const PROJECT_ID = '[ADD YOUR GCP PROJECT ID HERE]'; const VERTEX_AI_LOCATION = 'europe-west2'; const MODEL_ID = 'gemini-1.5-pro-002'; -const SERVICE_ACCOUNT_KEY = PropertiesService.getScriptProperties().getProperty('service_account_key'); /** * Packages prompt and necessary settings, then sends a request to @@ -29,36 +28,37 @@ const SERVICE_ACCOUNT_KEY = PropertiesService.getScriptProperties().getProperty( */ function processSentiment(emailText) { - const prompt = `Analyze the following message: ${emailText}. If the sentiment of this message is negative, answer with FALSE. If the sentiment of this message is neutral or positive, answer with TRUE. Do not use any other words than the ones requested in this prompt as a response!`; + const prompt = ` + Analyze the following message: ${emailText}. + If the sentiment of this message is negative, answer with FALSE. + If the sentiment of this message is neutral or positive, answer with TRUE. + Do not use any other words than the ones requested in this prompt as a response!`; const request = { "contents": [{ "role": "user", "parts": [{ - "text": prompt + "text": prompt, }] }], "generationConfig": { "temperature": 0.9, "maxOutputTokens": 1024, - } }; - const credentials = credentialsForVertexAI(); - const fetchOptions = { method: 'POST', headers: { - 'Authorization': `Bearer ${credentials.accessToken}` + 'Authorization': `Bearer ${ScriptApp.getOAuthToken()}` }, contentType: 'application/json', muteHttpExceptions: true, - payload: JSON.stringify(request) + payload: JSON.stringify(request), } const url = `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/` - + `locations/${VERTEX_AI_LOCATION}/publishers/google/models/${MODEL_ID}:generateContent` + + `locations/${VERTEX_AI_LOCATION}/publishers/google/models/${MODEL_ID}:generateContent` const response = UrlFetchApp.fetch(url, fetchOptions); const payload = JSON.parse(response.getContentText()); @@ -66,32 +66,4 @@ function processSentiment(emailText) { const regex = /FALSE/; return regex.test(payload.candidates[0].content.parts[0].text); - } - -/** - * Gets credentials required to call Vertex API using a Service Account. - * Requires use of Service Account Key stored with project - * - * @return {!Object} Containing the Cloud Project Id and the access token. - */ - -function credentialsForVertexAI() { - const credentials = SERVICE_ACCOUNT_KEY; - if (!credentials) { - throw new Error("service_account_key script property must be set."); - } - - const parsedCredentials = JSON.parse(credentials); - - const service = OAuth2.createService("Vertex") - .setTokenUrl('https://oauth2.googleapis.com/token') - .setPrivateKey(parsedCredentials['private_key']) - .setIssuer(parsedCredentials['client_email']) - .setPropertyStore(PropertiesService.getScriptProperties()) - .setScope("https://www.googleapis.com/auth/cloud-platform"); - return { - projectId: parsedCredentials['project_id'], - accessToken: service.getAccessToken(), - } -} \ No newline at end of file diff --git a/gmail-sentiment-analysis/appsscript.json b/gmail-sentiment-analysis/appsscript.json index 80b231e9a..cf6273f63 100644 --- a/gmail-sentiment-analysis/appsscript.json +++ b/gmail-sentiment-analysis/appsscript.json @@ -1,14 +1,14 @@ { - "timeZone": "Europe/Madrid", - "dependencies": { - "libraries": [ - { - "userSymbol": "OAuth2", - "version": "43", - "libraryId": "1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF" - } - ] - }, + "timeZone": "America/Los_Angeles", + "oauthScopes": [ + "https://www.googleapis.com/auth/script.external_request", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/script.locale", + "https://www.googleapis.com/auth/gmail.addons.execute", + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.labels", + "https://www.googleapis.com/auth/gmail.modify" + ], "addOns": { "common": { "name": "Productivity toolbox", @@ -24,4 +24,4 @@ }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8" -} \ No newline at end of file +} From 9faea773065a18dfdcd1461507fa6c76c45738c4 Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:15:20 -0800 Subject: [PATCH 17/43] Update README.md (#514) --- gmail-sentiment-analysis/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gmail-sentiment-analysis/README.md b/gmail-sentiment-analysis/README.md index 1638b0977..5686c7803 100644 --- a/gmail-sentiment-analysis/README.md +++ b/gmail-sentiment-analysis/README.md @@ -20,6 +20,8 @@ Google Workspace Add-on that extends Gmail and adds sentiment analysis capabilit 1. Add OAuth2 v43 Apps Script Library using the ID `1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF`. 1. Add the project code to Apps Script +Alternatively, make a copy of this [Apps Script project](https://script.google.com/corp/home/projects/1Z2gfvr0oYn68ppDtQbv0qIuKKVWhvwOTr-gCE0GFKVjNk8NDlpfJAGAr) + ## Usage 1. Create a label in Gmail with this exact text and emojy (case sensitive!): UPSET TONE 😡 @@ -28,4 +30,4 @@ Google Workspace Add-on that extends Gmail and adds sentiment analysis capabilit 1. The Add-on will load. Click on the blue button "Identify angry customers." 1. Close the Add-on by clicking on the X in the top right corner. 1. It can take a couple of minutes until the label is applied to the messages that have a negative tone. -1. If you don't want to wait until the labels are added, you can refresh the browser. \ No newline at end of file +1. If you don't want to wait until the labels are added, you can refresh the browser. From e1bfbea5ddb87c1ff918b8e2aef8439988127a55 Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:16:08 -0800 Subject: [PATCH 18/43] chore: Update gmail sentiment sample (#513) --- gmail-sentiment-analysis/Cards.gs | 15 +++---- gmail-sentiment-analysis/Gmail.gs | 50 ++++++++++++++++-------- gmail-sentiment-analysis/Vertex.gs | 27 ++++++++----- gmail-sentiment-analysis/appsscript.json | 3 +- 4 files changed, 57 insertions(+), 38 deletions(-) diff --git a/gmail-sentiment-analysis/Cards.gs b/gmail-sentiment-analysis/Cards.gs index 6a07c735d..f0360318d 100644 --- a/gmail-sentiment-analysis/Cards.gs +++ b/gmail-sentiment-analysis/Cards.gs @@ -16,28 +16,24 @@ limitations under the License. /** - * Builds the card for to display in the sidepanel of gmail. + * Builds the card to display in the sidepanel of gmail. * @return {CardService.Card} The card to show to the user. */ function buildCard_GmailHome(notifyOk = false) { - const imageUrl = 'https://icons.iconarchive.com/icons/roundicons/100-free-solid/48/spy-icon.png'; - const image = CardService.newImage() - .setImageUrl(imageUrl); + const imageUrl = 'https://fonts.gstatic.com/s/i/googlematerialicons/dynamic_feed/v6/black-24dp/1x/gm_dynamic_feed_black_24dp.png'; const cardHeader = CardService.newCardHeader() .setImageUrl(imageUrl) .setImageStyle(CardService.ImageStyle.CIRCLE) .setTitle("Analyze your GMail"); - const action = CardService.newAction() - .setFunctionName('analyzeSentiment'); + const action = CardService.newAction().setFunctionName('analyzeSentiment'); const button = CardService.newTextButton() .setText('Identify angry customers') .setOnClickAction(action) .setTextButtonStyle(CardService.TextButtonStyle.FILLED); - const buttonSet = CardService.newButtonSet() - .addButton(button); + const buttonSet = CardService.newButtonSet().addButton(button); const section = CardService.newCardSection() .setHeader("Emails sentiment analysis") @@ -51,9 +47,8 @@ function buildCard_GmailHome(notifyOk = false) { * This builds the card that contains the footer that informs * the user about the successful execution of the Add-on. */ - if (notifyOk == true) { - let fixedFooter = CardService.newFixedFooter() + const fixedFooter = CardService.newFixedFooter() .setPrimaryButton( CardService.newTextButton() .setText("Analysis complete") diff --git a/gmail-sentiment-analysis/Gmail.gs b/gmail-sentiment-analysis/Gmail.gs index 7e4b3c621..d4e6fe2b2 100644 --- a/gmail-sentiment-analysis/Gmail.gs +++ b/gmail-sentiment-analysis/Gmail.gs @@ -20,30 +20,46 @@ limitations under the License. */ function analyzeSentiment() { - emailSentiment(); + analyzeAndLabelEmailSentiment(); return buildCard_GmailHome(true); } /** - * Gets the last 10 threads in the inbox and the corresponding messages. - * Fetches the label that should be applied to negative messages. - * The processSentiment is called on each message - * and tested with RegExp to check for a negative answer from the model + * Analyzes the sentiment of recent emails in the inbox and labels threads with + * negative sentiment as "UPSET TONE 😡". */ +function analyzeAndLabelEmailSentiment() { + const labelName = "UPSET TONE 😡"; + const maxThreads = 10; -function emailSentiment() { - const threads = GmailApp.getInboxThreads(0, 10); - const msgs = GmailApp.getMessagesForThreads(threads); - const label_upset = GmailApp.getUserLabelByName("UPSET TONE 😡"); - let currentPrediction; - - for (let i = 0; i < msgs.length; i++) { - for (let j = 0; j < msgs[i].length; j++) { - let emailText = msgs[i][j].getPlainBody(); - currentPrediction = processSentiment(emailText); - if (currentPrediction === true) { - label_upset.addToThread(msgs[i][j].getThread()); + // Get the label, or create it if it doesn't exist. + const label = GmailApp.getUserLabelByName(labelName) || GmailApp.createLabel(labelName); + + // Get the first 'maxThreads' threads from the inbox. + const threads = GmailApp.getInboxThreads(0, maxThreads); + + // Process each thread. + for (const thread of threads) { + const messages = thread.getMessages(); + + // Process each message within the thread. + for (const message of messages) { + const emailText = message.getPlainBody(); + const isUpset = isNegativeSentiment(emailText); + + if (isUpset) { + label.addToThread(thread); } } } } + +/** + * Determines if the given text has a negative sentiment. + * + * @param {string} text - The text to analyze. + * @returns {boolean} True if the sentiment is negative, false otherwise. + */ +function isNegativeSentiment(text) { + return processSentiment(text) === 'negative'; +} diff --git a/gmail-sentiment-analysis/Vertex.gs b/gmail-sentiment-analysis/Vertex.gs index 25d1994a3..3f02fefff 100644 --- a/gmail-sentiment-analysis/Vertex.gs +++ b/gmail-sentiment-analysis/Vertex.gs @@ -15,7 +15,7 @@ limitations under the License. */ const PROJECT_ID = '[ADD YOUR GCP PROJECT ID HERE]'; -const VERTEX_AI_LOCATION = 'europe-west2'; +const VERTEX_AI_LOCATION = 'us-central1'; const MODEL_ID = 'gemini-1.5-pro-002'; /** @@ -28,11 +28,7 @@ const MODEL_ID = 'gemini-1.5-pro-002'; */ function processSentiment(emailText) { - const prompt = ` - Analyze the following message: ${emailText}. - If the sentiment of this message is negative, answer with FALSE. - If the sentiment of this message is neutral or positive, answer with TRUE. - Do not use any other words than the ones requested in this prompt as a response!`; + const prompt = `Analyze the sentiment of the following message: ${emailText}`; const request = { "contents": [{ @@ -44,6 +40,20 @@ function processSentiment(emailText) { "generationConfig": { "temperature": 0.9, "maxOutputTokens": 1024, + "responseMimeType": "application/json", + "responseSchema": { + "type": "object", + "properties": { + "response": { + "type": "string", + "enum": [ + "positive", + "negative", + "neutral", + ] + } + } + } } }; @@ -62,8 +72,7 @@ function processSentiment(emailText) { const response = UrlFetchApp.fetch(url, fetchOptions); const payload = JSON.parse(response.getContentText()); + const text = JSON.parse(payload.candidates[0].content.parts[0].text); - const regex = /FALSE/; - - return regex.test(payload.candidates[0].content.parts[0].text); + return text.response; } diff --git a/gmail-sentiment-analysis/appsscript.json b/gmail-sentiment-analysis/appsscript.json index cf6273f63..9b2be96ac 100644 --- a/gmail-sentiment-analysis/appsscript.json +++ b/gmail-sentiment-analysis/appsscript.json @@ -5,14 +5,13 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/script.locale", "https://www.googleapis.com/auth/gmail.addons.execute", - "https://mail.google.com/", "https://www.googleapis.com/auth/gmail.labels", "https://www.googleapis.com/auth/gmail.modify" ], "addOns": { "common": { "name": "Productivity toolbox", - "logoUrl": "https://icons.iconarchive.com/icons/roundicons/100-free-solid/64/spy-icon.png", + "logoUrl": "https://fonts.gstatic.com/s/i/googlematerialicons/dynamic_feed/v6/black-24dp/1x/gm_dynamic_feed_black_24dp.png", "useLocaleFromApp": true }, "gmail": { From 8c9b185e689474871195a1e08a076ba9f4276021 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Ansari Date: Wed, 22 Jan 2025 17:25:18 -0500 Subject: [PATCH 19/43] Feat/add sample emails generation (#515) * Update appsscript.json Add scope required to get user's email * Create Samples.gs Added code to generate 3 sample emails * fix/Update gmail-sentiment-analysis/Samples.gs Co-authored-by: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> --------- Co-authored-by: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> --- gmail-sentiment-analysis/Samples.gs | 89 ++++++++++++++++++++++++ gmail-sentiment-analysis/appsscript.json | 1 + 2 files changed, 90 insertions(+) create mode 100644 gmail-sentiment-analysis/Samples.gs diff --git a/gmail-sentiment-analysis/Samples.gs b/gmail-sentiment-analysis/Samples.gs new file mode 100644 index 000000000..ea58302f0 --- /dev/null +++ b/gmail-sentiment-analysis/Samples.gs @@ -0,0 +1,89 @@ +/* +Copyright 2025 Google LLC + +Licensed 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 + + https://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. +*/ + +/** + * Create sample emails + */ +function generateSampleEmails() { + // Get active user's email + const userEmail = Session.getActiveUser().getEmail(); + + // Send emails + GmailApp.sendEmail( + userEmail, + "Thank you for amazing service!", + "Hi, I really enjoyed working with you. Thank you again!", + { + name: 'Customer A', + }, + ); + + GmailApp.sendEmail( + userEmail, + "Request for information", + "Hello, I need more information on your recent product launch. Thank you.", + { + name: 'Customer B', + }, + ); + + GmailApp.sendEmail( + userEmail, + "Complaint!", + "Hello, You are late in delivery, again. Please contact me ASAP before I cancel our subscription.", + { + name: 'Customer C', + }, + ); + + console.log("Sample email generation completed.") +} + * Create sample emails + */ +function generateSampleEmails() { + // Get active user's email + var userEmail = Session.getActiveUser().getEmail(); + + // Send emails + GmailApp.sendEmail( + userEmail, + "Thank you for amazing service!", + "Hi, I really enjoyed working with you. Thank you again!", + { + name: 'Customer A', + }, + ); + + GmailApp.sendEmail( + userEmail, + "Request for information", + "Hello, I need more information on your recent product launch. Thank you.", + { + name: 'Customer B', + }, + ); + + GmailApp.sendEmail( + userEmail, + "Complaint!", + "Hello, You are late in delivery, again. Please contact me ASAP before I cancel our subscription.", + { + name: 'Customer C', + }, + ); + + console.log("Sample email generation completed.") +} diff --git a/gmail-sentiment-analysis/appsscript.json b/gmail-sentiment-analysis/appsscript.json index 9b2be96ac..0a888d217 100644 --- a/gmail-sentiment-analysis/appsscript.json +++ b/gmail-sentiment-analysis/appsscript.json @@ -4,6 +4,7 @@ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/script.locale", + "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/gmail.addons.execute", "https://www.googleapis.com/auth/gmail.labels", "https://www.googleapis.com/auth/gmail.modify" From 6599fed3b3f70f564038542753a1f3dda64009a4 Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Wed, 22 Jan 2025 16:04:36 -0800 Subject: [PATCH 20/43] chore: Update Samples.gs (#516) --- gmail-sentiment-analysis/Samples.gs | 36 ----------------------------- 1 file changed, 36 deletions(-) diff --git a/gmail-sentiment-analysis/Samples.gs b/gmail-sentiment-analysis/Samples.gs index ea58302f0..b3ce18691 100644 --- a/gmail-sentiment-analysis/Samples.gs +++ b/gmail-sentiment-analysis/Samples.gs @@ -51,39 +51,3 @@ function generateSampleEmails() { console.log("Sample email generation completed.") } - * Create sample emails - */ -function generateSampleEmails() { - // Get active user's email - var userEmail = Session.getActiveUser().getEmail(); - - // Send emails - GmailApp.sendEmail( - userEmail, - "Thank you for amazing service!", - "Hi, I really enjoyed working with you. Thank you again!", - { - name: 'Customer A', - }, - ); - - GmailApp.sendEmail( - userEmail, - "Request for information", - "Hello, I need more information on your recent product launch. Thank you.", - { - name: 'Customer B', - }, - ); - - GmailApp.sendEmail( - userEmail, - "Complaint!", - "Hello, You are late in delivery, again. Please contact me ASAP before I cancel our subscription.", - { - name: 'Customer C', - }, - ); - - console.log("Sample email generation completed.") -} From ad1779c6b53aee7558489c52b549f090f620e550 Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:58:41 -0800 Subject: [PATCH 21/43] chore: Minor updates (#517) --- gmail-sentiment-analysis/Cards.gs | 15 ++++++++++++--- gmail-sentiment-analysis/Gmail.gs | 2 +- gmail-sentiment-analysis/Samples.gs | 20 +++++++++++--------- gmail-sentiment-analysis/Vertex.gs | 8 ++++++-- gmail-sentiment-analysis/appsscript.json | 8 ++++---- 5 files changed, 34 insertions(+), 19 deletions(-) diff --git a/gmail-sentiment-analysis/Cards.gs b/gmail-sentiment-analysis/Cards.gs index f0360318d..a520eda8c 100644 --- a/gmail-sentiment-analysis/Cards.gs +++ b/gmail-sentiment-analysis/Cards.gs @@ -16,7 +16,7 @@ limitations under the License. /** - * Builds the card to display in the sidepanel of gmail. + * Builds the card to display in the side panel of gmail. * @return {CardService.Card} The card to show to the user. */ @@ -33,7 +33,16 @@ function buildCard_GmailHome(notifyOk = false) { .setText('Identify angry customers') .setOnClickAction(action) .setTextButtonStyle(CardService.TextButtonStyle.FILLED); - const buttonSet = CardService.newButtonSet().addButton(button); + + const generateSampleEmailsAction = CardService.newAction() + .setFunctionName('generateSampleEmails'); + const generateSampleEmailsBtn = CardService.newTextButton() + .setText('Generate sample emails') + .setOnClickAction(generateSampleEmailsAction) + .setTextButtonStyle(CardService.TextButtonStyle.FILLED) + .setBackgroundColor('#34A853'); + + const buttonSet = CardService.newButtonSet().addButton(button).addButton(generateSampleEmailsBtn); const section = CardService.newCardSection() .setHeader("Emails sentiment analysis") @@ -47,7 +56,7 @@ function buildCard_GmailHome(notifyOk = false) { * This builds the card that contains the footer that informs * the user about the successful execution of the Add-on. */ - if (notifyOk == true) { + if (notifyOk) { const fixedFooter = CardService.newFixedFooter() .setPrimaryButton( CardService.newTextButton() diff --git a/gmail-sentiment-analysis/Gmail.gs b/gmail-sentiment-analysis/Gmail.gs index d4e6fe2b2..64ac50675 100644 --- a/gmail-sentiment-analysis/Gmail.gs +++ b/gmail-sentiment-analysis/Gmail.gs @@ -48,7 +48,7 @@ function analyzeAndLabelEmailSentiment() { const isUpset = isNegativeSentiment(emailText); if (isUpset) { - label.addToThread(thread); + thread.addLabel(label); } } } diff --git a/gmail-sentiment-analysis/Samples.gs b/gmail-sentiment-analysis/Samples.gs index b3ce18691..3c906772b 100644 --- a/gmail-sentiment-analysis/Samples.gs +++ b/gmail-sentiment-analysis/Samples.gs @@ -1,14 +1,14 @@ /* Copyright 2025 Google LLC -Licensed under the Apache License, Version 2.0 (the "License"); +Licensed 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 https://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, +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. @@ -24,8 +24,8 @@ function generateSampleEmails() { // Send emails GmailApp.sendEmail( userEmail, - "Thank you for amazing service!", - "Hi, I really enjoyed working with you. Thank you again!", + 'Thank you for amazing service!', + 'Hi, I really enjoyed working with you. Thank you again!', { name: 'Customer A', }, @@ -33,8 +33,8 @@ function generateSampleEmails() { GmailApp.sendEmail( userEmail, - "Request for information", - "Hello, I need more information on your recent product launch. Thank you.", + 'Request for information', + 'Hello, I need more information on your recent product launch. Thank you.', { name: 'Customer B', }, @@ -42,12 +42,14 @@ function generateSampleEmails() { GmailApp.sendEmail( userEmail, - "Complaint!", - "Hello, You are late in delivery, again. Please contact me ASAP before I cancel our subscription.", + 'Complaint!', + '', { name: 'Customer C', + htmlBody: `

Hello, You are late in delivery, again.

+

Please contact me ASAP before I cancel our subscription.

`, }, ); - console.log("Sample email generation completed.") + console.log('Sample email generation completed.') } diff --git a/gmail-sentiment-analysis/Vertex.gs b/gmail-sentiment-analysis/Vertex.gs index 3f02fefff..7c01b7a8e 100644 --- a/gmail-sentiment-analysis/Vertex.gs +++ b/gmail-sentiment-analysis/Vertex.gs @@ -67,8 +67,12 @@ function processSentiment(emailText) { payload: JSON.stringify(request), } - const url = `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/` - + `locations/${VERTEX_AI_LOCATION}/publishers/google/models/${MODEL_ID}:generateContent` + const url = + `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/` + + `projects/${PROJECT_ID}/` + + `locations/${VERTEX_AI_LOCATION}/` + + `publishers/google/` + + `models/${MODEL_ID}:generateContent`; const response = UrlFetchApp.fetch(url, fetchOptions); const payload = JSON.parse(response.getContentText()); diff --git a/gmail-sentiment-analysis/appsscript.json b/gmail-sentiment-analysis/appsscript.json index 0a888d217..803c363e8 100644 --- a/gmail-sentiment-analysis/appsscript.json +++ b/gmail-sentiment-analysis/appsscript.json @@ -1,13 +1,13 @@ { "timeZone": "America/Los_Angeles", "oauthScopes": [ - "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/script.locale", - "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/gmail.addons.execute", "https://www.googleapis.com/auth/gmail.labels", - "https://www.googleapis.com/auth/gmail.modify" + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/script.external_request", + "https://www.googleapis.com/auth/script.locale", + "https://www.googleapis.com/auth/userinfo.email" ], "addOns": { "common": { From f9f88951b174c7479b19dc2a65284573ed6a0d2c Mon Sep 17 00:00:00 2001 From: vinay-google Date: Thu, 23 Jan 2025 18:42:51 +0000 Subject: [PATCH 22/43] docs: Update README --- gmail-sentiment-analysis/README.md | 118 +++++++++++++++++++++++------ 1 file changed, 94 insertions(+), 24 deletions(-) diff --git a/gmail-sentiment-analysis/README.md b/gmail-sentiment-analysis/README.md index 5686c7803..fe916d4ba 100644 --- a/gmail-sentiment-analysis/README.md +++ b/gmail-sentiment-analysis/README.md @@ -1,33 +1,103 @@ -# Gmail sentiment analysis with Vertex AI +# Gmail Sentiment Analysis with Gemini and Vertex AI -## Project Description +This project guides you through building a Google Workspace Add-on that +leverages Gemini and Vertex AI for conducting sentiment analysis on emails in +Gmail. The add-on automatically identifies emails with a negative tone and +labels them accordingly, helping prioritize customer service responses or +identify potentially sensitive emails. -Google Workspace Add-on that extends Gmail and adds sentiment analysis capabilities. +## What you'll learn -## Prerequisites +* Build a Google Workspace Add-on +* Integrate Vertex AI with Google Workspace +* Implement OAuth2 authentication +* Apply sentiment analysis +* Utilize Apps Script -* Google Cloud Project (aka Standard Cloud Project for Apps Script) with billing enabled +## Setup and Requirements -## Set up your environment +* **Web Browser:** Chrome (recommended) +* **Dedicated Time:** Set aside uninterrupted time. +* **Incognito/Private Window:** **Important:** Use an incognito or private browsing window to prevent conflicts with your personal accounts. -1. Create a Cloud Project - 1. Enable the Vertex AI API - 1. Create a Service Account and grant the role `Vertex AI User` - 1. Create a private key with type JSON. This will download the JSON file for use in the next section. -1. Open an Apps Script Project bound to a Google Sheets Spreadsheet - 1. From Project Settings, change project to GCP project number of Cloud Project from step 1 - 1. Add a Script Property. Enter `service_account_key` as the property name and paste the JSON key from the service account as the value. -1. Add OAuth2 v43 Apps Script Library using the ID `1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF`. -1. Add the project code to Apps Script +## Lab Steps -Alternatively, make a copy of this [Apps Script project](https://script.google.com/corp/home/projects/1Z2gfvr0oYn68ppDtQbv0qIuKKVWhvwOTr-gCE0GFKVjNk8NDlpfJAGAr) +### Task 1: Accessing Your Lab Environment -## Usage +1. Click **Start lab** (in your [Qwiklabs environment](https://explore.qwiklabs.com/classrooms/16701)). This generates temporary credentials. +2. Open the provided **Gmail URL** in your incognito window. +3. Enter the provided **Username** and **Password**. +4. Accept terms and conditions. +5. Click **Get started** in Gmail and close any informational windows. -1. Create a label in Gmail with this exact text and emojy (case sensitive!): UPSET TONE 😡 -1. In Gmail, click on the Productivity toolbox icon (icon of a spy) in the sidepanel. -1. The sidepanel will open up. Grant the Add-on autorization to run. -1. The Add-on will load. Click on the blue button "Identify angry customers." -1. Close the Add-on by clicking on the X in the top right corner. -1. It can take a couple of minutes until the label is applied to the messages that have a negative tone. -1. If you don't want to wait until the labels are added, you can refresh the browser. +### Task 2: Set up Cloud Console + +1. Open the provided **Cloud Console URL** in your incognito window. +2. Check **I agree** and click **AGREE AND CONTINUE**. + +### Enable Vertex AI API + +1. Open the provided link to enable the Vertex AI API. +2. Click **Next** to confirm the project. +3. Click **Enable**. + + +### Task 3: Set Up the Apps Script Project + +1. Open the provided **Apps Script link** in a new incognito tab. +2. Click **New project**. +3. Rename the project to "Gmail Sentiment Analysis with Gemini and Vertex AI". +4. In Project Settings (gear icon), select "Show 'appsscript.json' manifest file in editor". +5. In Project Settings, under Google Cloud Platform (GCP) Project, click **Change project**. +6. Copy the **Project number** (numerical value, not Project ID) from Cloud Console. +7. Paste the Project number into the Apps Script project settings and click **Set project**. +8. Click the **OAuth Consent details** link in the error message. +9. Click **CONFIGURE CONSENT SCREEN**. +10. Select **Internal** for User Type and click **CREATE**. +11. Set the App name to "Gmail Sentiment Analysis with Gemini and Vertex AI". +12. Set the User support email and Developer contact information using the provided email. +13. Click **SAVE AND CONTINUE** twice. +14. Return to the Apps Script tab and set the project. + + +### Task 4: Make a copy of the Apps Script project + +1. Make a copy of this +[Apps Script project](https://script.google.com/corp/home/projects/1Z2gfvr0oYn68ppDtQbv0qIuKKVWhvwOTr-gCE0GFKVjNk8NDlpfJAGAr). +1. Rename the Apps Script project to `Gmail Sentiment Analysis with Gemini and Vertex AI`. +1. Make sure to replace `[ADD YOUR GCP PROJECT ID HERE]` in `Vertex.gs` with your actual **Project ID**. +1. Click **Save**. + + +### Task 5: Deploy the Add-on + +1. Click **Deploy > Test deployments**. +2. Confirm **Gmail** is listed under Application(s) and click **Install**. +3. Click **Done**. + +### Task 6: Verify Installation + +Refresh the Gmail tab. You should see a new add-on icon in the right side panel. + +**Troubleshooting:** + +* Refresh the browser if the add-on isn't visible. +* Uninstall and reinstall the add-on from the Test deployments window if it's still missing. + + +### Task 7: Run the Add-on + +1. **Open the Add-on:** Click the add-on icon in the Gmail side panel. +2. **Authorize the Add-on:** Click **Authorize access**. Select your email and click **Allow** in the consent screen. +3. **Generate sample emails:** Click the green "Generate sample emails" button. +4. **Wait for emails:** Wait for the sample emails to appear in your inbox, or refresh. +5. **Start the analysis:** Click the red "Analyze emails" button. +6. **Wait for labels:** Wait for the "UPSET TONE 😡" label to appear on negative emails, or refresh. +7. **Close the Add-on:** Click the X in the top right corner of the side panel. + + +## Congratulations! + +You've completed the Gmail Sentiment Analysis with Gemini and Vertex AI lab! +You now have a functional Gmail add-on for prioritizing emails. Experiment +further by customizing the sentiment analysis or adding new features! From e6ca6da95c50a36527c7f1c7e3b97f01137fef07 Mon Sep 17 00:00:00 2001 From: Mohammad Al-Ansari Date: Thu, 23 Jan 2025 20:03:52 +0000 Subject: [PATCH 23/43] refactor: Refactored UI, consolidated sample generation code updated add-on name add-on name (#518) * refactor: Refactored UI, consolidated sample generation code updated add-on name add-on name * fix: reverted sample code to previous version * fix: updated to correct code, switched to use flash model * fix: placed project placeholder back --- gmail-sentiment-analysis/Cards.gs | 50 ++++++++++----------- gmail-sentiment-analysis/Code.gs | 6 +-- gmail-sentiment-analysis/Gmail.gs | 44 ++++++++++++++++++- gmail-sentiment-analysis/Samples.gs | 55 ------------------------ gmail-sentiment-analysis/Vertex.gs | 14 +++--- gmail-sentiment-analysis/appsscript.json | 16 +++---- 6 files changed, 80 insertions(+), 105 deletions(-) delete mode 100644 gmail-sentiment-analysis/Samples.gs diff --git a/gmail-sentiment-analysis/Cards.gs b/gmail-sentiment-analysis/Cards.gs index a520eda8c..dde0a71fc 100644 --- a/gmail-sentiment-analysis/Cards.gs +++ b/gmail-sentiment-analysis/Cards.gs @@ -1,5 +1,5 @@ /* -Copyright 2024 Google LLC +Copyright 2024-2025 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,52 +20,46 @@ limitations under the License. * @return {CardService.Card} The card to show to the user. */ -function buildCard_GmailHome(notifyOk = false) { +function buildHomepageCard() { const imageUrl = 'https://fonts.gstatic.com/s/i/googlematerialicons/dynamic_feed/v6/black-24dp/1x/gm_dynamic_feed_black_24dp.png'; const cardHeader = CardService.newCardHeader() .setImageUrl(imageUrl) .setImageStyle(CardService.ImageStyle.CIRCLE) - .setTitle("Analyze your GMail"); + .setTitle("Analyze your Gmail"); - const action = CardService.newAction().setFunctionName('analyzeSentiment'); - const button = CardService.newTextButton() - .setText('Identify angry customers') - .setOnClickAction(action) - .setTextButtonStyle(CardService.TextButtonStyle.FILLED); + const analyzeSentimentAction = CardService.newAction().setFunctionName('analyzeSentiment'); + const analyzeSentimentBtn = CardService.newTextButton() + .setText('Analyze emails') + .setOnClickAction(analyzeSentimentAction) + .setTextButtonStyle(CardService.TextButtonStyle.FILLED) + .setBackgroundColor('#FF0000'); + + const generateSampleEmailAction = CardService.newAction().setFunctionName('generateSampleEmails'); - const generateSampleEmailsAction = CardService.newAction() - .setFunctionName('generateSampleEmails'); const generateSampleEmailsBtn = CardService.newTextButton() .setText('Generate sample emails') - .setOnClickAction(generateSampleEmailsAction) + .setOnClickAction(generateSampleEmailAction) .setTextButtonStyle(CardService.TextButtonStyle.FILLED) .setBackgroundColor('#34A853'); - const buttonSet = CardService.newButtonSet().addButton(button).addButton(generateSampleEmailsBtn); + const buttonSet = CardService.newButtonSet().addButton(generateSampleEmailsBtn).addButton(analyzeSentimentBtn); const section = CardService.newCardSection() - .setHeader("Emails sentiment analysis") .addWidget(buttonSet); const card = CardService.newCardBuilder() .setHeader(cardHeader) .addSection(section); - /** - * This builds the card that contains the footer that informs - * the user about the successful execution of the Add-on. - */ - if (notifyOk) { - const fixedFooter = CardService.newFixedFooter() - .setPrimaryButton( - CardService.newTextButton() - .setText("Analysis complete") - .setOnClickAction( - CardService.newAction() - .setFunctionName( - "buildCard_GmailHome"))); - card.setFixedFooter(fixedFooter); - } return card.build(); } + +function buildNotificationResponse(notificationText) { + const notification = CardService.newNotification().setText(notificationText); + + const actionResponse = CardService.newActionResponseBuilder() + .setNotification(notification); + + return actionResponse.build(); +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/Code.gs b/gmail-sentiment-analysis/Code.gs index b599ca2cf..fd0b8816d 100644 --- a/gmail-sentiment-analysis/Code.gs +++ b/gmail-sentiment-analysis/Code.gs @@ -18,6 +18,6 @@ limitations under the License. * Callback for rendering the homepage card. * @return {CardService.Card} The card to show to the user. */ -function onHomepage(e) { - return buildCard_GmailHome(); -} +function onHomepageTrigger(e) { + return buildHomepageCard(); +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/Gmail.gs b/gmail-sentiment-analysis/Gmail.gs index 64ac50675..0a27a483e 100644 --- a/gmail-sentiment-analysis/Gmail.gs +++ b/gmail-sentiment-analysis/Gmail.gs @@ -1,5 +1,5 @@ /* -Copyright 2024 Google LLC +Copyright 2024-2025 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. function analyzeSentiment() { analyzeAndLabelEmailSentiment(); - return buildCard_GmailHome(true); + return buildNotificationResponse("Successfully completed sentiment analysis"); } /** @@ -63,3 +63,43 @@ function analyzeAndLabelEmailSentiment() { function isNegativeSentiment(text) { return processSentiment(text) === 'negative'; } + +/** + * Create sample emails + */ +function generateSampleEmails() { + // Get active user's email + const userEmail = Session.getActiveUser().getEmail(); + + // Send emails + GmailApp.sendEmail( + userEmail, + 'Thank you for amazing service!', + 'Hi, I really enjoyed working with you. Thank you again!', + { + name: 'Customer A', + }, + ); + + GmailApp.sendEmail( + userEmail, + 'Request for information', + 'Hello, I need more information on your recent product launch. Thank you.', + { + name: 'Customer B', + }, + ); + + GmailApp.sendEmail( + userEmail, + 'Complaint!', + '', + { + name: 'Customer C', + htmlBody: `

Hello, You are late in delivery, again.

+

Please contact me ASAP before I cancel our subscription.

`, + }, + ); + + return buildNotificationResponse("Successfully generated sample emails"); +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/Samples.gs b/gmail-sentiment-analysis/Samples.gs deleted file mode 100644 index 3c906772b..000000000 --- a/gmail-sentiment-analysis/Samples.gs +++ /dev/null @@ -1,55 +0,0 @@ -/* -Copyright 2025 Google LLC - -Licensed 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 - - https://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. -*/ - -/** - * Create sample emails - */ -function generateSampleEmails() { - // Get active user's email - const userEmail = Session.getActiveUser().getEmail(); - - // Send emails - GmailApp.sendEmail( - userEmail, - 'Thank you for amazing service!', - 'Hi, I really enjoyed working with you. Thank you again!', - { - name: 'Customer A', - }, - ); - - GmailApp.sendEmail( - userEmail, - 'Request for information', - 'Hello, I need more information on your recent product launch. Thank you.', - { - name: 'Customer B', - }, - ); - - GmailApp.sendEmail( - userEmail, - 'Complaint!', - '', - { - name: 'Customer C', - htmlBody: `

Hello, You are late in delivery, again.

-

Please contact me ASAP before I cancel our subscription.

`, - }, - ); - - console.log('Sample email generation completed.') -} diff --git a/gmail-sentiment-analysis/Vertex.gs b/gmail-sentiment-analysis/Vertex.gs index 7c01b7a8e..221907a81 100644 --- a/gmail-sentiment-analysis/Vertex.gs +++ b/gmail-sentiment-analysis/Vertex.gs @@ -1,5 +1,5 @@ /* -Copyright 2024 Google LLC +Copyright 2024-2025 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,7 +16,7 @@ limitations under the License. const PROJECT_ID = '[ADD YOUR GCP PROJECT ID HERE]'; const VERTEX_AI_LOCATION = 'us-central1'; -const MODEL_ID = 'gemini-1.5-pro-002'; +const MODEL_ID = 'gemini-1.5-flash'; /** * Packages prompt and necessary settings, then sends a request to @@ -67,16 +67,12 @@ function processSentiment(emailText) { payload: JSON.stringify(request), } - const url = - `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/` + - `projects/${PROJECT_ID}/` + - `locations/${VERTEX_AI_LOCATION}/` + - `publishers/google/` + - `models/${MODEL_ID}:generateContent`; + const url = `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/` + + `locations/${VERTEX_AI_LOCATION}/publishers/google/models/${MODEL_ID}:generateContent` const response = UrlFetchApp.fetch(url, fetchOptions); const payload = JSON.parse(response.getContentText()); const text = JSON.parse(payload.candidates[0].content.parts[0].text); return text.response; -} +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/appsscript.json b/gmail-sentiment-analysis/appsscript.json index 803c363e8..6018fe6ae 100644 --- a/gmail-sentiment-analysis/appsscript.json +++ b/gmail-sentiment-analysis/appsscript.json @@ -1,27 +1,27 @@ { - "timeZone": "America/Los_Angeles", + "timeZone": "America/Toronto", "oauthScopes": [ + "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/script.locale", + "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/gmail.addons.execute", "https://www.googleapis.com/auth/gmail.labels", - "https://www.googleapis.com/auth/gmail.modify", - "https://www.googleapis.com/auth/script.external_request", - "https://www.googleapis.com/auth/script.locale", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/gmail.modify" ], "addOns": { "common": { - "name": "Productivity toolbox", + "name": "Sentiment Analysis", "logoUrl": "https://fonts.gstatic.com/s/i/googlematerialicons/dynamic_feed/v6/black-24dp/1x/gm_dynamic_feed_black_24dp.png", "useLocaleFromApp": true }, "gmail": { "homepageTrigger": { - "runFunction": "onHomepage", + "runFunction": "onHomepageTrigger", "enabled": true } } }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8" -} +} \ No newline at end of file From a1c51008756a20638574724390f7425bfe55f2c4 Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Thu, 23 Jan 2025 12:14:02 -0800 Subject: [PATCH 24/43] chore: Minor updates (#519) --- gmail-sentiment-analysis/Cards.gs | 13 ++++++++----- gmail-sentiment-analysis/Code.gs | 2 +- gmail-sentiment-analysis/Gmail.gs | 2 +- gmail-sentiment-analysis/README.md | 21 +++++++-------------- gmail-sentiment-analysis/Vertex.gs | 10 +++++++--- gmail-sentiment-analysis/appsscript.json | 10 +++++----- 6 files changed, 29 insertions(+), 29 deletions(-) diff --git a/gmail-sentiment-analysis/Cards.gs b/gmail-sentiment-analysis/Cards.gs index dde0a71fc..5b1e16759 100644 --- a/gmail-sentiment-analysis/Cards.gs +++ b/gmail-sentiment-analysis/Cards.gs @@ -14,7 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ - /** * Builds the card to display in the side panel of gmail. * @return {CardService.Card} The card to show to the user. @@ -28,14 +27,16 @@ function buildHomepageCard() { .setImageStyle(CardService.ImageStyle.CIRCLE) .setTitle("Analyze your Gmail"); - const analyzeSentimentAction = CardService.newAction().setFunctionName('analyzeSentiment'); + const analyzeSentimentAction = CardService.newAction() + .setFunctionName('analyzeSentiment'); const analyzeSentimentBtn = CardService.newTextButton() .setText('Analyze emails') .setOnClickAction(analyzeSentimentAction) .setTextButtonStyle(CardService.TextButtonStyle.FILLED) .setBackgroundColor('#FF0000'); - const generateSampleEmailAction = CardService.newAction().setFunctionName('generateSampleEmails'); + const generateSampleEmailAction = CardService.newAction() + .setFunctionName('generateSampleEmails'); const generateSampleEmailsBtn = CardService.newTextButton() .setText('Generate sample emails') @@ -43,7 +44,9 @@ function buildHomepageCard() { .setTextButtonStyle(CardService.TextButtonStyle.FILLED) .setBackgroundColor('#34A853'); - const buttonSet = CardService.newButtonSet().addButton(generateSampleEmailsBtn).addButton(analyzeSentimentBtn); + const buttonSet = CardService.newButtonSet() + .addButton(generateSampleEmailsBtn) + .addButton(analyzeSentimentBtn); const section = CardService.newCardSection() .addWidget(buttonSet); @@ -62,4 +65,4 @@ function buildNotificationResponse(notificationText) { .setNotification(notification); return actionResponse.build(); -} \ No newline at end of file +} diff --git a/gmail-sentiment-analysis/Code.gs b/gmail-sentiment-analysis/Code.gs index fd0b8816d..72372a106 100644 --- a/gmail-sentiment-analysis/Code.gs +++ b/gmail-sentiment-analysis/Code.gs @@ -20,4 +20,4 @@ limitations under the License. */ function onHomepageTrigger(e) { return buildHomepageCard(); -} \ No newline at end of file +} diff --git a/gmail-sentiment-analysis/Gmail.gs b/gmail-sentiment-analysis/Gmail.gs index 0a27a483e..0b67a7fb9 100644 --- a/gmail-sentiment-analysis/Gmail.gs +++ b/gmail-sentiment-analysis/Gmail.gs @@ -102,4 +102,4 @@ function generateSampleEmails() { ); return buildNotificationResponse("Successfully generated sample emails"); -} \ No newline at end of file +} diff --git a/gmail-sentiment-analysis/README.md b/gmail-sentiment-analysis/README.md index fe916d4ba..72169a2d5 100644 --- a/gmail-sentiment-analysis/README.md +++ b/gmail-sentiment-analysis/README.md @@ -20,17 +20,10 @@ identify potentially sensitive emails. * **Dedicated Time:** Set aside uninterrupted time. * **Incognito/Private Window:** **Important:** Use an incognito or private browsing window to prevent conflicts with your personal accounts. -## Lab Steps +## Steps -### Task 1: Accessing Your Lab Environment -1. Click **Start lab** (in your [Qwiklabs environment](https://explore.qwiklabs.com/classrooms/16701)). This generates temporary credentials. -2. Open the provided **Gmail URL** in your incognito window. -3. Enter the provided **Username** and **Password**. -4. Accept terms and conditions. -5. Click **Get started** in Gmail and close any informational windows. - -### Task 2: Set up Cloud Console +### Set up Cloud Console 1. Open the provided **Cloud Console URL** in your incognito window. 2. Check **I agree** and click **AGREE AND CONTINUE**. @@ -42,7 +35,7 @@ identify potentially sensitive emails. 3. Click **Enable**. -### Task 3: Set Up the Apps Script Project +### Set Up the Apps Script Project 1. Open the provided **Apps Script link** in a new incognito tab. 2. Click **New project**. @@ -60,7 +53,7 @@ identify potentially sensitive emails. 14. Return to the Apps Script tab and set the project. -### Task 4: Make a copy of the Apps Script project +### Make a copy of the Apps Script project 1. Make a copy of this [Apps Script project](https://script.google.com/corp/home/projects/1Z2gfvr0oYn68ppDtQbv0qIuKKVWhvwOTr-gCE0GFKVjNk8NDlpfJAGAr). @@ -69,13 +62,13 @@ identify potentially sensitive emails. 1. Click **Save**. -### Task 5: Deploy the Add-on +### Deploy the Add-on 1. Click **Deploy > Test deployments**. 2. Confirm **Gmail** is listed under Application(s) and click **Install**. 3. Click **Done**. -### Task 6: Verify Installation +### Verify Installation Refresh the Gmail tab. You should see a new add-on icon in the right side panel. @@ -85,7 +78,7 @@ Refresh the Gmail tab. You should see a new add-on icon in the right side panel. * Uninstall and reinstall the add-on from the Test deployments window if it's still missing. -### Task 7: Run the Add-on +### Run the Add-on 1. **Open the Add-on:** Click the add-on icon in the Gmail side panel. 2. **Authorize the Add-on:** Click **Authorize access**. Select your email and click **Allow** in the consent screen. diff --git a/gmail-sentiment-analysis/Vertex.gs b/gmail-sentiment-analysis/Vertex.gs index 221907a81..bbcec8c43 100644 --- a/gmail-sentiment-analysis/Vertex.gs +++ b/gmail-sentiment-analysis/Vertex.gs @@ -67,12 +67,16 @@ function processSentiment(emailText) { payload: JSON.stringify(request), } - const url = `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/` - + `locations/${VERTEX_AI_LOCATION}/publishers/google/models/${MODEL_ID}:generateContent` + const url = + `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/` + + `projects/${PROJECT_ID}/` + + `locations/${VERTEX_AI_LOCATION}/` + + `publishers/google/` + + `models/${MODEL_ID}:generateContent`; const response = UrlFetchApp.fetch(url, fetchOptions); const payload = JSON.parse(response.getContentText()); const text = JSON.parse(payload.candidates[0].content.parts[0].text); return text.response; -} \ No newline at end of file +} diff --git a/gmail-sentiment-analysis/appsscript.json b/gmail-sentiment-analysis/appsscript.json index 6018fe6ae..b6e23d4f2 100644 --- a/gmail-sentiment-analysis/appsscript.json +++ b/gmail-sentiment-analysis/appsscript.json @@ -1,13 +1,13 @@ { "timeZone": "America/Toronto", "oauthScopes": [ - "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/script.locale", - "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/gmail.addons.execute", "https://www.googleapis.com/auth/gmail.labels", - "https://www.googleapis.com/auth/gmail.modify" + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/script.external_request", + "https://www.googleapis.com/auth/script.locale", + "https://www.googleapis.com/auth/userinfo.email" ], "addOns": { "common": { @@ -24,4 +24,4 @@ }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8" -} \ No newline at end of file +} From c9b7745b900b8e03057def3dbe8891f228f62451 Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Thu, 23 Jan 2025 15:38:04 -0800 Subject: [PATCH 25/43] feat: Add positive and negative sentiment labels (#520) --- gmail-sentiment-analysis/Gmail.gs | 38 +++++++++++++++++-------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/gmail-sentiment-analysis/Gmail.gs b/gmail-sentiment-analysis/Gmail.gs index 0b67a7fb9..350a1e605 100644 --- a/gmail-sentiment-analysis/Gmail.gs +++ b/gmail-sentiment-analysis/Gmail.gs @@ -26,14 +26,18 @@ function analyzeSentiment() { /** * Analyzes the sentiment of recent emails in the inbox and labels threads with - * negative sentiment as "UPSET TONE 😡". + * the appropriate sentiment label. */ function analyzeAndLabelEmailSentiment() { - const labelName = "UPSET TONE 😡"; + const positiveLabelName = "HAPPY TONE 😊"; + const neutralLabelName = "NEUTRAL TONE 😐"; + const negativeLabelName = "UPSET TONE 😡"; const maxThreads = 10; // Get the label, or create it if it doesn't exist. - const label = GmailApp.getUserLabelByName(labelName) || GmailApp.createLabel(labelName); + const positiveLabel = GmailApp.getUserLabelByName(positiveLabelName) || GmailApp.createLabel(positiveLabelName); + const neutralLabel = GmailApp.getUserLabelByName(neutralLabelName) || GmailApp.createLabel(neutralLabelName); + const negativeLabel = GmailApp.getUserLabelByName(negativeLabelName) || GmailApp.createLabel(negativeLabelName); // Get the first 'maxThreads' threads from the inbox. const threads = GmailApp.getInboxThreads(0, maxThreads); @@ -45,25 +49,25 @@ function analyzeAndLabelEmailSentiment() { // Process each message within the thread. for (const message of messages) { const emailText = message.getPlainBody(); - const isUpset = isNegativeSentiment(emailText); - - if (isUpset) { - thread.addLabel(label); + const sentiment = processSentiment(emailText); + + switch (sentiment) { + case 'positive': + thread.addLabel(positiveLabel); + break; + case 'neutral': + thread.addLabel(neutralLabel); + break; + case 'negative': + thread.addLabel(negativeLabel); + break; + default: + break; } } } } -/** - * Determines if the given text has a negative sentiment. - * - * @param {string} text - The text to analyze. - * @returns {boolean} True if the sentiment is negative, false otherwise. - */ -function isNegativeSentiment(text) { - return processSentiment(text) === 'negative'; -} - /** * Create sample emails */ From 9f468eb956af87b71ae71824a3c66ced9f5a0244 Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Mon, 12 May 2025 18:06:15 -0700 Subject: [PATCH 26/43] feat: Email Classifier (#541) --- ai/email-classifier/Cards.gs | 182 +++++++++++++++++++++++++++ ai/email-classifier/ClassifyEmail.gs | 133 ++++++++++++++++++++ ai/email-classifier/Code.gs | 67 ++++++++++ ai/email-classifier/Constants.gs | 23 ++++ ai/email-classifier/DraftEmail.gs | 141 +++++++++++++++++++++ ai/email-classifier/Labels.gs | 108 ++++++++++++++++ ai/email-classifier/README.md | 144 +++++++++++++++++++++ ai/email-classifier/Sheet.gs | 84 +++++++++++++ ai/email-classifier/appsscript.json | 38 ++++++ 9 files changed, 920 insertions(+) create mode 100644 ai/email-classifier/Cards.gs create mode 100644 ai/email-classifier/ClassifyEmail.gs create mode 100644 ai/email-classifier/Code.gs create mode 100644 ai/email-classifier/Constants.gs create mode 100644 ai/email-classifier/DraftEmail.gs create mode 100644 ai/email-classifier/Labels.gs create mode 100644 ai/email-classifier/README.md create mode 100644 ai/email-classifier/Sheet.gs create mode 100644 ai/email-classifier/appsscript.json diff --git a/ai/email-classifier/Cards.gs b/ai/email-classifier/Cards.gs new file mode 100644 index 000000000..55ffe0ea4 --- /dev/null +++ b/ai/email-classifier/Cards.gs @@ -0,0 +1,182 @@ +/** + * Copyright 2025 Google LLC + * + * Licensed 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. + */ + +/** + * Triggered when the add-on is opened from the Gmail homepage. + * + * @param {!Object} e - The event object. + * @returns {!Card} - The homepage card. + */ +function onHomepageTrigger(e) { + return buildHomepageCard(); +} + +/** + * Builds the main card displayed on the Gmail homepage. + * + * @returns {!Card} - The homepage card. + */ +function buildHomepageCard() { + // Create a new card builder + const cardBuilder = CardService.newCardBuilder(); + + // Create a card header + const cardHeader = CardService.newCardHeader(); + cardHeader.setImageUrl('https://fonts.gstatic.com/s/i/googlematerialicons/label_important/v20/googblue-24dp/1x/gm_label_important_googblue_24dp.png'); + cardHeader.setImageStyle(CardService.ImageStyle.CIRCLE); + cardHeader.setTitle("Email Classifier"); + + // Add the header to the card + cardBuilder.setHeader(cardHeader); + + // Create a card section + const cardSection = CardService.newCardSection(); + + // Create buttons for generating sample emails and analyzing sentiment + const buttonSet = CardService.newButtonSet(); + + // Create "Classify emails" button + const classifyButton = createFilledButton({ + text: 'Classify emails', + functionName: 'main', + color: '#007bff', + icon: 'new_label' + }); + buttonSet.addButton(classifyButton); + + // Create "Create Labels" button + const createLabelsButtton = createFilledButton({ + text: 'Create labels', + functionName: 'createLabels', + color: '#34A853', + icon: 'add' + }); + + // Create "Remove Labels" button + const removeLabelsButtton = createFilledButton({ + text: 'Remove labels', + functionName: 'removeLabels', + color: '#FF0000', + icon: 'delete' + }); + + if (labelsCreated()) { + buttonSet.addButton(removeLabelsButtton); + } else { + buttonSet.addButton(createLabelsButtton); + } + + // Add the button set to the section + cardSection.addWidget(buttonSet); + + // Add the section to the card + cardBuilder.addSection(cardSection); + + // Build and return the card + return cardBuilder.build(); +} + +/** + * Creates a filled text button with the specified text, function, and color. + * + * @param {{text: string, functionName: string, color: string, icon: string}} options + * - text: The text to display on the button. + * - functionName: The name of the function to call when the button is clicked. + * - color: The background color of the button. + * - icon: The material icon to display on the button. + * @returns {!TextButton} - The created text button. + */ +function createFilledButton({text, functionName, color, icon}) { + // Create a new text button + const textButton = CardService.newTextButton(); + + // Set the button text + textButton.setText(text); + + // Set the action to perform when the button is clicked + const action = CardService.newAction(); + action.setFunctionName(functionName); + action.setLoadIndicator(CardService.LoadIndicator.SPINNER); + textButton.setOnClickAction(action); + + // Set the button style to filled + textButton.setTextButtonStyle(CardService.TextButtonStyle.FILLED); + + // Set the background color + textButton.setBackgroundColor(color); + + textButton.setMaterialIcon(CardService.newMaterialIcon().setName(icon)); + + return textButton; +} + +/** + * Creates a notification response with the specified text. + * + * @param {string} notificationText - The text to display in the notification. + * @returns {!ActionResponse} - The created action response. + */ +function buildNotificationResponse(notificationText) { + // Create a new notification + const notification = CardService.newNotification(); + notification.setText(notificationText); + + // Create a new action response builder + const actionResponseBuilder = CardService.newActionResponseBuilder(); + + // Set the notification for the action response + actionResponseBuilder.setNotification(notification); + + // Build and return the action response + return actionResponseBuilder.build(); +} + +/** + * Creates a card to display the spreadsheet link. + * + * @param {string} spreadsheetUrl - The URL of the spreadsheet. + * @returns {!ActionResponse} - The created action response. + */ +function showSpreadsheetLink(spreadsheetUrl) { + const updatedCardBuilder = CardService.newCardBuilder(); + + updatedCardBuilder.setHeader(CardService.newCardHeader().setTitle('Sheet generated!')); + + const updatedSection = CardService.newCardSection() + .addWidget(CardService.newTextParagraph() + .setText('Click to open the sheet:') + ) + .addWidget(CardService.newTextButton() + .setText('Open Sheet') + .setOpenLink(CardService.newOpenLink() + .setUrl(spreadsheetUrl) + .setOpenAs(CardService.OpenAs.FULL_SCREEN) // Opens in a new browser tab/window + .setOnClose(CardService.OnClose.NOTHING) // Does nothing when the tab is closed + ) + ) + .addWidget(CardService.newTextButton() // Optional: Add a button to go back or refresh + .setText('Go Back') + .setOnClickAction(CardService.newAction() + .setFunctionName('onHomepageTrigger')) // Go back to the initial state + ); + + updatedCardBuilder.addSection(updatedSection); + const newNavigation = CardService.newNavigation().updateCard(updatedCardBuilder.build()); + + return CardService.newActionResponseBuilder() + .setNavigation(newNavigation) // This updates the current card in the UI + .build(); +} diff --git a/ai/email-classifier/ClassifyEmail.gs b/ai/email-classifier/ClassifyEmail.gs new file mode 100644 index 000000000..cda44a7ce --- /dev/null +++ b/ai/email-classifier/ClassifyEmail.gs @@ -0,0 +1,133 @@ +/** + * Copyright 2025 Google LLC + * + * Licensed 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. + */ + +/** + * Constructs the prompt for classifying an email. + * + * @param {string} subject The subject of the email. + * @param {string} body The body of the email. + * @returns {string} The prompt for classifying an email. + */ +const classifyEmailPrompt = (subject, body) => ` +Objective: You are an AI assistant tasked with classifying email threads. Analyze the entire email thread provided below and determine the single most appropriate classification label. Your response must conform to the provided schema. + +**Classification Labels & Descriptions:** + +* **needs-response**: The sender is explicitly or implicitly expecting a **direct, communicative reply** from me (${ME}) to answer a question, acknowledge receipt of information, confirm understanding, or continue a conversation. **Prioritize this label if the core expectation is purely a written or verbal communication back to the sender.** +* **action-required**: The email thread requires me (${ME}) to perform a **distinct task, make a formal decision, provide a review leading to approval/rejection, or initiate a process that results in a demonstrable change or outcome.** This label is for actions *beyond* just sending a reply, such as completing a document, setting up a meeting, approving a request, delegating a task, or performing a delegated duty. +* **for-your-info**: The email thread's primary purpose is to convey information, updates, or announcements. No immediate action or direct reply is expected or required from me (${ME}); the main purpose is for me to be informed and aware. This includes both routine 'FYI' updates and critical announcements where my role is to comprehend, not act or respond. + +**Evaluation Criteria - Consider the following:** + +* **Sender's Intent & My Role:** What does the sender want me (${ME}) to do, say, or know? +* **Direct Requests:** Are there explicit questions or calls to action addressed to me (${ME})? +* **Distinguishing Action vs. Response:** + * If the email primarily asks for a *verbal or written communication* (e.g., answering a specific question, providing feedback, confirming receipt, giving thoughts, and is directly addressed to me (${ME})), it's likely \`needs-response\`. + * If the email requires me to *perform a specific task or make a formal decision that goes beyond simply communicating* (e.g., completing a document, scheduling, approving a request, delegating, implementing a change), it's likely \`action-required\`. +* **Urgency/Deadlines:** Are there time-sensitive elements mentioned? +* **Last Message Focus:** Give slightly more weight to the content of the most recent messages in the thread. +* **Keywords:** + * Look for terms like "answer," "reply to," "your thoughts on," "confirm," "acknowledge" for \`needs-response\`. + * Look for terms like "complete," "approve," "review and approve," "sign," "process," "set up," "delegate" for \`action-required\`. + * Look for terms like "FYI," "update," "announcement," "read," "info" for \`for-information\`. +* **Overall Significance:** Is the topic critical or routine, influencing the *type* of information being conveyed? + +**Input:** Email message content +Subject: ${subject} + +--- Email Thread Messages --- +${body} +--- End of Email Thread --- + +**Output:** Return the single best classification and a brief justification. +Format: JSON object with '[Classification]', and '[Reason]' +`.trim(); + +/** + * Classifies an email based on its subject and messages. + * + * @param {string} subject The subject of the email. + * @param {!Array} messages An array of Gmail messages. + * @returns {!Object} The classification object. + */ +function classifyEmail(subject, messages) { + const body = []; + for (let i = 0; i < messages.length; i++) { + const message = messages[i]; + body.push(`Message ${i + 1}:`); + body.push(`From: ${message.getFrom()}`); + body.push(`To:${message.getTo()}`); + body.push('Body:'); + body.push(message.getPlainBody()); + body.push('---'); + } + + // Prepare the request payload + const payload = { + contents: [ + { + role: "user", + parts: [ + { + text: classifyEmailPrompt(subject, body.join('\n')) + } + ] + } + ], + generationConfig: { + temperature: 0, + topK: 1, + topP: 0.1, + seed: 37, + maxOutputTokens: 1024, + responseMimeType: "application/json", + // Expected response format for simpler parsing. + responseSchema: { + type: "object", + properties: { + classification: { + type: "string", + enum: Object.keys(classificationLabels), + }, + reason: { + type: 'string' + } + } + } + } + }; + + // Prepare the request options + const options = { + method: 'POST', + headers: { + 'Authorization': `Bearer ${ScriptApp.getOAuthToken()}` + }, + contentType: 'application/json', + muteHttpExceptions: true, // Set to true to inspect the error response + payload: JSON.stringify(payload) + }; + + // Make the API request + const response = UrlFetchApp.fetch(API_URL, options); + + // Parse the response. There are two levels of JSON responses to parse. + const parsedResponse = JSON.parse(response.getContentText()); + const text = parsedResponse.candidates[0].content.parts[0].text; + const classification = JSON.parse(text); + return classification; +} + diff --git a/ai/email-classifier/Code.gs b/ai/email-classifier/Code.gs new file mode 100644 index 000000000..c802e8192 --- /dev/null +++ b/ai/email-classifier/Code.gs @@ -0,0 +1,67 @@ +/** + * Copyright 2025 Google LLC + * + * Licensed 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. + */ + +/** + * Main function to process emails, classify them, and update a spreadsheet. + * This function searches for unread emails in the inbox from the last 7 days, + * classifies them based on their subject and content, adds labels to the emails, + * creates draft responses for emails that need a response, and logs the + * classification results in a spreadsheet. + * @return {string} The URL of the spreadsheet. + */ +function main() { + // Calculate the date 7 days ago + const today = new Date(); + const sevenDaysAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000); + + // Create a Sheet + const headers = ['Subject', 'Classification', 'Reason']; + const spreadsheet = createSheetWithHeaders(headers); + + // Format the date for the Gmail search query (YYYY/MM/DD) + // Using Utilities.formatDate ensures correct formatting based on script + // timezone + const formattedDate = Utilities.formatDate( + sevenDaysAgo, Session.getScriptTimeZone(), 'yyyy/MM/dd'); + + // Construct the search query + const query = `is:unread after:${formattedDate} in:inbox`; + console.log('Searching for emails with query: ' + query); + + // Search for threads matching the query + // Note: GmailApp.search() returns threads where *at least one* message + // matches + const threads = GmailApp.search(query); + createLabels(); + + for (const thread of threads) { + const messages = thread.getMessages(); + const subject = thread.getFirstMessageSubject(); + const {classification, reason} = classifyEmail(subject, messages); + console.log(`Classification: ${classification}, Reason: ${reason}`); + + thread.addLabel(classificationLabels[classification].gmailLabel); + + if (classification === 'needs-response') { + const draft = draftEmail(subject, messages); + thread.createDraftReplyAll(null, {htmlBody: draft}); + } + + addDataToSheet(spreadsheet, hyperlink(thread), classification, reason); + } + + return showSpreadsheetLink(spreadsheet.getUrl()); +} diff --git a/ai/email-classifier/Constants.gs b/ai/email-classifier/Constants.gs new file mode 100644 index 000000000..2908b83ba --- /dev/null +++ b/ai/email-classifier/Constants.gs @@ -0,0 +1,23 @@ +/** + * Copyright 2025 Google LLC + * + * Licensed 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. + */ + +const PROJECT_ID = ''; +const LOCATION = 'us-central1'; +const API_ENDPOINT = `${LOCATION}-aiplatform.googleapis.com`; +const MODEL = 'gemini-2.5-pro-preview-05-06'; +const GENERATE_CONTENT_API = 'generateContent'; +const API_URL = `https://${API_ENDPOINT}/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL}:${GENERATE_CONTENT_API}`; +const ME = ''; diff --git a/ai/email-classifier/DraftEmail.gs b/ai/email-classifier/DraftEmail.gs new file mode 100644 index 000000000..f016386ba --- /dev/null +++ b/ai/email-classifier/DraftEmail.gs @@ -0,0 +1,141 @@ +/** + * Copyright 2025 Google LLC + * + * Licensed 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. + */ + +/** + * Constructs a prompt for drafting an email. + * + * @param {string} subject The subject of the email thread. + * @param {string} body The body of the email thread. + * @returns {string} The prompt string. + */ +const draftEmailPrompt = (subject, body) => ` +You are an AI assistant. Based on the following email thread: + +Subject: ${subject} + +--- Email Thread Messages --- +${body} +--- End of Email Thread --- + +Task: Considering all messages in this thread: +- Help me ${ME} draft a polite and professional reply that addresses the key points from the most recent message(s) in HTML +- Do NOT include subject of the email + +Draft Criteria: Consider the following: +* Explicit Questions: Are there direct questions posed to me ${ME}, especially in the most recent messages? +* Calls to Action: Are there clear instructions or requests for the me ${ME}, to *do* something? +* Urgency/Deadlines: Does the thread mention deadlines or urgent requests? +* Sender's Intent: What does the sender seem to want? +* My Role: What am I (${ME}) being asked to do or know? +* Keywords: Look for terms like "please," "urgent," "FYI," "question," "task," "review," "approve," "respond," "deadline." +* Last Message Focus: Give slightly more weight to the most recent messages. +* Overall Significance: Is the topic critical or routine? + +Output: Return the draft message in HTML format. +Format: HTML + +Example format: + + + + My Email + + +

Hello, World!

+

This is an HTML email sent from Google Apps Script.

+ + +`.trim(); + +/** + * Drafts an email based on the given subject and messages. + * + * @param {string} subject The subject of the email thread. + * @param {!Array} messages An array of Gmail messages. + * @returns {string|null} The drafted email in HTML format or null if not found. + */ +function draftEmail(subject, messages) { + const body = []; + for (let i = 0; i < messages.length; i++) { + const message = messages[i]; + body.push(`Message ${i + 1}:`); + body.push(`From: ${message.getFrom()}`); + body.push(`To:${message.getTo()}`); + body.push('Body:'); + body.push(message.getPlainBody()); + body.push('---'); + } + + // Prepare the request payload + const payload = { + contents: [ + { + role: "user", + parts: [ + { + text: draftEmailPrompt(subject, body.join('\n')) + } + ] + } + ], + generationConfig: { + temperature: 0, + topK: 1, + topP: 0.1, + seed: 37, + maxOutputTokens: 1024, + responseMimeType: 'text/plain' + } + }; + + // Prepare the request options + const options = { + method: 'POST', + headers: { + 'Authorization': `Bearer ${ScriptApp.getOAuthToken()}` + }, + contentType: 'application/json', + muteHttpExceptions: true, // Set to true to inspect the error response + payload: JSON.stringify(payload) + }; + + // Make the API request + const response = UrlFetchApp.fetch(API_URL, options); + + // Parse the response. There are two levels of JSON responses to parse. + const parsedResponse = JSON.parse(response.getContentText()); + const draft = parsedResponse.candidates[0].content.parts[0].text; + return extractHtmlContent(draft); +} + +/** + * Extracts HTML content from a string. + * + * @param {string} textString The string to extract HTML content from. + * @returns {string|null} The HTML content or null if not found. + */ +function extractHtmlContent(textString) { + // The regex pattern: + // ````html` (literal start marker) + // `(.*?)` (capturing group for any character, non-greedily, including newlines) + // ` ``` ` (literal end marker) + // `s` flag makes '.' match any character including newlines. + const match = textString.match(/```html(.*?)```/s); + if (match && match[1]) { + return match[1]; // Return the content of the first capturing group + } + return null; // Or an empty string, depending on desired behavior if not found +} diff --git a/ai/email-classifier/Labels.gs b/ai/email-classifier/Labels.gs new file mode 100644 index 000000000..4f6505ad3 --- /dev/null +++ b/ai/email-classifier/Labels.gs @@ -0,0 +1,108 @@ +/** + * Copyright 2025 Google LLC + * + * Licensed 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. + */ + +const classificationLabels = { + "action-required": { + "name": "🚨 Action Required", + "textColor": '#ffffff', + "backgroundColor": "#1c4587" + }, + "needs-response": { + "name": "↪️ Needs Response", + "textColor": '#ffffff', + "backgroundColor": "#16a765" + }, + "for-your-info": { + "name": "ℹ️ For Your Info", + "textColor": '#000000', + "backgroundColor": "#fad165" + }, +}; + +/** + * Creates Gmail labels based on the classification labels defined in the `classificationLabels` object. + * If a label already exists, it updates the color. Otherwise, it creates a new label. + * After creating or updating labels, it logs a message to the console and returns the homepage card. + * @returns {!CardService.Card} The homepage card. + */ +function createLabels() { + for (const labelName in classificationLabels) { + const classificationLabel = classificationLabels[labelName]; + const { name, textColor, backgroundColor } = classificationLabel; + let gmailLabel = GmailApp.getUserLabelByName(name); + + if (!gmailLabel) { + gmailLabel = GmailApp.createLabel(name); + Gmail.Users.Labels.update({ + name: name, + color: { + textColor: textColor, + backgroundColor: backgroundColor + } + }, 'me', fetchLabelId(name)); + } + + classificationLabel.gmailLabel = gmailLabel; + } + + console.log('Labels created.'); + return buildHomepageCard(); +} + +/** + * Checks if all classification labels exist in Gmail. + * @returns {boolean} True if all labels exist, false otherwise. + */ +function labelsCreated() { + for (const labelName in classificationLabels) { + const { name } = classificationLabels[labelName]; + let gmailLabel = GmailApp.getUserLabelByName(name); + + if (!gmailLabel) { + return false; + } + } + + return true; +} + +/** + * Fetches the ID of a Gmail label by its name. + * @param {string} name The name of the label. + * @returns {string} The ID of the label. + */ +function fetchLabelId(name) { + return Gmail.Users.Labels.list('me').labels.find(_ => _.name === name).id; +} + +/** + * Removes all classification labels from Gmail. + * After removing labels, it logs a message to the console and returns the homepage card. + * @returns {!CardService.Card} The homepage card. + */ +function removeLabels() { + for (const labelName in classificationLabels) { + const classificationLabel = classificationLabels[labelName]; + let gmailLabel = GmailApp.getUserLabelByName(classificationLabel.name); + + if (gmailLabel) { + gmailLabel.deleteLabel(); + delete classificationLabel.gmailLabel; + } + } + console.log('Labels removed.'); + return buildHomepageCard(); +} diff --git a/ai/email-classifier/README.md b/ai/email-classifier/README.md new file mode 100644 index 000000000..050dd6c43 --- /dev/null +++ b/ai/email-classifier/README.md @@ -0,0 +1,144 @@ +# Email Classifier + +This Apps Script project provides a Gmail add-on that classifies emails based on +their content and subject, and performs actions such as adding labels, creating +draft responses, and logging results in a Google Sheet. It leverages the Gemini +API for natural language processing. + +## Features + +* **Email Classification:** Classifies unread emails in your inbox into three + categories: + * `needs-response`: Emails requiring a direct reply. + * `action-required`: Emails requiring a specific task or decision. + * `for-your-info`: Emails for information only, no action needed. +* **Labeling:** Adds Gmail labels to emails based on their classification. +* **Draft Responses:** Generates draft email responses for emails classified + as `needs-response`. +* **Spreadsheet Logging:** Logs email details, classification, and reason to a + Google Sheet. +* **User-Friendly Interface:** Provides a Gmail add-on with buttons for + classification, label creation, and removal. + +## Setup + +### 1. Enable Google APIs + +* Go to the [Google Cloud Console](https://console.cloud.google.com/). +* Create or select a project. +* **Gemini API:** + * [Enable the Gemini API](https://console.cloud.google.com/flows/enableapi?apiid=aiplatform.googleapis.com) +* **Gmail API:** + * [Enable the Gmail API](https://console.cloud.google.com/flows/enableapi?apiid=gmail.googleapis.com) +* **Sheets API:** + * [Enable the Sheets API](https://console.cloud.google.com/flows/enableapi?apiid=sheets.googleapis.com) + +### 2. Apps Script Project + +1. **Create a New Project:** + * Go to [script.google.com](https://script.google.com). + * Create a new project. +1. **Enable `appsscript.json` Manifest:** + * Go to **Project Settings**. + * Check the **Show "appsscript.json" manifest file in editor** option. +1. **Associate with Google Cloud Project:** + * In your Apps Script project, go to **Project Settings**. + * Under **Google Cloud Platform (GCP) Project**, click **Change project**. + * Enter your Google Cloud Project number and click **Set project**. +1. **Copy Code:** + * Copy the code from each `.gs` file in this directory into the + corresponding file in your Apps Script project. +1. **Update `Constants.gs`:** + * Replace the placeholder values in `Constants.gs`: + * `PROJECT_ID`: Your Google Cloud Project ID. + * `ME`: Your name. +1. **Update `appsscript.gson`:** + * Ensure the `appsscript.gson` file is configured correctly. + +### 3. Configure OAuth Consent Screen + +Google Workspace add-ons require a consent screen configuration. Configuring +your add-on's OAuth consent screen defines what Google displays to users. + +1. **Go to Google Cloud Console:** + * Navigate to the [Google Auth Platform - Branding page](https://console.cloud.google.com/auth/branding). +1. **App Information:** + * **App name:** Enter a name for your add-on (e.g., "Email Classifier"). + * **User support email:** Select your email address. + * **Developer contact information:** Enter your email address. + * Click **Next**. +1. **Audience:** + * Select **Internal**. + * Click **Next**. +1. **Contact Information:** + * Select your email address. + * Click **Next**. +1. **Finish:** + * Check **I agree to the [Google API Services: User Data Policy](https://developers.google.com/terms/api-services-user-data-policy)**. + * Click **Continue**. +1. **Create:** + * Click **Create**. + +### 4. Deploy the Add-on + +1. **Deploy:** + * Click "Deploy" > "Test deployments". + * Select "Gmail add-on". + * Click "Install" to install the add-on for your account. + +## How to Run + +1. **Open Gmail:** + * Open Gmail in your browser. +1. **Open the Add-on:** + * The "Email Classifier" add-on should appear in the right sidebar. +1. **Classify Emails:** + * Click the "Classify emails" button. + * The add-on will process unread emails from the last 7 days. +1. **View Results:** + * A link to the generated Google Sheet will be displayed. + * Open the sheet to view the classification results. +1. **Create/Remove Labels:** + * Use the "Create labels" or "Remove labels" buttons to manage Gmail labels. + +## Code Overview + +* **`Cards.gs`:** + * Defines the UI for the Gmail add-on, including buttons and actions. +* **`ClassifyEmail.gs`:** + * Constructs prompts for the Gemini API. + * Sends email content to the Gemini API for classification. + * Parses the API response. +* **`Code.gs`:** + * Main function to search, classify, label, and log emails. +* **`Constants.gs`:** + * Stores project-specific constants (e.g., API URL, project ID, email). +* **`DraftEmail.gs`:** + * Constructs prompts for the Gemini API to generate draft responses. + * Sends email content to the Gemini API for draft generation. + * Parses the API response. +* **`Labels.gs`:** + * Creates, updates, and removes Gmail labels. +* **`Sheet.gs`:** + * Creates and updates Google Sheets for logging. +* **`appsscript.gson`:** + * Configuration file for the Apps Script project. + +## Important Notes + +* **Gemini API Usage:** This project relies on the Gemini API for natural + language processing. Make sure you have the API enabled and have sufficient + quota. +* **OAuth Scopes:** The `appsscript.json` file includes the necessary OAuth + scopes for Gmail, Sheets, and the Gemini API. +* **Error Handling:** The code includes basic error handling, but you may need + to add more robust error handling for production use. +* **Rate Limits:** Be mindful of API rate limits, especially when processing + large numbers of emails. +* **Security:** Ensure that you are handling user data securely. + +## Disclaimer + +This code is provided as-is, without any warranty. Use at your own risk. + +Feel free to modify and adapt this code to your specific needs. diff --git a/ai/email-classifier/Sheet.gs b/ai/email-classifier/Sheet.gs new file mode 100644 index 000000000..b665d757a --- /dev/null +++ b/ai/email-classifier/Sheet.gs @@ -0,0 +1,84 @@ +/** + * Copyright 2025 Google LLC + * + * Licensed 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. + */ + +/** + * Creates a spreadsheet with the given headers. + * @param {!Array} headers The headers for the spreadsheet. + * @return {!Spreadsheet} The created spreadsheet. + */ +function createSheetWithHeaders(headers) { + const today = new Date().toLocaleString(); + const spreadsheet = SpreadsheetApp.create(`Emails from ${today}`); + const sheet = spreadsheet.getActiveSheet(); + sheet.getRange(1, 1, 1, headers.length).setValues([headers]); + addTable(spreadsheet); + console.log(`Successfully created spreadsheet: ${spreadsheet.getUrl()}`); + return spreadsheet; +} + +/** + * Adds data to the spreadsheet. + * @param {!Spreadsheet} spreadsheet The spreadsheet to add data to. + * @param {string} subject The subject of the email. + * @param {string} classification The classification of the email. + * @param {string} reason The reason for the classification. + */ +function addDataToSheet(spreadsheet, subject, classification, reason) { + const sheet = spreadsheet.getActiveSheet(); + const newRow = [subject, classification, reason]; + sheet.appendRow(newRow); +} + +/** + * Creates a hyperlink for the given thread. + * @param {!GmailThread} thread The thread to create a hyperlink for. + * @return {string} The hyperlink. + */ +function hyperlink(thread) { + const link = `https://mail.google.com/mail/u/0/#inbox/${thread.getId()}`; + return `=HYPERLINK("${link}", "${thread.getFirstMessageSubject()}")`; +} + +/** + * Adds a table to the spreadsheet with a dropdown for classification. + * @param {!Spreadsheet} ss The spreadsheet to add the table to. + */ +function addTable(ss) { + const values = Object.keys(classificationLabels).map(label => { + return { userEnteredValue: label }; + }); + const addTableRequest = { + requests: [{ + addTable: { + table: { + name: 'Email classification', + range: { + sheetId: 0, + startColumnIndex: 0, + endColumnIndex: 2, + }, + columnProperties: [{ + columnIndex: 1, + columnType: 'DROPDOWN', + dataValidationRule: { condition: { type: 'ONE_OF_LIST', values: values } } + }], + } + } + }] + }; + + Sheets.Spreadsheets.batchUpdate(addTableRequest, ss.getId()); +} diff --git a/ai/email-classifier/appsscript.json b/ai/email-classifier/appsscript.json new file mode 100644 index 000000000..baa8ca4ce --- /dev/null +++ b/ai/email-classifier/appsscript.json @@ -0,0 +1,38 @@ +{ + "timeZone": "America/Los_Angeles", + "dependencies": { + "enabledAdvancedServices": [ + { + "userSymbol": "Gmail", + "version": "v1", + "serviceId": "gmail" + }, + { + "userSymbol": "Sheets", + "version": "v4", + "serviceId": "sheets" + } + ] + }, + "oauthScopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/gmail.addons.execute", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/script.external_request", + "https://www.googleapis.com/auth/spreadsheets" + ], + "addOns": { + "common": { + "name": "Email Classifier", + "logoUrl": "https://fonts.gstatic.com/s/i/googlematerialicons/label_important/v20/googblue-24dp/1x/gm_label_important_googblue_24dp.png" + }, + "gmail": { + "homepageTrigger": { + "runFunction": "onHomepageTrigger", + "enabled": true + } + } + }, + "exceptionLogging": "STACKDRIVER", + "runtimeVersion": "V8" +} From c191441d2a28c96f7d7a6538e2a533bb4168081a Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Mon, 12 May 2025 18:13:24 -0700 Subject: [PATCH 27/43] fix: gson -> json (#542) --- ai/email-classifier/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ai/email-classifier/README.md b/ai/email-classifier/README.md index 050dd6c43..e3f7bee9a 100644 --- a/ai/email-classifier/README.md +++ b/ai/email-classifier/README.md @@ -52,8 +52,8 @@ API for natural language processing. * Replace the placeholder values in `Constants.gs`: * `PROJECT_ID`: Your Google Cloud Project ID. * `ME`: Your name. -1. **Update `appsscript.gson`:** - * Ensure the `appsscript.gson` file is configured correctly. +1. **Update `appsscript.json`:** + * Ensure the `appsscript.json` file is configured correctly. ### 3. Configure OAuth Consent Screen @@ -121,7 +121,7 @@ your add-on's OAuth consent screen defines what Google displays to users. * Creates, updates, and removes Gmail labels. * **`Sheet.gs`:** * Creates and updates Google Sheets for logging. -* **`appsscript.gson`:** +* **`appsscript.json`:** * Configuration file for the Apps Script project. ## Important Notes From 06f6d1176052ac169871bac5f9d3fb3242afd3aa Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Wed, 14 May 2025 20:05:26 +0000 Subject: [PATCH 28/43] feat: add OOO assistant sample (#543) * feat: add OOO assitant sample * Change title * Edit comment * Add license info * Fix typo Co-authored-by: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> --------- Co-authored-by: pierrick Co-authored-by: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> --- solutions/ooo-assistant/.clasp.json | 1 + solutions/ooo-assistant/Chat.gs | 69 +++++++++++++ solutions/ooo-assistant/Common.gs | 127 ++++++++++++++++++++++++ solutions/ooo-assistant/README.md | 7 ++ solutions/ooo-assistant/appsscript.json | 40 ++++++++ 5 files changed, 244 insertions(+) create mode 100644 solutions/ooo-assistant/.clasp.json create mode 100644 solutions/ooo-assistant/Chat.gs create mode 100644 solutions/ooo-assistant/Common.gs create mode 100644 solutions/ooo-assistant/README.md create mode 100644 solutions/ooo-assistant/appsscript.json diff --git a/solutions/ooo-assistant/.clasp.json b/solutions/ooo-assistant/.clasp.json new file mode 100644 index 000000000..e10a8d490 --- /dev/null +++ b/solutions/ooo-assistant/.clasp.json @@ -0,0 +1 @@ +{ "scriptId": "16L_UmGrkrDKYWrfw9YlnUnnnWOMBEWywyPrZDZIQqKF17Q97RtZeinqn" } diff --git a/solutions/ooo-assistant/Chat.gs b/solutions/ooo-assistant/Chat.gs new file mode 100644 index 000000000..13a51006f --- /dev/null +++ b/solutions/ooo-assistant/Chat.gs @@ -0,0 +1,69 @@ +/** + * Copyright 2025 Google LLC. + * + * Licensed 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. + */ + +const APP_COMMAND = "app command"; + +/** + * Responds to an ADDED_TO_SPACE event in Google Chat. + * @param {Object} event the event object from Google Workspace Add On + */ +function onAddToSpace(event) { + return sendCreateMessageAction(createCardMessage(help(APP_COMMAND))); +} + +/** + * Responds to a MESSAGE event in Google Chat. + * @param {Object} event the event object from Google Workspace Add On + */ +function onMessage(event) { + return sendCreateMessageAction(createCardMessage(help(APP_COMMAND))); +} + +/** + * Responds to a APP_COMMAND event in Google Chat. + * @param {Object} event the event object from Google Workspace Add On + */ +function onAppCommand(event) { + switch (event.chat.appCommandPayload.appCommandMetadata.appCommandId) { + case 2: // Block out day + return sendCreateMessageAction(createCardMessage(blockDayOut())); + case 3: // Set auto reply + return sendCreateMessageAction(createCardMessage(setAutoReply())); + default: // Help, any other + return sendCreateMessageAction(createCardMessage(help(APP_COMMAND))); + } +} + +/** + * Responds to a REMOVED_FROM_SPACE event in Google Chat. + * @param {Object} event the event object from Google Workspace Add On + */ +function onRemoveFromSpace(event) { + const space = event.chat.removedFromSpacePayload.space; + console.info(`Chat app removed from ${(space.name || "this chat")}`); +} + +// ---------------------- +// Util functions +// ---------------------- + +function createTextMessage(text) { return { text: text }; } + +function createCardMessage(card) { return { cardsV2: [{ card: card }]}; } + +function sendCreateMessageAction(message) { + return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: message }}}}; +} diff --git a/solutions/ooo-assistant/Common.gs b/solutions/ooo-assistant/Common.gs new file mode 100644 index 000000000..7a3dd9fd1 --- /dev/null +++ b/solutions/ooo-assistant/Common.gs @@ -0,0 +1,127 @@ +/** + * Copyright 2025 Google LLC. + * + * Licensed 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. + */ + +const UNIVERSAL_ACTION = "universal action"; + +// ---------------------- +// Homepage util functions +// ---------------------- + +/** + * Responds to homepage load request. + */ +function onHomepage() { + return help(); +} + +// ---------------------- +// Action util functions +// ---------------------- + +// Help action: Show add-on details. +function help(featureName = UNIVERSAL_ACTION) { + return { + header: addOnCardHeader(), + sections: [{ widgets: [{ + decoratedText: { text: "Hi! 👋 Feel free to use the following " + featureName + "s:", wrapText: true }}, { + decoratedText: { text: "⛔ Block day out: I will block out your calendar for today.", wrapText: true }}, { + decoratedText: { text: "↩️ Set auto reply: I will set an OOO auto reply in your Gmail.", wrapText: true } + }]}] + }; +} + +// Block day out action: Adds an all-day event to the user's Google Calendar. +function blockDayOut() { + blockOutCalendar(); + return createActionResponseCard('Your calendar is now blocked out for today.') +} + +// Creates an OOO event in the user's Calendar. +function blockOutCalendar() { + function getDateAndHours(hour, minutes) { + const date = new Date(); + date.setHours(hour); + date.setMinutes(minutes); + date.setSeconds(0); + date.setMilliseconds(0); + return date.toISOString(); + } + + const event = { + start: { dateTime: getDateAndHours(9, 0) }, + end: { dateTime: getDateAndHours(17, 0) }, + eventType: 'outOfOffice', + summary: 'OOO', + outOfOfficeProperties: { + autoDeclineMode: 'declineOnlyNewConflictingInvitations', + declineMessage: 'Declined because OOO.', + } + } + Calendar.Events.insert(event, 'primary'); +} + +// Set auto reply action: Set OOO auto reply in the user's Gmail . +function setAutoReply() { + turnOnAutoResponder(); + return createActionResponseCard('The out of office auto reply has been turned on.') +} + +// Turns on the user's vacation response for today in Gmail. +function turnOnAutoResponder() { + const ONE_DAY_MILLIS = 24 * 60 * 60 * 1000; + const currentTime = (new Date()).getTime(); + Gmail.Users.Settings.updateVacation({ + enableAutoReply: true, + responseSubject: 'I am OOO today', + responseBodyHtml: 'I am OOO today.

Created by OOO Assistant add-on!', + restrictToContacts: true, + restrictToDomain: true, + startTime: currentTime, + endTime: currentTime + ONE_DAY_MILLIS + }, 'me'); +} + +// ---------------------- +// Card util functions +// ---------------------- + +function addOnCardHeader() { + return { + title: "OOO Assistant", + subtitle: "Helping manage your OOO", + imageUrl: "https://goo.gle/3SfMkjb", + }; +} + +// Create an action response card +function createActionResponseCard(text) { + return { + header: addOnCardHeader(), + sections: [{ widgets: [{ decoratedText: { + startIcon: { iconUrl: "https://fonts.gstatic.com/s/i/short-term/web/system/1x/task_alt_gm_grey_48dp.png" }, + text: text, + wrapText: true + }}]}] + }; +} + +// ---------------------- +// Universal action util functions +// ---------------------- + +function respondToUniversalAction(card) { + return CardService.newUniversalActionResponseBuilder().displayAddOnCards([card]).build(); +} diff --git a/solutions/ooo-assistant/README.md b/solutions/ooo-assistant/README.md new file mode 100644 index 000000000..86f4fa53d --- /dev/null +++ b/solutions/ooo-assistant/README.md @@ -0,0 +1,7 @@ +# Build a Google Workspace add-on extending all UIs + +**Warning:** This sample builds a Chat app as a Google Workspace add-on. It's only available in the [Developer Preview Program](https://developers.google.com/workspace/preview). + +The add-on extends the following Google Workspace UIs: Chat, Calendar, Gmail, Drive, Docs, Sheets, and Slides. + +It relies on app commands in Chat, and homepage and universal actions in the others. diff --git a/solutions/ooo-assistant/appsscript.json b/solutions/ooo-assistant/appsscript.json new file mode 100644 index 000000000..8553c6087 --- /dev/null +++ b/solutions/ooo-assistant/appsscript.json @@ -0,0 +1,40 @@ +{ + "timeZone": "America/New_York", + "exceptionLogging": "STACKDRIVER", + "runtimeVersion": "V8", + "dependencies": { + "enabledAdvancedServices": [{ + "userSymbol": "Gmail", + "version": "v1", + "serviceId": "gmail" + }, + { + "userSymbol": "Calendar", + "version": "v3", + "serviceId": "calendar" + }] + }, + "addOns": { + "common": { + "name": "OOO Assistant", + "logoUrl": "https://goo.gle/3SfMkjb", + "homepageTrigger": { + "runFunction": "onHomepage" + }, + "universalActions": [{ + "label": "Block day out", + "runFunction": "blockDayOut" + }, { + "label": "Set auto reply", + "runFunction": "setAutoReply" + }] + }, + "chat": {}, + "calendar": {}, + "gmail": {}, + "drive": {}, + "docs": {}, + "sheets": {}, + "slides": {} + } +} From 9a324121bba6ad61f9474af0ae876641ab75be7b Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Wed, 14 May 2025 20:45:44 +0000 Subject: [PATCH 29/43] fix: Upgrade Ubuntu to supported version (#544) See https://github.com/actions/runner-images/issues/11101 for more details. --- .github/workflows/publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 292075162..f955d2380 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -23,7 +23,7 @@ jobs: concurrency: group: ${{ github.head_ref || github.ref }} cancel-in-progress: false - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v3.0.2 with: From 36483969814bb2cf3e38363dd6814f00b0c25fe0 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Wed, 14 May 2025 16:50:51 -0400 Subject: [PATCH 30/43] fix: Update .clasp.json --- solutions/ooo-assistant/.clasp.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solutions/ooo-assistant/.clasp.json b/solutions/ooo-assistant/.clasp.json index e10a8d490..747d3bffa 100644 --- a/solutions/ooo-assistant/.clasp.json +++ b/solutions/ooo-assistant/.clasp.json @@ -1 +1 @@ -{ "scriptId": "16L_UmGrkrDKYWrfw9YlnUnnnWOMBEWywyPrZDZIQqKF17Q97RtZeinqn" } +{"scriptId": "16L_UmGrkrDKYWrfw9YlnUnnnWOMBEWywyPrZDZIQqKF17Q97RtZeinqn"} From 57f12d81f5073f2f6f10c8f33d351bf5128e36b5 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Wed, 14 May 2025 16:59:33 -0400 Subject: [PATCH 31/43] fix: Upgrade node to clasp-supported version See https://github.com/google/clasp/commit/f5afb06cfdad6ad1d10e0e4170a2a218171d9002 for more details. --- .github/workflows/publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index f955d2380..d3867ba55 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -38,6 +38,6 @@ jobs: CLASP_CREDENTIALS: ${{secrets.CLASP_CREDENTIALS}} - uses: actions/setup-node@v3 with: - node-version: '14' + node-version: '20' - run: npm install -g @google/clasp - run: ./.github/scripts/clasp_push.sh ${{ steps.changed-files.outputs.all_changed_files }} From ae891e4d9a586063ad49a3eff661516ad95aa1ea Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Wed, 14 May 2025 17:01:04 -0400 Subject: [PATCH 32/43] fix: Update .clasp.json From b4cf04dd58e2cdb8a1f4ff0f9034268a7d83546e Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Mon, 19 May 2025 14:00:45 -0400 Subject: [PATCH 33/43] fix: indentation --- solutions/ooo-assistant/appsscript.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/solutions/ooo-assistant/appsscript.json b/solutions/ooo-assistant/appsscript.json index 8553c6087..a95705ef3 100644 --- a/solutions/ooo-assistant/appsscript.json +++ b/solutions/ooo-assistant/appsscript.json @@ -16,18 +16,18 @@ }, "addOns": { "common": { - "name": "OOO Assistant", - "logoUrl": "https://goo.gle/3SfMkjb", - "homepageTrigger": { - "runFunction": "onHomepage" - }, - "universalActions": [{ - "label": "Block day out", - "runFunction": "blockDayOut" - }, { - "label": "Set auto reply", - "runFunction": "setAutoReply" - }] + "name": "OOO Assistant", + "logoUrl": "https://goo.gle/3SfMkjb", + "homepageTrigger": { + "runFunction": "onHomepage" + }, + "universalActions": [{ + "label": "Block day out", + "runFunction": "blockDayOut" + }, { + "label": "Set auto reply", + "runFunction": "setAutoReply" + }] }, "chat": {}, "calendar": {}, From 6163eca7a8056d4a34ec594a9fa59ce4d435cd2f Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Mon, 19 May 2025 14:02:56 -0400 Subject: [PATCH 34/43] fix: use default function names --- solutions/ooo-assistant/Chat.gs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solutions/ooo-assistant/Chat.gs b/solutions/ooo-assistant/Chat.gs index 13a51006f..0a8f3a59b 100644 --- a/solutions/ooo-assistant/Chat.gs +++ b/solutions/ooo-assistant/Chat.gs @@ -20,7 +20,7 @@ const APP_COMMAND = "app command"; * Responds to an ADDED_TO_SPACE event in Google Chat. * @param {Object} event the event object from Google Workspace Add On */ -function onAddToSpace(event) { +function onAddedToSpace(event) { return sendCreateMessageAction(createCardMessage(help(APP_COMMAND))); } @@ -51,7 +51,7 @@ function onAppCommand(event) { * Responds to a REMOVED_FROM_SPACE event in Google Chat. * @param {Object} event the event object from Google Workspace Add On */ -function onRemoveFromSpace(event) { +function onRemovedFromSpace(event) { const space = event.chat.removedFromSpacePayload.space; console.info(`Chat app removed from ${(space.name || "this chat")}`); } From 9d4f74231bd86a6c0f12adf81ad7f0352ee11361 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Tue, 20 May 2025 16:55:40 -0400 Subject: [PATCH 35/43] feat: remove dead code --- solutions/ooo-assistant/Common.gs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/solutions/ooo-assistant/Common.gs b/solutions/ooo-assistant/Common.gs index 7a3dd9fd1..f6499ad42 100644 --- a/solutions/ooo-assistant/Common.gs +++ b/solutions/ooo-assistant/Common.gs @@ -117,11 +117,3 @@ function createActionResponseCard(text) { }}]}] }; } - -// ---------------------- -// Universal action util functions -// ---------------------- - -function respondToUniversalAction(card) { - return CardService.newUniversalActionResponseBuilder().displayAddOnCards([card]).build(); -} From 101ce15d375f70ce5b392cbf56fdde89c38d1b6e Mon Sep 17 00:00:00 2001 From: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> Date: Fri, 20 Jun 2025 18:21:09 -0700 Subject: [PATCH 36/43] feat: Gmail List messages (#552) --- advanced/gmail.gs | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/advanced/gmail.gs b/advanced/gmail.gs index a1195c6b7..ec08431bf 100644 --- a/advanced/gmail.gs +++ b/advanced/gmail.gs @@ -46,7 +46,7 @@ function listInboxSnippets() { pageToken: pageToken }); if (threadList.threads && threadList.threads.length > 0) { - threadList.threads.forEach(function(thread) { + threadList.threads.forEach(function (thread) { console.log('Snippet: %s', thread.snippet); }); } @@ -90,8 +90,8 @@ function logRecentHistory() { }); const history = recordList.history; if (history && history.length > 0) { - history.forEach(function(record) { - record.messages.forEach(function(message) { + history.forEach(function (record) { + record.messages.forEach(function (message) { if (changed.indexOf(message.id) === -1) { changed.push(message.id); } @@ -101,7 +101,7 @@ function logRecentHistory() { pageToken = recordList.nextPageToken; } while (pageToken); - changed.forEach(function(id) { + changed.forEach(function (id) { console.log('Message Changed: %s', id); }); } catch (err) { @@ -130,3 +130,33 @@ function getRawMessage() { } } // [END gmail_raw] + +// [START gmail_list_messages] +/** + * Lists unread messages in the user's inbox using the advanced Gmail service. + */ +function listMessages() { + // The special value 'me' indicates the authenticated user. + const userId = 'me'; + + // Define optional parameters for the request. + const options = { + maxResults: 10, // Limit the number of messages returned. + q: 'is:unread', // Search for unread messages. + }; + + try { + // Call the Gmail.Users.Messages.list method. + const response = Gmail.Users.Messages.list(userId, options); + const messages = response.messages; + console.log('Unread Messages:'); + + for (const message of messages) { + console.log(`- Message ID: ${message.id}`); + } + } catch (err) { + // Log any errors to the Apps Script execution log. + console.log(`Failed with error: ${err.message}`); + } +} +// [END gmail_list_messages] From e97e4d4fbe2691720c6c6c7cc9c9e9e02221280c Mon Sep 17 00:00:00 2001 From: Mohammad Al-Ansari Date: Tue, 8 Jul 2025 19:24:17 +0300 Subject: [PATCH 37/43] fix: Updated code files to match latest working code in CloudSkillsBost. Updated README.md. (#553) --- gmail-sentiment-analysis/Cards.gs | 127 +++++++++++++++-------- gmail-sentiment-analysis/Code.gs | 8 +- gmail-sentiment-analysis/Gmail.gs | 118 ++++++++++----------- gmail-sentiment-analysis/README.md | 65 ++++++------ gmail-sentiment-analysis/Vertex.gs | 91 ++++++++-------- gmail-sentiment-analysis/appsscript.json | 6 +- 6 files changed, 226 insertions(+), 189 deletions(-) diff --git a/gmail-sentiment-analysis/Cards.gs b/gmail-sentiment-analysis/Cards.gs index 5b1e16759..1c1fe6df4 100644 --- a/gmail-sentiment-analysis/Cards.gs +++ b/gmail-sentiment-analysis/Cards.gs @@ -15,54 +15,93 @@ limitations under the License. */ /** - * Builds the card to display in the side panel of gmail. - * @return {CardService.Card} The card to show to the user. + * Builds the main card displayed on the Gmail homepage. + * + * @returns {Card} - The homepage card. */ - function buildHomepageCard() { - const imageUrl = 'https://fonts.gstatic.com/s/i/googlematerialicons/dynamic_feed/v6/black-24dp/1x/gm_dynamic_feed_black_24dp.png'; - - const cardHeader = CardService.newCardHeader() - .setImageUrl(imageUrl) - .setImageStyle(CardService.ImageStyle.CIRCLE) - .setTitle("Analyze your Gmail"); - - const analyzeSentimentAction = CardService.newAction() - .setFunctionName('analyzeSentiment'); - const analyzeSentimentBtn = CardService.newTextButton() - .setText('Analyze emails') - .setOnClickAction(analyzeSentimentAction) - .setTextButtonStyle(CardService.TextButtonStyle.FILLED) - .setBackgroundColor('#FF0000'); - - const generateSampleEmailAction = CardService.newAction() - .setFunctionName('generateSampleEmails'); - - const generateSampleEmailsBtn = CardService.newTextButton() - .setText('Generate sample emails') - .setOnClickAction(generateSampleEmailAction) - .setTextButtonStyle(CardService.TextButtonStyle.FILLED) - .setBackgroundColor('#34A853'); - - const buttonSet = CardService.newButtonSet() - .addButton(generateSampleEmailsBtn) - .addButton(analyzeSentimentBtn); - - const section = CardService.newCardSection() - .addWidget(buttonSet); - - const card = CardService.newCardBuilder() - .setHeader(cardHeader) - .addSection(section); - - return card.build(); + // Create a new card builder + const cardBuilder = CardService.newCardBuilder(); + + // Create a card header + const cardHeader = CardService.newCardHeader(); + cardHeader.setImageUrl('https://fonts.gstatic.com/s/i/googlematerialicons/mail/v6/black-24dp/1x/gm_mail_black_24dp.png'); + cardHeader.setImageStyle(CardService.ImageStyle.CIRCLE); + cardHeader.setTitle("Analyze your Gmail"); + + // Add the header to the card + cardBuilder.setHeader(cardHeader); + + // Create a card section + const cardSection = CardService.newCardSection(); + + // Create buttons for generating sample emails and analyzing sentiment + const buttonSet = CardService.newButtonSet(); + + // Create "Generate sample emails" button + const generateButton = createFilledButton('Generate sample emails', 'generateSampleEmails', '#34A853'); + buttonSet.addButton(generateButton); + + // Create "Analyze emails" button + const analyzeButton = createFilledButton('Analyze emails', 'analyzeSentiment', '#FF0000'); + buttonSet.addButton(analyzeButton); + + // Add the button set to the section + cardSection.addWidget(buttonSet); + + // Add the section to the card + cardBuilder.addSection(cardSection); + + // Build and return the card + return cardBuilder.build(); } -function buildNotificationResponse(notificationText) { - const notification = CardService.newNotification().setText(notificationText); +/** + * Creates a filled text button with the specified text, function, and color. + * + * @param {string} text - The text to display on the button. + * @param {string} functionName - The name of the function to call when the button is clicked. + * @param {string} color - The background color of the button. + * @returns {TextButton} - The created text button. + */ +function createFilledButton(text, functionName, color) { + // Create a new text button + const textButton = CardService.newTextButton(); + + // Set the button text + textButton.setText(text); + + // Set the action to perform when the button is clicked + const action = CardService.newAction(); + action.setFunctionName(functionName); + textButton.setOnClickAction(action); - const actionResponse = CardService.newActionResponseBuilder() - .setNotification(notification); + // Set the button style to filled + textButton.setTextButtonStyle(CardService.TextButtonStyle.FILLED); - return actionResponse.build(); + // Set the background color + textButton.setBackgroundColor(color); + + return textButton; } + +/** + * Creates a notification response with the specified text. + * + * @param {string} notificationText - The text to display in the notification. + * @returns {ActionResponse} - The created action response. + */ +function buildNotificationResponse(notificationText) { + // Create a new notification + const notification = CardService.newNotification(); + notification.setText(notificationText); + + // Create a new action response builder + const actionResponseBuilder = CardService.newActionResponseBuilder(); + + // Set the notification for the action response + actionResponseBuilder.setNotification(notification); + + // Build and return the action response + return actionResponseBuilder.build(); +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/Code.gs b/gmail-sentiment-analysis/Code.gs index 72372a106..c803c5690 100644 --- a/gmail-sentiment-analysis/Code.gs +++ b/gmail-sentiment-analysis/Code.gs @@ -15,9 +15,11 @@ limitations under the License. */ /** - * Callback for rendering the homepage card. - * @return {CardService.Card} The card to show to the user. + * Triggered when the add-on is opened from the Gmail homepage. + * + * @param {Object} e - The event object. + * @returns {Card} - The homepage card. */ function onHomepageTrigger(e) { return buildHomepageCard(); -} +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/Gmail.gs b/gmail-sentiment-analysis/Gmail.gs index 350a1e605..593ee3ba1 100644 --- a/gmail-sentiment-analysis/Gmail.gs +++ b/gmail-sentiment-analysis/Gmail.gs @@ -15,95 +15,95 @@ limitations under the License. */ /** - * Callback for initiating the sentiment analysis. - * @return {CardService.Card} The card to show to the user. + * Analyzes the sentiment of the first 10 threads in the inbox + * and labels them accordingly. + * + * @returns {ActionResponse} - A notification confirming completion. */ - function analyzeSentiment() { + // Analyze and label emails analyzeAndLabelEmailSentiment(); + + // Return a notification return buildNotificationResponse("Successfully completed sentiment analysis"); } /** - * Analyzes the sentiment of recent emails in the inbox and labels threads with - * the appropriate sentiment label. + * Analyzes the sentiment of emails and applies appropriate labels. */ function analyzeAndLabelEmailSentiment() { - const positiveLabelName = "HAPPY TONE 😊"; - const neutralLabelName = "NEUTRAL TONE 😐"; - const negativeLabelName = "UPSET TONE 😡"; - const maxThreads = 10; + // Define label names + const labelNames = ["HAPPY TONE 😊", "NEUTRAL TONE 😐", "UPSET TONE 😡"]; - // Get the label, or create it if it doesn't exist. - const positiveLabel = GmailApp.getUserLabelByName(positiveLabelName) || GmailApp.createLabel(positiveLabelName); - const neutralLabel = GmailApp.getUserLabelByName(neutralLabelName) || GmailApp.createLabel(neutralLabelName); - const negativeLabel = GmailApp.getUserLabelByName(negativeLabelName) || GmailApp.createLabel(negativeLabelName); + // Get or create labels for each sentiment + const positiveLabel = GmailApp.getUserLabelByName(labelNames[0]) || GmailApp.createLabel(labelNames[0]); + const neutralLabel = GmailApp.getUserLabelByName(labelNames[1]) || GmailApp.createLabel(labelNames[1]); + const negativeLabel = GmailApp.getUserLabelByName(labelNames[2]) || GmailApp.createLabel(labelNames[2]); - // Get the first 'maxThreads' threads from the inbox. - const threads = GmailApp.getInboxThreads(0, maxThreads); + // Get the first 10 threads in the inbox + const threads = GmailApp.getInboxThreads(0, 10); - // Process each thread. + // Iterate through each thread for (const thread of threads) { + // Iterate through each message in the thread const messages = thread.getMessages(); - - // Process each message within the thread. for (const message of messages) { - const emailText = message.getPlainBody(); - const sentiment = processSentiment(emailText); - - switch (sentiment) { - case 'positive': - thread.addLabel(positiveLabel); - break; - case 'neutral': - thread.addLabel(neutralLabel); - break; - case 'negative': - thread.addLabel(negativeLabel); - break; - default: - break; + // Get the plain text body of the message + const emailBody = message.getPlainBody(); + + // Analyze the sentiment of the email body + const sentiment = processSentiment(emailBody); + + // Apply the appropriate label based on the sentiment + if (sentiment === 'positive') { + thread.addLabel(positiveLabel); + } else if (sentiment === 'neutral') { + thread.addLabel(neutralLabel); + } else if (sentiment === 'negative') { + thread.addLabel(negativeLabel); } } } } /** - * Create sample emails + * Generates sample emails for testing the sentiment analysis. + * + * @returns {ActionResponse} - A notification confirming email generation. */ function generateSampleEmails() { - // Get active user's email + // Get the current user's email address const userEmail = Session.getActiveUser().getEmail(); - // Send emails - GmailApp.sendEmail( - userEmail, - 'Thank you for amazing service!', - 'Hi, I really enjoyed working with you. Thank you again!', + // Define sample emails + const sampleEmails = [ { - name: 'Customer A', + subject: 'Thank you for amazing service!', + body: 'Hi, I really enjoyed working with you. Thank you again!', + name: 'Customer A' }, - ); - - GmailApp.sendEmail( - userEmail, - 'Request for information', - 'Hello, I need more information on your recent product launch. Thank you.', { - name: 'Customer B', + subject: 'Request for information', + body: 'Hello, I need more information on your recent product launch. Thank you.', + name: 'Customer B' }, - ); - - GmailApp.sendEmail( - userEmail, - 'Complaint!', - '', { - name: 'Customer C', + subject: 'Complaint!', + body: '', htmlBody: `

Hello, You are late in delivery, again.

-

Please contact me ASAP before I cancel our subscription.

`, - }, - ); +

Please contact me ASAP before I cancel our subscription.

`, + name: 'Customer C' + } + ]; + + // Send each sample email + for (const email of sampleEmails) { + GmailApp.sendEmail(userEmail, email.subject, email.body, { + name: email.name, + htmlBody: email.htmlBody + }); + } + // Return a notification return buildNotificationResponse("Successfully generated sample emails"); -} +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/README.md b/gmail-sentiment-analysis/README.md index 72169a2d5..9e441e925 100644 --- a/gmail-sentiment-analysis/README.md +++ b/gmail-sentiment-analysis/README.md @@ -2,10 +2,13 @@ This project guides you through building a Google Workspace Add-on that leverages Gemini and Vertex AI for conducting sentiment analysis on emails in -Gmail. The add-on automatically identifies emails with a negative tone and +Gmail. The add-on automatically identifies emails with different tones and labels them accordingly, helping prioritize customer service responses or identify potentially sensitive emails. +> [!NOTE] +You can also run this lab on [https://www.cloudskillsboost.google/catalog_lab/31942](Cloud Skills Boost). + ## What you'll learn * Build a Google Workspace Add-on @@ -22,22 +25,15 @@ identify potentially sensitive emails. ## Steps +### Setup Google Cloud Platform -### Set up Cloud Console - -1. Open the provided **Cloud Console URL** in your incognito window. -2. Check **I agree** and click **AGREE AND CONTINUE**. - -### Enable Vertex AI API - -1. Open the provided link to enable the Vertex AI API. -2. Click **Next** to confirm the project. -3. Click **Enable**. - +1. Create a new project. +2. Associate a billing account with the project. +3. Enable the Vertex AI API. -### Set Up the Apps Script Project +### Setup an Apps Script Project -1. Open the provided **Apps Script link** in a new incognito tab. +1. Navigate to [https://script.google.com](Apps Script homepage). 2. Click **New project**. 3. Rename the project to "Gmail Sentiment Analysis with Gemini and Vertex AI". 4. In Project Settings (gear icon), select "Show 'appsscript.json' manifest file in editor". @@ -45,45 +41,44 @@ identify potentially sensitive emails. 6. Copy the **Project number** (numerical value, not Project ID) from Cloud Console. 7. Paste the Project number into the Apps Script project settings and click **Set project**. 8. Click the **OAuth Consent details** link in the error message. -9. Click **CONFIGURE CONSENT SCREEN**. -10. Select **Internal** for User Type and click **CREATE**. -11. Set the App name to "Gmail Sentiment Analysis with Gemini and Vertex AI". -12. Set the User support email and Developer contact information using the provided email. -13. Click **SAVE AND CONTINUE** twice. -14. Return to the Apps Script tab and set the project. - - -### Make a copy of the Apps Script project - -1. Make a copy of this -[Apps Script project](https://script.google.com/corp/home/projects/1Z2gfvr0oYn68ppDtQbv0qIuKKVWhvwOTr-gCE0GFKVjNk8NDlpfJAGAr). -1. Rename the Apps Script project to `Gmail Sentiment Analysis with Gemini and Vertex AI`. -1. Make sure to replace `[ADD YOUR GCP PROJECT ID HERE]` in `Vertex.gs` with your actual **Project ID**. -1. Click **Save**. - +9. Click **Configure Consent Screen**. +10. Click on **Get started** and follow the prompts to configure the consent screen as follows: + 1. Set the App name to "Gmail Sentiment Analysis with Gemini and Vertex AI". + 2. Set the User support email to your email. + 3. Select **Internal** for Audience. + 4. Set the email address under Contact Information to your email. + 5. Review and agree to the "Google API Services: User Data Policy". + 6. Click on **Create**. +11. Return to the Apps Script tab and set the project number again. You should not get an error this time. + +### Populate the Apps Script project with code + +1. Replace the content of `appsscript.json` and `Code.gs` with the code from this repo. +2. Create new files (`Cards`, `Gmail`, `Vertex`) and replace the contect with the relevant code from this repo. +3. Open the `Vertex.gs` file and replace the `PROJECT_ID` value with your Google Cloud project ID. +4. Make sure to save the content before proceeding. ### Deploy the Add-on -1. Click **Deploy > Test deployments**. +1. On the Apps Script screen, click **Deploy > Test deployments**. 2. Confirm **Gmail** is listed under Application(s) and click **Install**. 3. Click **Done**. ### Verify Installation -Refresh the Gmail tab. You should see a new add-on icon in the right side panel. +Open [https://mail.google.com/](Gmail) and expand the right side panel. You should see a new add-on icon in the right side panel. **Troubleshooting:** * Refresh the browser if the add-on isn't visible. * Uninstall and reinstall the add-on from the Test deployments window if it's still missing. - ### Run the Add-on 1. **Open the Add-on:** Click the add-on icon in the Gmail side panel. -2. **Authorize the Add-on:** Click **Authorize access**. Select your email and click **Allow** in the consent screen. +2. **Authorize the Add-on:** Grant the necessary permissions for the add-on to access your inbox and connect with Vertex AI. 3. **Generate sample emails:** Click the green "Generate sample emails" button. -4. **Wait for emails:** Wait for the sample emails to appear in your inbox, or refresh. +4. **Wait for emails:** Wait for the sample emails to appear in your inbox, or refresh your inbox. 5. **Start the analysis:** Click the red "Analyze emails" button. 6. **Wait for labels:** Wait for the "UPSET TONE 😡" label to appear on negative emails, or refresh. 7. **Close the Add-on:** Click the X in the top right corner of the side panel. diff --git a/gmail-sentiment-analysis/Vertex.gs b/gmail-sentiment-analysis/Vertex.gs index bbcec8c43..959ebdc52 100644 --- a/gmail-sentiment-analysis/Vertex.gs +++ b/gmail-sentiment-analysis/Vertex.gs @@ -14,69 +14,72 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Replace with your project ID const PROJECT_ID = '[ADD YOUR GCP PROJECT ID HERE]'; + +// Location for your Vertex AI model const VERTEX_AI_LOCATION = 'us-central1'; -const MODEL_ID = 'gemini-1.5-flash'; + +// Model ID to use for sentiment analysis +const MODEL_ID = 'gemini-2.5-flash'; /** - * Packages prompt and necessary settings, then sends a request to - * Vertex API. - * A check is performed to see if the response from Vertex AI contains FALSE as a value. - * Returns the outcome of that check which is a boolean. + * Sends the email text to Vertex AI for sentiment analysis. * - * @param emailText - Email message that is sent to the model. + * @param {string} emailText - The text of the email to analyze. + * @returns {string} - The sentiment of the email ('positive', 'negative', or 'neutral'). */ - function processSentiment(emailText) { - const prompt = `Analyze the sentiment of the following message: ${emailText}`; + // Construct the API endpoint URL + const apiUrl = `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${VERTEX_AI_LOCATION}/publishers/google/models/${MODEL_ID}:generateContent`; - const request = { - "contents": [{ - "role": "user", - "parts": [{ - "text": prompt, - }] - }], - "generationConfig": { - "temperature": 0.9, - "maxOutputTokens": 1024, - "responseMimeType": "application/json", - "responseSchema": { - "type": "object", - "properties": { - "response": { - "type": "string", - "enum": [ - "positive", - "negative", - "neutral", - ] + // Prepare the request payload + const payload = { + contents: [ + { + role: "user", + parts: [ + { + text: `Analyze the sentiment of the following message: ${emailText}` + } + ] + } + ], + generationConfig: { + temperature: 0.9, + maxOutputTokens: 1024, + responseMimeType: "application/json", + // Expected response format for simpler parsing. + responseSchema: { + type: "object", + properties: { + response: { + type: "string", + enum: ["positive", "negative", "neutral"] } } } } }; - const fetchOptions = { + // Prepare the request options + const options = { method: 'POST', headers: { 'Authorization': `Bearer ${ScriptApp.getOAuthToken()}` }, contentType: 'application/json', - muteHttpExceptions: true, - payload: JSON.stringify(request), - } + muteHttpExceptions: true, // Set to true to inspect the error response + payload: JSON.stringify(payload) + }; - const url = - `https://${VERTEX_AI_LOCATION}-aiplatform.googleapis.com/v1/` + - `projects/${PROJECT_ID}/` + - `locations/${VERTEX_AI_LOCATION}/` + - `publishers/google/` + - `models/${MODEL_ID}:generateContent`; + // Make the API request + const response = UrlFetchApp.fetch(apiUrl, options); - const response = UrlFetchApp.fetch(url, fetchOptions); - const payload = JSON.parse(response.getContentText()); - const text = JSON.parse(payload.candidates[0].content.parts[0].text); + // Parse the response. There are two levels of JSON responses to parse. + const parsedResponse = JSON.parse(response.getContentText()); + const sentimentResponse = JSON.parse(parsedResponse.candidates[0].content.parts[0].text).response; - return text.response; -} + // Return the sentiment + return sentimentResponse; +} \ No newline at end of file diff --git a/gmail-sentiment-analysis/appsscript.json b/gmail-sentiment-analysis/appsscript.json index b6e23d4f2..c1085b5f1 100644 --- a/gmail-sentiment-analysis/appsscript.json +++ b/gmail-sentiment-analysis/appsscript.json @@ -6,14 +6,12 @@ "https://www.googleapis.com/auth/gmail.labels", "https://www.googleapis.com/auth/gmail.modify", "https://www.googleapis.com/auth/script.external_request", - "https://www.googleapis.com/auth/script.locale", "https://www.googleapis.com/auth/userinfo.email" ], "addOns": { "common": { "name": "Sentiment Analysis", - "logoUrl": "https://fonts.gstatic.com/s/i/googlematerialicons/dynamic_feed/v6/black-24dp/1x/gm_dynamic_feed_black_24dp.png", - "useLocaleFromApp": true + "logoUrl": "https://fonts.gstatic.com/s/i/googlematerialicons/sentiment_extremely_dissatisfied/v6/black-24dp/1x/gm_sentiment_extremely_dissatisfied_black_24dp.png" }, "gmail": { "homepageTrigger": { @@ -24,4 +22,4 @@ }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8" -} +} \ No newline at end of file From 9066cac97b1fd72fa6809f207577f008a0a8b433 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Mon, 4 Aug 2025 12:56:51 -0400 Subject: [PATCH 38/43] Update README.md --- solutions/ooo-assistant/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solutions/ooo-assistant/README.md b/solutions/ooo-assistant/README.md index 86f4fa53d..c7a524099 100644 --- a/solutions/ooo-assistant/README.md +++ b/solutions/ooo-assistant/README.md @@ -1,7 +1,7 @@ # Build a Google Workspace add-on extending all UIs -**Warning:** This sample builds a Chat app as a Google Workspace add-on. It's only available in the [Developer Preview Program](https://developers.google.com/workspace/preview). - The add-on extends the following Google Workspace UIs: Chat, Calendar, Gmail, Drive, Docs, Sheets, and Slides. It relies on app commands in Chat, and homepage and universal actions in the others. + +It's featured in [this YT video](https://www.youtube.com/watch?v=pDthZ2xssDc). From 34d0e2dec69cb1f5dd74f40ed6682306626db3d5 Mon Sep 17 00:00:00 2001 From: tabrethauer <99440561+tabrethauer@users.noreply.github.com> Date: Thu, 14 Aug 2025 14:27:17 -0500 Subject: [PATCH 39/43] feat: Create Apps Script examples for new DV360 and DBM services (#555) * feat: Create Apps Script examples for new DV360 and DBM services * fix: Update region tags in doubleclickbidmanager.gs --- advanced/displayvideo.gs | 92 ++++++++++++++++++ advanced/doubleclickbidmanager.gs | 126 +++++++++++++++++++++++++ advanced/test_displayvideo.gs | 48 ++++++++++ advanced/test_doubleclickbidmanager.gs | 48 ++++++++++ 4 files changed, 314 insertions(+) create mode 100644 advanced/displayvideo.gs create mode 100644 advanced/doubleclickbidmanager.gs create mode 100644 advanced/test_displayvideo.gs create mode 100644 advanced/test_doubleclickbidmanager.gs diff --git a/advanced/displayvideo.gs b/advanced/displayvideo.gs new file mode 100644 index 000000000..a01ac190d --- /dev/null +++ b/advanced/displayvideo.gs @@ -0,0 +1,92 @@ +/** + * Copyright Google LLC + * + * Licensed 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 + * + * https://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. + */ +// [START apps_script_dv360_list_partners] +/** + * Logs all of the partners available in the account. + */ +function listPartners() { + // Retrieve the list of available partners + try { + const partners = DisplayVideo.Partners.list(); + + if (partners.partners) { + // Print out the ID and name of each + for (let i = 0; i < partners.partners.length; i++) { + const partner = partners.partners[i]; + console.log('Found partner with ID %s and name "%s".', + partner.partnerId, partner.displayName); + } + } + } catch (e) { + // TODO (Developer) - Handle exception + console.log('Failed with error: %s', e.error); + } +} +// [END apps_script_dv360_list_partners] + +// [START apps_script_dv360_list_active_campaigns] +/** + * Logs names and ID's of all active campaigns. + * Note the use of paging tokens to retrieve the whole list. + */ +function listActiveCampaigns() { + const advertiserId = '1234567'; // Replace with your advertiser ID. + let result; + let pageToken; + try { + do { + result = DisplayVideo.Advertisers.Campaigns.list(advertiserId, { + 'filter': 'entityStatus="ENTITY_STATUS_ACTIVE"', + 'pageToken': pageToken + }); + if (result.campaigns) { + for (let i = 0; i < result.campaigns.length; i++) { + const campaign = result.campaigns[i]; + console.log('Found campaign with ID %s and name "%s".', + campaign.campaignId, campaign.displayName); + } + } + pageToken = result.nextPageToken; + } while (pageToken); + } catch (e) { + // TODO (Developer) - Handle exception + console.log('Failed with error: %s', e.error); + } +} +// [END apps_script_dv360_list_active_campaigns] + +// [START apps_script_dv360_update_line_item_name] +/** + * Updates the display name of a line item + */ +function updateLineItemName() { + const advertiserId = '1234567'; // Replace with your advertiser ID. + const lineItemId = '123456789'; //Replace with your line item ID. + const updateMask = "displayName"; + + const lineItemDef = {displayName: 'New Line Item Name (updated from Apps Script!)'}; + + try { + const lineItem = DisplayVideo.Advertisers.LineItems + .patch(lineItemDef, advertiserId, lineItemId, {updateMask:updateMask}); + + + } catch (e) { + // TODO (Developer) - Handle exception + console.log('Failed with error: %s', e.error); + } +} +// [END apps_script_dv360_update_line_item_name] diff --git a/advanced/doubleclickbidmanager.gs b/advanced/doubleclickbidmanager.gs new file mode 100644 index 000000000..9645ad7d2 --- /dev/null +++ b/advanced/doubleclickbidmanager.gs @@ -0,0 +1,126 @@ +/** + * Copyright Google LLC + * + * Licensed 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 + * + * https://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. + */ +// [START apps_script_dcbm_list_queries] +/** + * Logs all of the queries available in the account. + */ +function listQueries() { + // Retrieve the list of available queries + try { + const queries = DoubleClickBidManager.Queries.list(); + + if (queries.queries) { + // Print out the ID and name of each + for (let i = 0; i < queries.queries.length; i++) { + const query = queries.queries[i]; + console.log('Found query with ID %s and name "%s".', + query.queryId, query.metadata.title); + } + } + } catch (e) { + // TODO (Developer) - Handle exception + console.log('Failed with error: %s', e.error); + } +} +// [END apps_script_dcbm_list_queries] + +// [START apps_script_dcbm_create_and_run_query] +/** + * Create and run a new DBM Query + */ +function createAndRunQuery() { + let result; + let execution; + //We leave the default date range blank for the report run to + //use the value defined during query creation + let defaultDateRange = {} + let partnerId = "1234567" //Replace with your Partner ID + let query = { + "metadata": { + "title": "Apps Script Example Report", + "dataRange": { + "range": "YEAR_TO_DATE" + }, + "format": "CSV" + }, + "params": { + "type": "STANDARD", + "groupBys": [ + "FILTER_PARTNER", + "FILTER_PARTNER_NAME", + "FILTER_ADVERTISER", + "FILTER_ADVERTISER_NAME", + ], + "filters": [ + {"type": "FILTER_PARTNER","value": partnerId} + ], + "metrics": [ + "METRIC_IMPRESSIONS" + ] + }, + "schedule": { + "frequency": "ONE_TIME" + } + } + + try { + result = DoubleClickBidManager.Queries.create(query); + if (result.queryId) { + console.log('Created query with ID %s and name "%s".', + result.queryId, result.metadata.title); + execution = DoubleClickBidManager.Queries.run(defaultDateRange, result.queryId); + if(execution.key){ + console.log('Created query report with query ID %s and report ID "%s".', + execution.key.queryId, execution.key.reportId); + } + } + } catch (e) { + // TODO (Developer) - Handle exception + console.log(e) + console.log('Failed with error: %s', e.error); + } +} +// [END apps_script_dcbm_create_and_run_query] + +// [START apps_script_dcbm_fetch_report] +/** + * Fetches a report file + */ +function fetchReport() { + const queryId = '1234567'; // Replace with your query ID. + const orderBy = "key.reportId desc"; + + try { + const report = DoubleClickBidManager.Queries.Reports.list(queryId, {orderBy:orderBy}); + if(report.reports){ + const firstReport = report.reports[0]; + if(firstReport.metadata.status.state == 'DONE'){ + const reportFile = UrlFetchApp.fetch(firstReport.metadata.googleCloudStoragePath) + console.log("Printing report content to log...") + console.log(reportFile.getContentText()) + } + else{ + console.log("Report status is %s, and is not available for download", firstReport.metadata.status.state) + } + } + + } catch (e) { + // TODO (Developer) - Handle exception + console.log(e) + console.log('Failed with error: %s', e.error); + } +} +// [END apps_script_dcbm_fetch_report] diff --git a/advanced/test_displayvideo.gs b/advanced/test_displayvideo.gs new file mode 100644 index 000000000..b7a454cab --- /dev/null +++ b/advanced/test_displayvideo.gs @@ -0,0 +1,48 @@ +/** + * Copyright Google LLC + * + * Licensed 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 + * + * https://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. + */ + +/** + * Tests listPartners function of displayvideo.gs + */ +function itShouldListPartners() { + console.log('> itShouldListPartners'); + listPartners(); +} + +/** + * Tests listActiveCampaigns function of displayvideo.gs + */ +function itShouldListActiveCampaigns() { + console.log('> itShouldListActiveCampaigns'); + listActiveCampaigns(); +} + +/** + * Tests updateLineItemName function of displayvideo.gs + */ +function itShouldUpdateLineItemName() { + console.log('> itShouldUpdateLineItemName'); + updateLineItemName(); +} + +/** + * Run all tests + */ +function RUN_ALL_TESTS() { + itShouldListPartners(); + itShouldListActiveCampaigns(); + itShouldUpdateLineItemName(); +} diff --git a/advanced/test_doubleclickbidmanager.gs b/advanced/test_doubleclickbidmanager.gs new file mode 100644 index 000000000..fd2bc596f --- /dev/null +++ b/advanced/test_doubleclickbidmanager.gs @@ -0,0 +1,48 @@ +/** + * Copyright Google LLC + * + * Licensed 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 + * + * https://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. + */ + +/** + * Tests listQueries function of doubleclickbidmanager.gs + */ +function itShouldListQueries() { + console.log('> itShouldListQueries'); + listQueries(); +} + +/** + * Tests createAndRunQuery function of doubleclickbidmanager.gs + */ +function itShouldCreateAndRunQuery() { + console.log('> itShouldCreateAndRunQuery'); + createAndRunQuery(); +} + +/** + * Tests fetchReport function of doubleclickbidmanager.gs + */ +function itShouldFetchReport() { + console.log('> itShouldFetchReport'); + fetchReport(); +} + +/** + * Run all tests + */ +function RUN_ALL_TESTS() { + itShouldListQueries(); + itShouldCreateAndRunQuery(); + itShouldFetchReport(); +} From f41be36f18409b9c286ac55a9a9ebb9a6351c4ee Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 09:15:54 -0700 Subject: [PATCH 40/43] chore: Code Cleanup (#564) * fix: force https * feat: Replace Logger.log with console.log and var with let/const Replaced all instances of `Logger.log` with `console.log` and `var` with either `let` or `const` across the entire codebase. This change modernizes the code and improves its readability and maintainability. It also ensures that all variables are properly scoped, which can help to prevent bugs. --------- Co-authored-by: Justin Poehnelt Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: Vinay Vyas <69166360+vinay-google@users.noreply.github.com> --- advanced/driveActivity.gs | 18 +-- advanced/iot.gs | 108 +++++++++--------- data-studio/auth.gs | 84 +++++++------- data-studio/build.gs | 30 ++--- data-studio/errors.gs | 2 +- data-studio/semantics.gs | 2 +- .../AppsScriptFormsAPIWebApp/FormsAPI.gs | 40 +++---- .../demos/AppsScriptFormsAPIWebApp/Main.html | 42 +++---- forms-api/snippets/retrieve_all_responses.gs | 10 +- slides/SpeakerNotesScript/scriptGen.gs | 18 +-- slides/imageSlides/imageSlides.gs | 52 ++++----- 11 files changed, 203 insertions(+), 203 deletions(-) diff --git a/advanced/driveActivity.gs b/advanced/driveActivity.gs index 3d5f8bd0f..b139dfe72 100644 --- a/advanced/driveActivity.gs +++ b/advanced/driveActivity.gs @@ -19,21 +19,21 @@ * unique users that performed the activity. */ function getUsersActivity() { - var fileId = 'YOUR_FILE_ID_HERE'; + const fileId = 'YOUR_FILE_ID_HERE'; - var pageToken; - var users = {}; + let pageToken; + const users = {}; do { - var result = AppsActivity.Activities.list({ + let result = AppsActivity.Activities.list({ 'drive.fileId': fileId, 'source': 'drive.google.com', 'pageToken': pageToken }); - var activities = result.activities; - for (var i = 0; i < activities.length; i++) { - var events = activities[i].singleEvents; - for (var j = 0; j < events.length; j++) { - var event = events[j]; + const activities = result.activities; + for (let i = 0; i < activities.length; i++) { + const events = activities[i].singleEvents; + for (let j = 0; j < events.length; j++) { + const event = events[j]; users[event.user.name] = true; } } diff --git a/advanced/iot.gs b/advanced/iot.gs index 8087fd023..4f9739183 100644 --- a/advanced/iot.gs +++ b/advanced/iot.gs @@ -18,12 +18,12 @@ * Lists the registries for the configured project and region. */ function listRegistries() { - console.log(response); - var projectId = 'your-project-id'; - var cloudRegion = 'us-central1'; - var parent = 'projects/' + projectId + '/locations/' + cloudRegion; + const projectId = 'your-project-id'; + const cloudRegion = 'us-central1'; + const parent = 'projects/' + projectId + '/locations/' + cloudRegion; - var response = CloudIoT.Projects.Locations.Registries.list(parent); + const response = CloudIoT.Projects.Locations.Registries.list(parent); + console.log(response); if (response.deviceRegistries) { response.deviceRegistries.forEach( function(registry) { @@ -38,23 +38,23 @@ function listRegistries() { * Creates a registry. */ function createRegistry() { - var cloudRegion = 'us-central1'; - var name = 'your-registry-name'; - var projectId = 'your-project-id'; - var topic = 'your-pubsub-topic'; + const cloudRegion = 'us-central1'; + const name = 'your-registry-name'; + const projectId = 'your-project-id'; + const topic = 'your-pubsub-topic'; - var pubsubTopic = 'projects/' + projectId + '/topics/' + topic; + const pubsubTopic = 'projects/' + projectId + '/topics/' + topic; - var registry = { + const registry = { 'eventNotificationConfigs': [{ // From - https://console.cloud.google.com/cloudpubsub pubsubTopicName: pubsubTopic }], 'id': name }; - var parent = 'projects/' + projectId + '/locations/' + cloudRegion; + const parent = 'projects/' + projectId + '/locations/' + cloudRegion; - var response = CloudIoT.Projects.Locations.Registries.create(registry, parent); + const response = CloudIoT.Projects.Locations.Registries.create(registry, parent); console.log('Created registry: ' + response.id); } // [END apps_script_iot_create_registry] @@ -64,14 +64,14 @@ function createRegistry() { * Describes a registry. */ function getRegistry() { - var cloudRegion = 'us-central1'; - var name = 'your-registry-name'; - var projectId = 'your-project-id'; + const cloudRegion = 'us-central1'; + const name = 'your-registry-name'; + const projectId = 'your-project-id'; - var parent = 'projects/' + projectId + '/locations/' + cloudRegion; - var registryName = parent + '/registries/' + name; + const parent = 'projects/' + projectId + '/locations/' + cloudRegion; + const registryName = parent + '/registries/' + name; - var response = CloudIoT.Projects.Locations.Registries.get(registryName); + const response = CloudIoT.Projects.Locations.Registries.get(registryName); console.log('Retrieved registry: ' + response.id); } // [END apps_script_iot_get_registry] @@ -81,14 +81,14 @@ function getRegistry() { * Deletes a registry. */ function deleteRegistry() { - var cloudRegion = 'us-central1'; - var name = 'your-registry-name'; - var projectId = 'your-project-id'; + const cloudRegion = 'us-central1'; + const name = 'your-registry-name'; + const projectId = 'your-project-id'; - var parent = 'projects/' + projectId + '/locations/' + cloudRegion; - var registryName = parent + '/registries/' + name; + const parent = 'projects/' + projectId + '/locations/' + cloudRegion; + const registryName = parent + '/registries/' + name; - var response = CloudIoT.Projects.Locations.Registries.remove(registryName); + const response = CloudIoT.Projects.Locations.Registries.remove(registryName); // Successfully removed registry if exception was not thrown. console.log('Deleted registry: ' + name); } @@ -99,14 +99,14 @@ function deleteRegistry() { * Lists the devices in the given registry. */ function listDevicesForRegistry() { - var cloudRegion = 'us-central1'; - var name = 'your-registry-name'; - var projectId = 'your-project-id'; + const cloudRegion = 'us-central1'; + const name = 'your-registry-name'; + const projectId = 'your-project-id'; - var parent = 'projects/' + projectId + '/locations/' + cloudRegion; - var registryName = parent + '/registries/' + name; + const parent = 'projects/' + projectId + '/locations/' + cloudRegion; + const registryName = parent + '/registries/' + name; - var response = CloudIoT.Projects.Locations.Registries.Devices.list(registryName); + const response = CloudIoT.Projects.Locations.Registries.Devices.list(registryName); console.log('Registry contains the following devices: '); if (response.devices) { @@ -123,15 +123,15 @@ function listDevicesForRegistry() { * Creates a device without credentials. */ function createDevice() { - var cloudRegion = 'us-central1'; - var name = 'your-device-name'; - var projectId = 'your-project-id'; - var registry = 'your-registry-name'; + const cloudRegion = 'us-central1'; + const name = 'your-device-name'; + const projectId = 'your-project-id'; + const registry = 'your-registry-name'; console.log('Creating device: ' + name + ' in Registry: ' + registry); - var parent = 'projects/' + projectId + '/locations/' + cloudRegion + '/registries/' + registry; + const parent = 'projects/' + projectId + '/locations/' + cloudRegion + '/registries/' + registry; - var device = { + const device = { id: name, gatewayConfig: { gatewayType: 'NON_GATEWAY', @@ -139,7 +139,7 @@ function createDevice() { } }; - var response = CloudIoT.Projects.Locations.Registries.Devices.create(device, parent); + const response = CloudIoT.Projects.Locations.Registries.Devices.create(device, parent); console.log('Created device:' + response.name); } // [END apps_script_iot_create_unauth_device] @@ -153,21 +153,21 @@ function createRsaDevice() { // openssl req -x509 -newkey rsa:2048 -days 3650 -keyout rsa_private.pem \ // -nodes -out rsa_cert.pem -subj "/CN=unused" // - // **NOTE** Be sure to insert the newline charaters in the string varant. - var cert = + // **NOTE** Be sure to insert the newline charaters in the string constant. + const cert = '-----BEGIN CERTIFICATE-----\n' + 'your-PUBLIC-certificate-b64-bytes\n' + '...\n' + 'more-PUBLIC-certificate-b64-bytes==\n' + '-----END CERTIFICATE-----\n'; - var cloudRegion = 'us-central1'; - var name = 'your-device-name'; - var projectId = 'your-project-id'; - var registry = 'your-registry-name'; + const cloudRegion = 'us-central1'; + const name = 'your-device-name'; + const projectId = 'your-project-id'; + const registry = 'your-registry-name'; - var parent = 'projects/' + projectId + '/locations/' + cloudRegion + '/registries/' + registry; - var device = { + const parent = 'projects/' + projectId + '/locations/' + cloudRegion + '/registries/' + registry; + const device = { id: name, gatewayConfig: { gatewayType: 'NON_GATEWAY', @@ -181,7 +181,7 @@ function createRsaDevice() { }] }; - var response = CloudIoT.Projects.Locations.Registries.Devices.create(device, parent); + const response = CloudIoT.Projects.Locations.Registries.Devices.create(device, parent); console.log('Created device:' + response.name); } // [END apps_script_iot_create_rsa_device] @@ -191,15 +191,15 @@ function createRsaDevice() { * Deletes a device from the given registry. */ function deleteDevice() { - var cloudRegion = 'us-central1'; - var name = 'your-device-name'; - var projectId = 'your-project-id'; - var registry = 'your-registry-name'; + const cloudRegion = 'us-central1'; + const name = 'your-device-name'; + const projectId = 'your-project-id'; + const registry = 'your-registry-name'; - var parent = 'projects/' + projectId + '/locations/' + cloudRegion + '/registries/' + registry; - var deviceName = parent + '/devices/' + name; + const parent = 'projects/' + projectId + '/locations/' + cloudRegion + '/registries/' + registry; + const deviceName = parent + '/devices/' + name; - var response = CloudIoT.Projects.Locations.Registries.Devices.remove(deviceName); + const response = CloudIoT.Projects.Locations.Registries.Devices.remove(deviceName); // If no exception thrown, device was successfully removed console.log('Successfully deleted device: ' + deviceName); } diff --git a/data-studio/auth.gs b/data-studio/auth.gs index 5035107ee..c595c188a 100644 --- a/data-studio/auth.gs +++ b/data-studio/auth.gs @@ -20,7 +20,7 @@ * @return {object} The Auth type. */ function getAuthType() { - var cc = DataStudioApp.createCommunityConnector(); + const cc = DataStudioApp.createCommunityConnector(); return cc.newAuthTypeResponse() .setAuthType(cc.AuthType.OAUTH2) .build(); @@ -33,7 +33,7 @@ function getAuthType() { * @return {object} The Auth type. */ function getAuthType() { - var cc = DataStudioApp.createCommunityConnector(); + const cc = DataStudioApp.createCommunityConnector(); return cc.newAuthTypeResponse() .setAuthType(cc.AuthType.PATH_USER_PASS) .setHelpUrl('https://www.example.org/connector-auth-help') @@ -47,7 +47,7 @@ function getAuthType() { * @return {object} The Auth type. */ function getAuthType() { - var cc = DataStudioApp.createCommunityConnector(); + const cc = DataStudioApp.createCommunityConnector(); return cc.newAuthTypeResponse() .setAuthType(cc.AuthType.USER_PASS) .setHelpUrl('https://www.example.org/connector-auth-help') @@ -61,7 +61,7 @@ function getAuthType() { * @return {object} The Auth type. */ function getAuthType() { - var cc = DataStudioApp.createCommunityConnector(); + const cc = DataStudioApp.createCommunityConnector(); return cc.newAuthTypeResponse() .setAuthType(cc.AuthType.USER_TOKEN) .setHelpUrl('https://www.example.org/connector-auth-help') @@ -75,7 +75,7 @@ function getAuthType() { * @return {object} The Auth type. */ function getAuthType() { - var cc = DataStudioApp.createCommunityConnector(); + const cc = DataStudioApp.createCommunityConnector(); return cc.newAuthTypeResponse() .setAuthType(cc.AuthType.KEY) .setHelpUrl('https://www.example.org/connector-auth-help') @@ -89,7 +89,7 @@ function getAuthType() { * @return {object} The Auth type. */ function getAuthType() { - var cc = DataStudioApp.createCommunityConnector(); + const cc = DataStudioApp.createCommunityConnector(); return cc.newAuthTypeResponse() .setAuthType(cc.AuthType.NONE) .build(); @@ -110,7 +110,7 @@ function resetAuth() { * Resets the auth service. */ function resetAuth() { - var userProperties = PropertiesService.getUserProperties(); + const userProperties = PropertiesService.getUserProperties(); userProperties.deleteProperty('dscc.path'); userProperties.deleteProperty('dscc.username'); userProperties.deleteProperty('dscc.password'); @@ -122,7 +122,7 @@ function resetAuth() { * Resets the auth service. */ function resetAuth() { - var userProperties = PropertiesService.getUserProperties(); + const userProperties = PropertiesService.getUserProperties(); userProperties.deleteProperty('dscc.username'); userProperties.deleteProperty('dscc.password'); } @@ -133,7 +133,7 @@ function resetAuth() { * Resets the auth service. */ function resetAuth() { - var userTokenProperties = PropertiesService.getUserProperties(); + const userTokenProperties = PropertiesService.getUserProperties(); userTokenProperties.deleteProperty('dscc.username'); userTokenProperties.deleteProperty('dscc.password'); } @@ -144,7 +144,7 @@ function resetAuth() { * Resets the auth service. */ function resetAuth() { - var userProperties = PropertiesService.getUserProperties(); + const userProperties = PropertiesService.getUserProperties(); userProperties.deleteProperty('dscc.key'); } // [END apps_script_data_studio_auth_reset_key] @@ -165,10 +165,10 @@ function isAuthValid() { * @return {boolean} True if the auth service has access. */ function isAuthValid() { - var userProperties = PropertiesService.getUserProperties(); - var path = userProperties.getProperty('dscc.path'); - var userName = userProperties.getProperty('dscc.username'); - var password = userProperties.getProperty('dscc.password'); + const userProperties = PropertiesService.getUserProperties(); + const path = userProperties.getProperty('dscc.path'); + const userName = userProperties.getProperty('dscc.username'); + const password = userProperties.getProperty('dscc.password'); // This assumes you have a validateCredentials function that // can validate if the userName and password are correct. return validateCredentials(path, userName, password); @@ -181,9 +181,9 @@ function isAuthValid() { * @return {boolean} True if the auth service has access. */ function isAuthValid() { - var userProperties = PropertiesService.getUserProperties(); - var userName = userProperties.getProperty('dscc.username'); - var password = userProperties.getProperty('dscc.password'); + const userProperties = PropertiesService.getUserProperties(); + const userName = userProperties.getProperty('dscc.username'); + const password = userProperties.getProperty('dscc.password'); // This assumes you have a validateCredentials function that // can validate if the userName and password are correct. return validateCredentials(userName, password); @@ -196,9 +196,9 @@ function isAuthValid() { * @return {boolean} True if the auth service has access. */ function isAuthValid() { - var userProperties = PropertiesService.getUserProperties(); - var userName = userProperties.getProperty('dscc.username'); - var token = userProperties.getProperty('dscc.token'); + const userProperties = PropertiesService.getUserProperties(); + const userName = userProperties.getProperty('dscc.username'); + const token = userProperties.getProperty('dscc.token'); // This assumes you have a validateCredentials function that // can validate if the userName and token are correct. return validateCredentials(userName, token); @@ -211,8 +211,8 @@ function isAuthValid() { * @return {boolean} True if the auth service has access. */ function isAuthValid() { - var userProperties = PropertiesService.getUserProperties(); - var key = userProperties.getProperty('dscc.key'); + const userProperties = PropertiesService.getUserProperties(); + const key = userProperties.getProperty('dscc.key'); // This assumes you have a validateKey function that can validate // if the key is valid. return validateKey(key); @@ -243,7 +243,7 @@ function getOAuthService() { * @return {HtmlOutput} The HTML output to show to the user. */ function authCallback(request) { - var authorized = getOAuthService().handleCallback(request); + const authorized = getOAuthService().handleCallback(request); if (authorized) { return HtmlService.createHtmlOutput('Success! You can close this tab.'); } else { @@ -270,22 +270,22 @@ function get3PAuthorizationUrls() { * @return {object} An object with an errorCode. */ function setCredentials(request) { - var creds = request.userPass; - var path = creds.path; - var username = creds.username; - var password = creds.password; + const creds = request.userPass; + const path = creds.path; + const username = creds.username; + const password = creds.password; // Optional // Check if the provided path, username and password are valid through // a call to your service. You would have to have a `checkForValidCreds` // function defined for this to work. - var validCreds = checkForValidCreds(path, username, password); + const validCreds = checkForValidCreds(path, username, password); if (!validCreds) { return { errorCode: 'INVALID_CREDENTIALS' }; } - var userProperties = PropertiesService.getUserProperties(); + const userProperties = PropertiesService.getUserProperties(); userProperties.setProperty('dscc.path', path); userProperties.setProperty('dscc.username', username); userProperties.setProperty('dscc.password', password); @@ -302,21 +302,21 @@ function setCredentials(request) { * @return {object} An object with an errorCode. */ function setCredentials(request) { - var creds = request.userPass; - var username = creds.username; - var password = creds.password; + const creds = request.userPass; + const username = creds.username; + const password = creds.password; // Optional // Check if the provided username and password are valid through a // call to your service. You would have to have a `checkForValidCreds` // function defined for this to work. - var validCreds = checkForValidCreds(username, password); + const validCreds = checkForValidCreds(username, password); if (!validCreds) { return { errorCode: 'INVALID_CREDENTIALS' }; } - var userProperties = PropertiesService.getUserProperties(); + const userProperties = PropertiesService.getUserProperties(); userProperties.setProperty('dscc.username', username); userProperties.setProperty('dscc.password', password); return { @@ -332,21 +332,21 @@ function setCredentials(request) { * @return {object} An object with an errorCode. */ function setCredentials(request) { - var creds = request.userToken; - var username = creds.username; - var token = creds.token; + const creds = request.userToken; + const username = creds.username; + const token = creds.token; // Optional // Check if the provided username and token are valid through a // call to your service. You would have to have a `checkForValidCreds` // function defined for this to work. - var validCreds = checkForValidCreds(username, token); + const validCreds = checkForValidCreds(username, token); if (!validCreds) { return { errorCode: 'INVALID_CREDENTIALS' }; } - var userProperties = PropertiesService.getUserProperties(); + const userProperties = PropertiesService.getUserProperties(); userProperties.setProperty('dscc.username', username); userProperties.setProperty('dscc.token', token); return { @@ -362,19 +362,19 @@ function setCredentials(request) { * @return {object} An object with an errorCode. */ function setCredentials(request) { - var key = request.key; + const key = request.key; // Optional // Check if the provided key is valid through a call to your service. // You would have to have a `checkForValidKey` function defined for // this to work. - var validKey = checkForValidKey(key); + const validKey = checkForValidKey(key); if (!validKey) { return { errorCode: 'INVALID_CREDENTIALS' }; } - var userProperties = PropertiesService.getUserProperties(); + const userProperties = PropertiesService.getUserProperties(); userProperties.setProperty('dscc.key', key); return { errorCode: 'NONE' diff --git a/data-studio/build.gs b/data-studio/build.gs index ec845dba6..82a6d1299 100644 --- a/data-studio/build.gs +++ b/data-studio/build.gs @@ -21,8 +21,8 @@ * @see https://developers.google.com/apps-script/reference/data-studio/config */ function getConfig() { - var cc = DataStudioApp.createCommunityConnector(); - var config = cc.getConfig(); + const cc = DataStudioApp.createCommunityConnector(); + const config = cc.getConfig(); config.newInfo() .setId('instructions') @@ -48,10 +48,10 @@ function getConfig() { * @see https://developers.google.com/apps-script/reference/data-studio/fields */ function getFields() { - var cc = DataStudioApp.createCommunityConnector(); - var fields = cc.getFields(); - var types = cc.FieldType; - var aggregations = cc.AggregationType; + const cc = DataStudioApp.createCommunityConnector(); + const fields = cc.getFields(); + const types = cc.FieldType; + const aggregations = cc.AggregationType; fields.newDimension() .setId('packageName') @@ -78,7 +78,7 @@ function getFields() { * @return {object} The schema. */ function getSchema(request) { - var fields = getFields().build(); + const fields = getFields().build(); return {'schema': fields}; } // [END apps_script_data_studio_build_get_fields] @@ -94,7 +94,7 @@ function getSchema(request) { function responseToRows(requestedFields, response, packageName) { // Transform parsed data and filter for requested fields return response.map(function(dailyDownload) { - var row = []; + let row = []; requestedFields.asArray().forEach(function(field) { switch (field.getId()) { case 'day': @@ -117,13 +117,13 @@ function responseToRows(requestedFields, response, packageName) { * @return {object} The data. */ function getData(request) { - var requestedFieldIds = request.fields.map(function(field) { + const requestedFieldIds = request.fields.map(function(field) { return field.name; }); - var requestedFields = getFields().forIds(requestedFieldIds); + const requestedFields = getFields().forIds(requestedFieldIds); // Fetch and parse data from API - var url = [ + const url = [ 'https://api.npmjs.org/downloads/range/', request.dateRange.startDate, ':', @@ -131,9 +131,9 @@ function getData(request) { '/', request.configParams.package ]; - var response = UrlFetchApp.fetch(url.join('')); - var parsedResponse = JSON.parse(response).downloads; - var rows = responseToRows(requestedFields, parsedResponse, request.configParams.package); + const response = UrlFetchApp.fetch(url.join('')); + const parsedResponse = JSON.parse(response).downloads; + const rows = responseToRows(requestedFields, parsedResponse, request.configParams.package); return { schema: requestedFields.build(), @@ -148,7 +148,7 @@ function getData(request) { * @return {object} The auth type. */ function getAuthType() { - var cc = DataStudioApp.createCommunityConnector(); + const cc = DataStudioApp.createCommunityConnector(); return cc.newAuthTypeResponse() .setAuthType(cc.AuthType.NONE) .build(); diff --git a/data-studio/errors.gs b/data-studio/errors.gs index e6cdc1719..f48fd1a7c 100644 --- a/data-studio/errors.gs +++ b/data-studio/errors.gs @@ -57,7 +57,7 @@ function throwConnectorError(message, userSafe) { * the log entry. */ function logConnectorError(originalError, message) { - var logEntry = [ + const logEntry = [ 'Original error (Message): ', originalError, '(', message, ')' diff --git a/data-studio/semantics.gs b/data-studio/semantics.gs index 426eb47e1..8b6af6837 100644 --- a/data-studio/semantics.gs +++ b/data-studio/semantics.gs @@ -15,7 +15,7 @@ */ // [START apps_script_data_studio_manual] -var schema = [ +const schema = [ { 'name': 'Income', 'label': 'Income (in USD)', diff --git a/forms-api/demos/AppsScriptFormsAPIWebApp/FormsAPI.gs b/forms-api/demos/AppsScriptFormsAPIWebApp/FormsAPI.gs index 5be743b4e..6e36d003c 100644 --- a/forms-api/demos/AppsScriptFormsAPIWebApp/FormsAPI.gs +++ b/forms-api/demos/AppsScriptFormsAPIWebApp/FormsAPI.gs @@ -42,7 +42,7 @@ function create(title) { }; console.log('Forms API POST options was: ' + JSON.stringify(options)); - let response = UrlFetchApp.fetch(formsAPIUrl, options); + const response = UrlFetchApp.fetch(formsAPIUrl, options); console.log('Response from Forms API was: ' + JSON.stringify(response)); return ('' + response); @@ -64,7 +64,7 @@ function get(formId) { }; try { - let response = UrlFetchApp.fetch(formsAPIUrl + formId, options); + const response = UrlFetchApp.fetch(formsAPIUrl + formId, options); console.log('Response from Forms API was: ' + response); return ('' + response); } catch (e) { @@ -103,7 +103,7 @@ function batchUpdate(formId) { 'muteHttpExceptions': true, }; - let response = UrlFetchApp.fetch(formsAPIUrl + formId + ':batchUpdate', + const response = UrlFetchApp.fetch(formsAPIUrl + formId + ':batchUpdate', options); console.log('Response code from API: ' + response.getResponseCode()); return (response.getResponseCode()); @@ -116,7 +116,7 @@ function batchUpdate(formId) { function responsesGet(formId, responseId) { const accessToken = ScriptApp.getOAuthToken(); - var options = { + const options = { 'headers': { Authorization: 'Bearer ' + accessToken, Accept: 'application/json' @@ -125,7 +125,7 @@ function responsesGet(formId, responseId) { }; try { - var response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'responses/' + + const response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'responses/' + responseId, options); console.log('Response from Forms.responses.get was: ' + response); return ('' + response); @@ -142,7 +142,7 @@ function responsesGet(formId, responseId) { function responsesList(formId) { const accessToken = ScriptApp.getOAuthToken(); - var options = { + const options = { 'headers': { Authorization: 'Bearer ' + accessToken, Accept: 'application/json' @@ -151,7 +151,7 @@ function responsesList(formId) { }; try { - var response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'responses', + const response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'responses', options); console.log('Response from Forms.responses was: ' + response); return ('' + response); @@ -166,9 +166,9 @@ function responsesList(formId) { * POST https://forms.googleapis.com/v1/forms/{formId}/watches */ function createWatch(formId) { - let accessToken = ScriptApp.getOAuthToken(); + const accessToken = ScriptApp.getOAuthToken(); - var myWatch = { + const myWatch = { 'watch': { 'target': { 'topic': { @@ -180,7 +180,7 @@ function createWatch(formId) { }; console.log('myWatch is: ' + JSON.stringify(myWatch)); - var options = { + const options = { 'headers': { Authorization: 'Bearer ' + accessToken }, @@ -192,7 +192,7 @@ function createWatch(formId) { console.log('options are: ' + JSON.stringify(options)); console.log('formsAPIURL was: ' + formsAPIUrl); - var response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'watches', + const response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'watches', options); console.log(response); return ('' + response); @@ -203,11 +203,11 @@ function createWatch(formId) { * DELETE https://forms.googleapis.com/v1/forms/{formId}/watches/{watchId} */ function deleteWatch(formId, watchId) { - let accessToken = ScriptApp.getOAuthToken(); + const accessToken = ScriptApp.getOAuthToken(); console.log('formsAPIUrl is: ' + formsAPIUrl); - var options = { + const options = { 'headers': { Authorization: 'Bearer ' + accessToken, Accept: 'application/json' @@ -217,7 +217,7 @@ function deleteWatch(formId, watchId) { }; try { - var response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'watches/' + + const response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'watches/' + watchId, options); console.log(response); return ('' + response); @@ -234,8 +234,8 @@ function deleteWatch(formId, watchId) { */ function watchesList(formId) { console.log('formId is: ' + formId); - let accessToken = ScriptApp.getOAuthToken(); - var options = { + const accessToken = ScriptApp.getOAuthToken(); + const options = { 'headers': { Authorization: 'Bearer ' + accessToken, Accept: 'application/json' @@ -243,7 +243,7 @@ function watchesList(formId) { 'method': 'get' }; try { - var response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'watches', + const response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'watches', options); console.log(response); return ('' + response); @@ -258,9 +258,9 @@ function watchesList(formId) { * POST https://forms.googleapis.com/v1/forms/{formId}/watches/{watchId}:renew */ function renewWatch(formId, watchId) { - let accessToken = ScriptApp.getOAuthToken(); + const accessToken = ScriptApp.getOAuthToken(); - var options = { + const options = { 'headers': { Authorization: 'Bearer ' + accessToken, Accept: 'application/json' @@ -269,7 +269,7 @@ function renewWatch(formId, watchId) { }; try { - var response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'watches/' + + const response = UrlFetchApp.fetch(formsAPIUrl + formId + '/' + 'watches/' + watchId + ':renew', options); console.log(response); return ('' + response); diff --git a/forms-api/demos/AppsScriptFormsAPIWebApp/Main.html b/forms-api/demos/AppsScriptFormsAPIWebApp/Main.html index 8612e1b37..b14d484bb 100644 --- a/forms-api/demos/AppsScriptFormsAPIWebApp/Main.html +++ b/forms-api/demos/AppsScriptFormsAPIWebApp/Main.html @@ -97,9 +97,9 @@ } function create() { - var status = document.getElementById('status'); + const status = document.getElementById('status'); status.innerHTML = "Creating new form..."; - var newFormTitle = document.getElementById('newFormTitle'); + const newFormTitle = document.getElementById('newFormTitle'); google.script.run .withFailureHandler(function(error) { @@ -119,9 +119,9 @@ } function get() { - var status = document.getElementById('status'); + const status = document.getElementById('status'); status.innerHTML = "Get form by id..."; - var formId = document.getElementById('globalFormId'); + const formId = document.getElementById('globalFormId'); google.script.run .withFailureHandler(function(error) { @@ -135,9 +135,9 @@ } function batchUpdate() { - var status = document.getElementById('status'); + const status = document.getElementById('status'); status.innerHTML = "Batch update..."; - var formId = document.getElementById('globalFormId'); + const formId = document.getElementById('globalFormId'); google.script.run .withFailureHandler(function(error) { @@ -153,9 +153,9 @@ function responsesList() { - var status = document.getElementById('status'); + const status = document.getElementById('status'); status.innerHTML = "Get form by id..."; - var formId = document.getElementById('globalFormId'); + const formId = document.getElementById('globalFormId'); google.script.run .withFailureHandler(function(error) { @@ -169,10 +169,10 @@ } function responsesGet() { - var status = document.getElementById('status'); + const status = document.getElementById('status'); status.innerHTML = "Get response by id..."; - var formId = document.getElementById('globalFormId'); - var respId = document.getElementById('responseId'); + const formId = document.getElementById('globalFormId'); + const respId = document.getElementById('responseId'); google.script.run .withFailureHandler(function(error) { @@ -186,9 +186,9 @@ } function watchesList() { - var status = document.getElementById('status'); + const status = document.getElementById('status'); status.innerHTML = "Get watches ..."; - var formId = document.getElementById('globalFormId'); + const formId = document.getElementById('globalFormId'); google.script.run .withFailureHandler(function(error) { @@ -202,9 +202,9 @@ } function createWatch() { - var status = document.getElementById('status'); + const status = document.getElementById('status'); status.innerHTML = "Create watch ..."; - var formId = document.getElementById('globalFormId'); + const formId = document.getElementById('globalFormId'); google.script.run .withFailureHandler(function(error) { @@ -218,10 +218,10 @@ } function deleteWatch() { - var status = document.getElementById('status'); + const status = document.getElementById('status'); status.innerHTML = "Delete watch ..."; - var formId = document.getElementById('globalFormId'); - var watchId = document.getElementById('watchId'); + const formId = document.getElementById('globalFormId'); + const watchId = document.getElementById('watchId'); google.script.run .withFailureHandler(function(error) { @@ -235,10 +235,10 @@ } function renewWatch() { - var status = document.getElementById('status'); + const status = document.getElementById('status'); status.innerHTML = "Renew watch ..."; - var formId = document.getElementById('globalFormId'); - var watchId = document.getElementById('renewWatchId'); + const formId = document.getElementById('globalFormId'); + const watchId = document.getElementById('renewWatchId'); google.script.run .withFailureHandler(function(error) { diff --git a/forms-api/snippets/retrieve_all_responses.gs b/forms-api/snippets/retrieve_all_responses.gs index 78a55ceeb..c7d865e6d 100644 --- a/forms-api/snippets/retrieve_all_responses.gs +++ b/forms-api/snippets/retrieve_all_responses.gs @@ -15,21 +15,21 @@ # [START forms_retrieve_all_responses] function callFormsAPI() { console.log('Calling the Forms API!'); - var formId = ''; + const formId = ''; // Get OAuth Token - var OAuthToken = ScriptApp.getOAuthToken(); + const OAuthToken = ScriptApp.getOAuthToken(); console.log('OAuth token is: ' + OAuthToken); - var formsAPIUrl = 'https://forms.googleapis.com/v1/forms/' + formId + '/' + 'responses'; + const formsAPIUrl = 'https://forms.googleapis.com/v1/forms/' + formId + '/' + 'responses'; console.log('formsAPIUrl is: ' + formsAPIUrl); - var options = { + const options = { 'headers': { Authorization: 'Bearer ' + OAuthToken, Accept: 'application/json' }, 'method': 'get' }; -var response = UrlFetchApp.fetch(formsAPIUrl, options); +const response = UrlFetchApp.fetch(formsAPIUrl, options); console.log('Response from forms.responses was: ' + response); } # [END forms_retrieve_all_responses] diff --git a/slides/SpeakerNotesScript/scriptGen.gs b/slides/SpeakerNotesScript/scriptGen.gs index 7e4841d57..d89938f84 100644 --- a/slides/SpeakerNotesScript/scriptGen.gs +++ b/slides/SpeakerNotesScript/scriptGen.gs @@ -42,25 +42,25 @@ function onOpen(e) { * with the speaker notes for each slide. */ function generateSlidesScript() { - var presentation = SlidesApp.getActivePresentation(); - var docTitle = presentation.getName() + ' Script'; - var slides = presentation.getSlides(); + const presentation = SlidesApp.getActivePresentation(); + const docTitle = presentation.getName() + ' Script'; + const slides = presentation.getSlides(); // Creates a document in the user's home Drive directory. - var speakerNotesDoc = DocumentApp.create(docTitle); + const speakerNotesDoc = DocumentApp.create(docTitle); console.log('Created document with id %s', speakerNotesDoc.getId()); - var docBody = speakerNotesDoc.getBody(); - var header = docBody.appendParagraph(docTitle); + const docBody = speakerNotesDoc.getBody(); + const header = docBody.appendParagraph(docTitle); header.setHeading(DocumentApp.ParagraphHeading.HEADING1); // Iterate through each slide and extract the speaker notes // into the document body. - for (var i = 0; i < slides.length; i++) { - var section = docBody.appendParagraph('Slide ' + (i + 1)) + for (let i = 0; i < slides.length; i++) { + const section = docBody.appendParagraph('Slide ' + (i + 1)) .setHeading(DocumentApp.ParagraphHeading.HEADING2); - var notes = slides[i].getNotesPage().getSpeakerNotesShape().getText().asString(); + const notes = slides[i].getNotesPage().getSpeakerNotesShape().getText().asString(); docBody.appendParagraph(notes) .appendHorizontalRule(); } diff --git a/slides/imageSlides/imageSlides.gs b/slides/imageSlides/imageSlides.gs index 32dbd1b18..3214fa630 100644 --- a/slides/imageSlides/imageSlides.gs +++ b/slides/imageSlides/imageSlides.gs @@ -15,8 +15,8 @@ */ // [START apps_script_slides_image_create] -var NAME = 'My favorite images'; -var deck = SlidesApp.create(NAME); +const NAME = 'My favorite images'; +const deck = SlidesApp.create(NAME); // [END apps_script_slides_image_create] // [START apps_script_slides_image_add_image] @@ -26,8 +26,8 @@ var deck = SlidesApp.create(NAME); * @param {number} index The slide index to add the image to */ function addImageSlide(imageUrl, index) { - var slide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK); - var image = slide.insertImage(imageUrl); + const slide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK); + const image = slide.insertImage(imageUrl); } // [END apps_script_slides_image_add_image] @@ -36,14 +36,14 @@ var deck = SlidesApp.create(NAME); * Adds images to a slides presentation. */ function main() { - var images = [ + const images = [ 'https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png', 'http://www.google.com/services/images/phone-animation-results_2x.png', 'http://www.google.com/services/images/section-work-card-img_2x.jpg', 'http://gsuite.google.com/img/icons/product-lockup.png', 'http://gsuite.google.com/img/home-hero_2x.jpg' ]; - var [title, subtitle] = deck.getSlides()[0].getPageElements(); + const [title, subtitle] = deck.getSlides()[0].getPageElements(); title.asShape().getText().setText(NAME); subtitle.asShape().getText().setText('Google Apps Script\nSlides Service demo'); images.forEach(addImageSlide); @@ -58,22 +58,22 @@ function main() { * @param {number} index The index into the array; unused (req'd by forEach) */ function addImageSlide(imageUrl, index) { - var slide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK); - var image = slide.insertImage(imageUrl); - var imgWidth = image.getWidth(); - var imgHeight = image.getHeight(); - var pageWidth = deck.getPageWidth(); - var pageHeight = deck.getPageHeight(); - var newX = pageWidth/2. - imgWidth/2.; - var newY = pageHeight/2. - imgHeight/2.; + const slide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK); + const image = slide.insertImage(imageUrl); + const imgWidth = image.getWidth(); + const imgHeight = image.getHeight(); + const pageWidth = deck.getPageWidth(); + const pageHeight = deck.getPageHeight(); + const newX = pageWidth/2. - imgWidth/2.; + const newY = pageHeight/2. - imgHeight/2.; image.setLeft(newX).setTop(newY); } // [END apps_script_slides_image_add_image_slide] // [START apps_script_slides_image_full_script] -var NAME = 'My favorite images'; -var presentation = SlidesApp.create(NAME); +const NAME = 'My favorite images'; +const presentation = SlidesApp.create(NAME); /** * Creates a single slide using the image from the given link; @@ -82,14 +82,14 @@ var presentation = SlidesApp.create(NAME); * @param {number} index The index into the array; unused (req'd by forEach) */ function addImageSlide(imageUrl, index) { - var slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK); - var image = slide.insertImage(imageUrl); - var imgWidth = image.getWidth(); - var imgHeight = image.getHeight(); - var pageWidth = presentation.getPageWidth(); - var pageHeight = presentation.getPageHeight(); - var newX = pageWidth/2. - imgWidth/2.; - var newY = pageHeight/2. - imgHeight/2.; + const slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK); + const image = slide.insertImage(imageUrl); + const imgWidth = image.getWidth(); + const imgHeight = image.getHeight(); + const pageWidth = presentation.getPageWidth(); + const pageHeight = presentation.getPageHeight(); + const newX = pageWidth/2. - imgWidth/2.; + const newY = pageHeight/2. - imgHeight/2.; image.setLeft(newX).setTop(newY); } @@ -98,14 +98,14 @@ function addImageSlide(imageUrl, index) { * main title & subtitle, and creation of individual slides for each image. */ function main() { - var images = [ + const images = [ 'http://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png', 'http://www.google.com/services/images/phone-animation-results_2x.png', 'http://www.google.com/services/images/section-work-card-img_2x.jpg', 'http://gsuite.google.com/img/icons/product-lockup.png', 'http://gsuite.google.com/img/home-hero_2x.jpg' ]; - var [title, subtitle] = presentation.getSlides()[0].getPageElements(); + const [title, subtitle] = presentation.getSlides()[0].getPageElements(); title.asShape().getText().setText(NAME); subtitle.asShape().getText().setText('Google Apps Script\nSlides Service demo'); images.forEach(addImageSlide); From 862def1e95ad8898c72674495d705e5cf1778126 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Mon, 6 Oct 2025 12:48:47 -0400 Subject: [PATCH 41/43] feat: add Sheets custom function with ADK AI agent (#565) * feat: add Sheets custom function with ADK AI agent * add missing license --- ai/custom-func-ai-agent/AiVertex.js | 111 ++++++++++++++++++++ ai/custom-func-ai-agent/Code.js | 36 +++++++ ai/custom-func-ai-agent/README.md | 38 +++++++ ai/custom-func-ai-agent/appsscript.json | 12 +++ ai/custom-func-ai-agent/images/showcase.png | Bin 0 -> 868648 bytes 5 files changed, 197 insertions(+) create mode 100644 ai/custom-func-ai-agent/AiVertex.js create mode 100644 ai/custom-func-ai-agent/Code.js create mode 100644 ai/custom-func-ai-agent/README.md create mode 100644 ai/custom-func-ai-agent/appsscript.json create mode 100644 ai/custom-func-ai-agent/images/showcase.png diff --git a/ai/custom-func-ai-agent/AiVertex.js b/ai/custom-func-ai-agent/AiVertex.js new file mode 100644 index 000000000..aa58d0836 --- /dev/null +++ b/ai/custom-func-ai-agent/AiVertex.js @@ -0,0 +1,111 @@ +/* +Copyright 2025 Google LLC + +Licensed 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 + + https://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. +*/ + +const LOCATION = PropertiesService.getScriptProperties().getProperty('LOCATION'); +const GEMINI_MODEL_ID = PropertiesService.getScriptProperties().getProperty('GEMINI_MODEL_ID'); +const REASONING_ENGINE_ID = PropertiesService.getScriptProperties().getProperty('REASONING_ENGINE_ID'); +const SERVICE_ACCOUNT_KEY = PropertiesService.getScriptProperties().getProperty('SERVICE_ACCOUNT_KEY'); + +const credentials = credentialsForVertexAI(); + +/** + * @param {string} statement The statement to fact-check. + */ +function requestLlmAuditorAdkAiAgent(statement) { + return UrlFetchApp.fetch( + `https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${credentials.projectId}/locations/${LOCATION}/reasoningEngines/${REASONING_ENGINE_ID}:streamQuery?alt=sse`, + { + method: 'post', + headers: { 'Authorization': `Bearer ${credentials.accessToken}` }, + contentType: 'application/json', + muteHttpExceptions: true, + payload: JSON.stringify({ + "class_method": "async_stream_query", + "input": { + "user_id": "google_sheets_custom_function_fact_check", + "message": statement, + } + }) + } + ).getContentText(); +} + +/** + * @param {string} prompt The Gemini prompt to use. + */ +function requestOutputFormatting(prompt) { + const response = UrlFetchApp.fetch( + `https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${credentials.projectId}/locations/${LOCATION}/publishers/google/models/${GEMINI_MODEL_ID}:generateContent`, + { + method: 'post', + headers: { 'Authorization': `Bearer ${credentials.accessToken}` }, + contentType: 'application/json', + muteHttpExceptions: true, + payload: JSON.stringify({ + "contents": [{ + "role": "user", + "parts": [{ "text": prompt }] + }], + "generationConfig": { "temperature": 0.1, "maxOutputTokens": 2048 }, + "safetySettings": [ + { + "category": "HARM_CATEGORY_HARASSMENT", + "threshold": "BLOCK_NONE" + }, + { + "category": "HARM_CATEGORY_HATE_SPEECH", + "threshold": "BLOCK_NONE" + }, + { + "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", + "threshold": "BLOCK_NONE" + }, + { + "category": "HARM_CATEGORY_DANGEROUS_CONTENT", + "threshold": "BLOCK_NONE" + } + ] + }) + } + ); + return JSON.parse(response).candidates[0].content.parts[0].text +} + +/** + * Gets credentials required to call Vertex API using a Service Account. + * Requires use of Service Account Key stored with project. + * + * @return {!Object} Containing the Google Cloud project ID and the access token. + */ +function credentialsForVertexAI() { + const credentials = SERVICE_ACCOUNT_KEY; + if (!credentials) { + throw new Error("service_account_key script property must be set."); + } + + const parsedCredentials = JSON.parse(credentials); + + const service = OAuth2.createService("Vertex") + .setTokenUrl('https://oauth2.googleapis.com/token') + .setPrivateKey(parsedCredentials['private_key']) + .setIssuer(parsedCredentials['client_email']) + .setPropertyStore(PropertiesService.getScriptProperties()) + .setScope("https://www.googleapis.com/auth/cloud-platform"); + return { + projectId: parsedCredentials['project_id'], + accessToken: service.getAccessToken(), + } +} diff --git a/ai/custom-func-ai-agent/Code.js b/ai/custom-func-ai-agent/Code.js new file mode 100644 index 000000000..d18674f6a --- /dev/null +++ b/ai/custom-func-ai-agent/Code.js @@ -0,0 +1,36 @@ +/* +Copyright 2025 Google LLC + +Licensed 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 + + https://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. +*/ + +/** + * Passes a statement to fact-check and, optionally, output formatting instructions. + * + * @param {string} statement The statement to fact-check as a string or single cell + * reference (data ranges are not supported). + * @param {string} outputFormat The instructions as a string or single cell reference + * (data ranges are not supported). + * + * @return The generated and formatted verdict + * @customfunction + */ +function FACT_CHECK(statement, outputFormat) { + if (!outputFormat || outputFormat == "") { + outputFormat = 'Summarize it. Only keep the verdict result and main arguments. ' + + 'Do not reiterate the fact being checked. Remove all markdown. ' + + 'State the verdit result in a first paragraph in a few words and the rest of the summary in a second paragraph.'; + } + + return requestOutputFormatting(`Here is a fact checking result: ${requestLlmAuditorAdkAiAgent(statement)}.\n\n${outputFormat}`); +} diff --git a/ai/custom-func-ai-agent/README.md b/ai/custom-func-ai-agent/README.md new file mode 100644 index 000000000..43fe32494 --- /dev/null +++ b/ai/custom-func-ai-agent/README.md @@ -0,0 +1,38 @@ +# Google Sheets Custom Function relying on ADK AI Agent and Gemini model + +A [Vertex AI](https://cloud.google.com/vertex-ai) agent-powered **fact checker** custom function for Google Sheets to be used as a bound Apps Script project. + +![](./images/showcase.png) + +## Overview + +The **Google Sheets custom function** named `FACT_CHECK` integrates the sophisticated, multi-tool, multi-step reasoning capabilities of a **Vertex AI Agent Engine (ADK Agent)** directly into your Google Sheets spreadsheets. + +It operates as an end-to-end solution. It analyzes a statement, grounds its response using the latest web information, and returns the result in the format you need: + + * Usage: `=FACT_CHECK("Your statement here")` for a concise and summarized output. `=FACT_CHECK("Your statement here", "Your output formatting instructions here")` for a specific output format. + * Reasoning: [**LLM Auditor ADK AI Agent (Python sample)**](https://github.com/google/adk-samples/tree/main/python/agents/llm-auditor). + * Output formatting: [**Gemini model**](https://cloud.google.com/vertex-ai/generative-ai/docs/models). + +## Prerequisites + +* Google Cloud Project with billing enabled. + +## Set up your environment + +1. Configure the Google Cloud project + 1. Enable the Vertex AI API + 1. Create a Service Account and grant the role `Vertex AI User` + 1. Create a private key with type JSON. This will download the JSON file. +1. Setup, install, and deploy the LLM Auditor ADK AI Agent sample + 1. Use Vertex AI + 1. Use the same Google Cloud project + 1. Use the location `us-central1` + 1. Use the Vertex AI Agent Engine +1. Open an Apps Script project bound to a Google Sheets spreadsheet + 1. Add a Script Property. Enter `LOCATION` as the property name and `us-central1` as the value. + 1. Add a Script Property. Enter `GEMINI_MODEL_ID` as the property name and `gemini-2.5-flash-lite` as the value. + 1. Add a Script Property. Enter `REASONING_ENGINE_ID` as the property name and the ID of the deployed LLM Auditor ADK AI Agent as the value. + 1. Add a Script Property. Enter `SERVICE_ACCOUNT_KEY` as the property name and paste the JSON key from the service account as the value. + 1. Add OAuth2 v43 Apps Script Library using the ID `1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF` + 1. Set the script files `Code.gs` and `AiVertex.gs` in the Apps Script project with the JS file contents in this project diff --git a/ai/custom-func-ai-agent/appsscript.json b/ai/custom-func-ai-agent/appsscript.json new file mode 100644 index 000000000..d1a41c7c1 --- /dev/null +++ b/ai/custom-func-ai-agent/appsscript.json @@ -0,0 +1,12 @@ +{ + "timeZone": "America/Los_Angeles", + "dependencies": { + "libraries": [{ + "userSymbol": "OAuth2", + "libraryId": "1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF", + "version": "43" + }] + }, + "exceptionLogging": "STACKDRIVER", + "runtimeVersion": "V8" +} \ No newline at end of file diff --git a/ai/custom-func-ai-agent/images/showcase.png b/ai/custom-func-ai-agent/images/showcase.png new file mode 100644 index 0000000000000000000000000000000000000000..4b0314f15dbdbcf14cf2ff6d72661d1f05da6472 GIT binary patch literal 868648 zcmb?@Wmp_dvo?zcf&~%?PSD^I+!Ng0J?Nsr-9rcv+}+*XB@o=*-QC^3A!5F-9j%5W<3Js8RAa_^vDd?g}1C;Kh}Pe}R|!&w+LDirz! zY3J9}&%&6>Uy8oJh<>99BfIbU9m#GYO0cXUy2HD-x4xFvenav_YG3nd(@k^T*^`X=y;*=DoyfzeKGBZ*EBM(l-6Mh&CXtM^lfQd+V9;$Yk+ z{8c5EnAKJ!mYCKS180u5T8qjH>sdIs)mIKNyzRqPAQK8>w@t6MO#Lc=6!ngOKOu!z z^To-h@8)Spi4n!)Mn_$X@e^x##LQ#$_qZ zH|qPe7Rk`w$UT^ZU;JwqwIxblK#;!>2_hiS*XL5KzhCJqS^mDPx>w>$8`xM>>By~) zvv1dI?|A8PKNEldKil3z;ZdE4>sh>cNf_9mduMowmNCf{iufB~O3%7;iB2FA5 ztfCaVkpF zFGFE|j8Ed#75eI_otUQ(@-07pVeg~I5K4viTV#ErZ*Mz}e^B3+k}`aM zD}qQ0i+=Ehe;)IylX!W8KnXK3$OXCUq$BzG>#(S!NUhX1(R?x)ZFJBnBbx2Uhvl?; zeb*#{d2EyV6;LgTf?qEiIxBQ=EmfkQ&)v_s1;ReOQ}wtvlkX2&1dk`svCA{q3|$m^))@%RS2NomsoE`sbz3aAh{r6#I~q0n8u_ zdq~sH*)lybuJToUl;YZznN`?_9$$`(ss0%9g8t0;y2ZM#n~eMtKBfY`8%FCKaihLp zsxvUu$ny*W)X4(NOwk*w`>U{?)=#o-i&`DXhg2^r9$wa5D?_+SAtEB;KD7BJLFlx= z-IL(nw9S;SOs2!O-Vj6j7Rq$2^u7eSvu__CeDJ(WfGPDosfBP@M!Nrq`T}Z%5R~be zH+*MSJ7}Oo7W)#z3rz-A$;&Pk!3;FVM>7qD>`69^Amv5yQ}7Fx2Asq4?hfqGM*>GA z9>N!&J{iA&V&Ic_MfD40^>O+;9okm`LMsu3@L>ISXaZjSf*8aG-PoB3GXdl8?!t(> zDb^uJ{pW@73Awvdx?NuLPsrkpzpWDLN;8Y}`IZ5{{hH}zk{3pr`0yKJQZ=7LA)FEU zZNYPnSzjLEI|k1@U5S1~n_ts!F#|j0$|NMd4Rnc>Ar!)zwyG`LGzZw}HcfLTe*f?V zngc0*;jZGYTCb9=YORWXCO>&qmLfoe6^bjulWB~WqQFP_ z&YbXoEQwI_on6FY_(XTMKBhH2dldCM%m}LPhVHH&Z|LUIFz|1HPf0ux#ir7Ud-*57&FB)52QqkQKc58PK-#69gZ!U&@&}6Ibwebg2A4^ z4#HMu(i*0)rQ-18iP91%NhQeCPQNmdV=7{xi~LZtkp zQi`jK3oOD9sTWKZ^y)Pwet-wo8O~y<;^1OgV~;L=T(CJ4H5oV~IV+zpZikFqO=0fD z>>f?D6hAF`8ldWjnwHL{_ADpAvoN-NYsxnErD8?3eUX7fud(YzXJjxt{U#>yc=zJ_ zLF3>NmJIt0cRlnqRK2_t*tN0FCNc?hj|kid>xeZn?rcPPZTT{A-46WNl1e=_GF6CT z4@dj%hYyS|ndM{6nfK`LbS(6ejkV00r|y$sCcMqVz_J!2h9gE`6D%jRb<&1&I; zh5d?yf&)7CROCbC&wi4~NqX>l++AXwlRuhvau2($sBH@!T$g{@27IBkH?ekR7_`>d zt({mK47%Ij-%Q+UT(}u@JUG!^3+$@-@if-4D7Y+lU~LX*{^|HD40=3yqpjVSH+2^F zO>G0&UfICpRy97TPs87nc{;ba%oI%SP77)cx?~ZwC7o3R?F( zrwA5<7wZ-q8dD@IeTEaxcL5ybD0@Y?f!7n)QO?WUdeSZ?KCW{}y5Qiv>RhrM`j4-nKlSOegEn|&vIEse+qxY)!^qxF^U z%}=}C*%d5&d>$5-OSgEg6lg~v|r`&lx@Gl^@;~8-B97OK#=LZ#V%Wugl*Yp`r z^*UE-$u3oJnqO^jd%48p;Nnyt8XVHh!Cg{ZK2-C%Jq1Cnz|A6;qp;wXb5x$tuYCa% zkFqtCl~6R~6|iU3orz3`Rbw1Qw+kl)ADS_n7V%`em~B|?o{)CINxe?m=B41CaiQEB z&!`5QJ4i`$xE)CB#|2lc7!5tWy)mEGjlNIy|0)X z^5dN6#HMr7FlpX*s>`zZymdn5t}LaA)OfqbyjT@Dl~L@lDAH)PXE-}htlp+RWU;m2 zej~m@M{r2pC|;}XEPbZc;g)g7+%o%6U(?sLH|^63cYv}+u;@hMcz$1Yf6{eGDs3!H znHDbgnMmsL*=8) z`DFc2P{f=4^tg8q*mz_!v!nW5@WbK!-TIX@Z~wi>t;$W$p?u%g@sI=DDI9F3E0)Kx zG6Ym_h9nt;$04+5G$aI6GEQEE;#T`l@7%#kpBMM!g&h3I7!DBF%e-!8boUK)@U6`U z5Gwp`&e#wPOb}>XAP(I&5j>tgq-4%0-xou$OVW3dVJVJoK{!g^0NW0qxqNT zejvCUIe<-b16y4}M{_d^8xBWqqTgq50Nc;I>4*q_pJHpuO{5|zL&$GwZ9vFEOHWHr z#DhRcNXTWaZ^$7hAoP#sz%OnhV_VxV9CUOJ4i2;qA80MDjp!KI+1csn8R-}qX@E0m zY@94?bscFeY>5Br2f4%-1r-38*-&eA* z`Nyr~6mmKvS;gy&N)NM*}le0kAnBGvFFLj0~*wT)!Lq*P(x3@;{oY z{JSX=13lY+HvNx7|GTN8je#}4r8#g>Tb_U4uzxiE&x8MH$VK-&_y3T^UxNO<7mzd$ z0vFxC?ivrmJi$+E;6~zt1*8>#Z$QnSU(npZ$NRs&fo)j1zK~siK>7F}L=2vFa7+pSS4Af-8h_hpni!(dJ;%Qle)wvNdFW;pNh;2 zH*NRl`u1XaT^bH!JnA`Gj$nyhokB+Z2gM>o4%4V5iM~v#%a_D;yU+BeG@8(pZx*3; z!NRKU>sJui1scru2YbeQa~%I*A4Z=VjPGWT^QW{9m5)#o5Jrf;zJ4e@p=1cbfY2Y) zXw=*cNGz@YW@D`nvib}b?gDw!gA`K3m=Gd5zt`AN7jb^q<&=Pd5X`Ohr`y2^-(s0>rt5gpq&E)r_ect38hb!!gsRA{&Nx` zG>2hQ_3T;$R?}JhkJ!O~3?L8!>ogH;^JqASbqq8@CO%DzSLs)T4r6(88D#IRm4M&e-Mjh zHUSU;i4f2Y0wMc9XXAXSQoy3LYTY3ERwf6TgER2YX5;`#*PWs7M%)lJ&RV&RsSb23;f@j4UsQ~dxhmiiOpf>xdpLOG*A`GC27wsQG^ zThh?i-)hCDiT)*F=u-)Mo=hlnfh(Zx@hhNMST~r8Q>nlBO#NWjmd&2*gkJl{qGRurz<0da)t(zJB&F}t( zhK^H$BvDI8?#(GL;`KoS?UVUFeS?Ikg*&sB#sl?eB& z>d=}|*vwbwe6}yXd1#ThsO$z7N(QT*hGb3<|C}}1vVB8`K{LxUJYcf>=kEVs=QZx> zDRfmhOH@94ALV3{3Nk|jL7PMYcr2YaQPm=B^I||dSebEw#LQnSl=*kKXClNm1`WjP zG9RwZ-uw+)O)Y*I>C#x9KTS#%DA2D-284}-w2&l--;-o*U@FZBN4qg(oylh#k@+o{A`T0tiUNSV%-0~_xHD5vcbPjfCfFq3V?7V+8};QI_z1}Ef#Ce zTHu(y@Wdb2Q<6b{UE>$!^6c$I8?e-WG)Yi-ql)skgiQ|!TcX@kQWxX%GZF&U6g1dh z@T1xB)ns74g4?h9v%@mKR}>kje+Nb55IhM2f5)C4AUoa=iL*Kz=*>)~@tQu-R`|Uj z421;dEVBR6IC3NEGDsslB5e9V<{uH#3N(|hXDk;B3E~U#4%ffMV5GlRkv9v6F+)3{ zN41NzrUsz!#2Wzm*uk`y99h?8@)wI#;4ZGWo0dWUR_$~^wM({*(BPraNF|#7&V9C% z)9Dckn;_Huy(q|_KTkK=`3yG6L zgU1GJCowixal{)wS_`X&55LTXQXPy8MU@P>d-7w5RaIxgqmqa(%5hZsPNi>O0xZEp z$UB$6;c^H=i6FD^!vuYwmprjBj1fd=)ZD=55g*D94WR9et7Il~*3B81z95uwfuZab z%W~`^qo7?RA?*;{w6uvzx(K2?qBoOg!Kh=JwGXH=ZC*X+Nv9CDhgp z8tgUQT7zYfh~@5>=+s$J0X(!dHcRxkI!Q?)uW!vAb&|Ru?r3~z7$f9J|D~L{ zFpz!Gv{5(~jauK3aA+G2>(yzdiS0rEWw)#E=q(pD>JF;I7_HaMM;jbc92G?I{x6MV zeqUN$%c#nS#Ns9S%zVrNzNj>aXvcvG%;zpO%Gw9}>X|a??F}%HU*VY1s1*_u4;1ui zIUswo*8bA+WKFiYWO*8(7a;g(W3?){LQ;piQED|Xw zh|$!>X6cRj7Ia2J706mGmO6e{bE?t+$kN&G8^(XZ8b0$^@0l@2VR2`*o1Y#%CTSO* zT79esn5V>qgoMmz1TUffYu=wx9XFz4Ho^nx$|v_nGIH*(JeI`QI)n6b{S|+&wg2lw z?xW5GMp#yYTpDTRvlMe*1LixxgFd?vP+6#5VXm_WEGDy%f(fi5E4NW{m0FEREONG8nX4Bmy zn57ui`Ii%>lx6r+meT^*tmYI**ry5EFyWt{wsoxm>cWiIn_`kL-siuSHM61>X-b=X zt&>~U0Q2_hh;FT`h5BH&rbKQK>c5rb0n&7`Fzg*aZOql8TTSmEGS`Jd9NS4yQIcbR z|0?MJaBX}6FALwJsW!8B;E0}~@}&;K1EIwxic`Wjq9UAeS59M~QD$^&CsKiAx~HO? zoS6qCI0m=1*i4JXX20qF14Ijgs^EtgKp%1-V6yy2h>1ZDj`)r!^m2CmvByFQCF7g+2&}?(O~(U zMT4k~O$vn@j3Zw5VA+`?*J&3)OJBNgVByqKuXpd%ve=ngVN4RujnhqdN(x<(T1~X3 z!-AsyjDa$E*s}mB&juO{|LpY=S}|e6_Zit;|YH6vA`|S?7YMHCkhMl2J!PKL;m{_LZ8OCU~ zBo26_Jgd@dWb_ul@@%j{g;!*XG-I~9mJDF5$m$Q^@NG*qYzC?r zEDaax?W}J$VgjaIA)uue8m>a`ghJq{rEc{O=vnM`6`Y=$uGZ%)Tl`J#g0PvxU(z*- z6xZLH?2PBxDD3UF#b`SF7kLOf=u$>NYHI*r|NRJJ%l7vZ?VzI#$b9_-DlS6ux_j8 zggg;d0bgZ#e6e*S|E{+F2+3=%q-QG4Lw(V03(sjS$p2Ar^5G?2y+AO>Zf@$S3WC^x z|4|T72?L`Zp#?o@b$$C0aC1&h{}uIIOS-hT`b^=XV5SS*jI=!AqR>b8aYD zEM|_w^(WNBHg_*+*@nd0FjS5)@STly7(!l&fW1!Ew3(I^d8^IWN>_*_&>9xZ zw-j@Rcjk3c+^!;UEF1GU6e}z|TRoocl729IDcX;Q3msPb^74OxM$}4{a?X3vIM>4(@84&SUSg)N2kO1>u{Xru9O4JwDyL z=b4YNz(@&hsy(^i9TL||+m98_*kqbcS=d*+7k}lY7s5F!hCy#=dwe1pMm7o{tN+E- zi-dcUAq;;7NdUed05SlYvkML&Lmd9~yhnx=ruy}p-dpBA1990eK&9xbhINQXgXUJZ zrJ_k$Em@231{Gq&MY zjWXKU#~D8Pf~qk!!wQ4g7i(ZJ(-E zVei&IHxhgvqivtJcIz>egejleq~|N!e|_3VXYlJ-SCQj~V43r9x>1r__4bS85$Kf~ z%c*QJdL@}Gc z46L1t9&YE3MstRw$`r7yle9e^1TSY?N>UAic{bn1aox11p0+~fT*A^SFLX_~Sst77 zzR~h)uHHU)xC#lI6AC`2D?bczIi;vOAMNw*)uR{|ct_X7v}iRUn{gQWiWr^XJ?=Dw zJTcpWw0h2V}JEoY)~-OZmd$7hmI zaP|lhVZ<_F*vha{hl4Yi0o++GkDhrpoIrFvbXOEAJU>=cx=ggso&EyXhf zPUjSGKK6k<^%uVI4~5BwXs__Bt|8{kyUuX??4e#0p&Ef6250N!;ku3rFg0z5;+&~ zjnvM|zK)1yXERR0hUFWd%?f_!L^IpfM4&B6&}BQ*Jcmn# z1}pHTaxw9yy3rsUW_(f<9X9e!RQC-KSBgTd+C(OCYT%&ckoJ$4a}B)ubWTz21k=<-N- zyt1q81>8dLF3Ez&gUX@hOu1mP+a*@rT`{M*FnMs6)RW!0&H6VSi^#nJZ6DZ7>hqcv z9!M$3Fk1LL9C16^03I2NthvRRJ1J;TCO8Jp&Kb1Fq7}6Po|OW2tyIQWJ)-f zE~kp;2q_$vt5aI*YiZg8$;{}Qo`!?UrT_4fq^mxJHzqXDuHsZirGTyUN zbML})Ne~E7?gr;1;n!Tv3usY|{KAETOQue7y)PT16_reBUv!`A4(+*oM)@i3(bobc z!F>IEsmL$;<36Y#*6Kw{INu$7rTFodL9V#&lB1`uPkfpsx7Ha_p66CXiswe4OU$Bv z$FR=w{B74w9;05!g2T%=t{k0>-LG6I=x#w=i6vuovgLzrN!3S7htV|Zz23foq*PRW zEo|?u$faTlw^Df7^cT|5V7CL(cHcgY_9=}nh2rQK2EDi@M;z7%#WVebm;TS-Yd5)d z_H&qE7!s=b)t6~KXjBm_fc?qrPn(_$l`=d&xKA`ksRII=DixixPP_7YowCT77&R9x z%3+?@K9<};M=uj?wS3|C=_qKzE=-mC0ye}q)IWSbYjZjytr1Ng@5`f$Q;iD`ivz=^ z4251~qZq7w`!rJtwlO&MT>T6lDa@-h38S02*b_~tHrFq4Lk`WBOb{!JQ`XWlBtMQXf=* z2XNBPDVd;rnTMV{J&Oy|Vl{p{G}!*wlbHQ_@$C_0Tj*V`vT>q~iA{ZDL>%keL9%XIGmx6C%oNiqo&nt!uhPbZ+YI$;|u;HPw zd*ZA1i0#j5VgpL}wdc-R!jj%C0Vt3Ctbgo*Re8g`#oe!4Se}PvrmDOklKk{1fJBVF zg`}bk#AC>;KPWBS*1LF|!lfrs!~rW#B_9c11pgH3&3rs^bwFblbsQon=L~liQI!^ z+fmWe$+;sE{RV{qzI5n8j=la;(03pL%TKhsoUtR$4M|hmAEy^U3_TlHxfD?>^mjVUg@dHu<2Qoy2$eQ)0y}hqIwmhu`8ynvUx4 zl1(a`oeNAp`3xp;boWM4@hdU83@(jkiBE<0(W8T)SIJX(RYI^ns0l5&tKU;1$wp`y zxgR~CtS|eZAeX(aFcBlv7@f=r<`Cn#{vsyHOqYJJyCvy!n^uCpch%f%SaQ=2=6t+vU9IKiseF2OdQh|UwUAY#4MI~Doe{ix*ebd-WH=Ou zQ}avC>*9>f{uy)C_x8rq^P$7h|2Jo`@ajDigZ3HAc+!J`G(erWJyS*TUB&9?VVxIp z73P%)z+8w+^L4^r7Z=R>^{dZ|2>Ov@PI3YG660k{ICmd$)-1#;ci?VjaI13t0je~J8tLmO31r#cE*`Kbn;%Ott9mOK;Bm$?eH! zzxfXT<5_X-J)_e}2c~y#mCi-H-Ds_q-kj3}MdJPA9U1!w-y9{Gq_eUV+lbS+^jwsQ zY?`6^gdU^KWEo5um)*`epHP7)-oN_8_ zspEpvsa7;%YsX>LQBtalRqFz7a;(L}!)XIZW7zFYdQ}j)@7o@v)lZ3ia%%>!4dOD1 zFj4raR|roHGXe1|`^vRmyM^0$E~oz2I@)dp2bgP~ltw*m1qJ=)9F4audD28`OuB7* z*0Vc<@So7jBzF<%j`u5ux+j!1cWRe+j1u3KG_j0Wxl{HJ2O|w6Y|N0komCxO@jgc4 zIqV;}yseoN&?FA2^pe^V>fyMun|0T@yI{>0@Nh`@U{t+7PJYi2OrqP`=KC_!DCE$q zL6^JvVlvJ8iu-DIFr(BEnoKH@5S^@9$zUy>nlA$O|FSOB_ZQ#$waDcxEP%xhU?DJ{ zSqS_ziLt8m7%ayItpU3-5y`h|zI-&O?%L{AJ&Ej6%zHrbt`6kbJjI2ZUs zR+gBmg7XTs8-$eZD-<5D4;Y;294`MnJs%qqYjXa%Q)fb{>uGQH^yo*B<#L5@4=qaZl6AJ;gSfKk8QD8u z?GWS5I!xPZod4463GbM+QZ@EAF&c~oLYvn!HajQeojn^de)#M%bIa#y1s3E0ZaiyA zp#`#xZk8e&Q)w+8L>&Aka3>26a}y^IGAT>E5BK7uLipoTLBZA8#O8vG;Ls;R^vIDa zbyjdmNz3JdgpNN}T5YKehNasB4Sf<)3%~_4c91~5VBL9iXWG!4vE59{_x;s?cPmM^46^6Shi#YF*1P; zYac@NNNSv;bWVak=qMo*PPvo>JLdV2|N$ddoJoEcgJmkYX-;5XGE$@=?00x zmI72=wV};Z60z4p{qS7qRz>R(A-vJ((zf_n4giG{nwR3Pw3dRmf<}FVEXo;i;(R!N z6CM_}LbX~Q41es#!w%=VGfK*M94SvEcAZW$`iqBy=sMZukd#KfIuwIOO>OFNs!-Kj zb5Fa>)mI|nGE2hQNbXk)`TR52{&2xcV&pd?CIA_q>v+_3X{&Kr)|C=URs439jaSi- z%`Ij0a>pUxJE|Z<>h;^6X3|w`Cz81fnzeti8nas-4LU2I&u~6-KBd<#wmbkC3B&&F zQahn=dOoVUqh^Go$-R|OBdheQV=Kp8Kia+YLOOrB7 zRGbLq?{p{h-fO6l*gomT4R#|5isy6kCVU+4FZ~!q}QXw_{1C>%y7!9exW{HBB zgd9W#jFpk0f0sVeup?=RDADqTf`zhhChL>95A4h+A^BXs^43&I3aMl~Q}pIQLYy6! zk~L6-+E0RLOzekm|D)1)La4V_O!Cz0HoHXyssc$q=df?G6Yij8MkG)viL}P5+48DZ z@~bC4)Q4#lc&Jay!MB%Eam^+|-$_lns2je5>WxT{zCT=(rR!Pj7r|?N&>&xGWmYQE zGF{wGfW}b1D+_KeTWY?Wh8??BE(VpwXj}Ov+D*=k<||S?sRmyK1_o{fv1-MPTrH5l z#OQa>kTTldHkappm_OlXS?_iKz)X0R3Wah^mDlJ}zVrHKGr1uw8Q2 z>#V$wHfBwl?PnscK=h7q1RIx;5Gpq3Wmsv~!(hW49+WR_mMe??hExRF$7PrVB zjRQQWLfG8aSXSzgG?y&ZZmVG1A zD|oBdt7w8CnmMjte66dm)=CeA2y-gXkW=;mGig)9(>Kv*jh}=YT8bQ{%a}dv&svb5?4L;5+-iC6^`Rx|>b) zeM7|t3G@nwoq2}zvw9J9STlwUr~UfA!Ri*U$tt>}XPd$qBz8BC?y6}u64r-XcgQGn zgLEofj{V70&*N>A+bqr0yA)ZoiTQfm(TZ*vf zd#*_9Q#|0ksiLqdGTGMhtiIpLB_mkf_wzFEfplItO-GbJWI%v;(N|DbmVu$Vg=r{f z4VFrW`C&{vpGSx&Zm2={3w`}s(lO{*Bg6WlI|Bfq%Yo$eZ&k-*fPhq_PPKZR5-gBVOD_rNO)J!9->{P+4&%K8^O^a5Sj4l@Gxa@FOB3QLQ{TJ6)QUVCNmj7b!mOP>sj&`vMS{FG0}3nU}nFK)gu}8oNnzsZ$I|wiP#7ir!7CI&FV9S7;HFd zmTrU4du3rua4|Y4Nf$pD%Xu)aOwh^nCVpfn#pO_SMCwUu%m;;=dP>VBY0RvEYo?@X zHkzJrLCf!CA2AQ_R*Gi_`UZfFxG8!OWKC4$iH_-O_l`r3E52I>-EU(23NQC<2E*=- zJcfUiPcp7sry0^}HHsWIo*~~%6_jw$W`kI;joV*8o9-}Am0huXmp)K>Hc712^blaw z24OBLD;xF$%PmDBjw}T#)ggDHp|B$U(OSV& zUi1B_c$~5K53)u>0^{|iRtf@X;QuCg=Ud+IKR9Yp-E5_J^uHf=VS{boscIl_zZb2y z+rzKc^w(P6$w>(}Eve&J9oW9wi_vl>UENSEwSV^DWnJ=14Ivz-FK#a9EOA*gj|i^j zT~ZP~9%0BnxVd$0v<(dFvDYjpm|;Hb?pf-$JY3c!3F{8P8w-0XYrA!b-Ifmi zunmoiqY%cki$o+~U@Qvfq}Hq#5Q=-X@??azwasI@J1%R{yrIOto$7=B4QI%7y^M)* zaZ6~V`X^w`7shfK0CwrRzf0FlYG!mBV!v7McIW&Kl+sLcTeU%-HM33E#8K9~#Gqxt zvz%3=So?VT+l_Yxp~W7Gpr8DZfyW{${$=;5a2S^UP$0;~2$kl=a3)L#L zSS)E7MWL!yGWr`9une0ddgw=N(!XT4YwRfo~pq^Q=-Gi zaxi|77zLF8*&a1ywqqTexyk$n_jV1i&ZD(;c~K^Gxt&7|IahAIu-YO?NfeXmOxi9Y zeurqQDe3nwVf3vt5nn-3EF?%@+=JN${EfOaa?F3J6%*f8S{kJU2|}shyI-fJ<}<4Z z_z0~sgSWQ5proUvc^;?BdLJL|`o!s4D9z`p?KH^Zv23;;%{f#EFqqOuTIHpq0Nz|# zL#XiP@$RYTBOEN;^sWdaN4iA5G{8O?3M6XcaeA5F+39m0bjL;L$;EZ(TJI{n5iN&U za0NVY6@@MzM>F!;4AyBrm7j_zRbp~yS@8O{f_AO-0iT=k6aOdL%YUHKPqgSe65J#B zc6a8_FfLW`@nM6B{kYY~yO-hx24O4VbS7;io1FxiE}tgb?Z}Z{BRZ_W66B;vc58%m zaKv6o1p&PCMm{synBiFHfECBocvNT0d3hr6w>$5qLJT)o{E$LRn&UAl17H>U!n5A4VlyVNZCj8@voFAQb{Ivcvlg5DLtMbDDO%CEKeIBm2o2Ntqc@i zrVOc+*Oi|dE)OIjw%r+b4wm<5h$Tu_aybtX)ySj01@M;?3zT}YVzl<(uIC?2c+T?X z41M3dRRPiz#*;fBze~&qSL=8=3RGobr$>O(@{ZrNZIZ|Qv3|y$`w79s_t~ksyk&lu zP1b1}e}46ib;+4C|B5B2-gN`p)%`>e^A=yNMq@3%?Wd0#5$dxkg_4}kzYo7;GhYHP z{F5;O+xKtW;%osNIqJym2npiwS1Qd0+wuown?O;aw3Z=;i9|k`l+9glb`da^bJ}KReFZ>2+73=Z@?qz|r`36+;{eQ-*e^s+j+_DG)TZ*D6BT z%$|gV;+KBRPtR#UvFD<$ER>K5HasL}KdzE>{Y-atFi?g7{ql983ZXBKl4Z(D3O%2A zjqr-4W~Uft>W9LohtZd2NtUC~*Auc@N)~7!vuJ}r%)WW75BeucH9M6cV#0>bQ;d4u7A>3D5irSX`7%e$*p5}=m1G?WB!T1sHl^8h1kK2W)9UZncX z0i)DMYHZxw%S?wt*}47Qdz)MB(Sj*t`-*hhhONVf_2Py^P7BkVLv>3$lb~)iyN!2B z!y{V3T&pi`?vB_e$6qHrFft!$pp^f%^RYUbAn+gPIM(DhJ?s^-tGP+y<;0CGB1Ca6TJmuIiUlQS zA-r*FTf(n{J7Xbyj4Mrs%BAokfF~qef~~l&zJ3Lrj7vP!+t1XM^e3_t=ce5*YyxR7 zB+449?J<`w^Cji`tv%xe0#~+d=P-=~;QRpuhLZ8E+bSkE?(Ip1B51Ivk@$CE-+!@Q&QeXSUn?lnTkVmrU8lHBvRg-s z;EfBg!hWu#2^tZuS`ji_KRlGYN%Thu@_i)&^4jRz zN@xx=&9LylFj>M@IAR1{MwPfPxp>05H55X41YJ;3Q%Ay_ZT6Kcxsfl$Ii~b~tCMR{ zwNb6njd*P_3)C2!F^GaRMq3dP6Tub>n{-qk#?F~Ph=L>rXbbvj;;;bXN+=tCnpG6` ze24@mm%axQaOleDFZ5#zNweYK7;1@v0hcM!Nj=tC*pE1dA{_y%FZOUd6FxKImmzo~;qKW9Qpq*QeAHqf=co)J@Qi<6Bu`jjg zewS1W9nEG=Tzda)uOz~1E%^m?HU3_19PiV8!TQ$L++c`sTJW`fSMJrNL<9bKi-hfST4DlCFFf90Ni&~5~j+wZF5E+4L}z4 z^v)1{iOMD5J?(C1JfBoIn@V7I3AR0$9kAEZq$JVhyTv^~A(M^qjuYSfCcEtoNB(R|VtE&J@!>lwfV%$|-{v z@_o(QzW)=E+AkO*MA*67k#uB)aE#hBshV3d!E3Hs6$wP_gUh*dz(6(1Mkh`Z`U!hc zOzvrdWxXuE%l=5}uG>d%AZCsIP`)oR8$8DxgdUp2(XC0GfpmP>m^+)fcFCUf%{KAe#H!um zQNcVfd`XFfB{QniL48$vOUt$N2pQrukoLFTonE}eRYq4fg*45Mf5moLn?XE#96NIL zA>2toP7zZ~sI}H2EEA--AipA;*`*bdB*mF92e3lDDISkt?#Fi5l*yydkcQ!-)IfQcbN<%BNJMLh(ecMlHTc6FRVgPhnG+6())rnh-&Q zv}d5&1BuPl&G0}9JWX2E16wKihRke!jRAB^_TBYPAug0J0?inmvcHirf-7}?K04u} zp;&KUR&J$0b!4=dsA}E>9PtarTCWNx+zij`#N)R%Xs}-)01cx@7KQSb z+!tFNVVEjj+>Q1{_exW>sim)UEA)qk6euWZ7jDWj}uhgs~~ez|md z!<=O)58($-JRYw}m+uufun!su4IrTE$W%NsSJ~wR_mCjw<`IX_&H)dZnh>NoRv+H( z6-SY$;9@Fl)cL^m1=2OYRyb6k_ju%*NmG`dn>oRTnW6BXf4n0g1h|!1`#HO!P{6)z zen|r<@wwL2m3HB7JcmVtgYRQDk9j#MVL%U=vz&c(AFJT;sD>fFAVH%fGQChh$Jt$f z{oef+%c$G5L=sVhdAF;Fs~MO{7OvAT-C*;?7M-+8OG`!uzqovtqIDpki=gt;SgDQb zqixVgetVUi)4SrF<>8DPqB_TDcw4HAT7~ zRJ%9Gxek!A)kXKY8NuNWO9_eNBuUjsX{cUIn7N0{r@M#lj6*^Dv%8fKcLa_y$xgT6 zk-Y;ic`lE&(UG_I^Jy^$_Q|fh;JUM5*^lt4=|DB+0Rj8xTCU^P2d@Sq@+8~v#{b9E zSw>YEc3Yd4ZUJdG9RiZl-Q8W%-Q6V;(%s$NU5Ydan{K3Y(;eUAIPZJT=MR24hC>Fd zz1E!9oVOV^DI1j``And>-3REydXikrXp@zJ+vYD4E1#?%4Je2BGsxdO7c{{Fwq*bR z;;15;w}@KB!}cg_qFQ*-^e<(|@{iiDE$xqa0CAhgIRJX9lwFWI1AeCIU-%Wm^8UMN z1w!`PL|NFbYTX~T3s3>Ehws#BD>dE^@8|kc2fW^PCgHx%^s;v{GaHLkw=tbqzL_a? z@j0CC`Qd80u9v|+nw*v8{ntG+LrzyN28uyhsGS<0mLc_WhLw()8AnmPy*Zlq=O+Ls zHrHkYb!)dQQof^QqWc_BtYZ4gnSwj^?UQ(e@s)X{fQ?rod!BFz!c2jgi`803@&~Ev zWNE@b%aj+<*C_rRE&Sbpp$(pG+J*PoHtt5n{QPi$FH0d4pb95?$;B4 zTL@vipS$-00X_u|gamuyBt>Wh`D>`N7SsOfHh9&eiWwCUs9UDc0xVJDO(up_;4JP& zvr>Uu5=Wow1G2_b)(Z?l^$?Cz32{y#41Q1JGRp9ib56 zo(#?jnb3ke%_=SX>Ob8+7>Co1rLK^5eL!KbCxK}70FaLX4m85m-bC`l75?zw!6?(| zfv^V0X%PmN62H#dnQ|A4!Bpi z(;-z6RydSTS+_3v)7vSSjKL%xFv+$Ebis6`ISW7SwxHFze=kVAtZK*MAj_xRH=H_c9d$)GEh2>(p~wO0nE?HR&VGk5Sg(!ill& zbEnU}9SsiNYqDLM$%1@Zn%5|Wqp+@MiO9Mhs@@2Ali!=jra>9E*nRf8GF=iJt8&>= z*vnGw-8i@_hQ;9fGdh|*+;YE=U6Cv3P5OC)^3NX#Y6g{lui;)=)j^L-@0!PkC_0OV zmzURTC(hhU#=QWUIxN_6ODT8E`}D2z?RDx=A@^ISM)3$hEwh?@GpN)u<(Ir6{0_O% z^O7$KX<}Qjd`#OA21#G46kl5NmB}uc6&TMzXf|HP15cV4 z))VY_J{66rW!vmrEDo9G62Z4DSv~y|&~E%7^SbuvdV?MQWxayGO&%YQYj^9QU+gMp zex0m!x*>INVvgO#Z1_K^->%yzuADOJx9DB-h10de43T=c{z2gQzGP*3MMvg`-NXl< z4-Z1RM%Nd$o|r3wfm zUuv&e)W|{yn5R9=w34@vH#e9(g<=jY8D=C>%%hI|RBk*Tr zeBRxLja^z;JZwmYu&&)RDw)=3twg?|#j!A1$SCS?NI(BLeYer2foj24^$E7sYUTH} zk2MVmuUm>n$&_QrH?-;=osNl9i0LxaS{`J66%5~^;4RoI?lWSOvZ}?jaccvvUg60B zTyQTrX@bph(HSTUqHNXdnD%^|7(e?m@|2N8LEO{xu^8a6J#iOA{^%TJm(f3Lm;(58}PkNx7Y!c zW8@=LqPB*NRafwYMxOa5--gNB!oRygl8nTLi1Ao=(&L!-8zBq8=kOaki8y5QP}5Kt z3srO@aD12(No*Pj;Q9NVVmFfEn=QkP%O8&ouOaW(qkYRZX?F!!s1Mjbd@Id#VeHl-{?cr@ zE|TN@m~I!;6m%uZKYvv-#@wqmU!{%Hl!jm-_8h1$`K<&eMATNrk5)o9U@mwG0Km3(tq0?bwhE+%!a? zDQQ5Gxz5{l4bZ@?Y6wORG1q7m!f8~-mshGh4|t)uG+7F z900IZ&ew0CWyrhKEGh-CPlvvG_saj?j}0)PctBm)os;S{T-Hy$t)22P6a+)swkPX? z1UMf2))(eG9DTq)xU@E&PHs6;D0SR#W=+$nbHP{Z?JCA%CiIm5_(!`J9B|&hLqC||xtkwOw&ZS5xq)=;ay>$mTUS%6uD!Sw zAB=;2nBg^KiLK8*t_d9(wFpI_YE5GU_pmrB0zN&m95N zO~6D~F7TBHOyjZ}3G*=c>*w?B@sx_eRzd@EZBmkYn$fGuQbVzpcjkte$Jw&54#!yH z^Y0%(G~0G$bi4t9ZrT+347GIxKhF5Y%rs3`o^%ssgR8gHM}D)H8vQ&?7wu@FCG)Mi zysb#ACGAxqER!pJ2d;#lh)dR3Io_6b`RkfJ6I1S-@FVA*ayF+xB% zvVCmfV0%e-mTPbMS)psgu~IeuUdgL+_Z1+*@h@a5IoBv#rF#TSBbEC+81;)EtBf0f z#B|`Nu@;d81lvNy4jh}I)x5~RTK|p833DvFMYgYu`IYcd| znFNSyTOz(qpTCMP*DeeMvv*&#TVwey>rlII@KylVn0t)!>cE({mKufQTwT%(HH)1^ zKg8*4wv4PSRjaY1QJud;wRWd~Z8PB?k8QMtl^6j+ceBPo1T((t&7TF31qG5ej6)B{ zU;U3;Er-WKg!bI>N38a%I2sn$QZQ!OM_}}$yH%Ik6U$%%ifs14HubU1n2FaR?*W_I z5qSJ8e5>S@6tK~BIN1jxcIUn4hpQb^w!bcvLF_>Hv$tg8s_*U6{(L=Z7CvMMkem_$ zfN{d10Hwcd^d8+rQc5 z?mHI6ZYWO3#+&a-2cUh+e}5lqto)`*1KO0>+mC zff}{#{x8bzoTkCWM9usuz}{27y*leG@+4Rh9K9UI@In%{sHJ6_z_8Rx_5keJQfVc$ zI+W{6c+Kt5>Bxb66MUgyzO&x@mV=`fwRXG{x*gjr50gIXeiUTq^L!9|V_CiyNJ#Sm3^ui~?L^VOd|B;;STA#0&do_?KW2w_C z?821std%Melq3nYh_znsQw>@Y*sR*YH*tmmPy7{EyQcoH_YlRlDaUSi7YM({7=Su& z_v-w*yXn@GOi?I?Tw!qujKXthPX+Y6w2bQboHZ}B>`1GdQ(gq+ShUzqkKaDj?C*Ko z$JHeEe1ot}$-h)ZxXnOD08Lc}UGVw*d*$~XUR55$)M+v1jB_f-4j|3MSlQ>iVe-<| z%8Lg$zAXZU?DZiCuDn!`tGR90N~A^(C-)+-0B|HeW(sdM8TA*0>K8gc%Kh0-d!+KN zh;X5J^K)K){nWZ@?T2>&$#dUOukE^|XPAx&(4SuS@Yc8HH}re?0U!iD35nV7)$FSF zixf6?|KY3vzR;X^sucGHx-`$+u&$mO6|qaAVx)zAGo8*k$gzJdej&+QHi4b|J}s1I z{o;CNp+sK=!w#z!ytyrc1T%trZ*pve@yL_?x}UqkdCIU5oISB$uE3iP$N!qxqxgTw z=?HdOy+%*5kau(PdAbSNB>|y%OH!i!O3XZJZmmzxmmQi`nb*gNnx9 zXXt0M24k1_9j?*joKs!d(v*jp8g11PyFW^Vvs3XW9&1ZRNeTx%7datDoX)CA{La`2wzt2_u|<5Xq0a_Q)1fHZN9%1 zZpZL1!_D~Nsa*gIGx?pM632nmhNs8D9N2v)a)>mbV6?1W_&pEq!FMJ}Qm3?2y;G@1 z;L2K=lr0@_l_S`k-I5A%#b?$w7ic3Yx&A11Yx8Lh2chWcm?dR0j_2_PFp^z-Nf%7N zqLxBktDQ+@TlbH88@ZW20r)8DnuUp_;C^X?oEwmnU*Lj!2MVUkM)y@3{vjdUv>)R{j zO-xcKh9gaaD39d4H|th?0G29?hguTHmWX3<{=Ld62Lb*6YCFbNoz~T*`xImWtaC?> zB(mc95>~OrJxW2%3j1pHwlp7*V9h5o=x8!bK>%16TO1*Ld~gg2!4OO`=ypfUu+YRj z;@^v}kJX|0W;2jCohMgD!~0?OxR+UL)|dZcrvE6^bKk~={a+DQ1kcFPdYmV15pTuIr zUjLqgxYqn&v^&-yp2w^h%0oGM8dRwkV<69R&3jM2vR@Yb1~e#)0m}b}ne~7Y>X0SB zR{fW#mbC?w$D!N+DyqE2!>3kG^CdxsV1p+fp1UOrjOBTa4HCP?7!AXJ=Z5lZD~Fdo zrj<#j>me>KVhu&b{(h;s#5yQ3SqrChF`KBzVx0>BKHKO!djRF@aJkqenRO$iFVD%) ztEiR3&DR64FHe1RC`T*{x-|;c!_mIXUigVrR~!?Rdo+z%fvDumaKBh>hPQA#c05)v zh)-d`mU>b@&EBm6o<;q#bb8YdLd^Sdwy6;uMLwq1bW{EyRdyuUgqMfyjd`Wqt#>58 zby+@>OP6z+;AhQ<#~z*T=gZ0#Y2a`82^{^FtRFB-H2`Hq4+J#$7+&Y*MnB~Xqz2qy z&@8zvtR+lGw>g-ENtZbPMH*T`2pwwp+@0fmGq)htWL*Z4Yu@UR17RaD8otJ6xi6Os z@AF{=J$=HJ-{ePvZTU&H-H~QLakzT2Y*U-~j?7!@ns9qslBB-dSQm2W^_EclCKZBE z@4@5+C_y`;AN!G>uOELx0-osx&5M5g{t+CY8U>X2fjw%K7JdY~X9ZiMe1Ye9ddJQS zPdQ`~dTk96B2?cr&6eoIY$)d=tGN6^_4ho$PFxjKFuyOY5Ngc%h`4eROm z7tRIkAy!KRLubFLak3>L;2s+V?vv2}wnZq(2L*pJkL#A7s|uY1l8-^Sn1F4GOdLv( z@rP5hNc~*P_w(#8`UvbamJ5z)n-!kJ8>9pTN*Nxvqd8OP!NE*BB3$W#Ks(_}!aRr9 zf7Kbt3)T7*U_esBn=mv=K&VQ3U!rKzKdRnPUbYCp?{OzpjEAcg?I)|vA?yxW3_m7} zvbmR*67-pMkJ7!;)3vF&g-T4*Ord)yflOK-q3=(zcn1_pE{~=v=O+!~-lYz6^s?ux zBuy!C@%E(S+z(JiRb6s2vNQ- z2UOipXVjl`TT>9I@uru*Y5z9+s@CkEx_&Re!uLGNt}XO58IO^0*h=s5L#VjC9w=PC zx(W(~p5%OWks{ozRrV5Gj%n}b_|;0OHe^+b?xR3~z~k12w(zwy-q4rCYM?q7{VJPB z;&&t1sf*+U=Eaq$XHxxQ-Jt7O_W!2cawzl`%!p)6m%Kfhn`BpR3f5dH#Xz&w+Kl^> zbmBT1cVzRaj5NJmv(fH9#elH>b53V%t_z_N;TIKmR#;SX0EREk@@+W%-afaciRMYl zuR1h(I96awK!xrU=_tx047|&{B@- z(2l8Vv_kVj-kMh^LX61CdvjZmgae<^e|8U^!u}$t-No+Gx(1y6@oY2 zhlECqe#i4POd0lNHz_fAzScg7l!9Mli@Mb4XTXb1FyHNB;YV2gm*bj|P-qUbvcfUQ z?9eNyqG#&$9z2D`ugQUU3#5rWP%~urysE%g+~@a?G2IAaTy`_VcXgw7?9#~KKI5LIsA*UrbN3=TtK;ayGVnYY(w|Dt4AP5Cy_QK!Pz?}@$e6yi=% zyJT+dMfg-7K2nDCZ);LrJ!oukFf0OHIi9FUM6Jpqb3 z874nWn>bq~aSo-teML!9FR|v3DcH=Kg-?KqWx8l8p5MbZ_wAVVLV+L;iBj>)Yg^t` zw$Pgt*;EFA%JzA53^%>H?2T@-dc|w|KT~N4g+#xxQ;^z(_x4$h zO6IE3HK6#LUtiLT8Iu9d2%~bfcHf~E4M;l>W5O!4OTkZM6%_X+$dd-i(Yl-(oz6>+HGq7@lX7@&>zf& z&IQbg<51r|wu4~x2K_?KG}6h2)R^(52gcs=F-@EN~qE7C5*` z03lY7w*&%y`fQ(Lvx475;g6Yhnv}fLxNJH{=tct98hRQG_|K$-Q9G;$@-cp#4z-Z0?y!n$(LrA{tWsZk~ zoIb&%GAMk{wcUYqmY!j!!jRg&8)W^b9=o=K zkA2zkJB8&f-3<#+`n5<90(+%8Wuic@tLrX2%ARadZT@j>ukcyGW=z;CW~EejHa3{QNUkfD>9<5@BxFa1+iW{N7v)#Iq;g(Cyu>y(QZU+KjUXJY)Xy@@rqGDq}NY%kYWPV5^p z*T%pUBVC*hGY0FE5H1QymZ5!=VD$Fwl~xDQGd=Dd(bCfjbwklH4co6#IsEH^!1t6l zxfJ$>BcEsnt8pw#(3AeZ)NzvF}QvOSTe)ro!~wE*tA@oWxfkL5Ytc|#WpZ9#*#QJZj! zLZCRV|F?YRZprF0z_!{Sw)a)whEMZf?oBXMyS*RI)l~hJc>@jFF|Bs`q}_nJ+yZXx zDO9FSL`j;02EpbPAtcg`)r}9ra9s5bk3Pc5rKoZY`UBw;vwB>rC8xL%cP&oJOt)dE zK!gPDl&@lRH*UW=>|w0rB#tWF3zAnjSJK_j<2*R_!yY+14ZVDC=Uar#8v{{SHF_;3 zT0+qBI9CSdZ8r=TGLx%>7kcE=jEmX69)H#CYY}46B4>i$fk_{S z;WQT7%sCg)hDIKOt9k9O;*LiHceJqnAiBe%U3g3Oy7f2GC4Zgg_~LU`=7tZ(!vSO}}4`e1dT zm+zE7kA_M-%clKr0ee-j3Kb}befBdJtb%@*J1jc!kFZ4-{LS%Q8%z?Cu%Ikwp@@XA zd{pdC&2kMKWIQIAr3NfxsOH>tXl?NZIf;Mn?35QPUGE%V_E#(PHHu3@rQ`KPBW%-34FEt=JJ_+Eq1yb zOWsgaqcU)aCfp-R>D%=*d0O>B|1LhD42tvhtA%F;Frn3OK1o4m z5LLJk_i2BG^QjKUuINMxF>LSKmSik6MFs*tCMprnzX)$$dAY0Ytf`KW5mlXYtG)ha z)L>M)#z&g1*OzxfrIXnl5CRyZnx{h=I`12FQ{(MoyOn?-Nz!u2aEXiiL9b|x$uhU= zIVSi+)}zC0TfM6Gu5h8mk9-eEYcj}6kd6+Cknfd%%bNLpK})CGF?x2VYkXFAauGf* zcWTZlo5f_{zoH&+k4oLwL3+!V=PQ|ba1U?H;r06c`A?^Fy|EPZhN#(DwJ#AnqGUhF zFaSC%U3JA9y=byqFQoSlonqWY_is^yC)aNB? zRLsouz#>=#bXSlIc>^X)fnqwVHsXBo@#{go)^PU9P59f%Qe)oKN_W`kpZ0-K)Efo9r&e*=7c! z5?Qv%9df!@JaX{<$SjG5qnaDMc@qyRW_?eVA{FZk=(zK~K0#vczHWfK*Eo_4MK<(r zCk7ng{^u5@6u0+>li3!i*>4`}B#hn1$qPchzFpT{z7F?}bOU(}0lWS{n00F?cb-A~ z+gU8p-AA^+wWQ8?nvt%DGe{{+(-QR*fzObDHvEXxnn6xG9k$Nr?SKH8J6JZHFnlJx zz<2bTxG*J%WkQg3>p4>Aj#}Cd3T~;Xw2O#y0h+wIb-#C^ckMJrqA-t1gTr~OTKnUN z;B&FWl0QWwehJ|~vifJ0_M{lkHEE#-Jp)!-Rw}6w`OM;-;2%@n{%i#;d{Uc0A z!r%86uTK`6pU8$Y-Uk$43hP|#rk)>F9%2(42?=o=ip z^?G{EB06_f8H0^r36wG({kVnC5Rs#KZ7`h3OH)bcdo#y1qnDh1C~`1$H3rM=@al!a z_v#5-v**1aW0~{%XtUOS+7$&coM-!?+duR{ELg;p_DJlCF|ut^mhTb=tDe60Q}J`6 zV#&|I*Ow&Fgg`w0?a7j?Hw4?HHS27(og(Py#&>MQ&GI;sr4JcGHUrM~XnX!7wZkk^ z5IZ(p^vc%LxIyxa&SuSiBN|bo-Qk`*g1>P!`Z~Va3Nj8nc<40QXR`9QERm14&zvWH zt@UEtgMge3Z;tp;MZ?h(=lu%`vyoV)vbfPu@EQ9cqp@LE`-c86Xk{b@&ik1WXPH8} zsar3cTh?|-k_3GXCMJ5BL>%7HrWVe=d1Cu_tL=^FgZPFlz1vBrwredUM+*UJbTcO_ zq0o2of1}(!AN}CsQZ?WO;?!X?#WJg!3ibPup3=&*R;>ZOJu@EFiI^A%Yp+WdQIww{ zTm%k?u%0&P-QL|uWQv(J8bbmSD8rLpGL8j=ZKu`wTAN>wLi&a!s5$zfuuy2tByP>Z zT0BFcx2OAA|6rq}*#p{MuK2uH39;c~xJT{`2j2LdM&6oWOHYskbR|@)-MQc`}UhOfMDu^-&CC`D47d{mpk&le16GKHcQ6K%} zwc0yCv8D*_cOt6sg$mxth~dp+vyJ1)x$!-uPxwongJ72U%q7Euy-0kQSDt53mr{?V z@No7g1~Je_A=57}VH8?|gdmph=<)mEG67qMPg>uWi{HKz1o|^$hzb@n-Ydn|(ZKD{ zC~;#UY-)he1KC#*#E7Ds?D1mTHhi3mkR6165wL($(Nky!44(D_CrMeiHen+ySkEmZf&WI%*%Ljk( z$W7H!NXE)e7rCWPG=cc)c*XGxX-zcbH9n%|VT25SXDLY^miAtIyb;n>mJ$Be_!;r6 z_&73I3+vb1?yD$FP=z|FT2w#SQk@Tk)DG(m_W~94;N9nmYuD)al-e$Y+=2i4;DLe5 zJn5b@cbulM0}mEV--5as>!5Fi`(^v|l_n<0eDj8gb07pmLphS;snh*5RC9XdaX9{G1|K#i zK?w1Scm(mQ6paC>wD&!Orpz>%mzgOyw25wuZ;a26!|o|V`YT%t`c$9n-$w+aRy{VGAsyvR zWC~)7pyzp@%E_W8%qL=z!5D+OkKI6{?i=EAvk#KH*$ z%lAZ)frX$M1dylK&X)J8MNfv9xG4(7B{0WS7aPo?O6WB6K6v{lf6~o(u+3%nLRPx= zR!k7wNASKe>yDi?Y}>hmfKp!hl#+7x-*;zfnX1=7?J)A2rVCCnqY%h>w}X&p8gGT} zFxOsc?NpXHbQB1++9?;aUD6&mJB@9SFQ>n|wK8TegT@`Ym^LTDD>B& zg!+`@B?AuCUPv#Y&;?d%94#Zngne3RpDGs9%rAY&7X5l8T2t;WK27$=oGgPK`@iSM zTLSHZ`WpKl-~!vOjcS5QyK*_G69T99CPLPDJ)Akpl`HWuorHi6#_g1PHd~ZMJeGN2 zpAW3Ry>_z+`|L0K@m4XiM`Q3z(HMIDu58*SJCf;CUr>8Z7&@)myC+2xa(wY*?%!5VHU+4jt03 zul8*iCXO8Hjj{j=geIg-cqDbn&Zi*a3=2a0&hJBdOB@k)AIgipFLa|bx7A;vo@W~- z6Ndr|_bneNu>(HnJko^G0_{{2UIznA2cQym$JL=m-swH*C~NZ;>yopxi}7dz|NqU% zIwV-Q-&m$gMbJ=uLwe5Z3{#FdIBALL;tGl0{U05=UI`^ywaTpa0pKOHdE+H7o&lcA zVLjB>%Y{Ka#!oXof&|_vTqp{Sh_41$`U!XUGv{rQ1Zi2Y5Cv-9!5*A~dMT5B$3Uq| zGuHC#Zk6MB=Ynr_W-IWcW%%Lqg6fOQ?)cyjdK}cde1-ui=U-GTJ7;S;<|<1ixbGti zL?3wh!GGx%>x@GreoP4(qMq`){u!npadsJhWEGd?Ce-qKYM4j)^vC)dPE87-W;@-M zt2=x{#xQs0ZpxD}uw0G_t3F#%CssK*>v6qMjYj*s-On8$RC1_a2ylGKjM_3apjALY zS>tI=H`C+qjnI$3-hz(TH4dE#Be?ja+hRL@t1S{Kb$6|*=)5uui)#$cUe0WYgW!Aq zszt!>jcb#J-9JhXm!N9u>461^_FJ?|mq=v^#P>vkQXa-eCw8+I!xf zX#d$iUAL}x<@3GwVfng4Yo608vd-(bU$Z7xs^;-X5$C=o0-u%#2lET3OhFNwAFSWp zh|tf*3_3(%P)_;<3Ao3)+@G2nH6N8qov+rBA;-`N0w4gAqxtHg(V6$zX;A45@vC`S zpKtksmRLkBDUAb@ZKXut2XPvDKbRqrS8cwVq7@cQeC`T=T?^NkEPvX?_}m?)kio zspCVw=)0}y$5@sP=F2vVi5%FqPTd9R@L})oO_JG&d2+v)j=pakIXAfrQC1#Z10^B- zv$3V+gG{kx0Vm2#pTU(RykEusYBRa1xc`kbm1JVbRejKEZ=QLQygrL}qdun&`f@`J zD&7wA4bW)?T%N4}Lsc>f|Ec4-rSHxfz~hE5y(Ur`Wj$BH zf>b;_x!|yh?Vku(FPC$Oo0aX%4)!I~sGIsGVo4HLB3RrLFUrM`YO$GIO#`c1JlSJ9 zu|1mF>I`85N1$PxR=KOJ1TvaT78r1MGB<43?}t*?w}0otzkw6fgOn#Hys9w2yC9u?pYJfFL!t4R4TA6QSI&hF6O=#!0+h&z zL6*-^$QZ!WDTs%_)4pM224G&2$%!G>kW$RBEckSQ|N=IxD;Ump(1E2V7G4{)7;#Q06U_G;OR^9 z+bmSW&RMI4UnbKFqbuYw15n;i(pmfuv=k%G+8Rxs;?ENT;aPSL`dXW$Ib?@jG^Ir& zoUY1LS7yL%laqTju0Yu5GJdmKFv)Qv!9i(3JXPKuWD%O%DZkP?L8P&8!WRw>ocAg1OimZEBZW zfT1ZFC_K5MS!3W~6Ag!Gdwy@CRIeg_uuv-q0HvB9eiYCMxWXClPVT66j8s&xfigc# z_mlffZYFOG@RL@y9(PHi>QPK~XWR78xzn|Fmv^J746yjjmmh9d?GgnL4_Bw3G_xgQ zKSagQiOzi$jq!>Z`Np0zJv=ZaASt<{$sw<^OPciFMV#P#=os1KgTJB!z zY@puFEkKoW9#2v5khXU9BPh=8m`e(UT&6werLFA?t#$!HBdvHr$@kfUUoe&`UWV8R z-$7gP`W~mRl3e8>-c@ksg~x$Cyjq7x%|vnu2%1v_8DQcs_hdW6`2q3aeP4bMavBNX zjKeXVLxC)&vOQ3wrW(jb9&b*6!V$z%FvMdYNCVqlFc3>-jUweGMH!4rH3IGvE&(1% zpF5KC@7IyTUn6F{Ktg3om-zz+LQ{P4N0-Y>u`gIt$s02il~<(7ywdAa{LpLNASELu?eU}o&}M_M?`}nJ!WR|V*2hJya@6yE zxy>{){IGygzb;s_zBMIqM+~^Rtr-^)aAK5N&7-j655J<*8v|?Lm02%+3}$1ey@0`a z|Jn)JeAw5u`c~o5t){9><$0GajGfsdb8=(6&!o>@WCe&#-=q_%Sy$#o<$hI2?YK9& z_v@r$LHq0bv9))8``YaGfi!Jp&c%0l)5G|3N19PpwqZoILN{T*7 zd^Cp65r28-OgiQ+0o$Hz3f)j0eHOB87Bs{5)Sh%Yu}o-1bmLZJpXr7cr{F%zJfB`~ zmOc&BHSB4MvhD|Rj`J`R{V@C7@b`s&tc(c@OGzam_GG1V;bSW6+WinUn&VF`XqDN_ zV`iam2Q3+{7+7Bh75+&Oi+FXPHrwHAC}Fa`cJ_I$TgEM%fE#H}*4x3`%F9L2q?wa7 zmbyZ%@U{a`Yb6b~{n$&;mlE0<-EyUA2R^f}Oei&Dz|<9ui`!h=QKCkR3p#HIJ4o|K zDH2@nb-O|!7IcP-Dd?S_{wcZn*nAw9wb zBhl%O&x@bac+^pslcs2(p%6DUilnf#cdkC6)QQRv3rW;D?~Xp{k#&>kz*lv-?4x_` z7`tB^D+;%H+vPD@;P!2fr-PMBTpWs(jXy+A%$$<8IiDzJ$>#Hhm}_p zzDp@TdH(o7p-ni1eJW)&D}(Iav6L-dS(GZsYCFn!Hdn6Z1Oqpq7gtKCCx-;F^nq>e ze*Ykf6Eq}E7N5b`o-_>Y@>)_W@A5+9zq&hF+D|TgO`=OQKJSElaVHXWY0w3dG3%zZ9(2--Q zIKKPpB%O`W>-m&dD9UM_np7ISxzl6Azf5cTMuY%kRmcbes2EP_JKX@{MW{Au7n<0g znK{Gnv-Q`^yh&2i=x6WiI`mxS!shis&LS;PVY#H#BErWskG&)b+`8I3i!xIa-A~01 zejw5c-BQlPgVFE%m4&L=yl@E2;c#MAK4&i&0-+x3)A)mt_()xvwOm`Yfa;7pHLfaX52F>xQa{le!V)1|eB2UUsLwD&=|8y` z3arxbd290y_d%}OjsJn=nJAQ1@T(Ckp3io*Nn35M)~gCa>L7*ig8@NFc_@w(M6{*ZlZHxT%=cRsh83dpfI2yy0Q zU4nQLv7~N>BhmbtE_7z_(_P!w=`KojM#7Tj_+I7z?E-LGe=d;tk#W9nXv?Z8Y1WVK zU`I#CJ$Kq(otK$6p%N0V4VydyMO$mFzHh<0>y>F5w`~CTWi$dRu0b!Qywy6dkwV?h3a-o-W~qDfpZC!$u49y*tdbN-xwswGbLdJ ztIF4ysXz8VTdWKUal1dpUsYBm&QVmKTq|gY5ttnbo7oC@u=!L9#%cAxRTn|Gj~bO_ zG0)$UiO3lx)nX|ACWJG+Qx;1*(Dnn!`O5uN)P8LJaSDdZK`*H7OLago79kd<;Uk18 z=mH%0%+8!6i1Bu^2u;IMHaUor`jLtoNrXkmHysp~r*xKe2yj=%z=JYKTlvPAgm~2P z@R-I>@$f}&`NT-jA|esELe!{z+n8A!paeeLRxtwdplhUD#Z6zikJ!dS-X9{BnBx)h zvYa7b(>rMsrC=$8VJXr2vQ{D@9B=kM{WBSdCJh4h%1oA=&GL;Csg($vbi@qu6tr0% z6L$~Yr34c$%S7AdekWy#g(0Vg*>W!~!nA+#$+Qnr;=9|iu)#qK`4&HBQX3n2i8AP38QIp)O-$a89Ctq6q5OE9Q1F|GCn=F@wuCYNZ6O z%Y_4ETp@-19p4&-+<+c}We-frVWowOh5DttjCCh?nE!G72B0G6f5D(dOd0~QVdGN| zK`9&qW$wmHPX&L;7}BdRqm9}f^efHC#!%wl=rx+^R5*qN#GgvaHhQEapivR^M96X6 z3Z&ZMtP3!>9dMX~shfQ+X5J4ck9ko^@1!a8AanZnQ%Nsz*m(>I*1=>AkxT(CrmejL`n*8p;2ziHr_5Q+Z9Z&=M{)w9} zGxz8(9$I%#5x^ta61l#Y(pKFvIh1tx>4;mqEPb_o-2|7OH!Z0BS~; zxu6drp8*J_hr^YP%Ab8fO8^L_BM*YX>7=W1Y{e^3ve-xUb48zXG3{7h)(;W1fF z>PVN(ECa{bl4ut+ZVEm9l2485n9A5Em)Aoo>9_0E1U)BX19#iQyI^Y+t5)e}PTDz7 z*dkU7@3|xGeN3btvln>H*s`x9p*?FqB!xm*^cV7OA=>tH+X`zWqfkqNJR!O6!1^*C z%lbcU^n&w7GU~kx?61&=LW@qtV)*MS(M1~!nJD-(|C5XExU4M8VJK6hp4Bulyg+ha zn2QZjvMrl~cLC4m#)}=suvr3rcyV0B1)q(yW7248mC2cRrqa17>5cx zfG{9(fiVJ8^a%?gj!_Qg2uC~Q z8jwS|#;F-A!dW&CrYX*a%-ox#VLbl1x5i|n<9FXMU}26b5)CBvawrIcFoARp&HrQS zE2E-XxWAd9yHiRU>6RWEq?PXOmd>FOrMp8)>F!p#Q$j+zJ0#!3z4!UA_miyU7uGOm zpS^$SRtxeW1vCwke;^oH`vOcn$Ouh|caxtNvlsX%qO=6{g$Z5G)fn(_3N& zXAH%+FKNJ(GA_0{ER!5xN@CKeswwaa#>Ng#i$V<%a>4QVD)u?T!t;bAPzOhq8k_e! zE~;b!>qe>R-2H$J(3cTZS~~9lX|P*x&G?L1WdR!0;~C1h|NG}*EJqa6`|2=Hwc6)q z-e~TSpQM?Y-TP=ANS{ZyJm2F2$X|Ic&LY*n3W7zlxc0%TaN%3vN$Hybu6y1<6d*Ak~DVtWZQm{X5A*=rElR*nZT!x zv>;>sJ}cmOb$?6f0ivR&o-LYjQ=rlQDjhwM=*HtwqS=UXxY92FA*KUyuXWQ^D8Y?Fd)-p zR^1_5(Zc->n7vl;E|yafEI83RV*v;C)E+NY&sttX)TKl9u^M{Otwcmw!?d8;QM7lL zoWPtABm6t^&LZo>+~4&pvcsJyJ_p@wFP2Y8O=bv?3ago zsx+vjn@FBI&Jrv<5^Z(ozore`&ta`>N4T`4e?cw3)I)(R-ZJ6GSsj1Z&&)-uZheL} z2!5UUCmdUA{jWLL%SC@Nva>i{^x*@%aq4j{ZJBEPGX@&~d4%lu1q>4IZ+^mcBJvA- zmR=3yB0AljJCYnoVqwA?NP>MwFcKaDT8IN^9V!kab2HBnNwioc5-cDBKo$>b2FjCV z0ANNqq7+$B)e-Y81vY}27{Kgc#}2?c<-BjfP@@wbEC5LoIT0d*Xx_tiv3!4ni#WlH zj*RhMb%*A1z9S(OPG;<9cN~{97DWK+IpF}Nvd9w7P%>LghyMcYef8lQO)mxw85|(2 zsDcEF7rvHJdIUXlh9&Lsnk_MVa@zO6bbo7nA$y#;m}=t?h>lWAc^k=LP%zcR-D1c- zC;c*>IXaKNIax*I`7ZinWToMe&~r2HZbV4C$?x9XYEkl_?Hl46RUEMT#)>hK&$&RtonDgBuu}Ctw7_whe@wGn;KxxTd;h%b!G={DDe;N zm*>McRar10+-E!j#31%2mn{@LRyF9i#c$J=c`AA0BSOj{k9XIBXt zCmq2%IgW+Iz`c*z)#-C>vzd)z6__^^jLA;DQr*>~+=s+4=1)SMrhurU+O)q!Jt*$0bZ?dMgX3$D zdD?z}u^-#`m?LYUHE4JvET8fs!1|!fYiZt{_l!YJtgCH7F3$i4;W(pX{{nLQQdoMu zPD;~FR&cBsUkL#@TZs$?YK$(2wMejKw@>Tsz3sH#8-Au!%WFfk2N;6Y?q6=RE$eL? zMk0Y-`%jqn6*&S`-z9Gv04rZF`58@ZGGbhLVz=$EX(6%b+H`&+#dkX<6>!BO2bds5 z>lHshyPJ#f-_Ts)3+Y=U1;tDR&Jh4)L(ez(7sP-ss&c!dt(n-?FQM+<;Yi17y6DPJ zitF0SU*aR;WID%*K;f!(47o5X|8Is@+kUk(C91ej4+oCss*TrP9|gJQ_?O=^Lr`16 zC>h8a&hQh)pbXfV5%O=NV80A=Tn)pTDe23>ma&nx2D9If^={_MTypGsSBjF9`#*p? zmveu^NF-ptda*xk2}~7!L(%ap#~E!<1LG1AKrAQzuufE&^0tc(9qHjff1Kyl?N_rH z%6|vtn;K}TBetr(;pX3_pp~c*Wu;Pby_k@F2f2VTK(?D@=d2m_1#H2Eb$Km52VB4Kaz+3vI=c14=k$O z;`9)qS|b6{9RE@p<{wY(KI<@dZz+Jg4k(pho2oy+(T1FXz4Fw$AEx}xJc%T!_#toO z5kkTzDdJ!UfQxs^F(pqHAy$bTE3BQ$DigXPNf1jbxrizD9weZoTml;p8o zi(pYW<|S9CrL{P+g5{e|N1L_Ed$3my(Z> zU)>wIsXP{*368`VhV6Zp!D%bL66nOhlwaXh9-9Ye<>JWv-J2`4u=@!zfZy&} z0uDLkfy=&w%GZ?9=GUo?2LU$jMtCX zz#|t9L^*k!#~wtGPCNdj_r$AadHovX^17Fd2|G0yLY7TK0294Y3CqFFY8P6+X@H6agLL_ zOMK(5|3s)f-=qDWVLfm3SyXgCOrV2ezU=opZy2w2i7Bys%I4s6{0+!TmC%tevaObp z{2#9f6_L3}_q+;dg(hO88TsJa?vL7Uq`Q2mr8#wRusa`5Hw3Ka%7|;pk)Qus^39Zg z$jETCKw#4m!nCu(BU0q2qXuS#mBbd&)}v{EwD{IL{4I$TT}LXhRy#cv==KG7rDfr; zW`$TZDZiGs9x>*F1b#HRAO`Kb#LYQ%%TtKFMNrZ1{c$L-J)N5Bd(os04c*B{vsV5FbzJ!^;AarNl;XtO9!*Q-%Y$@++Ln!WBV8^fQ|vCwbsNPmEEG2-`saWFklItdG2V>L*nN=WaYSQk z_L;L#z6UtC$xLHCtd1ckR0cMHl1&SUAfwBWVKyT$1^^K9Ffzfq5ZG#ZC9%nTyZ5i7 zrW(2i!BkKVd~R5x!x)h)1Tq*z=2u?emEu*s%Ywq;WX?gSZx!^9Z|==NQ=?54iGFt< za}c#IXQI#R*HGTlrI<$P&+r{QR4u9u>+OAIb$o&QBvDU~ElB{q`>tE0V~ix|a{0m% zg+~9;x)^e@G|Tg9cLR4XC#|2g=5tnYJ#=;uENeQstSCsO3+VZUP?u%FZ~dp+u7kgs zW3R1}RR!c^3me~zWsywJl>?jb@j}ErD;Cod9EmR`;#`6`-fdbH+XLZt^K#Duf+< zQU2#m;}{3~I31-$;Qf}{h@F_BFpE6iwMv=Qp%i&S$mD;_;q4{+ z6av*$AAmT@8~y#_yQnND7bby-*|QRG-Ide%00JalU1W)b<0**m@CPt|p6>+u^4E&d z{6UT2rX-aE_w-WJ{DHF5U?3HWQehw=|IF3RlO=)%G|`&C6rjcufyA9e69IwHTbKn{ ztc)0D?UER^u*lr+IL>^(6q;S)Md?BFSpy(W1*%~yc|UpN8#($rnLn(uDFOp145hNwD6uTI zV_!&pdTSt7RuQiLHGt5S`J!ML7@-~ZLZgGs|D4OoxW&Z{c(Y4Q&eUM)95aHy2Pb3@ zY_{KucyXS$Re2*enw7t?qzMaR#`2|pVaJbWM!|w-;3QDEd!Y5Ub6u!xLX{ltlh~F# zWJC<7SM3DA+u}vWNsC4qz6r?LdqF6jUKeyimn!P4Rhck%a5FdNB-~CgT;5*=TGH6u zrlwP7yMW-1vor$bk6A6ArujEUfNXN@XM=rUwpTV?_6H%%-GO~epo{x-xt4`nTZmp$ zQH&3cUO5|jzBOcHQ$=NbK{|Z}!^TZ!hJ=HQ`&#C@Y{bs7>rvvcuTTh_-0Sq2ZbymVsV{XebT$uEs^TQoF}@C&}PXhFG_8OH<}GivM9tp zK@UIM=(kQUZl(w2?INOjOn+`#skWY`Q>+K*q~1Gpo#rB=ur7)n&ABb$GwucqJ}-j< ze-G8M{Kq7uZ!AGs1bNlBweL*C37-3TJ7e~Aq;~v!#@Pag;}Zl$;n9<1OroW!d^lV9 zS-cm)E;pC_{M*yxUC$Td9IHE?MGY2R5!6cqRr)!dTHtJM^Jr?s?%vbRX0feXWX2&T zi<|lskG*=4e|@!m)-ioG=h2u+EGaL!tA#{-q&aUxhEkxG685y4{vQ(*M zy22^^bBPuH;o*FFC)vvdQ<%FAKIETR6TB|h267;o5)lcEM}WLLN;+xz%&){HEJivI zIPM}8>7Z7>1;US2AS$zkLEN=iB%z&XMxi}jha7lWzVr0>`|6%#w-s47<^EEK7{n>f zln;wNv(3~Kq}b9W2~0J}nn&N4YGdqC;qu`n$5p66xjy6SHSyGKiX?0McJTfkyXmy? zpN*8#ybim44Wh_(DP!RWOt(kxH+_9sXVS9aq$`l5nFYz=Ma16y(f`84 z_Xke)PYYCX>RW3XNdn+}J*EM4?DaT;@X7E>IU;C{8$U(pS!I5tYrHe^1aDd%8W9tF z20Ywy+5ynwF;6C^Z$GS_nOv!sFK)ZG;#6;?Mf3JmW93!vUMXSd&un=QqI{ZU_ zu+?zFTEmQUq-_1z3uSCp_lhfR#%~(|s(pV>WS^-r^2xJRKMXj0JeXqv_)3x^$br=_ zOu-lVy5p)riS}24>G#EFq51%KW|5r~($O&wPGhG8AVA>|&?a~5V~XK=H)82q{qI6D z;>{Dv2fPqmiW&vsMqY$JR61$6a4pLN31e?G4y28w2un+bw)`)3oU-A6!fuRQ>{3LGuu=E z^T)T{uvQ;nJsJ2!QMSLy0{NwBq_6F`a`A&OdQzhm(JKVB5+v>kjsDNEI9S|My`>L} z>=922^H#=~;^frz0^bgy9_v0X>Eo_>;5zGne8so% zT0jTYDB;T0Lw?dy-c(Iei3ck&)D^$ivAZMcZ584s*b!lGJJR50>e&clav6g+VR^gQ;Hny|(V=XN2AM zuWBvpNj+uTr_@()xW+J#o+{tXoGoTFg|BZ4M%Jli^3=XfwS2$Zc!)Rok4V|pNiV&U zTG9FB(sg;%?6%~NtW}K!G^R8{6xAXA{ zapqgEdooUa|L|8wX_8KX>I!(nCAsnh!IM+Im0b|r;x+dIAo$ZAL+gRL!{#$wSsvNJ zKY2CgH!57&?L!Cbli&!?$oR?~lKsht|EyU`CR`n9Wp%8k+{Rr~g~PNaD)iJX&cHdk z%a`1_EnO4V_9V3$+8<38I+XP5M=~LszHtSza+U!6il1fda=GaeP^hNWyl>lI?b6TO z1GBP-bC6X!)4$?j55itcwedmm)VLl2M>AbS?Mf^dP@dF|h10{>V|$M2-+NApUUdtc zbbD85o6^4W1W%di!_Fj=2=y_^mPI>$Ms%&S{EAd*@q5;}C zuHrZVmRx(fmeqjVDOkref}~z#8+;%U47rz6Syi*83!L* z-=5VE|3q9XV+8-taT*z@aYWP5WqGj;di<8qY6f!gGw_+-8429y$$B)}6zHytlF|Da zib}Xf63=DW?gGEt$OfL@8q0d+lF!EUm(^3eLYcP)88&F|-I+f#KwRAL*1bbDCL(RK zF(|c4@Vdk**KMi^;yWOzSZuh6YJ|ABP?3smlXJj*Kt)h8Ko}Tq@(k)uU`Fr0b>124 zKGuKki7aGV*IR}kNM@o>l&XQ&gq~9y!;GQ3m`U|OWg{R#&;cwO6(yb=Oi!#N zB{$w6I2I2Aex}~ffow>UU`3h%(qF8|O^{mh^@&MNJZqCO4Om;e%D0b_9r5_}uS_IZ zBv+*XYmX1Ik3Nplx4a>m4)b`A35c%g{#(dgkHL>3GZI9U;HL{JC!E~{*sX)o_mZYwZ9xXUC>^3f+4|uvEaXF0OI)Tyb z3r5$2IenJvyVM<{@9xp)?)|QgXoDXW8jxX+b!P!m6-c~_<&nN$KT(|dc~5=jALB9p zH_a5abSX-IY2oRBo#Y$o%O82Okn$ z4-_bc>i#(1Fkx={6(x$4hXmM`DoXhSG7aA!9#nP&r5IYQe%xmA$7v?@dw%*m zkHMf*SHkRKx7VLpq?jF>efh7en9fGD8CKssix*O!bW21OL!W)( zUt`L$q^JkyntNINt^qvM&@jn0er3A@WJsplv9NVNuAiTNxVfWp-~PTq;tAoL8&%9g z!huvp=}P2XoSW)=^~**S46k)lx8m%DI!3_1@@ieHk{%^jktFxVPPaI7H~s25y>5(Q zAsv`BwJav`Nd!(jjqj7|r~Io{8#QX`%RkS7&lq83+R&(gAhWl$(y$ND3-zcg$CDDK z%*x0}-00dW5E@XY-4a3up98e>={85DH?>SVkH12O*Y^){iF$E#Rhhsv9h!&%|@JOg?61DJRmSP)av_}S+B!&&Zp1}t|On8m@+5&b0=nM z@hWU3rSn8KZ~?}Tr*!QBNPZSIVj|mnq&N61aPa4wP|}5bT22@$7>EuGl0*>j0}}cu zB`U-Ph6*DhA|mm;M_j`B)f;Sh*-elv9UvHa13CqY>}hFGas_@6Kw1h53&lz9v|@G^IKqVrq-4`PW^e-xbIFLxultRHDFZ%TBD`Y1w ziQzku6yb%s_kWbSqDPjXM_}_sozh%-kUy4I5<7$!9viVtzgF72BJQGu-Woui*u6)z z%*a2sr<=eTca5ZR8n4*#kS2l+WVh8wm@Uhp>G-!pPUg^y?e0^o7Ch_teCbm}W6{Y=k<;XB^*pnc>5Hd6H>HRo-~l8hux3$w!$Rz+{Jm+eeqH`*HU@4Lil*K6Vpa5K=$kB zg`m(JKo<;TCN{pJa-(!XbTbJIm^EMK_usghU#lIj8>jjAShHyF1(b(tQ-$&>cmbPN z>YM<9*k~ZRA>eb|_Jj1Kl;h1kP+{@=C5Qr0rceajV?1ePWAwbJ$c4_Ggk`c_`VX7g zuC4%Oc*qN(oRe`jYKDuzFkW`ip-8l5hdCMdvIQx%J?Ud3oDQVg%vZp6mS(zm!TG{X zi8`Ox;aN+}$u#o>v#-s3OHiq>BR1!o>R55~QIyi{s)Gr%2Dr;NQUsRxr+9Te;HVGx zu1`X=uZ{KynK=m{OSmviz^PVIF0_|(XO!im47ohsKR7rSqD(J_de8CXlHz7z?k6M( z32T-$m=QbrT3piJSUcLI-Y$W&MI@q}y!n7bA?9NMkMG!o)*;^8m*pp)KeHq|N%~}u zNb;(TTSS-eBXd_qZA zySJjBuwXvHipQd@kyHKnn*Vj8kqgl*DmrX;pyZMh?zF#Cg$fM<28BG!2mHW+tOZb! zLF@s`o1%>c&oi9~!|xLmLqpGLUNZ&Hqh28mS05>hsTR zDBR`6NN8uV$Xp3>qPU&)m|in!2xtm||2)8}5;64&UL`j4Fj)7mvNi&$n4}qZBCGza zoE^n-BOsz%ZvRY!PE;RdXZ1g%9}N%qfDlMNOycqXz38fnGzmKaaAA}%^njQp*75GB zH)!NSaD89=a&-ArIKgr35WK;YaEf^`pyYtr-ai{xXxMl$A`nghzyeppsd}L6w-3aD zVPiMOyW6d9T za@7X^q!(#nfAbti1*6tLGSj7r!A$%`Tr<-wfB5MTfwZUM8>8}co>UC)4!}%=U6slI z3enZ?p6hQ0yU`l-iQVsxI|^B&{EkGY!KN_IhkA{FwKl?O#ItXpNeAW*-uyLnfXwgK z+iL26+a6&1(2{6sxblJ)#QIt?^f6z(KV9_?E@_V$fV0Ll3& zQjgC5UKj4~lVy)14wVu;ZE4kHPIShBnvqfL!12Wz)O63x7NM z%+?c479fcK=(*_XdEC5{Y1Rg763(VJ;28v7S^jkCc~HK>ZvOpRWPQ)7;9**M2XfN5 zGQ+)4Wla66$+}iz%;y-VTLDPQk>NKyKHYxmu3_!X*k}g(VG=*EDr5`EeSDM5s*k}2 zXl~*T@B!e(n+1L?raA7tpuuxR1sRnbbr69|gDO3hbg9OX2*>0>rCa#8=(B=8nshV? zI^fHlA21Ij1{6op_dTfN!}@O<6f<~3DFSp(-ZprAsfJEcI%@b7d_xa1&S4|aTE;bM zz#hve$fNfgrZ&y;34m6c`Hd{rj1gaLjq;4ye&9xM97`(EA2Q97=eqw`7?b6w+hvF9 zd5&hk+5wBR-u9>7#sW|W2YJiFexVdST_kdcZDFBov5-2URu%r8b)TDCY>G8|5xD41 z=wJ7O!Vhrg-;Z~=KYE`1((jEsxSZybLhrla&tpweVT20G|p^{=DIWDJi zRISr%Trt%TAyeKDJ`l03jab~m0O ziEMpb+`7_T8_V*1OWaC-oNc|hkH?iE5oTM(BgXr3|=Ai>63~#;v(2zz)0mmiHfPNJvw`V?o zqGX$#!kk_FS<;4PHhK}D2WA-bs*#($dY9}ClmB&UNppMQ9{L08wd|?WJb+Z`qX8S* zfWXQQFymI1RDOe5?y#MPDLz4Q>6NqMv@AUzpA9dHa6CU`DMMAj$$QQ}H0SH5oGEb- zXlQ646`2cZ7QW|$^e@U=_KPyAP5$m$(xRvd{t0B*0fazbigVyzEs$5r)7DcQ<6;fc zuC)+f74gko?v{8KTd3Lk(qtB5e@ca~TIjqX8U$p;q8!{)Cjd9p(Cg`>ivRraR*_y3 zM7eg%JUsXeIshZbs@s7E@S0yoERH|8HtN*>Qr+D|k;X!Jc)T$@wR)7K-$#* z1T~ zu?PC?LvdH@30nNDv)yO}n!*n_NtIkBW*mZ-ovjlXkg5D1fimtTnd6meH+q5Qukq1Y z?nee8j-7v{Khzj@KAld6xKh$$Cdwo+keI|#NpWAz1_1>MWF)+vdMpUSapgQoXgH^R zTP)7l^1|f1qX5Orv>3}XXXw9xp_pwoGGsE;aku}8S6pX2*Z7MzT7=^!o*Dkz-PMwBFiZ7ptK4=UlCF1XvY-+c7}Yiq9=G%JK^nO5{Z z!z{OZTZ;{iNV_6=!D*LWu`zW7jChA5q8dY^<-1f1O#3z0hPQ^v`s*%^8f_;guZii? zL@|IOicwlSyx%ewd+!QDXDPmiL7z9$S&>fVyA1g!TT~Ue@4ejVIkayx!k5D)bziV6 z$xXmu>goUUbZ%gjvfR{q?`4o-0y#o+eV&rmKu&zZ_(2t zl@3uPJnQ3~nS%zIZ%{C#+xSTPVkn9kIjklGPrJhb&LNk@X&B7B7Rg8HNTAh^Kysms zjLP6p)UNe7xahUShH7>^T2FIeUe7Wdwz3%AH(-;(=T3dMQLpGS=cnNEYD8M2>I1tD z^okWPYFbvtBM!Es@-DA>5&K!va@pG}-&W(Yj9|8Qib0qx7}(hQEDub|;5{!0G}xXp zGa`>gl`HhqePSqXux(QtfS>^fR4lFi)!~-UmUlrG(3jz5LvOPmf_!?UX-Hf&_we&` zo_OKAo@;;`%k$#YFH$7J@-2RN{RI;zsLN0=%@Q=J6I$F((%iTH4Z~fy1D;i12v)Nq z^Cy_qft7G!h}>*VaB$OaaVP+QXOgZ5Ed!kxfeT(rw9wRvo)&DQ&Wv1t#)kJS-;x05 zyu61*8AD64@5_CnbV_PtHv3lMqhyw6PA%B8Xe1W@Rtd1+vsXRc{uOiS;+0^aPvBqP~Elf$)*9BTx4t!;DF%9Y+K z^8;S9RTR_hSF{C#Ho^TAu-@)fQ_oKis5WzDKZnjUzQ_=r{)cXRl@Vf=Sl}5$-*eOm z{vL)qeE<_GdCA347Xv_18-qLd^|a-f7#e3QaS{+v2D3?2s>EESRwYq!-O=M4RTs7Rb&vT*%up>xnDrzt2!6%Rmj8os<$0I!#bP&jU)i(_ByP62 zq96YDfDoRA==Dz@0TO^bt;wF{eL$G9vE7_-cGmwP?dQRK0A7Q`(%8rclt+F(mHpR? zmVj~$Le!NZKcO`u(mB)rQ(lu&la=GBrE;7tjuM*~hiNZr%6>*?5Qt&OMG&FhH87(! z1kHM`<`v-nE_OSxk(<=Ii!?hsJA3I{w1`{pT@A*jmf^VA^^-r*ce7b;;wW3~GWe*H z;^yXixr^%H}61Y!!P6gT3XmHH#OPO7!)mz(qG|8C9==C1o|qpLOL8ki{=*XL%RqoE52kAvz% zlVQ$Acn3Oa)y=38dsq)?M}(%;FTB5r6Bf+ppKqys*=-W@es7K?AZnEBGhO}$o>ep+ zuP#1d{eyd8oI%UAQ-YGNNc3_aEe5%wM$9p`)yGX9kgn{T&UZQn;#S{Na-8v+l&gP% z*=N7`Zr2P?(4;^1m1S$#+=?jyej@q75aVzOvvy}BJUBe2`*$poXTdu!&&}?d*wk1w zMma{L^G?Lc2&TaVCcY3;Xv)L{yX-r;P{B`f@3E2#1d(IY6XD{F*Rg^j&q736Z#|+9 zW0_=>9)!7H{V*Gi^gl4hS%AE=A)zr@$k-M2-ndh2Qd-JrT$?+BLyC&{aUEwwXOFu5SWb2|*To7oftbmp)x=J^v>q z4IGnGyd9!O1E+E`TMDhVnwkcK`o5U9nWH)ZQn&3}c^8!TqQ5>_gI*wbg5D5dEi*1k zBze~p?iSYrpElVrFz5|BAKF*PH>WWy07(;X6sw+|mhZsYN+=IW4v?_kn5RH@Tk zS@I6qaLi{!%d z8jFSxd~@xO)*pZ-&1bN>&K6qUe@|k{`}_QugT>xE-RQc!$mA!Wb!vk%8}0nLm$v zw_MKxg}>G8W&&0}?PV2|JXP>Y#WAjIn2m(~b~N^vv=BKcMN7C&1j* zV;aLR^PLZ%0S@*78h~6S>ayACjB`^uOocWKAI2m{YND}wWjtWXzQeY@i`s6-_%zv@-M7#y5Y*7p>(v4MIV>_E_h)qi*J zf?ko`5|!$h&4c>~dhj_`?0m@&>b!i*(N77*X$3)o9>-7_@``@IBGpU~=ZmvI&s6=7 zpcc4s$1=kAwB_0V_++~&jU>Ar-lF(6`!;{z(*Q@kZ~M2X>S>^@});_7;|sQc!~y`4gpGkR^m*wtK%SDu=cE_#KR$Ye%_P`|{`GL5!%=GhQpsyL)sJxN<|^xC}>J1SiD=MlK+kYfbPdbh5lM z*7+dNky_ zSj@TK3D`i9U?&VcPO=}_O}B;K2Kk@FO-`zG>PVH`77jm&`f>plL#Un#{}`e)#Kk)y9{*MhjrH+({e}vyre9LR|I&CYiHUww@(&b!CbGn!HGg2JM5ph2OZOTtfFM`}}aDnycxWS3mb zOTUu+>MRs+OCH2vi0v2737grFdpMY)UV>uDQWaqvTGv%s2v^GWx$iK&G_yX zs093OJ-imhcQ%=@Jz+Zzz#b-ljeN2EA_OR`pAF1bXXM|}HWqpef4*&W z+0vZ&?q=IQy32Y4=%KqUb692)iwCCN_Ggl|XVMk$^!h{FiS*cKGCZM`1mi-ma0*;h zla1Pd!(umGA{Cg+QN2h#FgEixylT-&5eWv8SgcI#XVRFrW_=2KUJ~PE8tJ@`xVsCr zgiOQi3lg*6d%A-WxsOy6O{gl^-<*x{)hmz7c^gE&!~s&ZCwc)PD}aX-0i6_Py2!6g z?ZaZRBlM#)p^&$-4aqRpX~)k`q;Vbhl7pH%DIK=i{`+#dPg;Xn^|ULV+G{QvhBga; z>p8xIaMnej$m0>nq(!42h`Sf~$ImcEm!B?V{^s&{lny`cptW`@%hqNCz?S7MAZ|X~ z^M9~QYa$kAuJp-@3kqaE@~5BF;GAUY9R0)Q0_3Vk=Z^NyPldEuWY~y;lnznPy(t_fv!iCIz^a0qr3mrj7?31HbxU3(prIF@{b7PUqk~ zefkL&zlEn~lfdxaFTiTHa`G0)5QIJ=VhH>SC*1vC7QmG~g{LEkfL$AoTr-(4&>@kM zKwDn5)g^7DNqtd`ymPX_#^rKkq(G`y74WS@Qm8&9y^~g*S1`XOoJzM{Oryhh27*&hYLxb#E30 z0+Lsb=3^EVwP}!v1We!(D+e%)Af3UAS#PoZA-+gVThbJ(v!ahb&@TZQPE}d5mpLE= zKFzw%jDs=1Jv$9@>=Ge~V~Q7}o~@cE|58_UWB8&7xrrQ;&ymWwYt&P=Bi#PaDy>koj9(8G6{Ua>n#nF3GhB^ym^cOv zIVHtr?1T>%J{f2sR*mv_%KWX*I?l2rMX}yrRPnELin&-g2(n#nKX1(iCo~#DWw*a8 z#PyiR)pb2|mAxZ_H5Ls)f>luk_%Ejh0P+ZQMjHTbDKz%{{7=C4*MqqlP#Ifrf^++4 zRoI8e#StzaDZkcYJn;CpAujLgf5I*cVwW!Js_#g-gJmTjWU&v^g(iP7#@CW(U2#9} z-teKMC;zW>OlppsKz_+$WB84@}2#DRPE0qK8&p=lwbOl)Wmu%JWgW0Wy zU*)QMsG@iqh%q=BcH9Y6BbI)ac;m0~LvrH{EH#;k3*NgV6PaT( zJdX%Z?4Knt!l)H`?Z*tI%gs*f;1R$=T4bbFt=s6(-E>CL4Fw%CG!1!|Jtni{z)wkJ zc}|XOxd8t57WXHKWX<+Z`5LO1Z#3e+>Qb(Kiaqwk5ufr`DUnv8A`X+-88?y7}06> zy{Yl#u4)ZRwEe%{J2vpiyT-JPb`DVx-~)aWcS}#Kyw+jxuyQb zRbSYn#daiD!zdySoW%xPdN`w(LA}QWj%}5QH{*FVWE%DPvjn@LdGUz}e@wRG^HZxP zxMtF)*!gQ14u5uL{VoF_1TsFws+^f3$>Hn=jn9xumf|Cn_<{Cv?G@GN5Wd_Fw#SAbFRW~)N~ zc^6^pRlA1x_>Xj+?;8)H=sLwad~t+naYf2G2(XBkmb{7ul7P(2V%v+Vfa1?kGRr7U zEpC+aaucTUCeo2_xa+T44+^#KY74k-1p;mSVat>;>|Hh|6tyesfYzqzUYIQh)zH3N zi3sAp7DqM2JB3@Q%X)B}e7s>S5zbCM@j>@eNZ4hQD4}d0$cs=Za1ygf!KG6Q>hN2@ z@Ebuvdo3*SX*YWN5Quw^k4SN$P7q~F`)636mZ8hCSEJA4XHVdHBCn2rCaj&0{^r!) z;s*8SQlVGw{5yM86+Nm&ZF$w3@YlrQ$3ezs+tU>e!i0eJnTb^Dg$mV)expNH(Y-f}$x-Um=?%QVwG0WB-D5)?fE<@RF#KyO93ToIjveL#XCmOl9o#@1vk4GM5;|6I3xL&{ z)WoBLepz}E6bty5nkGf`tEfbJD{lCv*@tA@Qve~Wm7Vp}qI-^L=tTIsb}(VnLcraAA`uoXt^)Ql{#NWJ^Y z&@9xy4`i}PJl@5)v~nyWXD_KrO9QeMxIcbYVO%u)s~Y9!Fe%KvxK3H62N6l4Zu@vI z$#G@Oa?%*=Ois?qWboO#VlsV6Oqy%ujo#h!hJJ;NiZDwr*-SxfkWc@Hxl(cUqw;leRD{p@DkL9E4-nhOn`Rectfmw^)kR>@<^x2oA?qotN zf$%VTFCEnSdX1m%K8PJUb9p0N!kq*}u1i87j)CF-g~CLe#Dxb8XT!)W}P|)CVA@GbaXi}9R>T@eSSJ^oUO{$Dr6Eq z2Zh%6IB`J}Tp=CL)YJQZ1O(uU~0m5wK(la07}lSwQ9Eov&whbuKx>FOvCr2 zdBus8sy>*pQ^1t*A>iK(8G!EcksvbKyb(HB&Y(qw1JV+R^Z5BuC0Uk2w|ynBp|40H zI~iUjT0PCR`)F!42Pyx$x=1dE{P@%+X{I4*^Ya~WWBuV6IMnI(tfj-YJ$S0o^udmFYCwfu44d&r>#g_wQ7iGUeTAj2cuwxrqQF zgRbU*sfqImsvFhff@Rh52GX$mdv}!K`qY((!q=wyDQe>#;a6JYthf;bM(vpGWZ^6K zKLH&+H>+w60Kzl^{g+o#^JOcx<9z8PtMWiR%-I}T8-ezP&I&^rFXq+u;?}5e@T31u zmaeYD7kG9E(_yonf^PS(As|kn8xUxB1KA3XB5fq~Hey%lJbA;mf1qLhnrekz;il5P zEhhmga$;1dCHg58W(wMYK|%HQvpB5!69{mmoF;HWS0h|Qf1>@AkzgJA0giknUQn4_ z;_MYhA?N?2>Mf(947jdghM`kJx*JKQySt^46s5Z*hwknkLb|&fQMyCAy9A`+yS$%x zpYJEESzOGlGpF`Gd%GbKd_(mKwIrQA>6-PKc^{p4LKKaa(BI#$E2TedfwnO9Du{NR zNRA4+s>lL*Or~7Y3D@!zOp4jxsX6XXvXT142u340lH|i_fYD@S_=B6sMpJ9nk2k(kPSZHD90_BUcV3)Nz zg|!C(Hp)&wA3TtZ-(idQiBrC31SL#~@a~=ok+{F3SyP5Zij8}zqWIRML}Q{NuN*)? zL%WYzm%skxzHZ)uwy*fhpMrPQ8i*hX}^ zJ{Te+=xQj?62*}={YQC;E6>2}19d=Y8+FF4+v#t@6xL0dihO=)K5&(8r`}Pl6qM?C z{=X?R-Uo|-i5O8BBslrsNqvc00UeN%3I>IpcIe{R*rvoY0LUv}Q0UeM)$Fa)!;9Mu z(HFLnU!&&8$g=TVbP>t$Rk8|_#(jXIVBZYOqGugHwWtW_Q8yfkr0em;%OIw7_`$_M zDT@~rf=OJ4EAaPMSMi0!duuHgiVr}yO)7n1913*XOnoqZ>w)r#y5Z~;WcYsoy_Y>W zVXY(iAUa8#ExQc%P3kkD!cdJ6nK~{&!=Hc$IKt2dBHLn=**M-NlAEmqVmt^R$MT6= zx6oRF`~3HJoQfarC`^q#Aclqy|68xE9IpnU2YIfU|8m-ZiZklh;Poc z(osAX0@_GOao)ThOl^~a>KMeCIu&$E0k`st-3U!PBLPXgi|ZM{6zv;~w3@BY(-$vK z*r0c^)zi!+C1Jw36EOx6uPc-A0^+=UbA*0!ZI!= zoM-9MDY~7Hj;Ac8IGb>A?EhUKRbKXbx&1ts-Y^Hp73IW@dlPLlb`i|fI47bgx%-z= zq9NNW`5SgPWux`)h6R&@xZYtptx8OQIY+0I^Rbbo+G6a2baY9Nl{$%*uReYw;=quL zB>tU{>rAA3WBOpA!S=R~J+#;_oQ`0!JXNPA^2|%SO0Tk5fwDNyJeJVDn=~#KPW50l z{kJF#^>wJe>@# zV=&Y!%_20Kcus1wsN?!W97jIGBuANr^k;d6g%QH@(I7qE8fkmz_Sv5i*0(u`$zLrx z1C9zJa693eaP{8fhQ1tVx9AdnDpG2T!2XMLJVK7PFStw#}EMW^u>=q?$`)G-59Cvis#`*dbBZOw?@mQ{l7B?*|@YDCfG-wh-AoPVlVIhXP!9LJHnFFki0v|}OJ8}_GE zKb|`APa2f76gx>U+2=z2$LWa7~{O3pq%OZNT@;=50jSBj$53ET7m` zYX}Jf^U|<_DxZsQ7Zq04ESoFnZVfUOkA})t{lYzS!fv6PWbOH0Hmwt-FFvV{zZ6W7 zl00GN@d(x3>QebX|BMTIgL1Ji8vy!6L*($f>fZnA`#jf8d@)RHFB+Ptj8aohDC}`A zsQrrFc+V8&J>yC=ogW}Coh-=i+WpC7ibE{q>+I`F1_q1-x zx7=(OY$3MS)LpVPD+!B+(019%2LEnc zlN%`WlkR#9(sqZZJ5D6?12AF2KfRTqJD# z`Kw2EV;+O3avQ0Yc~OCVH;(?ng&zQaJG2{Y)MQYSS1a5c;X#cd;L(;-r{n@-2&y21 z^oCmjh5rmV+0v|JpiPhgb)%QNy_2jauSL`?g!Emf-BSxY9s1CsZcI4*qAKqY>|7O) z?=ZamH5yh*K_JTf;&qGUarj-79xEad%;&uN-h+K|%+jYLEfkx3J9;$pu5P=u_y^(` z-e~JYiP(h|x&mMbb!7g*2QwNQjRK>9i~xB;h{s4P`0bgwoHB~Gp{u4Whxp9R=gX~ie@U~w@$>@C;6ji4L-X8zU32&@4`PuQIRcIc zEE8XBREp4N;|dGNAIJ+&8Grh4FpigBFN`O{(eLl|M-&cL;Koj}GAKOiHI>uiB<02Y zCwr8{mwH!$e-}dp^u%*!Ud3+S0)GCg9gr*{8*U8~bvP&P&ZjyBV^Eg{F8pV)dN)Jg z!MFJbFvRGpozG35xCpJsQZkRgGhj%tu_|#I$!I!z&^yk=ACCehHu_Y^2&(N3W=usM zfQ4OOB#tI2EMqi@>@48O`+{lcdr!NhVJo-(YtDKe#20N5+%B{7UGGOkayiuXm>aZ| zeOD)anxio$Czz(r&sUeb(pW#4mrW#!k>R{IKA1{>3jR&~p+dKwsH*kBYLf%$JH7CT zF5jR*+j2dg-V^ZHRjfpneNS-^*UV?vnmtpHk`j8lp#FE4p{Aiq zEOhI7I4yU;tCD`W_>J7$@wH$%{m^Lzwq)yaH}4!soCjb24>8DIHd1)#E?z4-bBZW{ACb~KzYrtab6%RQ7?{Rkl&iVTIqQiI$9H5 zWDqe0KE{*9T5txJ)Qzc_htrd~!+GZ|@@FcZc+(d@)(%mfNx`hr9J31iV2hQ;`ywe^jbX%M=dZlyFrs?p>yUuULqIPpj-^;#Q-NE1{?Y{^L{K6s>wrIXbce?RP(F~T)u@%Dd( zE`+OFJ9Nbd?#bkZp&67*`47O#azZ4wuqXM=ZpggCmjzB!=61TQ6Xi}9zu==nJ8{Nq z%iX#e&rda8yGEXOzQ2cy7zQrM{bN%Vn>%0R@zA<1SF9tt{HbliL?s&KP`Yf_ZkY)TWI?TKmhPvcO_h`|QW!$;3 z`=spOp!vrz*iBb!K1&s)VRb`8*i3FbGIxtql4Z@VPxAF4xosyG$|F|CNKL~b zj`F>b%1_+=#pDyg&+WIOZf4w^l}7j(^GpyI0si{}b#F^KLjH&L-qX^aT3xLgJ)46k z6>=sNgf!4(?|Pum<>wAWc!ZdI>h9%T$=tW7JG*8Q1|*Lb3huJXFRTq-vg|$E(o+!m z9_Ecf+O|UoH3up)H!gC|%lGtYRZgVTWJ8-4{0g(kq+CfvMZ6?T_DofFD8XM+VOZKU z5mG6%-vtM%Vqyk01-$;%)o+Cn-NMT;Ge#x9Wii?gyH;|JW#qzPcols>t}c+3&?7n{ z#zRvT!P8+E%~s<4tiw)0geyigDGvT5Ntw1C$DqQ{l<6p~Hf6KO>0o!8*|K z2xC!pM7>wvnJBwwdm;$tp6!%nks2hB7~PGIzVW>46Ow)R4c^m5|LuzuQuEE|k=-nX zhe_aM$zGaN4E&Dq8|IS6RI}1wVXy)YmB1Ur{4%ajjj zdc?=)^7yR|){uv=&%~u_tgE`@=Rgv=WZBmL?Cvdlw!-PTle1<vv&j$r?cVYu0&b*)dd-$Be6LI+c{jj8p7>DWZ|geRp&5ZQ0$7)|H+);FgdAoa z=<0MTA6>qwXnxspcVGPq4X*O1LoS{b% z8ufVAO?<@Z9skdfw}z?`pz2r?|l^O>_SFs9c?kv`e-Ja%Owz-TZCF%me@2 z#P8u!hN2hy)tNt;xXKu2*Pz9LQr~+jxS@>bti_alh2P>0f0+B*qC7FAnPMf>qc{%t zv!M)Fdg(0F9fVvzLzO$=Mr~)T?CWMkvRZm)Lz!rIGB8b;({PvBanbX17i}6hznyHV z>>{6fx|(hxGiPh7imOk}aDd?}6X7ul*nwj#3$$^0ri(9n@=g-LgDc2Fhu4&&t4vQn z6i}$2bvv4s^E@-?w(I0nzXLD;lgAhXkQ5!PL>s0+^?qxa^8591BP2l99nGTMW|IHM z;fv!^T{k70`~;^JhwDt|Tt?$@Om|i)G5+`6Hdkv}F=;i&f2ymL5+M=!z!yMPYE@R; zmS&L-h4@l$vBeQbO=Ex?yNkE>7jmE17pKwJjliWo{@Jr*S->Kk3yhr^v=O-tItoONC#@mNba_AeR*}) zNA2@NpS`cCMi|!^F+qXJM}M3^*FH;uuu6cMJ?&^8$SwcTm#?y;@Q?7FL(Ii*?QK2Vo2<9HHi^tMS>=YG_(7N8eSN{x};DV#V3g5x4%m zVdivrXh=KEpFWDQLvjWWvP~QMoF_VgBY*XFp8Wk*XV2>}ts94BTX)&@_ph*XN0>J+ zkhNTlwi`U4!L^-nCPxk}4d>TVh$5cCMq8{mk98s6F%q_Yz1UW9pc^0VrEG%>;LDY4 z<~FiqCU_&Oxs#P$ktI2#Q715gcviceVjN@rYu;T~H6SIw2g8!;osGg2?m7DiF&LuP&{ojeJ`rjQU;jjp9VVw9SjY=xXC;#6qJN-tM-Q!hwFze18$)f)xa2+CXU;zN|AlX| zw`|`}T-}N1B;*ug$gua|$2+caof)4Ml49lK^OSCGj1ZG)*lZU4;alSk8Lx84ba6sn>b^4l z?2TLiz<86ZJ*E6F8Qhg(uNj2!@ugG*6z;abdEE49+n=U2T6DC6XYoz)EEAR_|M8^I zzsKgeeju7RSj+@`NQN5CYCxmXMpcU?5uezomHz8Oi1Q;mWO1?w)5%v8bqAN*`_8~> zO07Q8bO0bj`)8qxqwh%070TgIgf0L?ryy^`@4edB&(>k`g?fP1ieU)W-IglTq@%}P zy1Dq{UsBcdQH0D3lILXrCU8-ncx_xTM6A5%Ef9M~aHu(;uvy>3QAKha zySq;{%KOwj)7Zu^XvvpY^0i3pVx8r|kl=YP)kvO$2$lM+H2;E|41FRVi(a3a_hi1< z6*0HXB<-;HV>-fj0o7I|mcoY~mqy>?+H!Qom}H>#yvOPaoQ;vhMT1@$HP0x|x%@3| znz_##YTXxCc*2MeWEykpfS)4-6!veS`^pa(e*XrxhQML15H4%2?UDAxBszm*88zgD z@$45$>|U663L_vrU2T9~kmsB_u3Bv;q!E2BzdzBp8w{$?W4!u#4Cv#7uw$lB{uQ8y zEm{K6o7cwxKjevinv1I=>mzYIr)3EP;hR|xg6E(88B5ASH=K7j%^US}R(JvNDu6qA z6fqCC&WB&&bqWit2T5M}F1Ek_OyE74*afn_FRboPXLCV{XW|-OQe|EDE0y`uFM?^1 zD-{4rVqHT6)c27I1k4)z62G7Rlgf|8p-0|MlCC^f=_a-h;#v3plrC7|irsFtR#D1s z-#`){98AtpHpVG`tFptuj1ul(Phpiht<|n&*mDydL}tB-393cA&hKL3uM0mLyg_l3 znl^mEm~38IAvG)bFZh%`Zo9pW+h*u+%TB3O7UmJ|yYevtElnwk_a&yLJprSvm85Y8G{ ztI%S4TPgs+UPv#_oA6>YGwx|QOqpD^AtH6f3f*dx?Sw+&2n8~+{-NYp>zQhUR{K<* zx6OEiWqruNP^8TA77je?g>N`oHfLStyRVk=rrfJwp;##tIDmUso-z*<2u*g#TJikw z1UiF}Wy^Wj<7PPh5R+2IF;E{oPNp0g#2+n04Wv;^;5Bpt(eyBwtO$}~PN-zu8@=TP z1R5DEVZwN^_kDdHHC58!K5;lgOS|j8Q3=>eflDo38ArbRFk(8LhSj6eer6cxedQEg z^jl|K&NzBhThcbHPKWDjr9+_pe(RYU766*%AuA-e!5rc-JWiYA|J(3quvuo#8nYQw z@4jrI=hH7~(TUp3gIgv&p9>MUn=trE;p>T1o5$p3Vk6k)7?=|oKPHSJBL@ml}gpSlP`ZHC4kx>TB?qR5^D&B@!_{j#sX_1 zC(E^@L<=l&a9|QMCLPC*YDq}EbVM681~4w$h#jFd0m$2hES#!WLLQ`U?FPJBH3S{3 zJYR~;p%Y(Om3NX6|GEgI*_x3oM}7v~UFN?ck4dZSdI-I>keGrQRq$m@W)P)lBww~_ z{M36^69_(suV}drhrj#nP|^U0k(wOHLQh_Ij4RrYLnL9Qg{M6GE`ZQN{X^fLg4mY= zr0?1Ds3^)1epjOV50^&a5W+!P*)XcH-M{a4i3nl?fSntIF+t6604QF9ws^Wj|I#2w zO__06Yeous7#&N{(etq&4{nB_35k`w+Pn2L8D-$ zL793CIff-c%^w`?CLuz4nA0{o&H>FGh+Vv#DtrYtXx90Dn9+D>6bNh`7lKh8uflq7 zLqt-a;pwwy)d=vFs8@TG(=IA@7753k8i(@aKt5)UlD`Vqni=MdoOnUlRi@sga=!s%z(gl37H>l zTLFz$i&=&?wjypoWbO2KQ>j+$D?&I=T$n_mf6nt6nInG3-{0l&c(kL{`%9w?<`O1> zF@%SniVI&m{j+`m!MpYApNy!(9^q$78czf!W_@Jcy990>=wr^S{+)duJHl=@pEI7m z`}0k2#8i|Yp7|Cn(5LH!Zs90RQBM4X?jm*G#nJ-oe`t>m)e143srVL^%WDN1O;21r z)~8a(%BAsjPiuthQ}YUHq)z9f6}cxtnS4T;oK5oCztw(i7B(}^eeE3UsGiki6|4p8 z$&*)rVSpis#*GeTXH*)N*mImI|LIHn$#mohN-RAQdMJN@a_4UyJBSWkgI+=Va8p8pg!T$L^Elc$pVaY!`Wmt54x|bw6`Oxy2 zF^l$RH_0m}m!-h0PrQu{_NpTjk>Cx#i&R0CN0J)OUlYL=r)))0Iw+UU`hnP=f(t`P z)pkD6g;Bi=H$@%1)LF8s^d5G(G+b~Bm_G{C>hib^KaP!p%=;E6ByRdjm17Q@@+5gF zeC_&)Bt!4c{=V{Hc8iIY@b5RyM{7x4VoYuETBZ*7pVAHVSi`^Z-_K$a!}SIkp~Zl;h1Ab)Ic!&&y1{N4&oEtB z=!^fc#Vku|Zvf~+_^jUE;=4R4R->WoGfmIGxvnP$U2B4uiZZYjKB}tPc%P%qKYi>3 z@P3}YJc&mddoMXoicyS5f%+LYF5ieipp&dMWS}`W0}aL=SmP`W_>(C|_>4CZqqDN5!I&QuJOjXB|qRfH7 zQha88I3Zy8>qwxW6?~cuycp$BK~=Y1?!q~mE2odbA+)@B01WjuEwg~84lBuylOZmx zPv~}ycv_TPNJ&l#NS?Pbr^}m;S!ym1*Os2_LCGNq`mgIkw|#Mx5)v7klmD`8wwx>Q zLVGGdOjAlggzbR!VIsIpS(S79&w1qQWLEm>YfJc-$5;`({=fq1(kA+Zy4{XSy~dDu zOhFjnx*Gj3cy__a4_#Z|w^UzoaRimELlrx%^<-KB79qwO00e?LA$9h-#6dAMo7`b$ z1yuX;m14^;U+oub$bL6lAKPoKV$czY68@^K#vkv&|7DZ-f(|`iACOCQCG9R1W?#)! zVpz6PHmwEvn=RPU!LnFhjS(EuHewe-?sfx?QKjt+fnZJlo4 z?CFYDyCh?X{$UiMeLwV*eLPP=U17SwAxRlMfn!YkadfdU4DyGp*}P6w)%`WE^FaC` z5n3J&D}~0T$z2q;la=Uq8SsD121fq9xe)YdeTb+XlEHDeWG_2*12P_f4a}C^_V|M* z+cbeIqheqw?j%%eCVP8Zob8EHk{!6mc84)OnC^HJ0>JUqi79zJ0VZXChA(NMY;7wfOk2!%Qv!A+i?gThK53F9C1nt8PDL!nb%o4OwV_sb#GQrC6e$j1C9gkC9pBa-AL>d%)|UvAG< zC-Zzh&0U$6)IYtuw_Sa}Y_Oqxd2c?t=y)+HfytCeTvz2wZ*WHHV!khdD@5xJtrYOq6on+;qECXZ0Y!JJm} ztfjFcg9-1?a!J^7zq!Fap(4&p5y>9xwOLn(AGN1z7j>b~G~h84T#gO|fR1K?mMTt3 z=?$9dV`r#E(A5(bdM_j#$0+FWtdrh2bkgSoGS=SC4%|R3FC6+y4`ezDwc zt=xsHoI|YizC6KP05mu%pL3We@b!G+VpmlMV8hC?*qr*Nm?-gX2Y=N~6v)h_CCtAC zC3!?K3g{|m;-K9*UT(FxmdZ5Sfn4b$jbXUF?~VL=vzyn+CK2N|y|aGq2|i^-_!Omo zqek}3KDe@;3m9=!BtcF~E#Q4H%bL4OY<1=;&v`y9R;~8+F(D$F@gn>yhWo)mYisRb z(GM$vVOHuD8`~$vTs?>X+XtKFHq9jTaluC$kB9sHV8<`B%L^gAQzMqD zce};88-Twc+-+0^D}(%JL>f;D6!?RdZ>Fyx2jz(z)pli47j_{yYpu$FIVSBsL6TzG zXRP4mP>f(=L=0T1!2tj&ecwxRCI5jL#`ce?q3yJ0nvFQ<1#-U{BocpM|9Um?j)9Re z1=xmNJ4k|)FwXw)vy{)%*24Vh)p4 zB26z0>LN4up=qrS?T~L{ zx-Pruwy1G03_7n`*ymozPs*45KGgrvJm3ednpny_1|!6ITdh+e+;Jwr60YCCJ^IZL zOTu4_rmz?l-+ODO&^TLOtFWk{j@xuo%uQt#8gJ3!1Y|ibqY0mp{z;kCF>cZF&8~?2 z0cFWOrqqytKfgyZT#{=9eZe0sjY2e(184k#5 zeDp4-)4Fq){s<>CJ=;1Vz}g)l7);i)WHdPZceCNU^+KY_YzZQ*3?j$c&rqC(EQaeO znflJD3M-B7pS|i6wTk2EfICVG$%pIN(qywIbrpqr&R>{}dX~@IfUvI&f%gz;*|^8> zHPA*e2=Q&AwcYHMAWq3!3#513 zl|OqIMXJewwjD%wadO7HUOTjSw5ZH!aiJs>h)vW6ciT1 z{ka;zP<}>46Qu-QVxCQ%h0K4u^6O>`0W`?J>m^$~HtXfHb00j&<%d5%tRh7_7>jcT z{%#Ld%^JCB*jLZ`wfWn+T1)9+N+!1lSS?o(RpVXaqJ)>Nc2^qK^0}uSw-d%b@X;&rucEi_;sU=spZh83l6yKNU8LVucc)4K z+bkD+@{!}%IyGs7{sN$wpK@+}GhFgBtX76}Y10rXo~IWO9(Y}ia^P%)tabLcVX9f9 zh9CYtUcf)_d?N?Fda~tuj>2>y&d59fkiaemsPLbnEtiW}nu(0jHoDWS_NfI{XW}&yJ6t>un)HZ5a zJ9r}-{7hDX>6tV2WJ!1Q-hRjD{d&OzIsB%5wRpE-G0)ReX<8zX^_R-YN3)RGl+bK# z5cqy2n))ss1bKN{~L_p?9|G|B#cD!x|BCy4=)TvuuYGfe<&@lcge( zD2W}Ej?P_Y4C#ezYjlu?zBE_AEgnvU{{DiGav`JG2f{rtjFWIdwpqF0NfJ6Punq6o zlz0G$3>URTQVr4|&pbqvtnGh0czp>y5dB^ZJ3V>05|j^@U<`?d1CJ)i!lbDg_IytG z^SN@vt*z!ozGStI<;#LS#F0S|a$j}`cX#?BJuVD=O#!s0BIZ6Xdok1$stb$&T zE8%R!E8%+`hA3z;8z(e3%L{Rv;>2RSg0bwA61(xiq{+qBfLuPaoaN(j_1BAg^W0v* zAf}(_S}~hWrc@167^&0i7WrF>AuVU4*u~US72|Qa9MHCP;~aXG&=Fj0hB|KymscfZ zk|ghX-38cf^t|-d9dy*WuY=}NRr(aw*r!KIfn^#-a=b_&;5Qq3S}0Rb9j`hBU$Vux z8YQ#X6iv+20|1pM1B&)g-L~`2b6>!$?YfMa3Q>iKz4?0LtEOdx*3V7Xm6lq{MhRB? ziw(+)$^KYTAq|#jnn~s@Kw~Y7#u%zO4i#(e9jR8FlmEyPL-N*0YHoVL(5o>+Xb})( ztK2+$ebMG$n06$V2N*b2+9#qKscPUE0rw*U2ci69G`>9|tl6v|XC2PGg0Fp%(i)|@ zW`f;;R=1ExOk63>?IoO85jvmTX93}xxrL3CPj)vvh^uSeej=l3m)w9l9P&Y15zpl9 z-s@Q_{(&K@h=`Fr_n6BLg#Yt^!t{|vLuNv#Q!_}@l&*9sJOO@snkgOxye6uhTeDNg7zU^bxe14 z0(buUhUaP%&`-esA+_9sX^vtst17tMo0Mu80_-vh{wwcOC8M{cTKsMxd7e$=L>esr4COK$&*ZPZCrEgnkfmf?)Ke4@{4A$aNz1LLhR{)kS3lyF^ zf?6Z5nm>qe9K9u`%9F!x{)0&qR_C^gkVQ#7BNEYEASybd8|<5V5DLDqAXJ9lJ_H8` ziz*p-A;24D$b*RR)P19{QwaV5k<4{i#HThB;a-iS#5Xgk0BK(BviAkK|^;dkG0~YL7A-h#=*NC z#W4libpei=3Za}zt^5XnuUF`A+|H$6t^tY>r@FHDf z@HirHOCJc}+py12U-j3Q$-?lv!PU#@J|iYp){t|27IE{aYU8mCF435zod!lDCS~5d z_l9goV!(g6nIFmKe^&BPT69Nf$7BI`$=8z3=k@cCy;I&7;1GVoon?fK8?*(nkh#1u z>Y6t8^z3aVyuB%k&NS{1x%v1gx7*-au7z#w`QCdkef7Klw09M{I~$!*m*hPL-3LCW zofo|GPk;m|Ko_$Q7|Y~VSf^|q19WK<#x=(-vZOe2W*}!-StNY?WeQGOh3DshGv0Un zce73W9ut!L!>VTC(PjlDLPp+~@HR_rr1z=+qXiJPkH1rI@{Dl!5_1H7w6P+t&2t_d z#5Y2-U2cjryJ6Ivmnm^uZEx1G)f+pcOb5k5350OshPhWGD*!Qw<=upwsRJ^oRODWQ zF#)LneqIlpPj>>}$x18EIml(+t1R0{QZu2@=3lk zmlECKzXEx1z8hRxAfBqAgm9F@W3^3~Yr)<}zfNQn7 zBw^p$kvIII{rK9#l7}wQGiVf$G9#>UC|OI8{C*%5Kd<~Ebkf*(@09$?N{_D ziLr^J(`i<_LqZ-t5qvVqs+TY!xa#yV>yNtHVe*fXxUoo{?>kVVO}Ab<5`ZE9OlNzr zm>Vp1O2#v9500>XuHwyy+B$re0 zT%*XutMrrs4}t>TU}hVv6I7in68bV{Pm@d!Y;1>~14ecBcJNtjBerI3ia2o^EWI*H z(uk}Jd?d4G^zH07$VzH;%G?121|m#4fB`#aEw@(r)=OJ_vn$!e9Rd&TlO7@j%B?Z% zzX<&I?MVC24-{g^lbEvme|ZsoU!VOzEH?8Mt(+3A@%6a~8p8cx9#8UQ~#b-z`YHNCmS-roYB)?p=$| zMh_$(0h1iVM~ztwx8Z@`_6Hh;Kb(+1oeGK52n$GV;=lKQ;1jEmuL`MsNdD|S_xSoS zrn%l9Su*qfegP0scB}m&3sD8FT9_jNzF@af0Ab&GRPr~Od`=9}B=S4={`MNKzrG-~$ZU%W9 z3}WVH;>I0>?;vw1aDZvTomM5FU>Squm7?>|Co8$okX7ENp)sEL8F%!dpa$l9@&K}G z2FzD5%@j=Y5W1lt`P&8?)Fs{}MnGeoUy-3w{Z#__g9KmfYg2cpfj})odsbBu%dTk@ zJec#ZH%$PD{%u1jy;sZ(gV22e*@G`LDgw=`-45CRiMam>KhY%Q3cW_`HkUIR=9?G+ zg#H~yHstNapZ^`05M&w=Q1J}ovyPdV=9z3iz;fIy#5e^<@ByR8Mscnma!vjJ2|`v_ z6~Rm1C}IKW#RGU$d@(@sGYDuRvmnzZfo9mnx`WX=ly*@?VfnSrjvYYH)z|eD+7SKm?}gU zE!T0hHw+Z1rgz1vsERTZY&f5@_F3=7+#L4=-y*Cfe5lE+*r-|THKFf?Y2WEk!AXlV zZ5cV09(tCqfri0^V*=Wb<_^7~%k^zr z&*3`}I)b>602mr^V<|!y7;U~3XDHIbG=&fc&IyLVA`OTP8?9u3lMFyRGVn+FmW-va z3bNYJDTIgzqjttWxAnZy7Zm-a-g;(~GMWYthW!bp1V+%OS_a_CQ&f)HAshHzdQI^E zmd*cLh_M*h*h1Bn&rpspce5EP{7 zyCH^J&X~>FKP`b(d+cFJjzvQ)n>Ud>dE`=d7gf1f4m4Vcu{Ofb^B`vdzn1kNT_ zK&Vl_7UhrQ1_q)j67E)o1Te2BT;;vzI$%o9lH%X$`HIcD@xML78eD_fUcu6##bm46 zKcd~7b&>_ln6#`9K0KKPTYdsBH_OoW7bgmgPz$9qFW!!iv?}jT+$)8H+H(_5AITyt zU?Smzyfh9bZf|`vRyF+|GU7gt5%Q1##K_}+Z6Huh#TV3-{aNXA(RQH3R&V$!iX#fD zi6Zm!sqX&FsBHG@)p9e(m%`-UiNY{?W_`?l1cL1gQ$bx&frYNl!m$ z3z1DFCx{B}d)e7lQiY%M4M8}ELk9Ql+fNAm`o5hOY8t~R zjd2=SXi(qs>|$|~gm?RIoGi{h(kJB<8|n$2<9w`M*dm(}h!XaBBz$<0)_4B%NxSMv zX)1gh2pq6Rj>+3y=e*88Q6Vrw8ER*dF*NpklQ`#lc8sf=v7kbRu z8u;rYCIl$H+%9|n;uYB2R%mpvvAwl}b-8YqT{gr$;?s9Qk`4PAy`8RThWcgmh8`0h z{6{ru$Uo+lhG4_By=U7oZv&$KZY1Eaf&tIC*Yn*NokP2j>PHQK10*{|LrK{ z#6^$w{5FH}`&MFwK^dgfv!WshIRK<{2Lvr_ote3Lf7Pm2Y^gh<Dk6`ttZfHWCM3lFr(-q7^_Rp)i+d!s-2~D_+%LNIk0X~lBmO!}MpSA@|JaMz zrG6_ZlgJjN?Z4`P?(q#jmQl=?!}dBqPf0M473D@-T>oXo^1U$P2xFLVI8{CxTnd!L zBIV=(u%shZ=1&tL%`6|OXU*U8^76*~e=@Fm5#^od9tc<4`#IRUbQ&x5)d0TE!^83B znb)}{-JCxDB_=?Ws3(pUdmotVcPCbVqDs||g@)8v4XB-oJl#Ft=5aC=HUJzFY}T;> ztNnLlibGWDhfiX@?b+5X#*mH)IbI0ts`*@D4;5%?X}MhM8RP9+Ls=XKxVvQw=2()X z<1bfy&yQQXu6*cUuaFToK4K&BvJyB5vfM9e_f7Q=I=mT##jst+ka0glP{=^8pmX`% z{F}BHCUXpdteJR)0Yh~Bb!SrLosLG;!Y5E@WaQ=>6oe!bqB0KBA?Dq^9ns1sy||os z4DR-~S*-LCuuu!g0$2+dRo0!i@Ov`JSgD`}e98aE+FJm{*)Hp%Gs7^r6WoHk1PK}j zcS!;ScMHJ-1PC%fAh-kq3GNUixCGZ=f#B{Q++FU+I(z+l{d=E%&b_N{)ud`j)qKd? zZ}-#PPe0x9WKNYyP)V_jifvu03|vUsiKc8^o(oj!Q_*oIG0?(MU;2$95W8{}U(@gRh*nMqjG_B(+Jv zAXgpmq4p9)86Fu4Jft;y{hB2lXap-KGgASp zUZ;QNs^eH4HdTRdPpZVce3a$S(*XQWbEKek` zX9n11C~p}8zvm@G2#h>rUJvUNe@;-uZca=QClbPvL9%Q(l!d?GKsj*-{>A~*?R0Xo zn(PQ+DvVY{8PG*p;Lyfx5z-9`iXdyfruL;MUY2Cd(?d$co+c*RSBxM?o4!=s%d`G! zvw?jw6&P71BUU_BtwD@q9D~@TUU)OXF0=7IPn{cHD3HTj-|$_3`06l94HMzD$u^jg zntaFr1}lidW3Z8tdYyg^#z=iM{(Xg2>boNAsBLRpq5Yh%CDcw@&gW)BR?ZhEltP=G zh&$=P9KM#Jjp*7AEO%y#6YArMAih0TS%mW-c8Zj{d-{dB z?zk%k3!=8L@5YEJ+ko-ndh|C1-(;t2T#_HG3(q*txFyt^jo$`~V=LPqyA87}KLCJ& zn^XUpW&BHKl1}D#ckA%s+^Qdvi08ike*ak6Z*21b_8(E$Z#A4>#2U;bV$YT zXDF%f?>siAPtC{poICcL?{VyZTv|R5oovyyiN0&20eTf!e@jxHL7H#R*iLq5P}~;T zA8(|*qw+djn;2e9UEM~j`SO?b%ez4i-I8%M`Dk>JR#)cs&Bg7Pr+hfN%s5a?9~d)H zzH>`w5^QO{lnp8R(8|a;^QnDZZ`5}V^hygdw*(=uQf)+VoKv+X3OIRFu5(Ec%#Whq z=nuBJjG9=~OZtF)V4#Y9S5KOw>eh;&lZ$Mb9xF6C?fqQpbnEGEd}7_>^gAtN+zk*_ z7{rk2m08N-YC;GLR+RV#Cm6Rxg%JVw{%$v>=7CkCWv43z3}_}#O=6AK0Cm~c>SDb$ z`Zf!IJCWOPLF;uf{~mlQe)o%aavuH@j21w$Bgp&qIG!UQ`w64)BOvLDn}3U)qrwm5 z%dwOxt}_#v{MfXRZ;TYU#pg7%TKsd>CbvfFd+bxm0ZILP{Y0-E7%!tvuTaCj+zPJywSk%9<-O004FZei}51KTcgrt3j-_IZNerZb`Rv2!Ip#=+*#J3 z&kEQZ8j-{@DDu!oNW!QVdHjasmOaEL=!AT$qNw;!yhgvhM#$przyG|q|3?z=7wx_KDWc_HtTfwGa zwG#?*Vxe48%S*}O8yl|{Vwo;-o(>iUpaiDIBT|!*uEn& zr1qt)?#Bl~V^x2=^`AeFp~o(@pA)_~O)xSBG*{ME+tvW`pGkLgMw_6(lfS-IkHX@? zQaiWRfNkwgd0z&g3E4A+X3zhhp!Ec(?rgkPzq&Y7>&lMO-NofkcUbU&4}4yN6<^VE zh|CH&J@fvL3Q*P2pF$ylZ*98(qjs_~`3+AfV!SMg{o0@qXUSP9zNzq3jpf08+Qfxd zl(0dV4@qA6Jc%z__ae7zMf}rm5@(tdV$ytUBu@1vx-+cCthSxjC{9yT{Q|N&-+bPm zYh|W>e^+YXpNPo*t@ag?=eA8`9F<@Uzn^bJx>AmyW9q!7_QLf{w`T1R+Mx~&3p07( zm1QDh7~f48UCT)UW<3vV+jI9A&PLQ3dEUBiP73`bU2ykhI zwz5n?R|~H?6=uF*&)p3vECfW}+fQDdI}>7QgWZy_C{`6>fu@izeW4SF;XBIQ0F#|W9Ze{LOll8JZg?|a=XyRGx}$KYy*TQ5Do&s_L*%m*r9`gBDd;B!$^ z03cFOUN96*I;5qx%xp1)i7M*F>x@S)y|U@etJ(%_7DxX#0Q0Y;!xfD}*acN}-;K<6 zUf+8#N-L_OqQXx)@Fb||_NrCSp?@$bdE`HF=ieU%f9kgu*atAPV%km~XsWOe!qMXR zT|Qg9rv`+yEUz@EW-^uj3fwMwBs#AjT&j^d$MWnU<3AgWQng;OIs3Y|bVDF?m$@Ze zJ;*=U+e&k@f-$ZmAv0LN#LOGKW?5()>t`!!tV8*(M0*& zY!PB#mdb{*0wYgWo+B37{Xi0;P$U3iE}9ZTaRU?bR03j!UGZf!D~1lGx?+5T1C3j1 zjJ%PfqDWVas&cg@;LA|{>~dq!<5wc@p6eHcBC9Vr+kPITO(-$zkOUTW-s`w8f+aY`V7p&xxE!PMF$|^!Lu~NP= zImFeEzJJ)gkXZ03)hUXO{fY(PMr>-~aO~SJF!B|r_bp19(9LKESu0;QRee)ly=)x2 z*l0Km=pv3#ZvJv8*`h-ukT<;5#fafD+N9SFUkw!pO-z(drVNg zvGxew9>hV&;{F*J+b9HPUHKxBi7*dZOI2(+<5kDOrF$PG!(IFKMj{gER|5hD`SE5-1g?EFME^#bAZL#>rL~UT* zfx>T#AISP{A8psQ&ArpTG@U~!zN(BAe;`MV6hy7yr@{Y`__}nwQO*cOgpJQHnHh#* zcOlc2V)3V(C!i>4RxFPt+h=i*;D#bOMA^?l+$5PVkpS5l?#n=8xMHXMPcytfVuR1zQDL^TrC|HLnWyO-fOv6Gf}yWi3+I!D zt6?Q>V09N#rYXQQYd$^uakYi0!`K=N)OjloAs;v>Vv07t`Ea2XHSP0_dWEc- z=rCr=(L(%1^qiO#YZhPT2y27tq4H&I&jtLEEKkG}s+z%+W_-6|100cwA|wYLQti^& zhGdGP-H%5{FB-mU5B4lzcFKIr*i`4)`Kh4FY@RjZ!x@TXK10b&Wekwy$yGURQBbCP zGSa?V5EUYea^}%LTP!}1_Xjhw_XSi5H`-5z`9m#o)}sBEkvx7(spr|-eUqUg#B)p# z@!L~kXQqm_sUG`360fbA{z-(xou=*CVA?r6aFDp z{mlz=z@i#|`-7heJ_P1yM?!*Ne4s}Wj4#g_^cOJu@3ztr0`SdI($BFb+Hu6asH=#= zDK0^xH{I5yS<_GdDlq?7<0O$W20T*%?{23QH{yzP3x1~#8$)4BN>Psx9?pFE9cbH) zH;wcXr^L(T#r-3p5aw8Uu`Khy5((Jks; ziYM88gn6<3TYTwzYe0Z0MrX)V9b}}ti`#d#Ru_(s!yb}^N>W}LHodgG{S83NkylOh zG5ebVt2Bu@&r`_q@?(-x+dnVF#i86F5!WjD_J zkWBguH1AXb^z54{Vc2AZ#>AwC?=LOf&x>mcGM}j9-W9za@DmBbBG@Y|_yGGp3T*|o z<%xa_bWY{LZOo8)+VTUoWksSZ(@R99%*SI$$&~RED6@3xm+~0is>FHXP*3B`R8yys zNaJI|(_EcrafrHw^xRBws#PP;oXK=QF~cp8(}5*!m_m_TMbgbzw|X_L^Bni^sn!7X zKQ5APmPF_v?G`WPqVzUBaE_efL-M;bS%ITyz{#!iD>^L}tLiW|G7|`{lf+8D&6j&bKyIrlKu-Cvj$pYwAX z=wNk!2eMyk8lWcOobJd+5Da-RIEXZ-|NqJ0zJhMM&s(qe+r7`{0$5kyx7(`#duf-j zk{_)WRSaO)V-EapbDIZ`*a)qJB3Ta#hrl}M2H|%)`~4b^cyX%~q8t%gzNf3iV|~?= zc&O{{6!q~PO}Rh=WO76`ne3%W^Y$O9{7f)ANwi>>^^@xCdDy90wUP3qodEt+DURcSWo$&rRmK$q}$1waM`4)@5ytq15Ddp~>IE*X_O} z-u9ISm&gSh<xT3gt`+FH(qgzKkIGV_0kC z#L%yB%x;<13}?a#77=Gc<;}x==ei7QBfK4%CBz(q96i&0-KmYz9|~qdxQuQ;k)yVq zv7{e}fXM#$FOZz9@FXtm%zO1YQIa6kt5VT2uG+2j;C!c(jOv!lRKgYcbh$bA|jOI%o0kc zcf3y7x&%KZ#MXrVvW#^p%K0%nzx6(g6|DqFllMsgw06hI4PHTenA$s-$~z7(0q8}# zRW_}3SzQ-89HV6 zSRl!DZAJROI>LV@-@$S4Qqr^K-M9x|XuLb-tk2*C#aCF2u7y^f8I^jc)iw@Klqb%< z^ZxLHR}%=ajozp-d^BUt``81)HNr0!y=;$N z`2p{jAB)j^OY~Fhrqt56WPgU(^JE7Ni=5wo+I0(b+jM~=JRf^}OPuC|&W3@Zd5rVp zjo`_TLq-#?2cS0SakzXuKv2DL#8&d*y*f>+bZV$i2C9`R6^~1Pfi{RC3XlvyBR&Bn z(3m@$g4-gHP}+d46;jWxjF_c>@{`vSD{SSICo-?U>o$K^qb9jqxYx4l^2}jGgLNd@ ziEh6MxFR5pcdw@5-@-mM2*3j<3V^Ot&v%$s1=J#pYbh5$+i9!OL$#-%$FwpA{{8~V#O!|BIlLJ8~g|rtybNB^1 zN>~(P${tLP4mMx6l(19<`on8*PfwT+Mb{`=gK^pPVPbfSbQD>4&egBdU-2P+ zPxN?*GAS0m?(JW@CdlCr8N%k5yQe1R!v5iR#J=Dxi;uDCeAIK4yJztP0~Y;uZc)$P zkH1js&tA#=2Y_S{*FkJ6;Ic~a0f24lyg^Gvdx5^xNjXy`1`qC!90e1>sFI}E{E=v7 zKd<@rhS%$=hp7Pj${DW=A2a=G-S?JXRKT-Rzsk`=_Iz(J-^r{;#%W?8rF7@FIREv* ze~f&Z=#+5-TnKjNuBJ#;SCHef1NL(o+#N~@!UA;;+R1B-v2Y4JO$hlo7l6RBwk%ki z-jvhTJAc#9leE^mjIqjGCiGQj_<|Ng z`1+M+gX77;W5@WuOeA#|qEIoMjW&sbt7~fa>tLpg+|;i= zGibKdBN?OztBU?x?)g7h)&Jy({>Av5*Ry2rNRUuyzDLF{eTo64^s;ZcFQ_(aX7@%OMSdHP-vqO7X~ z<+Z)pGBj+eS;|549wCFrL~u0okFFjD^F$m9G;md>Fyz5%HNtdAf_5rB*&+c+^suq$ zXBmI6VHEk9!va`F#I1EHrM~3@X*qAjV-XR8;SoxpDiH1uwm{@T2|)*l!cnxnC&ccv zRF38*iN7%Ae|JL*=U|oBvc$+#4F6u$&#oZNHQ}((2PQ9-B z&$W%Q&Jdl%LWbfYx7n%(jwlp}Tv6D-)B+^~Mb}@gfdB8uP4fedol75^o-Cb6o*e%7ndKY z`DXHnrmDT)YggE4!d;30rUXzF7?Pv%TkyFPO6SNRxxyj=0m6bribPVwz=X{}~`dE5auKQbb}U zsaJPA=ev`Cf)e&tI45dmH;6BZvYebB@DRw+pN%jAAJ1XAnc4@q$`QGEL)0 z!8qs)fkrF0b9M9mUVX;Fese(e%dd;WK)n^rT;%9oVyIYAN%f``R4}@I+SV7#*t(-r z0h!L~a$ITgbDW8OEMciL{_@4@Ye2}*IVeO+GC&!~6+^}gMy=J@rI9Y?q?Re!sA>qt zi*&Z$d*saPnL#p0^cmo%irBRc#xO#te0x+UxUslow0 zoXzVp-Lb7mk#F`Wn)x zBe@bR=&06#KUET27MI$WD0Vhlkx&+U!?>{JpV@Yx)@B$rgG5L($6lE%S?ia13H`b~ zkkY=`t+7!km@28=Vx=iVTw#%ERCK)sx?al)3t#H=Rw1jUX+=DaWuwOX*tFliEQm-; z{+?_gf6D%`ygX}j%|{=Eu%X{@v52l&%SjHZz7@X%_+wP8_%F>o6R`{p#Tf}5mAT=Z zVZHC-Keyc()Tdi_sWQ)(VHD-^mCmU1fhgBGHgAlU4i($LjQS-V9&3NhzVl^qBanB9 zL?$V)OLIk9%*%j64!~hG#@ie;@~h@6o#ZgC&I(41LE*Fz5;+Txp~K`3NU~~PWl;;N zoIMqv^#aus=cD|k7wOf#%b=rAv~k-_aYqY-$VldH8vgAuX#Gj=;xJY$_#u@q)uC-` zKeG@4(Fj1MtgZLcAmBF?YDa2&{vF%+=Vvrf!^!yZ9 ziHw8zl(~@g7tK#dtRQS?urDLrRKGcD>E(Q{YUk|J-^V|(A{9JLv@g@8snD{^U#LdP zjs+(DZ?vO3!8Zw?AOS_}G)(cj`c=>E0!c1VeDzX~{> zDOjBVRuG_$wD>RF=f72n|1V!eD?kNc^QacT7{X+xGb?X#vZA@9bJHYoj2nb$eWw18ohy8 zT|JT(Y+;cDlqH}wT^wTxFY`d?x>ZPWs^3Q)x1yTm5e`Yy@ZwzYJ6h24dk0n}!kgXx z#1!bCKRTJ&{PT>v;-XX!Lp>Z+wb9TGCi zj^)XAo~$XXs4EP6V@;JQET)Ny&8Z(gaNdC=ti)ILJOE2*+&R~m0Mbw|3_xmKO1lVmx}<5 z)x;p;-!h%%z3ftjXM#g0{7?O+2awJQJa7tXICLY)xA^IeFsb``YJQ(o0}@X0?AKz6 z-qA8hpK|s+&w2C0aQw3D5vLykMbFH!tBEw*yxk?1l$v8$1c-V7yNaRmC~mnS;G|yQh1U>+&K& zDZ#Fnp?E}&g$(}3TL2&Fpm-!S?rgF;IqGILhwoF$aI`$=vxip*`6sDnjFgK$B}L=8 za*I-vOJ{kt-v~@OnEA?+nI(iRKt#!MMD&{?a}^+KxR+57qJao;X*$99nA{oZh)x?A zc_@atxnRp)x*frnUz;6KX^Q%_jrM~6r*U!dk}RAYM7)!`0^RazA9r+JX_`IWlxApy ztCUzUX-dojyLL44Dg%A<6P%;NkAf<*pA{lo=u5Ps!Ktygpw{BR?<-9G|J#juftSNjt*8}KrZGVS+Hh@q ziP7Yi5@`#ORZ;^#Nonc1j~m}DiFq~SsxH36UQ!P;qDm;l1mG&G(9U&@q?_(5&esNa z!N^G6D)R|JH)}bS+NH@Ky;gH@ro7Myow}e%^dfWlTK-+TFs4vgk%UA}74wOCdAcB? zKhhNZCps(>d`Zeo5gmj5#|_1Oj*1W~ANn#8`4sZ&SsADT`4`dE7kWGpIXa5A-H8Oi zi^P)WO#)_d{GPlLq7Zh5_Vy|QDUJkV{MXN4(X@Ug#U$Z)03{SMbbvIe5Z+P~_oHVS z+?2zPOA`j^o^iIJj$P3kn+Q&z(5>F__jc<}YB*s+6b&oaav9jqUQ>Jk{0Tfbrx$=5 zn#^};jlAG!=ezq0t9O=eXGOcu)a?}IA3J{tzENOdkqeB*CS-l=^89E-g836&HtnlO zd^}-w1!0C4LUlE6HD`$_bN3s^zn;w;|MIeOvvjk3XLWXKapsY_f9lm-vT-$V(y(Au zgaD!bJ1@8f-obh2MehlIL$l;j@928I@ax_(-n-PawaIMsxks2ttc1SW@2G6bytT=< zbB?Sx0}{SJ7Dh+i8DPzn`jOg}!@Q~6Vqon%?*UF=*@rBY7#hsicih2gGSOPNX)&X zlGE|yNIsD*%6bmt)Ln-tVQl-8%cVRs>yt!i?bdQ4eP@+;UTiWla-s?13rsN7G@tpW zq!at9nu>B}-B`i%{#C+)fo*I7B1hrmPFb*%xrrG#X>P#uTJQ`f*n|#@cTM~$LIr6j zgrcjDR)C>LG+u^OZY@?Ju%TJ7Fyh4|I~)_qwATA<)h2Gb2zjbdb7I<-4`Xnm3VN3% zfHnBCUn%7y&$t*Ti_mAXr@~`jkhkrjCuX2_&{OW8{f?wC7X!xtr>7DnH3cJ|81)6T zbef7xeav#wW=mUYb;=FLy}br+=RVbyLLfAtf9s|G1NDNf_d6!!M&9Plns9H-9GTD_ zzJJOoPx*V_hEr}#!2#Oo@k|L@YAo;I>SOdC~LX(!`*_0>Qt-3Mu)+4#jwT5 zyIX~4sK5_#M}ROv+!wLFAIKdGE|_6^&z4o;eMd$>_MXcUY)Xc})qy_Y#Tfz4iuH9R zr|v5b*DR1Xi-$fn-d)9Wc*tu6=iP(~R395GTLEH8CxrzIAtuqgt1Bgyp(neNJhYC( z`=W-|c5_^DdW-ZEqDMS&-9eyl>{|}%S+KFE0=JmmRB`6Bnm(ZaXP} zXG|CTMcdy5ffnk46a?m^;>P4oBc6nSaY6sa%dbGPWnt=swU-ZWIG^_PoU+;Srk&ka zbFC<1*5~St*V4Qc39ObNB-PHy^xArpVPMW$Ff?Z2W5mZ`bm^yoaED)sIo_<~=wFaE zs_FdCq|w17FzMcyqd8T!-#2pw@%y6kSX^LVU*Z@ojZp`>B?fg@n}xe;&)$I^)BYyT z9q}fZQ z??icU^?iA&&;1&4Zx2_x{@rSY69USHagj7yEElmo&VZ4Gtj!#c1zzsyr4CCG*J2C1 zG5eO^BEci08oEXv)=wpOmJRK7H6Iz8Wfyk8z_qZldYL>XtAK_U_bE>K&`o5@&X#YH zou=>$3ZEj~dmF6sPA2Ph(6A~GMzF;QD1oQNDFBr99N}c}hWlPqiT!=g@gW`R{@z{?}f7$jV#!?!I(&WY+$;3*MU11 zjB6mbcgR`178UOGMWCEVkuOL~bbD(=^qLids=?>y8;MWZ{cTfAGD zcvoKU+c97fF4b`wPE1(57Ql4;ioEIM`7Gfz;tQy@A?v}RCA@1ViZA$aOCM$?vW~6aWC){i6M~E+2nD_+vQ`|H$pJMS@RJV+? zz*7?J6DBGu4DTa!35_ZQCQNd^m}Y^BRRLDPQfdOe1|wM4KT3QroPIlmi7#*KTa|a5 z8rLac{9DBtXCsF>_<8CsP1D?0@eDu}agZBa93!}zGO|b@tLnk2F5&=ZaUu2X zXyf(s0Oldx%Nf#Lj*~8Vp5*2LX_1BA(dGpoy}sp3+hT>f3nKx27$`6|r-L$zc&Q2X z&LB;)y^iz42J@>%jc%nLCM7B6f%LJ~Ay1*aECj{n<;m~(;*<07g-vT!&b8IGm#HHP z*q4Na<+TfvAx>_>-|WQ-G>e6&Op6J-g1~M>_j-2hH&(695eZrXXw0E3v{rZ%I?-x! zPev}^eu)5^GCv!TW$77XX5op!$6xLtBTynLW5>k--4Qwqy^lzYn_Q$XFK6-VBw`u> zB|5>2Nbm@gVDeG=O<>Mr&=e=fruS#BtGc;VIFM~=>ORlr1wZE4puj}(O2+2KbZqrA zK}5wu75?2&BZCTMH6>!F9T(5iWWzVHE|su6j^%dP6Ui>Q)+08YJWn7z(iDLB={s;^ z=G)3~Rqo=ogLtrms}aWn(~;KZ=T_G-w8C2lMuUV?jS$99wExrsklB_1K@0xj-R@#k ztMT~NB5r)7rEpejPzvHZ{uLoPtn@2FEA`DV@&RWv=#I_RCKsHlZ!XPBEhhn9TU~#lWl2OS6sP*}d@rvp zOGhIvMMbXSEwjkeDCbUj1aO1Ox$Zhj6`L88kh62M)fFZ2J7;#yBf`vhL2Ts62Om|C zOwG&`e?g9p-)fr=?CID-0lIM32X_&2WcpGkM9Pkq0C8~D!LQR{vhQifjyNpw$2vKC ziB(gg=|r97uMvUAHkRO7=Ra9}?1)#Dsom9Yl8fI)6B{Q3t>MmHI!B?4=r+1vi85m0JuX!` z*taC1SqIfgAV&V^PSnV3?&)#~VBk7{E=#0aIoR;&GU#8-M8&-=zi5UlgN}|_c-g|R zsf8pzV&}fpx-#iiP|MRGx_@Q${Jtz%Ux0v{1m>uTjBHAw-ko{xt{AG89+ypD{?-R0 z?5>z7tdEaoK#@oZ6XX6;+zOn~L-*c`f`M_8<@qnj1wj`KBmkUKm_-1X2Xpa;vk-LG zmy4=fKLrB7-m=ZuW2TL_Kea38JIW*^oL@ZYJi2p<1^xNf=L{cL#HrJPzj(oKGn{Sl z2RT}bjwT4p*|M{RyXBe`+zuip2SSs$T=c(-<}@P^&9v*Gt52Mk?-j#QS<5LWpQ6Tn zMu<<4VVGNfv01n{oI$;7pF#PvxUK~iw+sCW$(X!y`ugdXIxEIitSwRR?{_b#$T3zcHWylRkyXD-ZDnMV5N&rk&)qDM zZkU;w0pTVd3(1tf9pTRDP&32KsrpPyfUxxSjGIUjw6uGnR~9S~woSlfQEW@n(w9lQ zM}2M(Zwke2cPi5&e^jp1GN0A8sjf;z`Bw0oPkYdf!9Jz{mHePGlFMPU8zbS{!3e1G zYe~sz2h`WEIapY})jft4HlbQ~1*)+C0U;dfhPrd0*cSy*CMEP5U=ocJ_rYwRV9kkD7;`w&8EYBhlYE`PTKSN}?*r>KrG zPENxtcwcNg0*()d(`0j50+%n`-@rr>GVK4MNC8jV^+hF_W$>CTM#O@-*CsT zH87eicuj)zI$s{r^qn{OCF@bQ@d6MIha}-~{7Kkl2WaR?)?0GSe)&2v6njGWGWLnY1?8<1X?Q zZ99F>nPP{7YGI$R20yLcXsD~hFE1}`v7=@F{E@T1_Y0`B`fWJf`2H!SpnGrxQn~h^ zgH=qULErYGfMBgZ!JF)19j5U-DABoI?Yf{I#RO4%5cqP{yviFd>{h2ot<09lc&)Nl zklfe(8!2)r4`_n8ixEuAOibYC9$BMnI!O;t)XA^bJXD>#(fD=nK6=YljOx( zY$($o=zU$rGyI7}l`Y-H{ydlRe$X#jzt`-gf1T_0i*^_muvD4gn_;7{Ek$$@DFNXT zyuL$PV!GH4^>GTm(=(A2XGQY8u+gYRE^vwkCMHq?U4RK93=4RZMkf#c_mCbK*YPV1 z73J$~ohVW`q&HUJOmhg@@DakY7Xd`Il-ugW8XYxY7&djHZ_Ua(whq@V+dlHeK)|AizYK` zmB0cfhjmQzJr_Su#HJWX=TE90u@{i&Hb(-#mxLri>7VZ=^5@&9=xQ|k01&f~F()_o z1#RBc%1W3Tp#ZwE{Vcwn-VG8^lZYtLETJ@DdLeWo8;L=!3#7I-q0^T7 z-urmoR!u1R)PA-E=H3#3d#^3Q(Pj_eK!1i(pIcAeGSi%OOK(7sc6cqph{{%z83m#l z4@wQwJR8hf`R@p}6DmE({&@B$m>ZoL7Af5ClJqU=5n!g8aDg9LwcjzZJ&Y zZoz%X6={|qYEn;d9&fw+IU!@8=fK;RwG_|%F_u#A^28Nqp-WjX)84ErP0#vwszIW$ zAtsn_Nfcuzcgm;j;QYe@j&LF;}NFGWhK6PN1qzNYX(A&)rj>P_s4Z>Fw-BpmLX%!J30-*+FAAT}5NyXr?Bkd!M|T4$ zf&eUd%}a(*$&`%7#)${Bw0u!Kay#6L!${H;!nNX&gauo+)#x}a%S~P`dV!~Ot20a8 z&gvafp<{PrG6I@!M*VFeev=^n-8I1kM2>BJT^iE~*kZh(vvboucJ9czxI=czdmMFH zAF4Is+FfL1!ryk^TJ0RBE7ADvhlBe;WY2eXtC*`~S!+hxZdct7o|)g{+l<@FW2srM zPq!?9(7MZ(-_k5RHhPV#0d2D&NuPd2|5NO2S9{vs`0b#|efo91M1qV2FW4#J&-|_D z6`+x(gx?Xkc6&}7O#;quW67)JmND}2K=Hg>OHgr|1cB-N6k-{NigZfIvaH8?KWo%S zPFGn03ZW;!roE&iwN%lNI=5Y$(0181CWM*JWfYz+>fgfkBbCLJck>xeE2-T4D*)Tx zc%_zC`QgF1`Lob&v1VJ@>eBEmseC)q3tkK1i}I0&Uv*Spz+^wQojNjxaIsz zcbbampWvbdhF}TA2gAne=qAJXD|I3$?N>zoYY>z*#*1&r4KS--Sz{yYAzwK*y~07N zhlimigD{aGR$8Qre9Dm-o@mkUwSvr+im`yOp?^d!=WrL1skX1zU?JlbhpTwWz+x>3L@Fy5Bwg+Y!>sQ%2i+#@Z*MkDW7%|_l0L#a*3 z$lsF0I8Tsh_pPNp!2+*&kOwDmJFOR6*!}Kd^1x59zyO`nWk)#yBKV~ECIpWcBp_DW zaUkGpDm2jMy2(4X9RwccL@Os80V&i>6%qDXf^I&R*BXhO?PM{$86RnCC)KZ!;l*G! zehU%V7x9~kNlxxqN4AY@fuU8|jHe4%y?Gu0JN?G_2ER~KEkjyBAU{SoEHTxqx|-_- zEg3<<#ghnlZ5%gl%meVpSYwjKBsGuRrYFab5=AXSyEsc4t1(obcPPmM2zyadngt5s z!PKtVBd)t#PZF~sqzg0h(b>R@3hq?`b(J4ckym2=tsulo07j)_8ySM@!D$2`50Ut2 zNKwcAa9PGMLg6zqE*eBL`N6r|K;h?r5Be|VBrkm2mF&{98 zFO@g(K?k1yBdG4#C6?Lz?7K=ECe<6G{6abJ&(SSIS)`TrbLc7^Mw{%}UUJXY*4CZ_ zs!bM_=EL*e*MFMD-v3E!z8}Lx0;CRqE_?on_xO2E@&~u?SScJP?aoDQYSR4qr76E( zWAI_8ARKym#KO!>gA%q^p)=}>PYz3d`vOU^JhV2AdEO?^T~D-=X|k#zF*mKRBiLBK zw*t+N1gc%@gBLTiYfFa9v<}vq&kJ0sH5g`}&x<$?>lP0pXQiI1>1%1R2&dWBW$NHY zh?@!(G7vUYkjtlbx+ti0e;7Ba7>d-OAm9A_@R>M7siD6#a59 z7QD|5h~!GR#LN&vjLIY>bL^+4?H_US)WmO<7ua>^@xw>lZ34EebkV1)o%$6HGR$;d@$wT;C)d-aa zR|N{(*p{D4FQw*l*h(5cHUBcCI`Vw}7*(3g&-gnJPg;RdGu2q(yPFX}O<=d{oBX!; zv|br>Rc>@6^?f8Zl_=qOP~~z0$@R$}%5iUv+}_9G>wVn+^aO~VUyrcJ z1>&~Gi{FG6=3|KxvxSPDVf@X5{uNC%qY(CFpms#TyPY93z`Y&d3nmjwiSRz2#N@IV z#RedlJ%EZ)pDqnfEM)6qj+L%l5_p#9<3W2>jqjU$UmwR;tvV8_dwL4rUjOzznHVsr zd^5o*{3%9eYD&l!U0r$r!nAh$z93Nt!PqxZ@|p*Y*?a_yw_HC>Ku%CtEF#!Ug5L2n z)Ox{!WYO5EF?f%XebPZ)EKpY@rDs> zO4xEpB!Chvn52S#EWUH2CC*B#6)6GGyx@H9r(D80HK=MJf`_1uY(&t4*ctL zU~t1u7yTIPGg}%VaPuR~jaoHNbWe_Af2QX)uIXom2cojI6^3!N_nibSI7Y&&!Qf3j zdojCW0w)xS8nF#n)dutRY}%W(d%0yOnumpeX%6eH1`c4kejP9D7=^7g7A) ztq){8Yixfy6-})ICwd6E!HN)(C!x%AMoI7aS+75;`T=>h_(Nte&hwqhoM;52EAHm-gp`%r$Lkf-r`VUh%55&5J_Vm_le?Vu)M0o-H9YQ|2{2 zkTlaN6$P4x_QQ&7v5l9aJ_lZxnNqX_fy?cyLPCJ9b18hG&Gl!8W0E@yBeE%(<19CP zn%>`+DNhmiQfMRY*K7vK0Glh-+B0g=PYMgg3zB+nw@R0)0%D8z+21Ai(kn#<>?f*^ zr?}Ij`*E^Ybnn?4)a>QhC!VI?)70Ho`y`WRutQh%V{wsytQmF8hy<3OPZ1Sh(&9uk zKi+nFR9$b<;?R66Yf$fYZ2hz1w`$Hnipcv8B`79RoOUlmIV%aw+{)?=@9^$i{X|D4 z0GnRV);i@1o<{&{uhs4C?G;=i$oTVtMT-nGnsy9KOdkhCkJ+Q_f2ZEcezo$BlUV<; zQJrJf75R0`_wMqw*Nr~yR5^vx%bdwzGDv|HP{^V^KUhxPzMcFg%`yM>It|hey4R8M zRP|^IJ&fYvbC^$76~A>c)A($F)5Q<$Bz;9DNYc6M1)c?J#nfLj+^fughDFkosJE*;-$>HL zB%_)`*h`1Y+^H#B374nQo@{YZSmvBTldd9wzHf(=(tYJGVwQ$fp(rR$n-r3Xp){iB5&8DU^y)J?a3mCZLT9z zEGe4BG?TzOj+{4qudQbWe682cC@W+82|m^OB#q{bwdSIkO1E6ElZC0^yD!M_teVq7 z{#1M+KKbK{fkiGXxh--R7l9z*?!E*LikiZNWDyCQ2?)(ksTHs$`eyb3%Pyhzy$Q(` zJEzE@R^3QyNV%GyPw+h1e5}w5RBjmJokNPygTRoZG~c_75P~#D4;Dc#t|(#GxGzR}YCyQ;yz<;frgq=B0+ctxa6`Q78#0)R_v066^~w@Yj44zB9?qC$^|!xhQT zG&!+5Rpz|T1QC46!9HA5esMPnbNy3!<=Wl*$8FxBD%)JqI3<+?Cjaa%ixesNIU?dT z=fx}b4FFWynv%3wf{&IyYZn_5oxH6pI+j#=#~+}AbRixxf(fDzd1_kQ-H~JB$u30bl=>H+?t)r@bw|!wsLO?-6Lb^k` zyOHjcknZkAM7pGN(TyP8Akrl*-5?Fp4ex{dx9>RT-t(S4#`=RHweb7IoS&Ls6g9yq zg{V1zm-zO!0L)SQ!IV`dNpf{U+vyLihm}szZ?B{qje}n#jWsx|52yxL{D`BJ%h9UV zV>i*Nb)=XoSDDAu_=Osx!H-m~Ss8HHQk_XdLPHY@6h>bg`BPrO%z#XJw$|J7YrTbP zvzMN`#f30M&$LSMKtYEZ1pUPed*z?w$?-@|O6pjzFB%iQ=WJ)9H#)uV)eao7>zNPS zr^cR(!^OR3WzpS#&QN?q+G$!KlDTld15NK_sfJxUUN+Cs-TlL_N+U@;fGz3Yh6c$p zp-?a97J;&Ejk6Geuptu+u)jGuh?rmcgW>`kAcq!W4^!em1Ww7jteorrdF}i?f}TF5 z*o}DSkQY+*CMQb-+=Ngc`$)lg*vF+uQ%7o<7`7#A{N`=VE4U~Ooa0gZoBe79wo0Gu zkhKibAUB^g9R_9rE7B|?x-#aI_{HqA z7d)qV7)7XlYYhW|T=-KTY(z;Fa7uCEziA1f_!(+VG6vjpaiE7p)|%h`dUn?$1Hgxh zt}3LDpC@!};xEj#v>X^poPhd5DvsC`u8OeJWSli>{IC^aXV4{WyE(F5DZ?@}{tXe; zA%eDk`ohauw>Jto1(ynmSDUh&YMzUnPa;>nWJbir!u?}*DnMx(Bt6-EOD~R zFuzd1m6R9=nV_qIm9n8qe~Fb~@V&I+XAS^klDyu-%#whXJR57S<=L}mPZf!CglM*C-#OK#~<`E}e{NOlZXjl=6<}n-b{R9Hcx7_&qG|v%>0;Li*XVuT6Bxb!(I-!nG zIw>rV+a&YE@S#Hpe2B(CS${1|Pe%3$RQ~S-A6pVLxCOJoU=hznC9NK5Jvvk+7!+6$ zxT-fL9$D+MzvMH7WO~(DN;}a82|6}R?e^yF1Rm@;hflaU!rI`5NH4*Z(CIxTYXrR)xF|ykn*?g*g$ZfeXbz_xZxn z=ZqEKj*WhIN(Cm2$V6|RkXE~W^AO4f5Tr#$s%nKc%apWKj%6rN;GiiWUBD%A3sn~B z%fglc(Sf)BG<%0&_&s+D;Cg1L{fA+U0aZZU16^s2n1%by{9sMc`dwD&NIsMwd34ce zbS1XUdemag*_NF1$~$-y6SKGsv$}eF20=?bX zOr?>W!-K6im@vxr;k%HEYYL4^ci84!*3eUdz=RfJY7m>9re=zDsdE&}qmzSuTJs(m~TJYu+jk8O6ZgaD-!A_?V()%Btbpd|Psj~xWPG#f|?ZuIOd9B%^9fkJe( zWPX4eL^woa%KKNjt_+ATWu~B{pcn(YH{jJ(G!AnBHp5+)>N0=^rK0&xzR|qECti^! zPW>!(==1gYe8ZNf;K1suTK8o#<(x>UuBf(XbLtA_>s9OB$znFEU!{b+Ac)BnkJC0? z(py~eFA3rQcpLmAjRV+}V5#Cp#BT>~NOm@ts3KsC2w}3{T;h6x-j58m3^037H0=NX zD<0uv`z+H6F+KwE(^m=QJ@K`h0?M`Pq4Ltj3pQeV;7Q(*F|BXnvY8ARzpa*8I-)Ja zg~s#>2>GK2x7cI=HF&IR2*P~PI@&bh-!&oL8EN%pW*)Ji#H4ny3DJ%08N!X;blpt0 z=-HHHYG){W7}n+m!u?8g;Fb?xts*^3;sNb24V_C@PY5(ruho1xA9i>$qCFp{uvNvr z;xBGJ6a@0e)d-`S`%M0`DaQ8k!+V7OFZx323`Ry@JfYKIFddrTF4(3G7x;8t2?>Cc zRhuY(|5fys+x*Hw?Jiiy1|NZ%`GNJVK_h*-t(U$;nIva&MuM+Br2CW~?Mm*~Gr66lIuGv-S6g?oitN+hU0<%To11->BQ zF&_9s*{rDRzWTYKVVt9?x_SpBU0n2CfK=siT(g?9ke8ByC^sPQ5y)v4%V<~2+E=%o zY9?{z4Pw1X`uh4t+cqZ4v{>o;22Qoq(6<`Bh50frS@F ztvxP{t{b>oxe}-c!OxAfnfB0lZwj!Zto8x2UHDo*{jhTV8S+vt>j>Wj+0rs%W9FbH zcl@+|11juB6Zj?Nyp6Uxg5)>zMjNcJs2RbL(lRo5>F!b2Rat7KB|?n~JK!{=o+zMU zJZm2{NLQs_b#&q$q~4{ed*cdlsRN91=Eyr&;^kuUz&+jsbq_Q@=ievz{&(1ldfBwB zjEp_`2UKs?1!m2-P+%iQjIJZ!KajkgK^xf0DM7`>W%)HYUG5Tbt{RAj@IRwP|L4kC zCHZ#$4xPXS?$Hi$)dI`%FWbWoTJWMq)u0(;e5KP9FMW-nFW-)wDCTc2Oq}# z=+j^uWRV&iZS?Pg2cJY*>aH(r=C5Dc%${@FTv@#)7#z;cfFuiX68Rc5%)Q z7sGp^2;Tqb&P?bIZ_ffX>T*0gfO+0(Rdrz&+Fg0kpWl__Bl-&5?z7%F_9xYR8bL+( z#}TbI9p0{)kk8+1(v>`5u-sBXp@n}v*sgC&FYmH9m9PF)J7ulKreT?pVj0Y{Rdp=) zqN6%Sc=09+wcVDw->_1<#>+;{lbILCV7z|WSLP?owf5R`#|Rgv*!$bdiC!WfSt3TA zcYb%r!4UCgjlR|*k5iTH0XklI>xgU(@~tBc{kQq~GD+h%=X>YoHYtg}0yjL|2WWZh9QH*;(9Xf9gdQEvW{h^R^(RCK%8c_;y1DfEkb!ysv4>+m@or z5Chl;HoNuAH}V&k3$HNq%ljIgrqndjPM$!ipqE6pVaU@#=?Y-53yshDrUnpbF7o}F zvzSX*;8YN}HU=;%oy+!U$Cl58Y7D2CSc~a7p32#*%})mOgeSnY#{Jk(8_*IH_nv(* z9c+LiRpFlf;}QwR;)H`Fl)-bKRpzCJnBHdqKgmD+$*XWn@?Ep?j_aHEwWCehHQlmX zKf8Mjp}*QKG$=I-dJh_XS+28TO-R_2yei0N&qiiw5HhkJ z$eKax_&LYk+epae?k^EdXf*Hy&~48#OsB3H=Ta;m?M_!5p%V?GuQv1;N7ygAEXs{w z7`XQm)KBz%A-nIP`Himcdrbk7gWS&eqq)V*ix6-JIc(N&@gIwA%??NobT#@?1Pr!Sp2TY~Xv%mZ6Df{%Bi^S-QtRtj9l za6IReDz%QA$0%QmDx3B-+N|0ymtf|aTuOIRbukKwX+ zwX7FBPOt3AP^^PWxXSxKtXbSHpa3v#*|HKej6FS_%aqf~i^5Rg8^hF?>j5rHbLh+4 z!YRQqFh59cg!10QbIzi043OhOfG}YA%A?YB>oj$BPyH$-jpy}e{8gMwqyj|%;0nq= zb)o`SE3m!{539^k@kh_(u4iXLdyh4AT@reaQrli=WQ~YlAD$u9ci`~oED7HRYlX&n zZA#vG9sW?j9{-tf7hMs=Y^kk{aR8w;Qn`*&P4F#z#qp%r|KDDU5V(`;ge{x90pE^e zjm$x(%bC|tl?j{}psS!)Y3qm7A&t%As5xAEq~M>$UVj85uqXO@3G-3${ic?d(JEWa zf9t@*0C7(clssoAlv%cnYDFAchmUnx!kg=7e81z_yVxdTX8UH}ra8>yKTkPZ%QejGe*k5; zz3hXq6TSF2KHYvN?RQrnto$mLI?6@0tJu(+n24_ZlF}woso7e zn8aLy!Lt)GjIA5f+*BswMQny$pBAR~BGnSg2I(ihzE3kll9xHPbyrl5(a7W9g3SNQ zeG3Nh4i@%@>Gjf84CVC4QSGJ8owQyqhMxpZR;u?c@BnrEC10Iys5sn&I1`hbc!btkZiAE)}AI zzYR@COEnk|kn6mfZZH19o>|4i-5V_?*gQ}AkM&TE#r7W-oJLXx`h#vgD5l-pn{UQs zSoLzYJccy2V;p)m`s1V{!~$E>PbDzW?OXsBleW>8mloqbXcqAreHLUc%T!+zZrC-% z$iWhB64`l&mWc<_8J>R#KQ+^Efr#U0UP|imB`l!y3HDV+^ev zg?)*_9*QTk&f~a2Hd&}Zlv!Q9>@>n}t#|5Tq2`enKI%7?Gs3?XiSBi=pDjt~+tum+ zJ-OFM7g7oi%uJ3$M}^M16rmzekF5*X9e%XhL*Tga0!jDR&7In6RV?y{w~mkysUSfT zMT5LaEr=0^-wm3SM*waT!h|4m8pb-2QH(>i_sbK>l|y^3nU!sx=&dHc_siac=kzbO zSZhdocflyp@g6n_rHU`P4!S*;7*qnANm3Dd@)3v-57XHG6)A<&x|Yi&FY`Yu9RkrA z$r6j+r^5xbfFxDmT(JK{^K(8Z1Oo6^503Vmq4(I)?$`4Cf%7g>w=#U=s_08?MB=ng zYDBp-3_9y=Re10r!jn!Ta;FV~*M`gOkGiQyg?F%K79^uvIkb-ja`?4=iaz(})3tl8 zH9pdw;7IcP(}7UC>|}xu{U1BoGdPx6r~8qJ(dlr!zr^_D6ESX?lU;nYu`4zu{b;r| zx{p!|&LUOBk7Gs>W4vXTABOp{u&@(CE<8jhGDC{=0&ky{Im99{l81cL516uCzicj> z6B9gnNDH~oCq&=b>*(;nm?6$`_=-1KCd|(hN%g0=J5E{MtW{37Ond_K-F>;EGHsAy zH!yd>823w!!!x6fqQa7o_a6)n4i=t8(BB-b7~F(YMb1{*304s0I85^nqnS+ATTkb zr1LJP=b`1p4X1`w{T!?Ks@Gc9SBf+|OhZSAVGm!Zxx!4Sk;-wPdt110h$}I?9H) z*%zOXI2WBU_#du}QU?>fJeWCSa4{ndu1}7Dp3k#~I@%@W^Pe7kyOWTotK4F;sF#0j zk?dya*R*Ivy~inK)$#YblE4pvQiq0Xx9&lXDa`ll(XZhH<;2ELw?^n(>gF?e-Ky-H z>MbNrgj~rD59rDp7Aim96_E^^+>Yd<`7e^0(|UOTs~K}efX<*4UIBl1x$MVg zzCs*5d+3wEToAf)2MS*XHNFZKlw|Hx6FfoRfL_)f&Gz;nXwjgCu7|@l5hLBhy{$|? zLgXv6iBxv0ZH~5S_*dE|^t~Way-i^?O)nGi6_}p+BwSO8es0d~{--t7U0sbj-B5Ds zfs~&ieOeO?d$L&XiKG+*Z@rMi<|jutE~nTik5Laws(?=r^W2e3iq8cYKXJ+fdH#zD zjK8X<83(`e=X$=9FMb3LFL{rON`Y*_AmimxiW&X;gkPc-IEs3g9+&H^w~@2HX>5&2 z38%(4XRnI^n|3HgI8U3s9!%u>-Bi}heIp^{fS&r`za=cfO6uZDn5x9q|{l(~fuY9jyF>~=&ckaT<`j2L+xt=e6GLK7% zDWaCPPsy1KL!%}yrK3-&h!zSgm=sUNLDn+A?yYnniADAMBPgjgC{or`m!nBj8jGEj z8qmuf^uGl`JEF=ZdBqX^HZAESfqxCA0ecs>gB(;H)yw#rd2~o}>hqsOd%#17I2;H_`o=6z_4; zJvOxC$^}ax#t!! zC8kb(72RUD6Or4U&V_fe#KM2^&0c@Bk7!ooxMZ+MNEVh$dkChhL5Sn3Q`>1^(}$2J zUD)s8l*ne`;q}2g!FP|QCW?`P|Pv#HF^KpG)32AD4E%p zePumb@OMfw5yxi2>kJducXlK=olhzIqo6<$PUEyYR{yGh47Pa(O#aTC(2VAXr52Bc zt;!y18`oV>ZlMP8q~ z;J|N_!{`UeOs;*UAdQbRtG%uM_1@R+m}R{pB(YS(>{f|U*aU|-pcSZO=4FsHYQRnv zpgaCTZFtA22?EeGoqhx&@$K0t5Y=KVZ?zXTAJXdj|E_)|e@3~1oHSEeb0KEw$yHGa zhGR!QT(+CZns-6Tm};v%yJkN4_1+HI{I`o5|5lBKsMAtPE?Wg+u)+5li-`aZuF-i$ z!!Zh(wk#k`-c{0ULPtz65b{{sI%nvM?gKP)zQ^hBJtbkrOkYn@UBCNtfx*(is3l;R za2onuJ%*l+Gt|I0a~OuS;13P?4VCG0L6hM)K%-Z>SZ9N;>-BZZtp>;smFjJK*E>Pu z&{x@{LF`N3=cdxgNJUQWK72nwSABJRWL&ZHKz_FC!V2Jh`4o1|PXEuyg4yU~64ZMr z%GyJR|MZRgKsa%jI^`%5RriGr}Q$Y~Zn+q}Kkna?fHAfBJhu zL2&a(cdF$VMxT=st>dyaG*#9m2gWH-#Zi`@H`q<~uy>)Y^Kn#V1c^ z$4*aG&RU-Q0`fTirJpX9*Z#>cn2%IHp_SFFBL=B~#u?@W`8jpcW$lq7&%M_Q@xhfH zV?GhTgh$Jfb=1hF)a?EOM3X^NabD9@00!53p5aNe@P6EnnBKmAZXI~Rd#ub@0&1~}>iWbB<;Gt59O@iW6j+G2BVX(N#k_PFOKwF7=oz!K zIYO?$)#UN3B)`V{`nid(kuf!RCroG&Upn5_FNowyMze4fN|)I!w`G7$Ww=|4k_YhS zT+G50mJ^9~-+R8OuOT6xmxr5>T4P?Yp|khlDOi_EL>?d9D*rsl$|WbJrO7km|d(@%ko&sqKcReDMm-e$JNe=w1i@9?1s{$jDyr+_AWC2G&FqF`4t@TdU zSM2V7m{WfulnSD$jCI&ZK`pI|lvE^MYlLg&vg7zwqrekct2YKhfnCZ< zWU53BSYa;4KoMJvX=Ovkf5J>M5*L4y^xGI>{7TXT@+D!G6 zj=RA?VX>1p{aZw>u7?Zag7;@+Z}sjzpV;%?{SlpWALM7A41&hzu+9PyoBeWRozLpC z*Q2%8IpphJ*T*)Ohl_k(m+GE-U+d$qKMxP3Fy3OC(ju#W=>t7|{H2ecARB3rHxLq@ z$xSH#v}mlz^gijIyWfX;>}z(}Q$O%(slU~R!+0Cj&-{;i?% zmaV{8)#eU;lWx}i%#mJwgqCf?Dtz>jJ}qpHJ)bDuyyks*^NkWH{b^Eq=^qcSqkSK) z&2FyNKOfH29At|UWi=nQy-#sn`3~K*ofDp5@k1Tu7tqlc5n$j>c%M%xA2g|Bxj)`N zn*<{=qw_w1YT?m`H`;8tT@8n>?VxVH;n7SngU97vj|s2a;UwJr5=!Zlsxm{chbLn1 z!CNql{C7{A_?fZ+! zX)Cn|g)XS>_lO&f)GkFQrMqoA1!>#qPIKnVQ(fe)y-@^n_gd%8t?^0A9L6od|2uX8 zK8r>O<5eAc@djC8u?Xv_w-}HHxP=J?PSXi$Y{)KEP`SV)5Q~9K0^bd{=tBO-H=zv0 zF;qMl0H2^AK?Lm4sQ6MZD(oB8?;hd{M1wzk`L}<=aZ8x5wdy@;Srpx>QQGsa5xK%}g>ighj$m0q zneiP-_!T(FpvDx%0obofiZt8W!sH9!Lk}$4_Oo#rK8!P`pu{Hi&HR&>f_I8u-`&Y2 zJj6Wk;oUJXLb(pFw+fX86W=Cu`90pdd9HlSKI zbfH>p=fJ9bXWv0b49d0R+1BlbV~n`a0Yg(C*~m-5GE#IwPh@~8KS9XwFWzh@Wgtor zd2FCp7|JIQ>sJ^9K9rDkS`isKe@IW5U#7n za=MET$5L@SjH3BV7J`k{Ls7_m!JKo#fDfTbih5g(R(4`-aLlCf5EhdvO6wR#ThACL zy{@G;n8U`Uoj{q%oVoR`P>h{OPE#*(-MKdYNL=0?iNsyQy*BhE2={ zKUC-m?*}wx-)9Qkiw~!Ff>e{d8-|vDD!uldr;`egviG)XkcWDndaVb*%5+CQj_sgW zn%)5th%;)s=`lbDRM1nUfTQZEyo#FT<3Sfk2aU_%xDPicFkqP8yr4W^bX)de1AP{u zT4|f4C+ngEqs}iga}&JM!Bepwj1sNBdh1z{mjYZO*Yv>M;Ub-6!u$zS<(*N??W6a@ zVxD+7cF%UK3v*D*L0ubRukCmLhn7bKnUftlumas#gJW*QFaRk1GiXGK9PTs{6yLpG_)SP1LRhhf)5?fRTeOV3T0^T4eZbd_LvxHLipZnlj! z-7s-So+kyu$%6Fs7wG??_Ch0t0We|@^k4i{aTXY%vmD=`14UjZ)ZY$Dv%#LEm1|vm z?qXj3VA0zn6RfGKNr8wy(^?CR9U`do8^F%t$GKqI`=WYfajEzx|CILHCQ433a2^c%5#y$=SW zu*~c$a5m$eKi2BZCBN*&1ZDKxWC(vcyhz5;82lu-DJ}Ffnv^5!$zrkpWU-)v1EP9F zXfaW&RW_7A95OQzxD&-jlGTUHFZZYB4rW`{D)xX z{LTE4Df3PunniGzu((=$`l+fHm8~Pg6ZYBBY*B2r|-s6(Lj@wmaJ*|=Jook@a{FNY2Xm}9s~o) zS+JS+J>|+&WqcgG|4H;IwbG~;NSJ2RH-LyfXOOXdA=hTp1G2|^NfF|4)aoWB#@qo1 z^d^Pa0O7bL6sL9tyvkxO5Cf)NL-^;m&PhH;z2O#dJ592_G^<5CX?wC4RF1Sd>H|@T zPSWAIM{`f1T$)4%kM04a)%f-!0^!Q-_FAmXy0nE!ru&*yDyvykCE`fVJ@xrPDTl98 zWH6NDCicvahAiawio3FDe)yRJ|TH`;i5Xr{OE(1HmdUcWXJBDWh4_9P7KrACO5O$ok5WM(FP{K{Q zfPQ3jfKC1N@o~Vjqc746rPaqh0~y5-{RrNz;j{`nOBuW6_Yo2Ac`$FOV7m2N)wCPooR`v%Mhw z=(J}b>?33w=&Ig4d#2iVbT5teHj#3Pu{H;G$y2R)6z%Ly4kOl=}B@hU7G%=FkSTibW}Ee zEsPeQLdF$%57?Soj}Gp9HD7)uxKcTWGrZ|l;v;B$Vf?cpW~wa>+D@&3jJ z%?8s2IXGzTa+;$xh1O&+Z5J}7iOXM^mTT9B*|y)mFj6|9_~7`uAdG9R-ez8Q6X4!o z9e;P8ojEtH1R%?KAfV!PF9basYKDd>9dt!-la+UL54gFjyQ_UTWxPbhDa!_IRBxN}QD+N2|%NpO;+a7yF z43N5>73zM0NV-IZqFG-3StZ%g)`v)e*l|C$seB$&Lp~CC%pRsRKYy#~@(kvIy_@lT znH`ANA$xu_&N1=%(eg6pR+|#AP*2r94Ne^ec+^oF{$`ytn`b}8>j_{PDHzh9B2&BE z$(L!*k%+{*{w$#;uyA<|yjm02Tly=6kjxa*2Nl8UqSYKP48Jp?vk!=hO*MI$^ym0Le9KDmZFFHKkLK-KYsuCCdV%-DBDmK>96nL6%dNWtca-Y!}+$h z*@}eFin4=BMM+9%={}X!?M3_au}P?df8=s!^{ln(%7;!U?5)?>VTythUUrKVSFg1i z==$nxDObj6z5&O}gSbvX%!G4?A4=M@kU#pQV(Nq#oh~P?)@7fkjcTLoh8e*LE&glcx=gYCo31&az@%ZrX~xI5=TLN#?(mdzrnT z^%2%$=8pli0fgI$QZ9vMDi?$c@WsTx540>W)~{wS2{ag=Ip6ck?h;#0bomGbMqPGo zbNMid85zUX`I!e_HXdHN0TEWMtqr!*;LyxOVf(g{dKbiI9wG^P&w4wo%BI^gE5_ku zVGZY&AGs|ps{F=%J_T2ecU2&d8v-11&+%yul$ij56F5X0M4P?X;^FipG+{Q;$k+l; zZaYpvfTVfRcA#{wZ)k|#g~NhI1G3e)1iGc)sa8A|Yoz=NOfr9~f)`4I747Amp~suy zX8?v+V@}&G z!Hnh(a1Xu+XYYgMMMdETL?So^pj!_Cs4$jGrvA4TpM!L!i=JuO#UAgTa}c5c;l6$z zy%o>tP_?U-$ASX1mT8rYV-4ka01U}|0HP)zg@{@XyCuW9jEA(TeNNK}6%4A>@vgE1 zAC6QsQD{FAEl76BtyM!?+^&yO8RkZZV;$7t ziWyX^yE&Xs=f6KSX!w^L_<{+)7!q)|01;her7>bPy1bRsrT}*MsVQb@ zl9T=bm(q~%y2p|ds?rcAtJ~3+q1UfLhh)n! z1s$ke)5~`zL!0!x-m=?HYL*BUMZj(Ftr|TC0yhK%0Q0W|5+emce-xe6Z&Ob|Niy)a zypZ-l($bT7K^}s5y5KbLiK#Svvh#&zfOKGjN$C8Q6_cS*LYC+YWMGFl+)!;5^B#O# zKe|1Z8y~40%5jHYEoA~8`Nr0k6>AEf_%*4(`$osl%hg#skpRza4u%q^7;OixSaYD2 zKQ|;NO#=0(`_L7=VbfCUZTv=@E7%UPz}7)jZ)YOqU7^PbEVb*PSxEpD`$^gS>6x5O zBcL*eYX>p4o^h!Dc*4G5Rxbg_I1Z%ua?Y7Pt|b>REzHV#VW5FX1PqIA;Q4wFe|CDx zIGGa-I+g=OCQdaVS;!1Y-32&8XlctE>_fB{P+@@`O_FnYVQ?}86fx0DzPC0i>4NyA z?zR&>);T1XT~nogCk-0KfYj={M8d~{!%z)^W)ZF2Z?DOs-Ls+8x@=k)Sw?1T@L%%Y zle@GgnSD@a-m|gjp)x_|4ayr!Xn8fojvdlaRdWacO0v7oS;+$H!6ZKg5bDm_{n@b7 zXJH&bhJ?4S%hA%Kcp(P~z_>OWi$hZEpZo zVt%sGUvN@&e6v?ki9Xd$c-$cd2NoPla?9hx?e*;-KlITJU`Ro?ZpWF>45kBbCujhb ziLvNEmn_r2FWEGM@BYxRvrw1sCv00c*-aehWA+rvMU8NH&Y+vXri@gYYib9jcoyv= z08zRrNse~4?(|B^hrv$|0hh~`8$sWH&x!aSI(js|k3-%`7D6Al%l@WzOl{1ASyHB~)f_NFTeE0TOfm;Z>dd3e z>QVgy;RM{}b5zT#e72ZMDcYJyb1?!%ASHQS9^=`rHphr1JNNO@m?s^C-S7 zomE36dxRS|4M3N$GcGf4wG}+Idt^Xs`O^?&z-#Gcq zp}(A`DjBTw7eUv-Din>&8gv8v^ONPq*mHJmTBfwk5q|VstAQA@4z!(6vxWP-$tw&u zFE{Yq1QCEp)_sV6@2i}K&e#_*#iC$)JovkZTi0FSE^VW;;r6)+civ3UNL`D-?+7D^ zbP+pk+Qmc8H}IFn#AXnFfPKmL0k1xUTD_~XO+*|YekhGIy5hRBfb!u_Cv9vcT0n{r zAn0j#1&$v0N2f30ob34PfuvG)THmjgW;F=k^908;fJUA}^$BtF-$1=gmb*Yd5N2mc zvf^T9W-cn%C{0u@nGLO6<97Nz3M7aY5z6HVtaV5ixFw!-fw#QH&f4ti`qifF_=##7 zEDq6_6a0;~k*h%4k$1e#e_b-Oy~)tDP1*#wMGzIa*yM7)?Vki{rV!z-AD>MpiWO!9 zOP-}EJ;QtR0s%iQ{b>3~bF7C?QTB}WqsD*a7z6XuUFL}2|g88+3r4?<4 z)$*s8ly>ltk9@C9+Dq?4)%*;77M{|ZH28n{Bd8Jg4G1Qp`Ow2MS_lJZ|Ilv3xy9e7cF(F zf+!d@p92tf|A-4kP+YkK7YQ%@L7~FsSokwgAepwuYvG?W8TEiEWR+ya zrjBs@1QphTp7_I7~`Fm zmgIG#If++#hUKp^DVN<}V_mjDmXQy{zi~WnK(f&*Of4Gtug%%4rEIYr9ifZvHUtt5 zGdOG)x<=wY#X}(S@@6En2M+XIa)zDNJgMlxLvJ!-V?`3WnLYp>lALw!Xue*-%1K_H zVb+?%)(Hk5dh(ZV3vcce?i{P#!`(HZAtw-HjRdUknJ}Xih1_}z3q$+$+IqCWwon$l zH*CX_joHf<4_`MjD(;-ul&5e$GsQtWWPZ=&6IsIofOOGWNeA@9=_7_G+-cf!Q^&*P z7acURquTQ6AwEkW{7c+@7yVepl%C!By8GX5?M{x4Gn4!DD$AftcvsLLhWk_QvxlfG z&E{>?ov1vWt5>4d!2SIp8Ylvis{pLF8@q^b((;zZSW^l2p-8i&ji~qpw}j)XI>+yV z9`V&6%Y|tmTG>{ zjtgYABFM5~*2w@JE9}?j*Z*%a4xr@z>uccM$`O6er$&=9xbDB|zIRV~A+L1Mx-C!l zI;isDl+eVVz8>7gCxk6_DjSY=2FRB9yuks`UKMGx*Bz~ow%zB~BQOvLk07t6Wu??5vm^ghcDKEYMFD*JE`aqRi#unzyA^wTzi)@5(%vq%q54RIX$DGuZ^8Ua(i4Pts&yPs993g`(Wn7w!mG(&THNt>Mu z^yoDBKbh0K=5ri)lN~&Yxce@P4|L?M~_KG(nwj&apMIb&v?7c~WoRe@~8 ze4oy9u0`NhEW=GWtuqlCtwGgvwHEI4`(+o?_r>otZ@->xeFZG|!xgnBfVX6|)GHoB zl~q*a98B(gRcDj`rR>MM{I^G!w15R=rrl34^D-&<JLMS9;+O$L{}j&yAj zs}+A~&F(3Ow&-uB)PXq?UfC$`>#Pk{t=v=+M1uu{0K-@Rv|fO!YAl)ANN&~u=fe-B zL;T>ELSF zv#cO!Wr;ut%X+m#olGd>+dg(Shcy-F^C=CwYV}Eva!iI2GV1tkltkz4_x?tpwj8RxV*B#RMfsTz{#Ried?MNKWAcC`EO8_LcpMN1bhE!SRM*J?si4fDW5m%aH`an;szdmKkg<&` z0|Id9=n}~&@4&-`^%npnBn@CkQOx-Cus^cQx6~F_QhqMfv)d6eoj;6>O`lZ=NyYh7 zU8+)8YH_wbrWZL563^@(%eNkU=Jo451(=1=SmBHmkqUAn8!OuZ`2+Y+fWDL*31)A2 z(>xaNhWpLCye#pGt$0#xgNUqm?3R=E6>}8_Pn1~1SIeoAd|a_>HJp_HdVv3rAB)Hn zPxluxAMxY#8FMrnsO+!Od(C~rN6d3PQL9mAPaR~hugI=P1 zU?@Y; zQ4j6(-F)*DHCKQfyj$46Ljo{Ekt{{t1Lz2EtJ9QEQHTU0z-syZermZK8K6aTIj4E4>rp0$MTF!Cc*I5_vL;b5;a@jF_h*aeY-n}e&LBNm; z_!EyeO@B{WI(7O&@JKx;4-^6;5R7%Q5O$70+gtb)S4#ZnaeooPpH8in=}+AL+mMg| z|K~+IKD73$T8hH?uhHo>g~Jdz(6G?YwG_W~VyI%mp~G#6T7>Be(F9}>hfr^7RqBR~ zha)z-#o5W1&o)a@ra@$5m$xZYM$%7j6-+5-(;v}@h5VtQVc-z|+XvtM;U12U&}`fM zgm~-U!@%{(3;pn4`s_WN;JC{C@)Tuj35hP{>D#o?`?j32HDj1QfUsED-y1vb*@4gm z80wg#rGe1Fgr4SHJ9%+*7gPN&vFM)TO@#VVpfmtXr;{>`uR_EF7*LRd-#EVOZZV}2 zc)T77X7oKy4x6GtDO$nl6Wce(<0Ty?yqGbH-mv&c#4yYQ2)Rz?-Z#8n4#m}q`)rf@ zqt-wCYks;OH-suM?r);;zO!yv_0!llT+UP3{wNjjvBqTi@!|4^O6JXE%DEBMxEbGi z3hRVJp3YGXRSm@V#$r`##8bWdW}R(JzBf;v2SajR{uTUC)Gz=9;+?A=eXexJR}VPb zujOL7)&pk4t$Id4JND^9~=`D?D5@L2=e;S^8B^n{XaS5dUuVWqXA~imrbkbTxZobfJr0WPd&6 zPaqY&e(}#4;-9DBqIHYqvtAFwJE$6DSY0Q2)a-6irz|;o4LOc53k0U{+=7srsHkB| zlw@5^&cj*LB+iocgM}ow`Lz(TC`A1S#{-qx!CMPX3xj4P*r0R0*0`U0CVN+SgQ5Lo zewWS5!S3y^+uLtXGap&J62gvwoRuYX*#YZxO^gl+wge;0d5(nppg~@yXliFGw=88E z&Y;WmY`3jqHV}I8A*yEfPmQOp?E6QrdD)_v(n^$_szlcjkw_F zuj3v!DGLkotBZ4~4TK1i8HN*?vSeZ&X$mxuV52}SW`DIRsj7OBwtOcs&h6G2=0TbI zdRya%|CR9>z>C^*49|U0^eUAzLN8m7?pNP0->7#hBf-*g!Lv9#-d|E>OmmjZxOpqD zsA=fpI`((_0zmqC{gS6u_X*fcob=i?MTSc{7~nrUB;%LiR_$yjg211LZ@^MD0-1_C z-u(#^{<=b+M-M1&PrhwIDl%uy_OC9hGj-LgK-_vn%WF~ z)5&G8Rb#pG`NZbwD(=MJEA-PRG4EGc5O9^Z-6R?0C#aXq*OZZ?6qSG2|NmHf>wv1# zu6t3725>QRvucXhE`b1&$gYU(ME9|>s_%T+va|N2U<6JLb^U^1A zsx5NOnY>rTi1Ji&<>QpXH>o@UF~s(8_;hnk5xgn3hMaROeWyw-zn&EDIhoCC?v?ap z#vzeajr*pkNLoG@_F3{+EcRc~>yvz34ZG>z6TELqnVqC)0B3RHV;QBg?>w$|M+*w4 zcibnh1pIr0Rs3#j^vUUpyu6P+SuVN2Zd8xwY!J+He{HM0$AzMr z$VG@=$bE5Mr_rnf9YQ}x59?sT zn9JgvN>=U*TU5lsc1(FxYzAdDODAp36m%q*aUc>!_lsg!H54`n`=NTgn^jgvjr0Og zH06~Fx8n}=&>kMbh|rm{RrQN6ii@6jL0BsC^ zIw;5-!J24LAD?4ihj7i4;(ROC-=z^V4V;<6%5~j0y1US#LorB}$S5ZgrO&BZ7fLH$ z4@5$*WFD^tH~`jJu5-1i5zs~WT6)!^4fygZ!g|kVT_Deaus~=|xd9g@c_IlfDS;F7-qeI!dgIE;#l6ppn20xG;fLr*p8lB%j@DC_Z}%P=G)`ZtVd_eYBq|42wZ=~NbIJqn z#)WHqnJge)@38#eAn2#rCt7*9o$`9R@nP3nC+!w|1cBdU6cNCLA$>FF+Z6TMp$X9f z3!3XDW{j7Y_=e^2vcNr(UBl8)$uNdz2KVZK$8w)BDpCdVae|g(7)bUlL+jSuL4&8j zjfv&dUG~FWX`rf~jXw_cfVFFwKCC%B^Y;ejrhI*BjHwb^Ztv5vS0^)^xL4UjS9^Af zfq$(TdzmZJ)keO3)KdZ{pC=LQ_q9kM@ z)pJlTcWq87cLwN6UyXod&qzSwvL{0&z;V>$cHYr>%Hpy-LX+`m-qAvHEO@x~p!ik8 zMy0$Gnd?zngA@={y@GNF74@@aOaX_~D^NBqr){Jc%&jz?$Fp7ZAMNJd#GN@dJpf~3 z`1doUqoO#{XRG=#*&f_TC;q^ih^8~7Gv<&4={_y=kH00!YsY_(AAEyQ{S-n|sT>N; z_L??xgDH>Lj<4S>Q7F1o{cf;~76XnRLAWQE)3o~bhyo+m?QE5Cp^F0t(iLkvwv3+% zBJkJVou@2NZ7_~jCe&JcD!O7o{7T3{(P-KB#o5%2&#?69w=Z?UScWc5kTkz2^sRa# z7)V>450!Rfz9(eKNq=7LH?px_;-o2=CIjGA6OSknYx?e~kHFrvIS@q2u`l^jV`8y5 zjdt8!;CQfoe(08%ie&H1W8o}ju^%$jYmwuLP+g^$nKOPzs?Efs7w_Sr}_^nTl?-(r%u9Flmt4$m}O9p>K zYW?lebXH-F%%kycyOix}!rDT|8N37q8M(2inZr#*`xIwO&wV&DPYCy%pb6%Q#{nQ(@7oJ6rw3V5xP zZI0B|vz@r@f6SHZG-A(J-+2w)g{1AuVV#K(eUtFXTyYE>w;scq)b{D;el57Y-6!rw zJfxr<815S_Nra6aNVb;=xw!_80#2`+xheO<0=O8q+ra1|wIGTsh><=Yq1nw-$a?rij4KMU9*6vhSX0og>+x=u5vFj zw=B!1h0i-FaE6Dc&*U{=-iy1IIUHxilWnCohNrE4Yc`yfGP`ioqQ!+ll>OCcTV*`p z_n;)8VptqtGNsq70~1N`1-3k}20n5GJ*YS%e=jW^OtyTnpX(-T-t6R827~6`|(?!2-mRz7Zo&` z>B-`DTt@S?Jsf{`MKXmJL;rx7CjjJ=gynvo$(EYuw z0b9mj1E`pyW%dS($2U?SAr!x@)G=&fM z2QCQXVH1l(#zQ}94tDcKU29lPZf8HpOyFoUP1Ulb8MB#^W8f4?(`K2n=#cHvw2u!s zI!o0Ubjsp9Z99G33g(_34xJY;L8Z z{z;MI0Yz_YL@1^ALo&UvyZ*`xy4gd19h=Am0ToFpc=MDd0cI!~>OM$|rcc&G00(QV ztR6=~p+}wV6LSMar`k64=B=M8ZVXS_K8gFRYj->E>&mK6u&JX6{WFZFlC#roTNb>l zvGy~5(|HZ&rS;CepKKmG`;XLnp))QF#~h8c2#`zh?+^GlC4fq`UR-S_6x6S*IJ{Sz zFdrBC6k%o*MwIfB^GfgowEboDw3S*=UTow=A>|w4YWm`4StpPQD*A0Fq#30h0#}1) zLxz^K#xx6QWLo5FcEVOhZ=@-U5^aGxiLUBoFgJr?7a$WBFc*!7W4B)yY)iQ&i0X>@ z`Vp$Os1z4REq51WrAaLsaYX4q&SvWMNYqk_Dp>+p*DWC*OzOCl)V2eG|L-)Llt@Kx zVd{02@e_Fd6;0c8*>tLpnNk^LNK`B9%aPTKv(dFb>1X5}#F*jUEP5hQ&B?ns1VQ~w zUt(J8GT#qTUJjA1oolBxhf-jnn{p5sE?igl2J|it&{)16hSoJ-JFN<#m--jYoKc|;An99+0b!Zkm-ww_j z)s2au7thU4)>&gUSb{n+(Gj1lw5i`n5X+f0XgCDZX{E(OucX}Q@9)>F-XF?U99XN? ztA@?#0ttcrD#w>xcu8+)u^49;&SN7_kHmellpGpV$P&wNUXRX# z0o#BLMJ;pVZkmA!rKhR5$<~%P$eNw@b$N5AexzhZJo0D5?^(`86&&Wn7_0i}W?uEG zZ@radBrwT8UYI_@yDRv-G?bN+fB;Xn*)y!rCoq0L%Y0>6>INPjUZLJFnc#1vka9ks zZEKJytgn6Pw>n4QEuNwX5$nT;x8MLV+DMx*Zo41)j!kosHbNzqxL7y${d{2mP;kc# z>=fMW^~|gSF^9p2>itj%Xm!gT^+nXMFWM6PX>J_FE1Ug_z2Tfkw2>g@cuoYI?VC3! zf4Y*h*#$ji<*!fowh6)$Ch$)Ik4QR75TjK*cxNxV(e%y_NUXB86k`y1b73oa9gf9h zV&hEAg)#fPE#uV^MA&ZE;b$BNPZRIk*6^>Sv#>jd&clJZFPWAu*0xVj{*!hz#(=3w zYe9f*cZ<43ELl?lUs?qSQNv305|~GqXr6ZBusnxXLn|77;LpvO^OHaF7(9vlC>R7 z>P>C!&Kay3JW2LM@On&@Rk`8F5mOTSG);FFC%V_5B_E7eNSO8!F?HKP4W1`HV))Z3wva{cxaBjUbnsMfd@Q%Bug`iQ& z1BA-OyCe{abvWcOF&j7QPGe}+S4~9Hp7#5+kNr2$MygRQZg`Ft~;G| zYrk9GN;R1G%=sh7t|BS*!?9%-b^edDLA=b)3l9>q6-e=N0R^58;LglaauB9EU}kpa zI#=0RoY{^yoW`S;i#`A;FQaJ1-WW~(g!)~Ao-p66(N(STx}yD#jv+~0jkpkJ0Tt~) zj`l)BHSK}~@MZ}nIP~M_n0a`+hW-XTQT-tgZH~s5$4-ZNeLBbIv4Rp&H)lEr0^&Oy zz&D#7IviumDV8zG)cNl&s13iogq|U9Jhbv(oRB$~S{m}CVzLh4*bkQ4W)wEANg>x9 z`#<0rb=EJDgjwtj%3l;{UW3^Zk8}VR5SThYC~den?SUD7A>eIj4B{R)E|ip9{0L6* zc^*9-29wgObt^44>|?@Nzkg;3Dt2oY8E%< zMtC)BZJHgO;Vjd`9tTrNpZ?K1>+x<%qD0t-c7WaWCal)?8LeavYrbeN9D zZ?Ws_(Cs-xR1-CY;_<-9k#)yN(%jLkvGItbeRKc=Q2m_-n(o;`?6Y*58-RT=yvg^el z$a(@?hOP;%Dz9z207OW1RYZ+iwS)bp(-a=O^$@+<46OBIWu*4X3e&$s%jYZLpXis5 zF0!~EK4^q}io}>rXCcLRg;h>d2ij`bQoI$lLh zO+CL`T$9HAa}|35#07vwsr+o!xrVZ>Hh;S7Mmhuep6L_Gr0qjyn^oQtQ&KXUu z()z*Cm=34cq)r|-ZPI94MoW1E8jTO&bFgH#V%5RU4NxZ^e)U?t%l^rio4J92*EMB8 z?U@2y9sf5LGwqDI7=sCe?Tj2wshGnxZ#0P&8Y_51D-7KRQB{uKTVLOh1@M+wkPVYlLVFcA~ww(m-Rx8TIaRd!I z>t(3&kim|OZ1p+HqeDd^2I9)`Tr8i{J?$Gq1!edial$aWbvf%zalwUJP@S#h@H#yLaYeVsNTW0kh`@qa|O(kV0Oo$eoOLXueXf5}Z{@ za-te#SIb34N27_K*U+5qtYog{IDr=!dIRvVY!lI=wiRTzMgd5ks?kER*?g-70HRbL z)H({Ul@ao8$ztVGcY^MOB82F(W3@%3>EhT>t|vmTpzYh^EgvkY8_xn}cjHS%m;Kg( zI^a4OFKA?`qVlreFQaN3Ow@fX_WC90POUFq!h)5Gh_pDX4&35gctoj8dt)_Y!=skF zdV|F5bYjc*Ip6I@?Zbr_Gt^-fE6HkENcR#2DxkQGCgpZtYi4(tjbYep0Zb(`9sOTmw$Vct^@wFZV5*uNMyw@#oB(?E#0!lT)#1ineTj zptMXh3U~N3;dS8fRU{?>Z6{hlW7?@a1DlQnzMBy#)j9(~8D(0w|!S6m{Y>|N@tg2yWSER9CvDs65xu*uDj-O>go0lPexFv4-2 zH0;>m(B+*75jMZ}wF{68lbKBYE12?9X%bAmoWeU&P^epPHQXzlj-z@^qjyGbjof+l&R5`hXZ`+yiG^pda|o4i>>{J?Y1ZXRtiA z7pLHz*6j7?n#qrVahYysm^>%7cslNx-#-Yt)ynxUz&9JoQqHz2wOZOdJrM?PCk>Qa zluq8|wf#7JvJ(-^$S+#NH`#6kmRU>glYLd3dA+>SsBBk7_E04h#wd_|*g$dqLh^X< zLCyJozZjWG=AvDwc~V7|W&+&N;H0tD+@otQcVdBxf=s3*t*~a1e>18uz?FQ_V6kZh zGsQ~IHpt81jeM>^(Bg!ejbTQ~J?R!H@lCf2n7A}1OOMgwejU;jKA`3k<{H$_1g`{Y z*SkBCk;QNXNe>Fle|&XU&Wuh|XiWhwXd7JDdCiUxYx&1h^)ii@{srP>f9jS+Zl_`|!q{Tr~Wh4gIGzh(ijQbq$z za!FZ?;%wHm>E$3zsR}+cVyX&T)vDev9dX_@w+LOzi=(0=08OXa24NDDf$oJ8sz0#r zOOb}R1f_$nN+>&}=e2O}thiXXivW3}$1NJC6aA z$}6g~T@!ALpFneK_5c(cpZ8vOj*=YS)vSXP9CIz3PTj}WSwQbvnKR2u&N~UPgDyuL z?ktvPZrRLE->Zyq3w?SpzC(~c;dF2-L)zsF-{_uE7I9)%n>7Eyha}r&f zXrZQ`bgC+dAJ{;}bJ9GM zfCmj3KuZ6c>!Eb18O zp%Pbi=^raZRx!uQW1vH}%Q}C!XS1Y+)@_Ozvwpxgv+b~12$7nW&3Y4*lJ*P^yX~E5 zT7)ubOyHt?Om-Pb^6|ox=E>l@#j{?-`|3q|D^R6Cx8gRP?Q}(xrS5`S)1)cb9|$@! zw?J`epbIM(_HWW!ZnJEmm(IFy=tKC@i|w}M1lqk4JmVYei~Y02VGr(hu#|nTPw5{~ zu7t+^Y~zmQO^hhcr9h-G^WVuNYl2~>*8%cB7hMc_9v=F%it)Jja7`0*thW6=Un8^r zwl>(HvMQeyDFMW;|5nu^f34P6*wjVMmN!>bl9n0^ zT~6i3$xELQFj~1%b9?*T60S4@25zKalwC}mLm^)_AFfI9kq zwx1w}M;&S>1zY1&XQsOHV4C3*Zon_!IE-nG0f5cTwO z2E{sN%2z;ZkI6>q{pL0h2GHVH|^F-8OT$R_mio{Lx<81y|MSJPV6- zP?He=oKfB_JrBXm0bBctS#pvg&uhLv*Ljv?N+k3%S(xLE3@9a(t9f(LcHE?t)y*|jptd^%NUOqN@%9s7 zidWNgrYPc9-5Ra{RN<+RSTnVQf(WnYd^0#UhO!SU`+J^)frQ4BOOl@_4{c@(WtDbP z;8K8jg`c$LC_VdR~%fr&V$c2b37mNk4{G&>s@#TaCfVxtEJ6PMg)G)=-B&Nc>GXWs~9$ z*5u8?P4w~Vpmzv?&51(}C%ZHa4ew6?)-42pFJ#pw6606RNx#0nf+viNJ zT8(A~#slp?JzW%JnbeyAX53c18lSh*9(+C6p;P;@#N09XCqX!#l~jGTvYr-qTzhdw z5!$0U{IQ#3yE5*`LEF&KU>Q~)d1a{$C`m`aoEDf`uI<=;rx>P~o}9Gp1!S$4aq!-w z!^LU!9+}Q*jy3eDrK)p1o>+_F=~^+=an*~SroWoB5BDl454glPCwE+D4~YfE1*n^M zN4wgpSNi7o@i%3(CqcCz*SFZ9i>Djju_yM^aQ_U9Ugq99bM(fkPm7ihfrgVez)_Anf|O!1==Ah zY(QUMf1Bd}XRP<{mgD}NkoPuXp;zaC!1VpCtc1IN6>f+eKp$9GppjVQub%AZ^%M0F zMQg60A~~jJYW(^AA|T#Croqs^qQmyP2mWKi9$Y#DkxdaO3qP__%C<=S)n#44IwWGX z+CKU__o{)6LPxig#HtF`4p}=>^e@)#3DBq1g&>P@{H=}CkxGmlxC82rg_%!}|Kh6J z)ZnTko=Q*t)>T0@mH=T*Tun#&p%eb&3xCV10|68t2qxb84<1hJ+Gqkrc2=a`+n+o1 zUsk3N#Zt7uT`LLO67s6QX%syG@9#Onf4S@^ert;-g6KXCMyqMSK)~O;nLmES-<&rE zZ7wtg0ko?7B1Qkpum9zBep=oAyDyl$RRmZxg@hZDmHyVB{8_E=n^jZFQbu%m_0@vX zSZjq?_fNaN|EJ%&b@LA3hj*xed0o{`7W+T_?Vo%(F$c7mZ48+Hm7P|^k8E9hlJw#_ zoDtBHW6V(dlVAP6?U~SLA?7Hio9}^$v>@{KU&Qaf{ZFF=znwFo9G7{?`&Uur?>@i_ z+K?VvRHV>L<^Frw4vBwh$MIV)uPROy(tDIn@b^OIU*EF`{vBF$Ur{7@0?07>cl_r% z2zv?v28jN+S9O^0-+lUj+uuKq2n*P)i@Q`2=s+2(se|)xJb7!P5L?D8sd{$|Vd1d< z;=h0E34~NZdl;LJjt_}ibBjFys3g0 zy#EY(|KNkrRTRteH(~8?;PXI1@ZY&jHrClOuhTV0H%NCicxs*UT?iMu*%M7!e0Nz2GzwPHt84un|v6^^j8q^ zZ)eC`H(M8hRca`__WK9M_$$;55VnG&ZvMa3N~^iLsQ*T=qzs|;aF!qnc`Z`!&h+e= z>c6p)LU@SfGzI_^NeU@?{Tq+2Bb*50g)`^}b|OE0_HW&y3iHQvc=U}?n7aGd`TlRZ zqYxdkKRA8m+$u^G;-{aE{BP`!{!36#(A3wgyO3w3U{`~?%pV#Q_bstH;Jx@>Jnd28wpd=6(l zrwT6$M*g-N{@K>n5uwe^P%lBKA_5wFxmAf198@`Li$X6j;)DcH_4~&8;Pt%?BgNY- z{LnQ_FB&AFW7+%eRM(^L{!?7qnkOW28=E)2C2cT5{egSD7_CtU>odIM)1en)dsJtggslZiRW{!Jmw5j; zZ8S?$+KL4OM7(o6moSH*$b;zr8FRTQ1ROTW(`2CWh>TYYzatdt{i z?Oh8E!Yk2&D?gOc|L9kQRW)2eH=GWObx$r498W}<3q`&Gr$V3`hJ4})QUz>{PZ6F~ z%sO1r2eQ#WbIrfCo*r!Yt@Dq4ff?-JUfWy2_HDKROjOj9;d5n?`^Zd^;0zR@4%!m& zm$(0Q{r}sY5b=2UIWu>P<6fKVs2=ypK^e{70wsoov@|#y(}jI6j@dJVM$!FGkLCU! zmNXo-Q#$l&r#Md;Nd-MN-c?U6UM!$((P#X4ykdy ztar!sN(-0r`Mh(_I$huDpP2x7oMurC=u_s-1THoy$qh$k`p^_~pfv}fd(YlXwp4-1 zyX~_Va^A>F>Ja@uf0Pk)kd^W@)C2&K&o9-#Mp=Q6){lF&$e$2`EWsRyDcb#S_|Wwt z25c)7rbsRvt(_}Rj1Xz_ky*JOa%8VML2Uc`y+9e7)K;7=oLD2YGlbqW=SFp0YFu?* z5k5fZOJDFNNG9J{$?eRPNwJ0^f3@+|8c#3DT8S2y!iCgM*LLmkiAPkKC0RbH)`5s*1CbQe%)7<*Kl-7H_u|dIQY;x*DFlgy-ou~7)C0f zpzH)zvMvwp2%5qBfuxZ`Zmltg7qLOPof2x-QS9uNH}R=b`(2=s-S|u8=-Jev6ke;V zP7}UHcApfK+cjpQ*NP)g1$fT$_=1|Zh=pHj(ABWDmOJ+~%b=C)zNEjluF=gOH!xE2 zpV;sP#hEUhz~Bv!cmgUxXNQlU-%-@yH-DkiPEd_Qw8SAg2(Lm>*fZV~pCB^x?VD5- zr^q)~-z`;MC-<^+d^3@0`TQ&Bi7tg%OwM|HhzDj+?YB3DI?8!JWAG^h)*0b zDbSR|K(QbcjuLy}L=mTU>+s72^gTuo`Q`8WJTE!qSpSf}iRDO9@$m3la#?qI4>ObX zgf&7wP>Fy~a$Ki~G2)<~b-tQzn^%CTFF7kCY2{uRE2RqOQL z3OuzpPe5Iu7e!hSCH`g|FuMqQOywYSFgIWw5Uq)c(1y5Bm!EFnF@I|#2HNOvf@VEl zF+N{Bnw3A2H9j=SY{vBVn=W;w$>jRZnDLN;akC>+ebxu$X1ThDIc`atB{roUs|k%; z>lv3{K6(n1pUqKWQ;wUD@5p{n#kkXo;hMACxAm6YVy5naAR1ghZAOev0M)kqxdge}C{* z=rL>JCN<3sea^8CC?PzcQ%tTz+VCn0Nnl_@kQ<%%y|=M_1(_jC8hQB#NVQ*2>NQgHi+@Z_?f!Z7Hx+y-j&Qne*;NsWc*TtP?5HeNLC(#LUU$}hKn-rfqZ(j4b}X1Jo1m_&{#tbx4BPVscXdQ z@qus)N`8!OM2Uc?P4~S@pbCMoayoF5(rBaXR!WV_e@qFUqCKXux6ZzrH!>I%TTkfR zyFHl^TxQ$CX7t(DXy|t6`iaiEeVdX?0U3WW^{-sQ>WCfJXHVH@hVA@Pcg=_MeGPFi0Ghg54?7&F3 zLl`l;`P1M&$@|f+Cq=oj0Y@fh4`y3M9HK7AqVxE*;&(q|_R@8oO;Q1#5~auB@g800&c%An?~-u& zL;Z(_rd-IE7qLqYY8N5Y=O?HU6p82@ni!fLTRq`5b-XtbxT7p++E`4oQO%sZUv^L- z+)n>Z9N3@QO3BL-D``fhpzq?fpq2caObHv+#L-ChO0{9e^tuYfuI7}{ z{gsW@w>jwSw;);t@tgN5a;6kLw1%V98sodh8kl-LNzjB(x3Zhn*c(O<2)L^6Z~)G?XWZO(Tvi9GZ3r>zm> zdy}(tn3~(=b9P?=LyxAy_RsxOMB09%Fb@QuCsXX!j<=TXvpKH$B`lj z-3{Nk*&Bt(p)9VJqG`IQNV-v%v>jIgif2l!${o6k2LTB}0uM*$EVUAvTIoMT?YfNW zI}nVsGus&6j1lf=X<~T4ZVdlaIFf3S0T~GpPbr4f>0js8d&3nJsMW9UV5`h|!eIpe z%5(KQmG^#pdAy)ES21~nT}j~Nal>f+qZX5IFpBQ<40y~8N9Fe6!38Ohbpo+_b~I2O z{=N9g@Icot;-=KzonFFrQ*;ver?nE}DkILNvKx*Uvt(xn%2Rht1H(&e^^^}@CR$AJ z-AIf$PgXzB2u^5jIb3>9nR)MKOqQ_lFG4$+_Iu5P%572|Xo^r_{;fGlSBPXjF?@_eYx~2*Q7btthMTI-FTa)h zDr?jQTOYnSuourN)2S&rZ8W?!N=9xx3K>iPR951l3oq1lo@$hJPjB~B=Qq!?F}?39 z;MAM1^xF;@ZZD|YnPqkmd%~dU;LxUDi#hIOR@Ob6?6UT{GzWegxy(J*7s!{(c0M=| z{{^KnRY`|EwaJEkW@J;2+w|lfG~tXR!01$_kfQj2o+!DDu%+jYa51Baq5Z~kyV^|< zM1E8dAkE96Ts@2W4SRo(jYk+@JRY}Urm)1l>PaIbL!wOwgr^A0!)epG!qVsCez?OX(AaA#cEsyizfVrFPS;y zLuyXzTXXb+988XV5U1kIFP1Q;SlM;HWQZbXo8{zv;_e#R%*%aMezu-2{A2SNz6I2v zvcqr7B{Q9@n1=Pz67Oj$I)E=s5Z_B+Xcb9CZoKzu`b88oI(JPa##qx#W9s`z|6hc7 zI^*}6LgubILJR@U-NpHaD!eXA$509;XWAs|JMg~c1V@PZep(z8tJ7ID4Y)*uFy`#oX^Y3d#az# zEKUdUnr^BkiLEGn?+sSt=Q}Kq@eGWwwrF`X$fz+&jZ}5m=X|ma6(2WCc8KB&=K8W1 z$z%rKwiZtYNY`ZycrcpImht*>f9WKi40ryB0Tu3VQtAU|hV&hTqmzhb5d&w!#pQg} z8HlbIQL`@1ruA-5O2ruWlOg0UgMr1raPk6y`P9SG9?A$^T26FA2~X$KEuMvjrvg8P zM#1~TLRgZL^w^WszUp6W^2^u+C435x!I68tiGgUii7Vl?u3%kJHu5S)1w*pjtsa-s zggyC>@x#Befa~klzvr`2?m1JSb{cXP9%F{K7wa1M%3InJHFK=7HOUZlmBJL1_27b{wn5 zvNe^&y?fRi2VV6Bdg#{0FTe}O0MGsepE(Skhdnq^PB(HTxnppMWDpiTac*Sk{+^BX zpu%6$?Qw0jPM$Y-Dp<$-!f-L@YF3qz=;J^aRkt3JMpLlA9vQc|c1J}8F zl3eWhm{0BxdtW=ZacjaKGX&2Hr1A8+{X&|In z&-mL)Yd9l!^X(SB)CLo&hPMrh{?}E1d<&a^Ir94Pk&Xu&nb!FGwhK6F>9{Zy5GE3> zY_MLNoSN6H_%@G-&t(n9O<}0EzK(=%+Zgs%NFwJqU;e)tq&i zkDFXXW(<%_9Sv=jaSTUCnZ8NspG^yM2^_0f6TbIp?1xc$KcS>U=iUv-jksI6%Up>f zisVggYWN4ToH}9R5}4sdnSr(*bp>j}FFW;+K*3c##SG&N$px~&C@0h$*?8bX*fqJQd7(VX1OXiKD_uwE+!yZL=St%x*DUtM+ zC{jDF8u*{AL>@8~Pz>R3@c;PFS|;Lqj2O6jq3kM+>gWvJ3+L%1Y+=!?>q~ilG0^w8 z2a!Qjs7K!?RRcT<-Rrx*1fU@Z2yT?!LfEf=V;oyk++isa-p@XRh5GhUh^u>A6ngkV z;#_Y@C6TN{JNVcci1Nq9c&C0k%dY>OB(tB+LJ@HQ08uVEv|@@k25QIKBHr&6JnA2( zU^~mlqdO7(V+ECPiHeQZsjj)Ps<@pMXIu@vnoh-4bril% z!apUD8m%Z3^fw%?$bx!0pTHcmNA3tx>sR{Gak_`=oWXhBh(3%sf2M(g9FuPgY1A-e zjGcCCw1=FS{AjpVY;~gs2G#6^#7_*^W|Ol>;`5|3+Gs8F@uXf0)P)c{Mhu}D8!YhVg#AL_nW$Gl=-(>0)#z!pexflr0HMO*~oWZF`!DoU;-}>U8OVqo^cZO>MU{}~i?)GAlwr)$qwGqe-g9VNjOL^ld4 z!S#m5+_TiYCD`UU!e;3`$tFL#UIF#B-t8B#m^m-*$)rzC&m}?eL|eMOfSlFS}p5qbInVu?3$Lw_;OQ z2_=+MTE>aWOh)4%C2>Mw z`zPu}k_So>&`Xf1g<_}*{YV`@Lz^}YtDBlYCrNTpO_NqA6J-PixO*%q<{M2~o5A`( z5o{K_&mYk1K(m_kLhvVR4us3VzNoH;{%lDi;ec3%ZOaSi;pCBH8!GF$^BxOqZ)0_> z!Jbf@H+GhNn8w5In0~KV-rSx1GsY%zA!i5RfC<<67tCti$IdLo1i5}Qx!-6edU z&;NWty;J0HeUYe*A5blz>~CMKQf1S<;EmFb8k{&0q61OC;e9#{4+d zeHl|Rkela$m(~%Hc1DZ13#Fno&pSevDbq>+=PfoXXnd`5jwFI~*W|~6u}rfcSidJ_ zEWfz3N6+%s6G7Yg>alcx%N*(LZ@)Yg%+3S1rK;3JgYG@#w`NN?Yw(dMYXY z>zTm^R-WIm92?J#=w#Z@jn_p9Pr&3aYd6Qf9vSc&+q*a4!?BRs#-~qfGU7z$4g160 zMVsCvIgEk1wdYqm)CkSE3p-maK^YLPOawA=T^?%Zz7IH1`^LgDP_^o-HyCwcx4vk4 z*@r~J0T$trH_qUZk5eXatTqeYoQ6KEPN*K?(vlCbLD*QW{q|KVsNJmshHtAQVZlBR zdbqQZvC}#Zr!BmlwvEXNXXO|VMKAG}kj6(~L_WOHJW*J7r@F&xOnOEb!(|}VHHn*C zZp#sJ^RklDLR6a9gPtSDNy?_$TSo$A%)uyNftN%yVsp629*tgNq+e^|NS9~+^=a#( zB|oDeBMKqJb+0@njyi!=!_a_=X^lEY zHpLMv>Y&wk*+&vq1bHyxIec`7I9<4lyK0%a7dWZH$fB+vaK$4PWvslkpRLLO8lN+= zI>HeXpkYf*MpDQTaHw48^0Kz6u&@?B5md!?SsJ`f?H;Nf)WT`mj1)d4(0(G?$Qv9; zKc23Q-x*kYU4q5Ia1)K{JcfU6_Za)))^#1(x`%w39}IHTc%rx#*)fd#=2@RIR0nk@ zFEcM(8vg{Ml}qg%MYqqB+$u(kJmhyd!X=NHxh0$60|Bh*STToVx;>30f1p+A*@y1E@t04frXmbX@zE3mV?wBSm1<9W^bJY%8+(Lt=^Kg_?4|@megAtPm zRt^ru==?Ui9;{8rL#GH9c42p+SBP;F!^dCsUp4Y8XHeuj?Pscu$(_;e7{2ckR>d|? z7(i*HVw?eo6*1I#4&F~ktE;M(E`a%yvLl-&uwhjJfApY})5ZGF5o#}ci?T~cnb!(8 zUGaA%uve1=?wa1k`op;WLXYB^a~D5sdnfUJuK1hg^Z2u^tjdJXRqs;?WI4@ z#+6fi6E<2HP|Co%G91IHX#D$1!-W8V``Zp8_Ms0oJbhF`Zza8mBwzPLfQY9xSSRdK zVJO$To6@7-snu(K2v=y$C)Y80Y~$%4Vg*%)>^$!rdR=(4awS?E48zch1}AaxKs1@h z0kEdriw$udt!SKzZ=(lGcwBa~+qODL_5bnpmQiuG%eE-mxVt-q;MzC@2of|Tc#y_| z1W9mrcMmQ>gFC@pf)iXCcL?rwUcR;VzWc0w#{I?M4>0Jbs^*+EtE%w&0r#B))95=3 zCE&?f>36qXWdWOlJ=Qm;K6!;I>9`k&JBvjPddlG$m67G0`oUYUZbwh8=B5zwqSR=$D zM}bov>Ny+B0yar_eVF&lyS43?GmGpTwSiS=93t(3b$>J?2T>Q4v|{wvZ$>G$4n}Td z)Q3>8G4J$H{%aS&|A)dkJ>c;0fVM8Q=S00FkTiLchF%^Xc$J=i->*nA2Bz$8`W1I^DmV|F&D zQ>@10Nd$%Xy4Rl)ZGO~OWzeN@W~;sm3N9#EG~D|V z4*^y+Mb;>zea_HcWUgAe`%X^nCExaRN0wmLyEiYjB!+39h?5*`JPAxe8Es-9^nIXK z@a{MZE?O|=?Ay6JC@)K6XmbnS7bn!@IKFZi)~9-=))U=L`1oJ%bz=ok9VLN*$>#1h zTh|Rmms$Btos)@ZPwrA+(=^X{#D(T6uw4(+dCANDW)}V#6&Sa*)bhNX?)}kDWA18e zp%VR?2{ojmCfM!z?_(QMx?bT|%45gF{oZEiPJ!FO{hLz(s(gQo`^F_Ez4MZi?wqVU z7lncIotJfmO_o}YiRxWHOT>gkY)0yUUD4KrGm84bUvIn%)5+VOTaS6w9f3N|1#I7) zS~JRrMU5B|^zi8sUB2XWx>@*M8g8~}rd5+SqOKoS?cbynEp8+AY2 zm_d)eA8RiZwO+2gT8IYD1|-P_F(+v|kxMV9%Od62WFa6A6TT96ZMk#roj)KROX~QP z(LTg?`Dm+c#4Bt!bFUAsZ_+>95wh9$^lteyq1Aw}9j4cCHF5BboMR{ucrL)l%3A?m z|8KJSuaA}apPt1|Jmn>w5YQEUf7S)4aT8%=`cF|6t%`zm|VF z6F{_AD6(Y%87iws9dmywSX%?uMYK+H^Le|uH6;k_L*0{C=n_~OZ?|=Wtbz5_%wH$; zfU$I7PlE~#wBqn)Jvm8}Bz*RV*z+&Dz5L{lwd%li1WY^|}cKzq$<`H(%6CtyIG z&f{-QFtF!n&6(#2`ZtgR_5Sd@K4s5LmXV36TX5&W`>GsHIV>%_9Zz5>N201;LO0uQ ziemq<2oh+NkMHa(oZh{x7mb>q&?H&>zE^=+Z7GB2<}7J+X;`_>>9dop{tZRENnG;g zbG1C<*%;CZwAr@%_I#)IM^y$0tI9RZ?UGa=v$UVBX$nLRCq1CsU=xd2qE)4~x|%lp zM+%dp;fLi)r_6NlN`ZO6Z82~whb;2l+81db*&uV%Z*J$r8U*}2J%WJnOT-RFnck0?SO1!7jX17KV(cB8JG$p#Ag-K6`O7lW{ zA2qqF=m7@7Iv^7O+vzAl?2KxxeE8#JF{&@QQ!X|Qn;HQbR?_ExemTGi`5f$3)6=iR zF-L>Dp>oDYHVxVU`RGe1Z4gzi$A+f8zoWS+UlgXjF)kICJH%YA8=>0!@ z`fvoi9t0E(k=UG$pA^7qBSZ#4cNnCSpFXAAXwh_N8hF9}DO4g%kBMFm5pi0gA4p_L z-jz)n$61Z+jf~iFF@C$iN!mmy8A^h(9GJVKdQN}}vI(=_n`GeMapQ~G3J5^x_Qa*M z6SFfEKU`_Rx;k1!3&x`G`!Zi6k29IP!aQ8T0!~)LlZ!i{D`$ye zdKaQu)0Ng2kqR|UOd|u zDSyIN<@Te!O}b<|6dsit&5P4FhAPx&o}e1fy8 zv`?z%v8lkjJ*3;1C%<_xcj{n-uI|KxcF=rMsg;M01Jd&6g$6io{Wg8Cb#*9+PGy8k zC(qg+O@+pKMJeVHLSZR{E*nMer{yG2t5vnWz5;B+zyJ>JCH7R$knV}Bj+hvD-MX$) z&xYdl!#8LWzSerB3YDEZN-`ZvLM!p<6q1CvoELro69lVkg?&MWZD+%-&}u`6dNR#p z^S4MeazR#Cr8}-7BOH-eVdpYMo4UC0=rLVtY~u??&`sAj2l2+s6l9%ZHsXle+{eUJ z%N9g)(^%JNu=l?UOu4LWB^fE;Agd$EYy=98V)A9ye$lVqz}Ov1X7jB(u7LD*g_`;_ z=+yc#Ww|jL&feMH*IRQM-{JEoiItMF^7CW<{8)xM0`)*ct*$D3Z+|g>^PLmIdU)&J zV2Pigca-VA8fi9?BjM}!b1nU*i(`Xc7#Y6&fCpqbT@LTK-v;73WHc#ErD|J2*yxMG z{H>49s#P1%=kc5)836lc+CRNqqJzV_ktG2~k}<<$K!kyT!LIQcILE%0G|UQti9?K_ z0_)HRuA@$$wj4hpo@cebDg5X$;ABm|;rhpGSJW zxi?Yzus70^gk?!^f~ve}sc+=92L9HJpT@MX$tkxr5qZ}Wd=!he4!2se+HE+4=#X1ZIhRWHlV$j7#EhdDOBCBVKtT{26}z()7__8T{( zV}Elirp1zkC^>P^>eo|_%S_3KcrpwW_!xnXgFfp3*hW}Nrn$izG}y^z(YtM>L!Bz0 z{A6975H;D5;7B*~+cdddRA{Qq=3J^1e98sbA zt+-;wWVSqW)-`9uc3>4Z>Rian7}jX=(dIk>0dui`P>&q6jGN({!N zXhN{Dn(hj`#>7g!+*_u2dJ;ar`nwKJ^2y5!jp4J>(8oVJhlTUfp?uBJz^LM5+kUH~@$;+!3Q{kD;x#_rt#*2^9aOXh@Vo&lUL1k3 z|F#_1Xp3YT&y9DU^dGl}R#2KEuv#xV<1d?_P{BeQ#|8?*R5t>%jN_=Ov43Jl^r1PX zQ&@`ReA0JY&v^*N>l^H|(-IQ}uAkNNYPFcddOS?H5$bq)F!#QejY{{`T`T!m#(25C z;C!?M`$IO;2RMiGbp^?NdpHG6$l>rXjBF>c<=!;igbLE(NPpZ^!hLbLJR2KK%oR*k z_Kdwfmc~{jdcyj#ky9~)UtxRaGZGHyM*IFRTeHD}-L<8h@Q$*mNt^A8K5;+hHPyql zk0tCdHt6BuJet#N7lGldNZO(~3X%FYZ3pBNUOo)ceeVOPp&jO733G zVRsDz+nkXueXS4eTq=t{G{8=ke-NJ&HUSs-S|F0qqe)D{RFHvjK*;g4wbtIPKpJUIL~ED> z<&$YzL@*;}03K5m*>6MOm~D>2tiI~6Zv;|nff6MoDBWRO3J6U1b76rw-7-?QXANOq zCZ|+zUfR@RH^=SciOZbcN2zDJm%u_z*p^7!+v?tG)R%K{hhsEO zYsp{ZNFg1if@su4!3k`Mo+TNg?x4|hF$^Z1_1d=GeBhYYKSt zo zpV4i5;ga>6Y+T0DzUB|C+Q9jw4OhO%0U%vcajC0BCcoLXOWb4?t!SV&p{abp-5E6 zpAq0Pnw^5hpKmA_BdE}b*wd4HM-o}UiYff?)ip}@CS6ji{&iMxU_&%D;Bb-?F|Wz@ z2v!Lf=bIDA?o7V_TvBgOPuK9gJ&i5YLlS%b{N~h{)q`pN&7ywm{hO`V>ZWT0IAU-) zQK3?iL|#$yem)XKLY$-=H^N$Snzk=V{7u_pmVit;*csE~a%<=3+X-59iEoK-;O|*N zzMXW4#l1~r{{VUtwS#dwT0lu=*ZY|FzR7`vID=PzEt*oU>ra`LEXf4g-Of-ll?|}3 zukkji+V1v@VXobl>fvn2>`F#V zhOIf(#0==fVjjp3)wfK6!@_@C&~$3e;d{dfG+U&w4((T5nMh)Y6ELn!Ak`)#sPRl= z0g{2JgAYIU?BdwFJ3Du;RRk;q*vgX^-`DXmvp7mvb!g;TC=%K#O=>9`=a?VO5-Ypq zOl`aSZJ=275U?!60uZK{Iui>s+6GF>%Rzpt9Sw7Q&Ga~Oa`%2X5c-gPDd?Ca4Zg0^ z@hn#N%+_gr!}jhVxu$j>x^&`T8OZMHRx9c4H0W3X+7e{yf)S+ja{l$Jz3QE_On>%w z%1Gui$&Aha8)E7hLSrWP5m`wO2BoDST2pQfFCp0PzY!NA#Ggz>@OQ%-+Q%OXpssp!}TR@be znXvNW_sG4HZdFHqayc3FoFD0AK`8TYx|&$K?Z@%S?t)|fjtG(utLtyKVCiTwNxFRU z6$rbUkIM;jgD!iN>Quzf(=A9Q2D-Zt?IA}C*CwuPpBj-{G}>trSTrfC&6IpR@1J~~ zp~^uS!VN=R%dR`ioQ8(E!_hkf19HKcqRm}U@2ilC)9jh=TzJ&LdedAg?T1hwD#8#R zZtm=_-LpMX+eLdfH>`(OoA0Sx*S^aV`#?^|UEAAQ;Tm>xbverx>x28LD%b_~NNC}B zJ}dfjh&_LdSkANHad|>ySj)uD){HLqA=5+f55|f$p`QC>jKma#NrJ397o^rH@+6I6 zzFd&8npYTz93aF9AoM`(>((MwM?>Dsg@#J#KLtT`7ux#VAuXd}zdQbBWW5LnWOzSY zETt>(ZL^Z~32)k}LzhiQ>eHv~0O26Lj27+_CbVI4so+SzZ(Bo1?%i`-Kk$*Ze=gf| zIPA_L;^N|(tT`XfVQ%zCzQ4%vyvGO-K5o(_oC(DgkBG;1W+_MrwXu zU~mZ?%Y7TpMH}|DG}8p{G2Ia0Po8W5;S`g>?{Y=H0T?Ic+05nubMWw25k5OZ0|D1{ zfd)gMBvk(bp_>G}+XMkF<6Y_JqU8;<~`}nedUuXDF3Bldw z-gubUH2W`&4N^8&X<}@)&5V?C-Fvc<3EsQb>;^9j$2K|2|HU@3;k=}LG75vgXm7M? zf2k+p3DWzyA=m}e(!cud-F8`i>+xqV7CD7+?m(xg?pPmo@@M3OQ3F@5}b0;SS@z;6dcru z&l~#X=HgFu0*Ajx1aJrKYQ7(!X9?MJvl%W{yp-f@AMO|%tE59a7(ca4UsNnN8$RA) zQ3JKzROE_bqGE-*@&51Y-_EbaCI+N*bVzw^p~UR^jnvyehn2wH<2gU5b@^{;NJWPE zTqj*_w$nIzE6r259SK)E$=GTvx41j_)i_<6cTRBRRqMY9c7|t)$#h_$^~gq(`(hsH z4%L3jF=Du~re|7Gr9;2Mn2Xd^wfz$nHnY18D;^_#y&vYkgOxNA=H>(%-T0)o3uTBa0VuvZQC7ox z_#;{j(|W-X#-ws9g&~}%YvFo}USmx3S={`tFRgktnZv-(Oo^8f{D8~jI8 z+oxM5V$pYERJX%5V^THX6Gj~RxJI@N0Qyvrm-o$FZths?4jyOb8CkLH#Z(ic zJLg%KQ&9>`!%HcCHoN)R{)plV+Bx+*{9lGBD|sppmS0m2X6)!e4 z-*c~xJ{4bFhIhXoer(x=v3IkzPaJ32{rRfq0mz9hm(sBAJO^Pq-&8Y6v?cE@YO!EN zJtr2*J?9jF@QMn&Zs9Xo%Q*R%#(@isr$nTuz23ZxZMhmVZyeYXxnurSSFyE+JF&U9 zjG91~kxAg{^aEXA+#*of^{ytjtX`p<%&~un2M2VbdRme75@dXRR$#wBmH$87nE`Gd zcip!={5{Exl2{{{=Oj5b$@lZ2sBw9lyFv-K~ zRWa8ygy9TfG_MCp{JLlHq^aTIocvFuO9fd^;=%KymebMf8=!@j@tt)-ZiyXLqUdvYvK?ETI(+vZErorHGaN zv8~0wgG&tfqz;zzLN^RIK({$HxC{z!{uGQDny*u9)AM!tM2qWSozD?#TNWs1^p^<@bg7dQI&L|I7J>N-?+7{{ZG5R8wZIw*vlb5wI zFH)@C1w-$=zmVSwm&&NL5|GMgpmAg6nlA9wZ={4jdE_2)^E~Yl8cCIA^)_-&xNw(y z36AXX2?b2S)O-C+__wYKekHiMe4vEPkJV$}^Zs3T+_FAG?L`!GeEDH7Res3`&YCcf zRkeuV&0?9>9%hklgIE|H9u0y^Q%9cb9WY+ED2$zRC@V_Ra8=hLN^N$pQnOle*)Zjl z_Et?)q#~sV;!1@le5Epd9_!BXt^gA+<$;6*qefKR$rbF>3z8}Y%`^qgCd zZF|n1t)Mf;g=xY^*Sl~t(J1NVP_tV}`TKsV_TbZvehD4RpR{goJyW%NJVIQmX_w*y-ae_;Dt*&DScZKGUbQOHG2#67UnI5P* zwO{C(28~4jMVmf*qCBv0z32ml^(0!hf0T+&m&ykXyL?{6d!-c@9tq;+>Fx9N;aN&+!OQDKo+iuHDF zxR9lMts4%3gq{F5VM5-#u2OnfZ-)P znl4IowmrghSFCO4QRy*{+i^_FvwcfsDcLQf1ShT1;C~r$F7kUIPTy)A88$>SbQ~Cb-JUpqJxe2}DL8jfiOQ~P} zv~?-UvP?Fxn!iUE4bP#to{_Po@bf12_#|H0fs726PP=HUYwjvJYV`?Nw?Y50V`RG% zGGHwZ=SS)HVSVp|bvZ|Z6IejBp=o(x*0QcJb_TJc{H+j{zI^nxd;R*g#jL;r`!D?o zCLEB<+xVG;?y|>7zI@GhYjsq-1s~U?#r|hovQMwF$1?TS#yh=DJJE=K!7{33=C}%orMgN~!_Z@3qeIzK1U`ECXuB|p z>f9qqVM)4mffmTA71 z{PsblV@Ij@$nf7PrHt8h>jLkoTsT$fTVR)g4@5>rCVQ+~K&~>5$yQ$?mt2(R%dTNZ z_o!c|znT07BkE{nrl`9^VC(ZCj;YA?!!w*Ta&E8`n->Yw{9EE|C(hRSG`7{0&siU) zg>Vr7Z4kcg?#zCg(~aXrXxW|l0p1+V(8U3w&nF=vp@Vqqd`wI|@ADL$^Is8Pt{BP` zI2;i1+o{JjT0z^XjTuM`F(tzH6YVK+_5i0`1*iqtq)Ts2&uc8tZ07& z)FDf^j}^>UEjg{~GwZ((SjsxSYZ}xpp!~?MRw$pi$e6l6kr+7yKWQ;xmhl4G?r;>Za5Y zTq?9vWf2&1MpijLAEJ$3K*Rfl_95vr$V&O&R#+L@nUhu8aI37 zy-jiPZ;vx%_@5t(K}QSDL4dZ_k!H&eR|9yI%5~9z%ff2({B9R6FLD&BH(PWhSsO|W zAwuxpdv)RjbMarBuIFZCD|N8(bw-7B3AR<93}CxVbyv=+&Ions=+> z2Bj@GKN~g3IH7qsARk-Kx?%tma*mzyDw5PbJ_dv#02#wf13%OMaRYkXIj-SJ>mviw z#MJ&wMp0I?om^|P)kH-sH3wF`U|oxy*IS>L3rynbTU*i<#%_;uir^7 z=0WV{aDZN1%>3-yEAb5LpFK(8jQVER0uQdm)_`sUs=6`%5#1mR4M>klULwyDxw18q88}Xx#zf#LH&3(nd02} zY-gmM6g&?2kJe6^eg?DhsNp{arcdnadce9~ELm7r(S$Lq?V5~#4?Mu@0|EIEY3YUvIyv`HmISElS2P`D zC1fP$K!s?FyHWY}B5SJ%O|ZXBMuyKbH(6+SxJ6ph&!Hu&8D#3AdqaG(O%}P<6?krB zmg$|t$ZN5n=n!m4GIlo$pcdtbOg3G9VlV_1pH)ls!v1IPODi4l0FI_00>X%Xfl&*I zCH+CS>vjo8yU*SqMi%|GkX+nCnh$wJY=@s zQ??g&_&r^4Ck~+|ClUK6AN!qA)X@$eF)=iJ<~aEUnif{|pS4C2H#=1A-QzuPB(YCZ zcs{ecY|rmxyG1hPsOEHGzN5nYkMGLeZZ_kPwHv2uL zty*i&rH>o*0LT|K_k?|N)7n|{1xiR#r$^|U_ z>i&wLYvPX>!bRT)neB?hAqsg$gr)G8pql-Ax}eD6oosF~H{w~A`c(JZYD?I%xeT~R z$eO8Kc4NK37X|1Mmjg1gxs(teI~Rk2jO9F7x0g`LMsd%y`D=UlCLj;@|MHjsV9bXK zXSIv~+d|^PQu5OmbdwR<6)KX}C9ULdtSqy9PUTSh09fV-&ehjApjVct(VQKByYE|g zj~JO%@kLN6m1)pdl@!tJ#=8Q25JYicp}FBc5d`5t+%$;S*?qH`e;6k`A$+hfJenaz zqs9g;b?{d>?M(tFK=VsWIe|?8C!9#oq89^7O8RIm?I}R}Umw?3_J$L6q+UY_fAm!;jr@>_ z^yfCU!F_x%>U^S8E1;!o?r2-I?o&bQVbNsu2h?)@JX*SjW>Q>fUvxU3rZ*HMT!5tI zEA|NL7y+-)f}RbJNP$MX?=Cygej)~V%xdRH?kl>Edk{Z26oW4lFmBZxAP@ z7exS-p~7<1rpu>081qeGl(p$e>%<|O%hj(PQ!g0`x%IQ_m1an9b^ggtR{KzH>vS%k z$nDf0Zt+5)2cR;}#>w2~sm{PN25m#MyZ^-sS4w4wXgd<;ioQ2!O!e;mnHyhX0 zvxvkreI0K?Q-j5?j~2e7ID|OW5-b$J8kXyyP|$ z`IP(sChYFQb%nr!<9`tKk}5za9EcmxCUQyJ^bFR)0yaU)2vWd zdh7AhF*6EBvQ=A13V6Z`!@D40sS;17RI9-wV=>*JhD`q+mI~gD3aB!IWyHO$<-ve< zC1mWqRjZ#x`rZ-=r_W(ef1r~0N3zR@r%>fhc#<`Z`_*CC<_Iq6%VIqN=;Am(hR1%! z!)ei+Ca@g`i!bHR=i$Jvz{CcrpMlXPlucY+KCN+xeF#pKb)NU5J`HIKBblP!-E(=d z06f8&AiL!J{FhcvZa@URIefWtzQPtuW<61mv;2DDK(%nx%1A_9yH@P1tfzD2u`Y`+ zfLaUeD4IfGU=iWcyjZ)uuzmh&0~eI5)S2RFJDflG1j;ve&=h?*Cf!+n^;~ z5g=hv1^^N<03-IjPmShiT4{VBgVG>asB>kkl0i;ixMJ}`?7M&JMH$D;BEmnhF=EpN zBQhR|)QkvRaz~3VP&5XYu28$|i7_dWBL!=@rvse5KZ*ilDUXtTZ?G`a7jSK%UOAO6 z{;N{7J?$%e=XZ=#?60c&TKVNIcTeS8++uA`Z}!sX6Zm2xKuw45i^@VkM8!|IJtvnV zeJO@lYzZ{(%ibM^MGpNL+~UP_ZVghg6i3}m5B+n4=D&-X(ri2eq zVvYCQk%tGGKlm8WbJKUdsyKG%;L?c~-yt|Gc(LmjKt8kqnNaKwdwV!3zH3P(bt zcv_t6G@{2q<_DO?XC&goUx5j-#D<^UI!(iqgxUFZmyiGYc0X#?acD8X-x?n`eGZbYPjvXop5AobIyw-Q zKtpMg6>yAAvp{;!7`RAFhxoyir$MhrqYO0Pqs-B0cVMs@N?5+f|b(v zK_M`HJeoO@46iiHMNE|Bd_3KseY3#Nd9O6BW#CRo>EN*yfiqLou$?*nx#=WM2s zo)CHfO5r^|m~ov|QDHLL*bY55N<56r8X(%_iaY-;rJ3H42`tR=#H4iF#c{G@=~N|0 z#TSAjDaBYBUT6{bdZtj$6o4h-&<}V(JnP0dtY3c7ZQmuc)8R!SFhAa31}%FZ;XY=0 z{zY^FmRC(E5#HmhdZLk8P)+xRJ08q5i2q5Dgn?~#ES$kQP^vBQMB2x}a8WOF!Ue4o zSL>xE*#U8f)AldL`7YdsE(vf({tl`1+o=6A4f;9j@_KG@!lpeU{*WGBHD1*HujD{H zQ*@E{;n*qlLkiEgN$SI~Dg&@32+F#>N79Idoc_L6kQ$n3QnwdyJj-Jp2#Ga@TlvO4_Dl|FQ&PQDUY4Fe=O@WXexxMs z^_(c%bOT-mNMllyzOuQU=wzL3B{&=erpD~@1L`?ihtz{c+VtQMjq5ab;2dCv zB=FKd4`GDB*m4W$+^kC{k@2TVqfycAt*=rqNW)Hg=u~0TCGIdbFW3$#`Ex_pN%uPr z+|>VMWL%Dg^}ZE8-!YvB%Cp&6DkhcpLk@bJ`>{KW+l6Wz>mb~oz)8mg(DxsZsRfcsru_WUr7aXS(v&(G@DE$pCUl^YTN}1>s znEZE%gpUuFT;~(EAUclP4KF?FHoG;+RYud6Oa2?fR2_TDytUgE9#!g1MODZq(juM?6ZhxkCAPUQLT~YO- zJXn+`21YhTZtOBVMk_y8w5jG>@_kU(jpkf^LZS?iiA=MMi%EIM3FiwiXf@#}aobMZ z0RX~l$sI4$;oV&y<;QSA)<3?|XldMi{x`_aC1Vq~O69T5VLq#w9%Pwsxj{`yH|h=R z4v_y~3b3!n09ZBcoH;;Pprlra>$6@grxUrG+fd_}0MtiX{I=SYJ8M96Cdo>P-Px=J zUb^c>x;bQT>NGJPGsSAJ4@gl7(6Qa757SNQI9Bnq5gI3Nn7-c5W^lb@8kKli)8%fu$Bx~i!jf1 z?4Ww%3cb#+i^Z18s)Ex??+NSJ(Q0GQ6U)61{M}BbAY#rv1q=e=KMpJkzXosd%Fu;TIP)4dT8bGOVfJdZj z$V4vU3(nk~;#2<#g{Kg9@J;{qEfmsVy8?p0yAA>*pfE2CQeHnzt7(E|uLiB2hkK`@m}G(M9cACR?Y*dd?h;AXVKVjNSNe4`iC+H7Z zVO(5QoaT14)Wz>A1-+lhU*sYn$>WUcbxH=V_K_(_0Q!@ke_R@kPa4A%`f&kU9lwUv z(&%E0uf?Q*GKQ=1lkya>bI~`oe0o1f!;?EG%3TT&LM#0vX^=2?`+WvCYuU7`@gqot zX*!&&KwN;noRG+81qXO>iC(L#dGVylv#3FUXZ}J5h_0;pEqhc0e{T=#A^_9`=oj@6 z09FD{hr=axbmN|Ht;*Mlh$DTNitL|Cp%rh_I1Qmo^CzdW-?&?We}%7G1z${}lpO$M zd;+|)EH~IirCZK0N;H+%TH_b(>Z+n*uI0osgxbDM(%7?keh1b~h`5S)JWdmF$6|?` zU^^TY(9gyqPJVsqF>!j#8NMx2AG9(t`4I+#a{`#V_8LAbuPNKejwDKxEQ~g-PC2QE z`dxco^eN_*jPJwPE{pNXk4EJ4YivQM>{fIyOGFYs{>7bZ zOzEWY!02iPZ|3kb$+>y+Xa0`5xA03co^DQLl_-LD+rsN2@mx?M^tnAbYsh$?9%$E6 zFXi(2Z5q=+F4Obx8G znx(Pb@FhT#)3AEo_!nX4eVOOUSs#2Iw{E1U3Z>HKxoXwy7?2sVeLW#VN#Z6cZd=nr zCwB*tre0keAdl=W|fi!297$eT8VURVS^G~ z1(~MUTN#VyYv_HBLIY*>N-j74?OZ5KoaluynD7`FX!t&i_Uw*B3Xa9=S?%luh9h7_ zB)(q$^q8auc-_gskLXSXj&@XFREuaU2GIu$BC>l=*8a11EizoQ>=WgU7oiF2*lMMp zxM(C@b^%fXHrukrWqYR()>C<0($d&UpA$AHUCa~p?s5;2Ntv7o5)~dEyhbN01t`Cv zUNUUW&d-RN>;^#&Gh)Xp4Mb1SRx&5Rr1g0;Jt-96D9gY7^X(4VgW19AAmeyY1vu^&1(OyXJLcs2Ly7Gc z%|^bhmj11a7m)Dl`h;7m=k|z12y1xQc&Y(c2+qaR8QM zAz5}N1AC!;Cn_EUE-$m{SHIgQAZU(vc**+e|DE*#sc50#HO@(JbY|xCw%miS@^1cA zsxzwIPkSS^*74cEWycN`p%Wtju3YWUa=Ie(c$Pq&tEt+sAb6Bpu<8WUK7|HmH`Z4YEK_V~qLXn4) zA17xhw&01 zKS$h!n1UxpLNksERk_7Su-xk^>V9T^w=Rjyv(hL~<#;^d^~?J6^`zOW{brp<_oK;$ zYO{Lq?lkI)PtUR4mKS@oh~6*}O| z!x$60_t5IqZZQ`t)jp3>?0d2O^yK`8mscL}XZ=AV0B1ea(H0SNm`c2ex{mn%yDXcf zb+!K2BVw%Ge2Z&$9qLhOt#`zB&yQG=JLSvp9AKN9BaMIZk17BKF`GpfWd zN3ozuU@l_MHP~`o>`jYG{PYX$0bKDhIo&xPx4ON&EAH16T5XD667M|*t6mIBbg~Sc zkqqzbpm$^8KqXNfCv89L>yZ>`Eu>f(bhB_fZT;X#WVyn!D^~(VfwVl-#&NDb+@5oK z>>AG1?AVf+2$)d{2uz%LvH36Gh(SK#{-a`EfH2>goM+F(aQ#Nm-8})OM}dP%+B}7w zJ6WEu|NLfaNbp~y+iIY0u>M0U@tqOPJjWR5P7tu^M6gVtcKMWOR)9jnpa$oZc?AV_ zf4DZ}17OX@&z!YdpQgiCDrNZo0$33ztyu`*{}Z`$r0kzZKb`cEjaVzu;jbwRnUp7b z1KrOTAE((!DkGluLmw`u#iT<@mUcg2*A4<~+rM)Y*)%C-qR3hP^}c)fKTsQk!x5uf zC>FKoiLrXAnFafttG|8|CS|vAJE&Rv-G5UnW{Mb=Gc^9EYGsF5QdZ-BCf{yTh=Kjd zX|RYc`+89=+TtNHs|`|ApS5$ESS? z8?5V-799F?8Dbw-%(^8v7t+pdMPiO?u*}!-G^xbjIbM?g4+qpWbvF3#PUNLj=mw>9 zde#R(6YZ&z8fgq>1%~?Q&P}4v9dpvUhnV-8AcyFy4gf*8w{)r$cTK$W9TajTldzT{ zH=NoXl!Ei~^?#@-+QRRGnaa}Nf%Hq)%^-+X`19zDJz%p>&ROIKyTrF~TTvW$gyWr} zJdGed_xZ1&G2|&R!{M%pE~}|@vE_y8{i zTC3Z2GGKiJ9ysj>MiHPH3a2O3;BVX?6;}0o#f=P|LMUumi-hG4CF$}0x>Nl55Cxkr z4?t0!eu(pIX>W7X@`Y){#PpH3(+YK(OF=%GVCD%R&-YCu!*llV%Xsj(#8gv|2)Mjj zewT#;k^bUxf4!1@i<6w4S+vjjYQ_%hwTDxyR9>V zxq53fV9Fyo!glK?alywuZcevhfg!A+FqFoDE;3z|`B~ETRBK(t6n$&sz_Yh!dnU_! zo=7EY_z%|kgrh@G8aSYAazHBhnlpvZqCt)u92v0m%U+?Ct;Y8D97~RzTa~dwjJ^`+aRV;49#b@m`>Evn>m=!5iq>_Ob2L5 z3ia)Z3bpn^($dm6b#8}BW(nTt`)i-REf9UdrshWgD5IdKD}K6M-b8wENPB}tTogji zFNliYZQCEbI3;5jv7QVRJ<228NpQ}J?F`=GZhx~A<^hV`7maZv-#^>xWB4^|l>MlW zBol1n528$zkd$gZq2~3$&E>t07NIS+7k1KTq7|ZBQK`425+f4cy;zUvK2Mn2tl?1P zDY@C!}P8G_O)!TdBZ;Qir ztJvRH#Kw|X+*kp&&Ql$v{f5Zis9^n2fC?7}^}Fg79DvyR+U)HA9?GyfTt>8@I4KAB zM**~Ys^vaaKshn9T7Ls_+2flb{i9!pCA7Z<$Qx-jDotB4<&(puXf9^Pdq9X7I+Z22 zAi%EjwdtX?0l}cwe$P|bt%hk7^q|T`J<=TY1~UL(uw-L@u5?gd==7=C_nB@Ogd&jT zv}B3W_~fbzaJkLE8K~FKUZeLbsls-9KIB{&zhe!siZ&<{$NUGng!_ zKT#q1I0|M0t(S7Sx7tZH#J`?AMdZ`oGxKH78zWzGJKz|-%H(3CO7t6Q5avyum@~3l zdm$)ZDDwKL>?5a$qCh`99p;cB_&p=+{`{=(>pDrhm!I;UsoQ6$s%yO#IpL9H#d+gcrIcvuMHAKVt)i7i<-*KDpM+1z1ETnLH}*%=I;e}KLz zt#<8*Uup46rZ9QvMcLbpvI~NS@yc^JPYO(v13IBv467H`zenrVUg7y(bO&e8F6X6!jzZ za@9d{OM$WJ4{4*?3%tvxh|6v+=Pm1fBF&)xO={B4Qf;*)2#Dl#gK7H2Vr|Qcp?`N$ z;^-+!e%L2D2kq=~y+KmjkyuO-a!JJ&ShPPim840VoSbY5o&+if`1tJ_?g`u$a3F2M zy+vZg@}IG&)v}dkZg$RUwVW7Q3NA#L4GPgYocXX#G%Mui`c^Bz7m$m?`*Nr7>IpnOCe4;{BoupIMul5jA#30>I-Iy*Jz1 z+FA?vj%mR##gDu;I+va=P3Z9S+)P()ql5~dRrd~HN%8tXHu{si?akH20q3V0{y3IV zUfX!MoK)~&@p(b-r+|+uj%(DCVVw~R?NdwDjDW-cwiug0UX=;@gL-GR>*c*5fxn_FQs?C5SOm8lw*^v^&94|P5kH|kGRd)$LLDIpN5 z{Sf1ezJEN&WKI1B3jEt)_R02Jvp4xX7JwES)*FH3gI+)l%txBU(|H7DJ|B;cTjHk{ z0;YXZ#{yrNZlYXranRr{Uo3Uy_XrjoIQUgL@ir?JsLFgo&sG=EwG*-tzsv|n&N!tf zb2^rdhczvF{#oG zNs|TTH7J^&otOi%^RHjwr5YR?{c)(<6CN~v&)z=mno&z1fpL7FMMM34Ehr`z)v!vYhxo=GVO1%66y#+~P4H{D2_?-z5> z*r&uGq!|_VGnz%oIaH^0H>oM_i0e$h=OhO({x&#F;Qrw9PT6W!ccRwPqltVlI3BkZ zf2m3bV0DWJ?w2P&9gULK3;|pwa$f=$;fkJ*{}iP1jFLZX>__|d3O&RThCX}!q#eaz^ngZ!zUFAS3F zPQ_^ri|;Lbt%oCVO2{A;_Wc111jV6kH^*n*s#-=RnIAMgRY!Wjh(_IiINT=s3{6vz!{$A^R`In{UJ=)n%M1V8@2}lp`8Iv=GOM*q5@!=QrdB09;m2lT_?7i8 zgr`{oU*oM0`)+tsKvi`_9K6R<$Co{3?fu{=o4jdL?;}H>RqK)afT=kgv!q|(+3AJk z_E)alZ~`hQu$g(lYzEB}dVJq1w*G`-_Z&r{*cHHM!{fA2qAt>kr1sky1^OeP9~40H zrxrmHH0q6o0uh8CB2~OG3D-*-9$Nsgwr~SQ`+re&? zPHP)FvCo7TnDUXwz*Tu!*%Fg%%QNUKOfKrwe37hk()nwfzV_bp# zu0S(gs4&AZoxc!D0Zc~6(9K`>W%N@-I?0DH4Jd@-rsMs&S{T0|eE}eu@K6|?5!A3i z7MR3eN$3_>T4}qSnG4W;e|jIh5HAI=)r}43XVtuBdc1qA_Uq4|&zw<$%;#fsG3VUh z+cU({o@W3xw{mn#q!%^f(rZFIa~rBR zV{A*ae}!$S;J$On=#$yD!K34W2;>|H=8T*7Th(mVd!&a9AiP)xCJpwx@t;Wo@Rd%` z{MmH-cSsL58RHg=9-W-cFtw!8ws-m0*zdvJ-?@nPVyl;jl&inMU_oF#_2P2^iJ=!sP$ZQc2tG9ViMG+`rI41f!yBG8PVaXIc^?<>YSCLGz zmB>~cf^xN9Xo9x?+k_daUeor?SZ-XsPA1+1N8#FBZHO4DxDPeQZ<-4IaPHv5TBoOV zq2Kuzc#R(TE44S4V+OTTDc`A?-2LmGMG*3r$QC8o8FTO3hasXkDG2bg)}7;W9_`aki5tzRxLWa1a+2+0>8fUXd*tfKokJc|-5? z7rv!+Pe7MzT8PtTmxf?~k1zs8D`^-Cd)>|IroTUFalaHgvG(no>)Vla0<&_1@?_OW zGMOb>T>yEU=%*a~F2C;eT5NsPq-@ELJOJ&rqWoU4`m2_LDRiKo1VvN(V=tt_Vt_vf+r_z{XqNSW8N@axMP{nQsZ!j;ZS)xlD%dKy3 z#WqxL(}C5*t;oi+@Rmq2h=PuHQwDa7>Pd&gCQD*>o{*tV{R1KLXH8J7`ei9 z;+Y+a2Ar2ePA%v)urZiGSG%KRQ5amP0Mi@~85_a%Wnb7YT&r#KDw%qU59fdxC{_i! zULd8^ZSnbGwR%A7D=Zts0^h1eO-@Z+?C8I038Itl$qDCFt#aW^Gho4Y-jq}9*I#qj z)$@}+Q7S-jn6u-V{j@O$^itLxLy36+x(Nh2_zRge;oDxD1EXW2x2*53lN%kL?`wDO zzh?$kupo+umHTre`8ri2RQoM!5v7NJl0c=(VvrZmAQXMzU(LJHyJ+vf@%edj@^hGU z)ds=2j@RrT8}jr9zzlajlJIQ{D!;Ulz|6-7 zS4K>>x&Q+;U;nWx@~LQ3urxfkH-0Bnf!cl7(x)cp>{q>*aY-TF^M4$J<3RVsL?<_j zqxI+cI4Vj^@4}^@Gn+SFbab?dMmw%tf0^|OWQ2(VeFdUGzrnFChn}Z`(_yLzH_Oaj zLKx1CcM6nGG>QLo3Q77d)0bKXKJhh3*;ehSlwbKFPvC0vleFha)GnUP?yNJ5PN(4m zo-QFg9*@2y{l4Jsfz`^A*^35BJ;zgj_egu1q{k!1LR~>(-1)e$4R*Tq&UiW#qFH16 zCOQh_$>JbS?gn{sG_wW8yjxycY;o-%LEQZQr0HfLyY~y!VMYPX z-u^vUu9SS%B-0g9)Cx}ZdiaiOQPb}QbJuJB~i|6g47gwO~v}22yb=MkcrZ+u(8yzUA7#cn#Z+ zYr4e$SQI`E+j9~tAp1ZfSRz96?Axe;ANW`LvFmF19wpUYI`a4w5fjy!mH>!$URQ)g1aqYI)z5lNO&DouI&Aj))%?VYqNO{r$(we~kp9Z(%bGK6>ou1i!`!*)^k;P(Z%IO+i}derCs7@q-+r%@?OwN<9Qljr+D0ps{gX2-Xc+I>{XgLMcGtbgai! z%6-Dvh2JeDe^0v@!#$fHZ`VV63O8V$uajuzHz+h`k)|nN=7)oW7HjP?BV6{mo z2h&Dr^yQ3_q7QDqt6v+fS-zBusS~1Iis|ITtDBvWgg2~krtb@kI#qr$fo?xi zoB%snyI{~;%R0;HJWmME00Oml&V)oUsrZ6^KYFv!>910OtdFA$j(MhU^!|yk(xFSO z!qQ!HeNR7fl<^jbZ;IEEW5FdTy{2Ho-}?|CBiDmtUy?wu)VoMpppa_Zxcl+CVRX&V zlBaZS+|yYbw?$cvE+%)sc^*s9+13s@<2j=dC}KlEv*(fJ$?v5dqhE6DLsheHSxWen z*G-zd{BhMQOp!heB!>ICFL|&wlUs7eT*?5jl{cq|`dO|bLraW~I|GtTXEbJea6-W( z+|BLzg4l2@?t9+yr)u#SQ>uYVo55^t)sui?9l1(0p0t}Nvwmg3|;j~Q}{76 z!H2w?n=}Ykg7v0r)=m45*yqJOPfTCM7@@$Aez6Y9qQ~~7hm#jR4eC8kuxvmJgX~wMXm3>;f1alZ&3dl@AkE-+OONWvxw}2vmA}NgCJ!TNfQ%#>S5{V5*?!T8 z=P6!SFSq3#A6tJ5A~x4Z$s7Ef%jF)^V)#3a${W^ug0BfJFt9@`OBbAf9EGG^`&gPOA!fJ5sKwjx$`B+|WJ;(%YNc!_w znTie!8o5kK^@LK$niqy=32^xAKjs6$Z-3aFEk}-c==I^_M+yvbVLXclpk+W!smky) zVN}=UneHG?jzU`csDQ3cxs`Ci^`e`v$a~RD2%4(v<`T@{y8jp)D*W9YVE6A#`5w-8 zRiS>AvGpod_iE^XD>KMPMfZoD*%&^*#+m1ryYbOkJF}RsQ?ie{leC1G#TYynvU z)3okO^vJ6&*)MAaU=>y3)+B=HqclBf&TSNyLooJ z>HheKM9c5>>B5y>jC}d}RnG@PIuD@p-Q3)nnMN-NUYWcn-EzUpYIgkqvRO|J6!;Rn z_ZvT=DAn^csv4N>B6#9LQHPdu@GRz2n*$Kh3|~&TDFE5O;KAx@aY>+s$Ur`d{r(Zx zg^PNHb=)YEZWZ~5`OkFOYE{WMRfW+aS8`93h$4`SlP8}YU_Z7I{z`zR*ThI&?5|e# z4Vexl8~JPym7&FsN_^Cd5Z4mO<4H!0}w*Y?|QUfG$+5_KXrjEOF9X z5I3@TJh1BD{tSz%MG8tofBG|gjz07S5=;(8Un;b@J$Ru-YFotT+cze(LrQ*oF92SC zvBY|c;t#lnxnVhvCJCM>k*HT%po8noR1TP6XR@&zW(>e}>A;MKNbip@;PYDUCc5(O zI1XYua!14imp#99i6wAebpV34m-i_$_8rrg4dFt1j3&9RdS~0UY@74Bcd0ydnBim; z`3@f!B)1+;_kcq?daNk?W!fpl!1X>=l1nj-AfL>KfL|PN*tM*Ka5L=Z@~+i_&w%QQ z9^97s&g7et&00(}!Uwr81BuL`=0BGo9`kzK2|m?nAhCMQF-i0D_h@bztxkh$b8-5* zJ!rhc1)T7wYr8)B`cbCoMonWF60F5-BPNaV zq@dV8gM72@t<_ff9aWI@Z;OhB=rIzhCrN|hCBoS;*Xr9t>@2v~YlT7I@Mci-igEVl zaCh1tUNX^J3gUNHKO*6(Z6C7l!t8Iobd_j_mRSz2Pv*4kK*=!!c;q#*?en#O+A3|#4?-zN@Sma$g^jm_( zcO+d2IPF_)wqivK$#u@}Hx?HxFUTHS0(}91==P~JS1$=J+Axs$#^k_+AwvOCD>VS* zPQHF12Lq(}`~WAZ=QBa$4+L;@C2=fTjDJMa!`boaumurtW0@0$?OwWSY=+e8E;hZ` zOG`MPcOj1kqzFG|^#YPtaqO}{DN?%nGdTpPg?)-_e}YQlbAEDy^+#g$d;#7o;lqzU zl#a!;EMYg~!L%bQQBE8lE-pf6`+X>oYbAI-k$X)B#5m<`^VJTB=9XIhny4G^vr!@d zjFJvR8eaw_6QW*af*mUIMr%vL9+?J5a5F$H;1}-#MB?0*NV<4^beppUuJ;y*Wa{;~ z>|4z!YHu#DtSo^x!V;)PkF*7b2Y^l0f+T7qn5?ncg5Q0<#627#)oddKhAr#k1=HbM zUar)~20M+`sy+8nrIg&V0;k9DS^^Gm6d#UWZ4MizDs2vjG0M-weH!z+z1F+GbE`{b z7XbwrMr@raV!>1_qrIp9<(PfId~R?v}w_+AS0jz2$_|#$f6e z#=z+{=6mdk17|s}>N92hg3VgZVIlKuRP%9gU%rB`iG0br&9)!q| zJVl84LKNW*)9X`-30|ki^JcHO(&r3S8VGvu5ZfPqzi@{^q z;JCWj#U)tyEzwDuMKnp{^SPWo#gL^yxIWvBa?YRrTR}Z2FVAU2lsw!+l&V2xosy0!}j%0$+K z^t5&VVZ zk^6!hw&W8>WXM=u>_99qUZ{)$RWP9BBV@ly zcns24{l6kc8!TdAfrx?C=-`J*2_yaMQU&sYi;gCNY))=m68R1U_7~;B>TS>$&?fXKsHQTEZEJ~Bx=uL->6Ed;O=Ln$Y ziSPp|3dM32?~9Tr?lgvYW*$zs#jk8kqUgc3|FZK3HO{f`9~?Z4b=BWe11}_cwK!|8yhH(ja)AnRILO! zCZ|X?8ZKsdcGabHJpjz3wkwWA!qICwH`D_?5 zBM3D`mI;y$@WFCIe4qAPSDPOI(V_z|6U$nOk}|aif7&>R3OcQW#Ah(gjfvOgEa;+UJ+PQ#{-lcx9_N5N2*_o zwj{|{IH5n4qiA?hM1E=M64{*?7ntNZw-uo7)m5KK# zn=dU%QTbNQe>7!+DX<`&Y>(g{%y3Qu+&>|e>w#X}Iaj-=kfW|gQG-VL$5!du zj(;8IGTo4Kxx?S79836$I9-4O65x5p3N*0d{K06hu0i?+sBbT%KP(id#WUuKpqfwH zdXmg~EwZf;X>B#PYeXJg@#OviD7>k!(LJl5*#4>}xPu~pEM=c+TK`H&$hS09!WbnwkLYh!NMDl$gi{^ zGEToNmCGICa>IiE*RBV}zbLv_^(0AW{KMBwU(6QT00vEEYUzx`zFL@{aogO7C5iAU z^KD-6K$tKBQYxV^?k#mcjC*cl|lqPkHz8AxEIo^cf<3Ltp=;3^Ff+xk@kH!5JXqQ~9G zW`13)B-b@Wr1957xM>h|1=tk(!QaFHhl^8J@0^9fQzwVfC3WDZPFFS3{UEaS4GNI5 zhcwJo(+;vE3x0x@G8p)NMnrEetePj{?Ii2C!es9k7q!HHW?thks^4$19l^2A zM58QB5z8%bYYdTNzg}CaS6Ad;M24biSOZKDt>-mOYcs+47+raZsI)APKxHTn>e+t~F&#S;68n}ET43GV-u$j~6{ zh||crKKjLP8#=Fw{)WuveF^%3#6M- zweto}w?#aE+8A}u(_OYO6^~<4q;|#8G4676e-Up9zevU( z2IQTl=br5{f=cNt{tHh9>~}mtWzl-5-?0d#b9bNRW6=*EpY=dQuQ}baaGLjw$K7x(W)Oj+QCp z+iP{kur?Y^8aLX4veRn05Z>u_W)u{i;|@96T5MOz4IhFZ5W4dg+C4A6f88p@T8ekF ze#6G&%>SIUPD3y2VOoX5V=@B=c9>gD3KCcg4u!eZHplj&Pvu(Hm%pnAfcDDlcMbuY zSGRq3wobd6YW?ieK&RokBvZ0l`3H4Q}hV^-E_ZB?%wM zy6*V{6VDV>c*n>k@!-_1rx4WL??isifg{rqo96U5i*h@X>3hdpm}A7(oJAFf9maW? z)PFoC3-FlHiFHsQg=@;9XJX9VWHFKruT*@OIXdwT05X~|ET_wH!3puVwR$cl4ZvjT zx*4T#WTX4k>Dh#7XsYLU2j<>?NS{IU$NM&?;;sR26d2dy?N>G$eDqRW=n(KC}pO-(B=1`2%h&zJ9h&p3oFa-Il+DkF%Dj{qpv>pgM}q2L2m!5+AS;@$J5 z$6-7;sff$3gaELZfyjUkA>GR}eE(Vgkwk(}fjFKgk8suND?1tGkFU!4<>?2gQ3iRt zsGYOl0#O=I9^6#!SwH{>qE!xN&GEC5EQQU7_d9cLVe}u|7%v#}oh1>(pGreyc}m6b zP{hTp9m&f0OAJw2J9;XX_w2<;c>8tdUa3y9bGwsbNs-WfG}$Y`JntZlg#p6be+%bEVonb9%4bE*v@V^5~U-)3|Bv_j$VM=-7Gls)6yc=~`!_hq*~6C`y+O zyPP*WbQ)e3jW%VDIt?>?B7ytct78_Gd1YpDx=lMffz=-xEnCJN@<)!_*&-)wTOX`K!WR8F!tyc?o6b-}VF@8~cwq_5PbnmmL1>?aeO$F4ah4NVJKzMgIP0x_3!u~C||k1-AcDQ7Na+HR$% z`xENQUXV>;pl#3$ni`GRJ&gBS7aJaT8}7B3p>8{kDEGUKP9}~+f!cUj6ugrTb8m?H zOR+sJDm7X+MD9IyZO?(k8>Xd4$9??GS_!)SI;IQbZN35Z-9ZY#K3+RI@?M%5)MuZt zR?IrC$Sujp$M07JToMutU@<2efVM(_9cxR-dr#PUvYn z7^?JJ3=EW+-F}o+bLBhyXtsw-^1A6bb1AVv0$d~c0FBq5_{Wph^Dc??Rt-Woxr(RG zzRu^x-5Wy|DU4^)Bz5#|_3;gj?zgAKBz2`+l6ajp%5(O6Lg^MyE(f;HE_X9scF&y- zGtFm`MX8|g?z9s8W4MnAf1e5P1fH+fCheD9Q0Z&$uICHZk0T8iE4)=Q4w85HCxg**}c%vY+XWP zHrVR-x?elQSM)3g`b-6D%G%)^28zVQotbl~m@Rx$bp1{^ zG&{}reD*l&2fFp;+Q9S__btWnw-nK;0r#@`g!3<@M3fEn1zQPs6x#PkDhMK>tuq>B zB(S;Gz|gBFkw~54;|tu^SUYt~s+*>4E9l%t!+2zEm%YH#XxSf&eeIMzfjlB2xf}i; ztMIx)Nwi5NB@51}fe%^1;UXIYX2EoxaoQIaWRn-!qHv{UNth_%v!(bD{asBV+DZfu_G_zKQ!-~CMZOl(v;+?CqF1zty2 zv|(MHQ8aZLDoj&k?-m>)s)jH;p|g3sWg-W5Cga@hrIUSOiuvO}R>oxWJ|So;s$()| zVq^ul#aZD6WaHq0vf+jB&rVmz{Pg17Xo+Hl{X4$Uv&tU^&d@pG>ptiGdAe?O+wwDp z!XM{>{f_s69f=%dbrt8RHy+r6b(Y%m97eabXFoQmdR@LmS>C5mX%_dA)Fy?N@pi1A zy5-eP7rqojL{iF%m1|HW}o9wS*uGT-85(3UPqRDf|wc>@R=q&=+PL1*8&%Dyn zUU6_XZ5Qo?eE!RVUjYk#_H0|&q?iht%s7_OFDc_G%7vKN+M}gH92ZmTUh7gEUCY&N zx8PK+d75Wx>Ed>lu;y4V^(|}t!aP{rY$0&7oQPy_^I1Qg7i1-8DtpTdV&cnq+wiVx zUvX`$Xx}91Hg1QAB#g!FW`)YbK8tqmb~UYyc6_?A``*pe@V-~r#{Hm`dPl=~NP^h^ zB*nxUQoP$wcIMK*Nnt(SCG_`Y_b{Vgr5*ezxwNRs5t@xYYLtk8#3`<{*5s)yfYo)8 z9l*jyL%z2==vnHEn3++mq1&{_vtI0R$;9BEA)G*$6JMA~{T_J5m=+f;LG;FHrv~K&jNv#;gS%LEjpcj+=@8Y zzOIkPCkm@-IJ*YBYgE329Sn{@qlvF>@|1K`fH)2t@5z95#Z&phv$Ihr+u|=BWjMdj z-Nlq|52sv}Bc>|KZtH`}+fHgpH*GJ=iliIRj|(`?ZSM3T8Ul}}?omMxS{Dk>z*C@) zZij;LNKwnp-L_J_9vDo~v)Ov!;B~O8mXj;?s#iu_)`RX8benz~)mI)&7b!Bh1^>9d zZv33X?(bs#^#JPbI+)YXO*tyLcx&E@+fa0U3PR{hk|Q%?yRlFP7EL3 zq!#9QL8jhG$|9hg;KjDbNILJj?7LFG*d^@R`vLaTQ?Q@lyp)=de}%w95ds)!I8%)Y zyQ)NPwL4JJJ14Zay%7cF$vzrj!X^Yur>QJH2cFWt>M{u`W?~ z^G@V9mtWB_ItP?{5Ku-Hn_@h+)f_Sy6l@`B5a0>8Z@16MUaN|7x2wm!0`aWt26lnD zml}v?18+T!+-f^rty|N}Q==tvfBn9-qN1GZB?7m@$3}Sq=e7nSk%ejp5dsoH{#L_x zyGkmsT8AL`7oM&FZxsRnn{iI&A3Cu%T!D z--ph-q07OUeqw!PDjzIKuxyVBg&$@Yt{XzzH7FU01~KF? zQ5F2K4G)Ak)zd+8@ESo67Ab@Sln=-4!krFH*)2jxtu=p6S#AjOUz7cY0MFn@h(p3w zptOIAfOJy%BeP003JM=^0vP(sw=oyV<7z3?H;c$i;7;Avi(r$_9(`!<29Ct^lUQm&p5c;G=DeGE=4p z&-QboG}{^*rsf-I{Q02p)}qX6kx=-T%4~CBe>Z)BLg6J5%J{(mkx(u?9pS>-!1c_U zsWWYBEl?xv=&u5)Mfmupx@cg*p;}W_bhCS+taWQTviNVi%|G2RXcqK z1!1sc-6|Zg@%=j!5q*a+9JoPkXI1p1m6SK6u*8#-Q`aryUEqHFM+TK6%a4`FEw5@m zH+jk+_B7Tvc^*v+qJUW&luy;r6>U7NWyU8Nlxq`&B5XZbgkP>vp07szCQnmeeM9GQ zNxZ}i5T_0O+n?kicDpkAVh{vD`6r^dwqD@p_0bG$u;fKr_@?X5<^Q~xM{kg zVPr#9__$UNpGH)-8*C#6WMUGwpL&!UVA(qI$T_@@P#w)x8sayffeHWjlIK0J(k;SW zH?>W(r1+lF*M5qMA?<&i;m>0uqK$~O`dagXa`d<0+Y9yIG~i=LI5;F>{(0P}I5}mW z*k86a-Sip%n#QYtL^ah@($nHZk1NF#l$84$Ee&tSew(|%1D%G0#wX*RCq|FFW<)Lz z4|qI|e*&eknk}a#oyNts=jI=>b`T_Qr)KIuYz)nj?SYp`orJwiaVYRQnA?+J4fvJk zV!`w_nbjVRz4{;7kpiKYR1$|uzR1v^F{k)9S5fjp%kp8fO|xg_A1hmp`c+OgW?h-L zl+MIJYU+Y`ngUkf7IFTj))H+~hc?OJYEmaD(ZFT~SWW6%ShlFdhw1m%Ch1fF-W}r^ z7pz)&jBYS%4Hbuj6NQs`A*S>RD>NdsXk}GoWEGmB?!MAc?2qmCTfWNv<~OXMa%{cl zbz&@Mvjd_IEBZ@m$kdb5`}x|Z(^f-mF&Jb1Z$e|z$O<=KMyeWp`u75E!QPqi|FnQK zY%!XPF1kf;eA9y1{7$YPb}^RQp@CJr0jnq_O6K;?3zCuW&K%tf@-9E;5ZJnIV-tNE zWTNpVYUyfQ=SSlk8?YS|6d}|&6XgefAb!C%2nNA{pb1SlA?%-2K@!{&ZS*^&{#gDl z<{XJcI>0FX>^_R=ic;oV^dfXKE>>t=nr3(WXH%l!mF8*@$oAF z&uf#OQHukw@{afb@@b6eqw8Pa-&74;XE4(T0q~B!+BCH`7jXy|Q=vJ%LL>uLYv}in zU6=709gyxsDBQIiha-vXscIE9z4l!{aMf-65{SgguE1VuV{Kr0DtxVDK1Y3b-!5R` zXW58l_Sz_R&Z!)0yj>a$XA1VFv;UVjeN@}z^;0r7e+jXn&!BhLzSbR7@sMj!1L34x zx{I!N6gPSH%E(UWVh%87<%eSdi}-7S2&6zt)t2j<{4ekQKcipRE}v^@poP??!`OIm zL?bDVi1p9~ufEHDN-_#)=k^uKr5yNpkZPYU)H4XKKidc%`DUI?f6xT~z19Ej=613|zP?k6P@syY%Bsc=M2B{54bQ8zTFuWGN=78Ofjdq3 zUI*KropFo?_GJVLG)`1P%_`>Tyfj)5M0FoPHhjKbd<6Rl_OE}3tSb~0jNjgo+vyc! zmj34rJh!r^AF??)7aQ*^@62KASNY*5b6Ar@LmAoKZR2%*Qi*4|8PBYheyon8wU=`) z(|^9|-{1M)4`KdI&G5m4A32YVYYxn_^-wnnU_Qk%Zq(vsJEi*O*e$92?wNr{?t_&* zV+$lOej`td7}%Gx!9#SEk|8x(c#ldvZN$9-GtB8EpH~p8?eCj+ddvq}FuXSz> z{TC`G8fXOfzk5{bCnJ{;R&R^k`5(j$xaMWx->)w;2x{6-5mFvYy3;(gF(_^NXv?AT z_eA{np#L4&*uq82aDBaz~!iIAkZRKL0Vo{O_%RJfHcPN^6r&FqHqEycrO~< z*i$~eK|a}VBSy9yZtv)UqKz{_*aLoIQd88YB zwIBYYRX$ER7I^{t^?N^Z>EQA10%ZlLdF734ea z-*9p@oS%BkRN@@lSNVFF`!}s#meQ@B2!8b z>oJ3WSL)SYV^KEm(bfGfb`L9WCUwo1^h<~>3PzsBc(XI5z+v6dH9_lzz1lrz;cg(XZZ&j* z3yK;-ioyNkkOJoJ!Fk)QiX-29g1dD~VdA?(>P8);Z__7-pV5i6u;bG^g-qD8rc543x=sb4K;|@!$B4 z_5Ms}oP)G?97>J`LlD{H9M2Vybjj3Yakmu)C;vT*d4FaxUoB|*uU>9h^()1lxF%18 z+9cPs^`%qg?43;qTlRjM&Tq^wA2a8ha4!^~hSeu09=jt#l?|3!2Y@CpS8X6ioK)HQc7K2p&{XU8G-q?PeAq?%?wnIVu zE|Eg*9NAh;vHe=!L`nU-3B9a>DvhR3Wf~d$=g8yl4s`7TgaX5P-Hp<;1Kh9#&%eDV z;FtN2a|Ur%!b#4mzuCx|*>XC;S-#JRu6$+}2j)HHf0zlGS5E7JP@XGRy9!)KcHC${|C z!Tb4lHSJvkQ|q|FZ)8OEfg{UFZ<<_)rY8)i#)LPN2(I-M$1V&`Lv+rUpRBGt{`b6-%l4i_5 zpO`#&GMA)h#=hem)&691(XX(pWSj7#W5w?4H(T$%xsRTSvROe9UOrx&RqHO@OD(rDmf*y zuU|SdEv!QvWwO-UB^GP?r0w&>_DoEUU+6!LuTGVw;{jK<4imRZE)&jltA2uq|ghbcAsRgOSaYSyIcRT3gkO!t00G(!@OPY$dINx>q`qZ;%@nlljAdnZq|` z&$h1GD4i}{xMBah@kYFjviWyK>@Im_TU4U^z^KL5`pD$UZ@a!)75DXHqH$pebPV^= zJYOAurKC9U3u-95#RKB?*TPb;A9h&C|EY!&q#pQYVjw+q`Zo)kGjpBCpjN4>ja0GO z{H??6Ds!U5bp|!hR=lsvym^rJM4d~f8`KGnmvt>y;N?ueP=>Ku%-`u2jR2$=wX`g; zAWN;0LAqF9x)qv!5@I4nvu0eS?*$Qf5IQUKW_Zx^)%R7`(GaOxUA~c9vya@+E^M_C zrw`m`XCO_7KsoSZPb2T+FlR$hM_)7zILe`!$AZS%izf2lYs}@-QC0S3J3m*9qOZ>W zRfqhY-*nS1-g;Y)<{H=A&Jq+pm^zWtD*NDj5lw38Pyx;HF9?$pd9en*GNgc*J*lX+uXVi`4{B!e_0a*%R#wo03 zQq_Y8P=>SxjWHH-{5#Y*Xk~Y_bqPGnXe?q+JT8YV(e>E**PZM8puNH+|01Bjq*SLW zqDe^R@WAK?;}qY{+KB8}V?ES>xzeOx=hSx$l-LGj`{T#?&*}B3d!Fmw0AhWb>F(xT zOBF&MM~6w8TiT(7KS|hSY<7QX?V~0MyPmL=WK&v=p*2V4qwRd%e08f;H6ztjg7!dF zvdceE<;>zL4chroZ8hW@x>$B+p_;y5_*s$!MaJ~Hy`#b}%N<5h zPI&Oc1zo9M6ISlA#r+9_MrKtpnMu7hre^(N*LMI7o*sba6jBR>pZ75i`L}#}bX^4X zem=Otz0sIeazvqdicVJ~yD?ZJKHzfP>xM|ZgT0r=w8RXbYP}nt35#hSD=kF*-T$;;JHn~Od4JTCn8@c z@6qdxYT(=7dpZ4Wl38{C1&VjU;-Bk}_D-BDKI&zd;J+yW=7FF%NxD*heY|Dx*37!{ zB~P<|d~#`e*2t5Kv4uYB+#kI)wEvPCwXbA7d0{fxyo%o@)aw~-6wbQe$i{8iBPWpU2QFwv!@k^oSm2mc#^jr@O zOe6Fv6540mcOQs-?@t;MlQUXDzqx*{R6?;kQis4i=Q0oZ@paw2x)BMKUo&eJT+ z9#Je1fne-<)&PJIMF6kw4OXXe(a@6f`mw{M$(tl z=Cj=B{`g@(J3hOCP$S9dowtTfMXX|z!1rSN$jznPWe2TyAA1trMf$S)t8RnZF{avi z)2^h!V6T9Ivc|fm(uJ>03AX#2v()B(yj8lCk-%v6!?&vJ#?I??jiGHfQ=EV>mz8i4 zT|*JoUs6F_Jz^au1>%R_=J#qReF-(crS3B@8q}Bs%f#Acsv9o;2pP=qH}(q+p4?Ip zSs$nIcKEHGrgMLDYOk1KffsAy+tH64?+ytD3=DQhmyNWVo4jOGy0tm#P}?tSDQy3Y zp{8o(nQFhz(Z_b|U#|Hyi@fAh9#1Q3Kcv2r=kYvrs3Cu;a;JV!W^C|7oWp{o^{dmL zXOEJSO+<`Y@(bZMJgZw1MywG0zy0u99<7Rh>~IzZ4{K1-Fgr$9={k>p-Fv(e8b&LM z`@28*P_g;xJ-V6j{H%uAoxM*3JHtRbJ9mD^LGX-r7-c7Qh>jiaF<@diTnW5NF zfbRWq<9Y&vu*M0pqe`n`%nB#}>knunY}!rw%_T>yV=0K{JsHydL)pK9Bc*n>qbOY2c-Wi$Sejn4+YaVyZ`U8^#8{>(Z7}t zq%dPlf9J0|Lnr*^xKSK!5s7W0`i9BUd}ptth^geNhyHIm1C{9*(yyoKJ72^(jJ298 zCX*^$dlSEjrl{I1EJ-$dv%j5-y(MztIESMl*E^Csck#-YJog_v0uk}#?N5TQh~=_8BlCUY%9OG;PV@_`iB(CGh$D3 zZZiFxBgBIjV#SIYaxYxKk|eZ9Wz?9nIV2Xlg4j5%@7L3} zlhjGcLInc8ZLZ98u;df{dEOH5Gy6GHrZX&KE3XId>-9>?cR5U#U^%x%h1BT)Nw63-p>Uh>g(&}k zcMNw&du~3mkrsig7~47-1h3yJf%BLnJ*x#^ijh~}kOua8S%bSsdPfzV!A?yRuK3N> z>u+@az0Vg561Y>v$Sl8bi3I^_{N8s~|LVIe$3-XBjWppZ-(0=_zz!og${&+cUVi6R zuwLpR!Of9vkHM3tE=%LLRN6m5L@G~p+;d9Gy_{e%dk*y+`x8`D;5c`JjGXfOhmnGR zwBS}r{T~FXgW)j(_#`DO);KP)j3M}~4=u|Fbfr!z&?hfIa@Ts4l=<)%YHRXRqtEoIyIL?uhy#OR7kI}|) zzdx|i9-cS`Mh_>-s6Q!^L1?zHgCr0kA7YdX_yY{bWs|y|<~*qYmZDi2U-T!w=tpW? z(GRh%m`hmA|028pC9RWJfw{r^yPa$>GD6J z*&OBCnCl6R_Kw>GT-%_!rVAk4tNr&70Lpr4;6xvO4TGkCyTgW_yV7H`GUuQ0J0aVU zk0#VnMJw~cR;%8HC#-j$V0BPW(Mn`wC)nVEgb9c0O6%aiu=^i}E9R2V$2*9+NzkV|ghlgUK$A0CsgOI@9qF z$dkM-;hR@U`px-KxbHHdrGG;G2^$sibuBjp9N8b;=_5MsBTvXFJ!gu(TdiB~spz`- zx5OWiD7tO|ed(-GBe9ij#OXf86cR?(BLPI!j_E|EWBq#`&7RDGITog?ZK zA;0(fx)UqJBw15LFf-GgAeNJj(*6cn{!L-PMgU+g{2Z6-L-+s#-PBx{RP({7kum8J zZ67wQgRIDgZy_57s2q}9EBKwi<=nFqku7?FVWYqC1>3LZ^XTW~2sOCy{d;-gbI;v` zY$`joQB2BX=s2w-d=kOxLUMVPde~-hwz*k%6ke)n zc|a||oHp;g^FGg9rPO?7wRxAnwV~)>=ICj|Jh;YjSq8TmOA@K4chzdTz5JB8$y8B! zull+QMB%T{3}j?1uBRUd$~WR2%rn>}=UTQnr{v7{w|sxED81{0jQdX7oSDcR7Dh%! zr>4-Fr_ECZBDs9p)5USN#zrh>JQni%6hg%ZQaLkQ8DgoL=LalOgk@(fU_OYaU zFl?`t4AbAz8xa{(pRM83(8lfNF68Yv?HHGsC{!V=y!NKUe>NLEyAj()*BWf8aD&*k4bCYcY z4J-4ItC0<7=7?8pAB!ai3bQM62e~e{{5amh%gZayL{~>!^ObiDwO(YT=Bp6CurExV zU6Tg4{_o(`|A*kq8xhP75{INjGB6LtSY+|R)oND>_v$W*L93Rhd@)o^n)l$+xSwe* zBKmimZ6_VeYzItRGMeWNYx-l-dm`?_I2Py8Qt{Z{k;cP|6Gn^Xd{IA}tOpw+2n?ZvIV@QTjRWGOWafIQa&Q?;X$y_2me%G-y-4b2EwAjSU*#qEk4L?=${5r) zG<1UN>DODLjcoO%MqcG)T7Rpa*NaKp_rti5eWPlkk=jvCx3(c}`w{LI6}t|Vbb)67 zIziM=goOx8cV6@p{g8FPMgvQtsaCRAo(~(bfs#$i*hX8zc_WP|sBm_F$@(1f<%1~9 zY{eu`TCIeD^^=_0#z7~(nAAPNDH&nhlEY70U|MdASeaGnK%K;3N<;tM(XS%TDVZGy zW~XZzgP2k5&#piNV7il!&30 zE%vEx=&Zi@FS#(5jnS^J&@Srw0%}XsSg44jhEZ11^{TN43+^`Uob00&8|WiF25(DaB&@Fu5*<2r%GLP<&O0#TeaxV|pcLUS;L>tfK4 zrKicr76t|v1g_lw6*BAgJ=ShKvSmk^WkL3IUTL@a*2R?U@#woPj!fo4-wvRDZdv%b zC0U>^r^8z#cM$$=AWBLfgSYB>%OpAWZi{1YOoqS}>;9ycQt`nbccd}+&5q*ax_t5} zcn2YR%$+;$lgEVtsJO-){YQRb4j~rdlQCN$53fB2->Ws5K2!=<7lLvJEepkSd$kv5 z+^m8mr^dph*g>P1?&(kXPiAuexSL1IK5D*!GWaU#uK8}6JS7#)q@+@f=9%i}WMuw} zb6w6`Y<`lpdGlz9Pn|Z zN;EWQ3bkhN4v3favmQueH_JrCtI?tvvC4&W3cG@zZ2FZy%XH=Labz3?eFgQTU|RbN z+pqc?D6iPhkGC`q+F4k_HOrKQQn*{3^20=Ss=s-m-z}S(rncpt^IupQ@(4EOyK|q0 zZOs^&>dtY_00@>M%5?RkZHmpeuwTuExwr%Ye-drpR;k#$2ut`UIG2mHNy=LKzA zs9RjL=dM}y>uF~gN##*e+6+D1MI&cFQ%N9vEG?+ zaKrlQSW>L*fh#7Tx!6Zi4 zZ$UD7AFda|r6*}*2tY9#vxh&K%0*Z6ooq?DGMjhR)!q0pAF`VwcFpq^ zNyI96;VK#=3n7t3ob1^X^?G@4Et=9Q=Zyu5n(IWJ!C{%8t8Vm@OTs7<$)tmepS)C@ z_+Hwd3V<3ztOp*DN#1Zr>e(2c#p>R2xjoHKP1I-fcu}~; z=Lb-@9QTmlmmoCG5K-LQ!mRHabzg~~Ft)Z5ex{{j?1ilmVowa|-1Wm(*TK@6= z3|&$yM@r8F{2bAGK7?E*_q~@_jB{5{eNXl@^(Zy_XnJ%)R_;W)tgLK9Lhi(ZQ=Q?h zp!U+aIUCh0SAIx*v0aC>qjAB=Ua59pjM(ZWg8I2ZYU(%=e~NE@KbbXX+X51AP?%}B z1x&k<MJ=4{zQH7aefh#I-f1AEdMvSabk8D0)<&__#=cH8eVduPRS6f#e_v}i zB6-xK^2g`cnBzWt*t&V=v07t?`ER@C6)f{uo5~NyHar{)Yzvrr640G|`)B6898xmM zLuy#GA*mWr{|G;aW3(*n+GX0>kvdqo@dTOot5cF?^R62g^0TIh(B0r~?M z44D>_*JvyopxjCcBJi~AuI`S8`2hmtUcQb_741?!-b!FQ?#$fha&Vi~} zJF_YL2FbY5)EagyN!E=LZuy;9V`;MDos1sJ;ZLz7g>r1o7DMCIG-p%>7!SoY7D2{w zA}7w_xPehh+q!zgJUK|-Q4w+S>}~Y>rI_z-*ISDLwyUo+&DByN%QW9Pnej3vB|E#x z$ZP0>yDk3@lP?F@dy)JIWYWzlYv&J}(XTCE!916?LjG!?iBCU#{qY*(+_}a$<4Q?` zoG35v1`V{RB1NhRFI*Po2E;upT^2T60FvJ~;N!==dN#ctlkkSri-v~KrtN@BVuA&7 zg2l}ewjF%h8_R4u4_lP6%q}!hFH|}~wg2lKY0@+*8des0uQ&(#54unZ;N!d6@x3^^ z?fPrHgVt5DSr+RXPH_%ehdS3$!o~J%LhLny<`ldb8t*+Y(O|R%@yO!o_Px<5P9oXE zuI!@)ws-rJYMjIeGZU_xVoBK9cGB@Y!sE&vcmcuo6UL*czSgD!%OuUNokhA~!tmHR zU+a|d*Xwd-u?YW9JcgM?ryqmYgz+>BsACJm?t`N70$F1fLm`5;``JYA;;t`*Z^@qP z5On?`m}Ap?69Bc(UmwTOk!GDBi(q8*xTbOdg|V^{gK*fKO~%EUF|W1tT4AQ$7N?E0 zkjk9N*~h=G_75*F2MULGwEe25wSA$lY#}PhIi=~oo@EYd)ViL(G^)9%7ct@qe$nY3+;r`oxtcKA;uhMAS@8v6;+ z`~9iU0dt?>sj*)%k(+3`i?8j&p4bSON);_Dop&>yI=3R|nag`mEGh^L3|19rjV_gN z5-pPdb~paNhCAqdLS6Ru$=!x3dtq2dQH}J$yz&6 z1iJzl`)S2F7@ov~6hIUN`m{AQsKFCDS8FYm3Y@i?pRU8QIH0E~cy~ZG7wO_d@Yf-z zKs9JpW}VxT=bW**0~uNe4sgh6NKtBBQS((8Q*$=t+?xmO7iY!2wc%2F%fjs7;AGEA2eWO$-}{8$B|;CJ&GR35nqW&_aI&newtGn;Oh~GX~Q6j==$Y zRrmdE%Z5yITda@Ur^I3VP2ic|y-`t7kGvH58WN5gIycG`p5D1W|4ko$6NBD{KoIsa z)fa|DopZm~3{I!T!mi8WK0mwN1UxO4cckXZcF1Ql-CW5j@7=Y8nmP@6#5Q7eZeaVB zr9$qYZ;tip9F#+2!2S@y{s?V4h49snSN8ZnJ}n;J9bDP1FlC-X1Q$1|el%t=+QK zENQSq-PUgCO@nbdzpv@Ve8>(@2W<`HxqKMKA@RMsrY7&ncJAESrpfHPJ>TDBWt#Ju zwAt+1MC>>-XR2bGHf}6Biu&m&Xmd5SKe>T<7T*N?vui7eb{L2${s)8+W5|c7!6x zk`Iz_IjXCQHSSa+=rjUd~o`YIxV;@K9oy#DTezvbpoGeSI6Ue31SCPcT}Elo(Pv4=)u6 zQjZ8~W?R%}EDUt~%3u7ID1MiNmibKC?62>74gLMe%JPyn2F`9lrjtNZ1 zja#g61(SYYT?S)26(P7PbpQmz1Kj<;zC*u3f zD$NUgDkf6GgfcM(W@fW3H5bWgw$zhNTwM( znQ|eAQ_16WcE9)5Xx}>I2qygy3PZtg<#V4HuRfIZu{$=>OQ1M(#Ozw9&KzBeFI&$v zsICvEgnEWVzblxkJIv(0h#;a5l7q-D_jxu`B%^ZZyuH1h)N3HLScjlu6%gH|JEgFV zxqKTls^=pHsV0=D<7luX@4ponpMwnkkcZx#U+HmBPQEL_w~n=d`UP9VZ(z`yoP5Y0V0>#(EdGtF1<4^d#mLVnEWZV9W4cL>83;=p? zjd5Lif^$Y6f%NV6Nm8==og%6k=+jWp-9PiO*~lE*N0gO z!TOjG6=HJ^{|4qD=SS!I_vru=`<9GA?F&B4fgd?~&E66r>dzwR^yES7AaI4fM&sBdL% zQEZJ#I6QiOdcG-VW69i2|FYF3|D$Z+gh)?8LD*3DX?AvY_~n=Hgbut9`~x(W=f&=! zq`drsu}?M-fP$Vq^2%z6Mg5Q4`$uf=DT{lICAo0HD|`X~+%?amlGpu7IvyYNZZa}n z1XUv!@`i>>Pp)cRImOZ$u`j6TA>es|jMs!Igr5&az4-%M4M86SJAjO>#J!;j(O2?X z7v^Jmr@7RyQ;g<$v=Rp0;;zN8cfHod0sVyHDb$9)f2a342SNR?aWoS6tdI3{JelaN zWMq3H&SogVB;AE>rQ?4UQes?yaK5)q;Pvm1Tm>l+vwEB9wfDj&V?Dv4KUIMP0? z+LjU>v5q3^iYLWh*;w-CNTf2f_S1BQ9sh*z!xRpm!`w47Gbb?UI(PE%b(Im8#q`R? zV2IP@e|7gobVjsq5)UD@pPC;mNL(x}EuFdVyvxqg_6OCCGdFcFmgs%iFS7i%98#pEVxyJH=Lmyr2y%-FB)`IR-ZQFy8*>gmYqC+X zxhOZ9v8piP(53g6$tiDy92~g>fHJE)`#aVu559dm ziWl?#^h=035Zkn>D%I4f0;)z=pP{SCfAnQ^kUZyo(5$43_?!a4>;qO#syuu6$8t`a98uED2In8mVX0fVq)S+ zBO{~BM~`Mi)Nx&okAjPtMd~g*Th`JyemCyrA=Z8z{pyBSm0U;*y?Cqbg24)?4uf+r zEyeB(UHvDX3V5^QJ2W)kj_&d3z&nJ7?gJ8vdBk77h$T_erPYCKnCP$_(B|a#F5L_} z;Q46fSF1l@3xI|CQDMQ`(>_acj(3)z+w;8q%=>o4zR zri)A)kIuO{IKh<>bCF4KGb>cfjf=c(NUO zAGD@?VChuh=!J|$AI8wwZHar&lZJQrC!20)qq%h^8qRF|w@8uM*I}XTLz)^gGLNtx zrX83kW2kd>mD8tydGg=Am16f$-H<@x)T6=W{4<&jYn>q4j^f^>&Xj)7f4ka+Z2`V*9&96&JP>z; z9i|rTV#|4VV0BAH8Nj#96x;}t8pjtbNm3j<|8YukZeOS&WY+~%%4=EVVL|fN)5_?0 z$G_P(3=bSl`t$1*6)Wc<>GE@Zk;uNvw`t&;M{}~`NGtUXF%%9Sx&)gUSn;h+>42SL z_|+hCc*x*fh54$^z#t)hSTkQ&E@`cLtcXSy$jUfl!O9=(I}Pmnlv>Zb!ffoZji~}f zihBF?>d51FGJ7P$Q2lszueK;)p)sjCQk7ZZ9tA`BS+#N}r30(KTKRwEClV0k(0A<%IC>yeSf3!fMhWWAV_tQD1~D++}5_>-R=+N#QpsCeR|3l}aZY-Rp= zm)#XA%inIR{Vn0`*a~O!PgY)$g*B_{fEK7FGpcAWpBvu}V&Z3GYQ1XRJ&usnP^jr` z?bscswInAF=T2epGo6Qow?P`fsSr=I=7TW(822*X#vrC(m3}KcD&B)zOyEBd?N2=H zdoU(qW)l;uSBp6KK*>KQ1eumw6)*n$pEd3 z-$l~1mc+|D!ljbVNVzm5>z-cbU(r*r%~6SuOjgz4^-(yV;w_^xa$#=3$(o*!EJMKZ zKaTj2uCf>^PnWxBK)C_vO1E;yK4Jf(`}syscUN)=!x&*vxI zu@zBnQ&ZEi@$pk3K?#v>whHDKVPQ=+p%;7B)*dmNkTsEsyZ;hVqV~g@+>Uh@iR2Ao zgf)9QRn}b8L0Gq$oV1PsSuy0&6Wt_U6i0@$oUrUZ6o+qr;N`W1e60)mrr1b2@h^mQ zz@OaMz39iI*02&Zbu-;9trKh^1`{CGBb!nMc#Ik%ttKeIi9=8f&AC};`H6EpC=P3b zz>{kiD|!H2<4=5WXq6GGXGCp9j&`C7#@&oKs6OP` zjHM;m5XL0LWHsVSPH&{)18Gs+xr_MM2pe#T;7es2#&|ET*o&1Pa6@n?>gG?p#D?u_ z6R?tsP2`(a!xEVru{NRdnBz*V;cgU(~ zT3HHs5r~)(-7gWyn+C|vIK;t~CR8$>gRzRszrsWyv7T4v{I=Rmv^Rh~DpVq?!l`I# zZKTz&ArDlnHLu7wFj+v%fBtg$b3EQa%xg(u^+b-v^ZfKX>=GTgX4cI<6};KU_WKR2 z*l$#b69AZqGQ4~ebVuQf6aKFaOS2J}wQxZ}oZf=kl9+b@;5El5ZX}!l#>&0*Jf*K> zMtsuc{9AmU`!P1nx0;;1Xbo$P62F6oL*)V_13M0^4pG4*0?}poZX!BylHcklHWe_h zt$?(Cwqd6Y$5CkS6UPx_NJ*cyy-M9pjMoV)Ekya+@)DcW_99^vT}sjaPT(rDZB z?};HHTo`k1d6jDXjk9^WVirxAub)4>We4o@5I!Ap zX(N_|R-FIKhuv6`j@!4A5W|Z7K<&5KLEVaA^&M#aM&FxWTb!R@MU{~gSi|!M=p2|7 zK0~BssPfNti%f}ynVKB82s#bJG@ZVj#RcOc#Vt>6u^XT4KV2IxjJdkRXoMfqRNaeg zqyJw63okzSD8hKq23!%agoHH9Av*;s$QdPf5?0(R82bjgmQ zcaSSbscwz6tm2c=tP&Ekc9)oV78Ef1!?K_pETX_#Y=S{2sYg4Whwvr5TCm%kf|5S*suDqlS@wANW3r~W z3JdF#^fu@ZdPr}6;%?VoLNa=uaBghiM(~pAE)m2~9HUE70Dau6PbyOw{HLG0f0}S% zG7@bNT^45`>p`$lY}&6EaaA?4V0=NaQkHs~8FAkizX z95jNuF_TvY{_+i8m5fZd9ok?nlUb8l!zGKOCA7C#k!T0|01P+J8EM8$7T3)*wYHOu zZPWpaDJ79Q1Q8aiFozsvI*&(#f}YtUdP1HB;X{!(KGtr&cdFc3O6c}GfsFQw*Wwlf zxB#D}fx=HYz)4a?hi_iCRoFhNXCeUGJUip~&?VdCYKgCipg4o#HX=*0SCG_ACt*L# zihap5^j22z3AE-dYb8Rr!1GEIo72zF)TMR#v04u%)!+hrVG(!~N3@GynlF-*gj9#= z_DOivqh+{o*Dmg?j_CQ9c8F&~9|!%X58h3!1x>lF)G6wo@0BlVJ2VjNwqo>)hq+)_ zk8|$dgAn+<4?f3cXl$zA$X>jALC&WCiE*o*ws`lgrDhp+4-(Rx;ENzz<_6ds)(w=$ z0CW6I)4WaxO;Rbi<6cyMcvjj_Ovd2T96${D+6@1M*H50w`Hc^g^!ltZ|LPD=1~DYS zm=B$8sble9T60|legqf)^8Kha`=+J`d~zz!My6EpH1FoS zXQaupr;M~81M1c)udV<*h&&6}*^oQB3|wd!G4YUsGP8x&sP<%VSO&LptQtE!RPF|M zm)z>pMlmfKMmBk@ZC^^KbD!VM;C&7HSr^!hr&>5QZHm1! zCbO-3W=qvE==#Ywo4t@sE6ejVmHugn`))ee5F(ophBHRGIdhM;_l!&R#pSiW%9+!# zy$?z_+$bv;+4xs%nb4A1-n19w0`2;qmnauBRQiAm*BbHu2y$mp`{ICRGQZ^A`a8xj z7@JmgAdp({S$@NTokYul&=8C(Xo0J@&PF<(m-x39jSNN-cYbPI2$Kug889`)eJz$- z;*RRmU2{Xu!)ayqhWJBp6YILo^c*#1$zeD$HXe~2S=mT#AU|WRC<@bA;$z$~8B@!D zRz^nViskSr+fPA(^WW`FK#ck2qmaI}!jqrH*Bsy=FHuWVJZ-u~N=m@8$L;U!w)-#VFBH z&RYfVoY^h~z#GMg&w7dw=S=i_0U~kUGcf~PRJ~`cvqn~XAzn4Z+#qY4k@zoz;np^{ zNIBNkyaBaFqUg>v-@V@|l`R18hql}|tBi9Hv}>W}+&nNlVUfLEd%j+!w>OM4V0!G< zwZW_jmL<{_b3n<0COXOuMt*8yqOc_MhB*sgjanb>n!zmI=${nG=wn$N&KKPL`W9hS z*a+XxbdDSYmCzT|G>=tNs{+p-v0|zBSdx#>bD=07MyPQ7>QoR#RQ&Y`Y)$sSCspsv z{22Sxp5n;Xnw$kQo4M_~1_Qh@DZn!g`kD4r!ZWgn+CGP%kn#PID#v9Y^~nPi&Gk>dwJaO4d-yI;e^yvY!2dZI-=!C`{&qYJy?i zv+0N3Z2$0tVv|B_JwSHYv}Yz49}f%+!1mo;gp_jZr#fqLwo)?*^aYIh5>88h8tMmE z-&{IHAO-x&hmKhegI5vALeFR8o+p+$K)oKkCB!JwQ$7 zOSr9Yr~>Wj9+mu&jxW8lVk1SIZMK6}Mz-~Yx?DR1I>+rAV$O3hF?+!4O6sZ*O&yv) zqJLhKf>Nm9n=-N~oGNL+(Mi84xap}L`&}w)IG~k*+fUwCa#k_m8AK^D3w5&EBNdik ze4DQj5A$>nr~pzRAgX{q)iZ9?&uAm@{R5e!rT0%YS@npw)n0dd|G!8-yfN0@{kTng z<^_qMylC(BTlpV1unYA>gb7|v?X1`1q-CqMO=%2#|NhSRhB#70=@7wR_EZp>DPT#O z=c-d$dz+{3+ukzmDs}xLkd`QEKqywN75XAA81Nt~8y%ZW$nh&bhR3wQdmJc9DLsPk z875CpPj5|a(?0fdpJn|oZ}aSsJa|{B3$U7tXBIuu1HraID34a?bW>+-iS%rb;) zaoTHxD(2`hTN718T=3{}W8TFAaU*sYUZZKz=y1;OZtlim`{pS*vd({Znx~j*r_`RjHJ@=#{VA)>dq1hl9X`1o zsT7{DGC;~jK6JM)gXQ$O?r-1c@anDYOy=mdfUL>SCnXpN=Bq&9XF8_OyxQ*=WcYP3 z4DB+n!YopczS#5*BWDF!xW^>pWjkb>w-fONTVm~p#wy!<7Q1}N%tw=qY$US1_F7DA z$>@vMn=53>sg?S*lqT{#g2?uSP|!I7Q{kA0IOB{1WYyz7HeIT%sycGRXN!2>ui@BT zGxGgTwI0;d%h?4m6Hf(IWVgRQg9dt@8355_)WvK;!jq0KCI zv2ez%!nry&y|wr@+?y+tmDy?6-eNhfr*#<9q#`h70&aiv3csuv%g_3BRV$h=$+81_ zf}9e9iwpY!E;uMUsn~VW)O7T=a>DAgD(rEjo(K3^5>hV4slF~LCMmdd-AgKH^O3rZ z-N@d0+48I@Vq!Bl3LQfI41Ou+CO$Bw@%E>u;>9OSY_oGSiCd9%SFN;!Dh97gYYvxj zr*gX%4Wc6DdhV-jp$S)xghJr>V;+1dR3UL&l?Z~#vTvv()`lzFdfKA5L42k=sI75u zrfX)*i8Cy7^g99->`8Ewn5ebv+8b$1M3R(T)612V(rInSQog-Amdm)8Ie@e|HXzt}_+R=sGwi%5|Dpz(u zHZ-3ww^W!-L-^X;sc1>$YbUudqzr}``5(rseVg=qdwSfC=v9Au%JAj-^hn3U>b4Sh zza7pyO^Q}B1A=YaizKaqHz2(%-h20>N;Vt3{$-U_3})#@=Agu2^zwPWAtl``pCgE^ z5W$|Nr1ZNt@)=-}_L19zch@^h^xyfPk{*Y5Kn%mdgMC?(TE;!%7k5;qzs#y2w0d-^ z0lfM^i5GJ6amGW3_8`^0Yw>gl&pgpTYjUP9*bGVUVw0~-c{`R&QptMpp1D~8Ji?ON z5+yqBsn|AMxKo^HeLYl=g0X>E2eD**LlFa7hJ+duaB=b~bp|}kK2<@{Rp@Rv7DVzT zDJdx*BI&fB1th%t5F!vX|1>8=EJEtu5V_Nks$8+svH3M8SQUA{{P>3aLMe0Q|5XT* zV#N=7AJ9KP2o%xTTZ z94-)T`>4Tu^ym6&I*vgdSY>l&CO7mYrE zn-aO9u^eoNUP5zsT<&QgmiKU$@ZdYmnIlaz$uCozRi-|ILl&1|7|WQ z8pkS>4j`F$E|PtmSByXcDJObxQ+R{L*&O5I_hH{B55o`!BrI5VnH)Jt^`XIBhZj0c z`T+kb#35nU1${IUX8rYzAV(aNq_6A;t&Kmv5@eQle;#ULZe~WSI`}xx{jt4Rf8t8D z;TUu_FeA>pIvtsyNN%x9mvm<4z-rRl(-ov>T?7_ zP{m}^@x^$$<5kUB3jj7xjZBjT=*8IICWKWcTo7}pd{wH?g{jyOb3h%pUQXtgN>ZXs z=u>xf$TPz~M-lXeg5I*f_u@01FWyyp=EdS*?vE`_kN;{pEs!==k=otrLdkDZ#h_B~ zY{%iHTn}hGvJXVq=s;*DQH1rWp%n46XV6|MdumWSO2q{3A-Toco7uwsS+cd+1PACQ z`58vQf8Qh3J`@nJ8At=53mqso_LS2bL76zMwh1ahu?cW(cQu znlCjwebESvFfYY5Z^Ey=UlE z!@{<(?9sPm5wrdlIo$r%-xbI@X+=JOWwXqa$~p)|Of7B1@w*(BoQqwu#XK%Zl`S#x zK18H9u?&35pZK)Ki;sQ;%Cr>^YAOWm{9Kf?SZM!ANk#hz=9`h-JnM(MExF5Lik3vQ zJfX2zS$8QebELS;3uELaUKwYOGccpHj`tFx>n4iQ3zz!s{el}Nw`|yDbJuVDoBOz& zTleIhutnLq0gIeS!3>xQP{7r^aB+RS*%?ssx7 zhs#8-FX;@2hc*(g8Dt#tf;XTiz*V)yGP0B-9mM~UU1U?FXJoXU5|lK==XKti>)l~o zTj?(x@w5?UI1INOrVMQfAQoM#%=wqPPw`M*I3yeWj-RLqbJU0}4-4ZqgzFHkeRBTn znwpwqblJm6v4w%BTvjxQVE2L%yT_{|2FKVJcdss9bl8mB@KXO|c2|~hyQ%+nul8u= zhqNG6XKW@$16;JZYKB=igFn%*8E&SuBhk$(a|OENijYM6M|uzRtFUHBT0a$#Gsjgb zt7T~pGc`8j;4+Szk8A58^HXRQH3!~H$gzLO_Ahz=%Xwad=_@kgf=2%zgTXeYxj7Qxv$gQYs z+#XpIb#cI6LRs9oNt8!ibGPQCU%OAI?L^b9m*a$KBiK143N&i)df$#j0A^B+J6bjeX3>eJi_0ECX+s85#j!t{B3MX zz=&Jw{6s^q8DjpIL*d(}v+sSJHiipSG^!o(vI4GSPH9U?UAqF5FLr8N@Ihh=M9JzH zkOEs27o2;(^+)^F_wSl+i&pomBMBQp4slmNu)b6^>B>6byD73?9b3F>H^TNw)p^X3 zmdUOoS2gi&i>k;~3HaCT0ARQ^;44o70vV@nt7=eK#zv11PRLrawTSd zD8f|Pm1Q(Jc$F4Jhos@ zlT)%m*=;z+BAf5#`2c_Sb9^h^HuOypl$*(S=%4+CrP(+)=hWK(QIK4SfB9{;M{)qI0-+>>2q%3_W^IRR_zhn{|xWoC**kzY2cyrC}L7ail-{3wIhry27aU&*Kxh74l6ul zQt_D^E7sqlIkJvBF)#^q%ekdHs;F`?wXBzGN z%G#lIfY5-n+6D#Luxef-wMvn?UA85oESrXio{F~dW{`+EL}=edU=Z!at9#3!zc}*a ze(~DYCHBeo^0Q*b$;nG5l3?wLlIei|4owL^b$e@WG)Dj-nuNe3zoMOc{;ktS{TxeU z{w6zP{fw{4&$Gvi3DVvRP==Tk6tNi(_AUw{xZ?Vep0^vYQJ{@Zg!=hTl-EI4*iHPm z&F5CpIKc2IC<2xI6P!idl3o5vl*VI(o>O{d%nPy-Ha zfw`dbgo5&XNVYA}_aPsJ2oQi#4Z`PE_q(PXF@^ZNva z*rJ#>vR8?=XzgB@9ig48fKl@#avO6VJX7JPn_R1(a0Ka+5AVF}^I#)%b2&m{F7xh2 z;V>H-PpZgZ@F%Go;5EP1Z;tE-bqVMX{l5AuBIlq>2^hMrPFMaFZlffjCf7EaAiVMk z=rBPb2puMA1wv;$S~(~!4UVUX=rzdCmjdki3nMW(&`t-m4b!96vAYXB5`=6G%Q%to5qiQ)aLh#Zh)W)K#a zZ*ICPM_3A?2xr8Hf)N)va&Tq54DJI^lePEGng^6ecp%Dmj}9%-A;3dGR0uFZ9WiEB zB{?j~-_caic9wRKlaI1sEQqoNnQnda>yaM(|7e^ zbzuZ%bD7sm-IM@=)X`%eXU~9o^@j#EqTwbSAWPIagM02`;MtRBs@22aoxc-Z1dY%F_shYYvlKT_BugDE$ z+n&Du)eCKCW$4@92;uU42y&&inI_zk0zeyy-%569K`uBXDY*jCK^&VJpai{>I;xiX zC#&>D{@*Y-T*e&ND&insR27J2SUN>t08#B7&XX7E5@!M6zk^D=o)MNOC6z{09tUuU z`_|S$CT*@F%FYoE)8s5%<#lyx&EH#`cWLbsS%sP)7AKz$X#C9lGWEa654kWy`C{7p zCt@qc!Ic5fMXGWdtAJt;86dKi{t+Dk7Xm}yyaD0qK$o15pn$?GgD0_UPN3R$K%tqm z>Km+5ZRJFNVc)}IVo3`VL{GOSq9n4ESqq>l2q{rs1QH|l@3i3p)=0%CH<~->;8LZV zxw7nUt!-PMe1<_9Qo?M2~~#$FQ+)nZ)a9V zP_%bG^T8lkLv(=9MYvkk#&7VqH;>flq0pGGtgvs*4p!ug1wxC2txuCzED_2Nj9be+ zBxYLHSsWYUcfXbD`p6-E_j05X6t#~fj;KIdIjwh?i&(Tn#04D9y-R<0G%HI{wVwrX z^;efwBZ})Z0JVI|%oTN4cjgLh;qo&V8upZ{{tZT3AeM#!=lMeu{ZZ(hTz(MxA3R|QYuI-YoBbwMkn4_&CN*cp$&j5rJ)o(tK7!trlt zyIcde4+%tG^J&aA(2$E!vC%|hvU)lwznOvM4l8Z)C!S9SEUB8exAGeBxin}6bA16f zd8qmdj#kn3vFEKt$i^zGbytn90}Sd1ZA@sadPC#{@fe_uJ0PO)e&QDeF^aai+QBbyz))s5NhyTWW zrvIBI4cZ0)Bd-AUzY)`e6L=@4%YTY!pxQ4(#&VJM;)m4}3dzF>$qpJkML%2tz?mZU zh4qS&FK65nINk-AMMu6=A}DLMU5n*If_y)k=3hpVe`%n1maE>cChuDX>X zF9_4F9C?-NeIDW89YvudM@|8T{j*!~{)ia7!~O>;e;c)N{snlZvk#I9_h#4b1X+Kd zCPWs&FB^6fHSHcSQMRU?cQt~>YzIT;>+$+H$Khr3jnr@snI_U_azNhRgpVLVBbMYI zp5OzCS)luC&54QUge%^FC~QdNB`S6i62+7VIX+l5^RExVVv47Y3dx1}2w35vq;dzC za{D2@?hSOMMJa^gPTU6Y ze!NCo5XHfF;L-~dxFB^_I&ys%z#$7@qt<6;jx)a?6RLX%3c`p2KvaD`Np}AxK$y^f zje7BSld-B|M8f^Qeq(X~Ar%0t2rV!Z+eaOVLom0m{_fNDJ`RXGiLm^&ut9w~-eK<% zoO+A1~X38fZ`O>9TtGFG?$e6$z2Cwi_6w1faGqa!fGY!h`DyujHvhMvR=(WyPmyy6KePfXLe2;5CT2WCkF){h1#>imN1LnAf=H9 zwBPT`3$IQ@VHGyPL?W)&`9yXh=k|~Wwg$8Rl_K!FLQj##~Ar`+S+^)0QjSySi-f^J~d7)ZcTY;8Km+bV}u6Z z+LRJmY=jGZg?4{P;=i%t*%dHuMbZ3AAV%2pTIj?QA+dV^G0g)&4cTwx2wKzJK!#s) z;tVvco;?YQjy{t7!^E)Ujo9_t@yIIOei&w!cW63pD+I|b?{2fMU9%_|tgL>Dd&Sx; zi>SCLb0iy1Nm#KZ_#z}5F8O?E^%L+Kb2_dlI?~XJiP->yFZPOj8Ry{4dZ}N`^k#l; zbmx||Xt)S`TUU1zmPC5nG)@881lOIvUFa{0flc%!yT16>O-RBf*5;`AP7oQxrlM_Y zHUU5i91{9jF*0Ak;6YkiKZa~Ml9*l@np9ZrlKj-$yK{F6V4}{j>=HT$kzUYVgOw~1 zIc*(WOz~+vx_OZe)zvHwh6%Uf?O?){Xe51aX%|lY08ZBR)cLh89NK@7-V)1!tLGyy z9e)%E;YLo}A@&JeL=gLyo4k6DfMXWo&G_ci=Tx<@@Q&M$MSO*7M(FiiT<8To_xuI} ziS7w_ySw<>O-{I=CUmJXc}bX-&gyXi6r)a`DTIjpUh9T1bD$W7Mz^U~_LPTo#hVJl zR(=7UNMHg2-m_w0K8wM(@u}p;>$sn{WaujKVW3WVBZZNw(mg^>NyBmQ;8s!q`F8h4 z7W5>s4^PhSde$(IDmb7S&#xSHMUn4*$R(f0y!z(8zqCWo*mah?+1hYGozA*1UevtF z&iA#1sXAP*H8QuQUb{t(L8O%4^q_c^9z;2Y=vtmsZE*2?fQDLH=;58(S;AI!A=?se zCUTd>op%Y{Xy+DMU%B1O+xuN@34)m;P=whLU0o(t8F4wI=442$NW^C;uiH;`P4!G9 zYbBqmtFOd5;453mNA7B(u1wpWhSmb-Mw+SFEZM+}Nb5_?$xZhoUmr0oaIoD-!;HUr zZ4Wui4(6fS;;P{c4MX?lA2TVc$#cWqy?Rf>g}4^?No}`zX{zemUZA&ahdecHcqseT z&t=M^H}hXk)`|J2H^02L@Iy^eBl{}#pfphskj*}W3x6F`v<836&X!q&)!%d@YjO0s zj7q+QtoLbci(90xkA1B8zRiWP#64ew+vt@~ao3&rI=^$oYkft*=+H8;mtDcL1B+&3 z3*+&(d(@s!ag|+|R0=e5X$&-5OgU**?|oKPX`dRyQ=;*7K*x|Dveoq9JL||*Zi)R$ zLHU2!`s%PMw{36flvF}mTDqGB0@5WQ-5?Fp-5^SbNQY9=N_U5}fYhS9LAv3aYoD{v zKKFk2-^KF)>wV`ObIkFp61{4{&#b<6M?&N#5v6veKUU9YCq?%`jrR2iEG`_aw|q)4 zu3PQhe&%H#n?rQtXJI^+Qdx8_XZfm{n(jfGr@lR>+oN;oAt(x?v8TaO)lfp4NjEwO z+33UsakFf=mxB|v+w4{4s&?2uA&Riol;s!+uM~?}?LW&BRiO%0myZNBzW@Ee{$4rx za+Jk)S=$3FlWwP78UC&GI!yB%?&pJB`}+~n6oyZm`$!B4*%m}=WHvnY%!{H)Z~pG8 zBlReYH`9IlWG&3EvT_cmEV`@c_sL3y$jK5XXGU)>=SN*B)XIXl+ zJ?u>vl&3hSyp~?)E4{&alZ5GmhN`)P#ssPcQ+~e}-av(zQ}>~&(R zHxQ;DJ8_MsL#qSvgsP`>Li_T5@fLJ$fwNN=X~Wq! zqkPV3TI2K2{2MpFXw{tF^LvcgnJzR5^kMM7r5l;#mhRor7@hecXy0&lI4Wo=zE^)z z!(rhi>D)VJx$X14MnOIGD=)P&%;bPyUm}T>~q<2DEPW7k$v#V`2 zhUOM##cGlQ+!)aoI{T~LyQ8*>u$)Fy#X-x1j}P7*&ZeV5o@!c3jsIx@z|Bl-6{#O| z4fzlQV4iRkOmRzj0BjqdnfPOwUJLD8f(VC&qiFZ8ap2_HLp}SKyyNex^Y^){_Wak+ z`w{D7&Tv})deMWMlMx%ko$~Wi?WoQ}Wm==!^+ves7uf1J9v@E# z!5D;6rCP8m1R-C4t*qqIc`^Uv?hV&hp1T8oXZZ@fm%nH6nu2zB^4#i& z{wI&Kj~^9)IaTM8*Yga%oxmO;=7#nK#@#WwFv$ z2~wYX;->wNgBw7Uqx%HyQ49P5ZUMCJ><*U`EJs;<_X1F0S>k!J(Yw%SPZF^)61}kY z*2*iGtKOo1nPU6*6KvTplXtpIy3WqDf)7b`h6TW!Q;YFD3r6? zy!!7!`d>#Fw^H_2#;5JhIxDRHeP$ zk{r^rnTM-O3HNRae=qS6R?CU;@u&LDiI#@9k;#qYYB|lNB3JDC+2<~U z*VhG$2Qf7Kl-rdGEdvyNIgG0N@(ahQqB3d}lTn(f34HyMYIts`3iKG7&#!_seVw;C zx4Rk^Mdn3*tSmr!Qd<{s>=J1{P|ohM@$o0)Z|!lt51RCu4XU~uNaCu!6VHT_KROChGfBKI({YT4#E+i# z?8S#^_88uK8J1|@X>nh;^~@SLD=??GO1(iBwiWR5iYMs+WFD9t00L+tqmz?wZk`X4 zd+*@_l02CkiReFQ0ZdUSb(pJHW2+5PNGLw$$tPhwBZx&t2fbr2RTwEAEF0r%vxsl< zKgZ2~);QSRxQNdt9%j;f9v+4l^@%U$ugBLSZWB+vFRR&(3ygF1$!xw_Ehm_c8ua#5 zeO^;6ZPwoo+s>iyi}k@R=G931rdUoQ4^cF17=5tX4@|rdofIKG?;6{!NnmZZ-}}fj z#gZnv5|0RfN*f3-@6aeJcyME0HIkeO{C&z}d`&E6TS#i&O-Y#6N*Iz2^?59W!2}y? zand`G?MjZ)(ozn9NU!D5otO-;)Rx>S-S|F645$14b||&(;r?dzOBi`La4@NJ^QRU$ z7`JF6V9`;(@m8r4EQZPajwyeAa~^&*#WRGobvIs{bJ1%UE~o3{mkQ#!=o7XXEe$md zPlwa-xeR>XII%YR=eTFw?3V(9u3JmW{R8ivY=Om4s)o>%!U!L5f!<9P_4PW~E&Qic zN8!Ut^{Ta{JmN7EyPi?o;$c0cA;D;)kO&H$H3{pUrCA>B%P3fTKiVcFrKbA)hPeu+ z47@*Wb?>PyyD}e4=HjcFHZj<%9^mCD6{#1f7u^viwBLR_nYoZzw_lc5t(3(R10j$W z@h$fl{xY*qbOV?y*{vcMd%SsD(ILD55PKz9`JPh1C?`jN%+)xF%T0W<2;7fX zOet=r&G!05onF9fn=!p3bFuUMHn_6-toADm_qa)qfqu{1#mx;%dpgGdcJ;>)?=0q3 zJvOQ>b1b=XL8jMEY_A5GV5Iw=&%~WmWAXYNIA=w`;;z2OSf7COmZ@%7%n=pj;$LFj ze~$s_bh1@JuPUMQaI$C^6?S;(ul#h*JeElsWV zGFd{}e5a6=2?%|Pl0{yEvaq~bVM$t&k|>7`HmQe6`(t>7$xxi!*|KgtnqBVNs_t;w z+TJmUKJLDq;^J z)!vk_04!5LzPB?wQS7UkJ4wMie|gCLc-8}?yg|w=492_@t%&rV;U(P4jm zUuMJ?#)wJgFzxxo@0D*MH@)wY4&U6|TurzGSf_43S$siqSyXofAvWyw;s8)7VhTwj zX_6kXpBA?8$=v7hC)N!5)iJlP4u&7T``S&xBjkTYlB*d3XPVw!rD1ouLo+?l?Gj?t zLOI>0y$qbfIO~N{I;omfy%sB^6ZlliK1?uacDbEcbjg;B(mC^70Y~s>1sQHSw=l!& zy8arVV(OuXT=mHal|SPVKA$#q92VI8J;psA20am+12II7J;WAWV1d8k`+W@kfW%a5 zT4D6KNbs*ak`X#m_?&FL(|SMu$siZCi2F0!tq~L9%cbDe+ytef=0J<@>-p9OUZoeG z3WUwa+_L>Tjh zvz=qLA+U6}&c_MYi&4w{E0sQ|x!4u9t#=J+SQ3esJtPj1zUQ(nr<_0EosLTPviV;P zh>L3TG2K1Bx$G3;nq?zKOg^VAdPJCi=5f7v-NL z7PonJ3m|vfu<)^TpBcM}y8d)O$7|r={|=~Mlqsg%Dq4=gT;34l^ma$HRR^Pg$jkFY zy``{1G3M@~X;Y*VnHqb;1J+oei2ey|7v+p;`+(T*MPVk%Pw<@mgILb60Lsj1cIBA! z_`w>6zZJiq@^Rxsi~B=Iv1VDg4cm>Z@U<8ZS^`wi%S7jtZnHFTjb64+Zdf%f0ip}U zWo&3TT4@SwF}_(p)P(m_P|7iSb{18R8w(3xd*f=WVSi5lV*1K3xRo1xIBw+_Y zyZkER{vRh`8~7}fKtANfxONZ1dab!>>xDh&<6mdBOeD*izRzhzuH^hHmQU%MJyZSK z{pX{mdJv!Fq8-3mb#jH52yY-Q&+}_fyHOT=e5haiinYrnJK2_~jq>wetjxOGgOVWh zCU~Ue$K>@*TA^rpo$Nez@R0DiKgn{CX{L9k-X;+9J*EH$qQNT#y}pHBnh zA^7M%IMRQ^1cAt?PwEpm@0^^k*{$5&ua`RWC9WSyrE+H)l;=96_CuF8OeS^A^gYL7 z11`V=bOdzn9=BOLzOS|NW|ed~Y`}hcG>yjzXuzX>SC#sKneZJR?zP^eF3~^Oy9!O< zt26(6!;Xft>j>Z(50P>>X1Q&l;m)Q{eSUSX4vcH@`4&fUnHr(-Z0dPlcOz9L2?~Ik zY4LV!Q^$IwHn-9SfBO*Hx}8q{SsOx4Ts$QI@C^z5cam(95=8Mm^nF61S#RYmwVQ6T za5+~F%Zzfx6ipK)i?Z%BqVMlw{#D^C9%#!?Jrk-7FQ_T5e%7^ARbyE$Wm!SqU8fIu zWQGyfb=xY;1L5Wo+ru%N;}Fl(Z}d~h!wDqqG3wx}zDmRJ!Yai>)NZ2m9gkZu9hL!;72(#*u=QKr!lK{P5EC5{Bh*vZIgQ!S4`O8V#mIm-|Whs||l^1>wf$=jg? zJyqwUtLiBOU2kpO>xY|HkLlCjz1-K{PT{iPwN6N=0f{gPuk=&N6yF$$LAE%0N%1$c z{O@x^3q11+3>OZC(SUj%W`0DDM7Il=MZEnAMny=#2T4ViwF8jd&QxCq-No>*FX3+* z;*w2FCJT5+BtzWY1~Yk@C)=;e1o-!woIUaD?g_a4rn-n%$iuZ}-t>3GX0okM7-qD9`Xs z;Z1=Y?Yx>jSZbY4!`TquqMjk21JKec*2=RrbB}fHgPr`%02@TUqEja@FD0j&y=(l} zDx}3@u%=(%nJ8W@sT>Z6k<#lWNpI0P9vjQ!-zy8Oe@f=Dd9$H2Kh$l@(+9QtZAWfnm({N4tHnB=BeLQ?90JVIq?{Onv!uGwk6^{5r>}Q98D-4rXg!7nltMT|v zs|J(p(kaP{)r;Q9lyTF^H;p~_(wR>b`v{vWgmdpGVEJaNJH_Rhzf253JmFDAQnT&L z3l3ru<(qcM&CE#8j764+kvnjQc^7H*9HWNNz{9xdB;$}&?P|PjmJA3=6n1qAo8S+E zKh^F}_}s!88PXz}?d_$p^?}uU>CdmE-SKc#_M<+3rg{2;ICTuM7;ZBZm!)**sO?UE zC2aA^cfEgR)*U$*2Y4#Yi3DRIeu0O1uoaj1dfhT@SlKB@N(=Tpagw)o zgM^6~r~^yT0nfu|O5d$SWE1?fSXw!-p9er-G5*`(Tj8#OaJsg@8>Uv71xno@Y&Oyd)T!Ik-nVU8nR3fyUy`2RCP6%Fs(}k*>PC1@#COMnb*? zjb$kkIZSXdTlb8L-3T9#i%z_aLjdik+rQX3a?C2fmHHp9%O8rGL#_9r)xkia8rr>wA!HZRl-jwu*;_Ijv6HFN-e?IGif9Zm;9or=7x;aa{U5u$v%PaO zmAl>}oie~1W8d5kc8v%j;JbTp^um7LoRyv=ZX{-)^8&J-4mb+x79g=LlEl7_>dIlg z>wT(6K0T!OYkV2dQ-24rbl^vv8YjqgT*tVce^8O;lOsqU9)O%POwJk z&(qN{UM|n~c|tD~N&Hl8EC=t|uCSZC8kDbFPpg-Y?@q3#_8&@kA)amK^RtEtY@R&T zk`Ax)Z~WY~T|~V!_Z2HD2@VL91+Lcy!6s}k?hvP&72 zz>4mi$HVs3JVJ~xp1=Rry-uvU?rxP&&m1rSW;1ATmF=4^X zl;Jw59k)P3W-qhY@7YJ2gjp|R0FO{3dw&z_S8w@E9QOV;ls^TSI>C4`|AGs*U<=v& zS;aX>-{bMTG&bL-nz?T{e^5f$1ny$w+phhp(qz@62v6?h74IDQ2n$*sx7?qVPc5)> zsLKLv&W_Fy2~wH~i9UgSS`Izt(((Euz@dHatC!;cXV-h$vL zeV(@aTF-(JMmv7dxEPPKLyJxVTWckFg!s1KH-7%wE+utL(1Pk-0^LLM8w$_YbO;Eq zvrY#{7q5ohc}se7qx?_O79&pu(wi`;xA_Q&*lQ*SW>22h_zZ6C!ddN_=T?hM zEBE)4VdZeEKIa*czPp39SC>5z*vU$eeZ|be18 zz%C74w!l@!dn8+XOSzX7V_7KVb@b#q4K%5`siy6FS3sb-{{Zpcgfow}HNp1^3S3fw|C091>v29l>X)eiwC1qSDjhixFYja%R2+7r1fs~scJ5Wy;sJ+y zrWmbKH}?&L{lv000mwk3kPw&9&3v=Bh0;}Yq1Bu8Rxt2c2kDF#TcE%`GgYKI0S(Av3;z zBAh*2jgL_!yl}3mX$|=sw^m~KywgpToLSgtC#@l4T2RHGuRR-A&?L zU=!kPjCTyWQ*?BH5~@ewDBOOGy#Jjynw=8!spbZbr6~NcXY&L>tu- z&Ijr2W=6*1MC!e+kNBb0YG8W3HKbf2})&_?p0-RfLzwd6VnOWr`>?sQyjClGT7D6ASWDMaRn6Mfx_ z$96&z3*Je|F^!;d(KO2e~>X|O%p9btA5gE28z_UihSgwprs{9;3-CPY0JS&XMm z?~UNQ+>Iy&vY9hf6q&(EaaAPlOy#1=IPfhpQoV<=AZq=e3|)==;%tRILR^>`KG-Ha zrcXZH2V&w$iFT}3V6)K=;>EFw78x`KvZRe-01!1s$XzpscIbZ@~y5Q5j z8Lpaz+p81vxjM&VaDD8WTwMdxX-3nY$d4tPs0h!$IMS2C54~&?DCffvotg&A`|p*7 zfe1~DcLEA@gI8qml%4AI{LyZE)2d*cgfsGmo3EA;Hv`F*<#l&YU9uH|MZ}yXfgx;h z-@gM-!Bkl1`X?@O759ow?-^LpZHLxR#IaE~7&&K*mgH(EcU@R#j%Di{|Fec+`wI4l zIU~egUn>Wdh_2`QZ>U0pAQvVtE^b_+w6M6)O7Zlakuv_$VX47It65)6#h)}!Yrh$BaRA^I+gesg_c9`*BW-qY+h&DA%Su= zD;ie=At&hwU@EJ73D8aM-L%q@l27y+oT@FFbW~T!Cp!ushpyYNPR-DLryLqk`8xt! z;+*$M;oVTpO!ST1%{2$WJ7A}Z9SVW#e2;Z%D;mw-cFI_Ef}u`umY^gmoBZ3-F$C@z z+6k{d_$!A2?39|}Lau5daAdTa0-@r+qv8datu1Q)<{mZXZrU`#~9H2YCjOxgSB<(WR2~o$u ze)CBg87=s3=){@_IF{tFQtWwIKlz_R{0=o4*HT#y_&af6iXL_0$3^4)HlCO4DH
6jwR|6>e#%2hg@a;DSbGP#ox<*@4tTO zzZRu8V*Hr@OComHvF3`?U8~pHs)eWsa=9)M!8EPkD?vKzn-=CXZERxV5I98Iqh7!E zRNLZIq5#2EQZa`+bFZvY`<&fSyTVOER0QjyVl(j86N~bkp9EURJ;x+s&FRf}PUch* zA(puG5s=GAA-6y8Tq+8c)A?0_GhW3{(K~ud%m9AM+3r^kd#DIwH%}_jboWT5$z0Xf zqFfH)MLx{!!?|1iW7e50NBMFN4 z_E$>4R7~hp4=UX~8oW6Z~r-sti={ zs)=4nvNrF%j%l8Sa7z;{NmKhl>^cHwvtq+Bago_go~S2=6J=}Gn#|ZIh;v#SIWWHX znLv@0*w>gfl(6mW*H*Ff<4w=vmw9bPqVGkv^-n%L$K>xT;jY*fXx5<%9Rxt?3t(|+ zA(sJb>YTs`rMrfML$8L$SWHSP^!9Q!=C~6Z@-zG?Q?7gx>sXF7_Vz+^qsu;YVnC0; zn~Q^9w_i1R&nAL^<@nx+WN2h0$)MTG(|=B0Nl9stApsJK=Xtc!oyigB7)Y&^%}j-# zUb-+1Q0O0dDuP8xsK2_Wz1C8auE3mH4(T_z9b|*`L9cm42wfs|R{nnBa1ufm9UcK~@djE&}1+QFzEN5NUPpjG}7?Ykp z^ga_w)153z~@wqSnAU z>_xZ*gr;Cmls|+%6tzelk6K3NQ2c#FeUeZxiI#ko3QhLP4_#ROxaV5_cYl+8_dNE~ zy&66;vo^b8QSl4f)`14jKZIc(A#kqY>;Yna&3@wzvSf4RF`X(Kq-PynF03Vw&2f;` znK}ZlKqKijL&}D4XMu{~m!Ka4w^fdeO-|}c64l>_Zk2$Uqng8m0#gvp$K-|%}- z_+bBPJ`!o83v5B3C(+to3^GdFAU*L8Ajj6LW1SKUE4*7z&FQo)c8lFu+J*`uat4aM zc2;_repAQ{9dAvc=5giOxf|1*nY`wEJ~ZVlwTI>@Kqkx?`0UKDsI>IN=Ub;m@;wvx zykSO9=Yyz3%JeU9L@w#~u8? zu-RJ`<)Gsif{Y4V1+=IL9@s}h-4s)+cR5q6K9fUt&2o6yQ%Mq(R*0NGSY^B-%OGKG z&~Pzcd}K@t-k&#Gg5N^@h-Ma{*C{-6d=aH-_VwCyimAUy@`4Z0Q9uGO@NVP7g(U$3yVN?CLJsoFE*qOQN3bDP3$ z6#B$1fZgcfPdJOZpxd6-6{suJgv= z=MP{Wgwz@K8Mu#%9lp2co3-Uy9$^E`OC_)>Te$!F%QwBn_(iD3X<aSY(b|mw*#i8<@Y4diE*W)Ng46!6fD0*RjdFI+J6o7jwhIMkLf4(*a>79RMe3V zb*IcZ3T~1Goby@jtJX!M1vZGT&dUAgnGp=+jW3S}*ak4zntpAOpTeP^gHZE1H6@kz zRJi8HIWeL;ciUd~rS}Q|dly?4BBf`!Qs{~5%y9na_F}Xzp54sA$idFe2FkJpiGbXe zG9C}Qf0}K@$8?XCkL2}>M36cXH4wX=O!|iwIWq2V;ve zQ21RMuX*~KfG)fOjD&VNt704*nh=*(cov1sMdkPQ`(q>w z0*`CrOk&YS2CB-XgT})Hf%Hfsj^{->mI7HbNQ8RXLEJ?WBPXJgVWEF!^t|`0zl^ZX ztX;O)*Db&Qa<}!e1)(Vo&HjTITTU7g#INZOG4&8FCgqk1w93j0Rk23T=4QXv;WfEt zKp7I*vlKEzuWi~GNvfiIuietk?UHCfAinBm^TX8`VsaNu((;&-{rBzn@9ROBSfdmr z;~jknT$XZ!@@F3|#Uk}TZwxm5qEHduHAp{v@S`5gV;UsZnd-%g-V$sO@!j?t6`&%e zzMd9By+tt=dmI8sA@V{)epBWPy3=;m@VgnGIf~zxJ2zngV@*?&9t@(8-dXsL!v2=!bg23IuIp5wCKl&JsY5yZj{RySf=$@>0tV21B)nIJ zF~NWt8C?lRF{dBluin)WsqA^Zbv6q;8I8;Iw!TwV>tZ(?eB^^BiEJKR8SCNg*087R z#b(!2&bdlM65i!%U*Y}ah2w2SECz>$;)Y+$=#-{jXsD|f*5}IfuDmQv6xPsw-ZVdDP>rq`Ej}Q?e`!Wx955?@KMVeM@H(T>X*$uyGU1Exp zUx%BvBh>NGdKk4ElvUymPa*}x}`y-(}MZWo5 zwkfj+2gKb>1zFyk)62uF$`MigNk<>Z%0^;m81{wj%JlaX-S;9V_kO`QgNY8{`x-fR za^4v>zbxNXLW`QN8T0oMx z8jOF@*x4w5gTQV54U1EpsErF|V$}~yI{p>baSTE;h9BOopFMB|{2|EdFI0PoV~GK~ zz5OCMn2j2x`bF^9q`_DM#mk0Knh58Zrn&e@_moo8n;%aSbt$^g{4!Dh}02K)Q`@{rb~qs&b}0s zfGzX=;&)@mvcQX2?ThzcPRHcgstvxi|LW;LH%EqF^89He5sYssPL$ z*Z`*ko zaN5}FjAC{ocJZ|+%(Wt{r9I_MK73_4;98$qtE38M!P<7DA#e9Kfs3Yc`IRl+uD0MP zFOu+u&^`3O?tUeSs8xitw9#)73-B(9==ho2?xQ)9&cut}mwp%J(*GRQBNgQ0P`^&_ z(fNI4JCek$EPaL<<^uMvP5&oG@{fdpM}_Do9-P8B>?GZ54*mRg&O-`s|DYRCn7-Kk z0Q2ylwBhon;D@|qwm_H6k76-?WFy%ULKr~IyKtdKU#2;kGVQuI#Dn+g;_9uNi z*|DN5!i!vCUm$DS;&sfI`Vct&rtHq|ap0Dw`-_cRT0u$bR0NnM(GBkc<$@>MSAS!D z3ffqmKP9;7Sw%~G@((piqh?g?-zjKMFQ!`WCw9T}J&Y`xRJjKyV2EJ#GGd6S@25^b z36vJHQ+&O&NUm6~9yB<#`v7=<{qarGP2r8hFy9~pfMf_98hlMp39`HG<-a|O?)^xs z5VHY#_NxECX9uVHzYd4-C&q0nH^(&W`Ev<$%?C5XqQ&Be8pal5%aU%DRKNI zj>nD=mtIpT5uYD?R~W1m#DX>ZTRf(ZBB&Ml3=NN}lGoRGx4>YkOrHdbJS9fp;!1bwR0RW-Fbh?s`Q70(kiltt;~K-Am}sEO!iA5ag8Kz80N=i@`m&91*B0LP zvg8lXkEf^fW?9vb)omQ6p(|_U7h#ZFD$dw>!;z|yN|UjH_-_2xr|^PfxT3l~<6h@` zR`bHcNodU?e*85w&$oi8h}sM|Y^T5fp7|Bar3?3p0GW*Q01l22;E(x?PV$K^TC$~5o+Xb1kSfQX9%#sNqR^SHaZlvFP z>lzr)scrtIf44L15P+T@!k#@m?oUX#CKr`T?Z9`7n<%WA7`G-d`gvgh2-cgvJrplIyjQ}Lh3cUCsf$eeV9`_QPZ z7?0SXAzHmql&RQeBE2G*&mseI$fW(lq|ik(1darY6!4U5D8QBHD4{z`Q0aS$@YPy^ zqlU@IGQKyk=Hw}qXdS%y9&F#Roj>VJE!e@^d5G23Ux@BEZpPD#RT8{vcWoIx6t);z zS_6G?&IusT%2dc4APFo8a~E;#qma2}(zxA5zd{RHxfM0xGhcAny}=|#pn={mz6tWb znzOUhx!iQt|2YDL5E7(EkTprLH5zLT%nqcNno8NRY}W>lxL8u?FpXLW`3gd9=al;s zPw$}9Wml|F8chW++op>jWGB8Ko_Bp{q+6_%|8$p<8(srXOl;<>>I4W1-fnu6d5-M| z4I+qFm!8$2Y>&JcvHfHeGbI_Q>gpmO>Fc;lGHE-#-ANi1W^i&0k*S#>eBuXlrY_ z|7XrN;BZG#_zeu%GUDkmzezYg?G&34pZ`22LHh#qPvJ?^T(iOQ@`wBN6Bn((#P0xrh%tuf>V`o=@rFr~;JPX%}IPmV&uf5yA=A4MS9z zMvo(?BcftmJ9|{SeeN;yZqYOf#RQ;InnG$p9>ebZmxh0f?;1YbZJXGXC z{tWrKg1upZzu}m_9|e>RUUnP8W89{UA$o#}a4eYgbBP5z(Fb5un!5XO@JlX_i38}E zr0DygUFDUzgZ||HSUW1@Px`OMX%O~oIN{0=K8hu;t!)52M=;}Nx$||sS#&?QE_22d zFLSWN;c z_&$O{#+>rbE~tN&q{i4IxnBoNPXe%lIu#a0#yv)v?p7%tz7KbiZVqs3;UdTWHU+b9 zPW?%t7<>OPGPm!~F{c4)-=xs6J;w%@zm-BsDl;{L{vfhPDV||49d%r`>7{y@{him* ze2Z-KESglHLY8OTy-YSZ79R8>@Zn54#eX%VD2|>|^*+}VE>B0cJ0$y(G9#NJ{I)yI%>)aomeGJoB&Bs623G2wKHwfnLEnoeV4M-sn% zG}X-RY^u;#8=V@5mpfU3_X& z4o^rV#oV2dNEjqhCBm?(cdYFwG27nA99OycIiysIH7tN>;YbXH|Gi6B537R&kr+EW zqSQ9>PJAD!6YXS5N<0{Gh?PjcJ?3vkB;hRGnDef=I^FW78bx=+ACyRAn*Ks{6!7a8 z4PD2h$qV6!!$O)LbnRJNfXsMOl!A%??Z0Sf#zm$v_P&6i4BfGuU#y>#!Iyp%qnku3 z^@JQiu>#LS0;n-9gR?fW*qX$QM9&9CrO8+tzuCS-q41KC_yK+v&{3BlYTTCd+Mw}0 zd-k^+&i5O{<>nQ`#;OH79AP_n9(W@c5ni)E7q7K7FH%LMV+^HgtoM2CC-BG8J8*mclEsF0l z3ElHCp4sA9%T_UlO9;6I{OTvkGJQ{Q=pA42W};Lq@zA%SNYTvTbL{0a)o4G`!H~c= zeq?)DGkmK`WK8ORGQ^jbKD@>?vu0BE_rCfU>iIHTgn_XhCApL%^*!2fO=xH+`4?!M zH2KU@EXfrXyl8?K|27`7LYCy!mkQp?Nfy%Bl`@hfI2wLr_TJGK2UpK4ebn1L z#}85%%O#8X>TRmJ#v2*GBs}8F2#LSYi8rI#h;3}THG|{M zRxck-R&3Fs9Y}xoPgqXC^hC9>7`Cc-RMWshgOF}2FQmxaCi+qZ1@2oc@+BG?zos&g z3azuKhh$OGP~6vOvZvsfDtV4cDb|)7EF-1d<(t;^mTZWpPw*MRocS0@4PVEj({@K< z3`GxTa(xm(J{Jeav4!tZjZ@#8!I`^6CgrvcvSS#nQLPeJg*vAd@iqq}b#alF{1T1m#hRIab{bl3c%}NywCiQD2TCBw>Hf{&cU5gukx>K-yvJ)(e&*{NR>QDD^ zxEI5cSFToC ze)0#?gc5L?U!sZ`WtEA&3bA9=uXyCEzgLTZjQJ}}u?AFyp1`Od_0AaeF%eyoDtp3O+7ppOTs3%P zd}FZ}HI6HsA4bF!Lg4Jyz2`Gg5nzyf%pUVWz3e7wE^`T420tQ{6Fx>ViG8U;mpm>UD!e^i z81aNgl1QbPz%2va*?fG=gpqYH4l09 z$|-2=130kdcL%dhkz(*du`-5AkBPfmjR2(h@4&d+MECP0qI?rDb{Xz`j#y}O8C~vPMrQLr#`|T!@X@uK2AS#p9 z-p6s1PAQ#%KGVZQ@9Btiset%JgEL<3R^$NKB=dA6f00eV;D+0Y0q7ZvllJ*5UUDgk zJ#pMfvEbclKh3aF7g%Y-MV5TD8a|~1D;_VVEEux{)ST3D{1Pj4n_JiD3riW2#;7E6 zAF{vNT3agYHJ|=2-w>qmdkAhSsqt(M>*G5dOu*-3 zjOW-*{CV8J^J|2Tk55{#kgK*;Q2$=-m*%zYm@N9{VC<3awTxA5nL(DC-=%71d1>5j zOXqr8pW%RNr?XkHq8#8e+UC!I|Ax%9QvH|tD^x>Rrup2 z4P3isK8+P)b-eyjB@@6{)-o5LAQ&0c56ux3QTxB9o|IA}<4kf&og@*@O}6osXgNa5{>19K;l?1&Ng+``0a zo-d&yRGcMzB%bPOHJ}GcL7!HmMU;58{O{hU0^}Gj{FD0_EoR;6TT}!md|J$JMTLp3 z4NnJDTgj+J8f;cGUPm!@zX@hA-3rSZN!+COr{W1$p)_Qyh>xW-ZtKSPqsx~0`rvXM zuupuxvVlGr2SD?P3zUzKdLHTafyy|%Z5B27Nf;m=nK?}di#@2NyRYnwzX$gXv+>$q z-d`8)Ejo{gaQfX|{-m=DWq;HoPCA^E%fn&I2s%Oc`1WzO6fe5FsdqR388I$;}khnS#K*&x0(%~CL%QM ze^1sVaNM|fH$3o)U;<_D95L^$92mn08)K2v@``t;+S&C7Yj;%6tFk7vS1%!bT>QkS z_L9s)H=Lc)9y2n|c1<`z7R7)30(3ZxwR27wjd5dRBe~=HxSUK z1CYsUWq`U9bp(W?_Z?Q0Vb1Kl>towt#zD@;C{>q)-xAku{ZXoNhK`Odj0fi;hq*_PD*_$pOwlS;M9LBsC*5k88yHk67!puuza|n+oxe)FiEQ0 zqr#+Qx=PeE*q+z??VqIQ^f4V!R#gkeUpxSzuFW8W+(sARnw82v&^3PnO)tE*L^}{H zE}0M5F`({M@!2BOTDT^IdpbPg1=NPE*fCdk8|WQz@C2k}U$-c1y>;#BtC1vHq8CK{ ze`K9yK$ZK}?TJOnqFcI4TDn1EkAVlVv$!6++LQkSTtF;V##dmUsOdh& zIE3RrNUff_vdR^g)8{~+^QX0asw~vDhz&hp?kMkgxr@>5F3D}Tc?+R5{iM|Rsc+gT z*DiDNqc<<}j+3j;w6sbFmD%33w|vVx4~Oe@?w99$CUW4 zNu|pFb@Olcnu>d`vP?ZgHd&<`<#%P_Bwl$#Yv&_V<6HCJkm9kCi)Lp}wx&$a5|efK zkGHlT;(Ldvb7Se)NbfE~H0yWJ44Ot`cwcsrP0Gcier}BOSOaUVSjs*Sg`yW+d1L92 zl_E5_lqT#}3|T(~EwkW^`Vtgz@c7HiZ$duS(g!MJELp?kO*z4#x&WP-Mc z%7Zc~NTGV6o@|(yJVPKKg=+^LIr#k?b%`pe%a885G64k<;@9y=y^qt&q4A?c600$C zD0P32@OSk;rA;PFdu-q_PL?Qa46cR$uo-qgyqyL8jdB!st}dAcd*L^ScZ6FrLyRR< zlS_+sUOrG1_&RXy=wo4rL)fwX{#9KX7?Qz7ZC1SL26-V0QhZt1G*=IYQ%c z5g{Uv(2a#qzgaLH$nqXcn#ehg3vEET(iHVBL9U&%B-1TYLdD*v3xjz8NL;fMGv^X7 z5mq3=r@BKL+}1(L0^LI9cu#>nZy+#RJIaB@kXs4wTP!UW^Xp)1O(Jw=^tSb{N*%=W zG>*JW9Qrj{IIMc*o!LH_$@o0v_%%T2qcz(e@B1vht@GD#*e5=8p5kz<37m0m>w4d(}f%y~7DT?Vc>3g(?0|7(~F@mJ8$M5#Gt zI5rw=-ljJoTGkspVCzQx8W|nbj_FL>#{|I+7s61PXP%|I^?S>_jx!F-_zwjf|{ zm$+Bm-u80=m;UIk4)3=#RMzI%0cKyo3W~t0>~cUcI`ZX9 zQFD3&ucx-R^j$^&cP;#haq1SBUzA!9@3TYue1xG=1>sP{YoW3#r+&kaEiDq8NN2Od ziI3$hxVP`Zt)}yx!V;X9mARH?eopjL{et-gbk*pI=V6X> z;va`-W_o9fn}f6O0Yt!Y2Q`PyW52O;$5$8d1S)5<&FGCN@&8P0yxuD&K;(yZF2Z_K zOI?R^VuSr{N`c9SUGn~NL)-}OoFv;+%Vr^``u=34wx4QmcRZELl(XJu^i}A^c*Env z-g#;Cmf!&awTV0#n#h<6fOZL1e`)c#~)oegO+^k+TyPV&U^>*@ytu>yE zAv)8i(uiUR?8BS4vBiqhfunN2ZW;QqsuP33mb6UQU5h`!I4g&_IdZ2=ZB)|7V`@}&C@fY(&Uc|{`d3S zb%nmk9$H>MSHGPFZO7R7h<< z3W(Zn+kiHDGxO)@#1FVu>G!ImLlJ?C<47@9f7l$y2W0Onw^bi2{$gPm+M6u;uuUC8 zIrht)c8z$Xn?a`w;g<#Oa~{1wE9|dg80QYZ0zVHE8oUFO%iNvdmwj+mw8X4n?6cJe zb)1XAuTfU)jlo#nJ@4^kknqR@D3-ZqJHlC1H2+#-*jEn++s|rafKJb6nF<|QUvDkZ z8sCHT^7rZQ>0#xkp{o#)?9>-;2dAd!>EFKFdYK}`b8&! zXXj*J(+M}bKNxTws%No|1Haco%X9*0|H5Wo#d4b!5rV&~tZx5`aB9|hkOOLE*&owj zI8q|QNwI4_0>#8Wx@Z70FDjEy6uxWXC79Fn%%B&T^Rtm3K9EPc43xacRpO(o?BuaK?s3M>|5>1Nl%%un} z2dN1*IN@Po=W!=;uoJfEevMh}YX^HPdKUysOK!{+;0>h6Smt}9kz^#4eS=bmki@}s zj27j*FtOvjx&u9?2RMpz^AGyFEt%U;wgKV5#inGN5`TQ#nOL9`#{I zM`e#;h8Vo@U$gwBNS}5QiFViTeuE|Jk+udzOP9n<|La}1pYKQn2A{H>G(!yu50!# zw_P+?e0HaB2aZ$rW0T8t(A4I)=_VLu1m1mWXrSt+j}@cC73dqZ&GGw%l8Cl9=WDx@ zaVS4wN2#g6I}V)wf^&}DJco!Yvk(smBlz+wa*%PU!ElLRnmis~7FcxnF(J-?!nBN+ z?2X;T6;KQt`p%AjX+~FB$e9490i>(DXXs~o_Scey{2TqT&K|)ukC7O=R`~8CZ~NAo zqOm7;jc*5<{QloM-mwt!Z;h^46>g6a*C}ITFRZZ-AZwa7PcWS`;6czX&y7+V$1tqM z;Wt2#zJ;9E&sYvWjz++S+!bLT&l-)@k5k)IFVw2HQ_%0^?Bq0H+Z&jS315%s%$Amx zrKCT+ea=Qao-k%20xR(h8{T7!l;QD|&cG4n?? zqoBBtLtAJ=X_i6ilJUF|M$F@~)*XXk$CX;k14nKW)l8*;fkvP5#uu>e1aeI z)`|Zs=2CLHYDRx`i1T6d508;j_M|(`j--@))MHv|)d$0SJrJ5CoE^w{P0C?}P0gmv zUj7WgH|C2xG$f|=T8{#b$Cem*3yt)IJ@#ld_2amvDcuTy=TGb6|V5$A!^H?!c?Z zZHqqpwF)h=YNaLum#5ro+76T72x?(B8-j`uE-Y37kSZT#_|p z87PLmnje4#&Eun5-CVSYlw#dn8~xR!H1=q|8Lm zZI~a(#$KI(hwL+~;p52OEB6j7OP2I#N%R4h1P(Bf8I;f9q7r(CBL0+KzzTWUNf{Lg zQJW*Ro+Kk?K(I18orAA?A!>F?+Hez5oyrV>bVBh-npFrGwNfoVkc zA)1AUjP?+uo0vioJKHW*RG?Ere$~Je*jbF#51gFcID!;tugx6Ms<~@<>f${Kto71p zAN3?7{8j3D7{gN|sF2&~9yV3%*C+u~z%_ z`u*9LPN5ijB5bSTk*RyH`MMmezFuMXUvJXWCBeRZqJbH8_Mt2aPnwQbGE6}F7j82O zCE0GbjUz6RepNpZ5~<%H9$gDLkT|_TnvIIfL`n>7O{K~cjupfn>;Skq7hfpG& zHe9wz9h9jpJiYiBQN`a7H}EFJh$(T!mm|(ytXZ*Hreyv` z-d$(j@Qcq5Bn#BmfvF_wtN0;B3>%~{-0vbPTI*Aw7IfU20``mohMWq&6OW>B!7>lL z#A00^*Ss?hp{r<7CmI$fobvr}8B}1Gj%YiITT_n0n`XUJ+EDcLo)peLsB+KwS?5iR zhnhBXy`(@WOtU>nl<}kWQAViOtjjlx-bV#kBkCWQCR|3< z8t0{hH{AQNgBpY3(ns|Rf0&!8uP*9gQ@zkoX4i|=1&JG6Ep%-g3{whCL4os6WK zrg)a9#S7m=r*hIODAp>Co!`ZN*v#8rNu(ZT+xoQpB{|V+5k_3CUvwSHCRIqI9&b85 zGeG@tpQLi-TjjvxW+H6%<&RbJN8}L@VG-*JRI9fc3Zld;9Pi5*_hu{*r28wYQdQIXBXE!RN50xuw{WQ$`nahU znmy+!tO?o)R6Ka%Fi%#g)$=Rpr+sTE%mW#p(@w(`*UPW~MKGeCa_i}64-N$F4dD4W z{&>&5W{QjY?aVtr6p_@N=RBp_koKK$gWDC^&(7~}9XMKhn@P~j(wg{aAt`*dI5u>c zFW51<5CU>Yt)3g>d4$p-ZK3sL2%(uTSY`%CNGO3|Fg$u zN0)@#=0Fo$FdgFnx;ipBeFn_CgRiK5P7Vu+5l>oHBa(^ft7{?psSmK-41-wM>JI*V zU>+9uO<{yZ*X@C`?6^q3@(Y{Ct+d;#mi~K#LxaJ{sAd4-8yO@*R7BsZtNV!ya5k-^ zH)7jk?5J%u(E9;7kx+@W!!X7Z8so(MM}cfib=Ge5WZuGfigeB6d@I%T?cUR0Equ0P zr$_wpl5-W#zzQ$AJ5`$4mh`3fJ7Gz`P-oo0$M2tQ7-`ZRFwBDs*!B{*yXqa>lR`?# z`woO6=)HdYDOO3RgXo82qyhK$0_HVNm9QfijM&%bG@n1mo$-@RXVpU8^jK1Ut}?bM z#7(e7(V$x-xq<`Mo9+%X#qD>0oT)G}AFeC!R2C{yzegM`eGEN>6tZ^)B58f~7(W>k z+?5${!jtzv)F_5g_lSqLet?IAz`((*aZMCJ9t`1jQov|B5hW!w3g2KUi8KqKSX}G; zN`SV(!tA_!2&4xV(8kV&$1kejqOLtN8ww-cep!TOq@%+af{OLX)3}od(*Fg{D^8l| z+%9qHMBccD(|JXdt2gwN_1p4cJQFlg4eNU%Csl{i;2%nuj$|C zNP6Jzuv~^bkM$Jl%=-ulJlWw8R!?u2c#Ccl+xFQ%k@vTj-r*jC_O<+P4CFHFgK!*J z@A|v}jMVIr{JO-%O`g4yCVHF@;NV$)jXK`tuB2aNH%EX8D~{nYLn8W7p6)g7D0Q6@ z{lPNwYag9wk|s4f&a?0pxYqvtS8c(eel&{gRrhJx=P!S)7XZO)%bIAQZ1wf$4+P|3 zX)Oz(^xU0ftYi1xP$~S#L{0l+ySMjm5IMJ*)TYpcyE#cdm5B06kdZ^}yHs!fy6+ze zcGSO<%VVUMe2)l+foj;*w=)FR9*A%=-j8JQ`tITJ!B1JQ<7Zdj8m+LgCd-_0?io#* zDuqLJ+eW63C%@(l>#bJDb>8_5$f4cK%VX_u5hYK*s+yM;`Q*JpkSLk()zsVcm2S%5 zm}S^7aRxL|Nsgh$cZOpAv|+pGvpe(E^JA;OZD>lVzWmkNCsW%@s_|THCY-XUXYrU9 z4-FNPHJ{snJ=-`rgI>M$B7W)bWP4%bH$$(vLhUnQW8IYGVG3)}7j0!KU=fuR^3^k? z)5w99YxQknl*l0+S>3d5<^6ZOI7)@bqX-2FFB+!S#>GxleqQjY9gQ~*-i|sCq!2&D znv1Kcg!DdDz@b0??kA<+ko=P`N67Bz@Ip*It zLI(%Jc%T)){ic%>1zsFJPR4?@sDh7Id{0JINx#=4%7X9mduE#4_XPT5s*lvP1g3sT zB)V?6Z~uc>;DR0q?=Y{^gk1BV7&lG0Yx2`7y9kmkW9X|YxP)2Xoq(wGw5>AwZfNt| zdp!D0fDGfc(Z#UKCX$;sGj`y_wYIi?k?U{F#84H~P33OdK3B6GUdejvx8paXZe?uS z`WXbAyvNFMGk>Dvk#J`@#<)SA$s&+2lD4}-Sf4zJDqBys{05Z3KcQzoi!+=S0x^0# zms>nPIM~aQBFs~Fjxz-bVTHIRg7^#hz;F?_JaMGj03LSmw1u z1lBuyFPf-`A!7w1{||47Rk}pk)X)MgJxMX!ILreF4dx^z$Q7JDEQ{CBt~W0TODq$S zVN4*z68LC%W~W`xi1M)-N>scpbh{i&V6Ma63+KM-^2TO$*EslnljZ+A_QT~{j63E5 zDN^pUXdmlA!5@Y4j9CMRnsl;__pO^GUMVdLY|hc|)bPIt-L3>($DWZ$KL{Py%b^>8 zDlPrn_)#(Nt)X5~1d500)NCiV1FOO(1#*w7efqOdL>=B6KXhapm_|R{?xby~gTw(L z(X*7jX}doU4oDuVh(fzdAu#4=IaYO;^fXUFv7|RgD9mwfA$qWtdXCY_=z0v4fFZcz zQK;n8-8hII=sHf^+*FWMrc!3|HohV06S=cnIm`M8RNcM58%Ofh86n|9FN?9oz{nx!5UAI!K(J9XQKosR_~5C4o*)u z>a?~Vu~O9rjXYf3@Om#&7QIXyEo`bXY`b@g_;xh*v~+;u$hZDt{uKdPliKU*arJF~ zdi947g{IcL9$6OiyCn3CdZXg(?B!PXdVJs?tsK+v`nbF|WZm=WZ0j9!cATk+cQlj_ z68ojc_7xaI0W@R?9O7Qa@3wP`K0bCUXTY3uy*~f5Sm>u8G%79|Oqr7A=tv6poi$mSh~jrJ;}N4t8*?aqG1(1LtuJ_a5tONfJ~PVeKc zK*Q$S5qg=4q3nDB<$i>H%R;vvJgP-m3uB!DP7)y#g4NC&l2Gfj&#WPG>g996i0F=L9+zmT6#$90tCu(>ceV_L$oZyVyuqmwz1 z5AujPg8)^xh9@#7l4wEr$fln8%_UHxA}D2;GQ;jjRJt@`8e}uOgC5?R-#{t}zKzvW zrT8tcGO-Oex2w6IgVxW1Qbl!)&F7%Ggk7p)dI7JtT_V@(~K0qvHfAVWP^u_#Weu^wMJM~}PH1KmzgyAa6JPiJM)fHF-Leyn-GH?g; z(Vv(jbY$JxY4o1-ie-!?Th*Zy$xwHpUmLjNDeb|*NJLgTyVG(3FkIwNX8&HWNR^yqg`@%;y**xw?h zPL8*DoXwl~vF`=uzSvRDQ(++I*Y%>+{v>U6F_z-@?DBoa;_N)@bC2K3ZJ0_)T;nkqt z$<)J$J`J_ngCU#yu};p_WM$&-`bIU~6dgqq&&t!?BxWOLG5wa;>?t1?re9?nvY*)c z(z0t$e0{4i^uE~?#wF);Uv#`HzSAgb-J@&t3>ZNwa@gJ zgw;;#R_NpTNGvB-!bm&P{(>K$;KIAa$NBRxY7Uhmv&xBy5%r_!UcPZLdU$kE0=gW= z=vD*P{Z|keizXg;uQVRDz5roweaZFJ{)Kl|32`;OSAILTaQ1kTkyEoAbqmI>piz=++x-kfg_~m+5JRZa8lc>Pm)o2}@-14iG>* z(|B!Rfd#B*2w|QS3xiMks4s{}LMc6|xqql;2yp!V{2kry(U=XM4+zc6pN~fnsEhHO zf0KZ9=qz=yC>dDs*2&fW+}o@315lYQ@V+=F;h*oHQ|9)~jGK<`eUTJO76SS=xGhs{ zuXwy0xYEQa|2ftMrO42*GBTdHN5u=h%sU0TTP2|XRYPpd{s`H>>h_)yegN4~@r0+D z79sgrc7wdWz@u!0rhhHo z|L>6Z3dpFF8kGn$C%PojpIk9zI3%2Nf9@pgcO&RT-DCZ2s|1Ql*8p`_pQYjJck#=3 z#wu~Hnft(!sSClX_+s!{0hVTIZ!eh$14faL`gD)9jwHZ_DPPTJOBx?{g=3>H`hz1u zGRIm;jz9jXlxwgh|Gc;ZB)nD#!zXnC7gY+~f)3%x^kTn$JOx1LhE1oe0)UB8HM1^5 z+fd8QO`^nbu66f*(vyn3d_eMYKc7J-{Opte`jD#H36r>)@#;b5Ke8wPW7dijhnpFv zLJ^1CvVZTgxPzy2;7@GQZT^^MNpQu4Q9cQyqOSAZ&11Z=U8#Vvg7IhL@?;`f=d7}~ zp@>PlG-&8Za|+c;YX#8CPk%e-SFR+1BZIQ9-- zm?RkqW<18kGmtPhJRCHTGr{EL3zofD(gLp6pFc^kZ1d57a7|+{N5j~gO%{gC2*4L4 zYTmnY-fJU23ZKsd)|&^(yd6nh32gNq-cssJYnJ~?yz*|Y^Yw0ia_Lm+d$-|M+T&EE za=I)^G!&OWrD-^+B|=Q}DKH>@p-X1>eyX7E4Ckci?c7_@A|DQKkUTY zpb&;Hb;fQ}o*)?CJaT1I``bNTd+Jkj zE;^kxGY|jTWH=Hltt3~ChTA_}v_G7^e|NiqesJ=2rrvhk%r()HAi`(ra(94G{~LTf z@v3GbIU{;v_<2CF%}MsDIUQrM>%v41~Vm9EnE|RhmF^el=P`hvC0~Lh&v) zgL@ESF4b&7#Yh^Ya?T{{I+xZpgld}xM(RLNr-k+>BU1Aiyy5YSQ+rUx$jt62JEa`m z(wKLOfZ^!gM)my5ybXEhyrfbW@OdK2YON_{cJaKawo;6u-vg*0>7J$9e>|8R(Nda9 zN>EQBqE2)bns%6D&fb$uD%2?IgFE%dSO*X(=UJsH!TF)p4lLP+R=Ko zuL-V=zm-2sX}_uRVwLHxUTv)*U7#B|R0f=FKITPz?)JQNoXL1662Fh@z{` zuh3#~ED6Y`W@5j-I^rj~dy#_8XC?B!~|N>*tJV4<{d~W3E>ZsNw9PG z6t!w`#V46CFA!uhEC2lY=>dLrHVNh1%(;Y+-x44tm;YM!i*L4Xm9(An9O@xg)&}5e z%~?HBQ^@fJYlH##`6VA^1~)Pan&YQeym(Ka9X)3Qv(FLW8a(nBb?v%yF$H-W8#96_ zk`l`kQy-AZlX2Mrd05hn!rs-s&#^K5LpV<`MBndTgPft6BQTE$Z}$Tu);U3p27~&m z`&rw-&1fy@WMN7mB2GE`czQ-pee$N2nDq8$%WU^*cw(eMt24r(Q&43hQYLH>KULan zQTb?xB>A+`kWqQ@xKp$!V4SM1&N*V8Xou$N)%}9&dFpZB!1ua!JyBTpt7`ok?VRRU zTI|Cql?ggTIx7mZ;A`gbL>Gd{_A1D~8M_CuT<6Z))ISf%poO}4B?IJKO5rV!2Q@53 zw*#_A9(5tC6fuxxZ(U3vAV?v=o=I!JC%7e2VK{gFli@zb#3$6lQy?F$w98v8>`X|e z)*?WSY6~J{$F+bjMRvH=xafq*m_CWMar;^|sMoboZdo#Dmx1U5L4q+HmmOVB$0WH4 z|Iia)X3EiY*pq^AI42x05{J%3)ER@rD%y6y^wZncBr)O{p@4n8%FQW-=afd*0zcO}ezdM)r1n>NH3ysH~zeHdDyMWacZRC(Ja>$V)z&Zc|fjw62 z`29CvK+@=jmEM9{7j2SLG?iYykNXk@k^pF*T@%ZUlt_Q5f*hEkYsfpfP;mg0Th{>X z8ZnKWHasgb4h~BJEl2K{h>tOBfI)6vGC8<3n|p1??=?CusxPg2Ydl6*pc1QTgC-5M z>3F{&@mrSepAR%P`q+-hOB=jIA2X8;;@~Qn?#1vPmL;TO9fp##gPD<8tSYaVSir56 z%%b2a9#+_>fy$Z~KPunMYd6U-Z(rSN5gz%&$JN!gg?@1V);&f_C$^a{9X@;hh%<7aePT3wV}WyE98$&nD? zeN3Q(cD#2S`enV5HbJ2XK6`HT^(ChSK+-X;0^6y9SLR@nuE`F#zlwKEkdW>W#)cTe zheZ(Yu*E=&OkvV7$MQX!*0Wd4aByYF7V#_-z!n6t&CAIi<=tI7y>8?{;Qk;0JfLFNMkj1>iu{$ifA)4*Nh9}WMtr2d~G zMFlTXAgqKbk*H&Bt+`~G3tc^60bcKl;IcAE_}hEXUR^v>ADrQOOF1UY(Guk)oq#xY zb(5#|;>8POJjCtq<-hlKB|t2;BH&JTh-5SgNseto4i7bI-ZS`-L^(6fgr|}Hht)3r zSz`hp@0pHbm0z`#5H*=0skPWa97eW|xz915r$^^^p45R!rTy#e?JYvW_wYDmf=^V8 z@M{R$C4^$DU}d^uD$)-}-ZZ1ZB-TS6>fsv}<7B37#mnIAr)n$OgX%SRm%W?ANovnQ zlZ9}v4p;gESX9qd59zb_fFHU5CK}K=S)?4zK0Y(y|ESg$iPG{y<1gAb;+48i!A|=9@ohfq074q` zx_aeyA|PnAhtQGa8jl01Y_zI7Db_mmwJ9N)kO~{^P;u6^uZZ76rEhbYX7R%TF6({~ zzJiY4^u?E7_2oM5%%P>_ZMrcZmEBr>`I#$0I2_*LvdP)#T>KGCxLG)v%rlI)-P#&% zRu@Yo3Pohl6$LkdW|uTBnTSj$j;MYsr?=yIL}M-L9<<#!2?M^QMfu|8E~+T}Y|y*? z6IXm!WRv12YBt-1k%R2(O2t?H!>7a_eXhWNPabT^w zl6ZN$1UN++)J6+im9Wjk^IQ|z@IV}R{-lj_xe7EMakxnHDx};V?+qWy8ydlYcw0mH zKRZxnXp_PaVXamF`Uub+funs7YnQoyUl3>zxBH>@E6kUsIt8IQ-ZBP3KkgN>WtkRbL>(Sd%AZmT)#ICOiCYWji4vz2{JLPvk&7XRMHy2&YtR>TzNz>UajYi2p z+FZc!N|jJYGVA!?<>(TOV^QO006Ihuc7^KOx|Iv??}7+HS|)clbi~S{eZOwFqVMCg zA~V#68Gk0nOfAjk!zQyE?Q2-k!8h*{D}dRJbj+uWR2}QLk`0`qWg~|$FpDX0Fq*GQ zf}tNAPE+!lw4Z3J}+^t79_TNP*$@K`R0EC&Zd09uNk!{=@ zs+|Av0sM!4EDQ&A0+ouDBzGC7)A9*iUBS{fi{O-_O;)9xQ+L`7<{=nZ|9FLP$ug znA%2f{TU=+2iVDbnBHL0DFkC^V(7v;V-o@RFF8Gkd>K;g@HS- z$er6XYVZQpia4HDndbWpeU6@+^FNc{l5rP8o#;moHIO@Q+6NR@RxF$>@wbygv`yJG zKJ96~>F6onHWQR@Rikdec(PUlP;GtZ){{CL7X&1sa@*jMtHId((2CIwOTdt0jDdAw zTQq$W{e!E|jthkLD*%rkP*tER4ui6@1JddijTUldYU+~|+3FWG+j z28FOKPQw$omuSs#+M`yY!*mp8KPCNVuUhfJj#|;A+S97x(J#|K(*%QB4EomWdPC~% z;?G4AI@`)VhH>M*@tYw)nJ5v297@W;*0RRlaZ5#8ACUYgQW=c~1)Wg!t$`b1p0t0z z#npzT`p|n*2ZPlnqK7ZFKP;Rr#tODqcd_-*X0bukY~c1As2Z5<0n+$90S^pIym$8; z26YTuweb{Vggwo^S8mRZKdIG0XLJqMj(CEiV{gDYE-nyEsttG$4Re-`P*9^ zTl9_mF`PXVKdOpp3JTFPQWs$V!L0bpLHi`lKnShZ%1RdRO%I*|B!gc>O-b5{7q#FB z!q;wv90pRAyr>Dn6Y{`8f~8ay^N*Ph;0Gp^l-?KVXW$~l6a>S#@d=J!EY4xC{-&uWem2!~@X@oX0Rwp;*aPTY zf_qe&cF@lCfp~iIk6@^?+sK^c*8f16c`*1?*Vx!WL$sNVsnO>Tg~L!7w|N)j@Pg@; zmB8V|r^el+@LePDqCvkGwDviP-A=QN`8(i!Yklvx(h8B9i&WL^27)=1QsimMx2I80 zd(N{R_W1R1Uiwh}lhXPhD*Q_mcpbV1J_feoqMAJfvPM8zsA^omTvG^-h)G!UQ$)s% z!Ba$Hk)6wMGJWlPyffi0t1~6F@(W500i9CNH0rU)<9sf1ri3fY%ef z)v2?ZhJkH;2zLk51j&<{VaptK85L<%V|vcZfzL6|QWbN9VGbS+^D?9e%|Q__Cj#1; zqVg#oRR1hIZuD1~Tz2L(M|hS2QuucJTdESz&7%)n_Bi38nQk@yB-M0YIr%8k?=B-T zKrPRe(rS+u(MA(EjL(e`oI~peUjTA(9d~qOaLa+y$SM8pbB=41+q%9O$~`=Z@GJb^ zH@&GGLtNZoKx>Ox6oJgxz!fL|#=Jm@bWhU7lGs>1s!oCX z$v{PoT?sqLyTV=;zh0T1>qV~!ZDJF0?kA49<55HJ;o{(kE}z_7f-`mDuDe7xla8h| zb_nB-P(*Ml9ru?X6Ky;q239_U)0or86WL!<6F@GXv*Jg5Yb*)67dR5fwXOd$;TSCz z&OG3dCJk&|w6a%Cb`k&WAG{@S{xTamdsro6Fr0Sz83ohv1vjq{SlRy?H8i#O0Q0$e zk%5kkT4J^>*vn)E_ADy#SklCu7o0lgBe$)fC>{gGnw)^-R+82xSl-5n9jXaI>L}q= zX5K%?$rrfs-v0+|8Zrg;coGJn)Zl-Ldj+@@x4R4NFoPl%+YNZ9W30ovhhv}@BWhLx zgz&@?Dbk}_&B#jKsK`NlRP743#27GC|8|eXl4d`V6ZkOni}R&wWNnk2C4MNPfV@WZ z(+j0F3M0fr2fUmUw=Re0SAxJ*%KqyEvFc<{8#5Lei zU~^mW^v_~rb$a~^ciP2DVc!k0HBf9oR}r)x#jwwbwiejyP$4JzUJiY%T^+@14q4=% zf3J_$ArMo5*kucs0_T2lKS#r$S2=MLf!dS!DQ4 zgKp{@XvtI;u5Qo|HiV)ry)x(gadwfzc_{kV8NlK~=%7a!Kh5Kf>qdk4wg+dUV)NU7 z45k0_4hJ;?QSD!`+snODO%nq+qtEQJQ9;ok0M<itU-+Zs)uZh%Q-X6@+)(8MSHPgMNj?CEaeO=y^wz5vOf8Bm+ zdx|0d_TFN$phr&E6Qi$d;gozkfK35g$b>x!T3EBmrSpK8y|*oTuQ z=+c|SYs7}*2LX(Vj~RYTgrwLIbLj)C(p3<*vBZ13m8>UL7c{37lvq5nrXi4~LV&80 zCDQQyP|s`*E4+AZjr)nGrPd-?><3b&g+6A24N)(7WYwI2IwPf-h#0BOsFsg^+S^bo zoQfqO4i7|cD-#L6NYEuFB<#_#^Kkl}FV}a-7V#vwjTN+#rE|4sxeLP=3&1EK_bcD^ z$XRu-Tm=u+_9zuZ$pcP*|W zkOh3Cc{S2Nad7BCUqa)5%8nfYNREG@gX(hta*R})Mb5}*WzNz&W4cPZBx5S`j^_Zw zO-Tby<5X`wkB9HyZh=0YWKr%rtpt$DT-#JRGff$bpX6DugF6Y#{pv3FXRA%;O6Pd> zcT~xQK%*x$F$NS_Vo_ABFyY4qY27>`Y>Hik-*8J<@&gj_jse6vgTiA%S{sXqV8gaJ z3H!b?jW`JWf5u^vehikX1FhVt%5@GFU}yecl5HT6&x2H0SY7?!{k{94F6rnZhW@pY zv)eAHSt!QF9NPhsx$#6kKqEK=iA0V{~O^Wx*I`4}tAogVE36*gfO{x$GGaU-8V5P(TJ56S{HLic# zwgh?9G{57(Ej&mouK0p|9$EbZFHtcRlX7K^nq15o;^W#WFNP0M4n6Crj(uxQjg9xK zXRO+r-*zxjw)}tDfAG<<<0&dV%uA8htnrnCAL<>bLOtgSpjq`~OJoyKx%ZfPewv&e zlIrI6oy>6lx1TC%pcCPD&-oILt%|(TLy`d`mLGqbvkzovhc)~~0CEasRSTOe6?P|` z3xUNcse%p~*fX)I&?UYM4j}g-`1l=aEMgEa4Zs5xo-KKqG>$VZ<`#wu03j0XHp0^% z%I~Oc^9VoJ%^d?7eI(+z{CkLWtUOYvP;D#owN(Fbi(7i`_gJo9v<|k8HlGY zlv=vaZ*z`>VRA>Q-gjrSmKnI8iF~=zebZ^8m~#1u>~KO6aZ#dlq@TLVtW5yI$R^6I z!tUWNeT)aq!E#C{C4#Mq=N%i>1 z3q6KI&xW&5&9wz-xeGq6)AvZ|$9gxySKceeb&X~6$H#ly(bLnBxKddqHfa3)BcsDQ z?sAGq+VS|;gC~lWuZnc1Elq1tS=@pR4>R>(CXKRa{Ovl9Y2}j&p4JU;c1RNI>Tg6j z6wT`^1h_(j_=Y+xj85oRxj4{3IH%;M&Cl~r`I5q z{uHAwQ^4_KJT&l%_kOl9xLO|WFDd6+-TFeyvb*5BgXXiLYvf3@U-!MX((wTt{*D8) ze3^#PgLEeK8y}1(jW8xa{`j2}+3dbO1c0ym0ncPE9PdbF$Q1}}fS+^FcuZuk;yvCB ziF!J3Z+%vu?s3*<1NH=pIF%!RpmNZ)-z*<)g6#Kk_hgOpBuXK^rG=raZ7?@NK(cvv z7{;cDYcN;$&v0r^aI_n%(uR&w2;3*yIv(c2aohto4Y(Z_P)L5hSSAI3z=8|V2Q5y-FVqagu&phbWwY<+jM@A+R50j+MB6 zxg-3@T%rFxIimm~gTO`K<$98(Yb0HtjiFRJ=}&X}um)i@xF=`Cg=BWcW6a8G*sCkh zp`(TaghsMqKTg)i{%bWfkd%->V@G&t<CDruN83~1zvs}TCIjoI-I!Ou_?nn@J0Hzk#QLzM!I?Z&3 zq1=c9N^A--!8lb&eN;Noo=MxhB?f7#vYJ#av9g)dOl=JXtv8DuNv~vT)MG9HIm8?2 z%o&+TnB1M6+=^+l3!sP@4AJB*0^#rDk{&(^+_sL7x&+>BZXgx==8MB*;&Tk7et>?K z#CTtE)1gQ)B4oC#uk)F4oKILF3s^{~I#t>fA3$mM;QKatobLs87tw1#8~yE|Cx3?X0nEA$?Payp|N&B0At@82r* ze_3Cx7~vd7a&+XjY_{Z~fI^^yR7jo+0YaA?ijxiu-2TAL3~|!h3!=fDFt}x*pUdHB zd44}Zo+oN;nh2Q)J5$b6nm{y1*qSO(xloqO40%GM!c~HS-1g??1*_>(t;k3)sEdFp zt%^WYWeoIRyYlIbJOd2;|)=r)%+uaFXJMb zx#%cU&$QXt%QqLPiD4I2CJcJkxi6M0Q=xMX%B)Y=5~g2K{WigLZ-1@&zKXCp`D3iE zp3bnI>AjvVhbfbhQ(L<6+coDRS?}gk(&ucHk)k{u6}TDu8_=W+hW7T6Q7t?zm#+tV zAgpnIOMA*=l<{N*4&vTF({R@g2>2J(M<(}Wrm^R=PTq+?qRAhC<@vDh0|F_$V7K2i z4B~0uEEp7XkrP$L#&7`M)=$|zpb>OlDBK<$If2J*hV@-46O@HB zkb5ok6m4}RrEzSE#aBg|=swS^X$8cYqOBmVYEuy1wIpiBC-UaC9}>8T=wE3IC@ud2 zX;j|FQujHnCkSZ;EDsMS#TU3p453f)MUd`y72{V#gVFP!vT7FHvP`0&Jd+BYAVMj6 zggyzKggh%`^nmimNzq^we!1{_I9aaY@_D^@u+r*tv2wxZGQT`OKc7B+uq+Dp5UVf? zLR*$ezXaXvuh+lJ{{ZB2o@rr%FxK<1uok2~yKsD#TESUbD zPdIzKmxwxl%t;!D7Uqo)efj7A@b=bGQEp${IIT#7gdhR}14>GFC`dVUH_|a6-8En! z-AXGh3@9lL3P?yuH%O;6NWW+9_j<*<*8Q#Zd;fUT04V@OVc`1nIn572Ip$knsH$G$vC!)+0^B3vB5 zvsZ5w1J_&)J*kO($VnSs$D&=q<3=KA*(OJSC+kR&CDP_9R@Uo6x+M`oZlOUJ3apvo< z_o%vbw?BHTaV>J%csHkR?zpb5a5E#`Zet^&8~jWMTT=&^c9QY&8snFeD^@Y_!R(#b z*1?CTr#vASNPr!ILWNvCg*91IFZWPK0g`@M?!4)RKvMuH*KtID24{a3aZ3KR)I&Vn zIH2eo#?8^`IXDJuvy5BlM?#A$n#TvNd=Zjk&N^4Ithh2X&%bX7uWzwTr*AfoX4g%`{ht(MH24cYRqthX{=R#AV;-5sjBs zA<5Z_9hlgjtuSpoS?yj9xE=cq{T4LFt-rwRLe70BHz@61lHhnOf0x-9pEmrgY2?c2 z?JXWPDD*Cs?&Gl-Y0FFcq}y^EK}t%L(*%Qb8?VaxU|^(yeG83e4h1xeR9swvW8QoRl}iC((zK?&+0Lx&AjR!joM%#s?b%(Lb}>h9D_VM8~BS zg2&~EvEwE!01X}+U%^ay(^*ynFPKhQTPdNkMR`D{tc3CI8%JL5v6|-9`PUL@nCO}m zqMxW}?sL*EPz4)H$Sc#e-zCTWIA+mxqRZI`J%}=4?%WDDZgir9qZSJ{1zZR<1w33E zV@y8b&`EFZ?&Ra~!?}J)K<y)J zx;-KBCH4R89XP9mk{L-4<)Lx4Ahl9U+T&|E{Niz$R3yc{PkOwD8-|$sFrE=2*E%dN zmo6~P;QF|cRh1<5M%D_trdqg9ksj*f*X9W!jBWr`4k_x6pWn)%vg-36sf#)0uhuMx zqX8TOV|aMP$;#qv>^@*X5$~O1@+ssHBDJ|HMEj><8nQh@? zeUYlU)t7~aSf{|X#z5cmjo;N2q_ciovjgTseQPGFTe8;df8lhq-!}$pFHI*h@OoDtp^-z$#Ep6d;# z`A%>Z;MjGic>dtdmEKdYr%YPrILSU9ucr-w(5wK2Ny?o#58*Cu}1E|HSPKmt#OTd=W^h|my{ATXY2MM@>GY~5Th-hflF zY#%xIfmBbqZh#=N!d*kjJ=-ERCN3nJesI z!qaWEC9$SG#bDzVNyJXh_TiJ+_DCUQ` z{V2`sdL=Y?%j?)P`JNf+TE9QGtzlVjwyhgX$(r;d>GVYX=_hhFePai~^eG)9U-LC^ ze5sU#r>f1@Ii^%cHGd#kQb^#6vEi-7JopPIEWrkuZVkcvyo#xiHp~0BhfTgK`5(tx zud}e{u||p>XcvkHACn*{+^j)UPne6?2!J=+u7qOrYYHu9iuC;?%X(dg2ze_vyLANp~DGhXhD)C_1IYMm*Pkt-PuJe=2V}@0CDBEHd#~YuhXu{ zGQ0^o52DZbF5u`7$kKbO7(l;O&Azw3z3h&ITxp&Zr4i1Ng6u1C_BI)XUF)~^Q;Y+4 zl#*EJn<{}82CNT~vbXh*ZwE5OA9_VE1LOWUii6PkF7iB#7Dv_K)BQVh5%W z<~?knWzxu`Ak6bd^CZV5G{!(zt+!}_qw2zz2QGve7Y3)K2F=HAO&Zgu zKUphQIU?NfCFRaM1ih>liaFl|^N{3a-jv>Lwq75XCTXKTF%oTkFlfZ&^x#? zO84@CUVW@J)`!m+=;~Jl`__CTaLNs#XJD}0b6~{{9i^{{lJk4k{e<((##Ao?Zji7t zh3q5hC_KgK$l2*nHrQAo1233^O)Mwr{~%Iu@l}jj$?Hy3VR?)wswnrrp+ z)v|A6lZ><7@7`&f%Gxy4mfbO5%|lwvdWc4Q1?fU@?g!HFeulHD7Q}MOUeSu@kkd_u z^)otrw0#NM0zS+4MaBM{-wuTL^^-vlA!?@G$TF!&^qumf)9Bp+whR319(`Np)XG(l_&C0_Ot9B0c=YWFt zg3fK3==n(Wms{4GVg6lyzLRVRgC#6F)8}V}?IgHXTT)l%8xXyt<^1H;+ZPw%{w)@Y z$$-PLI(qWSs^idTx&JO@Uj!oW^!RM>=SwpAer@xl(iDhk&)tX^-kMi zuLd7oV@ZW9<5TgmddMx;cesFtlc$P&gSTyw5Iv^5gkFxcTsHdpa=P4$nQJEp8wF6i z7bnTZ2hUnhW6|KKq1ff*O(?!S^Zi6*d)~R5X&2vSF?Ucs0gdyceI=^5Qiwi7n)o7w zuh*$lIJNLl^71B)3~bOpp`p#D0HGNpHCJSloO1+IYtTbGY(Z^8*(E!vT}aS-`OV{t z^^8EObt?4hf)`8Z1N;b9fV1O z(S&V8fi`QI<^s-!h+h+Y#aBt!WjCT{FrzZoDv;fBgOmPJ0>=b zm6gdPe%n2tHE!v-#&WSMX0nqdq=rd@z@@}@VL&8Sz2#F;qV8+;&bRO|9=V_gs=2Yu zjq9VOb*N+ciXj79HQ+Duy%pvqS_6%vh!n9tf@%O01$8wCzT>LPYE~O3AvsTD`RPt) zGRActirW1lJ@01%7nFnMAcp3@@qHF9G)3t$bl3X)nxCr3fK(#G^9_*O=pASxz>y2G z+oz@I9m3sZponS_zHyL7c;)Y)8U@1#ZIDm(-B~dzQ@IhNVZ!x+rP#OS5TbV%Z{7Sx zTq!BkYa#dw1_IWPz59H3J;VrtLgf@uXLCXZZ5~{q#^&wKte4Rj=W44R8T~4r>%$3JYXN*dKf zOP*bTIg($gqT=7bfJ5ZgQXlC?%UNeik&N%8+JPu>l>|cjruta&t6AdJmx{+r?>@wv zevxNE#94`BPwA2Dmc!)*C0X*Nu$8fPqeUM+CO)4g!JeD|g`tqQQ5_EoCKT3l1k@Ec zX}jd%emZ6Hfp%KD))HvfoCq%_H~q+2Uac6dITSEb&|2O)v(Lp&!YJ8prK%j^XOv~2 z3(TVRo}UJV?_RSJ{revXvHy`bElQx93@yuvWofB&g!ejD@_D;Q@|scjOlY^=6hq_{!}cxp}4SUr_)MxJET{XL~>OiUCrJ_d#!%ks%*qia>4CU3}w( zw~fdKbzjps$Qhk&|{KiwmJH zY}Q8TP!ecoefKjMtJtd=?1X{t5^X0_lG@hF>9J+(z}N%$ZJJ9jD$OWMNz5Jk88^aV zxX%W1V<3*Xq_{sjjm{r~juVe}Cmnvw!hO27h=ntI>-(V)pDdkn4gMF&FXHDruk(9y zzS|;BPH42(k79eo*Y@!VXsP=W!Dy8t)kDvob!7N#bfgUK+P6A@WE-7)@)>W6BG?FP zRMUKOSiVZ`F=};=wp4SE%(zHI5Ju-0F^tux5}L4XV_&96=U?mHC#?BQj}t2jcX_Gn z`#S9Jl}p=)O*oiVyXBnsze)ZnK7Ay>aXJG#X-Zfd-}(G}4AU}w)8}K&*z2YA4d}t< zU`^uW`O^5tlr|w{>8pHC9zH$bgVD?L5Gia z@B}t%cWX5Yf`%~;LC;RIx(}l+t;%+hL5&v-pY7oxAgB~lN$G4L2S!&;3VQcI@Ms*w z%M)&su38tIE(Kybyzt=2`OT>WI{U)+6>r9NtRW{Xb*CSObS$Z<1f8<@ zBOf&2SWBOlDL0X7>A$g)2WEU5j%riM0l3*2CtlL;>9L&zwziV)`7nm%`8oI9Bo{9R zE~=GJy$61zzqmik1v{IN8mkj?1Inm;UtEKSqmsBo1z{dJ+Tb$zfWqV*CX5|L+D$kr z<)$Pj?WTi@FtZWxP?=IUv2HH$>nSl&^tO=TF2~%#yOC_son&i^;QEArG^GiWP`HMv z6CwT$I~9}Xy`>dTR5D3$+ZOAIakYVy+O-cnjP+p{D+TSVg?9y(+bC}}XLoiL3)Yu& z4=a(>=dPPS;wbc^`rVTxAvd!5M$JeZoTAiM``lE|yyXp)NuoZ%!;~r4?=tx;2~Xd{ zgJT8VEY7Y^<;$Bxgs5Au7K_Yj)+3I@`%?aAppqNEY|Y zk)1{k<@r2{Hs{X$0pCDzZUK1E3pZ((f^43qpUyM6tz;)Yv$z0V-@%G#_|Tg#!q!SL zV>HTGwnewupF33XzbrwWm*$j+-~a;{Jy&h4IZFV>2XbYYN7DBbk_U*(TCXk^Bzu(2 zLFtZFNs6xI@eiqqM#l-)__P`jiq?{L^ckjGlsC-QHbWymTQ_h!g+^AlDygT_!ko&~5e8}?=3rh|W*Y>8?56!n|#ID#lBl@56E?p?Vz#aT$ z;GCUf>yAgl`Svrl9{G0NLVq}hRdfE;%ZH7E_Pd}j&x$k-RvZ4^njFYnTlWgi)$2+- z1f{;m)_q}fi0k9aKQ1PG6UVh;TfJuke6Jv^*6jRKct4iR-^-&Z3Ry14FDY$b zB!xh9^~s=Z-x%`BBqMf+TcD;!%-!6IoD!Rl7~zpEe8ozx{T zI9QtUvk>GJ>SdX4cioL!h$|LA1nZVlK-K?t`gHRivQ$AZvE8hARnCfJAE}c(>(Jqp zjdfah5j9{jWUX{^?$4vE9;VrT0DJsgHxSw7)&8!k!IH5ij){&nB92 za1B2g#5Y(T%jAYAmF4Jg!@j|f45`XahChuZ?KL!p*Ks(_t&4gc?v3Sj$ZiZB75R?0 zg!k|Zq;D1}u$rG?;Z;DG6nj}6(V)6d4x=_J7|;ij)+fqC*<4tt8xH$$(u^C^YBuc> zZ}~S5TgS1dOTt*$wlw5U3S%g(eQt;U{19x(lP|PkHZ9-r)|R1zO?)G-ckEvJ^ywnM zTesknl(`Xcaf5CAz>TJW7G@$`X3y;V^s}vk4>*|Vxd_BW{Tvx<=^TS?uzW3fx4mZ? z1K(7FGi=By(L1jd?-q!$k9vH#Y4mN=EM@w+ot8>Zum5{cO3kYbi1aT+_{7gEL_=j>bFlU)fKz zFA{$ZE9EqFdXyEIhfFPpT*c8$^MyTDqAsJ4ZCH5vpU$Uk=tWIXUN?ZzMHP_{e|v{V zua>dICLNi2ga%i~d4IpJLtn+NBRrkQI;Qfm&)C|m6z$v&vsN4@d-1F@C`*Lv-^fgYqk5%* zQrp=2JPa!W#GStUXtZGIV%c6g$b3~Ubf6Cv(T zM;-<_p3nP>cZ;+8-4&v7RfMBLf1Gk3>Ra@S`?Z%k@99`z>bYOR#&TirzRUlm#B&48 zi43U-Exg7WEq7#y#QAC@5PzT+^YMUokb}VRlYP}f!qn>f{A=f~Z)g3S5E$rXLT@2g zn?txj@@zpQF|SMq8;jW=Tg%EM!RF}o*~}I3_ki`E{oP$dpBN4`8B*M+I_DNrtuXV% z7CGpnY7l?iFYQCcnA9x6LAJ&EYct)PeO}ad>VS-aDY)X@fc>)aIpRz1B*;x8wK02 zsv^sFx*99Hn3#|?p|aSAOdx&rFx9y6W~Ei*x%kMqpJ#Jm^ojzP)#t0_fjkHL;f^83 zioGw6RwE}p9tUEroN?_7-D+$rd&fIcSF-p@3mwxD+eRR7Z20EFk z6esPGYaiN;1=jP#6jPIzB0u*q6teh^zz_$Dunre-`>)#kAg8XwDbdgZGG_8QJ&dfS z;I>~Dqk@%1gSIwXlgh8Gif%mR1!hL{5*fF!)iaHhBX2TuW9-NxFZsvMj3sVOr?_e6 z$YY{+A9dmJd9Jdqt>9n@l(?rLe-xm#` z#2bY?9&`~m)WfEb%`ctEXo{VU2myKbM2K5E{{<5>oM?&SdN>D`^FLQ==lC9X8QVE$w~ z>H+=-;U6C}-&xISE)RwCzHtd|#8KM5`-3E+n~hLh(!Z^OmeCJY%^i5NkfP$u^P z^$o9}Lpk5_A!m0h#nS0F-KBf+X8=yHSKos`$ZUBbGU%w1G}T{T8_|E;Mo4fuG&zt4 zp-C=8JN#s6|KR9^V|+rev~YSR9u_OA^ub=#%M*^e!}fX!VrWg=u%5W{CW;`isQ&}} zpr$Hbk1=3%TsA27+;xh;uXgs-_aY^|NMK5Qy0^F8pno*2e$(m1=TigXg7~bkhl^!Q z2wc&R(LC`1gH?qbbIF(=eTn}B0D=uwI!u>5L55)m{pl4`4$RiPgA7dpJbY=hFG)ER zRagM$s4;Io%bhZ&3OQG(vzP*SX@`lAj#D4y6T}{MXjRZ5Qf@L`ed8im|A<GB?31Yg|FjTYcfNUrtAIgGA6Y5<&v(-| z02YgREr};&&L<~m*z(?DrZigFD=AwzMlO;x?=>dy@4wMf5FWksU^#sK(@z|AU>C>34P&71m@1hXj@k}3>uAI{2v7IyPzLQqOQ-=B zjUsUAc#0pqMIFQkx1cc;!|I&@!OrF@WNmHv6+=ERMhVm38Il@ycXT-FsJNRGD?}OO zNNDW+8_&;n#zE#UlKa~J`)&VrJl}~rzl6Wu*2o{|PW|8)_M$&Aay?Vy@PU`GY>N)4!6v*2x3yN6Yn}N^;fmRw}$3`LR zC`20Y=X}QCCVe%v07#t0m&b7D+l=f75f8lD-S zqzEE&70~L;Px8OhH`zwK9=Vxdq@Ds{$t5}ptrnx;sBq$maN^M#6T!yH69Lnv_EYrd zu<@5QC&c`6F?Fj;k2b zwbk%p8T}anNb@v>?;K%9(U+~GJH8o%qgEdR)*2HKp(*I!d)#C2qzN;}U12;=83vBS zq4>p7q$T~=PtPDSTnPEs7K69!*j1EL|GcwlkazY%`Ya9>phxIWpeRX#RSe%5GJvCo z<3Qp0x(t%DD8$#aXEd!ewo+fSoW9D{+*aLR8pke49Rzn<4n7;k$P^^kLh zzu^el!lJ%v(6Cv5@(9N?3wt93mUIlsZrA0MIPAAMNRrqC&4&z=VuPMgCvgx%ix9^}KZ@q=00JHi`-9(1!vl*|aMgiR2d` z7qemdprJem&&4z!XQ_unQS;_Q;(=dW0R5)rOv0`|%t*e}tv8oVRT>uA`PVIS>G_UC zB_(8*^Pd2sgmoryaIr$B#%kfiwqG@1c|4}qo7PT!k2+V~MeRS;rt@_j5cvNL8uo+6 z^5Hb0lrMl$A(Pr~RzH@=YAe7t04PL+ivV2PB;eXUhW44Qfb@QDHqEWn5?9Ne*?u*B zoUS*7L9DF?`>E>FQumqVP@4kGno#ZyjCjZVynoX+1l5Kp_G8G&ATh3T6%T=QXtX+I zSw`5YrdjNZYk(~<%D}OOR3$g$xkM4RdVx{Yn!K98)d6f&4D{7`NtLgw#ChtRGo$2& ztjjhf@=HeP&Qlndvb= z$>1pT5i{kQ+{pd}zu6nFB}ixgHsoW9W9tosZmJTCSBIl;*J?g8rwO6RSW>oq<_S^) z$EmDKlMuFFHQ$YN2}F1tWtn=iI)2##R{4ISj>Qe(nE-UaEX&8@7{|unP@CJ+KQjvg zXKP?C3RjNeNqCL`T&eir*vPizo$^ zm#h4mz);$>e*5g$#TH3lT0tQuLAl)5BcjfWU)80DcN3trciZTs(R<`1 zH-qg^9b;2tccR!HxW$7+%e_0+?MJ%xvDL#Fl0otvgkin%8%W=q^PSlRfXPFRZSVn~v}m$?Y9=p{WH*7X zZ!VxX=-|3%>?|iGg?8Dy9}q>B&sWvzk4N?oTAmk=09=bX`tu@_>B$rI%BY7*w)#BN zde(!_7jRHyuS?uVt=4q(^BIuxzc?PUXQb$@vUT@fbkG9SOc5YubBu2|Iy8Fzsv2A$ zYsHvM14h1}?0uG}2^(}5Tgi&G19%ZchfD=b@XIvt2h0~TLw1La{OiI2Epv>fA(R-m zHyn(~azcX5I`2N{bxVB6DM7MgMsmHz36gBZ6$0VtTvSuE;;`$?cUB)mx~_)DqJ7Ox zLs!3bh~;c90yb(2jnkN)3`RK-Aa|rqY@hHdL^FY%sqI#dTt3KMr&If%ZhvS{C<*H1 zqa@oA1M$8Ei1+#bXCC&unPOo}L6IK>xh-`rnu6?(_J=BqM7{OqK4A{6k0tpvcF(PeY9C>MeTV*lA!o9um2snetrx4Nn(?(FFuxo0vJu&4KxBEb+zRiMS{*I_sdC zi@xxRBk-K~_$Dpzl;kZOgF0qx+q%_^ak&m;eWWH^L$&k_U7TPFcfMKkg6DaryeZ1UjDl=+0pbAc|2 zcS6FdU5Tis0O#kZL!J^_Vxd1dcRlkgtn6Jf?lToh^L~c&tSB>y+QlSWJ3xxA)RD8` zgP@S-eDLf`UItgex-~q^%MmLv%l%t}4DXa2GGF>PJkP}rt(;HQW=7)K1>hVQMAQyy zzqipGi0$P)W(C*%R6sitosZ}vjjyk3R!R}Lr-BRJ&_rBS56!TA0@BS{s<#uB18(92 zyw!Aq+%h0UEHZFvXN;Df1n|&}NdHsQ`J)+ZJbOdX$3K;I%5%nIa1umw+PEgH$t6%o z`h8wI>S3YMwKXqDxflDp)@V-+gPT;3n$CTlovMcAoB#K+XXr~%}25IY@`Y8{4)?i~Y#U5uJ zfuDy;*bYS}p|4ggp!Rgvo-)&+OgAaSez5ueBU@Uu+GWkAN9;)|)Z@F~u-2->Sz^3# z;|EtpiWy1Qi?*pZVsDSrS3k#-%*)(P#}6L|rfX+GKk3y00OK6mJ<~P5&2IPc`?IOw zI|$kzIBp$sV)ndGLI@952U*zlHYY&l$6cwGw*3~wJAgt~q_@&GixhWxs;&l_Dm19~ zMomo4QF1m**VXV`z|UZ=PbRg%y+URGE|Zvbi#v48A33|Jy@VEVTC$hgrw!HJe(0M% z&q3moh{F{w2(q1bE%!|?_>#=T?M663(IC0?AmJ&(>tKB}q~4&oc1M18p7+RBZbZs@ z4i16IwLO^THxl5M+tO-4FQGbaKy5iXIcTYk2)dq_XnJ)%99f!~^i8D5tH^hy$mwFa;nUW>Ao)sJfrvCJlWDm}1LvE> z=ZQJYQ?_8>@%-X}|Hso+MbE*I`M6q4#TF+pH5&{LT#KhT2;;-}%l& z)swjq{>4V*;np_yVSTqP{f?a~cD@X04*~xvsU1*N z7zNPv_3*<^BhiiKgAuBDM=l33Q4{GzikCieAU|s1R86t!F17L1i99XNzsb;hgH#ij z!#-<`qaHXU(My?%Wr;v)X9JtVvlL!@j($pB!{u!ui?KgLjq@gn4ym#}_@BY9;T$LP z8#e~LS7UQT_HeGa3$QPr4bL(pHN;)t^JbDHzetTCw2XOWnlwF{b>egj4JMhPdj_w_ z!#NC=@TUJ&7N1kNid9xw$^LvlU!7Azan;{@-sqsMzgXKnH*0DT@22bOfZ%i9N9?L< zYME^MoYTIGqm^1WOs@F)Gp!}`g@_3ru4eaUL|}=S;YKydqB9)lea>)JV6VzrA}mA* zxq&R3{cMJGRra7SV8W&L2J>HPQT2G&T{#3RY-1v^q{^Y!oM!xh?a~u-YTN|yDlJ23 z?{GlO=0r-I7UNP2)Rj;P#_Lfml*g{>Fd)S^eKnfT-?c0&xY#Ry7ZG{0ZSY7nHLh4l za`k%l4HQN1>4Uf;dhWtj;nB1yyj8ScVDcl3u}`x3P2Yhv>M!dkhcw#Uu7+gM%w z=gDAR65L13e|&eIi}h>)rSLpn?5-Bs8Oy%3y3sz-ezbGyv6G*;N&!O)UPruIrF{Rp zo~^IkJtLrkI`TQd0%yl3t_F5x*e}cq-zQ|T=)?IkeU}2PL#@ZEs}b5 zG$o;C)X3P;;5_10ItCH%NFl1{Md~-_I9Tfi-uB^IU}Oh7ot$9U8o#`2O#k~SUqQk) zNmhictlqE|zD`mttqj>&eF3`-|FUqQ<(z-|0_R|o+*Lo(4^=-IM(!hl_P@epU!t~- z^U;Zkc?@*>Eev#v?i7=thX~tb|IG^#?H0At+t_#CKx|2$=lz^@!Tw^@gTAZU{$sa; zq;f2|XUf|5WWSP;f#UrG-)mSH1#Eher))mSk;kFOZRd>185hyw9avO$$`#@=TZYz$ z3nz5r@F`xSW~B-Y-?FG@o4x6L4f1^}_4P)fb`>R0JI-@^K;?d(?WXF4JG%^LBS$Rc zo|WoOFg8i8G-N<2(Lg&L(27hCf!W88U=jNrLrWSQdZR-NB)ryrSqX>Qe30oLg$jxg zYxWP##QUn*)$F-G9Q)pH?@{;;?}_$iN&5C+;Ze??6 zRHnPV`D#Jq?lgxdKeCx^V&z>Ld1*wyqi_U&$epIreyiaoJtjl+{LU#UX1fb&<*`5c-k~l` z9L9T|e^7jGQP7op@Txg&=lcBNn}eD$%Hy=Wi5*m}ll$pVzR~7_2WcITbZC2TVdsV4 zK^1G5e%C&=s-O@c*+6$})#7zzR<0!;Q!Azw9wH8+nS($*iqHP+$FM}Gq?j17+_z0% z!=O{vJ$`wbF6zGNM@O@Ho41X`&$^eYPCXaot5y>wcuz3*6`saCpryee#BKZHoN*oY zC_}Xgh4iHVj@pL1|Hsbyq;V?)v#`~PY@3IxHYPT1L3QEXGv&Qdvz5o8>mxx8mYL7K z6zpphu+HOLN=Sl_8M+u_9kTgyOS)&WEc&)3IVn9p(I_xs_aE!NJakX$_J_Fh+if`m zfAxv{t-hBunU)QCrI+Z`?<~9W?SIyK1kW?@VmGh5Qf#tI&R$`=>f>CR9K2A0hc{ig zNU45R+lO6yr$y~_l5q-y?cyu{F=}Yf$#&@OPS5dpi#1P^?RIX{sBZG4)SIFqfjRVK z;SJHX(aeHNh7%6E@Q1Y=nVnqi9;>-eUsrZ-;J2VWF zH8wOR+fQVK*(5hKINJPmAEVmu_{5%Ay|s=N*7U3H=|fL=PfsxNk1)3iiAXr}5Ko^tE65W`q`u4m*TbP2WxpLV78iQ1Hag z-6z)E#?O>=O-pfAyD1iKJT-gq&aGW9@nY5?p&89=M%Sz>9LFvZ!T+AEq0|k+qETMt zqL26I2GZ)G!K}05tRKkl=tj%R@2EmG^$9A8KLPx|=u)3Z8bn-`3~S z_92%{63Ds%x>a6@ZIe0|G4P!g+&Ea&qZun(ajwPIPI|#8!;YQFCq!jwxpXtrw5rXD zcR1%^Wl}+CY)_bvP1&Fn`{;x6!4K@c2WweV*V*2P2~uzF>SMl%@dui)$$VTNxKalzB4uJMGd* z?c=UPQ9IN0v*Nmw?=pPOi>$UzuojEq12tvuy=20Pi|RL{PJIqKSp7b}s^L)av5ktW z1RqcKmZ!SHzjIjI7FEBce&2~-@lDsBbTvU_H1H1vw)w^pz=c7pd?Qc<2P^Crug|te zB-P$_&3yb|OaX0_L>31NaIRlTJP2h;L-YxTC%KyTh>}JR^71R16L0TFk!< z%cti&%zc^PG$FlfS4_=c4jne?tQH_u`~xPBEZsk(C3x8J6o-7QP^a{f-c!Jk<@pws z7@zj99;`o>_N#W17l*`&RxSqD?WT|0?IbIG#6H90a~`_seHhdOTP@QW>K%m+xQlVt zUkO{Zu_n^;@6+5J{&8>2N;NUrYas-Mhu;dGNP_Vs#Fv8;daOmMB-OZ(=V7q9kb6f* zXvwL!VaH)x-ytq@T%|U`_4$-&&G-&|LPa3@v5U-oSfyve$L}*lT3`e zJeU~@J4?N=)Pt22xvs#qCGcplE8&00*hUtG-W<=wndNeba(OEp_xvR(dK$8$0cH!wEh#j8{mf3|Z7=edD%z~HGYf~VPVVLVjsVvBkR678 ze7N_cZU=H@F=K!?f)=AEQo@%+mZJpo}`=M%hurbk_Yp#raERfrgZn z`P&d*To`)wPI)ZiCv)3A^A$4B0qpRd3~00f3eg0cyx5Wa7I8k94`Fly6HKwTh?!r9 z+PJKw@B}RJ_pfKG7^c?OpRf7E4V~rAc5;l2#Z^r$Vrlg;Y@Te-iq8h2;zq4H*e#Rpb~Q z^Z~{ap0%=*ir8i#q@2_FXcY}T@<|H!Ula9q{v>m-5T;XMY%(|7ANqy&EUSF78g&Hl z)A$^Fc64pkR8+OKF#Hh+i(?Ut7s`wXF4g zbp2GHvikaQ1P?FYSXqx)*`4&$p8De*7Okh}TsMm7i9^bXf_Fr&$fZ%?G1W zlJg4QL&3)6(TiPTn!BmVKsmQCh-gWiOM%zOyWrG%@gba6?b|eq-D@FYGja+>@AiAXJ7Wvbsf1JBZiqb(F za8`<|&9I@2RB`3V{!oINFvCds3PH$iH*GXeGF*!CQ_jsQ zfe+S9{LlaiQfyiZW$BM*|GpoYFgR5g=OvYK|Ipz}`atW9HX_a~BmZn87zK{HF)yi# z_t#h3Fj2=+syuM7qg}o@Ve;URCC@G`624$WMs=hQBeyytj3w6T=gr8F{u%tX=VcQD z9@NH<8WwltCl-f)`G+p6L|zKYK~Kl1qxlI0=;MiB{lNdeYNHUqX9@Fk=D)o5`Dm~K zB4VT+7=bNFU=OF)z?0&rt5{nVnyKIgG-STwT@o$e;it z!EPoStT^N$m%eb9RwB6+%}W1Qegi4OK(~kB$->?l>bV9)zxNx|^fy++JFU%u zC0Gf1qkUOQK*6~ffVw?+Wrq3ZvVL2m`Io>F=!@cCL;vR+V~oHKZR~tdz4J@?k^2=V z4IZ!aQ5H8ai5U6#WtGoB!&k<8104WD=!)M@b?SdM4f%4*oWKscy^?`SUwX028{hjK zy!iT)$dqgUs0rBrjIKZTAN*7my+i}8dt@-0WX4m86ywI4O@Fg4XcwEcZB>818WR=L zDktD|u@CGlP87@$fqj@0b+*C%=Y5b5brC_MxFbBpo!j~^0sUIhGBd_|f44X$sOUe- zl^7?==o)ofuj0O}06X`A91PPi76K&h1cHus0`cQ!GIo7+FBQDU)vlWspP#eaLZQ&1 zt-XeHNzM$c-l`UU48BpTIS2fa%LnN9vG{F={$p+b{e`FpXf)8%_u1;7pW!=<4uevb zSScXUZqk}99v&Xhi)0aags&O~y3oOH?!o`>*8>~(-wOkc{lJ4Qwdkr)5|V$;1V|9)-d3k)&9yb71cr4g&0d4>Mp ztJ{|ccR`()V8^Aq;5oPpjy*Nwu3tWFgSUY_)HQ1-M?)}iZqGUREIh|!+mB7>@qF3! zn!9qJ|1SM=^Mo5#XU7Nkj37V}xMrfuxWE;m-Wp!;>j?ZUiUAT}rT6#Bm{~5X{pBwy z;{#*4(0luz0zC*37%{AzHSdSpUjANh{ncI$E2Ey+F#sr)gQId=b|C>bZ!O|~fPKQF z;cKo*2bh0KO5CP^r0<&_0Z=hxPR!c||Br2Vxrscw-K9A>{}$xmJG5+tJi28}ioU;( z?grAG6LtP^_0mrT))HkHMO8B0_oUsz3uI_Q$v%BD%b@qs_&YzjhNHvQOg2Jk(~!-5 zOA38Lyo>GLxtt64<2ukJY~03z7(RoAuQ;z+jAy~dam9^htv3Vsm=+|8(a z%Kr+%Xn_R)OZlnHO#Giq!A35{n1STdQYgSuOlO{4yR1Xh!NASK-^s|gFdznmDH$() zxmLK7h20GYS4T2s+^MQ3X5go(iUGVlJQQ$LOl^TYEPyL{CmApDkJ$ewrTI{lhaEnm z1oFSHl*?KHcFjx%=(QVbJNEDA)20Bue!|}TN6wlaY*=q}8lNkI9}V<^lCkPrkuWLp zL1%k}T-JsLpRo$JfypQOQ6OuADIkysL9RzGvG(8V2|}(%IqnQ#|&%vX1 zqTlPuhyv@mf9vLDKO%!3>F*Jx3%M4NBiEyzu2Z@=lAG?EW=cBuqL5X78I1<(g%;uKqmwdE$S^Ujelv@FQX%I1?h$biFv&Htu7$k z=Ck~F_Fz5^>{^N##Y;?7nT(rFD5%MT&K16V3!#rj_Sc5LBUIMT+0I$*iC%B4qw)R?f`9(l&>)$jL_+0 z;Q0N^e{IhZ(s@bmd8&GO6MioUTnz{&AfquMu}J&N%nu}845-RQiMJh`j-xe@-5&1E^OcCy=+p( z=uwX`H@5Rta}Vxk0AO?Z40s|Nv-_4eaQd5!P~Kfe9s`H#D$;55 z&~5>x^C0@y`7HAX@*Kb5&UyCF>i;+igv)tIc@8is)%}*|##JCsYTF+em#kf2EmEGt zOb@DPqZ~j2E(fwn#LH9D_!%z2i_B<1tLJ~4oWB+U%0M8aF(;^e?LQJ{!w`JI*srg(yI{nhzK=jhzZ=%Nf-bz zW8qRnL8$sJDVG^?g;<2`e^|oHYiwf#w{VpY>-FDvZW#-(o@*zLfTgx^*F4^6tvQ4Q zI-Vx#JqB1bH+=ya{CDbMcee4Oy)BsVL5q7r!vSarU9Vdj>wa|)IQ-PBbxS*ww|K0g zz?FR6NOSlLjo;5VlYriq&2_{)(ZCM$k~;_%Jx|pswLo%r6e=XLlajgvZ2dv+0|L+C z)yfS(wf{jeRY)U_ocu3KB_RS1`L>S$PGAKCGT8*Qqu3X?@p|=i)bmrw7B0YL;|92r zhl2Y++m1aLwipCvIE!CQ@J&2<&_6@~Mt)aO15oHW-8jCYad(O!pa1#kNc%Ff!$K55 zpxLrO#|g*DXPWa~rwL7A63CbtF#?>nakl z2AZ$Zr~#WWrggJ1U_rX`!nPB=PN~jo-=_2S6Ni7)G73AeFf0yxc#zm|%6Lx?`cCY7FbSBe zgI@~B^_X%TSd5OF;e*VQA?OMjO}{v`tO4TONOhl*tMvnXq@{q+Vh>!!a

yfyu-o(kt=`y!a?!uwmQG1a-~sl$C{wF`EL< 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¬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%0ArP2VX~CsQqkGd-o?qlM?VfI??wide2jayv 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

BHUHA=^mmHiWg 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�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%0A=Z9spkjkx3qon67%qWDSL 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 literal 0 HcmV?d00001 From 2bcfd3c823e3052d06c545f7d5274891f3df011b Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Wed, 8 Oct 2025 00:36:54 -0400 Subject: [PATCH 42/43] feat: add tutorial link for custom function with adk agent (#566) --- ai/custom-func-ai-agent/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ai/custom-func-ai-agent/README.md b/ai/custom-func-ai-agent/README.md index 43fe32494..bec58ef85 100644 --- a/ai/custom-func-ai-agent/README.md +++ b/ai/custom-func-ai-agent/README.md @@ -4,6 +4,11 @@ A [Vertex AI](https://cloud.google.com/vertex-ai) agent-powered **fact checker** ![](./images/showcase.png) +## Tutorial + +For detailed instructions to deploy and run this samples, follow the +[dedicated tutorial](https://developers.google.com/apps-script/samples/custom-functions/fact-check). + ## Overview The **Google Sheets custom function** named `FACT_CHECK` integrates the sophisticated, multi-tool, multi-step reasoning capabilities of a **Vertex AI Agent Engine (ADK Agent)** directly into your Google Sheets spreadsheets. From 007937d2d272de31ffb0dc61aa8e3220f1c32a11 Mon Sep 17 00:00:00 2001 From: Pierrick Voulet <6769971+PierrickVoulet@users.noreply.github.com> Date: Wed, 8 Oct 2025 00:38:00 -0400 Subject: [PATCH 43/43] fix: typo --- ai/custom-func-ai-agent/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ai/custom-func-ai-agent/README.md b/ai/custom-func-ai-agent/README.md index bec58ef85..85a16c5a4 100644 --- a/ai/custom-func-ai-agent/README.md +++ b/ai/custom-func-ai-agent/README.md @@ -6,7 +6,7 @@ A [Vertex AI](https://cloud.google.com/vertex-ai) agent-powered **fact checker** ## Tutorial -For detailed instructions to deploy and run this samples, follow the +For detailed instructions to deploy and run this sample, follow the [dedicated tutorial](https://developers.google.com/apps-script/samples/custom-functions/fact-check). ## Overview