# Workforce Management - **OpenAPI Version:** `3.1.1` - **API Version:** `2` Workforce Management ## Servers - **URL:** `https://api.zoom.us/v2` ## Operations ### List filter groups - **Method:** `GET` - **Path:** `/workforce-management/filter-groups` - **Tags:** Filter groups Get all filter groups **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:list_filter_groups:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` #### Responses ##### Status: 200 The list of filter groups ###### Content-Type: application/json - **`filter_groups` (required)** `array` — List of filter groups. **Items:** - **`filter_group_id` (required)** `string` — The ID of the filter group. - **`name` (required)** `string` — The name of the filter group. - **`page_size` (required)** `integer` — The number of items returned per page. - **`total_records` (required)** `string` — The total number of items available across all pages. - **`next_page_token`** `string` — Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. **Example:** ```json { "next_page_token": "cm2n7z2vl000e9cllp4ckoc45", "page_size": 15, "total_records": "45", "filter_groups": [ { "filter_group_id": "cmgoyz7mb00002f6obth9ojea", "name": "Support staff group" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### List forecasts - **Method:** `GET` - **Path:** `/workforce-management/forecasts` - **Tags:** Forecasts List forecasts. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:forecasts:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` **Not supported in Gov cluster** #### Responses ##### Status: 200 Forecast list response. ###### Content-Type: application/json - **`forecasts` (required)** `array` — List of forecasts. **Items:** - **`create_time` (required)** `string`, format: `date-time` — The forecast request create time. - **`description` (required)** `string` — The forecast description. - **`end` (required)** `string`, format: `date-time` — The forecast end. - **`forecast_id` (required)** `string` — The forecast ID. - **`forecast_profile_id` (required)** `object` — The forecast profile ID. - **`interval_minutes` (required)** `number` — The forecast granularity length, in minutes. - **`modify_time` (required)** `string`, format: `date-time` — The forecast request modify time. - **`name` (required)** `string` — The forecast name. - **`scheduling_groups` (required)** `array` — List of scheduling groups present in the forecast. **Items:** - **`asa` (required)** `integer`, default: `-1` — Average speed of answer in seconds. \`-1\` if not set. - **`color_code` (required)** `object` — The RGB hexadecimal color code. - **`deferrable_sla` (required)** `number`, default: `-1` — Deferrable channels interactions' percentage. \`-1\` if not set. - **`deferrable_sla_target_time` (required)** `integer`, default: `-1` — Deferrable channels interactions' target time in hours. \`-1\` if not set. - **`dynamic_shrinkage` (required)** `object` — Dynamic shrinkage value to use, based on configured days. - **`fixed_shrinkage` (required)** `object` — Fixed shrinkage value to use for all days. - **`name` (required)** `string` — The scheduling group name. - **`occupancy` (required)** `number`, default: `0` — Occupancy percentage. \`0\` if not set. - **`scheduling_group_id` (required)** `string` — The scheduling group ID. - **`sla` (required)** `number`, default: `-1` — Service level target goal percentage. \`-1\` if not set. - **`sla_target_time` (required)** `integer`, default: `-1` — Service level target time in seconds. \`-1\` if not set. - **`start` (required)** `string`, format: `date-time` — The forecast start. - **`status` (required)** `string`, possible values: `"ready_step_1", "processing", "ready_step_2", "completed", "failed", "applied", "generating", "generating_failed", "reforecasting", "reforecasting_failed"` — The forecast status. - **`type` (required)** `string`, possible values: `"SHORT_TERM", "LONG_TERM"` — The forecast type. - **`next_page_token` (required)** `object` — Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. - **`page_size` (required)** `integer` — The number of items returned per page. - **`total_records` (required)** `integer` — The total number of items available across all pages. **Example:** ```json { "next_page_token": "cm2n7z2vl000e9cllp4ckoc45", "page_size": 10, "total_records": 100, "forecasts": [ { "forecast_id": "cm2n7z2vl000e9cllp4ckoc45", "name": "Weekday forecast", "description": "Forecast for business days", "type": "SHORT_TERM", "status": "ready_step_1", "start": "2025-01-01T00:00:00Z", "end": "2025-01-06T23:59:59Z", "create_time": "2024-12-16T04:21:23.207Z", "modify_time": "2024-12-16T04:21:23.207Z", "interval_minutes": 15, "forecast_profile_id": "cm2n7z2vl000e9cllp4ckoc45", "scheduling_groups": [ { "scheduling_group_id": "cm2n7z2vl000e9cllp4ckoc45", "name": "Infra support", "color_code": "#c0106f", "sla": 75, "sla_target_time": 30, "asa": 30, "occupancy": 85, "fixed_shrinkage": 20, "dynamic_shrinkage": { "default_shrinkage": 20, "dynamic_config": [ { "days": [ 1 ], "start_time": 600, "end_time": 660, "value": 20 } ] }, "deferrable_sla": 75, "deferrable_sla_target_time": 30 } ] } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(/docs/api/rest/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### Get a forecast for a scheduling group - **Method:** `GET` - **Path:** `/workforce-management/forecasts/{forecastId}/scheduling-groups/{schedulingGroupId}` - **Tags:** Forecasts List forecasted values for a scheduling group within a forecast. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:forecasts:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 Forecast scheduling group response. ###### Content-Type: application/json - **`forecast_id` (required)** `string` — The forecast ID. - **`forecast_intervals` (required)** `array` — List of forecasted values per interval. **Items:** - **`forecast` (required)** `object` — Forecasted values. - **`agents` (required)** `number` — The forecasted staffing count. - **`deferrable`** `object` — Interval forecast for all queues in scheduling group of channel category \`deferrable\`. - **`aht` (required)** `number` — The forecasted average handle time, in seconds. - **`e_aht` (required)** `number` — The edited average handle time, in seconds. \`-1\` if not edited. - **`e_vol` (required)** `number` — The edited volume. \`-1\` if not edited. - **`vol` (required)** `number` — The forecasted volume. - **`messaging`** `object` — Interval forecast for all queues in scheduling group of channel category \`messaging\`. - **`aht` (required)** `number` — The forecasted average handle time, in seconds. - **`e_aht` (required)** `number` — The edited average handle time, in seconds. \`-1\` if not edited. - **`e_vol` (required)** `number` — The edited volume. \`-1\` if not edited. - **`vol` (required)** `number` — The forecasted volume. - **`voice`** `object` — Interval forecast for all queues in scheduling group of channel category \`voice\`. - **`aht` (required)** `number` — The forecasted average handle time, in seconds. - **`e_aht` (required)** `number` — The edited average handle time, in seconds. \`-1\` if not edited. - **`e_vol` (required)** `number` — The edited volume. \`-1\` if not edited. - **`vol` (required)** `number` — The forecasted volume. - **`timestamp` (required)** `string`, format: `date-time` — The interval's starting timestamp. - **`reforecast`** `object` — Re-forecasted values. - **`agents` (required)** `number` — The forecasted staffing count. - **`deferrable`** `object` — Interval forecast for all queues in scheduling group of channel category \`deferrable\`. - **`aht` (required)** `number` — The forecasted average handle time, in seconds. - **`e_aht` (required)** `number` — The edited average handle time, in seconds. \`-1\` if not edited. - **`e_vol` (required)** `number` — The edited volume. \`-1\` if not edited. - **`vol` (required)** `number` — The forecasted volume. - **`messaging`** `object` — Interval forecast for all queues in scheduling group of channel category \`messaging\`. - **`aht` (required)** `number` — The forecasted average handle time, in seconds. - **`e_aht` (required)** `number` — The edited average handle time, in seconds. \`-1\` if not edited. - **`e_vol` (required)** `number` — The edited volume. \`-1\` if not edited. - **`vol` (required)** `number` — The forecasted volume. - **`voice`** `object` — Interval forecast for all queues in scheduling group of channel category \`voice\`. - **`aht` (required)** `number` — The forecasted average handle time, in seconds. - **`e_aht` (required)** `number` — The edited average handle time, in seconds. \`-1\` if not edited. - **`e_vol` (required)** `number` — The edited volume. \`-1\` if not edited. - **`vol` (required)** `number` — The forecasted volume. - **`scheduling_group_id` (required)** `string` — The scheduling group ID. **Example:** ```json { "forecast_id": "cm2n7z2vl000e9cllp4ckoc45", "scheduling_group_id": "cm2n7z2vl000e9cllp4ckoc45", "forecast_intervals": [ { "timestamp": "2025-01-01T00:00:00Z", "forecast": { "agents": 5, "voice": { "aht": 40, "e_aht": 38, "vol": 10, "e_vol": 12 }, "messaging": { "aht": 40, "e_aht": 38, "vol": 10, "e_vol": 12 }, "deferrable": { "aht": 40, "e_aht": 38, "vol": 10, "e_vol": 12 } }, "reforecast": { "agents": 5, "voice": { "aht": 40, "e_aht": 38, "vol": 10, "e_vol": 12 }, "messaging": { "aht": 40, "e_aht": 38, "vol": 10, "e_vol": 12 }, "deferrable": { "aht": 40, "e_aht": 38, "vol": 10, "e_vol": 12 } } } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(/docs/api/rest/rate-limits/). ### Upload historical queue metrics - **Method:** `POST` - **Path:** `/workforce-management/imports/historical-queue-metrics` - **Tags:** Imports Import historical queue metrics to Workforce Management (WFM). **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:write:queue_metrics:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY` **Not supported in Gov cluster** #### Request Body ##### Content-Type: multipart/form-data - **`allow_overwrite`** `boolean` — When set to \`false\`, the import fails if existing data conflicts with the uploaded data. - **`file`** `string` — Attachment file. Only CSV format is supported. For format details, log in to WFM and visit \*\*Forecasting -> Historical data -> Import historical data\*\*. - **`timezone`** `string` — The timezone of the intervals in the CSV file. The default is \`UTC\`. **Example:** ```json { "file": "Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZadGNFSmxSbGw1VTJ0V1ZXSkhhRzlVVmxaM1ZsWmFkR05GU214U2JHdzFWVEowVjFaWFNraGhSemxWVm14YU0xWnNXbUZrUjA1R1UyMTRVMkpIZHpGV1ZFb3dWakZhV0ZOcmFHaFNlbXhXVm0xNFlVMHhXbk5YYlVaclVqQTFSMVV5TVRSVk1rcElaSHBHVjFaRmIzZFdha1poVjBaT2NtRkhhRk5sYlhoWFZtMHhORmxWTUhoWGJrNVlZbFZhY2xWcVFURlNNVlY1VFZSU1ZrMXJjRWxhU0hCSFZqRmFSbUl6WkZkaGExcG9WakJhVDJOdFJraGhSazVzWWxob1dGWnRNSGhPUm14V1RVaG9XR0pyTlZsWmJGWmhZMnhXY1ZGVVJsTk5WbFkxVkZaU1UxWnJNWEpqUld4aFUwaENTRlpxUm1GU2JVbDZXa1prYUdFeGNHOVdha0poVkRKT2RGSnJhR2hTYXpWeldXeG9iMWRHV25STlNHaFBVbTE0VjFSVmFHOVhSMHB5VGxac1dtSkdXbWhaTW5oWFkxWkdWVkpzVGs1V2JGa3hWa1phVTFVeFduSk5XRXBxVWxkNGFGVXdhRU5UUmxweFVtMUdVMkpWYkRaWGExcHJZVWRGZUdOSE9WZGhhMHBvVmtSS1QyUkdTbkpoUjJoVFlYcFdlbGRYZUc5aU1XUkhWMjVTVGxOSGFGQlZiVEUwVmpGU1ZtRkhPVmhTTUhCNVZHeGFjMWR0U2tkWGJXaGFUVzVvV0ZreFdrZFdWa3B6VkdzMVYySkdhM2hXYTFwaFZURlZlRmR1U2s1WFJYQnhWV3hrTkdGR1ZYZGhSVTVVVW14d2VGVnRNVWRWTWtwV1lrUmFXR0V4Y0hKWlZXUkdaVWRPU0U5V1pHaGhNSEJ2Vm10U1MxUXlVa2RUYmtwb1VqSm9WRmxZY0ZkbGJHUllaVWM1YVUxWFVraFdNalZUVkd4T1NHRkdRbFppVkVVd1ZtcEdVMVp0UmtoUFZtaFRUVWhDTlZaSGVHRmpNV1IwVTJ0a1dHSlhhR0ZVVnpWdlYwWnJlRmRyWkZkV2EzQjZWa2R6TVZZeVNrZGhNMmhYWVRGd2FGWlVSbFpsUm1SMVUyczFXRkpZUW5oV1YzaHJUa2RHUjFaWVpHaFNWVFZWVlcxNGQyVkdWblJOVldSV1RXdHdWMWxyVW1GWFIwVjRZMGhLV2xaWFVrZGFWV1JQVTBVNVYxcEhhR2hOU0VKMlZtMTBVMU14VVhsVmEyUlVZbXR3YjFWcVNtOVdSbXhaWTBaa2JHSkhVbGxhVldNMVlWVXhXRlZyYUZkTmFsWlVWa2Q0VDFOSFJrZFJiRnBwVmtWVmQxWnRjRWRWTVZwMFVtdG9VRlp0YUZSVVZXaERUbFphU0dWSFJtcE5WMUl3VlRKMGExZEhTbGhoUjBaVlZteHdNMWxWV25kU2JIQkhWR3hTVTJFelFqVldSM2hoVkRKR1YxTnVVbEJXUlRWWVZGYzFiMWRHWkZkWGJFcHNVbTFTZWxsVldsTmhWa3AxVVc1b1YxWXphSEpXVkVaelZqRldjMWRzYUdsV1ZuQlFWa1phWVdReVZrZFdXR3hyVWtWS1dGUldXbmRsVm10M1YyNWtXRkl3VmpSWk1GSlBWakpHY2xkcmVGZGhhM0JRVlRGa1MxSXhjRWRhUms1WFYwVktNbFp0TVRCVk1VMTRWVmhzVlZkSGVGWlpWRVozWWpGV2NWUnJUbGRTYlhoNVZtMDFhMVl4V25OalJFSmhWbGROTVZaWGMzaFhSbFoxWTBaa1RsWXlhREpXYWtKclV6RktjazVXWkZaaVJscFlWRlJLYjFOV1draGxSMFpYVFd4S1NWWlhkRzloTVVsNVlVaENWbUpIYUVOYVJFWmhZekZ3UlZWdGNFNVdNVWwzVmxSS01HRXhaRWhUYkdob1VqQmFWbFp1Y0Zka2JGbDNWMjVPVDJKRmNIcFhhMlIzWVZaT1JsTnJiRmROYmxKeVdYcEdWbVZXVG5WVGJGSnBWbFp3V1ZaR1l6RmlNV1JIV2taa1dHSkZjSE5WYlRGVFpXeHNWbGRzVG1oV2EzQXhWVmQ0ZDFZeVNsbFZiR2hoVWtWYVlWcFZaRXRUVms1ellVZG9UazFWY0ZkV2JHTjRUa2RSZVZaclpGZFhSM2h5VldwQ1lXTkdWblJsU0dSc1lrWnNOVnBWYUd0WFJrbDNWbXBTV2sxR1NsQldNakZHWlZaV2NscEhSbGROTW1oSlYxUkplRk14U1hsU2EyUm9VbXhLVkZac2FFTlRNVnAwVFZSQ1ZrMVZNVFJXYkdodlYwWmtTR0ZHYkZwaVdHaG9WbXBHYzJNeGNFaFBWbVJUWWxob1lWZFVRbUZoTWtwSVUydG9WbUpIZUdoV2JHUk9UVlpzVjFaWWFGaFNiRnA1V1ZWYWExUnRSbk5YYkZaWFlUSlJNRlpFUms5U01WcDFWbXhXYVZKdVFuWlhWbEpEWkRBMWMxZHJhR3RTTUZwWVdXeGFZVmRXV2xoa1J6bG9UVlZ3TUZsVldsTldWbHBZWVVWU1ZrMXVhR2haZWtaM1VsWldkR05GTlZkTlZXd3pWbXhTUzAxSFJYaGFSV2hVWWtkb2IxVnFRbUZXYkZwMFpVaGtUazFYZUZkV01qVnJWVEpLU1ZGcmFGZFNNMmhVVmxSS1JtVnNSbkZXYkdSVFRUSm9iMVpyVWt0U01WbDRWRzVXVm1KRlNsaFZiRkpYVjFaYVIxbDZSbWxOVjFKSVdXdG9SMVpIUlhoalNFNVdZbFJHVkZZeWVHdGpiRnBWVW14a1RsWnVRalpYVkVKaFZqRmtSMWR1VGxSaE1taG9WV3RXWVZsV2NGWmFSWFJVVm1zMWVsbFZaRzlVYXpGV1kwWmtWMkpIVGpSVWEyUlNaVlphY2xwR1pHbGlSWEJRVm0xNGExVXhXWGhWYkdoclUwZFNXRlJXWkRSbFZscFlUVlZrV0ZKcmJETldiWEJUVjJzeFNHRkZlRmROYm1ob1ZqQmFWMk5zY0VoU2JHUlhUVlZ3VWxac1VrTldhelZYVjFob2FsSlhhRzlWYWtwdlZERlZkMVpyZEU1aVJuQXdWRlpTUTFack1WWk5WRkpYVm0xb2VsWnRNVVpsVmxaelZteHdhVmRHU1hwWFYzQkhWakpPVjFSdVVsQldiVkpVV1d4b2IxbFdaRlZSYlVab1RXdHdTVlV5ZEc5V2JVcElaVWRvVjJKSFVrOVVWbHB6VmpGYVdXRkdhRk5pUm5BMVYxWldZV0V4VW5SU2JrNVlZa1phV0ZsVVNsSk5SbXhWVW1zNVUwMVdjREZXUjNodllWWktjMk5HYkZoV00xSjJWVlJHVDFZeFpISmFSbHBvVFd4S1dGWkdXbUZrTURGSFZtNVNhMUo2YkZkVmJYaHpUbFpzVm1GRlRsZGlWWEJKV1ZWV1UxWlhTbGxoU0VwWFlrWndTRnBGV2t0a1IwNUdUbFprVGxaWGQzcFdiWGhUVXpBeFNGSllhR0ZTVjJoVldXdGtiMkl4Vm5GUmJVWlhZa1p3TUZwVmFHdFVhekZZWlVaa1YwMXFWbkpXVkVwTFUxWkdjbUZHWkZOTk1taFZWbXhTUzFKdFZuTlNia1pYWWtkU1ZGUlVTbTlpTVZweVZXdDBVMDFXYkRSV1J6VlhWbTFLUmxOc2FGWmlSa3BZVmpGYVlWSXhiRFpTYld4T1ZqRktTVmRYZEc5U01WcElVbGhvYWxORk5WZFpiRkpIVmtaWmVXVkhkR3BpUm5CV1ZXMTRhMVJzV25WUmFscFlWa1ZLYUZacVJtdFNNV1IxVkd4U2FFMXRhRzlXVjNSWFdWWnNWMk5HV21GU1dGSlZWbTF6TVdWc2JGWmFSemxWWVhwR1Yxa3dXbXRXTWtwSVZHcFNWV0V5VWxOYVZscGhZMnh3UjFwSGJHbFNXRUpSVm0weE5HRXhWWGhYV0doV1lrZG9jbFV3WkZOWFJsSlhXa1JTYkZac2NGbFVWbFpyVjBaS2NtSkVUbGRpV0VKVVZqSnplRk5IUmtabFJtUk9ZbTFvYjFacVFtRldNazV6WTBWb1UySkhVbGhVVmxaM1ZXeGFjMVZyVGxkaGVsWllWakZvYjJGc1NsaGhSemxXWVd0d2RsWkVSbFprTVZweVpFVTFhVkp1UVhkV1JscFRVVEZhY2sxV1drNVdSa3BZVm0weGIyVnNXblJOVlZwc1ZteGFlbFp0ZUhkaFZtUkhVMWh3V0ZZelFraFdha3BQVmpGU2RWVnNRbGRpVmtwVlYxZDRiMkl4YkZkYVJsWlNZbFZhYjFSWGRIZFRWbFY1WkVjNVYySlZjRWxhVldSdlZqSktTRlZyT1ZWV2JIQjZWbXBHWVZkWFJrZGhSazVwVW01Qk1WWXhXbGRaVjBWNFZXNVNVMkpyTlZsWmExcGhWMFpzVlZOc1NrNVNiSEJHVlcxek5WWkdTbkpqU0d4WVlURndURmxXV2t0a1ZrWjFXa1prYVZkR1NsbFdiVEI0VlcxV1IxcElWbFppV0VKVVZtcEdTMWRHV2tkWGJVWnJUVVJHU0ZadE5WTmhNVW8yWWtaa1ZtSllhRE5VVlZwelZteGtjMVJzWkZkaVNFSmFWMVpXVjFVeFdsaFRhMlJxVWpKb1YxUlZaRk5YUmxWM1YydDBhMUl3TlVkVWJGcHJWR3hhV0dRemNGZGlXR2hVVlhwQmVGTkdTbGxoUjBaVFZqSm9WbGRYZEd0aU1rbDRWbTVHVW1KVldsaFphMXAzVFZacmQxZHRkR2hOYTNCSVdXdFNUMVl3TVhGV2EzaGFZVEZ3VEZwRldsZGtWMHBIWVVkb1RsZEZTalZXYlRGM1V6RktkRlp1VGxOaWExcFpXV3RrVTJJeFVsaGxSWEJPWWtad1NGWXlNVWRYUjBwWFVtcE9WVlpzY0hKV01HUkxWMGRXU1ZSc2NGZFNWbTk2Vm1wR1lXRXhaRWhXYTJoUVZtdHdUMVp0ZEhkVFZscHpXWHBHVkUxWFVrbFZNblJoWVd4T1JrNVdaRnBpUmtwSVZtdGFkMWRIVmtsVWJHUnBVakZLTmxaclkzaGlNVmw1VWxod1VsZEhhRmhXYlRGU1RVWndSVkpzY0d4V2F6VjZXV3RhWVdGV1NYbGhSemxYVmpOU1dGZFdXbk5XTWs1SFYyMUdVMWRHU2xaV2JURjZUVmRXYzJKR1dtRlNlbXhXV1Zod1IxWXhhM2RYYlhSWFRXdHdTVlpIY0ZOV1YwVjVWV3hPWVZac2NHaFpNbmgzVWpGd1NHSkhiRk5YUlVwU1ZtMHdlRTVIUlhoV1dHaFlWMGRvVjFsclpHOWpiRlYzV2taT1dGSnNTbGhYYTFKVFlrWmFjMk5HYkZWV2JGcHlWakJhUzJOdFNrVlViR1JwVjBWS1ZWWnFTbnBsUms1SVVtdGFiRkp0VWs5WmJURnZZakZhY1ZGdFJsZE5helY2V1RCV2IxVXlTa2hWYkdoVlZteGFNMVpYZUdGak1WWnlWR3hrYUdWc1dsbFdha1p2WWpKR2MxTnNhR2hTZW14WFdWZDBkMlJzV2tWU2JGcHJUVlp3ZVZwRlZURmhWa3AxVVZoa1YxSnNjRlJWVkVaaFkyc3hWMWRyTlZkU2EzQlpWbTB3ZUdJeVZuTlhibEpPVmxad2MxWnRlR0ZsYkZwMFpVaGthRlp0VWtoVk1XaDNWMFpaZWxGcmFGZGhhM0JRVm1wR1UyUldWbk5SYkdScFZtdHdWbFl4WkRSaU1rbDRZa1prWVZKc1dsTlpiRlpoWWpGU1dHUklaRlJXYkZZMVdrVmpOVll5U2xaalJXeGhWbGRTZGxacVNrdFRSbFp5VDFaV1YySklRalpXYlhCSFdWWmtXRkpyWkdoU2F6VndWVzAxUWsxV1dYaFhiR1JhVmpCV05GWlhOVk5WTWtweVRsWnNXbUV4Y0doV01GcHpWbFpPYzFOck5WTmlXR2hYVmxjeGVrNVdWWGROVm1ScVVrVmFXRlZxVG05a2JHeFhWMnQwYWsxck5VaFphMXB2VmpBd2VGTnFTbGRXYkVwSVZrUkdXbVZHY0VsVGJVWlRZa2hDZGxaR1pEUlRNV1JIVjJ0a1dHSlZXbkpVVlZKSFUwWmFkRTVXVG1oTlZXOHlXV3RhYTFadFNsbGhTSEJWWWtad2VsWnRNVWRTYkZKeldrZHNWMWRGU2t0V01WcFhWakZWZUZkc2FGUmlSM2h2VlRCV2QxZEdiSEpYYm1SVVVtNUNSMVl5ZERCaE1VbDNUbFZrVldKR2NISldSM2hoVjBkUmVtTkdaR2xYUjJoVlZsaHdRbVZHVGtkVGJHeG9VakJhVkZacVNtOVdiR1JZWkVkMGFVMXJiRFJXYlRWSFZXMUtWbGRzYUZwaE1YQXpWRlphY21ReFpIUmtSMmhPWVROQ1NWZFhkRk5VTVZsM1RWaEdWMkV6YUdGWlZFWjNWRVp3Umxkc1pHdFdNSEJJV1ZWa2IxUnNaRVpUYWxaWFlsUkdNMVY2Umt0a1JscDFWR3hPYVdFeGNGcFhWM1JyVlRKSmVGVnNhR3hTV0VKUFdXdGFkMU5HV1hsTlZXUm9VbFJHVjFsclVsTldNVW8yVm14Q1YwMUhVa3hXTVZwSFl6RldjMXBIYUdobGJGbDVWbTF3UjFsWFJYaGFSV2hYWVRKb1VWWnRkSGRVTVZwMFpFaGtWRlpzY0hwWFdIQkhWa1V4V0ZWcmJGWk5ibEpvV1ZkNFQxSnJOVmRhUm5CcFVtdHdTVlp0ZEdGa01XUklWbXRzVldKSFVuQlZha1pMVG14YWNsa3phR2xOVmxZMFZqSjBZVmRIUm5OalJtaFhZVEZhZVZwVlduTmpWa3B6WTBkNFUySldTalJXYWtvMFV6SkdTRk5yV21wU2JWSlpWbTE0UzFSR1dsVlNhemxUVFZad01WVnRlRTloVmxwWFkwWndWMkpVUVhoVlZFWlBWakpLUjFkc2FHaGxiWGhaVmtaYVlXUXhUa2RYV0d4c1VqTlNXRlJYZEhkVFZscElZMFpPVjFZd1ZqVldWM2hQV1ZaYWMyTkhhRnBOYm1nelZXcEdkMU5IU2toaVJrNVlVbFZ3VTFadE1IZGxSVFZJVWxob1YxZEhhRmxXTUdSdlZqRnNjbHBIT1dwaVJsWXpWMnRhVDFkR1NuTlRiR2hZWVRGS1ZGbHJXbUZqTWs1SFlrWldWMkpHY0hsV2FrSmhVekpPZEZOclZsVmlSMUp3VmpCV1MxWldXbkZUYm5Cc1VtczFTVlZ0ZEdGaVJrcDBWV3M1V21KVVJuWlpha1poWTFaR2RGSnNaRTVoZWxZMlYxUkNWMkl4VlhsVGEyaFdZa2RvVmxadGVHRk5NVnBZWlVkR2FrMVdXbmxXUjNocllVZFdjMWRzYkZkaGExcDJXV3BLUjJNeFRuTmhSMmhUWlcxNFdGZFdaREJrTWxKelYydFdVMkpHY0hKVVZscDNaVlp3UmxaVVJtaFdhM0F4VlZab2ExWXhTbk5qUmxKV1ZrVmFhRmt5YzNoV01XUnlUbFprVTJFelFscFdiVEIzWlVkSmVWWnVUbGhpYkVwUFZteGFkMk14V25SbFIwWnNZa1p3TUZwVmFHdGhSbHAwVld0b1ZrMVhhRE5XTUZwYVpXeEdjbUZHWkdoaE0wSlJWbTF3UjFVeVVsZFdiazVTWWtkU2NGWnRkSGRXYkZsNFdrUlNhVTFyYkRSWmExcHJXVlpLYzFkc1RscGlSbHBvV1dwR1UxZEhVa2xhUmxKWFlrWlpNVmRyVm1wT1ZsbDVVMnhhYWxKWGVHaFdiR1JUWkd4YWNWTnJkRlJTYkZwNVZERmFWMVl5U2tsUmFscFhZbGhDU0ZkV1dtdFhSa3B5V2tkb1UyRjZWbmRXVnpBeFVXc3hWMWRZYUZoaVIxSmhWbXBDVjA1R1dsaE9WazVXVFd0d2VWUnNXbk5YYlVWNFkwZG9WMDFHY0hwV2JGcFBZekZPY2s1V1RtbFRSVXBJVm14amVHVnJOVmRYYTJSVVltdHdjVlV3WkRSWFZteFZVbTVrVlZKdGVGaFdNblF3WVRGYWNsZHFSbGhoTVhCeVdWWmFhMUl4VG5OaVJtUnBWa1ZKTUZac1kzaFdNVWw0WTBWc1YySkdjSEJXTUZaTFZsWmFkR05GWkZSTlYxSklWakowYTFkSFNsWlhia3BWVmxaS1NGVXdXbUZrUlRWWFZHMW9UbFpYT0hsWFYzUmhZVEZhZEZOc2JHaFNSVFZXVm14YWQyVnNXblJsUjNScVRWWktlbGRyV210aFZrNUdVMjFHVjAxV2NGaFdha1pXWlVaa2MyRkdVbWhOYkVwNFZsZHdTMkl4V1hoVmJGcGhVbXMxV1ZWdGVGZE5NVmw1WkVSQ2FFMVZiRE5VYkZaclZsZEtSMk5JU2xkU00yaG9WakJrVW1WdFRrZGFSMnhZVWpKb1ZsWnNhSGRSYlZaSFZHdGtWR0pIZUc5VmFrSmhWa1phY1ZOdE9WZGlSMUpaV2tWa01HRlZNWEppUkZKWFlsUldTRlpYTVV0V2JHUnpZVVp3YUUxWVFYcFdSbHBoWTIxUmVGcElVbXRTTW1oUFdWUk9RMU5XWkZoa1JrNVZUVlpzTTFSV2FFZFdNa1Y2WVVkR1dsWkZXak5XUlZwM1VteGtjMXBIZEZkTlNFSkpWMVpXYTJJeFVuTmFSVnBVWVd4YVdGbHNVa2ROTVZZMlVtdDBhMUpzY0RGV1IzaFBZVmRGZUdOR2NGaFdNMUp5VmxSS1NtVkdWbk5oUjNoVFYwVktVRmRYZEdGa01VNUhWMWhzVGxaWFVtOVZiRkpIVmpGc2NsVnNUbGROVlc4eVZtMTRRMVl3TVVoVmEzaFhUVlp3U0ZsNlJsZGpNWEJJWVVkb2JHSkdiRFZXYlRGM1VqRnNXRkpZYUdGU1YyaFlXVlJLYjFWV1duUmtTR1JWVFZad01GcEZhR3RXUmxwelkwaHdXRmRJUWtoV2ExVjRWMFpXY21KR1drNWliRXB2VjFaa05GUXhTbkpPVm1SaFVtNUNjRlZ0ZEhkVFZscDBaRWRHYTAxWFVrbFdiWFJ6VmxkS1NGVnVRbFpoYTFwTVZHMTRZV05zYTNwaFIyeE9WbXhaTUZacVNqQlpWbVJJVW01T2FsSnRhRmhaVkVaaFpWWndWbGR1VG1wV2EzQjZXVEJrTkZVeVNsZFRhbEpYWVd0dk1GWkVSbHBsUms1elYyMXdVMlZ0ZUZsV2JYQlBWVEZrUjFwR1pHRlNWR3h4VkZaYWQwMVdWblJsUms1b1VsUkNORlV5ZUdGV01rcFZVbFJDVm1WclJqUlZha3BMVWpGa2MyRkhhR3hpV0dneVZteGtkMUl4YkZoV2JrNVlWMGQ0YzFWc1pGTlhSbEpZWkVaa1QxSnRkRE5YYTJNMVYwWktjMk5FUWxkV00yaFFWMVphWVdNeVRraGhSbkJPWW0xbmVsWlhjRWRrTVVsNVVtdGtWV0Y2Vms5WmJHUnFaVVphZEUxVVVtaE5SRVpJVmpGb2IxWldaRWhoUjJoV1lrZFNWRlpxUm5OamJIQkhWR3hvVjJKWVozZFdSbHBoVkRKR2NrMVdaR3BTUlVwV1ZtMTRTMUpHV2toak0yaFhUV3R3UmxadGVGZGhWa2w0VW1wT1YyRnJTbWhWZWtwUFpFWk9jbFpzVm1sU01VcDNWbXBDVjFNeFdsZFhia1pVWW01Q2MxVnRkSE5PUmxwSVRsVTVWbUpWY0VsV1Z6QTFWMnhhUms1VlVsWk5WbkJ5Vm14YVQyTldWblJoUlRWb1pXeFdNMVp0TUhoTlIwVjRZa1prVkZkSGVHOVZibkJ6Vm14YWNsWnJkRlZTYkhCWldsVmtSMkZyTVZkWGJteFlZVEpTZGxaSGVHRldWa3BWVVd4a1YxSldjREpYVjNCTFVqSk5lRlJ1VG1oU2JIQndWbXBLYjFkR1pGaGxSemxWWWxaYVNGWXhhR3RYUjBwSlVXNUtWVlpzY0ROYVZscDNVbXhhVlZKdGFGZGhNMEY0VmxaYWIyRXhXWGhUYms1cVVteEtWMVpyVm1GaFJtdDVZek5vVjAxWFVubFViRnByVlRKRmVsRnNjRmRpVkVJeldsVmtTbVZXV25WVWJHaHBZWHBXV2xkWGVHOVZNVnBYVm01R1UySlZXbFZWYlhoelRsWndWbUZIZEZkTlJFWlhXVEJhYjFkdFJuSk9WRTVYVFVad1lWcFhlRWRqYlVaSFdrZG9hRTB3U2xKV2JURjNVakZaZVZWc1pGVmlhelZZV1d4a05GWkdVbGRXYm1SWFlrWnNORmRyVWxOaFZURnlZa1JTV21FeGNISlhWbHBMWXpGa2MxUnNjR2xTYkhCdlYxZHdSMVV4V1hoalJXUlZZa1pLVkZsclpETk5WbHBJWlVaYVQxWXdXa2xWTW5SaFlXeEtSbE50YUZkaVIxSlVWVEJhWVdNeFpIUlNiR1JPWVhwV1NWWXlkR0ZXTVZsNVUydHNVbUZzY0ZoWmJHaERVMFprVjFkdGRGaFNhM0I1V1ZWa2QxVXdNWFZoUm14WFlXdEtXRlY2Ums5U01XUjFWVzE0VTAweFNsRldWM0JEVmpBMVIxZHNhRTlXYXpWWFZGZDBkMlZXVW5OWGJrNVlZbFZXTkZrd1pHOVdNREZIWTBod1YySkdjRkJaZWtaUFkyczFWMVJ0YkZoU01taFpWbTE0YW1WSFZuSk9WbVJYVjBkU1QxWnRNVk5qVmxaeVZtMUdXRkpzV25oV1J6QTFZVEpLU0dWR2FGZE5ibEYzV1ZkemVHTnJOVlpoUm5Cb1RWaENNbFp0Y0VKa01sWkhWRzVHVkdKSFVsaFphMVozVTFaa1YxVnJaRmhpVmxwSVdUQldjMVpIU2xoaFJsSlZWa1ZhVEZac1dtRlNNVnAwVW0xMFRsWXhTbGxXTW5SaFlqSktSMU5ZWkZoaVZWcFlXV3hvVG1WR1dYZFhiVVpyVWxSV1dGWkhNVzlVYkZwWVQwaHNXRll6VW1oWlZFWmhaRVpPYzJKSGFGUlRSVXBYVjFkMFlXUXlWbk5YYmxKT1ZsZFNWRmxyV2t0bGJHUnlXa2hPVjAxWFVrZFZNblF3VmpBeFYyTkdhRmRoYTFwWFdsVmFhMk15UmtkVmJXeFRUVEpvTWxac1VrTldNbEY0V2tWa2FWTkZjRmxaYlRGVFZsWldkRTVWVGxOTlZtdzFXa1ZTUTJGRk1WWmlSRTVWWWtaYWNsWnNaRXRTTWs1SlUyeGtVMDB5YUc5V2FrSnJWVzFXZEZSclpHRlNNbmhaVldwS2IxWnNXbk5oU0dSU1lsWmFTRlpIZEd0V1IwcElaVWM1Vm1GclNtaFdhMXBoWTFaT2RFOVdaR2xTTVVwYVYydFdhMDFIUmxaTldFcHBVa1pLV0Zsc1VsZFRSbHBZVFZWMFYySkhVbnBaVlZwM1lVVXhXVkZZY0ZkU2JIQm9XVEl4VW1WR2NFbFZiWFJUVFcxb1VGZFdVazlSTVU1WFdrWm9hMUpyTlZaVVZscHpUVEZTVjJGRlpGZE5hMVkyV1ZWa1IxZHNXa1pYYWs1WFVsWndNMVZ0ZUd0ak1YQklaRVprVGxORlNrcFdNVnBYWVRKSmVGVnVUbUZTVm5CVldWZDRZVmRHYkhOVmEyUk9UVlpaTWxWdGREQmhNVXB6WTBSR1YxSXphRkJaVm1SR1pVZE9SMk5HYUZkTk1VcDVWbXhTUzFOdFZrZFdiazVvVWpOb1ZGWXdWa3RWUm1SWVpFZEdhMDFWTlVoV01XaHpWR3hhV0ZWc2JGWmhhMG96VmpCYVYyUkhUa1pQVm1SWFlraENObGRVUW05VE1WbDNUVlZvVm1FemFGaFVWV1JUVjBaVmVGZHNUbXBOYXpWSVYydGFUMVl5U2xWaGVrcFhZbFJHTTFWcVJuTlhSa3BaWVVkR1UxWXlhRmxYVmxKTFlqRldWMWR1VW10VFIxSldWRlphZDJWc1dsaGtSMFpWWWtWd2Vsa3dhSGRYUjBWNFUyeFNXbFpXVmpSV01HUlhVakpHUjFkck5XbGlWMmcxVmpGYWEwNUdVWGhUYmtwUFZtMVNhRlZ0TlVOalJsWjBaRWhrVkZac2NEQmFSV1JIVjBkS1YxZHNiRmRpV0ZKMldWUkdTbVZzUm5WUmJGcHBWa1phUlZadGNFZFpWbVJHVFZaV1ZtSlhhRTlXYlhSM1RteGFjVk5VUmxkTlZsb3dWVzAxVDJGc1NuUmxSbWhhVmtWYWFGWkZXbk5XYkdSMFVtMXdWMkV6UVhkWGExWmhWREZTYzFkWWFGUmlWVnBaVm10V1MyRkdaRmRhUldSWVVtdHdXbGt3V2t0aFZrbDZZVVpzV0ZZemFIWldWRVpyVWpGd1IxcEhSbE5pVmtwNFZrWmFhMVV3TVZkV2JsSnNVbFJzYjFadGRITk9SbFY1VGxjNVYwMVZjSHBaTUdoTFZqRmFSbU5HYUZwbGEzQk1WV3BHYTJSR1NuTlZiRTVYVW14d1lWWnRkR0ZaVm14WVZWaGtUbFp0VWxoWmEyUnZZekZXYzFwR1RsaFNiRXBaV2tWYWExUXhTblJrUkU1WVlUSk5NVll3V2t0ak1rNUZVV3hrVjAweWFGRldNVnBoV1ZkTmVWUnJhR2hTYmtKUFdXMHhibVZzV2xoalJXUnJUVlZzTlZWdGRHdFdWMFkyVm1zNVdtSkhVbkZhVlZwaFpFVXhWVlZ0YUU1U1JWcEpWbXBHYjJJeFdsZGFSV2hvVWpKb1YxbHJaRk5XUmxweFVtNU9hbUpJUWtoV1IzaHZWakpLV1ZvelpGZFNiSEJvVmtSS1IyTnJNVmRhUjNCVFVsVndWMVp0TVRSVE1VcEhWMnRvYWsweWFGaFVWM1IzVW14YWRHVkdaR2hXYTJ3MFZXMXdUMVl5Um5KVGJXaFdaV3R3VUZwRldrOWpiRnB6Vm0xc1UwMVZjRE5XYlhCRFZqRk5lRmRzWkZoaWExcFZXVzAxUTJNeFZuUmpla1pVVm14YU1GcEZaRWRoVmtweVkwUkNWMVl6VFRGV01qRkxWbFpLZFZkc2NHaGhNWEJ2VjFSR1lWSXlVa2RUYms1aFVsUldiMXBYZUZwTmJGbDRWV3RPVjAxcmJEUldiR2h6VmtkRmVXRkdaRnBoTWxKMlZtMTRZV1JIVmtoU2F6Vk9WbTVDV2xkc1ZtdFNNa1p5VFZac1VtRXpRbGxaVkVaM1ZrWmFTR1ZIUmxkV2EzQldWVmQ0YTFZeFNsZGpSRXBZVjBoQ1NGWnRNVmRXTVU1ellrZHNVMDF0YUZWWGJHTjRUa1prUjFwR2FHdFNNRnBWVkZaa1UxTkdXWGhoUjNSWVVqQndlVlJzYUV0V2JVWnlWMnQ0Vm1GcldqTlZiWGhoVmxaS2RHRkdaR2hOTUVZMFZteGFZV0l5UlhoWFdHaFVZbXMxY1ZWdGVFdFdNVnB5Vm0xR2FGSnRkRFZaZWs1dlZqQXhXRlZ1YkZWaVJuQnlWbFJLUm1Wc1JuTmpSbVJwVmtWR05GZHJVa2RYYlZaSFdraEtZVkp0YUhCWlZFWjNWbXhrVjFWclpHdE5hekUwVmpJMVUySkdTWGRYYXpsWFlsaG9hRlJWV25kV2JIQkdXa2RvVTJKSVFqVlhWM1JUVlRGYWRGTnJhR2hUUlhCWVdWZDBkMVJHV25OWGEzUlhWbXRhZWxrd1pEUmhSVEIzVTJ4R1YwMXVhRmhaVkVaU1pVWk9kVlZzVG1oTmJFcFVWMWQwYTFVeVRrZFhibEpyVTBkU1dGbHJXbk5PUm1SeVZXdE9WMDFFUm5wVmJYQlRWMGRGZVdGR1FsZE5SMUpIV2xaa1IxTldVbk5YYldob1pXeGFSbFp0ZUZkWlZteFlWV3RvVjJFeWVGWlpXSEJ6Vmtac2NscEVUazVXYkhCSldsVmFZVlF4V1hkWGEyeFdUVzVTYUZsWGVFdGtSMVpJVW14a2FWSnVRWHBYYkdRMFdWZE9WMVJ1U2xoaVdHaFVXV3RvUTFsV1pGZFdiWFJUVFZaV00xUlZhSE5oUmtwSFkwWm9XbUpIYUVSVk1GcHJWakZrZEdSR2FGTmhNMEkxVmpKMGEySXhWWGxTYWxwWFltMVNXRlp1Y0VOTk1WSnpWbFJHVTAxWFVscFpWVnBoWVVVeFJWWnRhRmRpV0VKRVZtcEJNVkl4WkhOaFJUbFhWa2Q0V2xaWE1IaFZNVTVYWTBaYVdtVnNXbGhaYkZaWFRrWlplV05GT1ZkTlJFWklXVEJhVTFZeVJuSlhia3BoVW14d00xVXdaRWRTTVZKMFlrWk9hVmRHUlhoV2JURTBZVzFXUmsxVmFGWlhSM2hWV1ZSS1UxWldiSFJqZWtaWFZtMTRXVnBGWkVkWFJrcDBaVWh3V2xaWFRURldiRnBMWkVkV1IyRkdaRTVpYkVZelYxWmtlbVZIVG5KT1ZscG9VbTVDYjFSV2FFTmxWbHB6Vld0MFZFMVZjREJXUjNSaFlWWktkRlZzYkZaTlJscE1WV3RhWVZJeFpIUmtSbFpwVm14d1NWZFVRbGRqTVZwSVUyeG9hRkpzU2xaV2ExWjNaR3hhYzFkdFJsTk5WbkF3VlcweE1GUnRSWGhqUld4WFlXdHJlRlpVU2tkak1VNXpZVVphYVZKc2NGZFdiVEUwV1ZkV2MxVnVTbGhpVlZwWlZXeFNWMVl4VVhoWGJUbFdUVVJHU2xWWGVHOVdNa1p5WW5wQ1dsWkZXbWhhUlZwUFl6SktTR0ZHVGxOV1JscFlWbTB4TkZsWFVYbFNhMlJZVjBkU1dGWnJWbUZYUm14eVYydDBiR0pIVW5sV2JGSkhZVVpLVlZGcVRsWk5ibEYzVm1wQmVGWXlUa2RoUm1Sb1lURndXRmRzVm1GaE1sSlhWRzVLVDFadFVuQldiWFIzVGtaYWMxcElaRlJOYTJ3MFdXdGFhMVp0U2toVmJHeGFZbFJHVkZacVJsZGtSVEZWVVdzNVUySkhkekZYYkZaclRVZEdTRkpxV2xOaVIzaFlWbTV3VjJWc1duTmFSWFJUVFdzMVNsVXllR3RWTURCNVlVYzVWMkZyU25KV1Z6RlhaRVpTY2xwSFJsTk5ibWhhVmxkd1MySXhXbk5YYms1b1UwZFNVMWxzV21GVFJscElaRWQwVjFJd2NFbGFWV00xVm0xR2NsTnRhRmRoTVhCb1dURmFUMlJGT1ZkYVIyeFRUVlZ3WVZZeWRGZGhNREZJVW14YVRsZEZjSEJWYTFwTFYwWnNjMVZzWkZSU2JIQlpWRlpXTUZZeVNraFZibkJhVmxad00xbFZWWGhYVmtaWlkwWmtVMkpJUW05WFZFbDRWVzFXUjJORmJGWmlXRkpVVkZjeGIxVkdaRmRWYXpsU1RWVTFXRmRyV205aE1VcHlUbFphVlZac2NIcFVWRVpUVmpKR1JscEdaRTVoTVZreVYxWldhMUl4WkhOWGExcFlZV3MxV0ZWc1duZE5NVlowWlVkMGFrMVlRa2xhUlZwclZHeE9SbE5yY0ZkTlZuQllXVlJLU21WR1ZuVlViVVpUVm01Q1ZsZFdaRFJaVm1SSFlraE9WbUV5VWs5VVZscGFUV3hXZEdSRVFtaE5WWEI2V1RCU1IxWXhTWHBoUmtKYVZtMVNSMXBWWkU5U01rNUhZVVprVGsxVmNEVldiWGhUVXpGT2RGWnJaRmRpYXpWdlZXcE9iMVpHV1hkV2EzUldVbTFTV1ZwRlpFZGhNREZXVGxWb1YwMVhhSHBXUjNoaFYwWldjMkpHV21oaE1HOTZWbXBDWVZZeVVraFVhMXBRVm0xU1dGbHJhRU5PYkdSVlVXMDVWRTFXYkROVVZsWnZWbTFGZW1GR2FGVldWMUpVVmpCYVZtVkdaSE5VYlhCT1lYcFdTVll5ZEdGVU1WbDVVMnhXYUdWcmNGaFpiRkpIVFRGV2NWSnVUbGhTYTNCYVdWVmtSMVV4V1hsaFJteFlWbXhLVEZscVJsZFdNV1IxVlcxMFZGSXhTbGRXUmxwaFpEQXhSMk5GV21oU00xSllWVzE0ZDJWc2EzZGhTR1JZVW0xU1NsVlhkRzlXTWtWNFZtcFNWMDFHY0ZoWk1qRkxVakZrY2s1WGJHbFNXRUl5Vm1wR1lXRXdOVWRWV0doVVltdHdVRlp0TVZOaFJsWjBUbFZPYWxKc1dqQmFSV2hyVmtaYWMyTkVRbUZTVjFKSVdWUkJlRmRHVm5KaVJtUnBWMFpLTmxadGVHdFRNVTVIVm01V1VtSkdjRzlaVkVaM1ZGWmFTRTFVVWxwV01EVjZXVlJPZDJGR1NYbGxSVGxYWWxSRmVsUldXbUZYUjFaSVQxZDBUbFpzY0RaV01uUlhZakpHUjFOdVVtaFNiV2hoV1d0YVMxTkdXa1ZTYm1SWFlrZFNNVlpITVhkV01rVjZVV3BhV0ZaRlNuSlVhMXBXWlZaT2MxcEdVbWxXVm5CYVZtMTBWMU15VG5OaVNFWlRZbFZhVkZSV1ZURmxiR3h5VjJ0MGFGWnJiRFpaVlZwelYwWlplbUZJV2xkV1JWcHlWV3BHZDFJeGNFaFNiRTVwVm10d05GWnJXbUZoTVZWM1RWWmtWMkpzU25OVmJGSnpZakZhZEdSSVRrOVNiRlkxVkd4ak5WWXdNVlpqU0hCYVRVZG9URlpxUm1GU2JVNUhZVVp3YkdFelFrMVdWM0JIWVRKU1IxTnVUbFppUlRWWVZXMTRkMWxXV25Sa1IwWmFWbTE0V1ZaV2FHdFViRnAwVld4b1dtRXlVblpaZWtaWFl6RndSMVJzYUZOaVJYQmFWMnRXWVdFeFVYaFRibEpyVWtVMVdWbFVTazVOVmxsM1YydDBhazFyTlVaVlYzaHJWakF3ZVdGR1JsZE5WbkJvVjFaa1RtVldVbkpoUjJoVFltdEtVRmRYTUhoaWJWWnpWMnhvYWxKWFVuSlVWbFp6VGxaV2RHUkhkRmRXTUZreVZtMXpOVmR0U2toVmJrWmhWbFp3YUZwRlZYaFdWbFowWVVVMVUxSldjRXBXYlhCSFlqSkplRmRzWkdGU1YyaHZWV3BLYjFZeGJISmFSazVYVW14d2VGVnROVTloYlVwSlVXdG9WMUl6YUhaV2FrcExWMVp2ZWxwR1pGTmlTRUp2Vm10U1MxSXlUbkpOVm1SaFVqTkNWRlZzVm5kV01WcDBUVlJTVkUxVmNFaFdNblJ2WVdzd2VXRkdhRlZXTTFJelZXMTRZV1JIVmtkYVIyaFhZVEozTUZaWE1YZFVNVmw1VW01S1ZHSlhhRmRhVjNSM1ZVWndSbGRyT1dwaVJuQjZWbTB4YzFVd01WWmpSRTVYWWxoQ1JGWnFSazVsUm1SeldrWm9hV0V4Y0ZaWFZ6QXhVVEpOZUZadVVtcGxhMXBWVm0xNFlVMUdjRVphUldSb1ZtdHdlVmt3VWtOV01WbDZWRlJHVjAxcVJreFdiRnBMWkZaa2MyTkhhR2hOV0VKMlZqRlNSMWxXU1hsVmEyUlVZbXMxYUZWc1VsZGlNWEJZWlVad1RtSkdiRFJXVjNSUFZqQXhjbUpFVWxkaVIyaDZWbXRrUm1WWFJrZGFSbkJvVFd4S01sWnRNVFJaVjFKSVZtdG9VMkY2Vms5V2JUVkRWMnhrYzFadGRGTk5hMXA1VkZaYWMxVnRSWHBSYkd4YVZrVmFNMVpyV21GVFIxWklVbXhrVjJFelFsZFdWbVEwWVRGWmVGTnNaR3BTUlhCWlZqQm9RMU5HV25STlZtUlhUVlUxZWxsclpITlZNREYwWVVaV1dHSkhUalJVYTFwclVqRndSMkZIZEZOTlJuQldWa1phYTFVeFRrZFhXR2hvVWpOU1dWVnFRbmRsVmxKellVVjBWMkpWV25sV01uUTBWbTFHY2xkcVRsWmlXR2hvVm14YVMyUkhSa2RhUjJoT1RVVlpNRlp0ZUdGWlYwbDVVbGhvV0ZkSGFGVlpiWE14WTFaV2RHVkZkRmROVm5CNVZtMHhSMkZHU25Sa1JGWmFaV3MxZGxacVFYaFhSbFoxWWtaV2FWSnVRbmxXYkZKTFVtMVdjMUp1VG1wU2JWSndWbXRXU21Wc1pITldiWFJVWWxaYVdGWXlOVmRXVjBwSVlVaENXbGRJUWxoV01uaHJWMGRXU0U5V1drNVdia0paVm0wd01WSXhWWGxUYkZwWVlrWmFWMWxzYUc5bGJGSnpWMjVrVjJKVldrbGFSVnByVkd4S1JsZHNhRmhXUlVwb1dXcEdhMlJHU25WVGF6bFhVbFJXV1ZaR1ZtRmtNa1pIWWtSYVUySllVbkpWYWtKaFUwWmtjbHBIT1doU1ZFSXpWVEo0UzFZeVNsVlNhazVXWVd0YVYxcFdXbGRqTVhCSFdrZHNhR1ZzV2xWV01XUXdZVEZWZVZSclpGaGliRXB5VlRCa1UxZEdiSEpYYms1UFVtMVNlVlpYZEU5V01ERkZVbTV3Vm1KWVFsUldNR1JHWlZkR1IxRnNaRTVTTVVwSVYyeGFhMUl4VGxkVmJrNVlZbGRvYjFwWGVHRlNiRnAwWlVaa1dsWnRlRmxXVjNSdlZqSkZlV1ZHV2xwWFNFSjZWbXRhYzJOc2NFVlVhelZYWWtoQ1NsZHNWbUZaVmxGNFYxaGtXR0V5ZUZkVVZ6VlRZVVpzV0dWRmRHdFNNVnBKVlcxNGEyRldTblZSV0hCWVlrZFJNRmRXWkU5V01WSjFVMnhvYVZkSGFGVlhWM1J2VVRGc1YxcEdaRmRpV0ZKVVZGWmFWMDB4VWxaaFNFNW9VbXR3U0Zrd1dtOVhiVXBJWVVWU1ZrMUdjSEpXYWtaclpFZFNSMkZHVG1oTk1Fa3hWakZhVjJFeVVYaFdXR1JPVjBaYWIxVnRNVFJYUm14WVpFVjBXRkpzV1RKVmJYTTFWVEF4V0ZWcVJsZFdla1V3VmxSQmQyVkdUbk5TYkdSWFRUQktSVlp0Y0VKTlZrbDRXa2hPYUZKVWJGaFdhMlEwVjJ4YVdFMUlhRlpOVlRWWVdUQmFZVmR0Vm5OWGJHaGFZa1phV0ZScldscGxWMDVHVDFaa1RsSkZXa2xYVkVKdlpERlpkMDFWYUZaaVJrcFhXV3hTUjFaR1ZYZGFSVGxVVWpCd1NGWkhNWE5WTURCNFVsaG9WMkpVUlRCWlZ6RlhVbXN4Vmxkck5WZFdNbWhWVjFjeE5GTXhXa2RpUm1oc1UwZFNXVlZ0TVRSbFZtUnlXWHBXV0ZKc2NEQmFWVnBoVm0xS1ZWWnVTbHBXVm5CTVdrVmtWMUl5UmtkYVJUVnBZa1ZaZWxZeFdtdGxiVlpJVkc1S1QxWnNjRzlWYlRWRFlqRlNWMkZGVGs1aVJuQXdXVEJXUzJFd01YTlhiR3hXWWxoU2RsWlZXbUZrUmxaellVZEdWMDB4U2t4V1JsWmhXVmROZUdFemNHaFNiVkpQVm14a00wMUdaRlZSYkdScVRWWnNOVlV5ZEd0aGJFNUdVMnhvVlZaV2NHaFdSVnBoWXpGa2RGSnRkRk5OUkZaSVZqSjBZVlV4VW5OWFdHaFVZVEo0V0ZsWGRIWmtNV3hWVW0xMFZGSnJOWHBXTW5odllWZEZlbEZzWkZkaVdHaG9WWHBHVDFJeFdsbGFSbWhwVmxad2VWWlhlRk5XTVdSSFYydG9UbFo2YkZaWmExcDNWMVpSZDJGSVRsaFNiR3cyVmxjeGIxZHNXa1pYYldoaFVsWndVRmw2U2t0VFIwWkhWR3hPVjFKc2NGbFdiVEI0VGtac1dGVlliRmRpYXpWWldXMTRTMk14Vm5GVWJFNXFWbXhLV0ZZeWREQmlSMHBJVlc1c1YwMXFSWGRaVlZwaFkyczFWbHBHV2s1aGExcEpWbTF3UW1WR1dYbFVhMlJvVW0xU2IxbFVSbmRYUm1SelZtMUdhRTFyTVRWVmJYUnJWbTFLV0dGRk9WcGhNVm96Vkd0YVlXTXhjRWxhUmxKT1lUSjNNRlpxUm05aU1WcDBVMnRrYWxJeWFGZFpiR2hPWlVaWmVGZHNaR3RTTVZwSVYydFZNVlJzV25Sa2VrWllZVEZhVkZWVVNrZFNhekZYVjIxc1UxSlVWbGRYVjNSaFdWZE9jMWR1VG1GU1dGSlVWRmR6TVZOc1ZYbGxSM1JXVFVSQ05WbFZZelZXTWtaeVUyNUtWMVo2UmxoYVJWcFRZMnh3U0ZKc1RrNWliV2hoVm14a2QxTXlTWGhYYms1WVltczFiMVV3WkZOVk1XeHpWMjFHVkZKc2NFbGFSV1F3VmpGWmQyTkZiR0ZXVjJoRVZtMHhTMWRXVWxsaFJuQm9ZVEZ3VlZacVFtdFdNVXAwVld0a1lWSXllRlJVVmxaM1dWWmFjbGR0Um1sTmJFWTBWbGMxVDFkSFNuSk9XRVpXWWxSR2RsZFdXbk5XVms1MFQxWldVMkpXU2xsV2Frb3dUVVpSZVZOc1dtcFNWMmhoVm14YWQwMHhiRlpXV0doWVZtdGFXbGt3V205aFZrbDRVbGhrVjJGcmJEUldha1poWTJzMVYxcEhhRk5OTVVwVlYxZDBZV1F5VW5OYVNFNWhVa1ZLWVZadE1WTlhSbVJ5VjJ4a1ZtSlZjRlpaYTJoSFZsWmFjMk5JY0ZWV1JWcFVWbXBLUjFKc2NFZFhhelZvVFZacmVGWXhXbGRoTVVsNFYxaHNVMkpyY0ZCV01GcDNXVlphYzFkdVpHeFdia0pZVjJ0Vk5WUXlTa1pqU0hCYVZsWndjbFpIZUU5U2JFNXlZMFprVGxadVFsbFhWbEpMVTIxV1IxWnVWbFZpVlZwVVZtMDFRMVpzWkZoa1JtUnJUVmRTU0ZaWGVHdFhSMHAwVlcwNVZtSlVSbFJXTUZwYVpWZE9ObEp0YkZOaVNFSTJWbFJLZDFJeFdYaFhXSEJvVW0xb1lWWnNXbGRPUmxweFUyczVVMDFyTlVoWlZWcHJWR3N4Vm1ORVZsZGlXR2hVVlhwR1VtVkdUbGxoUm1ocFlrWndWVmRYZEZka01XUkhWbTVPVjJKdFVsZFZiWGgzVjFaU1ZtRkhPVmRoZWtaWlZsYzFkMWRzV2taT1dFcFhZV3R3VEZZeFdsZGpNa1pIVm14a1RrMVZiRFpXYlhCRFdWWlplVlZyYUZWaE1YQlJWbTB4VTFkR2JISmhSVTVQWWtad2VGVXhVa2RoTURGWVZXNXdWMDF1YUhKWlYzaExWMWRHU0ZKc1ZsZGxiRnBRVjJ4V1lWZHRVWGhYYkZaWFlrZFNUMWxZY0ZkVGJHUlhWbXhhVGxZd1dsaFdNV2h6WVVaS1dGVnNhRnBpUmtwSVZGUkdWMk5XU25WVWJHaFRZVE5DWVZkV1ZtRmlNV1JIVTFoc2FGTkhhRmhXYWs1dllVWmtWMWRzV214U01IQktWa2N4YjFVeVJqWldibWhYVm5wRk1GcEVRWGhTTWs1R1YyeG9hV0pXU2xkWFYzUlhaREpXYzJFelpHaFNlbXhZV1Zod1IwMVdWbGhsUms1WFRXdGFlVlZ0Y0ZOV01rWnlWMjFvV2sxV2NHaFpla1pyWTJzMVdHSkhiRk5YUlVWNFZtMXdSMWxYUlhkT1ZXUldWMGRvVlZsdGRIZFZSbHAwVFZaT2FGSnNXakJVYkZaUFlXeEtjMWRxUW1GU1YyaHlWbXRhWVdNeVRrVlJiVVpUVmpGS1NWWnRNWHBsUmxsNVUydFdWbUpIYUc5VVZ6RnZWVlphY1ZGdGRGUk5WMUpaVlcxMGEyRkdTbk5YYkdoWFlsaFNNMVpyV210ak1XUjBVbXh3VjJKV1NraFdSbHBoVmpGYWRGTnNhR3hTVkd4WVdXeG9iMWxXVWxkWGJVWllVakZhU1ZReFpEQlViRnB6WWpOa1YxWkZiekJYVmxwclUwWk9jbUZIYUZOaVYyaG9WMWQwWVZNeFRrZFhhMVpUWW0xU1dGbHJaRk5OVmxwSVRWaGtWMDFyVmpaVlYzQmhWMFphUmxOdVNsVmhNWEJYV2xaYVQyTXhjRWRWYld4WFZtNUNZVlp0TVRCV01VMTVWRzVPYVZORldsUlpiRlpoVmtaU1YxWlVSbXhpUjNoNVZqSjBNR0ZHV25KaVJGSldUVzVvTTFacVNrdFdWa3BWVVd4YWJHRXhjRlZXVjNCSFlUSk5lRmR1VGxWaVYyaHpXV3hvYjFac1duSlhiVVphVmpGR00xUldXbXRXTWtwelUyNU9WbUpHU25wWmFrWmhaRWRXU1ZwR2FGTmlXRkY2Vm1wSk1XRXhXWGROV0VwcVVteHdWMVp0TVc5a2JGcDBaVWRHVTJKSFVucFZWM2hyWVVkRmVsRnJNVmRXTTBKSVdWUktUbVZXU25KaFIyaFRUVEpvZDFacVFtdGlNV3hYVjI1U2ExSXdXbUZXYlRFMFYxWmFWMkZIT1ZkV01GWTFWbGQ0YzFZd01VaFZWRUphWld0YVdGa3hXbE5qTVZKellVWk9hVkpZUW1GV01uUlhZakpGZUZkclpGaGlhelZ4Vld4a05GbFdVbFpYYm1SV1VteHdlRlZ0ZUhkaE1ERlhZMGhvVjJKWWFISldha0YzWlZkR1IxSnNaRTVXYmtKdlZqRmFhMVJ0VmxkVmJrcG9VakpvVkZsdGRFdFZSbVJZVFVob2FXSldXbnBXTW5odllXeEtXRlZ1U2xWV2JGcDZWR3hhVjJSSFVraGtSbVJYVFVacmVWWnRNWHBPVm1SMFUydG9WbUpyV21oV2JGcDNZVVp3UmxaWWFGZFdiRm93V1ZWVk1XRldTbGRoTTJSWFlrZFJNRmxxU2twbFZrcHpXa1pTYVdKRmNIWldWekUwWkRGc1YxZHVTbGRpYlZKWVZXMTRjMDB4V1hsT1ZUbG9UVlZzTkZZeWRHdFpWa3BZVldwT1YxSXphR2haZWtaclYxZE9SMXBGTldsaVJYQjJWbTEwVTFNeFNYbFVia3BPVm0xU2IxVnFUbTlXVmxaeFZHMDVXRlpzY0VoWGEyaHJWakF4VjFkcmFGZE5ibEpZVmxSS1MxWnNaSFZUYkdScFYwWktiMWRzWkRSaE1rNXpXa2hXWVZKdFVrOVdiVEV6VFVaYVdFMVlaRlZOVm13MVZXMDFTMVpIU2xoaFJtUmhWak5TTTFaVlduZFNiR1J5VDFkd2FWSnVRalpXYlRCNFl6RlZkMDFXV21wU1JUVllXV3hvUTFKR1duRlNhelZzVW0xU2VsZHJXbTloVjBWNFkwWmFXRlo2UVhoVlZFcE9aVVphZFZWdGRGUlNWRlpSVmxjeE5HUXhUbGRWYms1WFZrWmFXRmxzVm5kV01XdDNWbTVPVjAxV2JEWldSbEpIVmpBeGRXRkhSbUZXTTJoWVdrVmtSMUl4WkhKT1ZrNXBZVEJ2TVZacVJtOWtNVWw1VWxoc1ZtRXlVbFZaYlhNeFlVWldjMVZzWkdsTldFSlpXbFZhZDFSdFNrZGlSRkpYVmpOU1VGWnFRWGhqYlVwRlZXeGthVkl5YURaV2JYUnJVbTFXV0ZKclpHRlNia0paVlRCV1MwNXNXblJOVkZKYVZqRktXVlpIZEdGWlZrbDZWVzVDVm1KWWFHRlVWbHByWXpGYWRGSnRkRTVoTTBKSlZsUkpNVlF4WkVoVGJsSnNVakJhVmxac1pGTlZNVkpXVjIxR1YxWnJOWGxYYTFVMVlWWktXVkZzWkZkV2JWRXdXVlJHV21WR1RuTmFSM0JUVWxoQ1dsWnRjRTlSTVZKSFZtNUdWR0Y2Vm5OVmJYaExUVlphU0UxWE9WWk5SRVl3V1ZWYVlWWXhXWHBoUm1oaFVrVmFjbFZxUm5kU01rWklaVVpPYUdWc1dsWldhMXByVGtaTmVWWnVUbGhYUjNoUVZteG9VMWRXVm5GUmJtUlhUVlpzTlZSc1ZtdFdNVnB6WWtSYVYxWjZSblpXYlRGSFkyeGtkR0ZHV2s1U01VcFpWbGR3UjFVeVRYaFhibEpwVW1zMWNGbFVRbHBOUmxwMFpVZEdXbFl3YkRWVmJHaHZWMFprU0dGR1ZscGlXRTE0V1RGYVYyUkhWa1prUm1ST1ZtNUNOVlp0TUhoU01rWkhVMjVTYTFKR1dtRmFWM014Wkd4YWNWRllhRmhTYkZveFdXdGFWMkZXU25WUmJteFhZa1pLVEZWdE1WZGpNVXAxVkcxd1UySldTbEJXYlhCSFVqQXdlRnBHWkZaaE0xSlZXV3hhWVZkR1duUk9WbVJYVmpCd1NWbFZXbk5XYlVaeVYydDRWMDF1YUhKV01HUlhVMFU1VjFkck5WZGlhMHBhVm0wd2QwMVdTWGhXYmxKVVlrWndXVmxyV21GV01XeHpWV3RhVGxKdVFsaFdNbmgzWWtaYVZWWnNiR0ZTVjFKMlZsUktTMU5XUmxsYVJtUnBVakZHTTFkWWNFZGhNazE0V2toT2FGSnNXbGhWYkZwM1YxWmtWMXBFUW10TlZrcElWakkxVDFkSFJYcFZiR2hYWWxoU2FGcFhlSEprTVhCRlZXMW9VMVpGU1hwV1ZFbzBVekZaZDAxV2FHaFNSVFZYV2xkMFlWVXhjRlpYYXpsclZteGFlbFpITVc5VWJVcEdZMFpXVjAxWFVYZFpWRVpXWlVaV1dXRkdXbWxTYmtKWlYxY3dlRlV4WkVkaVNFcFlZbXMxVUZWdE1WTmxWbHBZWkVVNWFGSnNjRlpWYlhoclZqSktXVkZzUWxkaVIxSk1WV3BHYTJSV1RuTmFSVFZUVFZWd1RsWXhVa3BsUmxGNFZHdGtWR0pyTlZoWmEyUlRWa1paZDFacmRGZGlSbkF3V2xWYWExZHNXblJsUm14WFZqTlNkbFpxU2tabFYxWkhWMnh3V0ZORlNqWldiWFJoWXpKT2MyTkZWbFZoZWxaWVdXdG9RMU5zWkhOV2JVWmFWbXhHTkZZeGFHdFhSMFY1WlVaa1ZWWjZWbFJaVlZwelYwZFdSbVJIZEZOTlZuQktWbGN4TkdFeVJsZFRibFpTVjBoQ1dWbHJaRkpOUm1SWFdrVTVWMDFXU2pGVk1uaHZZVlprU0dGR1ZsaFdNMUoyVlZSR2MxWXhjRWRhUm1ScFYwWktWVlpHV21GV01EQjRWV3hhYUZORk5XOVZiWFIzVTBacmQxZHRPVmhpVlhCSldWVldVMVpyTVVkalNFcFhZV3RhY2xwRlpGTlNNa1pIVkcxb1RrMUZhM2hXYlhCTFRVZEZlVk5ZYUZkWFIzaFVXVmQ0ZDFkR2JIUk5WazVZVW14d01Wa3dWa3RpUmtwelYyeHNXbVZyTlhaV2FrRjRWMFpXYzJOR2NGZFdia0l5VjFaYVlWTnRWa2RVYmxKb1VtMVNjRll3Vmt0U1ZscDBZMFZLVGxacmJEUlhhMmhQWVVaS1ZXSkdhRnBYU0VKWVZqQmFZVkl4Y0VWUmJYUk9Za1p3V1Zac1l6RlVNV1JJVTI1S1QxWnRlR0ZaYTFwaFYwWlNjbGR1U210TldFSkpWREZhYTFSc1NrWlhhMnhZVmtWS2RscEVSbHBsVms1eVdrZHdVMkV3Y0doWGJHUXdXVlpXUjJFemJHcGxhMXBZVkZaYVMwMUdiSEpYYlhSb1VsUkNNMVV5TVc5V01rcFZVV3BTWVZKRldrOWFSRUY0Vm14a2NrNVdaRmROYldoV1ZqRmplRTFIVVhoVldHaFlZbXhLVDFadGN6RlhSbHAwVFZSU1dGWnVRa2RYYTFaclYwWktjbU5JY0ZkTmJrSklWakp6ZUZJeFpIVlRiSEJYVWxoQ1RWWlhjRXRVTVVsNFdraE9XR0Y2Vm5CWmExWmFaV3hhZEdWR1RsSmlWbHBKVmtjMVMxUXhXbk5qUnpsV1lsUldSRmxxUmxOV01rWkdWRzE0VjJKSVFqWldiR1F3VFVaYVJrMVdXbXBTUlVwWVZXcE9VMkZHV2tobFIwWnJVakJhU0ZsVldsZFdNVXBXWTBVeFYxWkZXbWhYVm1SUFl6RmFkVk50UmxOaVYyaDNWbTB4TkdReFRsZGFSbFpTWWtkU2NWUldXbmRUVmxWNVpVYzVhRkpyY0hwVk1uaGhWakpGZUZkcVRtRlNNMmhvV1hwR2EyUkdTbk5VYXpWWFltdEdNMVpzWTNkbFJURkhWVzVTVTFkSGFIRlZiR1EwVjBac1dHUklTbXhTYkhCV1ZXMTRUMkZyTVZkVGJteGFWbGRTZGxaVVNrdFdNVTV6V2taa2FWWkZWWGRXTVZwclZqSk5lRlp1VmxSaVIyaHdWbXhhZDFkc1dsaGxSazVYVFZac05GWldhRzlYUjBwVllrWmtWVlpXU2toVk1uaFhWMGRXU0U5V1pFNWhNWEExVjFjMWQxRXhaSE5YYTFwWVlsZG9hRlZzV25kVlJtdzJVMnQwVkZJd1draFdSM2hQVmpGS2MyTkdiRmRpVkVJMFZHdGFjMWRHVmxsaVJtUnBZWHBXV2xkWE1UUlRNazE0Vm01R1ZXSkZOWEZXYlhoTFYwWlplV1JFUW1sU01IQkpWbGMxYzFZd01YRlNXR1JhVmxad2FGa3ljekZXYkhCSFYyczFhV0pYWkRaV2JURjNVVzFXUjFkWWFGVmlhM0JYV1d0b1ExZEdWbk5YYm1SVlVtMVNlbFp0TVVkaFJURnlUVlJTV2sxR1duSlpWVnBLWlZkV1NFOVhSbGROTW1odlZrZDBZVmxYVFhoalJXeGhVbXhLVDFsVVNqTk5SbVJZWkVkR2FFMXJXbnBWTWpWVFlVWk9SbU5HWkZwV00xSk1XVlZhWVZKV1NuTlViR1JPVmpGSmQxWlhNSGhPUjBaWFUyNVNhMlZyV2xsWmExcGhZMnhTVmxwRlpGTmhla1pZVmpJeGMxVXhTbFZXYkdSWVZqTlNhRmRXWkU5ak1XUjFWRzFHVTFkR1NsVldSbVI2VFZaT2MxWlliR3hTTTFKWFZGVlNRMDVXYkZaWmVsWlhUV3RhZVZVeU5VdFdNVm8yVW14b1lWSldjRlJaTW5oM1UwWktjMVJyTldsaVYyaG9WbTE0YTJReFRYbFRXR2hZWW1zMVdWbHRjekZpTVZWM1drWk9WazFYZUhwV01qRkhWa1pLYzJORmJHRlNWMUYzVm1wR1NtUXlUa1ppUjBaWFZqQXdlRlp0TUhoU01rNXpWRzVTYUZKdFVtOVVWbWhEWWpGa1ZWSnRSbFZOYkVwSFZERmFhMWxXU1hsbFJsSlZWbXhhTTFkV1dscGxWMUpIV2tkb1RsSkZXa3BXVnpFMFdWWlNjMXBGV21wVFJVcFhXVlJHZDFSR1dYZFhiazVxVFZaYWVsZHJXbE5WTWtwSlVXeHdWMUpzY0ZoVVZWcGFaVlpPY21GR1dtbGlhMHBvVm0xNFlXUXdNSGhpUmxwWFYwZG9XVlp0ZEdGWGJHdDNWMjEwVmsxcmNFaFpNR00xVjBkRmVGTnJhRmhXYlZKVVZXcEdUMlJXVG5SaFJrNU9UVlZ3VmxZeFpEQlpWMUY1Vlc1T1lWTkZOV2hWYTFaTFdWWmFkRTFXVGxoU2JWSjVWako0YTFadFNsWmpSbHBhWVRKb1NGWnNXbUZqTWs1SlkwWldWMUpXY0ZWV2JYQkxVakZLYzJORlpGaGhlbFp2VkZaYWNtVkdXWGhYYkdSb1RWVnNORll4YUhOVk1rcHlZMFpDVjAxR2NETlhWbHBoWXpGa2RWcEhlRmRpYTBwWlZtMTRiMkl4V1hsU2FscHBVbTFvV0ZWcVRtOWpiR3hXVmxob1dGSlViRlpXUjNocllWWkpkMDVFUWxkU00xSm9WbGN4VjFJeGNFZGlSMFpUVmtaYVdWZFhkRzlSTVdSelYyNUdVbUpVYkZOVVZtUlRVMFpzY21GRk9WZGlWVlkxVmxkek5WWldXbk5qUjBaVlZqTm9XRnBGWkU5T2JFcDBZa1pPYVZORlNUSldiRkpMWkRGSmVGZFlhRlJYU0VKdlZXMHhiMWxXV25STlZrNVRUVmhDV1ZwVlZtdGhNVnAwVlc1d1dHRXhjSEpaYTJSR1pESkZlbHBHWkdsWFIyaFZWbGR3UjJNeFdYaFViR3hvVW0xU2NGbFljRmRYVm1SWVpFZEdWRTFyTlVoV01qVkxXVlpLUjFOdVNsVldiSEF6VlRCYVdtVlZNVlphUjJoT1VrVmFObFpxU2pSaU1WbDNUVmhXYUZOR2NHRldhMVpoVkVaV2RHVkZPV3BOV0VKSVZtMTRhMVl5UlhwUmEzQlhZbGhDUkZkV1pFNWxWbEoxVkd4a2FXRjZWbGRYVjNSclZURlJlRmR1VGxwbGJFcHpWbTE0ZDAxR1VsZFZiRTVvVmxSR1dGbHJVbGRXYXpGMVlVWm9WMVpGY0VkYVZ6RkhVakZ3UjJOSGJGTk5iV2Q1Vm0xNFYxbFhUWGRPV0U1VlltdHdhRlZ0Y3pGVU1WcHhVbXR3YTAxWFVsbGFSV1JIVmxVeGNsZHJaRlZXVjJoeVZtdGtTMVpzWkhOaFJuQnBVbXR3U1ZaR1VrZFdNazVYVTI1V1ZXSkhVazlaVkU1RFUxWlplV1JIUmxaTlYxSklWVEZvYzJGR1RraFZiR2hYWVdzMVZGbFZXbmRTVmtwMFVteE9UbUV6UWt0V2EyTjRVakZWZUZOdVNtcFNiVkpZVlcxNGQyRkdjRVZUYkdSVFRWWndNVlpYTVRCVk1VcFdZMFpzVjFaNlJUQmFSRUY0VWpGa2MyRkhlRlJTVkZab1ZtMHhNR1F4WkZkWGJHaHJVbnBzV0ZSWGRHRmxWbFowWTBaT1YwMXJXbmxXTWpWTFdWWktkRlZzUWxaaGEzQklWVEJrUjFKck5WZGFSMnhvVFVacmVGWnRNWGRTTVd4WFYxaG9hVkp0VWxaV01HUTBWbXhaZDFwSE9WZGlSM2d3V1ROd1IxZEdXblJsU0d4WVlURndVRmxYZUV0ak1rNUpZa1prYVZaRldrbFdiWEJIV1ZkTmVWUnJWbEppVlZwVVZtcEdTMU5XWkZkVmEwcHNVbTFTU0ZadE5VdGhWa3AwVlc1Q1YwMUdjRXhVYlhoaFpFZFdTR1JHVWs1V1ZGWkpWbTB3TVZZeFZuUlRhMlJxVW5wc1lWWnJWbUZOTVZwSFYyMUdWRkpVUmxaV1YzaDNWakF4UlZacVdsaFdiRXBRV2tSS1IxSXhUbGxpUjNoVFZrZDRXVmRYZUc5aU1XeFhWV3hhV0dKVlduRldiWE14WlVaV1dHVklaRmROYTNCWVZUSjBkMVl4V2paUldHaFhVa1Z3U0ZsNlJrOWtWbFowWVVaT2FWWXlhRzlXYlRFd1ZqRnNXRkpyWkdwU2JWSlpXVzB4VTFkR2JISmFSazVPVm14d1NWUldhR3RXTURGeVZtcGFWbFl6UW1oV01GcGhVbXhPZFZOc1ZtaE5XRUpZVjJ4YVlWUXlUWGhqUldSV1lsZDRXRlp0TlVOWlZscDBUVlJDVjAxVk1UVlZiWFJyV1ZaS2RGVnRhRlppUjFKVVZqQmFVMVl4V2xWU2JHaHBVak5vTlZZeWRHcE9WbHB5VFZoS2FsTkhlRmRVVnpWdlpXeFpkMWRzY0d4aVZWcElWbGQ0WVdGV1pFWk9SRUpYVmpOQ1RGWkVSa3RqTVdSMVZHeFdhVll6YUhaWGJHUTBXVlprYzFkdVNsaGlXRkp6V1Zod1IxZEdXa2hrUjNSWVVtMVNTVnBWYUU5V2JVcDFVVzV3V21GcldtaGFSVlY0VmpGU2MxVnNUbWxTYkd0NFZtdGtOR0l4VVhoWFdHUk9WMFZ3Y1ZWdGVIZFdNV3h5V2tjNWFtSkhVbGhXTW5Rd1ZUSktWazVWYUZwV1ZuQXpXV3RrUm1WSFRrbGlSbWhvVFZoQ2IxWnRjRXRVTWs1eVRsWmtZVkl5YUZSWldIQlhWMVphV0UxVVVtdE5WM2hZVmpJMVUyRXhTWGRYYlVaWFlsaG9lbFJzV21GU01rWklaRVpXVGxZeFNraFdSM2h2VVRGYWRGTnNiR2hTUlRWWVdWZDBZV1ZzYTNsbFNHUlRUVlpLZWxsVldrOWhWa3BaVVd4c1YySllhSEpVVldSR1pVWndSbHBHYUdsaGVsWjRWbGN3ZUdJeGJGZFhiazVoVW10d2NsUldXbk5OTVZsNVpFUkNhR0Y2Um5sVWJGWmhWbXhaZW1GSVNsZGhhMFl6V2xaa1IxSXhTbk5hUlRWWFltdEtkbFpxUm1GaE1WSjBWbXhrVm1KcmNHOVZha3B2Vmtac2RHUkZkRlpTYlZKWlZGVm9iMkZYU2xkWGJuQlhUVzVvZGxsWGVFdFhSbFoxVTJ4V1YySkdWalJXVkVaaFZtMVdXRlZyYUZCV01taFlXVlJPUTA1V1draGxSMFpxVFZad01GVXlkR3RYUjBwMFpVZG9WMkpHY0ROWlZWcDNVbXhhV1dGR1pGZGlSbTkzVjFaV1ZrMVdWWGhUYkdScVVsaENXRmxzYUVOVFJteHhVMnR3YkZKdFVucFhhMlJIVlRGWmVXRkljRmRXZWtVd1YxWmFhMUl4Vm5OWGJVWlRZWHBXZVZkWGRHdE5SVEI0VjFoc2JGSXpVbTlVVmxaM1ZteFdkR1ZIUmxkTlZtOHlWVzF3VDFZeVJuSmpSWGhXWVd0d1VGVnNXbXRqTVhCR1RsZHNhVkpZUWpKV2JURXdWVEZOZUZOWWJGVmlhM0JQVm0weFUyRkdWbkZVYTA1WFVteGFlbFp0Tld0aFZURlhZMFJDWVZaWFVraFdNR1JMVmpGS2NWVnNjR2hOYldoTlZqRmFZVk14WkZkV2JrNVdZa1phV0ZSVVFYaE9SbHBZVFZSU1YwMVhVa2xXYlhScldWWktkRlZyT1ZkaVZGWkVWR3hhYTFaV1JuUlNiWEJPVm0xM01WWlhNREZUTVZwSVUyeG9hRkp0VWxaV2FrNURVMFphVlZKdVpGZE5WMUo2VmtjeGQyRldTWGhUV0dSWVZteGFhRlpFU2tkWFJrcFpXa2R3VTJFeGNGbFhWM1JyVkRBd2VGVnNaRmhoTVhCeVZGVlNSMWRzV2tobFJ6bG9WakJXTkZrd1dtRlhSbG8yVVZob1ZsWkZjRTlhVlZwaFpGWldkR05IZUdoTldFSlhWbTB3ZUU1R2JGWk5WV1JxVWxad2FGVnNaRk5pTVZwMFpFaGtiRlp0ZEROV1YzUlBWakF4VjJKRVdsZFNiRXBJVm1wQmVHTldTbkpsUm1ScFVtNUNUVmRyV21GaE1rMTVWR3RvYUZJeWFFOVdNRlpMVFd4YWNWSnNUbE5OVjNoWVZURm9jMVp0UlhsVmJGWmFZbGhOZUZsVldsZGpNVlp6V2tkc1RsZEZTbHBYYkZaaFpERlNkRk5yWkdsU1JrcFlWbXBPVTFWR1duRlJXR2hxWWxWd1JsWlhlR3RoVmtsNVlVUmFWMkpZVW5KVmJURlhWMFpLY2xwSFJsTmlhMHBhVmxSQ1YxTXdOWE5YYmxKT1ZrWktZVlpxUmt0WFZscElaRWRHV2xacmJEWldWelZEVm0xS1dXRkhSbFZXYkhCeVdYcEdZV1JHU25Sa1JUVm9UVEJLU2xac1VrcE5WbEY0V2tWb1ZHSnNTbk5WYWtKaFZteGFjMXBHVGxaTlZrcFhWakl4UjFZeFduSk9XR3hZWVRGVk1WbFdXa3RYVmtaeldrWmtWMkpXUlhkWFZsSkhWMjFXUjFSdVRtRlNNMEpVVld4b1ExZHNXblJqUlRsU1RWWktTRlp0TlVkV1IwWTJWbTVPVm1KWWFFeFVWbHBoVTBVeFdFOVdXazVoTTBKTFZsWmpNV0V4V1hsVGJHeFNZVE5vWVZsWGRHRmpiRlp4VW01a1UwMXJXa2xhVlZwUFlrZEtXV0ZHYUZkTlYxRXdWMVphYzFZeFVuSmFSbWhZVWpKb2RsWlhjRTlWTVdSWFZtNUdVbUp0VWxWWmExcGhWMVpTYzFacVFsZE5WbkI2V1RCb2QxZHJNVWRUYkVKWVZteHdhRmw2U2s5U1ZsSnpWMjFzV0ZJeWFIWldiVEUwV1ZaTmVWVnJhRk5oTWxKb1ZXcEtiMVF4VWxaV2JIQk9VbXh3TUZwVlpFZFhiRmwzWWtSV1ZtSkhhSFpYVmxwTFYwWldjMkpHY0ZkU1ZtOTZWbTE0WVdNeVRuTmpSV2hRVm01Q1dGbHJhRU5PVmxwMFRVaG9VMDFyV2pCVk1uUnZZVEpXY21OR1pGcGlSa3BIV2tSR1dtUXhaSFJTYlhSWFlURndOVmRXVm1GaU1rWkdUVmhPVkdGcmNGbFdiWGgzWVVaV05sSnRkRmROVlhBeFZrY3hkMVV5U2xkVGJFSlhZbGhDU0ZWcVFYZGxSbkJIV2taYWFFMHhTbFpYVjNoaFdWWmtSMWR1VWs5V2JWSllWbXBDZDFOV2JGWlhiazVYWWxWYWVWWXlkRFJXTURGMVlVaEtWMDFIVWxoVk1GVTFWakZrY2s1V1pHbGhNSEJoVm0wd2QyUXdNVmRUV0doWFlteEtWVmxyV25kWFZteHlWMjFHVjAxWGVIcFpWV00xWWtkS1IxTnVjRmROYWxaeVZtcEtTMVpzWkhKaVIwWlRWakZLTWxac1VrdFRNVTVYVW14c1lWSnRVbkJWYWtaSFRURmtXV05GWkdoTmF6RTBWMnRvVDJGR1NuTlhiR2hXWWtad00xWXhXbXRXTVhCRlVXMTBUbFpyY0VsV2Fra3hWREZrU0ZKWWNGWmlSMmhZV1d4b1UyRkdjRmhsU0VwclRWaENSbFpYTVc5Vk1WcEdVMWh3VjFaRmJ6QlZla1phWkRBeFYyRkhhRk5TVkZaWVYxWmtNR1F4VlhoalJscFlZa1UxY1ZSV2FFTlRSbHAwVFZoT2FGWnJjRnBWVjNCWFZqSktTRlJxVW1GV00wNDBWbXBHVjFkWFJrZFhiV3hUWW10S1dsWXhZM2RsUmxWNFdrVmthVk5GY0ZsWmJYTXhWVVpXZEUxV1RteFdiSEJaV2tWVk5WZEdTWGRqUldoYVlURktWRlp0TVV0WFZrWnpVV3hrYVZJeFNrMVdWM0JIWVRKU1YxUnVUbUZTVkZaVVZGWldkMVJzV25OVmEwNW9UVlZzTkZVeU5VdFZSbHAwVlcxb1ZtRnJjSFpXUkVaaFpFVTFWbFJzVm1sU2JrRjNWMnRXWVZReFZYZE5WbVJwVWtaYVdGWnFUbE5rYkZweFUydGFiRll4V2toV01uaDNWMFpPUmxOcVdsZGlXRkpvV1hwS1QyTXlUa1pXYkZab1pXeGFXVmRYZEc5Uk1VNXpXa2hPVjJKVldtRldiWGhIVGtaWmVHRkhkRmhTTUZZMVdsVmFhMVpXV2paV2JGSmFWbFp3ZWxZd1pGZFNiVkpJWkVaT1RsWnVRa3RXYkdONFRrZEZlVkpzWkZSaWJGcFRWakJvUTFkV2JGVlRiRXBPVW0xU1dGZHJWVFZXTURGWFUycEdWazFxUmtoV1ZFRjNaREZPZFZkc2FHbFNNVVYzVmpGYVlXRXhXWGhhU0ZaVllsVmFWRlZ0ZEhka2JGcEhWMjFHVjAxRVZraFdNV2h6VkRGYWRGVnNaRnBpUmxwb1dsZDRjbVF4WkhSUFZtaHBWbGhDU2xkV1ZtOVpWbVJ6VjJ4a2FsSnRhR0ZVVmxwM1ZFWndSbHBHVGxOTmExcElWa2N4YjFSck1VWmhNMmhYWWxoQ1RGUlZXbk5XTVdSWllrWk9hVkl4U2xaV2FrSnJZakZhVjJKSVVteFRSMUpaVlcxNFlVMUdjRlpXYWtKV1RWVndlbFp0Y0ZkWGJWWnlUbGhhV2xZelRqUldNRnBYWTFaS2MxcEdaR3hoTVZsNlZtMTRVMUZ0VVhsV2EyUlZZbXMxVkZsclpGTlhSbkJZWkVWd1RsSnNjRWxhUldSSFlVVXhWbUpFVWxoaE1taFlWbXhrUzFkSFJrZFdiRnBwVW10d1dWWnFSbUZaVm1SSVZHdGFWV0pIVWs5VmExcGhVMVprVjFWck9XaE5WMUpKVlRJMVMxUXhXblJoUmxwWFlrWndURlV3V2xabFJtUjFWR3hrYVZKdVFqWldhMlEwWVRGU2MxTnJXbGhoTW5oWlZtdFdTMk5zYkhGU2JYUnJVbXh3TVZVeWVHOWhWMFY2VVcwNVYxWjZSVEJhUkVGM1pVWmFkVkpzVG1sU1ZGWjRWMVpvZDFZeFpFZGFTRXBoVW5wc1ZsbHJXbk5PYkZwWFlVaGtWMDFyY0ZaVlYzQlRXVlpLUmxkck9XRlNSVVkwVm0xNGQxSXhaSE5oUms1T1lsZG9hRlpxUm1wbFJUVkhWRmhvV0dKSFVuQlZiWGhoVmtac2RFMVdUbGhTYkhBd1ZGWlNVMkpHV25OaVJGWlZZa2RSZDFacVFYaGpiVTVHWVVad1RsSXlaM3BXYlhCQ1pVZFNWMVp1VmxSaVIxSlVWRlJCTUUxR1duUmpSV1JvVFdzMU1GVnRkR3RYUjBwWVpVWlNXbFpGTlVOVVYzaGhaRWRXU0ZKc2NGZGlSM2N3Vm1wS05GbFdVbk5YYkdSWVlsUnNhRlpxVGtOUk1WRjRVbFJzVVZWVU1Eaz0=", "timezone": "America/Los_Angeles", "allow_overwrite": true } ``` #### Responses ##### Status: 201 File uploaded successfully. ###### Content-Type: application/json - **`import_id`** `string` — The import's unique reference ID. **Example:** ```json { "import_id": "cmgoyz7mb00002f6obth9ojea" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### Get historical queue metrics import metadata - **Method:** `GET` - **Path:** `/workforce-management/imports/{importId}/historical-queue-metrics` - **Tags:** Imports Retrieve a list of historical queue metrics import metadata. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:queue_metrics:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` **Not supported in Gov cluster** #### Responses ##### Status: 200 Historical queue metrics import metadata response. ###### Content-Type: application/json - **`create_time` (required)** `string` — The import creation time. - **`file_name` (required)** `string` — The import file's name. - **`import_id` (required)** `string` — The import's unique reference ID. - **`imported_by` (required)** `string` — The unique identifier of the user who imported the metrics. - **`row_processed` (required)** `number` — The number of rows processed from the import file. - **`status` (required)** `string`, possible values: `"PENDING", "FAILED", "SUCCESS", "DELETING"` — The import's status. - **`timezone` (required)** `string` — Themetrics data's timezone. - **`total_rows` (required)** `number` — The number of rows present in the import file. **Example:** ```json { "status": "SUCCESS", "create_time": "2025-11-05T04:13:40.800Z", "row_processed": 1000, "total_rows": 1000, "import_id": "cmgoyz7mb00002f6obth9ojea", "file_name": "HistoricalData.csv", "timezone": "America/New_York", "imported_by": "3U-_aQo_ROeigseGAQL5_A" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### Get multiple organizational groups - **Method:** `GET` - **Path:** `/workforce-management/organizational-groups` - **Tags:** Organizational Groups Get multiple organizational groups. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:organizational_groups:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` **Not supported in Gov cluster** #### Responses ##### Status: 200 Get multiple organizational groups response. ###### Content-Type: application/json - **`organizational_groups` (required)** `array` — List of organizational groups. **Items:** - **`created_at` (required)** `string` — The organizational group's creation time. - **`description` (required)** `string` — The organizational group's description. - **`name` (required)** `string` — The organizational group's name. - **`org_group_id` (required)** `string` — The organizational group's ID. - **`updated_at` (required)** `string` — The organizational group's update time. - **`page_size` (required)** `integer` — The number of items returned per page. - **`total_records` (required)** `string` — The total number of items available across all pages. - **`next_page_token`** `string` — Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. **Example:** ```json { "next_page_token": "cm2n7z2vl000e9cllp4ckoc45", "page_size": 15, "total_records": "45", "organizational_groups": [ { "org_group_id": "cmgoyz7mb00002f6obth9ojea", "name": "West Coast Operations", "description": "Organizational group for west coast teams", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### Create an organizational group - **Method:** `POST` - **Path:** `/workforce-management/organizational-groups` - **Tags:** Organizational Groups Create an organizational group. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:write:organizational_groups:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` **Not supported in Gov cluster** #### Request Body ##### Content-Type: application/json - **`name` (required)** `string` — The organizational group's name. - **`description`** `string` — The organizational group's description. - **`scheduling_group_ids`** `array` — The IDs of the scheduling groups to add to the organizational group. **Items:** `string` **Example:** ```json { "name": "West Coast Operations", "description": "Organizational group for west coast teams", "scheduling_group_ids": [ "cmgoyz7mb00002f6obth9ojea" ] } ``` #### Responses ##### Status: 201 Create organizational group response. ###### Content-Type: application/json - **`created_at` (required)** `string` — The organizational group's creation time. - **`description` (required)** `string` — The organizational group's description. - **`name` (required)** `string` — The organizational group's name. - **`org_group_id` (required)** `string` — The organizational group's ID. - **`updated_at` (required)** `string` — The organizational group's update time. **Example:** ```json { "org_group_id": "cmgoyz7mb00002f6obth9ojea", "name": "West Coast Operations", "description": "Organizational group for west coast teams", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### Get a single organizational group - **Method:** `GET` - **Path:** `/workforce-management/organizational-groups/{organizationalGroupId}` - **Tags:** Organizational Groups Get a single organizational group. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:organizational_groups:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` **Not supported in Gov cluster** #### Responses ##### Status: 200 Get a single organizational group's response. ###### Content-Type: application/json - **`agent_count` (required)** `integer` — The number of agents in the organizational group. - **`created_at` (required)** `string` — The organizational group's creation time. - **`description` (required)** `string` — The organizational group's description. - **`name` (required)** `string` — The organizational group's name. - **`org_group_id` (required)** `string` — The organizational group's ID. - **`queue_count` (required)** `integer` — The number of queues in the organizational group. - **`scheduling_groups` (required)** `array` — Associated scheduling groups **Items:** - **`name` (required)** `string` — The scheduling group's name. - **`scheduling_group_id` (required)** `string` — The scheduling group's ID. - **`updated_at` (required)** `string` — The organizational group's update time. **Example:** ```json { "org_group_id": "cmgoyz7mb00002f6obth9ojea", "name": "West Coast Operations", "description": "Organizational group for west coast teams", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "agent_count": 42, "queue_count": 8, "scheduling_groups": [ { "scheduling_group_id": "cmgoyz7mb00002f6obth9ojea", "name": "Morning Shift" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### Delete organizational group - **Method:** `DELETE` - **Path:** `/workforce-management/organizational-groups/{organizationalGroupId}` - **Tags:** Organizational Groups Delete an organizational group. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:delete:organizational_groups:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` **Not supported in Gov cluster** #### Responses ##### Status: 204 Delete organizational group response. ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### Update an organizational group - **Method:** `PATCH` - **Path:** `/workforce-management/organizational-groups/{organizationalGroupId}` - **Tags:** Organizational Groups Update an organizational group. **[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:write:admin` **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:update:organizational_groups:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` **Not supported in Gov cluster** #### Request Body ##### Content-Type: application/json - **`description`** `string` — The organizational group's description. - **`name`** `string` — The organizational group's name. - **`scheduling_group_ids`** `array` — The IDs of the scheduling groups to add to the organizational group. **Items:** `string` **Example:** ```json { "name": "West Coast Operations", "description": "Organizational group for west coast teams", "scheduling_group_ids": [ "cmgoyz7mb00002f6obth9ojea" ] } ``` #### Responses ##### Status: 200 Update organizational group response. ###### Content-Type: application/json - **`created_at` (required)** `string` — The organizational group creation time. - **`description` (required)** `string` — The organizational group's description. - **`name` (required)** `string` — The organizational group's name. - **`org_group_id` (required)** `string` — The organizational group's ID. - **`updated_at` (required)** `string` — The organizational group update time. **Example:** ```json { "org_group_id": "cmgoyz7mb00002f6obth9ojea", "name": "West Coast Operations", "description": "Organizational group for west coast teams", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### List agents' adherence data - **Method:** `GET` - **Path:** `/workforce-management/reports/adherence/agents` - **Tags:** Reports Get agents' adherence data. **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:list_adherence_agents:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 List of agents with adherence for the date. ###### Content-Type: application/json - **`agents` (required)** `array` — List of agents with adherence. **Items:** - **`adherence_time_for_activity` (required)** `array` — All unique activities in the schedule with adherence. **Items:** - **`activity_id` (required)** `string` — The activity's unique identifier. - **`activity_in_adherence` (required)** `integer` — Activity in adherence, in seconds. - **`activity_name` (required)** `string` — The activity's name. - **`activity_out_adherence` (required)** `integer` — Activity out of adherence, in seconds. - **`display_name` (required)** `string` — The agent's name. - **`schedule_activities` (required)** `array` — All activities in the schedule. **Items:** - **`activity_id` (required)** `string` — The activity's unique identifier. - **`activity_name` (required)** `string` — The activity's name. - **`end_time` (required)** `integer` — The activity's end time in timestamp. - **`start_time` (required)** `integer` — The activity's start time in timestamp. - **`shifts` (required)** `array` — Shift details. **Items:** - **`end_in_adherence` (required)** `integer` — The number of seconds before shift end that the user started being in adherence. - **`end_time` (required)** `string` — The shift end time, in ISO 8601 format \`yyyy-MM-dd'T'HH:mm:ss'Z'\` or \`yyyy-MM-dd'T'HH:mm:ss'TZD'\`. - **`start_in_adherence` (required)** `integer` — The number of seconds after shift start that the user started being in adherence. - **`start_time` (required)** `string` — The shift start time, in ISO 8601 format \`yyyy-MM-dd'T'HH:mm:ss'Z'\` or yyyy-MM-dd'T'HH:mm:ss'TZD'\`. - **`user_id` (required)** `string` — The agent's unique identifier. - **`next_page_token` (required)** `string` — Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. - **`page_size` (required)** `integer` — The number of agents returned per page. - **`timezone` (required)** `string` — The adherence timezone. The default is UTC. - **`total_records` (required)** `integer` — The total number of agents available across pages. **Example:** ```json { "next_page_token": "jA5csQv1W1oXuYZLspNIZzMOXqTD9r9Rje2", "page_size": 10, "total_records": 100, "timezone": "America/Los_Angeles", "agents": [ { "user_id": "0c30da44bd68aae3b5714abb885a59", "display_name": "Alex", "shifts": [ { "start_time": "2024-11-06T03:30:00.000Z", "end_time": "2024-11-06T03:30:00.000Z", "start_in_adherence": 0, "end_in_adherence": 0 } ], "schedule_activities": [ { "activity_id": "0c30da44bd68aae3b5714abb885a59", "activity_name": "Chat", "start_time": 1730896200000, "end_time": 1730896200000 } ], "adherence_time_for_activity": [ { "activity_id": "0c30da44bd68aae3b5714abb885a59", "activity_name": "Chat", "activity_in_adherence": 0, "activity_out_adherence": 0 } ] } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1902\` \
Invalid date parameter. \
\*\*Error Code:\*\* \`1903\` \
Invalid timezone. \
\*\*Error Code:\*\* \`1904\` \
Invalid page size. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(/docs/api/rest/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### List all schedule agents - **Method:** `GET` - **Path:** `/workforce-management/reports/schedules/agents` - **Tags:** Reports List all the schedule agents for the particular date and timezone **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:list_schedule_agents:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 List of agents in the schedule for the date ###### Content-Type: application/json - **`agents` (required)** `array` — List of agents in the schedule **Items:** - **`activities` (required)** `array` — List of activities **Items:** - **`activity_name` (required)** `string` — The activity name identifier - **`activity_type` (required)** `string` — Type of the activity - **`end_time` (required)** `string` — The schedule activity end time. in ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss’TZD’). - **`is_paid` (required)** `boolean` — The is\_paid indicates if the scheduled activity counts as paid time for calculating the agent's total paid duration. - **`schedule_activity_id` (required)** `string` — The activity unique identifier - **`start_time` (required)** `string` — The schedule activity start time. In ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss’TZD’). - **`display_name` (required)** `string` — The agent's display name - **`scheduling_group_name` (required)** `string`, default: `"null"` — The name of the scheduling group - **`total_paid_time` (required)** `integer`, default: `0` — The total duration of paid schedule activity in minutes - **`total_scheduled_time` (required)** `integer`, default: `0` — The total schedule duration, in minutes. - **`user_email` (required)** `string` — The agent's email address - **`user_id` (required)** `string` — The agent unique identifier - **`next_page_token` (required)** `string`, default: `"null"` — Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. - **`page_size` (required)** `integer`, default: `10` — The number of scheduled agents returned per page. - **`timezone` (required)** `string` — The schedule's timezone. The default is UTC. - **`total_records` (required)** `integer` — The total number of all scheduled agents available across pages. **Example:** ```json { "next_page_token": "jA5csQv1W1oXuYZLspNIZzMOXqTD9r9Rje2", "page_size": 10, "total_records": 100, "timezone": "America/Los_Angeles", "agents": [ { "user_id": "0c30da44bd68aae3b5714abb885a59", "display_name": "Alex", "user_email": "alex@example.com", "scheduling_group_name": "Sales", "total_scheduled_time": 480, "total_paid_time": 340, "activities": [ { "schedule_activity_id": "cll20wknm01cwex0isvewiegl", "start_time": "2024-07-20T14:00:00-08:00", "end_time": "2024-07-20T14:00:00-08:00", "activity_name": "SMS", "activity_type": "Productive", "is_paid": true } ] } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1902\` \
Invalid date parameter \
\*\*Error Code:\*\* \`1903\` \
Invalid timezone \
\*\*Error Code:\*\* \`1904\` \
Invalid page size \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rest/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error Internal server error ### List all schedule agents - **Method:** `GET` - **Path:** `/workforce-management/schedules/agents` - **Tags:** Schedules List the schedule agents for the particular date and timezone. **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:list_schedule_agents:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM` #### Responses ##### Status: 200 List of agents in the schedule for the date. ###### Content-Type: application/json - **`agents` (required)** `array` — List of agents in the schedule. **Items:** - **`activities` (required)** `array` — List of activities. **Items:** - **`activity_name` (required)** `string` — The activity name's ID. - **`activity_type` (required)** `string` — The activity's type. - **`end_time` (required)** `string` — The end time of the schedule activity in ISO 8601 format, either \`yyyy-MM-dd'T'HH:mm:ss'Z'\` or \`yyyy-MM-dd'T'HH:mm:ss’TZD’\`. - **`is_paid` (required)** `boolean` — Whether the scheduled activity counts as paid time for calculating the agent's total paid duration. - **`schedule_activity_id` (required)** `string` — The activity's ID. - **`start_time` (required)** `string` — The start time of the schedule activity in ISO 8601 format, either \`yyyy-MM-dd'T'HH:mm:ss'Z'\` or \`yyyy-MM-dd'T'HH:mm:ss’TZD’\`. - **`display_name` (required)** `string` — The agent's display name. - **`scheduling_group_name` (required)** `string`, default: `"null"` — The scheduling group's name. - **`total_paid_time` (required)** `integer`, default: `0` — The total duration of paid schedule activity, in minutes. - **`total_scheduled_time` (required)** `integer`, default: `0` — The total schedule duration, in minutes. - **`user_email` (required)** `string` — The agent's email address. - **`user_id` (required)** `string` — The agent's ID. - **`next_page_token` (required)** `string`, default: `"null"` — Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration is 15 minutes. - **`page_size` (required)** `integer`, default: `10` — The number of scheduled agents returned per page. - **`timezone` (required)** `string` — The schedule's timezone. The default is UTC. - **`total_records` (required)** `integer` — The total number of all scheduled agents available across pages. **Example:** ```json { "next_page_token": "jA5csQv1W1oXuYZLspNIZzMOXqTD9r9Rje2", "page_size": 10, "total_records": 100, "timezone": "America/Los_Angeles", "agents": [ { "user_id": "0c30da44bd68aae3b5714abb885a59", "display_name": "Jill Chill", "user_email": "jillchill@example.com", "scheduling_group_name": "Sales", "total_scheduled_time": 480, "total_paid_time": 340, "activities": [ { "schedule_activity_id": "cll20wknm01cwex0isvewiegl", "start_time": "2024-07-20T14:00:00-08:00", "end_time": "2024-07-20T14:00:00-08:00", "activity_name": "SMS", "activity_type": "Productive", "is_paid": true } ] } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request \*\*Error Code:\*\* \`1902\` \
Invalid date parameter. \
\*\*Error Code:\*\* \`1903\` \
Invalid timezone. \
\*\*Error Code:\*\* \`1904\` \
Invalid page size. \
\*\*Error Code:\*\* \`1905\` \
Cannot specify both \`scheduling\_group\_id\`s and \`organizational\_group\_id\`s. Please use only one filter type. \
##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### List scheduling groups - **Method:** `GET` - **Path:** `/workforce-management/scheduling-groups` - **Tags:** Scheduling groups Get all the scheduling group name and id **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:list_scheduling_groups:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` #### Responses ##### Status: 200 List all scheduling groups ###### Content-Type: application/json - **`page_size` (required)** `integer` — The number of items returned per page. - **`scheduling_groups` (required)** `array` — List of scheduling groups. **Items:** - **`name` (required)** `string` — The name of the scheduling group. - **`scheduling_group_id` (required)** `string` — The ID of the scheduling group. - **`total_records` (required)** `string` — The total number of items available across all pages. - **`next_page_token`** `string` — Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. **Example:** ```json { "next_page_token": "cm2n7z2vl000e9cllp4ckoc45", "page_size": 15, "total_records": "45", "scheduling_groups": [ { "scheduling_group_id": "cmgoyz7mb00002f6obth9ojea", "name": "Supportline" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 401 \*\*HTTP Status Code:\*\* \`401\` \
Unauthorized ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error ### List users - **Method:** `GET` - **Path:** `/workforce-management/users` - **Tags:** Users Get all the users in the account. **[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `workforce_management:read:list_users:admin` **[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT` #### Responses ##### Status: 200 The list of users in the account. ###### Content-Type: application/json - **`page_size` (required)** `integer` — The number of items returned per page. - **`total_records` (required)** `string` — The total number of items available across all pages. - **`users` (required)** `array` — List of users. **Items:** - **`created_at` (required)** `string` — The user's creation time. - **`display_name` (required)** `string` — The user's name. - **`email` (required)** `string` — The user's email. - **`updated_at` (required)** `string` — The last time the user was updated. - **`user_id` (required)** `string` — The user's ID. - **`next_page_token`** `string` — Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes. **Example:** ```json { "next_page_token": "cm2n7z2vl000e9cllp4ckoc45", "page_size": 15, "total_records": "45", "users": [ { "user_id": "cmgoyz7mb00002f6obth9ojea", "display_name": "Alex", "email": "alex@aol.com", "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" } ] } ``` ##### Status: 400 \*\*HTTP Status Code:\*\* \`400\` \
Bad Request ##### Status: 404 \*\*HTTP Status Code:\*\* \`404\` \
Not Found ##### Status: 429 \*\*HTTP Status Code:\*\* \`429\` \
Too Many Requests. For more information, see \[rate limits]\(https\://developers.zoom.us/docs/api/rate-limits/). ##### Status: 500 \*\*HTTP Status Code:\*\* \`500\` \
Internal Server Error