# Container Limits for ZopDay VM Services, Refused Before Saving

> A resource limit is only useful if you learn about its ceiling before you deploy. ZopDay VM services now take a CPU limit and a memory cap, both when the service is created, under Advanced settings,…

Source: https://zop.dev/resources/blogs/container-limits-for-zopday-vm-services-refused-before-saving
Published: 2026-10-14 · Author: riya-mittal · Tags: cloudops, containers, zopday

---

A resource limit is only useful if you learn about its ceiling before you deploy. ZopDay [VM services](https://zop.dev/resources/blogs/zopday-push-to-deploy-vms-managed-load-balancer) now take a CPU limit and a memory cap, both when the service is created, under Advanced settings, and later in Settings → Runtime.

A field left empty uses the default size. On ZopCloud, each service can use up to 0.5 CPU and 1 GB of memory. A larger value is refused before saving, and Deploy stays disabled with the reason shown.

A served ceiling is a limit that the backend publishes and the screen reads, instead of a number copied into the interface. That is the idea behind how this change was built, and the sections below show why it matters.

## Two Fields Map Straight to Docker

The two limits map directly onto the container runtime. The [CPU limit](https://zop.dev/resources/blogs/cpu-throttling-is-lying-to-you-why-your-container-limits-bleed-latency) becomes the docker `--cpus` setting and the memory cap becomes `--memory`. There is no translation layer in between, so the number you type is the number the runtime enforces.

| Field | Where you set it | If left empty |
|---|---|---|
| CPU limit | Advanced settings when creating, Settings → Runtime later | Default size is used |
| Memory (limit) | Advanced settings when creating, Settings → Runtime later | Default size is used |

The runtime page shows the liveness path next to these fields and does not show Replicas. A VM service is one machine, so a replica count would offer a control that does nothing.

## The Ceiling Is Served by the Backend, Not Hard-Coded

The ZopCloud ceiling is not typed into the interface. The deployer's default maximum CPU was lowered to 500m, with memory staying at 1Gi, and its pause-states endpoint now returns a `maxSize` next to the existing `defaultSize`. The app reads `maxSize` and refuses a larger ZopCloud value before saving.

<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGRhdGEtZDItdmVyc2lvbj0iMC43LjEiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWluIG1lZXQiIHZpZXdCb3g9IjAgMCA1NTIgNzg3Ij48c3ZnIGNsYXNzPSJkMi00MjI1OTAwNzU3IGQyLXN2ZyIgd2lkdGg9IjU1MiIgaGVpZ2h0PSI3ODciIHZpZXdCb3g9Ii0xMDEgLTEwMSA1NTIgNzg3Ij48cmVjdCB4PSItMTAxLjAwMDAwMCIgeT0iLTEwMS4wMDAwMDAiIHdpZHRoPSI1NTIuMDAwMDAwIiBoZWlnaHQ9Ijc4Ny4wMDAwMDAiIHJ4PSIwLjAwMDAwMCIgZmlsbD0iI0ZGRkZGRiIgY2xhc3M9IiBmaWxsLU43IiBzdHJva2Utd2lkdGg9IjAiIC8+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKLmQyLTQyMjU5MDA3NTcgLnRleHQtYm9sZCB7Cglmb250LWZhbWlseTogImQyLTQyMjU5MDA3NTctZm9udC1ib2xkIjsKfQpAZm9udC1mYWNlIHsKCWZvbnQtZmFtaWx5OiBkMi00MjI1OTAwNzU3LWZvbnQtYm9sZDsKCXNyYzogdXJsKCJkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtiYXNlNjQsZDA5R1JnQUJBQUFBQUEzSUFBb0FBQUFBRlFRQUFndUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJQVXk4eUFBQUE5QUFBQUdBQUFBQmdYeEhYcm1OdFlYQUFBQUZVQUFBQWdnQUFBS0FDZ1FMTloyeDVaZ0FBQWRnQUFBZGxBQUFKeklLTnE4eG9aV0ZrQUFBSlFBQUFBRFlBQUFBMkczOGUxR2hvWldFQUFBbDRBQUFBSkFBQUFDUUtmd1hmYUcxMGVBQUFDWndBQUFDQUFBQUFnRDBGQk05c2IyTmhBQUFLSEFBQUFFSUFBQUJDTEVvcHhHMWhlSEFBQUFwZ0FBQUFJQUFBQUNBQU9BRDNibUZ0WlFBQUNvQUFBQU1vQUFBSUtnandWa0Z3YjNOMEFBQU5xQUFBQUIwQUFBQWcvOUVBTWdBREFpb0N2QUFGQUFBQ2lnSllBQUFBU3dLS0FsZ0FBQUZlQURJQktRQUFBZ3NIQXdNRUF3SUNCR0FBQXZjQUFBQURBQUFBQUFBQUFBQkJSRUpQQUNBQUlQLy9BdTcvQmdBQUE5Z0JFU0FBQVo4QUFBQUFBZkFDbEFBQUFDQUFBM2ljWE16SnpRRUJHSURoWjVaL241OHg5aTNSZ0NJa09sQ0JvN2lJb3pwVWdBWlVJRXJSZ1E0K2laTjRqKy9oUVNLVG9KRGJvMUxLcENhbVp1WVdWaloyRWJ5OHBiVnRSTnppSHRlNHhEbE9jWXpEVTNvdk1aYks1RDU4K3ZMdHg2OC9oWDgxZGFXR1NsTkxXMGRYVDkvQTBJZ0hBQUFBLy84QkFBRC8vMGh4R1Q4QUFIaWNaSlZiYkJ0NTljZlA3K2V4cDNZbWwvRjRQTDdmZnZHTUw3RVRlenllWEp3NmJweWtUWk1tNlNWTmQ5Tm10L3Ivb1V2YU5EUXB6VmFMK2tCQndMWXExSDBvTEhRUkFnRlNRYW9XcE4xRkFZSEVMdFgyWVZGMzZRc0lFS2dQKzRETUtscWhWVHBHTStQYzRNSCtXZFp2enZlY3ovbWVNMkNGYVFCOEZ0OEJDOWloSFp6QUE4aHNsSTNMa2tSb1ZWWlZJbGhVQ2JIME5IWnFQL3lCbEtTU1NTb1Z1UnUrdXJDQUpzL2dPOC9PUHo5NTl1d25Dd01EMnIyMzN0WnVvcFczQVhEalV3QThqRytBSFZnQWpwWWxVWlNJeldiaFpJNUloSDdhOFdwN3E3K1ZZcnlmUG5ydzZEdUpkeE5vdkZUS0xjbUZDOXFYOFkxbnE2KzlCZ0NBWVJJQVQrQWI0REF6ay9OdU4rK3kyWWdrNTR0RnBTQ0toRXkrK1grM1o2WnZ2WkFKOUI3TFpvLzFCdkNONnEzbDVkdGpWeEx6UjQ2Y2lnTUFBdExZd0E1OEYxSUExcGdvcVc2M25OZWZsNlFzVmdyRm9weDNDN1Fva3BpTmQ3a0Z3VlJCcnFGcitlTmtOcEhOeU9rVDBaSTQ4RksxZHpsMU9ESWtpWm0rMVBHQjBmNGxwaWY3L3lFeEZnd0huWjF0M2FQZHhibENWK3EwMXg4T2hFSnN6SE44cERqZkN4aFNqUTMwQWRvRUx4QUFJU1lxaGFKcXlOR1NJYzZ6Uk9lajVvdXFZdE56K0ZWMStub05rMlI0cUZQcFh1eGYrTXlhZ3dxUDdmUEd1U09sTUhPeWZHU3VQU3A1K0JlRG5VdVh0SC9JQVhKSjRFNDYwa0dQWUhDck5EYXdHNitEQzhKbXhZUW1yTXpUaHBoUm5LVFhUMkkwNzNhamtlaHdrR0pXYWxTd0dpdk5kWmNXNXNUaWJGZlNsV0NpRVFXdjM1L3dCZmQvZnVMRXkrVzEwWW12Wk41enRobE1PeHNiYUIxdGdzOVFFSGN3bWhUbGZGRVZiRGJrSGJsWU9maUZhbllzTUVJaVNybmM0OGx5L2ZGWlp2RHkwV09yZ3lGaElUaFJHWnJrMjErSStNMmVTNDBOdEluWGdZUElGaXNqc0tUSXV5aHROZXZqK1lzREM0VmtyOWRXVzNOUXZsSHNrWnhjMmtXSzNjeXJMODljM2gvd1RQemsyWERPUjlaYzN2ZWNiY05qaDBZQUc3bi9EVzJDcDhsblMwUkhRMGQxZCtpNVcrU0Nyb0xDWTVjT0RKOGZHRHZkVFdIdGlXTTBweFJ6NHBsdnZ5RjF4WXJNL3RXak02dmw4bUtWaTl1TGN2U1VMNFQ2azBvM0dJdzhBR2dWUDlSUG1TV0srbDllNDJXZXNNOGRPTkE1UFJ3dWRQaGJmWXcvZE9vVSt1SUZxMStaTFRDMjgxWnJWQXl0YUY4Q3NFQ3NrY0UwMm9SdUdJQnhnNHlvRkhRUXVwbVVyUklFbVNmTklZbEpSaDkwZTdsc05vdGhlQk1hWi80bU1kRzQ4bkgvbWQ0eHpoL3grSkw5WjVTdTZDK21hSHRoVGcyR25iSGs5UHlMMVZmR2c1SVVERXBTTWo4a3hXVnZsUEVQUHZiMWRwVVNWR3NpN005M1VNNXF1alNWWUJaYllxNis4VTVIdTV0ekRnekxNMW4wTUpXVWtvbEVNcVhWT3IxQ2g4WGk4UWFDSnB1SzNtekRvL3BrTjczSnM0UTFzcVRaU28wT0hNN1BIS29GSTRHRUI2L2ZQK1ZOTDU3V0hxRm9NZUVWdEFmUWFJQUtBSC9HajdFSUlRQ2dJUXhmMzQ0ZHd1dkFHTEZaV1pWcGprZzBYN2xGZmZkN1Avdmw2OHRsdks0dC9lNlI5cWZmakYzVjd6YzJrQk92UTd2cE9GWm10dzM4KzRtQkdtdTMwalluRTJlZVA0ekpzeWVDRTZFTFZ0clVzUVRSSmtRTkhVRTJ1N3VuRW5yN3JPZ3pQSnBUS2x4MFBEZDl1QmFNeEh2MHIyNVVId3BuMG9sWWJxdThIdTFCODlqaWhEYWJuSm9hdXptdE9hakk1RFlvVkMrSE1uczRtWDQzdk5NTy92L3h1N2tLbXM1QTd2TEZhdlZpdWJ4VXJTNlZNOWxzSnB2Sk5HZDFjUFhZMGN1RFZ5YUhLaFA2eUpwNzVpQjJvMDNnZFA3Q1RuYUcvVVJKNExtZE5hUG5HVHdrUFhldXRGQ01sSHpXS2JFNG0wNjVFbS9pSCtkODVHc3JKOWJLZnUvVU4xSG45cEl4YWtlMzBDWTQ5L0ExcDhlczNEOGg4Z0dIcDlYYkVSaDBvZnJKZk01cXZVWlJ5YnoyVjBEQU56YlE2MmdUSktPdk8zdGZOUGYrZGpCOTY0Y3c3N0k5em4xV1BCQXJoNk9oWU5ZWEdraThkS0x2WlBpQXIrRHI2eE1qZzhsempCaWU5L29Gam5WekRxYXpMemt5SzNubVhHN0o0MjFySVgzWjRkT210OW5HQmxyQ3F5QVl0QldGS0tvcTY5TythekhDL0ZSMWdyMTY1UW9KTWw2SHdLbk01MllmWHJCZHY3N3liaXB1b3hadGpCbXIxTmhBLzBaMXZmOTd2TWsyMStFZlp3N1ZRcEdBNks2dHRWakM0OHppYVZUUS9xSWtmVUYwVU9zWWlYY0IwdWNBTlZBZFdnRmtpeXk0M1RwS1ZaVXRiL3pvenBDRGMxQjJ6bEc1K1gxVS95ZytLVW1UOFkrMGpxMzloZXVvYnZoNzkzTzdJcERtdTUybTc3eHl1OGZtc0ZGMHExMjkxbXR2cHluYVRuZC85Y3I5RE4xS1UzUUwzWVhxVCtNSFJYR2NQRFhPZy9HbldzYzdaRFNSR0NYdkdIcDYwemRRSGJ3QU1pZnRrcUdGSFoyMnU3ZnVkVG5jRG1xZmMxL3M3amUrZGErSEVSaks3ckpMQ1A5em1rL3pmSnFmYnZ6cktOL0Y4Mm4zVVQwdTA5aVBucUc2N3Y0ZEg2anFIaFJ0ZU0wZGJmZlJ6bjN4aElQKzlaMnhGcWVEMnNmYVN6ZnZDNzFUdjdWUnk4amFHZlNodjM4WUc0MlRNZktoMXJML1JNcnNrUWlBZm83cVlBZVFGWTRvVWQ0aTgrTDdiNkhsOTU5TW9lektFZTBQSy9xOU5EeEVVWlFEQzRDcXlIejZrNGZuempWOURoK2d1djYvdnE4cU5WVFhPZ0ExZm9yNzRCaCtEQzBBclBFbU5JY3JuczNHNDlrczdrc1JrdEkvOEI4QUFBRC8vd0VBQVAvL1A0SDlGUUFBQUFBQkFBQUFBZ3VGck1uV0ExOFBQUFVBQVFQb0FBQUFBTmhkb0lRQUFBQUEzV1l2TnY0My9zUUliUVB4QUFFQUF3QUNBQUFBQUFBQUFBRUFBQVBZL3U4QUFBaVkvamYrTndodEFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FySUFVQURJQUFBQ1BmLzZBbnNBVFFJc0FDTUNEd0FxQWowQVFRSFRBQ1FDUFFBbkFnWUFKQUZWQUJnQ0ZnQWlBanNBUVFFVUFEY0NKQUJCQVI0QVFRTlpBRUVDUEFCQkFpc0FKQUk5QUVFQmpnQkJBYnNBRlFGL0FCRUNPQUE4QWdzQURBTUlBQmdDQWdBT0Fna0FEQUhNQUNZQlRBQXJBUlFBUVFBQS82MEFBQUFzQUN3QVVBQjBBTFFBN0FFZUFVb0JmQUd3QWRZQ1BnSmdBbXdDaEFLZ0F0SUM5QU1nQTFBRGNBT3NBOUlEOUFRUUJFZ0VkQVNrQkxnRXhBVFFCT1lBQUFBQkFBQUFJQUNRQUF3QVl3QUhBQUVBQUFBQUFBQUFBQUFBQUFBQUJBQURlSnljbE05dUcxVVV4bjlPYk5NS3dRSkZWYnFKN29KRmtlallWRW5WTml1SDFJcEZGQWVQQzBKQ1NCUFArSTh5bmhsNUpnN2hDVmp6RnJ4RlZ6d0V6NEZZby9sODdOZ0YwU2FLa254Mzd2bnpuWE8rYzRFZC9tYWJTdlVoOEVjOU1WeGhyMzV1ZUlzSDlSUEQyN1RyVzRhclBLbjlhYmhHV0pzYnJ2TjVyV2Y0STk1V2Z6UDhnUDNxVDRZZnNsdHRHLzZZWjlVZHc1OXNPLzR5L0NuN3ZGM2dDcnpnVjhNVmRza01iN0hEajRhM2VZVEZyRlI1Uk5Od2pjL1lNMXhuRCtnem9TQm1Rc0lJeDVBSkk2NllFWkhqRXpGandwQ0lFRWVIRmpHRnZpWUVRbzdSZjM0TjhDbVlFU2ppbUFKSGpFOU1RTTdZSXY0aXI1UnpaUnpxTkxPN0ZnVmpBaTdrY1VsQWdpTmxSRXBDeEtYaUZCUmt2S0pCZzV5QitHWVU1SGprVElqeFNKa3hva0dYTnFmMEdUTWh4OUZXcEpLWlQ4cVFnbXNDNVhkbVVYWm1RRVJDYnF5dVNBakYwNGxmSk84T3B6aTZaTEpkajN5NkVlRkxITi9KdStTV3l2WXJQUDI2TldhYmVaZHNBdWJxWjZ5dXhMcTUxZ1RIdWkzenR2aFd1T0FWN2w3OTJXVHkvaDZGK2w4bzhnVlhtbitvU1NWaWt1RGNMaTE4S2NoM2ozRWM2ZHpCVjBlK3AwT2ZFN3E4b2E5eml4NDlXcHpScDhOcitYYnA0ZmlhTG1jY3k2TWp2TGhyU3pGbi9JRGpHenF5S1dOSDFwL0Z4Q0orSmpOMTUrSTRVeDFUTXZXOFpPNnAxa2dWM24zQzVRNmxHK3JJNVRQUUhwV1dUdk5MdEdjQkkxTkZKb1pUOVhLcGpkejZGNW9pcHFxbG5PM3RmYmtOYzl1OTVSYmZrR3FIUzdVdU9KV1RXekI2MzFTOWR6UnpyUitQZ0pDVUMxa01TSm5Tb09CR3ZNOEp1Q0xHY2F6dW5XaExDbG9ybnpMUGpWUVNNUldERG9uaXpNajBOekRkK01aOXNLRjdaMjlKS1ArUzZlV3FxdnRrY2VyVjdZemVxSHZMTzkrNkhLMU5vR0ZUVGRmVU5CRFh4TFFmYWFmVytmdnl6Zlc2cFR6bGlKU1k4Rjh2d0RNOG11eHp3Q0ZqWlJqb1ptNnZRMU12UkpPWEhLcjZTeUpaRGFYbnlDSWM0UEdjQXc1NHlmTjMrcmhrNG95TFczRlp6OTNpbUNPNkhINVFGUXY3TGtlOFhuMzcvNnkvaTJsVHRUaWVyazR2N2ozRkozZFE2eGZhczl2M3NxZUpsWk9ZVzdUYnJUZ2pZRnB5Y2J2ck5ibkhlUDhBQUFELy93RUFBUC8vOUxkUFVYaWNZbUJtQUlQLzV4aU1HTEFBQUFBQUFQLy9BUUFBLy84dkFRSURBQUFBIik7Cn0KLmQyLTQyMjU5MDA3NTcgLnRleHQtaXRhbGljIHsKCWZvbnQtZmFtaWx5OiAiZDItNDIyNTkwMDc1Ny1mb250LWl0YWxpYyI7Cn0KQGZvbnQtZmFjZSB7Cglmb250LWZhbWlseTogZDItNDIyNTkwMDc1Ny1mb250LWl0YWxpYzsKCXNyYzogdXJsKCJkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtiYXNlNjQsZDA5R1JnQUJBQUFBQUEzSUFBb0FBQUFBRlpnQUFSaFJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJQVXk4eUFBQUE5QUFBQUdBQUFBQmdXMVNWZUdOdFlYQUFBQUZVQUFBQWdnQUFBS0FDZ1FMTloyeDVaZ0FBQWRnQUFBZG1BQUFLV0N2QURRWm9aV0ZrQUFBSlFBQUFBRFlBQUFBMkc3VXIybWhvWldFQUFBbDRBQUFBSkFBQUFDUUxlQWpFYUcxMGVBQUFDWndBQUFDQUFBQUFnRGVFQXdwc2IyTmhBQUFLSEFBQUFFSUFBQUJDTGhJcmdHMWhlSEFBQUFwZ0FBQUFJQUFBQUNBQU9BRDJibUZ0WlFBQUNvQUFBQU1tQUFBSU1nbnRWek53YjNOMEFBQU5xQUFBQUNBQUFBQWcvOFlBTWdBREFlRUJrQUFGQUFBQ2lnSlkvL0VBU3dLS0FsZ0FSQUZlQURJQkl3QUFBZ3NGQXdNRUF3a0NCQ0FBQUhjQUFBQURBQUFBQUFBQUFBQkJSRUpQQUFFQUlQLy9BdTcvQmdBQUE5Z0JFU0FBQVpNQUFBQUFBZVlDbEFBQUFDQUFBM2ljWE16SnpRRUJHSURoWjVaL241OHg5aTNSZ0NJa09sQ0JvN2lJb3pwVWdBWlVJRXJSZ1E0K2laTjRqKy9oUVNLVG9KRGJvMUxLcENhbVp1WVdWaloyRWJ5OHBiVnRSTnppSHRlNHhEbE9jWXpEVTNvdk1aYks1RDU4K3ZMdHg2OC9oWDgxZGFXR1NsTkxXMGRYVDkvQTBJZ0hBQUFBLy84QkFBRC8vMGh4R1Q4QUFIaWNmSlp2YkJ0My9jYy9uKzlkN2hMSCtXT2ZmYTZkMkJmN2E5OGw5dGxPZkxZdlRtSTdhZjQ1aWQwdWJaMWZmbTJUTnV2YXRhTkF0UEt2dEZWSEVlT1BXQ25TaEFSQ0doSkNHcXJFZzQ0blBHQklBNG1JVVFsUVFZT3hTZXlQTzdWTTI2eFFzWW1jMGRscDQrUUJUMDRuVy9kOWY5K3ZlMy9lMzRNV0NBS1F6NURuZ1lFMjZBSTdPQUUwd2M4d21xNVRGNk1wQ3VWNVhSRUVQbmdOTjY3OWdKMDgrbTcvano1V0pYYjJLejlkK09mSm0rVDVyZlA0ek1yVnE4YXhiNXcrL1gvMzd4dGgvTXQ5QUFCU2V4VUEvMHh1UUJ2WUFBUmVVMlJab1J5SHFBbFVvZnpiSTcrMnNCYVc5V2pHNy9HSm84VkYrM3ZuOE9MNmV2S3A0Y3lUeGlLNXNiVisrellBQVFwQTB2VjFCSE4zV2tKME9qaU9LbG9pblU0bFpVcnBWNy84emVmS0wzeDJhYWw4ZWZMSlUybHk0K3NYdi9qejArTkh2cmUyY3M3Y0M0SzF0b2tHK1NHRUFWd0JXZEZGVVV1WUR5dUtMS2VTNmJTV0VGMjhMTk1BeHprZG9zc2wxalh1VHE3M1o3eGxmV3d4R2lxR1IxUEhSMGRQU3BwN0poWktlWWVDeFhoeTlJeDFaQ1FTU1V3TkJ4Tml6RE9uSnc0bGt2MHgzNEEwMkNQSHhXanZyRDV5TEFrRWxOb20vaHVyNEREZHVBSnlLcGtqcHFhbWF3elZLY2NwaWJTdW14dm9KRTZIK05KNFVaMWYxWlNzalJWeWEvbFdsaTdiNVlOQjFabm9EVTZtcENIcnNmTE14ZU5hdno5cmVBcWgrSGdzL2xjNUVKNWJTZVN6ZGZZZzFUYnhRN0lCVHZNTm00NHBUd1dONTdXNlZhZWpreWlKSERIcEJUaWVGOFY3U3RiR09QTFhTNHBJZ2tlaWRmbFVjRExsR3h3SUxOS1lRN1AyKzdOazQrV1Qzc2pSSlZONlBEeTNvdVd5NGRCZE9RQUlvZG9tM3NJcTlPNXl0ME5VUzZSMUY4ZTlkdkFKdGJTV1VzZkVxQ0I3QjVmU21aRyt0Qmp3bEt4blZxWXVsT01COTZETE9iVSt1WC9HWTBzNFFnMHZTbTJUS0UxZWR0ajliM2dqZHFaYkx0M1lwbmNndEplZTBuZmk1YTNodmZoSTNjdXZzQW9lQ0RYcm1ZbmcvWno0MEF1ajFlTm5PbnhuNlZ4MDRmaWdQdUd6dGhpL2FldWJESHN6THA5MzhmczF3dGdIYUdyVit0VGE5UG9oTmZaWW9sZnJ6RDhXY3RzMHA0U2g5bjBkdlVOU0dSQWlBUGdjdVFNdU0rRTBUNW9UeWZNYVQ1bElPZDgrMGQxMUlPc0oyM3NzUFRiL1FLdnRjZXVwTXI2WWFWbWNQOXpScnZPV1JPUnd6bGcybVdFdGlGV3NnZ1N4NXNUck9zZlIzZW5qT0dZWHZadERTelRZTzkyZm0rOTB5MGZpMmNjaWM4ZUg1SnlORWZKbmhBc1p1aGlJaUVPOWRFTHp4Zjh1ZTFPdVFISDhyS3d1bFNjLzkvOEpNNC9NaVRQb2o0VC9JQWNHWnBZSFIwY2I4eWNCNEd0a0E5ejFDZDdKSWM5UXdjUm8ybVNrNjZYQmJuYmdrSnBMdGVhS1l5eGI2QzNFcHNuRy9TeU5Ud3hMUWVOM3FEcjJkU3lFWThhTHRacTVKbnhDYmhFWmZBREFnVlRZMFhxZmJJQzFyc1dZZWdKVmVGNjZYanBKUGw1KzVmTUhWdFk5Wk1Qd0lyNXF2UHYrMDVjQVFhMXR3aWRrQSt3bXJWUlNGMHd3VHNmMnEvNzBCSGVwZEFYUnhuQThXa1JyM3VZbW45cjZMdC9HMkpHTXN1d2pYWElQcTJiSG1Kb05pNjV0bzl3dXA4Mm0xL0k4S3grV1I0WmE0c3VoYkpwbGM2VXN5ODQ2QytxMHlXQkdMRVNtc1RJWEhOTDdWVzFpMk9aek5IUFl1ZHZoakZYWTE3eUh2WmhOeFlGRHNWMlU2d3A3SVQrYVAzd2RxOUFGM3VaNWFKUklvNEliUTM3bjRLbzZ2NW80ZUVKZFdBMUhGN1Ywd3J4WXp4NmJ2bENPTmE3ais5ZW45czlPcmsvdG42bWZFUTlxR242STFjWnM4MDA3N2lTMDNscThzS3VuTE4vS2MweW9IS3VQZUVJZUU0aGQra2x6VDkwbUw0MUwwZTBCbDg2K2dMaGRWUEo3SWY5T1BpNWpGYnFiR0xsNCtTR2JkdFpiakxxZFBkMmVZRkhLWW1WRnpiWk50ZVpIamR1QXRmL1VOdkVLVmtIWmU0N3NQVWJNVTZSeGlQeDRhTVU5NkJxWHc5bUI0VmhHblZOajg3MHhRZlBMUSttK1hITHdrRFhaTDB2OU1lcFJKRTl1SURJUkN2cjZIWjZvNUpQdGdURTFPaFV5OXp4VzI4UmxjdjVSdjZaMXN5VzBlak0wOWVzdnhwTXNabWJiaThHSm5rdldLeG1tTjlEcGFiZDF4NjM1YUplbkErMlpsbWVmelJuMzdIYWZ6OUtpODEzbTJzTzFUZndBSytac1BseDdKLzNDZHNYZWZKVE1nbmRXblM2YWgxTC9FZXQrM1NZSm1EYnVDRzR6TXJoc2VPYXAxdUE4Q29EL3dBcDBBSmhUS0lvdUxXMHVpTmRtaTBHV1kxbGJVUGhPeWRqQ2luR1hMdERnWEJEZGhxZng3QXdBK1MxV3dML24yWjA3aGpLTjd3bWVPVWVMM1lqSWR2VjBQN05nSXdUWlRrLzMxY0liSnpycnYzcTd2b0FWNDYzQVZDQXdGVUJmMDUwSExiUVFEQmFvOFFDd2RnY0EvOVRnUUFWRmMyMUw2UnJ2b3R2ZkxqeXYvdTNZZ1hCcko4OTI5WFdWRDIrY09xaTIyaXhzZDBCWVJmTE9lVkZ4T2dhYzUvLzEwZE5pVEJSVjF3VUFyTDFTaStQYldBRVBBRi9QVEwySWR4SHBKSnlscjlOdHQ0Y20zUGJEUmJtbGxXRnRJZnUzaThaYjd0SENIM2srMDVaTlVMeHJmT0F2VVZvTW9HM3JvM2hKcmJPcVBRREFuMkVGMmdDb2psVDM4Nmp4bGxhY2ZLTURzNjNHTHcycmlwZHpVZU5ydVFaYkNtK2lCZDNBQUpqbXFQWDFqamViZWhwdVk4WDh6K3hPYWEzME9GYnFMd1ZobGl6QUxYSUwyZ0dFZWs0YXhmWWx3VWRkRGk4bEN5N1I3ZDhudXZ2K0N3QUEvLzhCQUFELy8yQUlISUlBQUFBQkFBQUFBUmhSWlE5eDVWOFBQUFVBQVFQb0FBQUFBTmhkb013QUFBQUEzV1l2Ti82OS90MElIUVBKQUFJQUF3QUNBQUFBQUFBQUFBRUFBQVBZL3U4QUFBaEEvcjM5dkFnZEErZ0F3di9SQUFBQUFBQUFBQUFBQUFBZ0FuUUFKQURJQUFBQi92L0xBbEFBSXdINkFBd0NHUUFuQWhnQUh3R3pBQ1VDRndBbkFlRUFKUUVhQUNzQ0V3QUJBZ3NBSHdEdEFCOEIzQUFmQVBnQUxBTWZBQjhDRFFBZkFnTUFKd0lYLy9ZQlZnQWZBWkwvL0FGRkFEd0NFQUE0QWNBQU93TERBRVlCcmYvVUFjRC93Z0dhLy9ZQkt3QWpBTzBBSHdBQUFFY0FBQUF1QUM0QVVnQjBBTFFBN0FFa0FWSUJpZ0hFQWV3Q05BSmVBbW9DaEFLbUF1Z0RFZ05BQTNvRG1BUFVCQUlFTGdSTUJJWUVzZ1RpQlBvRkNBVVdCU3dBQUFBQkFBQUFJQUNNQUF3QVpnQUhBQUVBQUFBQUFBQUFBQUFBQUFBQUJBQURlSnljbE50T0cxY1VoajhIMjIxNnVxaFFSRzdRdmt5bFpFeWpFQ1hoeXBTZ2pJcHc2bkY2a0twS2d6MCtpUEhNeURPWWtpZm9kZCtpYjVHclBrYWZvdXAxdFg4dmd4MUZRU0FFL0h2Mk92eHJyWDl0WUpQLzJLQld2d3Y4M1p3YnJySGQvTm53SGI1b0hobmVZTC81bWVFNkR4di9HRzR3YUx3MTNPUkJvMnY0RTk3Vi96VDhLVS9xdnhtK3kxYjkwUERuUEs1dkd2NXl3L0d2NGE5NHdyc0Zyc0V6L2pCY1k0dkM4QjAyK2RYd0J2ZXdtTFU2OTlneDNPQnJ0ZzAzMlFaNlRLaEltWkF4d2pGa3dvZ3paaVNVUkNUTW1EQWtZWUFqcEUxS3BhOFpzWkJqOU1Hdk1SRVZNMkpGSEZQaFNJbElpU2taVzhTMzhzcDVyWXhEbldaMjE2WmlUTXlKUEU2SnlYRGtqTWpKU0RoVm5JcUtnaGUwYUZIU0Y5K0NpcEtBa2drcEFUa3pSclRvY01nUlBjWk1LSEVjS3BKbkZwRXpwT0tjV1BtZFdmak85RW5JS0kzVkdSa0Q4WFRpbDhnNzVBaEhoMEsycTVHUDFpSTh4UEdqdkQyM1hMYmZFdWpYclRCYno3dGtFek5YUDFOMUpkWE51U1k0MXEzUDIrWUg0WW9YdUZ2MVo1M0o5VDBhNkgrbHlDZWNhZjREVFNvVGt3em50bWdUU1VHUnU0OWpYK2VRU0IzNWlaQWVyK2p3aHA3T2JicDBhWE5NajVDWDh1M1F4ZkVkSFk0NWtFY292TGc3bEdLTytRWEg5NFN5OGJFVDY4OWlZZ20vVTVpNlMzR2NxWTRwaFhydW1RZXFOVkdGTjUrdzM2RjhUUjJsZlByYUkyL3BOTDlNZXhZek1sVVVZamhWTDVmYUtLMS9BMVBFVkxYNDJWN2QrMjJZMis0dHQvaUNYRHZzMWJyZzVDZTNZSFRkVklQM05IT3VuNENZQVRrbnN1aVRNNlZGeFlWNHZ5Ym1qQlRIZ2JyM1NsdFMwYjcwOFhrdXBKS0VxUmlFWklvem85RGYySFFUR2ZmK211NmR2U1VEK1h1bXA1ZFYzU2FMVTYrdVp2UkczVnZlUmRibFpHVUNMWnRxdnFLbXZyaG1wdjFFTzdYS1A1SnZxZGN0NXhHaDRpNTIrME92d0E3UDJXV1BzYkwwZFRPL3ZQT3ZoTGZZVXdkT1NXUTFsS1o5RFk4SjJDWGdLYnZzOHB5bjcvVnl5Y1laSDdmR1p6Vi9td1AyNmJCM2JUVUwydzc3dkZ5TDl2SE1mNG50anVweFBMbzhQYnYxTkIvY1FMWGZhTit1M3MydUp1ZW5NYmRvVjl0eFRNelVjM0ZicXpXNSt3VC9Bd0FBLy84QkFBRC8vM0toVVVBQUFBQURBQUQvOVFBQS84NEFNZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIik7Cn1dXT48L3N0eWxlPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbLnNoYXBlIHsKICBzaGFwZS1yZW5kZXJpbmc6IGdlb21ldHJpY1ByZWNpc2lvbjsKICBzdHJva2UtbGluZWpvaW46IHJvdW5kOwp9Ci5jb25uZWN0aW9uIHsKICBzdHJva2UtbGluZWNhcDogcm91bmQ7CiAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKfQouYmxlbmQgewogIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsKICBvcGFjaXR5OiAwLjU7Cn0KCgkJLmQyLTQyMjU5MDA3NTcgLmZpbGwtTjF7ZmlsbDojMEEwRjI1O30KCQkuZDItNDIyNTkwMDc1NyAuZmlsbC1OMntmaWxsOiM2NzZDN0U7fQoJCS5kMi00MjI1OTAwNzU3IC5maWxsLU4ze2ZpbGw6Izk0OTlBQjt9CgkJLmQyLTQyMjU5MDA3NTcgLmZpbGwtTjR7ZmlsbDojQ0ZEMkREO30KCQkuZDItNDIyNTkwMDc1NyAuZmlsbC1ONXtmaWxsOiNERUUxRUI7fQoJCS5kMi00MjI1OTAwNzU3IC5maWxsLU42e2ZpbGw6I0VFRjFGODt9CgkJLmQyLTQyMjU5MDA3NTcgLmZpbGwtTjd7ZmlsbDojRkZGRkZGO30KCQkuZDItNDIyNTkwMDc1NyAuZmlsbC1CMXtmaWxsOiMwRDMyQjI7fQoJCS5kMi00MjI1OTAwNzU3IC5maWxsLUIye2ZpbGw6IzBEMzJCMjt9CgkJLmQyLTQyMjU5MDA3NTcgLmZpbGwtQjN7ZmlsbDojRTNFOUZEO30KCQkuZDItNDIyNTkwMDc1NyAuZmlsbC1CNHtmaWxsOiNFM0U5RkQ7fQoJCS5kMi00MjI1OTAwNzU3IC5maWxsLUI1e2ZpbGw6I0VERjBGRDt9CgkJLmQyLTQyMjU5MDA3NTcgLmZpbGwtQjZ7ZmlsbDojRjdGOEZFO30KCQkuZDItNDIyNTkwMDc1NyAuZmlsbC1BQTJ7ZmlsbDojNEE2RkYzO30KCQkuZDItNDIyNTkwMDc1NyAuZmlsbC1BQTR7ZmlsbDojRURGMEZEO30KCQkuZDItNDIyNTkwMDc1NyAuZmlsbC1BQTV7ZmlsbDojRjdGOEZFO30KCQkuZDItNDIyNTkwMDc1NyAuZmlsbC1BQjR7ZmlsbDojRURGMEZEO30KCQkuZDItNDIyNTkwMDc1NyAuZmlsbC1BQjV7ZmlsbDojRjdGOEZFO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLU4xe3N0cm9rZTojMEEwRjI1O30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLU4ye3N0cm9rZTojNjc2QzdFO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLU4ze3N0cm9rZTojOTQ5OUFCO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLU40e3N0cm9rZTojQ0ZEMkREO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLU41e3N0cm9rZTojREVFMUVCO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLU42e3N0cm9rZTojRUVGMUY4O30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLU43e3N0cm9rZTojRkZGRkZGO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLUIxe3N0cm9rZTojMEQzMkIyO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLUIye3N0cm9rZTojMEQzMkIyO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLUIze3N0cm9rZTojRTNFOUZEO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLUI0e3N0cm9rZTojRTNFOUZEO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLUI1e3N0cm9rZTojRURGMEZEO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLUI2e3N0cm9rZTojRjdGOEZFO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLUFBMntzdHJva2U6IzRBNkZGMzt9CgkJLmQyLTQyMjU5MDA3NTcgLnN0cm9rZS1BQTR7c3Ryb2tlOiNFREYwRkQ7fQoJCS5kMi00MjI1OTAwNzU3IC5zdHJva2UtQUE1e3N0cm9rZTojRjdGOEZFO30KCQkuZDItNDIyNTkwMDc1NyAuc3Ryb2tlLUFCNHtzdHJva2U6I0VERjBGRDt9CgkJLmQyLTQyMjU5MDA3NTcgLnN0cm9rZS1BQjV7c3Ryb2tlOiNGN0Y4RkU7fQoJCS5kMi00MjI1OTAwNzU3IC5iYWNrZ3JvdW5kLWNvbG9yLU4xe2JhY2tncm91bmQtY29sb3I6IzBBMEYyNTt9CgkJLmQyLTQyMjU5MDA3NTcgLmJhY2tncm91bmQtY29sb3ItTjJ7YmFja2dyb3VuZC1jb2xvcjojNjc2QzdFO30KCQkuZDItNDIyNTkwMDc1NyAuYmFja2dyb3VuZC1jb2xvci1OM3tiYWNrZ3JvdW5kLWNvbG9yOiM5NDk5QUI7fQoJCS5kMi00MjI1OTAwNzU3IC5iYWNrZ3JvdW5kLWNvbG9yLU40e2JhY2tncm91bmQtY29sb3I6I0NGRDJERDt9CgkJLmQyLTQyMjU5MDA3NTcgLmJhY2tncm91bmQtY29sb3ItTjV7YmFja2dyb3VuZC1jb2xvcjojREVFMUVCO30KCQkuZDItNDIyNTkwMDc1NyAuYmFja2dyb3VuZC1jb2xvci1ONntiYWNrZ3JvdW5kLWNvbG9yOiNFRUYxRjg7fQoJCS5kMi00MjI1OTAwNzU3IC5iYWNrZ3JvdW5kLWNvbG9yLU43e2JhY2tncm91bmQtY29sb3I6I0ZGRkZGRjt9CgkJLmQyLTQyMjU5MDA3NTcgLmJhY2tncm91bmQtY29sb3ItQjF7YmFja2dyb3VuZC1jb2xvcjojMEQzMkIyO30KCQkuZDItNDIyNTkwMDc1NyAuYmFja2dyb3VuZC1jb2xvci1CMntiYWNrZ3JvdW5kLWNvbG9yOiMwRDMyQjI7fQoJCS5kMi00MjI1OTAwNzU3IC5iYWNrZ3JvdW5kLWNvbG9yLUIze2JhY2tncm91bmQtY29sb3I6I0UzRTlGRDt9CgkJLmQyLTQyMjU5MDA3NTcgLmJhY2tncm91bmQtY29sb3ItQjR7YmFja2dyb3VuZC1jb2xvcjojRTNFOUZEO30KCQkuZDItNDIyNTkwMDc1NyAuYmFja2dyb3VuZC1jb2xvci1CNXtiYWNrZ3JvdW5kLWNvbG9yOiNFREYwRkQ7fQoJCS5kMi00MjI1OTAwNzU3IC5iYWNrZ3JvdW5kLWNvbG9yLUI2e2JhY2tncm91bmQtY29sb3I6I0Y3RjhGRTt9CgkJLmQyLTQyMjU5MDA3NTcgLmJhY2tncm91bmQtY29sb3ItQUEye2JhY2tncm91bmQtY29sb3I6IzRBNkZGMzt9CgkJLmQyLTQyMjU5MDA3NTcgLmJhY2tncm91bmQtY29sb3ItQUE0e2JhY2tncm91bmQtY29sb3I6I0VERjBGRDt9CgkJLmQyLTQyMjU5MDA3NTcgLmJhY2tncm91bmQtY29sb3ItQUE1e2JhY2tncm91bmQtY29sb3I6I0Y3RjhGRTt9CgkJLmQyLTQyMjU5MDA3NTcgLmJhY2tncm91bmQtY29sb3ItQUI0e2JhY2tncm91bmQtY29sb3I6I0VERjBGRDt9CgkJLmQyLTQyMjU5MDA3NTcgLmJhY2tncm91bmQtY29sb3ItQUI1e2JhY2tncm91bmQtY29sb3I6I0Y3RjhGRTt9CgkJLmQyLTQyMjU5MDA3NTcgLmNvbG9yLU4xe2NvbG9yOiMwQTBGMjU7fQoJCS5kMi00MjI1OTAwNzU3IC5jb2xvci1OMntjb2xvcjojNjc2QzdFO30KCQkuZDItNDIyNTkwMDc1NyAuY29sb3ItTjN7Y29sb3I6Izk0OTlBQjt9CgkJLmQyLTQyMjU5MDA3NTcgLmNvbG9yLU40e2NvbG9yOiNDRkQyREQ7fQoJCS5kMi00MjI1OTAwNzU3IC5jb2xvci1ONXtjb2xvcjojREVFMUVCO30KCQkuZDItNDIyNTkwMDc1NyAuY29sb3ItTjZ7Y29sb3I6I0VFRjFGODt9CgkJLmQyLTQyMjU5MDA3NTcgLmNvbG9yLU43e2NvbG9yOiNGRkZGRkY7fQoJCS5kMi00MjI1OTAwNzU3IC5jb2xvci1CMXtjb2xvcjojMEQzMkIyO30KCQkuZDItNDIyNTkwMDc1NyAuY29sb3ItQjJ7Y29sb3I6IzBEMzJCMjt9CgkJLmQyLTQyMjU5MDA3NTcgLmNvbG9yLUIze2NvbG9yOiNFM0U5RkQ7fQoJCS5kMi00MjI1OTAwNzU3IC5jb2xvci1CNHtjb2xvcjojRTNFOUZEO30KCQkuZDItNDIyNTkwMDc1NyAuY29sb3ItQjV7Y29sb3I6I0VERjBGRDt9CgkJLmQyLTQyMjU5MDA3NTcgLmNvbG9yLUI2e2NvbG9yOiNGN0Y4RkU7fQoJCS5kMi00MjI1OTAwNzU3IC5jb2xvci1BQTJ7Y29sb3I6IzRBNkZGMzt9CgkJLmQyLTQyMjU5MDA3NTcgLmNvbG9yLUFBNHtjb2xvcjojRURGMEZEO30KCQkuZDItNDIyNTkwMDc1NyAuY29sb3ItQUE1e2NvbG9yOiNGN0Y4RkU7fQoJCS5kMi00MjI1OTAwNzU3IC5jb2xvci1BQjR7Y29sb3I6I0VERjBGRDt9CgkJLmQyLTQyMjU5MDA3NTcgLmNvbG9yLUFCNXtjb2xvcjojRjdGOEZFO30uYXBwZW5kaXggdGV4dC50ZXh0e2ZpbGw6IzBBMEYyNX0ubWR7LS1jb2xvci1mZy1kZWZhdWx0OiMwQTBGMjU7LS1jb2xvci1mZy1tdXRlZDojNjc2QzdFOy0tY29sb3ItZmctc3VidGxlOiM5NDk5QUI7LS1jb2xvci1jYW52YXMtZGVmYXVsdDojRkZGRkZGOy0tY29sb3ItY2FudmFzLXN1YnRsZTojRUVGMUY4Oy0tY29sb3ItYm9yZGVyLWRlZmF1bHQ6IzBEMzJCMjstLWNvbG9yLWJvcmRlci1tdXRlZDojMEQzMkIyOy0tY29sb3ItbmV1dHJhbC1tdXRlZDojRUVGMUY4Oy0tY29sb3ItYWNjZW50LWZnOiMwRDMyQjI7LS1jb2xvci1hY2NlbnQtZW1waGFzaXM6IzBEMzJCMjstLWNvbG9yLWF0dGVudGlvbi1zdWJ0bGU6IzY3NkM3RTstLWNvbG9yLWRhbmdlci1mZzpyZWQ7fS5za2V0Y2gtb3ZlcmxheS1CMXtmaWxsOnVybCgjc3RyZWFrcy1kYXJrZXItZDItNDIyNTkwMDc1Nyk7bWl4LWJsZW5kLW1vZGU6bGlnaHRlbn0uc2tldGNoLW92ZXJsYXktQjJ7ZmlsbDp1cmwoI3N0cmVha3MtZGFya2VyLWQyLTQyMjU5MDA3NTcpO21peC1ibGVuZC1tb2RlOmxpZ2h0ZW59LnNrZXRjaC1vdmVybGF5LUIze2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjI1OTAwNzU3KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUI0e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjI1OTAwNzU3KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUI1e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjI1OTAwNzU3KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUI2e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjI1OTAwNzU3KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUFBMntmaWxsOnVybCgjc3RyZWFrcy1kYXJrLWQyLTQyMjU5MDA3NTcpO21peC1ibGVuZC1tb2RlOm92ZXJsYXl9LnNrZXRjaC1vdmVybGF5LUFBNHtmaWxsOnVybCgjc3RyZWFrcy1icmlnaHQtZDItNDIyNTkwMDc1Nyk7bWl4LWJsZW5kLW1vZGU6ZGFya2VufS5za2V0Y2gtb3ZlcmxheS1BQTV7ZmlsbDp1cmwoI3N0cmVha3MtYnJpZ2h0LWQyLTQyMjU5MDA3NTcpO21peC1ibGVuZC1tb2RlOmRhcmtlbn0uc2tldGNoLW92ZXJsYXktQUI0e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjI1OTAwNzU3KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LUFCNXtmaWxsOnVybCgjc3RyZWFrcy1icmlnaHQtZDItNDIyNTkwMDc1Nyk7bWl4LWJsZW5kLW1vZGU6ZGFya2VufS5za2V0Y2gtb3ZlcmxheS1OMXtmaWxsOnVybCgjc3RyZWFrcy1kYXJrZXItZDItNDIyNTkwMDc1Nyk7bWl4LWJsZW5kLW1vZGU6bGlnaHRlbn0uc2tldGNoLW92ZXJsYXktTjJ7ZmlsbDp1cmwoI3N0cmVha3MtZGFyay1kMi00MjI1OTAwNzU3KTttaXgtYmxlbmQtbW9kZTpvdmVybGF5fS5za2V0Y2gtb3ZlcmxheS1OM3tmaWxsOnVybCgjc3RyZWFrcy1ub3JtYWwtZDItNDIyNTkwMDc1Nyk7bWl4LWJsZW5kLW1vZGU6Y29sb3ItYnVybn0uc2tldGNoLW92ZXJsYXktTjR7ZmlsbDp1cmwoI3N0cmVha3Mtbm9ybWFsLWQyLTQyMjU5MDA3NTcpO21peC1ibGVuZC1tb2RlOmNvbG9yLWJ1cm59LnNrZXRjaC1vdmVybGF5LU41e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjI1OTAwNzU3KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LU42e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjI1OTAwNzU3KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LnNrZXRjaC1vdmVybGF5LU43e2ZpbGw6dXJsKCNzdHJlYWtzLWJyaWdodC1kMi00MjI1OTAwNzU3KTttaXgtYmxlbmQtbW9kZTpkYXJrZW59LmxpZ2h0LWNvZGV7ZGlzcGxheTogYmxvY2t9LmRhcmstY29kZXtkaXNwbGF5OiBub25lfV1dPjwvc3R5bGU+PGcgY2xhc3M9IllYQnciPjxnIGNsYXNzPSJzaGFwZSIgPjxyZWN0IHg9IjE3LjAwMDAwMCIgeT0iMC4wMDAwMDAiIHdpZHRoPSIzMTcuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNzUuNTAwMDAwIiB5PSIzOC41MDAwMDAiIGZpbGw9IiMwQTBGMjUiIGNsYXNzPSJ0ZXh0LWJvbGQgZmlsbC1OMSIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+QXBwIGFza3MgdGhlIGRlcGxveWVyIGZvciBwYXVzZSBzdGF0ZXM8L3RleHQ+PC9nPjxnIGNsYXNzPSJjMlZ5ZG1WayI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iNS4wMDAwMDAiIHk9IjE2Ni4wMDAwMDAiIHdpZHRoPSIzNDAuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNzUuMDAwMDAwIiB5PSIyMDQuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPkRlcGxveWVyIHJldHVybnMgbWF4U2l6ZSBhbmQgZGVmYXVsdFNpemU8L3RleHQ+PC9nPjxnIGNsYXNzPSJjMk55WldWdSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iMjAuMDAwMDAwIiB5PSIzMzIuMDAwMDAwIiB3aWR0aD0iMzExLjAwMDAwMCIgaGVpZ2h0PSI2Ni4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0iI0Y3RjhGRSIgY2xhc3M9IiBzdHJva2UtQjEgZmlsbC1CNiIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgLz48L2c+PHRleHQgeD0iMTc1LjUwMDAwMCIgeT0iMzcwLjUwMDAwMCIgZmlsbD0iIzBBMEYyNSIgY2xhc3M9InRleHQtYm9sZCBmaWxsLU4xIiBzdHlsZT0idGV4dC1hbmNob3I6bWlkZGxlO2ZvbnQtc2l6ZToxNnB4Ij5TY3JlZW4gcmVmdXNlcyBhIHZhbHVlIGFib3ZlIG1heFNpemU8L3RleHQ+PC9nPjxnIGNsYXNzPSJaR1Z3Ykc5NSI+PGcgY2xhc3M9InNoYXBlIiA+PHJlY3QgeD0iMC4wMDAwMDAiIHk9IjUxOS4wMDAwMDAiIHdpZHRoPSIzNTAuMDAwMDAwIiBoZWlnaHQ9IjY2LjAwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSIjRjdGOEZFIiBjbGFzcz0iIHN0cm9rZS1CMSBmaWxsLUI2IiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiAvPjwvZz48dGV4dCB4PSIxNzUuMDAwMDAwIiB5PSI1NTcuNTAwMDAwIiBmaWxsPSIjMEEwRjI1IiBjbGFzcz0idGV4dC1ib2xkIGZpbGwtTjEiIHN0eWxlPSJ0ZXh0LWFuY2hvcjptaWRkbGU7Zm9udC1zaXplOjE2cHgiPkRlcGxveS10aW1lIGNoZWNrIHJ1bnMgYWdhaW4gb24gdGhlIHNlcnZlcjwvdGV4dD48L2c+PGcgY2xhc3M9IktHRndjQ0F0Sm1kME95QnpaWEoyWldRcFd6QmQiPjxtYXJrZXIgaWQ9Im1rLWQyLTQyMjU5MDA3NTctMzQ4ODM3ODEzNCIgbWFya2VyV2lkdGg9IjEwLjAwMDAwMCIgbWFya2VySGVpZ2h0PSIxMi4wMDAwMDAiIHJlZlg9IjcuMDAwMDAwIiByZWZZPSI2LjAwMDAwMCIgdmlld0JveD0iMC4wMDAwMDAgMC4wMDAwMDAgMTAuMDAwMDAwIDEyLjAwMDAwMCIgb3JpZW50PSJhdXRvIiBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiPiA8cG9seWdvbiBwb2ludHM9IjAuMDAwMDAwLDAuMDAwMDAwIDEwLjAwMDAwMCw2LjAwMDAwMCAwLjAwMDAwMCwxMi4wMDAwMDAiIGZpbGw9IiMwRDMyQjIiIGNsYXNzPSJjb25uZWN0aW9uIGZpbGwtQjEiIHN0cm9rZS13aWR0aD0iMiIgLz4gPC9tYXJrZXI+PHBhdGggZD0iTSAxNzUuMDAwMDAwIDY4LjAwMDAwMCBDIDE3NS4wMDAwMDAgMTA2LjAwMDAwMCAxNzUuMDAwMDAwIDEyNi4wMDAwMDAgMTc1LjAwMDAwMCAxNjIuMDAwMDAwIiBzdHJva2U9IiMwRDMyQjIiIGZpbGw9Im5vbmUiIGNsYXNzPSJjb25uZWN0aW9uIHN0cm9rZS1CMSIgc3R5bGU9InN0cm9rZS13aWR0aDoyOyIgbWFya2VyLWVuZD0idXJsKCNtay1kMi00MjI1OTAwNzU3LTM0ODgzNzgxMzQpIiBtYXNrPSJ1cmwoI2QyLTQyMjU5MDA3NTcpIiAvPjwvZz48ZyBjbGFzcz0iS0hObGNuWmxaQ0F0Sm1kME95QnpZM0psWlc0cFd6QmQiPjxwYXRoIGQ9Ik0gMTc1LjAwMDAwMCAyMzQuMDAwMDAwIEMgMTc1LjAwMDAwMCAyNzIuMDAwMDAwIDE3NS4wMDAwMDAgMjkyLjAwMDAwMCAxNzUuMDAwMDAwIDMyOC4wMDAwMDAiIHN0cm9rZT0iIzBEMzJCMiIgZmlsbD0ibm9uZSIgY2xhc3M9ImNvbm5lY3Rpb24gc3Ryb2tlLUIxIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjI7IiBtYXJrZXItZW5kPSJ1cmwoI21rLWQyLTQyMjU5MDA3NTctMzQ4ODM3ODEzNCkiIG1hc2s9InVybCgjZDItNDIyNTkwMDc1NykiIC8+PC9nPjxnIGNsYXNzPSJLSE5qY21WbGJpQXRKbWQwT3lCa1pYQnNiM2twV3pCZCI+PHBhdGggZD0iTSAxNzUuMDAwMDAwIDM5OS41MDAwMDAgQyAxNzUuMDAwMDAwIDQ0Ni4yOTk5ODggMTc1LjAwMDAwMCA0NzAuNzAwMDEyIDE3NS4wMDAwMDAgNTE1LjUwMDAwMCIgc3Ryb2tlPSIjMEQzMkIyIiBmaWxsPSJub25lIiBjbGFzcz0iY29ubmVjdGlvbiBzdHJva2UtQjEiIHN0eWxlPSJzdHJva2Utd2lkdGg6MjsiIG1hcmtlci1lbmQ9InVybCgjbWstZDItNDIyNTkwMDc1Ny0zNDg4Mzc4MTM0KSIgbWFzaz0idXJsKCNkMi00MjI1OTAwNzU3KSIgLz48dGV4dCB4PSIxNzUuNTAwMDAwIiB5PSI0NjQuMDAwMDAwIiBmaWxsPSIjNjc2QzdFIiBjbGFzcz0idGV4dC1pdGFsaWMgZmlsbC1OMiIgc3R5bGU9InRleHQtYW5jaG9yOm1pZGRsZTtmb250LXNpemU6MTZweCI+dmFsdWUgd2l0aGluIHRoZSBjZWlsaW5nPC90ZXh0PjwvZz48bWFzayBpZD0iZDItNDIyNTkwMDc1NyIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iLTEwMSIgeT0iLTEwMSIgd2lkdGg9IjU1MiIgaGVpZ2h0PSI3ODciPgo8cmVjdCB4PSItMTAxIiB5PSItMTAxIiB3aWR0aD0iNTUyIiBoZWlnaHQ9Ijc4NyIgZmlsbD0id2hpdGUiPjwvcmVjdD4KPHJlY3QgeD0iOTguMDAwMDAwIiB5PSI0NDguMDAwMDAwIiB3aWR0aD0iMTU1IiBoZWlnaHQ9IjIxIiBmaWxsPSJibGFjayI+PC9yZWN0Pgo8L21hc2s+PC9zdmc+PC9zdmc+Cg==" alt="Architecture diagram" style={{maxWidth:"100%",height:"auto",display:"block",margin:"2em auto"}} />

If the ceiling lived in the interface, changing it would need a frontend release, and the screen and the server could disagree in between. With one source, a change to the maximum reaches the screen the next time it asks.

The deploy-time check is unchanged. The screen is a courtesy that gives the reason early. The server check is the rule, so an out-of-date page cannot push an oversized value through.

## A Refusal Should Arrive While the Value Can Still Change

Refusing at save time puts the message next to the field you just typed. Deploy stays disabled with the reason shown, so there is no step where a deploy starts and then fails on a number you set minutes earlier.

This works when the screen has read `maxSize` recently. It cannot help a value that was valid when typed and became invalid after the ceiling was lowered, and that is the case the unchanged deploy-time check still catches.

One related change: the old full service page route now opens the canvas drawer. These limits sit alongside the [per-app network isolation](https://zop.dev/resources/blogs/container-isolation-on-zopcloud-one-network-per-app) already on ZopCloud shared VMs. There is no migration, and the only API change is the added `maxSize` field.
